cloud-init-23.3-150100.8.71.1<>,e p9|3lq[듸Zζvfpk{9& &cw&a.rLWao6n& (IZTiA 8 _]lSKɇ35P$v`'?B:Th>@?d   ? ,>flrx px `x Px 0x hx xxxpؘxx)P))(894:T>;zF;G;xHExxIOXxXQYQ\Rx][x^=bcd<eAfDlFuXxv8 wxxxyl zCcloud-init23.3150100.8.71.1Cloud node initialization toolCloud-init is an init script that initializes a cloud node (VM) according to the fetched configuration data from the admin node.e s390zl32?2SUSE Linux Enterprise 15SUSE LLC GPL-3.0https://www.suse.com/System/Managementhttps://github.com/canonical/cloud-initlinuxs390x/usr/sbin/hidesensitivedatasjX7BBBBXBBBIj+N np <ۥb"%_R fN 9n45: &2= [z 6=_&s hVq!2)t 5%9".  Q xF s #'rj+,"$>_ 5 * L$p\ # g?  r4T1 8m4%L 0h 4)W i-rGw! ,7J2/R !?vH" L $71 B T8@ QHNS6*ZD:5 S"| B, ] ;xDR"v$/~'M-2><nY~VZU)BYV]X\0 9:^adg$1U][XY g!Ye8#O+*>=3A =R G #V'(C1 +H&&>g 2A y ) 2%%@3' d/&p!c>XfX"I!$DT0U:5\ *s p K7`1 8v\j -(R!0#;s "2!) , +#h7ql8dDx 94'q)?Q):U="d $5}Q ^6'[15v q,S " /:,,+bGX x K X T =3&wF]o r"H/ f i Px ::mUK 4! +}O 6YF(4 #o9xHPs7U KvKAA큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤큤큤AA큤Ae8e7dHe7dHdHe8dHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHe8^e7dHe8e8dHe7dHdHdHdHe8e7e8e7e7e7e7e7dHe7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7dHdHe7e7e7e7e7dHdHdHdHdHe7dHe7e7e7e7e7e7e7dHdHe7dHe7e7e7e7e7e7e7e7dHdHdHdHdHdHeidHdHe7dHe7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7dHdHeidHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHeidHdHdHdHdHdHdHdHdHdHdHdHdHeidHe7dHe7e7dHdHdHe8dHdHeie7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7dHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHeie7dHe7e7e7e7e7e7e7e7dHdHeidHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHe7dHe7e7e7dHdHe7dHe7e7e7e7e7e7e7dHdHdHdHdHdHdHdHe7dHe7e7e7e7e7dHdHdHe7dHe7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7dHdHdHeidHdHdHdHe7dHe7e7e7e7dHdHdHdHeidHdHdHdHeidHdHdHdHdHe7dHe7e7e7e7dHeidHdHdHdHe7dHdHdHdHdHdHdHdHdHdHdHdHdHdHdHeidHdHdHdHdHdHdHeidHdHdHdHdHdHeie7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7dHe7e7e7e7e7e7dHdHdHdHe7dHe7e7e7e7e7e7e7e7e7e7e7e7dHeidHdHdHdHeidHdHe7dHe7e7e7dHe7e7e7e7e7e7e7e7e7e7e7e7e7e7e7dHdHdHdHdHdHdHdHdHdHdHdHdHdHeidHdHdHdHdHeieieieidHe6e5dHe4e4e5dHdHe8dHe7e8dHdHdHdHdHe80e27921782b92a2a69153c74be78fad5428a3491132c9b21ed519cef272e9a7a5df6c972f880adc375ec32564a00b917fe1bca5aa02359abc0f4906fec65e0911c80199250aeabaa9ced4990d3e222ae83859a983e781c4d6b4c64808fc5a6c20d49d7f9b483a7f90f2f81ff794a7ab43388ead785e47b73ef1c88017d555b8960babe2b1d46efc52b2bda653c7968fd2db476f117a0b047be9f8972642a100ffce07bff7620f8147b712fcb2988ac7d572c0c3bb5feaae5dd9dd508ce4771784056e7c9faf495e67b3aac4f18afe35d3b6d608489c723f79eaf15582f41149542e64ee04a68fdd796ad7f21ec3924a0aa6966f8f4873a199e98812de111db62ee9602c7e9f920f2cb5a3139fc53a12748ace9f99aa09ea6fcbbdce2da48e26fb6b6994d865624c7c2ae0a244bab7d35a8c8005d44b06ac4f33268ea22cc232ab6b6994d865624c7c2ae0a244bab7d35a8c8005d44b06ac4f33268ea22cc232ab6b6994d865624c7c2ae0a244bab7d35a8c8005d44b06ac4f33268ea22cc232ab6b6994d865624c7c2ae0a244bab7d35a8c8005d44b06ac4f33268ea22cc232a42e64ee04a68fdd796ad7f21ec3924a0aa6966f8f4873a199e98812de111db62fce07bff7620f8147b712fcb2988ac7d572c0c3bb5feaae5dd9dd508ce477178b6b6994d865624c7c2ae0a244bab7d35a8c8005d44b06ac4f33268ea22cc232ab6b6994d865624c7c2ae0a244bab7d35a8c8005d44b06ac4f33268ea22cc232ab6b6994d865624c7c2ae0a244bab7d35a8c8005d44b06ac4f33268ea22cc232a7a978528b6f5b1d93e8cf8e0fcd146e5201cd605c443eca4b7478dffb4f7dfe128d648f9e07ada3e8568886e57d326bc58685edc14ffd463d2af56dabc68f3663310425931bafcd491046edb04861c02bfe57b9252236898751c96337fc78406ec24d4fad651b451c9dc6ac9c0f88ff314fb969da148eecc3e572644ec92fd5078d2b2063b6f539fc516e494645dadb50f709a5ec0f41459589b7f7ad0d434ac4be98341c7b0833a00b0aca41f863c126fe09c0f3a0101c18ffe101a53430bb7f40c1f9575af4503a096759fe136cadaa0fda118090a8b1c00197fccaddfa2cb09710ae90dcf19a410552690dc7628780c3395a91b211e0b6f61ea350fd1486017349dd2b84f777dcfc9bd2adbc2d4fa1c6bbf31fb7d5befa2f001fbc0ef1096ba2399c141f3feb3dca25b99bd95bc750f9e9af25ee2fe5465715e55e58ec54bec2c86522f536c741e98822b207bbdb11b4e8af625e42d1f5d75d8eab4d936791e8ff214ccc752f57f930a4d9bacf36676a6737821c5773148cb28da6242a3e8bc294c0f9dc6ceb4b41cc628b6335db0b3beafd9b6b69f640cb31d9000cac567ec2c86522f536c741e98822b207bbdb11b4e8af625e42d1f5d75d8eab4d93679cf516487772b66a2db46e04cc55654089d8dc3065c3cafed0d5daecf23df921c587d891a25d4e1fd999a1a9ed80cd8146950ba8ea38d8f264930a88cc81f7e6c718053ea9a0f1bdb7e401f20b50cac6686c04cada5b7223b92f0d3800e1a4d0bcd1041962e1542e8030f93c8a393ddc2920bd7efecb2fb96d86aed52ba10efc798a31a4c66e573885df151fefceb38273000a4126618c8733a39ae2a9a9a0cdf1d435e1d79784e95f1982b534a7c5f79a32fc3b91eda3f6cd67c97d23e0d1346d76fa9b68ac0ebd9d8c3908edc3be7fac74b4742a7a12bbd1a4407bdc31c8228c02a8d9f2b9580ead6ce47f4c00dcb28c1a091824b832011ab3603ff203f30e9bf24328738a784acaa2e8184e0150c2621873ec2478c102099e35bf04335e06f72bdd350030e37660ef3a092946a7b382f677693fcb35392494477fe47b4e81d5a740409f088c01dbfddbd4712452ff37c1fd9750c0f973d5e274e44608ced327afc39e89350aac127111f3046152c1b8bcaa5c6ea5f98a020164ebd704b05fb6efe13aa324a20715703d96619d8db3d3b39bef557ed7a8215146639dcfd051cbabb6befa3c87edc667289bf493f0b913eb013174b6c27e7aae8e4eb263299b0f8dcde93c29b6502724a181917fadd13be670865df1209d914ab1770cac3db2e01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b87b354571a05199eec5bfc4f9efbd95a4f748e645ad5f95caf7880b0ae9053ef8f9eac79ab226c5cb691bb15925b43087a19a05414b813a9d1ea9e40dd39e0d98c60ee03d62c6c45fe5eec59f23709b966ac544881a85d2a57d6f13278ebb736e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e351f162d931e05bac36cf37889ab116d80ba6e3518d4ed7dbcd8cae9e844c46dd65a5d7a35f1860cd6e62440014d65a88a94374ee4652b0e5ca821a0ff808483a5db8385351c09ca4ad6477bff1f07cd068985ab1f819a6f60746f72ea916f659b862b597572ae63bc0249c8a25841b68d05f1feded275043b42e190e49ed5b6e8485e4533190bc99b1b1db61c56ddc80bd4c2e623c72ba81682aef203912f1792e98a8b078460ea1fda345999da871ca814e7e5936e1dda17bdda1361a80cf587a9df126c68a6456c969349b2a6e650eab016e5ed44d56fc588aa92559cbcc9099a87e118bb1de21b54d41c1220622135c81efbc3a3c0c6bb0137c4b94c6aabfb68ac468b76167e95c25b654ac10fb483f27839b6048a016f8916d57677944a857bb6a65bde1636b2d155d58ff7021a2c1f0ff017ded0375ec8d659198e1def37c287badda44360f5602ab905ca4ed22a84260ce4a12c18bd709be4e33feeb07eb621ec22da12c46f01b6edd9a0b3058a1511baaeb695a14c8c186bb7ec77a2e89a4491306b8a9867f3f581f9c0589697cbb4bfd89f5255f112f3d29fef718f30894bb47bb5dc5fd0088719870397a4f6c7f4519c6acd7eab45766808f4073332c46464b8e62207d7218b7e495607e299c4c822a893b3b256cf8147af637723f4fb2637d964c7ab1eee823edcef1adb923345d2d77515adbf851e9646a6af1224ca269491c3fb82ab07e87866a56b11bb0bda87e64ed25c4670b8cc1303704b22f978f32e52497cff77310cd17936f594bcfa27c39e95e2bc0d191e50c7b12d52af8d5da464d7fcdaa1640704f856eec834647b4605c13826123b8d7dd42c7c71a089c95826810c0a2d8cd892856891606478efd044875ab51e55c2fbdd8e2279593ab9d746b54e4b76ae38b13bb9de046382f8ba0aebd62afc36bebe19771537a3d7e90c84c7e022eb0d7c99174ba9f5b538350ebba8f161d5aaace12073ed710e536820d26015c9035c0daddd201ee12cd8e104d539b0a53d6ddcce889db5297591ecbd46198434c7b4fe9e623b15fd8706fa2b63908107403a1fc810f3d737b87d9a2a5e61a1e55ff186a5d870d15299794393f985a58ff1c9f00b274e3132b98a3de119714acb34ce2cdaf93a1e04f350d77278102022ff710a2a3cdd6879b4790c6116544a0abd57c402a16d01301b65867fc37507d4e786f8eba45402819c87e5da841969cb8e812d64e782581b88aa2d37ba6b4030e99b19170984dee0004ac26393863053321cb1c2b54adf04ef6ef934c9fb203ae56a00297c08b52878b4e4967813b3ef704c7b618441163e866b12e04942f73e4baa7001fc50be3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8557098c609132e6600044ecfd31c102b6c3be6296e999c889c127abacc4307ceb372322caa6191651f46736a8c10610c9b342129cadc9a651262a90277a1f25ae5e7dbf90ec61f1693a27772b6287b9350f8a1f7ac0ff38ced504dcc9971b873c2909cd72fb32db3e18c38b82a36a0edee9b3fd0b558f8c272923e30185bc3d3c85aa2220ff0ffb1f7fa7827e45ac136dbcd73bd9d78a791a8eef6ef554266513b5fdac84a316c04c969d235fe074a0b98b6e91b0103fd66a40ae3100f25d9eee20c04f3f84e32162159330426580518af430da275f43d2f962fd5db9eae3e72c705d3fd5616806131d6951d8e51f30860f3aecdff0ed3842a95555624ba210018c7295b2b4069a5f714a3f8e6aeea1cc276f673ee241bd826d3467f024f04e64cb109fe13c822ef4f8633b5b5d1cf88f0349d1413b8d712e4ccdea53e2cc65cede3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8551441f11eeb306bf62adba62d76ae76145b5138ed12dc7a5ca71f4d169bd938b7e52fdf6d56d3725f4aa806f537992f8253925414bdfb9b3de9ff25693ed8adbe767f9edb3d459a5bc53488b513e1efcb40c9d56111ac971ee5bcbebd14d6da86f5b7431858ca1f6279eabf70601786623f4e751b8959b59cecf5bfc71571029108c2bf3edbfa7437417197b29d5161026986d4d883058cf68db17892e2cb01c1bdb9b2dbb9baf8e4e908f2b6e10a929b5b08ec5e3b3d96aa532a7c7a36fa70939eea09be502fad95be68d04c7b41787b8fddae595f5e8907c8b41f077e918dea2d55395f190cae404c8970df4adb89824ebb8175b29523b214a1f7abbd61296b07d19cbb49b267138ba2addac0acfc79c03923e38c9d286f862b7b32551a33fef252df15f757f4ade43521c1a80682a5120a1d90d56d0c60a07e4e88cab5c3a9933dae6fc332fd51cc997db9c801bd92b9aca67d3d6c15871f243e41dd17869931bb73ff224bc930e192be097edafb2cfc7879de732863b001295119dc67d34aeba26a93064ab33e94f49d9d6f7b785784451b92546abe054f8226342c0d3aac7d3095833b19289f1ce663f8988d736bd107d9f79ae3b0ebed6df2b35eb98618d446e32b63a4b1cebc72ca7dcf97829624ad7951543b26568c8057535facf12406b2410689682c2f7c93fd70b1c6ef6bda81c6e7f60cf7ec9e268f581b7f0a3b2427cf11a1a5a703f07828b46c0bbabb033f3e1f8b17f8f7704303ad92b2601b5e003472d08dea7c403ef94b9a10eadb75f88036fd373d4a032bb92ffc8336937e12280921cadaeea7ab8d666c61d725a397f560747072f52f7468d39529f095730d7b10f5a788f413386c403caf24b608e03793862aa114c6923c38f6f8c10954e2b2c879fda6547acccfe5cff64091357563347341cdd47445bb5ae9d1dd7dbcc4959f9e898bae070222bf6d5d7968032ae48d6a66a4612d959b08ed45cfb265ce7519904a6537b18708bd369fbd48a92f5b9389e778c48ed705c8b731643ad8d5ca19daab3e775bedc8b523e9b3ccadd371ad2da3f3673a4d67b4b2d20d5fe1cc6747ac4525b88844d5346c07eecafabbb5053bc6475769c5694c8e19b12f949f07ca2afa90d168e314248e4a168d0684b7ddc103f73d72a7adf3411fb8fa8c78f12d7689b29510b64b1cdec7d5a541af906ca871319c5849198b67fa5f3be66220272f7d09a353945d13a9dcb9d348ffcfc28c065713cbee9e9a835e71a23b8cdef02b54149c8a8301d800e2f810864deab75c4e2a4ef41d1bd413e4ad48af6d472b9f3ea12ea95320763782859d4efe13d066584585d92df0abd0976c6d0b6650a99d1c4be85113982e354dc9ca560a36ddf6d6ccb30c14eaba6cebf0aab60354196783fb2e8520d736f0a8b56487f7d2aa02a3f6367a539105ca4a162788b777194aa95866775582e83be95ae3c78d3ef0e901452bf9218102eea4ead64a2e8e21f0f360c47230a6e8479b3410c8f058a17044b4044975112d7175771af65fd9306dec02d9661859c3b19ecc8abf6cc48248cc0ae24b27e9b37857acd454e353c25de8076f02cb76181f9e77d48608c3867628a02dca611122fbbe30660c08912dd42baa4156400c479ff1854fa5208a21aaf2eab11b3c078273951292cce0b832b1fee847b5fa6f23bd276a85e08c7fbca197190b314326c747a943a58e27eaf5f63da397e0a83271ad4efd54d3860aa9c5794b850bc713ce0ad5f1190f6acfb16e1a384fa7bd440f04ebf3ff571da0f934bc135ad70d93300b7cf3ddf9a8e1229ba1aff4dde9da52fa3877e7d97d8ccc588bfaae22b7cefaa84dfb41536b1712d038c932fba484898ac9b4eb411730d6a2836f50659ab180374252f63cb6daceac7c5ba66eb0ebad59aa213e92da71f19263c83d697d98fc46d7d61588c70fa2be655b6a53a77570aa9e7841aa162d90ea9b2a8ad05498495f515f276fe7f1a5d46ccf0d86e58ea696a7269b8076c06bcdbfd127b82459adf936c99cd79d8a09f194d25a126fea594d9f34d3c528ff3fb745d83337aec14bae436aa6d3c8e2428f8864c66d7962afd7c4319c81b5093ea1ec85ca5a829550cde72669068d5eba35a4793ca3465e6557a3ed90b43e3eeedb18a55f12c90f5fd0c656ba7b53db4765c059c66ba607a68f19536e16324d9bbd33448008b30d9f8c16915ae72714ab91a793a82f88ae0b54d6158fe493a62d7f0513a78daa7a832461b124022cffe488ba8d854bc6da4edab4fcae796ce1ef89350882e922c776866da2ab55fe87fdf518008bf9beadc0bcd7386583962480ae11f48fca0a26e2f6cad6d1d485b00fb448ce2c2d7dc96f18f51a97681a1586f5bad1d26a7be5de437510fd2d642834976ee2430ec79a95511136f2fd7709514cc91293a623b9ac98401d3e7dac74ebf27d6243df8d873f1d7f471334ffab9dd8230b97edc216fefb60cd263a5194054b971bef92ac4384c72988d7328224477cbb95ad9f1e2b7e13721f6aa3c656a97dc528d2beb1eda8b0ef1d233a44a1de2f6573efe8b7d9382a3606c487daf2f9d26ad8bf9261e795d22b504cadbb7158db9c1278a536e8c06abc6c93e7ae0c73199f957394abf65755605d00077c1162450010e4cb97141bd729d2e4382d71c68d55d7d47d391e6b5d6233f5ad121b9eac816025f31f9fd01c0b99c762e3252f7cbaaa5428b2a4e41312b1ff06571a819cfc45eb1d6a7137e9abaef2545a2b0b5c1fcde0da8f90bdb94a3939d6d8fe21ac2c9a386abe1c49d82c658f98cf4d775f058d549165e7585183b53ca4ceebec167de5ae4549bce5664f1a47ba7964c5dc772c3300d2259ed03b72603ff48dd1064afef5d1414acbf5f9b6bb1598b8a9fbfb2aa1151c14a6cfdaa141c374999a1b6ce78eb165faf6c6a8b86f6bf5bce2865edf24779a20212323e6a4630219c20425c1686e69dfbc8f730070e388f84db79f6691413b9f5e82e5baf2d6ec80a6d9967327cd8d0fe7b87fe942c688ef400dba24079c333c5bcbc2b735bf256f5f38ea61b95a44a15f7f38ddb66f8a60fd9a914d0a35ed8c316a9ec9209ac0650ee746abe2bc1d538cf03b67ec0f0bdd31f300864167dac0ef76d755970c89aca953efd1d7eb72d94d2c489670fca06c78ee7a66405a40e455862a22f386edf10a9f3a759103b0c315cfb4322fb002a0e33e873ce7819ed938de502ce36043ae4f56a852e9eb4e0215faaea3eef0d083b2cd2162ead94d6094357207edc13d6f24d431e1bf01b23ce7079c39fcdce35ad4fe27f6f289265823b8b7c1936ab0bbf38b51d66af639a5535f085fe7322197f68cf902618785ca81e7a4e0c1b8b32e38876c2b511a5484f731a6bf5eb2e557627e000ae536941b66ba27de5aeff3175b83f130b899933ac7c827ca0a3f58a57218d4ab7cb59b75e02a13f41a76e1c41bed1d085983eb553e964a18c3a86f6a98748357a0de5d2d9bbfc4b150d34c29156042404cd4562aac46efddd53b6e5a07001076d89b2bdf6191bde50fe246353fba2b779766b73771cedd1fa2826e4fbae426ff314eb9a744947c9dce7e3607838226d50dd2de4430f206e12686bdcdad399ac2ba1023182e970fcbe70d0e1124aabf648522da10e7e15af17be2ec1fe65187c6ee65c0a0e741c3a24dfc8468667bcc99be4a51ed6a95faff7752131b40059c16946b148ab198f9fcfbd18fb43b343c4fab5f9f5092554cc7c2a489f86cd2af85cc5a663d894327d4e9e44c8d4edc180b49e132690263da442dc9aaedb41dff385021ca80311f66a54053b44348370ad29b6e3a084792d1804360bd5c3926299706d01e55e5cb3991f6e0182f7ea86d844625bd3d514ee6b1d6dccf6823296f5a95f14d6a94a8eacbb1e65aa4cf52509cee16a59b7d1ccb0f4371ef419e07f7fa4db95e9bf24b2876db8acc1c32a0ed5fe543ee1e07c01cda66093e38538250d77fc1c6c3bbe9ee1d11dd3b21a4eb4a9938fe53eb94868d038b76edf1f1f824cbcc5d49d8f34de5ad29b8d1cd140d04e136a9988f1a9b834f32c513cdc28db2f05e1b1c18af3df5585529df92b1de7bc83df07572aeb5c804e674b76fc9bf60419927771c148fd16841c73a453646db517db1f1111cde4bd7b83cb80d55b0db9d95deb9b6da1d27ea35ac8f6b37bb59f5fcbe42dbf132e58a395ee9fc7937c1c77b592757b0466450405445a8fdcccdc9ad919fde2d4ed0589243c692f4a923d779f3315d4adc010d26ea9757d74a7541f974ac848f881f5292cdd286ea3f33362d9394880d173c8a5bfdf5ed3ab8943e80a832dc85015b9a5c3aa8ce5244559742a8051a46f3a0c188543fddd3356cacacfde4678897d00fe89a9db8fb4348d7053481b590a086481b87f64e9519e0df214ef8c21981ccb3920c4472bf26e6446a408550ae7ce998894ede86fdaea8bd5d601fe07ce7f8c66153742b1634dc6802a59f3b7766df0f0d08e32f4bd5e1c4a1215f38f02029f1008c1fd5b7a916042805562fde403cc4a3dc9e58dc385c2eafb8afac07920e318307e70587a45038f1064dde355b7158256b6028a482c2e6c35169b544451ff4a8ea962ceb65e772d73c319b26f5a8048cb578720a92df23e89ff373cd4b1f25b94f47d71cc05f144b2efc0d2d47503be4ff41f860b502b9fb0604be0178c0780ce69e819a3e2ad42f977725aee8f925209e555fdb8caa62c0ea7c453f9f37f5f3fd23c3dfb5a55ad58c08ffa70cca64e4e363637a76789b29d0d6a3644f19a5a0605884be734901da3d90c8cb39c81230bb2a819f16615acc40904d502053a73423e80f6b63fe92a1ff24320e2e4f09519f1fd7a00bef7ad68f7e125f6c77d3ce1577b132f4c774f85ef80265c7020384adcf2eeda24eeace387d6967dca99843bc328f4a715086913d0325aa1d074b7777c8b5485e138f32ef2f6d6be04701dfeacc0bf2e8b2f572641134011caed550bdc6d41a742328623802ad7d3cd487c4331c84dd58158d4858e7fbfd734ad0b63d2cf6e11854fcc0023ea77ac4cd1ad7231cceca002b0ec9b34a0145726624cecafd9aa9ae352943b2e8994f80cb2f98be4bc62c4c36c76bdfbfa326b27ed3d1acd1542a7fd8789c2cfaab0cbbd752770362bec6a2f5af9b093e9327511590cea89dccdfbe6bef4a85a87de807d810e6a282a5780f54089f8d39609de389eede8fb25262e9f5d86e72a564ef558935fc10edb457ddd400910e22ab1abd84c54effadc7a62b7ccb862277ca3b3996b72c3d2280b9699e5de3698e06b428935cd5cbfc8c5951b10b082e996c36bd3e2b1f380af4bb812360976ddfc68a69ab3882ac03d862c6b37606feb3f922a5825982fe5047254e23455750f41ee2d15df9c64f2ddadd5bbfcf812d01beeea3192d3b090d30c7331ed896d85e4de76fffe1ed43697e3c39c63686efd499fea4a49f544032b4a49275287044a41410488d62e6a4d85631fe233561699e1b8a0793c2a2d6eb98849a55f265cb49352af3823b621d8d14222561ec8efbaea36f801887c731085c74094bac10850427f4bac0b0389cb7aa19370aeb0d5f26ab768e35b7e73677ca765dcbce400805849329db9d15849cb2eb82d2783a78e2165078c946858089156e3bd5086e880386ae18620378162091f27937559a5743c34b46fd10fd2e4b7007268ed77fa7dbae3e1ef0a9609d1b08d0f297253e8bbc8b0426fa5caf952b7a631a00ec42dc10e6f047c88a972afa7880b2f8612c76b5adc9dba688c8299aacbf29bfb1ca92ed936b4f89d16b556d8d41bfb6e761b2000f00e3d85a9696d41474515c928b7dec257b71153c4d15b65ec8d9da1c5bcdf68f1b639f0893798f3d531233ca304198c9075a576bcd7f52353d2cb06aa42c108cedd37955ad680bfe5468f18b75b8a1dea26a8c4077eb56e3a1d3f3ab12f323c18b77752ea580d6b7085f8d59268e817e76167d3d198b413362417d06b8b16e00577d60595f3dbe3b1cff530c08e75602962f7b38e531e6f3f3fb0c83f4569b2034eb50ca08c69459dac7939030977b5e7f4b0730e50a7be5dc5e70275555257d9214f4f1114d56d0912f5566c22a3c3308f53df7aec6c9bf260c3bda432bb3c44bbe70d34d0031aa10e775915ccfd390e47583d3fcf8093fb75c6527e78a4e09d85e4ddcb2e2a9ec55cfe393409762ba93ef346f869f820450a9f0300008b29f1dbbd2a344707d70c59dbc68dfcfe6fd46ae9ce30e5a5c8ff3cf466396ba55760a241c8e8dd70e5b92dabbedf16918920c6d245751bf7d06c2ee065dbc1f2a63023d7c4ecf5ca4f278b9bf4891f060faae2c59bf75bcae38e73864fcbbcda8b9e2d68c946e0a1a8bbfa016dd833fd9b4fa02a67faeff06510d703fd8e2b7232188141d480d66abc96afdc481f31e0c5e2ba2d0489fe3ccca462d977e3d9f8605dc03c3a8f77234577bbe177e700d9dbaba8e8d9cab884bf0a67d43d5b032df01381ec95e44e3fe06ebc0e31499e2de7e2567cf9c40188501a621907aebf313344ba34410833785e24c4c483d77e070c9934a71e377bbd01b1be02833a4912241f9e6c20d7d7430b23002669fb13a31bbecf6688cf03016341afd8d88701ec2781dff9a677e9fe0fa503be865963d97a0f75d51ad524838cb8d8c6cb21dfe50aaf7b62561f1ed3a585b9ab5ea9c4d9501e2e68c1264e9906a8fc5d5fe38251dd753b1f82946209b4af64d3742fa7b2e43f3c7e8bf88439ee297f2fcd793dcc14e02212ad1a05ae202c7dfe3323050ba69e8f1b632457eae9f87fb951500d1d093450ca31c75bc82138ee0b61031f9c6531192f3d07bd74c2de2e9d5f079a2cc43d2816871241c387845c227bb38200a0f43e177ac773bf51200d5800a5151c9037c38407fbde3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8551d3897b16f726312aa8205e8bff80b39988dd3ec1707d558fd8361b1cd4b5d6be82c14501f9fc4fba6e3faf9f67d7e422195395de7a608d3a7f6eff558247815aaa5cb572f32d135ea612a22644371985a47bd859806b9e1ecba6a01c07145fac597278afe3c7688c9170dbf84f566536a5079aa0bd5ff0300d57fa06c79ec17ffc13b74404c103cf3b3bbe11e609ee7ac49c8f9e41ea2b8fbf0469d2713b369ffc13b74404c103cf3b3bbe11e609ee7ac49c8f9e41ea2b8fbf0469d2713b369acfea0ce4ebf2a1bd7c7f40d0181865f3ba982d4d3cb9d490136cf496c0f98f3eb1e2ba3160965fa9705587c4a6baf5e0279dc94bed64c30eb84d13e596326dac5b9a86e4a62a86bee35cc382ed3439126a30ef61eb6bb5c15ea81a3f24fdf8f0f558da4fba3f4d2a86aabce7b53ea4a7d24d6581408fb754fdbb32fcea79816bb3730897979404d84d12d93f37568902e9532bb239d7e53c66a01c71731f84cff60b12e37263a826dd334d1bddee2d2df41f3db40c196775221bd2f3b959cea8cb016ecebf972bc846c0116e5a89d60d9fa9e27698582b7ca0298d84d2ef1ba5c3e9e3044cb9e4573f6a4d61a40278624d5379e9e3acef4ab2c8cbd34ea02c1bbc20bd69d86364eaa574f0dc4ced80c4a87057f0f143aea46bcbd8fbfad44cb756753f5413941f1e52485f35f8d7c9e2c46888a31275b0af6715e34667ff8a7fecd1e5236f8db0c2d152c71e7dc5003a094ad145f38051961702d5b10dc11c19fdebee358ec7a60f0f83663b4c9503663d97aa330ef8a59eb1e65f63e042f05e5e29c02d729b43684e883b941d69cafd76a4b00bacdbf6c6e825aefe65adf91d1a3a08e782b28037d803e0a272cecb97af6ad160f522bc872b253c50b9314a0db5fa5f0dcc455167cb1ac56f292864ccc5f0e85c3ed969bf159b50ee392ad80925eea9da16cc06dc75bc6228e707b65bd0a496d10d64566c0a61a3a903e593e91e8f28c534ea8f564a3dcbb2782d445ceffe638c82bd826088d85fda22bbddeee215c0da192e6bca3be7eb2f8598f81b2280a064ae3a45b3b8b5a35a5aff00d50d65260e83fbc1c919fadcd69ff6240c7f06959a61553087d00ef93c6d872889aa79d040a9a2443b4b89251b6d95239a932587a91014c87f1b9d0a9695f6533c3d4885fe638c1490888b22f961481147aa255a860278e0f1d138280bf26f5a10983809a35a8d9a0b8fb55589167a4b04d7db8e9d2d5bdd20d3aad8695e21cbcb62c7d71e6e9236097b0edaa5d61f4e656a0dbf1fab5de569417353851acb2e79362724475404f6c3a36a30b581864404c64b7a88691b8519ca4cdb909db00329b096ba885a572c293a113f2f389424bd15f03deb566299a830aa20d1cdd5a45f2560da2825c37574734aeb879fbc0fec4e7122db5ab6e0d0fac291f12b4da68d8cc6f076204363e74557fcea7e4a8e87211612cb54e4428bfa0e2525ada65646ced57c64de0ff228ce012dce599d132c24a7f3e66fac2bd0f6d90e19b03a5439bad5034fa56660e90790634c2e4b83a676959c12f750d7b2b6b00e8c21d8838b227b30506d92ec8b3663a44b795e5f8d77667cd7e90c538994fe1ce662a6a070ea406532758dfa60f2763ca8058dab1af2afee73d97cb1f8e5e31f5b93d793d3db2d1c5178dddaf79a5fa351fc25721077a7c9ce1ed247c81c2a580ceba2bac32433a315387b277111952374e11a20497cd5adf44ab715432c4a1ee2cc8b814634089edc6c8ef4650bccd7bd6342cadd4e220f63c6a301ab35b2f8a2edc40a9ed6d0bf0f281dea9d0c29e5bb455930422cdba9ce1cd64135210df8d0272cd3394b3e7269f2d21c341775c96654fc6e5564edc6733707fda7b275382c9ff9aac22b41a2e133069a5cec548c3ea230a572c0c3b922e927b1e9eebcf5d05cdcae8e6db6e11980ed711eb0730f8da636ce07dd89a5ecc7e33a753e007d4c06ebab737795b99e9f14b4c81e330f8597a36de7e77d71a36183f33840c57aea0c321e4031262785fecc64d8c1ed1b49508ebb94490b83a3810a5ab8f62f0fc2f563e2291e94b6dd042f9fecc076450b5a49f4a45699c2da5cf1bf2014cce120463dc6e4c2c654d5a9a488048e0c3192ad0665cf1643741450597e4a2cd48636ba257dc8ff956d95fcda3477d906d79d81a99ecda40a199e3c650d862558a3c3de9ab5a41836f765cf28e57f642d823552c328b3871a1a89d10537a226f6ce49ccd9c4026958cce0c4a3a29751905ba04c0512bd06cbf97d3aca2fba2eb608ad966df0e17c656f35295d9b54aed2665899548fbaa644969ed2d915dfdd7b89f92bc5e4d10519a4081e3884e8eeb5558e8329692eaeda5936befa1c25d072c34cf4e08274c2c654d5a9a488048e0c3192ad0665cf1643741450597e4a2cd48636ba257dc4c2c654d5a9a488048e0c3192ad0665cf1643741450597e4a2cd48636ba257dc81050b28510d1e8cf549e8e668a4bfccb1e92cb784312a65741a751deeb926fc458e9ab4d4012653706e4369532ff52179a27021b358dff9f28b3591b68f057329cd56724c27619b5bf9e1af38c75391df46f217750fb7e984a668e328586c6e4c2c654d5a9a488048e0c3192ad0665cf1643741450597e4a2cd48636ba257dcffb645243dd11bb329312cf5984e5bca0145fe0dd51050937a8bf4fc4349c9795ea6cddbe1fab21883646792f8f2013eb62c10f2ff06cccc270d20ec8439e1eeb3cf67aad24e4bccf8366aba8c02d3477a5ac7a6d85fba525341338ac80e08e49d17c5cf6bf6b6d9051f1527cce16b7713d855b761c4c9ccdf450c91d93273dc4c2c654d5a9a488048e0c3192ad0665cf1643741450597e4a2cd48636ba257dc56f8af6d7e9b387fd4b35e16d6bcb2a748e183f8351c02f1e3112a9f6e56393b3ae7f319654b4f820d7e26832a7e74bd8ab7e20bdb57e168f6152bdc431d9097c4a6cc2d48b6b0aff15fa9f9993364ae683983cb69b54d23e90daf43c3f84c172057e501cc2f2419e54821bf5703b4e7f051450a5050df00a9df6dc6e8984a59df2951ca09e8d1c7901a2af1c5d5a64fcec53b4953febab158de1cc08ab912e400501b95bce019852eb8871ffb64592579758a15e772df6499c4359ef35418cd6a81ddd917831e8e20577fcd17fcfaacc4b9f994d8ad54ef7fad735bcc788dfe6a81ddd917831e8e20577fcd17fcfaacc4b9f994d8ad54ef7fad735bcc788dfe6a81ddd917831e8e20577fcd17fcfaacc4b9f994d8ad54ef7fad735bcc788dfe4fb130b8110feac55874dbe032addc24fde9358b37581450e4e79bdfa7ff63d6641159fe8384f9bcd0735bb474b59a283932b09ee87565ee202bc53b9df3b678e593d42fc047435089f551bbf59a21927bdfe60025ec0dbbb2b0c50612dc9e7e82a2932e5cab05db371f0c47c000d99da95ef8bd7c2d9dd244837fbd2b1c80afd5ee6e7d91c33ac6e508e66cde5d9015b541d4416b951c03a5d4e9f2233dd6b609150fda7e26a34d17707cd78e971cbe76a261ef51291b2ca45a7a0cd9a1c0f81bd0152728ee5966a23f82c712bbf283beadf4b1ba19b1ac6411d90ba6fbc7c9910b1901fa056c01a8cc39806e89ef1e2577adb0648cd29c8b618d075931a5258ad73bb2fe7fc8bf9494770d30fc0437181cdafd077e2f26b1848908527c8e26a03dfa582e9f8dc589d7295223c328a3aed1318432d194ec636ff9139e5f86e8f007de5d30c59022db8b70d865bc5d79ff457c60002cb353972493ec6388b6fa6e052fbbb3bc97d56e8e3df4307d755b7555376c856c8543f9a056e0572dc0a483f38b079c7f5700ba3aebfdca0db3b936f64ed0b05dc401843b51b5f745d841d24e7c5c6b39a83cf60899b99fee1e7779d2ab52cb5a2bddca0f28b85b953ac2e78901eb35350fb9a9a77c5367674d5e1694199a5b15907b3800607272dad29eb358cc5c37976acdb18c01cbe4a7b8c34751aac5ec3b5e97a010f6ff4a11f3b61c6f9f76a89133e1283ae7d8cb40230b86ededf1d02b4b5434d1594d575432c90623823e93f2ee424e5720aa7b093e1b6b072805a3b015cebeff857c1f3a68354c2c654d5a9a488048e0c3192ad0665cf1643741450597e4a2cd48636ba257dc6a81ddd917831e8e20577fcd17fcfaacc4b9f994d8ad54ef7fad735bcc788dfe6a81ddd917831e8e20577fcd17fcfaacc4b9f994d8ad54ef7fad735bcc788dfee6c5da770f3a1bcd6a911be0f2f832d939befc0e258f5e87bbe4c18b4e0dd2604288ecf0229d9fd215a8e035568b9e3525c02c2b9af8385bc2c6a0eddf797963b1a8e1746bd58d419463455462a17325828fe30c56e9e8deb71065d9942ef8174c2c654d5a9a488048e0c3192ad0665cf1643741450597e4a2cd48636ba257dc93cba58bb5a7ef8379db07ab4bf01da680cc8e3a44aae65b8dd973bb63de3b37bc382f29b696449f7c80c19a1e148a8f518467a8483bf9a508dc1796f3b4e82f4383c369a28452bd4083fe2cabbc82c2040de04a5c420b4cb9cbf21fd72f3db0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85559805d3b8a1cfe48f9b16a3e8dab92938451b68a5d4aa6183b733d52a26fec77a47d32e83817d304a1946ec11078835ba2206eec0d24d4b2e810bed92bdfb5b09fc0655fbc0e56ed673318c16b86e0385fc62b84f767d027d73c6fb29ef5d2b98b4db6f9f384239c4268bd5dd7e8301883a937bb3928d562f07d6b6280280c67b3cebb6db7ab04684752412a47301eef3a85b00ecfd1b134973fe39d782781bd88d55dee930720a34784f16a5947d8be1fd6f93977da0bacc40d683940fddeddaee08c9ef62c5f31c330bf921a22db3ef639838d789f4179590075bbe412642750fc0a9f601f8a1cf8450c191199ef2a636ddb31b93d80570bf45e9a99ae1807a69271ee9045be2bf357a36607cec48601451aa1b111230387b28c3d9e560fbcf679fc822483f1fc1250593b6166044b3aeabda38b5ec00df6002e0f3b80e5725333b7fb255d73b522bf93ad88ab5e59fb1dd52cd7509ed85e5b31d068f21ab04db6fa8a187e8bf0bf256496cc5c26124e87ed3986fb8f325b4b106f8677d444639619aa40f3a31556de2e502757b3b5571a7158c501532c943abb3126cf169c3286577671e83096966f263d1a445e4cd25b94e07a114cb27eb33dad978be030380cdc03f5dadc8395c316687bc6e64db6bab51ac457361eefb119467ca9f7b540f728f87f3883b444b1ec245472bf6c395042f33f0d49fdde92a4aeb1ef808999af07e584186863b62091fe883c176825af293696ac8c226e5ef1f1bad70ee082b6051369c67e09e20e2893db8b5f41707da3fb559cd3f9d699f9a0b3bba4f05c584d6392a1a83b8167dff691f1615e9c9ef5841c5068e7c09d16a273570ddb12b87ef708cac00a7fbdd85026e149f9cb5efcc9cafbec50164a5bd9dcf50704e2980d23dd1991c8b9bbf9becc3272fc205ab071f1c7abff42e785dfa5ddc244a3fd453a02a7ec66d305a88da578e2684d1101bf5c59221b5b02260a565d5ee507965b1988fe09197a798a90cd7f05bf94802149f2b3964beaa0c78d7a00548b0d36e3e6d14ef0a1ac2dda9cfc4923c8f029c52a3b4f425d9f74f682f806526e4f8fa2b81095ff4366ca58f13a8a6b54dcc5458e5f74fb2dfb85d4980229d586cf9144b69a57d0e375b4aaa1f1ef58ea0d1c7649eb2186ab0741ebf083c40c337bcd5ac7f73a9448975884fc5ea047e806c1ca8546d324b7e08f10a95fadc47290a4224ef9a11844d6253cf7faefbea95b907470695674e70e5d29017aee95aa17ed300bf9a72c6022d2023aae92830dc3f7430782bee545587e9ae6296adbaee344e02d591284febbb3aed3d42baf077e8ca63f5556cc7e25834792d9af46670f4552cd71c8d2f004356fa793b29e450d65db1fb361bbfa695d5458ed5610a7cf22a93cb73b9abc59043b4125e7dc7a9f4d2150f0094486c8d6d1f1b8583dbc4da71828f83e29c2ec3442b0e8061952c40d34d0ce2183b155fde7516a1ec807d50da0c904cc8d8d6564d11dbde9148c4f254a28800339cd48b7becea576f9bb635f25cc0abeece73548beda2abf3bc5364a79223053a60e1c2952e56eb900d7f531873035c72e0abb98015278730fd2cd84504150be6b6e0a0066c869cbb9600f6132ed6a63e1a2dc78a6111a2c49dd26241fd11031b3e3d0a99bceb5710c8377d72d1666f148c3ecb8492c5ae4035aac8d2cf8bc993a462fb7357392d362d7e1c01b5f3f1635132189005bdcff87c31b334fc308fd4dc63b345695590facbd10560126b2f54ee23a6e62fe3724d9f957503d6c9f93f741c952b8d9dc065faf905377d09b48b9447dd7787753d6e60b3926c8a3e059e4a702707e0e0e4e74ff4cd5a0473ad6ce682201bbc049156fa948fc8083834df59def5bde2fea2ed3843716775b1bfbe2fa071550a8a12e29d39ae26ca33ee0ee7900e24621f10dc26ab81d96f35efd940b9756d3c7f65adf4d44d0865a615115576cd23a489d461feff393c3d74295c565b52edeed2753e8cf92a3ff920850643a803dbaf84b7066ce4d539fca88057119824eb28420c1dec15a5ea3ecbbe87ddcf90ee646a08474980ab96e66b4328c08eadb898359192eb59d2e259fa31be24315ed0a26201bf0aef934f1511b20300c7ac03b5a4dc8d6fa8890af5015344d51c4e2b123644818597d6be6ab1cc6f25ac61427bddb1158e62acbc9edf0da1dcb310b9f4dd60b1f8a74835d1db83b6ac9a81b5b22aa0d72586ac1385b3e1fb64f7bcf5500961751baf123fb6771fb549f4d36b59e2e518d989615253a4e90ff4356b1544376b9278747d7501f276775bd46ed82380675cad78815b110fb626bbcce47e998080e1a1a1dfa6c95629ebc81c2bea58f98504e2f247447a7dec00b5b359b1276976407869a4caa8786657e5aa457e569e58f3a4219f8be415c1f2595d5457664d1a0220b2d405a1f3b6c19665dcb6a95942b467060e21c163d46a3081d5b3ca31a4ef6a2929ce833057ed3ae054a36646dc62f7744c4129d56ff720130aa2a27327b10b9f77cd71d6987922c10a5cf8483c2fa7dd8229eb15c2d806cb51228df8c837b0b32504653a353068e12993bf10ce9528b8b654b854a93b89007a98732f93fc989c7617a7b37cb24d477a094d36e556970d0046f100c85aa5d672fae72bea2d85eea832bcf38c8e6b6a6048ae0aa8bb950171a3bcb9bd14ceb97788a159d8423e5a9c25249b5b7c8cd00797931edc89b01c37e7879fb3ef87bf5e3607d11743fb243199dd0fac430b45dfe714328b84b44fd3c9420358788d452b4bf48f0f0589ef2c9d939f5c88d71c644888b07168c21cd164207f0aed710a93c0c04e81e3e19e283b9043cc8aa932b7a5656880dfe24210fda63071699baf168a5d75e054ee8ee113579befa83f425eee5b1747b239c6e7247342d1f4062ab7f8ffddb18ffe1d6d790e936473d2e79187f76527cbd15840d66541b99f07f92146980b113052a6255bbd90f513558b7d4d28f8a24c35f8cb4960df920c8d4b3b4d9196655ff819fac6e9438db3865719e38feba4271f4c40348f622c58a668b6a94300ac1302d110b386e46bc4d8304fb67fba1855c156b51a6258c2ca57e7a01820924ea88cd31c7d21d13c6ef90cec95324720663c473dda162d699adbed7f3444e031d61fe554b2c698e6da26bcec26dc49eba040cdddd7ad486e8bcc9fb01ea852f81de4cfe1858e681c56661244d51dc1ee4a11126e1510a16d29593db65314c7052c31d270744e0eabb16fad5bec9254e6f476f7de304c426ba9c6eccaf8b8e5aea7b695a8a5f80b9d96c6e86931702860416deb6d656253b25874ae8a0a3537358dc287a805e82fde666e3e0d2888c1b307e6c3833d2db4b00c062d9fa379cd776e06ed6a903fe90cdbcf10c7f95759eefff5f72b13feff88bf9b27177f80c0198c00da3c1535382bd087ea81ee693e09f77ad52d93536b490a210f4e830c90f88c655ed1a0fb0ccfb8c293adc204ba7883d9b4a738e4cc03b1cd27845a609974836020e330429af8ea0b2895739184e6e50fae48bb5b75e5fe181d994ecf1e704bc56f8816ee6074a7fccc8e0e8f0629281fc58a436e70649ef4500dbcb60e35e743d50ab9b849689e28c825730d41fc9c3b7465d9cd419a32bf0b61ee71b36b260b4179ad3c46c8baa682066d960f82ccfec7025c830434369a3465d44c14cfbd91ec6318d1f5648282185a77aea0c758c79f800b7e1dbd6d0178cec377ea05e1a84d3d9668519fbb25b2b870d527717f4ef40fbde979efd97a2c09e043ac4056e9d0e68b8b4faf205a77eff2ca6825a847004a255dfa5d9823ee3e8f73ce2dd61157d9f92dddf6f085df13c7ce3976883e0d6976036abbb250eb85d63a89719760c8f35a1633406531600b689c27a8415ee817b0d888daa149cc9d3d103886fec21b4a3b67259c162751e733ed8cf3e93eb00e3da7b04d4143011bd4a87b4ea1cd0d1f20b7c512607e2f72efb7ab5878959f353180bef0694c3c5f8cb13de5f5ee8a1a6bcfac3dd2cffd1b1f850d8e69caaa96f4a56d95a6c4f757ab9e587d9b79841735492ae49405d4b433db31f61214c52a379f77390ec7bd7ca4368948cb998b56bf1ed91c4f4ed0970775aa0e5506aaf0c2f4fc1a5ea8d6ede3239e75d8528b7c8a57967f67d42b20b4ee5416faa8a4e907e3794ed062ba28ed6b00d70a6c62343bbacb1a950ee85eee08c6d370ab38e75a839e098df3bed659c527bbda77dadfd7af442b792a6c440114c30305191cfa3c6fd567a09c0541943e7ee6feb835314c040fcd907a67ab42420b803642533af8b485f214d562468236e95ed885d3093036169f656b28f551e84167cf1c6376f01eeaa7694e52ef5c3c34cf832c18787087e6db19c887fd1cfabac37c42a93c3646cf1e5a346e181386e9d854dff271d7921b8f67a9c4eed65147d825ceab209eb6a54adecc02eff4ecc9674ac407639e44f8bdae5756d7ebf5bd2eb37e987f5822a2fe6ceee1cb2bfade11a0351f6b4618bda10586f758700c24d737d63a7552c96059675915b2f33cf5c23ca9c3489c37bf230aa1b02a090c408d7840c41e08c82567ea451e5f0dd42db2819f938cd1dc5775f29d3f94294c8a711088eb1f04ffc91103537c583a016a7d915e30a9ea469b5edf85a91b3c0bc799434a000d8a7ab5d9a90625d2e48d26faf0935eb1ab78c5cd24456a7317043d1b2f27466aa645f5228b1b83441d59f6f9bc98693a652e38d13cbd45cafe4e0a3fdf98927361af6412411e265ad74c9c6312d784c708e988c01d813cb034f09a749da6410902c56c416e22c13761fbd0623492fec128788cb1920dc970e1d831871d38cd6a84fae341dddff2a6c4a42c68e0d9a7fc498f7c1f4acda60a4f5d0fc533b37302fd55d6e0960ccfbd0aa38b4d655bc03fc4fca6506e499e0a549f0c55d4cc64fa00b505afdfb41d6fc122f69cade93ae3ea09a09eee180b2df628a6845adc5aeb35c73194fa63f3a5124af76027c96cea1e3ccb3a8b415910dc773daab3e6222fe24b5b2096313d2f700fc1391c6f5e69edf50b71ab8e9c922bf4fc05cc2027591bc66bab07417f932f6e039ca8c2805af7a03d18b225d1413213d1392f5fb3eafd63de572f20f6f8cb7bfc382c476d1be90ee2e04de64fc66870b0ff99f1407bd9ad98f75f3ada177377e7acbafdb295f47683c306f0d81c1f1df287b18804fbba145357a722df42e25de8160e81d7d5f9ecbbf57747fc0d6557915b0a45c3e4c557899c07c02bbca2c168a5e2bcfeb15240582e4ced2c2eeab419c9d1b37f57819782f8e8b82ab51eef1af5957a9619c00c705e7846804891cce4521a58ca8ffdc04bec29b7596052e4f159b26d66a1da4dc11efd3de59420123a49582198acadb12c3762e8a9225f17b553b9f13884dbcada745755227ad24150f576205c1bd0252c3c09efc9c5385ca6f3bda79c65d9dd0d15ed1599868957800d0e8a64370b72b36611ff754eda653035d06e2d055561e4f684d6c70607d210c6a3fb9d3096d591f7be637b51a99fac5f0c9b817029a99916d891f396aeb22d5ae56eb9ea8af96b889370f91443a308f8039dd9bdbdd9fe4ce6a8b508476792f4689820635f5f9e8768f831deddc785bcd1c459987e75ef69a7efc16042748c15b583abb26be6af520da6cb5efa5969163c37552f92fa5d8474db45137610d57465114d0a38e75ce60891e55030334424e9acca992ad72d0d6c4a47bad62d80ea3e20d1419524b9407688cdf43de7dc4dd6a19d4e24321041f4b8ef5b6ffff0695a9efe68d03c5c95def97227456d985c4fcca6f5405932989ab408ebd32efae2e3ced3c544fe47576a4e695a97914295f0f82575877ce925ed99e474c1600e89bd9470eb2a7f6ab9146de816d317d8ab716139cf504ce9042544318ced6efa371f6076e4f67b03ed28584e4d7dec9b17db2724ec0f15833e619a2f76bf691d0776559cfb9108829a1015e88d5a4546d867133ac2bd2c94d87dcb5f3f5762cb14b8f41d7b3c97a2591a307a7d5fbe87130153dd7103ae4ced71357fc06d68392255d589135a98cc53f8029fed8b8c9f336dd82b5d0be7379be6a05d6cc88d5730f6bd60dcfac6bdedb8f668428228bf7856a1f0fc83fd8dd407c938ca5eaaaf0d05c4a706030ed05660afef0d756104150506e16cd11b5d93f67b11573423e0191b3791bc58e4f265b4b4cd0430caf00f7d98c509c3fc44427664578e75343698517f3fec34319357351a5fd1ae63ddf9101860eb7a2dd613aca9f289bd14c7cdcc4aa8a0408dce362042326686c89bc2a39845574c108a000d555d3dbe4b842c011d89feb9f89dde071d57c210e24c62e5de2b7b579680f45f1b66ea6077917c7162087a39fd230f46d8dcab390cb673fa6813b8d9e4e90c6e5978e580b044a7af447170dbdf69840022c650ce842f502424df84ca4de386689b0d216842178ae262dee17137afe736b5871cf6537ae0ff26532ae2b08a4000dbbcc56b330d9b1a2263f4bc17ed2a32a2b8452409d073d1217e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8558fe40523c8c260d4d7c5586b07794a1cbcfc8e51beaa4eb83e023de7e9fa5f92ce2ea94565e2e1860edce04436fd41f1a5e1864e4b71b9c5df4eecdc88b4454253b58106e8354f65f5eab566053c6051dc159c9026bd618b79258fe50dd6c6b4600c7f294c35502f32ce2b7d57b2d7faa48fd98e6906e70df9fcf3e13869c90c0ad374482678e16f1cef0c0d296a3176a14ff2ce75aea2a538ae2a5da197122756ec23861533bb49e42467ddab063313dfec96f7ebf3b4a0b1996a48de925747d529a4c6381281c93376662e0e7025f7dfee53b7faa4b55dcd99742648be562c8096fdd1996f2c995706215e0ed7b43975699399f937ba6ebb5d67406cb562d2879736742e8dc5c828ece2cdd2d37df30ff321573a532e9ec3b655a7651b08c8e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e4c3538b06a7f065c55085d3a28000173099205d284b07701ebd7ff515e4e0adbf3eb9ab959187480701901b1fbc0ac5796267b82dc546b2b19d71e50d3347935198e7f8c24e318b3715e6bef4f7f32339d083f0b911cc72b502aca9773ca2f49ac1fc33ecefb5d8edff8b318d43e3d7ad0a206373b1651145eb7b84b0bd347cc0fbf8007054194b01a4003fd90e68fddc84bd7fd0ea0415a7c4212084e87f0f691919fc545e683f3336e9685b7b7f2de9249d4a0f829438798660bc2aec1bc3e9c851e87bfd480216ec24ce1ca8fe7fb4f8ebde34f8b3528c1018542e6a3c6228c03c9013c1f5a3e2a8b9220d77f3d100e06e25da37fc5197dcce8619aaa1c7f4a1270a17f6b55a6cc8ac416f8320d534198e5ed83607230362fc493469770c5bc089305c118625c3b7dae00b5d27ec1c78ab54b238b5238b340205711bc86d9c15cfff2c5b771139d28139aad61b535f54d6a31bbddfe7d1468feb766f8358d08c700c02e670402879f5252a3a8c574bc06a22d2e6f0b39ae3df3ddccddbbc75e89e8cb695d334ed9d9cb2916297fcda7495ecf0a58a13d1ae1987e88ece125b31d5034b36d7266094b4987b9665d32b47846e077683d0db92d30f4d96e6572d4469017a58b9484287086b3370a3afcdfe2c93c7ab21723f7435cd8f6631a6abf498e33718508e80cdc53dc751c170359c081d395f97bbbd9575cce0ba25001346971708eeb2d01aad7d007251ebd9055cec813ab00d95a70b430262866762fa873e43bc7291dec0e5180acfb1f45821eeed1284ebe945e785955563cb1b7cc6a4d280bf2cddf858d2679a55e105d31b1b93908a680894e347ba9f1b1bede42d6dc3165a86591c0af5f1e228252b9c495dc4ba8aa23d201805f3081b9b67bae3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e5076c193abeb4027041f3a5f5e9c1e6d89d3ea444bfe4d3c87c68ac4837e168e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8558c6e17aee23337b95a27c182eb843d29e5a4b89755272acdcea2bf161b214444837186d9d020071c320d765a471d087db07737d85b2843ce81bf70f51b7466a21331c78af2c5da817faf9addcc486c1b9573920d0f8687fc1ac83929b1abe670d12ee20c700ff5dd5ef3d6bd6c5158888f5e478a522da7478c86815192fda340d5eb33315a97e5fd5983cfbd7d22c01ce7f585de30d77ecce1c55acba3790347d826c6538e9616a1b44f288a4e43846d4fc0f918a0a73efbc486f75ad208542e9de8fc5d1891069e46b805e45a2ae71883e32250e8d250b54e6e8d387b6f8019a751212433db218a6fdd146f02cf89df31758646fd37f7de2f403ca3cfaf52a051aa787e006f117fa66f9d2ee194468ce49bfef6169010c1ef2ab865c0f6b71f08985c1dc60451026ac902c85d2406aa3616516490b2f879598e16919ad5b95c49196f24cea409c920dc701c81c1289cb2586e81d477c009fd1baf204a2a197f8ab2226545ea64a8165927ad7b7f5a9c5a59e72f32b0e8cfa41cd207c92ea5fba88a9ba1a26f6677ba2d2f464581bc54ec54cba78830fdab0afebd12570e659261d1cb7fc41e4076cb0f2019efcf0f31e3185197f859924649da0db5544bfd648063e0bdf3a16f3108368ac8853aa98fbb87966f85d62bdd77aa6a6efb55580ac023aefb3c6b798536b9ac1310bfd6542501647ebc7feb4e94b61e5fad867917abd7940584b7e29b82e562ed63db15e2b68155bb6a52ca28a80a0fb5063ef2a71c53b5f5264adef7bf6f12b3e46d95629b21c9ebaa315afb1e57dfebf9a3553ce9b1ab59c54cf31a15ce79c2091f7c66c2b7199504363bc1d40d187f920e3db76d37b5060785b6588dcb00b4a1eb7efcdf0ac454b6f77d8289ed1dda737b777951d40177b2ea503d72f2bd97e8ba558de0795fb15106c2074da03e875208ead703361308034ea00abe37a2daf22fcd17feb6584083d29cb93b5fd14eda4a94f54c9b63a9e628316e1b712242164fb74028e41c23391b6724042a66c2a52a4a081e46f59d5f1cb7bfe2e95bd50f56f92fe170c43b932332efa2b6d02765827686e442e326b694975b1da58530d4fe420fa3dd0bfdfa2149f579af8b0418fe00bb13f9ba854b1cf3d7a9261b8473320b1a3a5c2092f653ddfd9d1b79683faa5361468b4a7bf329dd67647104ca5e83f0bec4d7a1ea7b633acf7054ac57d32f43d707de57f533833f11e414b939e5cce282886e801118d1cf4419c743761c67b75782596146e657de6ed6e9c82178fbfcd5eb4549d61f7a2ffd9cbb75f95bfe517f4acc4913f9f3a0ee83c02f1153bd407550b37d7b56d39b6d26357531e14b1802f95c1634a6e1cf319b551ee110a76486551b33cf7fdc294c8804a34e4b444ef213ba2ab4e5345ebf8b5ea10b83b65f2dd74395b8537592a5747f00b135eb5840d0151a5f08c4bbf9230c23717c4c95104253febab4b9143acc8951f375504a3a64f7ef13326b254ea93629f3e7a798764aeb69eecb4f1698e1d41ff0627527a5dbfcaf0ea5185875248587348baf33df176a3296cf2840543ac4bb539065544ff3ae4b2783979f469f27788a01744efc68b54aa13bf6f2e345fb7af52ac5eb6df001a0ab4b458050befb8a2a6fc4b1984a0f912d07554599a08101199d754cb810a300b6b809fdb6f93c43d40f2a62ee288a1d181fdb828963c0aaaa62e453fb979c19332fb569134c4c54d3779f1f25cd976e2f41cee1e4f9dff46424a216598103db0b58f0664f62c51287c1fdf37272eab06e42fc15085676fe90cc338ee4fef6870b31dbe31b926c578c2cb1b67483d9690dba7fd46240c525fef23be2f2690af815242250b1b46764d8f03e0b1b3b416b8d6b39d39e0f43a46df28a37800f266dffada811d45327c930e82971ba78f76f004d677a29f6b5080739bdd4ce3b2397d7662b381fcfd8af1292ab92a12af7b4e866e61d7f23b431f49656c82be41323b38bebf9bbd4225363017d2eeee737ab186c76fcfd93f0df9a99f58dd4e078f3c283692b3154690d39a3fe9c9d02c3b0aba8452c5b109f40ef7f0d2b11667c9de8deeab80f02218c5976d0a2587f3c38e8542d2131fdff5fc0066bd2079d494dccfb602ca43a6cdb0e090688a9560447993ae898fad94521b472b338160aae0163c8ddb4780313a1ddcb09b953ebb1669acd5465448c6b885cd5545c36161adb699e9070bbbadda229089d593300bf7ec3d694079c957d4e6327cb106c8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903b1842703b4253d4e037a5a17d8e57d436483cad532ff76eec92da8443c463d7310c99ee8eb2dd56e6f110587cdf4dc30878e7f427d27ab41c7637763099b064df0ecefb8ea6acaab244232415b92984735aac9b6ee3b3bf3df27c8bd885030farootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootcloud-init-23.3-150100.8.71.1.src.rpmcloud-initcloud-init(s390-64)config(cloud-init)@@@@      /bin/bash/bin/sh/bin/sh/usr/bin/python3bashcloud-init-configconfig(cloud-init)dhcp-cliente2fsprogsfilegrowpartnet-toolsopensshprocpspython(abi)python3-Jinja2python3-PyYAMLpython3-configobjpython3-jsonpatchpython3-jsonschemapython3-netifacespython3-oauthlibpython3-passlibpython3-pyserialpython3-requestspython3-serialpython3-setuptoolspython3-xmlrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)sudosystemdsystemdsystemdsystemdutil-linuxwgetwicked-service0.723.3-150100.8.71.13.65.0.23.0.4-14.6.0-14.0.4-14.0-15.2-14.14.1eie#@d@dddJcd5KcU@c@ccFb@b8a)@a @a @`:@`r`m` @_@_@___u@___@^W@^^@^x^}^|@^{G^E:@^C^C^*@^!^@^]@]µ]@]@]@]@]@]]Z@]Z@]V];\\@\O\Z@\o@\o@\o@\R@\G\3?@[<@[ٙ@[Ѱ@[@[@[>@[3|@[@Z@ZZI@ZZ@Zp^@Zo Z`@Z]@Z'Z@Zr@Z@Z }Z@ZYYéYX@Y@YzY@XXX@X@X@X@XU(XOXN@XN@XJXIK@X@X>@X<@X5X43@X(UXX2@X@X@X=X=X=X=X=X@XXX`@W@WWڍ@W;W;W@WUeW(V@VU3@U\w@U>$U+TgT[@Tи@To)@michal.vyskocil@gmail.comrjschwei@suse.comrjschwei@suse.comdmueller@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comsteven.kowalik@suse.comrjschwei@suse.comqydwhotmail@gmail.comalarrosa@suse.comrjschwei@suse.comrjschwei@suse.comjmassaguerpla@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.commloviska@suse.comjgleissner@suse.comjgleissner@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comdimstar@opensuse.orgrjschwei@suse.comtchvatal@suse.comrjschwei@suse.comrjschwei@suse.competr.pavlu@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comdimstar@opensuse.orgrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.combwiedemann@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comdmueller@suse.comrjschwei@suse.comdmueller@suse.comrjschwei@suse.comgmoro@suse.comdimstar@opensuse.orgrjschwei@suse.comkukuk@suse.derjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comdmueller@suse.comkukuk@suse.derjschwei@suse.comrjschwei@suse.comkukuk@suse.dedmueller@suse.comkukuk@suse.derjschwei@suse.comrjschwei@suse.comkukuk@suse.derjschwei@suse.comkukuk@suse.dedmueller@suse.comdmueller@suse.comjgleissner@suse.comdmueller@suse.comkukuk@suse.dekukuk@suse.comkukuk@suse.comkukuk@suse.dekukuk@suse.dekukuk@suse.derjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.combwiedemann@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comdmueller@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comjoachim.gleissner@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comrjschwei@suse.comtbechtold@suse.comrjschwei@suse.comtbechtold@suse.comtbechtold@suse.comreik.keutterling@nodefall.de- Move fdupes call back to %install (boo#1214169)- Update to version 23.3 (bsc#1216011, bsc#1215794, bsc#1215740) + Remove patches included upstream: - cloud-init-fix-ca-test.patch - cloud-init-cve-2023-1786-redact-instance-data-json-main.patch - cloud-init-power-rhel-only.patch - cloud-init-flake8-fixes.patch + Add - cloud-init-keep-flake.patch - cloud-init-lint-fixes.patch + Update - cloud-init-write-routes.patch (bsc#1216007) + Bump pycloudlib to 1!5.1.0 for ec2 mantic daily image support (#4390) + Fix cc_keyboard in mantic (LP: #2030788) + ec2: initialize get_instance_userdata return value to bytes (#4387) [Noah Meyerhans] + cc_users_groups: Add doas/opendoas support (#4363) [dermotbradley] + Fix pip-managed ansible + status: treat SubState=running and MainPID=0 as service exited + azure/imds: increase read-timeout to 30s (#4372) [Chris Patterson] + collect-logs fix memory usage (SC-1590) (#4289) [Alec Warren] (LP: #1980150) + cc_mounts: Use fallocate to create swapfile on btrfs (#4369) [王煎饼] + Undocument nocloud-net (#4318) + feat(akamai): add akamai to settings.py and apport.py (#4370) + read-version: fallback to get_version when git describe fails (#4366) + apt: fix cloud-init status --wait blocking on systemd v 253 (#4364) + integration tests: Pass username to pycloudlib (#4324) + Bump pycloudlib to 1!5.1.0 (#4353) + cloud.cfg.tmpl: reorganise, minimise/reduce duplication (#4272) [dermotbradley] + analyze: fix (unexpected) timestamp parsing (#4347) [Mina Galić] + cc_growpart: fix tests to run on FreeBSD (#4351) [Mina Galić] + subp: Fix spurious test failure on FreeBSD (#4355) [Mina Galić] + cmd/clean: fix tests on non-Linux platforms (#4352) [Mina Galić] + util: Fix get_proc_ppid() on non-Linux systems (#4348) [Mina Galić] + cc_wireguard: make tests pass on FreeBSD (#4346) [Mina Galić] + unittests: fix breakage in test_read_cfg_paths_fetches_cached_datasource (#4328) [Ani Sinha] + Fix test_tools.py collection (#4315) + cc_keyboard: add Alpine support (#4278) [dermotbradley] + Flake8 fixes (#4340) [Robert Schweikert] + cc_mounts: Fix swapfile not working on btrfs (#4319) [王煎饼] (LP: #1884127) + ds-identify/CloudStack: $DS_MAYBE if vm running on vmware/xen (#4281) [Wei Zhou] + ec2: Support double encoded userdata (#4276) [Noah Meyerhans] + cc_mounts: xfs is a Linux only FS (#4334) [Mina Galić] + tests/net: fix TestGetInterfaces' mock coverage for get_master (#4336) [Chris Patterson] + change openEuler to openeuler and fix some bugs in openEuler (#4317) [sxt1001] + Replace flake8 with ruff (#4314) + NM renderer: set default IPv6 addr-gen-mode for all interfaces to eui64 (#4291) [Ani Sinha] + cc_ssh_import_id: add Alpine support and add doas support (#4277) [dermotbradley] + sudoers not idempotent (SC-1589) (#4296) [Alec Warren] (LP: #1998539) + Added support for Akamai Connected Cloud (formerly Linode) (#4167) [Will Smith] + Fix reference before assignment (#4292) + Overhaul module reference page (#4237) [Sally] + replaced spaces with commas for setting passenv (#4269) [Alec Warren] + DS VMware: modify a few log level (#4284) [PengpengSun] + tools/read-version refactors and unit tests (#4268) + Ensure get_features() grabs all features (#4285) + Don't always require passlib dependency (#4274) + tests: avoid leaks into host system checking of ovs-vsctl cmd (#4275) + Fix NoCloud kernel commandline key parsing (#4273) + testing: Clear all LRU caches after each test (#4249) + Remove the crypt dependency (#2139) [Gonéri Le Bouder] + logging: keep current file mode of log file if its stricter than the new mode (#4250) [Ani Sinha] + Remove default membership in redundant groups (#4258) [Dave Jones] (LP: #1923363) + doc: improve datasource_creation.rst (#4262) + Remove duplicate Integration testing button (#4261) [Rishita Shaw] + tools/read-version: fix the tool so that it can handle version parsing errors (#4234) [Ani Sinha] + net/dhcp: add udhcpc support (#4190) [Jean-François Roche] + DS VMware: add i386 arch dir to deployPkg plugin search path [PengpengSun] + LXD moved from linuxcontainers.org to Canonical [Simon Deziel] + cc_mounts.py: Add note about issue with creating mounts inside mounts (#4232) [dermotbradley] + lxd: install lxd from snap, not deb if absent in image + landscape: use landscape-config to write configuration + Add deprecation log during init of DataSourceDigitalOcean (#4194) [tyb-truth] + doc: fix typo on apt.primary.arches (#4238) [Dan Bungert] + Inspect systemd state for cloud-init status (#4230) + instance-data: add system-info and features to combined-cloud-config (#4224) + systemd: Block login until config stage completes (#2111) (LP: #2013403) + tests: proposed should invoke apt-get install -t=-proposed (#4235) + cloud.cfg.tmpl: reinstate ca_certs entry (#4236) [dermotbradley] + Remove feature flag override ability (#4228) + tests: drop stray unrelated file presence test (#4227) + Update LXD URL (#4223) [Sally] + schema: add network v1 schema definition and validation functions + tests: daily PPA for devel series is version 99.daily update tests to match (#4225) + instance-data: write /run/cloud-init/combined-cloud-config.json + mount parse: Fix matching non-existent directories (#4222) [Mina Galić] + Specify build-system for pep517 (#4218) + Fix network v2 metric rendering (#4220) + Migrate content out of FAQ page (SD-1187) (#4205) [Sally] + setup: fix generation of init templates (#4209) [Mina Galić] + docs: Correct some bootcmd example wording + fix changelog + tests: reboot client to assert x-shellscript-per-boot is triggered + nocloud: parse_cmdline no longer detects nocloud-net datasource (#4204) (LP: 4203, #2025180) + Add docstring and typing to mergemanydict (#4200) + BSD: add dsidentify to early startup scripts (#4182) [Mina Galić] + handler: report errors on skipped merged cloud-config.txt parts (LP: #1999952) + Add cloud-init summit writeups (#4179) [Sally] + tests: Update test_clean_log for oci (#4187) + gce: improve ephemeral fallback NIC selection (CPC-2578) (#4163) + tests: pin pytest 7.3.1 to avoid adverse testpaths behavior (#4184) + Ephemeral Networking for FreeBSD (#2165) [Mina Galić] + Clarify directory syntax for nocloud local filesystem. (#4178) + Set default renderer as sysconfig for centos/rhel (#4165) [Ani Sinha] + Test static routes and netplan 0.106 + FreeBSD fix parsing of mount and mount options (#2146) [Mina Galić] + test: add tracking bug id (#4164) + tests: can't match MAC for LXD container veth due to netplan 0.106 (#4162) + Add kaiwalyakoparkar as a contributor (#4156) [Kaiwalya Koparkar] + BSD: remove datasource_list from cloud.cfg template (#4159) [Mina Galić] + launching salt-minion in masterless mode (#4110) [Denis Halturin] + tools: fix run-container builds for rockylinux/8 git hash mismatch (#4161) + fix doc lint: spellchecker tripped up (#4160) [Mina Galić] + Support Ephemeral Networking for BSD (#2127) + Added / fixed support for static routes on OpenBSD and FreeBSD (#2157) [Kadir Mueller] + cc_rsyslog: Refactor for better multi-platform support (#4119) [Mina Galić] (LP: #1798055) + tests: fix test_lp1835584 (#4154) + cloud.cfg mod names: docs and rename salt_minion and set_password (#4153) + tests: apt support for deb822 format .sources files on mantic + vultr: remove check_route check (#2151) [Jonas Chevalier] + Update SECURITY.md (#4150) [Indrranil Pawar] + Update CONTRIBUTING.rst (#4149) [Indrranil Pawar] + Update .github-cla-signers (#4151) [Indrranil Pawar] + Standardise module names in cloud.cfg.tmpl to only use underscore (#4128) [dermotbradley] + tests: update test_webhook_reporting + Modify PR template so autoclose works + doc: add missing semi-colon to nocloud cmdline docs (#4120) + .gitignore: extend coverage pattern (#4143) [Mina Galić] From 23.2.2 + Fix NoCloud kernel commandline key parsing (#4273) (Fixes: #4271) (LP: #2028562) + Fix reference before assignment (#4292) (Fixes: #4288) (LP: #2028784) From 23.2.1 + nocloud: Fix parse_cmdline detection of nocloud-net datasource (#4204) (Fixes: 4203) (LP: #2025180) From 23.2 + BSD: simplify finding MBR partitions by removing duplicate code [Mina Galić] + tests: bump pycloudlib version for mantic builds + network-manager: Set higher autoconnect priority for nm keyfiles (#3671) [Ani Sinha] + alpine.py: change the locale file used (#4139) [dermotbradley] + cc_ntp: Sync up with current FreeBSD ntp.conf (#4122) [Mina Galić] + config: drop refresh_rmc_and_interface as RHEL 7 no longer supported [Robert Schweikert] + docs: Add feedback button to docs + net/sysconfig: enable sysconfig renderer if network manager has ifcfg-rh plugin (#4132) [Ani Sinha] + For Alpine use os-release PRETTY_NAME (#4138) [dermotbradley] + network_manager: add a method for ipv6 static IP configuration (#4127) [Ani Sinha] + correct misnamed template file host.mariner.tmpl (#4124) [dermotbradley] + nm: generate ipv6 stateful dhcp config at par with sysconfig (#4115) [Ani Sinha] + Add templates for GitHub Issues + Add 'peers' and 'allow' directives in cc_ntp (#3124) [Jacob Salmela] + FreeBSD: Fix user account locking (#4114) [Mina Galić] (GH: #1854594) + FreeBSD: add ResizeGrowFS class to cc_growpart (#2334) [Mina Galić] + Update tests in Azure TestCanDevBeReformatted class (#2771) [Ksenija Stanojevic] + Replace Launchpad references with GitHub Issues + Fix KeyError in iproute pformat (#3287) [Dmitry Zykov] + schema: read_cfg_paths call init.fetch to lookup /v/l/c/instance + azure/errors: introduce reportable errors for imds (#3647) [Chris Patterson] + FreeBSD (and friends): better identify MBR slices (#2168) [Mina Galić] (LP: #2016350) + azure/errors: add host reporting for dhcp errors (#2167) [Chris Patterson] + net: purge blacklist_drivers across net and azure (#2160) [Chris Patterson] + net: refactor hyper-v VF filtering and apply to get_interfaces() (#2153) [Chris Patterson] + tests: avoid leaks to underlying filesystem for /etc/cloud/clean.d (#2251) + net: refactor find_candidate_nics_on_linux() to use get_interfaces() (#2159) [Chris Patterson] + resolv_conf: Allow > 3 nameservers (#2152) [Major Hayden] + Remove mount NTFS error message (#2134) [Ksenija Stanojevic] + integration tests: fix image specification parsing (#2166) + ci: add hypothesis scheduled GH check (#2149) + Move supported distros list to docs (#2162) + Fix logger, use instance rather than module function (#2163) + README: Point to Github Actions build status (#2158) + Revert "fix linux-specific code on bsd (#2143)" (#2161) + Do not generate dsa and ed25519 key types when crypto FIPS mode is enabled (#2142) [Ani Sinha] (LP: 2017761) + Add documentation label automatically (#2156) + sources/azure: report success to host and introduce kvp module (#2141) [Chris Patterson] + setup.py: use pkg-config for udev/rules path (#2137) [dankm] + openstack/static: honor the DNS servers associated with a network (#2138) [Gonéri Le Bouder] + fix linux-specific code on bsd (#2143) + cli: schema validation of jinja template user-data (SC-1385) (#2132) (LP: #1881925) + gce: activate network discovery on every boot (#2128) + tests: update integration test to assert 640 across reboots (#2145) + Make user/vendor data sensitive and remove log permissions (#2144) (LP: #2013967) + Update kernel command line docs (SC-1457) (#2133) + docs: update network configuration path links (#2140) [d1r3ct0r] + sources/azure: report failures to host via kvp (#2136) [Chris Patterson] + net: Document use of `ip route append` to add routes (#2130) + dhcp: Add missing mocks (#2135) + azure/imds: retry fetching metadata up to 300 seconds (#2121) [Chris Patterson] + [1/2] DHCP: Refactor dhcp client code (#2122) + azure/errors: treat traceback_base64 as string (#2131) [Chris Patterson] + azure/errors: introduce reportable errors (#2129) [Chris Patterson] + users: schema permit empty list to indicate create no users + azure: introduce identity module (#2116) [Chris Patterson] + Standardize disabling cloud-init on non-systemd (#2112) + Update .github-cla-signers (#2126) [Rob Tongue] + NoCloud: Use seedfrom protocol to determine mode (#2107) + rhel: Remove sysvinit files. (#2114) + tox.ini: set -vvvv --showlocals for pytest (#2104) [Chris Patterson] + Fix NoCloud kernel commandline semi-colon args + run-container: make the container/VM timeout configurable (#2118) [Paride Legovini] + suse: Remove sysvinit files. (#2115) + test: Backport assert_call_count for old requests (#2119) + Add "licebmi" as contributor (#2113) [Mark Martinez] + Adapt DataSourceScaleway to upcoming IPv6 support (#2033) [Louis Bouchard] + rhel: make sure previous-hostname file ends with a new line (#2108) [Ani Sinha] + Adding contributors for DataSourceAkamai (#2110) [acourdavAkamai] + Cleanup ephemeral IP routes on exception (#2100) [sxt1001] + commit 09a64badfb3f51b1b391fa29be19962381a4bbeb [sxt1001] (LP: #2011291) + Standardize kernel commandline user interface (#2093) + config/cc_resizefs: fix do_resize arguments (#2106) [Chris Patterson] + Fix test_dhclient_exits_with_error (#2105) + net/dhcp: catch dhclient failures and raise NoDHCPLeaseError (#2083) [Chris Patterson] + sources/azure: move pps handling out of _poll_imds() (#2075) [Chris Patterson] + tests: bump pycloudlib version (#2102) + schema: do not manipulate draft4 metaschema for jsonschema 2.6.0 (#2098) + sources/azure/imds: don't count timeout errors as connection errors (#2074) [Chris Patterson] + Fix Python 3.12 unit test failures (#2099) + integration tests: Refactor instance checking (#1989) + ci: migrate remaining jobs from travis to gh (#2085) + missing ending quote in instancedata docs(#2094) [Hong L] + refactor: stop passing log instances to cc_* handlers (#2016) [d1r3ct0r] + tests/vmware: fix test_no_data_access_method failure (#2092) [Chris Patterson] + Don't change permissions of netrules target (#2076) (LP: #2011783) + tests/sources: patch util.get_cmdline() for datasource tests (#2091) [Chris Patterson] + macs: ignore duplicate MAC for devs with driver driver qmi_wwan (#2090) (LP: #2008888) + Fedora: Enable CA handling (#2086) [František Zatloukal] + Send dhcp-client-identifier for InfiniBand ports (#2043) [Waleed Mousa] + cc_ansible: complete the examples and doc (#2082) [Yves] + bddeb: for dev package, derive debhelper-compat from host system + apport: only prompt for cloud_name when instance-data.json is absent + datasource: Optimize datasource detection, fix bugs (#2060) + Handle non existent ca-cert-config situation (#2073) [Shreenidhi Shedi] + sources/azure: add networking check for all source PPS (#2061) [Chris Patterson] + do not attempt dns resolution on ip addresses (#2040) + chore: fix style tip (#2071) + Fix metadata IP in instancedata.rst (#2063) [Brian Haley] + util: Pass deprecation schedule in deprecate_call() (#2064) + config: Update grub-dpkg docs (#2058) + docs: Cosmetic improvements and styling (#2057) [s-makin] + cc_grub_dpkg: Added UEFI support (#2029) [Alexander Birkner] + tests: Write to /var/spool/rsyslog to adhere to apparmor profile (#2059) + oracle-ds: prefer system_cfg over ds network config source (#1998) (LP: #1956788) + Remove dead code (#2038) + source: Force OpenStack when it is only option (#2045) (LP: #2008727) + cc_ubuntu_advantage: improve UA logs discovery + sources/azure: fix regressions in IMDS behavior (#2041) [Chris Patterson] + tests: fix test_schema (#2042) + dhcp: Cleanup unused kwarg (#2037) + sources/vmware/imc: fix-missing-catch-few-negtive-scenarios (#2027) [PengpengSun] + dhclient_hook: remove vestigal dhclient_hook command (#2015) + log: Add standardized deprecation tooling (SC-1312) (#2026) + Enable SUSE based distros for ca handling (#2036) [Robert Schweikert] From 23.1.2 + Make user/vendor data sensitive and remove log permissions (LP: #2013967) (CVE-2023-1786) From 23.1.1 + source: Force OpenStack when it is only option (#2045) + sources/azure: fix regressions in IMDS behavior (#2041) [Chris Patterson]- Add cloud-init-flake8-fixes.patch - Revert chnages from previous commit + Disabling checks the primary maintainer enabled for specific reasons is not a fix.- update to 23.1.2: * Make user/vendor data sensitive and remove log permissions * source: Force OpenStack when it is only option (#2045) * sources/azure: fix regressions in IMDS behavior - drop cloud-init-cve-2023-1786-redact-instance-data-json-main.patch (upstream) - spec-file cleanups, including dropping flake8 (as build fails with newer flake8 versions)- Update cloud-init-write-routes.patch (bsc#1212879) + Add necessary import statement - Enable flake8 linting, fix up patches + cloud-init-cve-2023-1786-redact-instance-data-json-main.patch + cloud-init-power-rhel-only.patch + cloud-init-write-routes.patch + datasourceLocalDisk.patch- Add cloud-init-power-rhel-only.patch (bsc#1210273) + Config module cc_refresh_rmc_and_interface is implemented such that it will only work on RH distros. Set the module availability accordingly.- Sensitive data exposure (bsc#1210277, CVE-2023-1786) + Add hidesensitivedata + Add cloud-init-cve-2023-1786-redact-inst-data.patch + Do not expose sensitive data gathered from the CSP- Update to version 23.1 + Remove patches included upstream: - cloud-init-btrfs-queue-resize.patch - cloud-init-micro-is-suse.patch - cloud-init-suse-afternm.patch - cloud-init-prefer-nm.patch - cloud-init-transact-up.patch + Forward port - cloud-init-write-routes.patch + Added - cloud-init-fix-ca-test.patch + Support transactional-updates for SUSE based distros (#1997) [Robert Schweikert] + Set ownership for new folders in Write Files Module (#1980) [Jack] (LP: #1990513) + add OpenCloudOS and TencentOS support (#1964) [wynnfeng] + lxd: Retry if the server isn't ready (#2025) + test: switch pycloudlib source to pypi (#2024) + test: Fix integration test deprecation message (#2023) + Recognize opensuse-microos, dev tooling fixes [Robert Schweikert] + sources/azure: refactor imds handler into own module (#1977) [Chris Patterson] + docs: deprecation generation support [1/2] (#2013) + add function is_virtual to distro/FreeBSD (#1957) [Mina Galić] + cc_ssh: support multiple hostcertificates (#2018) (LP: #1999164) + Fix minor schema validation regression and fixup typing (#2017) + doc: Reword user data debug section (#2019) + Overhaul/rewrite of certificate handling as follows: (#1962) [dermotbradley] (LP: #1931174) + disk_setup: use byte string when purging the partition table (#2012) [Stefan Prietl] + cli: schema also validate vendordata*. + ci: sort and add checks for cla signers file [Stefan Prietl] + Add "ederst" as contributor (#2010) [Stefan Prietl] + readme: add reference to packages dir (#2001) + docs: update downstream package list (#2002) + docs: add google search verification (#2000) [s-makin] + docs: fix 404 render use default notfound_urls_prefix in RTD conf (#2004) + Fix OpenStack datasource detection on bare metal (#1923) [Alexander Birkner] (LP: #1815990) + docs: add themed RTD 404 page and pointer to readthedocs-hosted (#1993) + schema: fix gpt labels, use type string for GUID (#1995) + cc_disk_setup: code cleanup (#1996) + netplan: keep custom strict perms when 50-cloud-init.yaml exists + cloud-id: better handling of change in datasource files [d1r3ct0r] (LP: #1998998) + tests: Remove restart check from test + Ignore duplicate macs from mscc_felix and fsl_enetc (LP: #1997922) + Warn on empty network key (#1990) + Fix Vultr cloud_interfaces usage (#1986) [eb3095] + cc_puppet: Update puppet service name (#1970) [d1r3ct0r] (LP: #2002969) + docs: Clarify networking docs (#1987) + lint: remove httpretty (#1985) [sxt1001] + cc_set_passwords: Prevent traceback when restarting ssh (#1981) + tests: fix lp1912844 (#1978) + tests: Skip ansible test on bionic (#1984) + Wait for NetworkManager (#1983) [Robert Schweikert] + docs: minor polishing (#1979) [s-makin] + CI: migrate integration-test to GH actions (#1969) + Fix permission of SSH host keys (#1971) [Ron Gebauer] + Fix default route rendering on v2 ipv6 (#1973) (LP: #2003562) + doc: fix path in net_convert command (#1975) + docs: update net_convert docs (#1974) + doc: fix dead link + cc_set_hostname: ignore /var/lib/cloud/data/set-hostname if it's empty (#1967) [Emanuele Giuseppe Esposito] + distros/rhel.py: _read_hostname() missing strip on "hostname" (#1941) [Mark Mielke] + integration tests: add IBM VPC support (SC-1352) (#1915) + machine-id: set to uninitialized to trigger regeneration on clones (LP: #1999680) + sources/azure: retry on connection error when fetching metdata (#1968) [Chris Patterson] + Ensure ssh state accurately obtained (#1966) + bddeb: drop dh-systemd dependency on newer deb-based releases [d1r3ct0r] + doc: fix `config formats` link in cloudsigma.rst (#1960) + Fix wrong subp syntax in cc_set_passwords.py (#1961) + docs: update the PR template link to readthedocs (#1958) [d1r3ct0r] + ci: switch unittests to gh actions (#1956) + Add mount_default_fields for PhotonOS. (#1952) [Shreenidhi Shedi] + sources/azure: minor refactor for metadata source detection logic (#1936) [Chris Patterson] + add "CalvoM" as contributor (#1955) [d1r3ct0r] + ci: doc to gh actions (#1951) + lxd: handle 404 from missing devices route for LXD 4.0 (LP: #2001737) + docs: Diataxis overhaul (#1933) [s-makin] + vultr: Fix issue regarding cache and region codes (#1938) [eb3095] + cc_set_passwords: Move ssh status checking later (SC-1368) (#1909) (LP: #1998526) + Improve Wireguard module idempotency (#1940) [Fabian Lichtenegger-Lukas] + network/netplan: add gateways as on-link when necessary (#1931) [Louis Sautier] (LP: #2000596) + tests: test_lxd assert features.networks.zones when present (#1939) + Use btrfs enquque when available (#1926) [Robert Schweikert] + sources/azure: drop description for report_failure_to_fabric() (#1934) [Chris Patterson] + cc_disk_setup.py: fix MBR single partition creation (#1932) [dermotbradley] (LP: #1851438) + Fix typo with package_update/package_upgrade (#1927) [eb3095] + sources/azure: fix device driver matching for net config (#1914) [Chris Patterson] + BSD: fix duplicate macs in Ifconfig parser (#1917) [Mina Galić] + test: mock dns calls (#1922) + pycloudlib: add lunar support for integration tests (#1928) + nocloud: add support for dmi variable expansion for seedfrom URL (LP: #1994980) + tools: read-version drop extra call to git describe --long + doc: improve cc_write_files doc (#1916) + read-version: When insufficient tags, use cloudinit.version.get_version + mounts: document weird prefix in schema (#1913) + add utility function test cases (#1910) [sxt1001] + test: mock file deletion in dhcp tests (#1911) + Ensure network ready before cloud-init service runs on RHEL (#1893) (LP: #1998655) + docs: add copy button to code blocks (#1890) [s-makin] + netplan: define features.NETPLAN_CONFIG_ROOT_READ_ONLY flag + azure: fix support for systems without az command installed (#1908) + Networking Clarification (#1892) + Fix the distro.osfamily output problem in the openEuler system. (#1895) [sxt1001] (LP: #1999042) + pycloudlib: bump commit dropping azure api smoke test + net: netplan config root read-only as wifi config can contain creds + autoinstall: clarify docs for users + sources/azure: encode health report as utf-8 (#1897) [Chris Patterson] + Add back gateway4/6 deprecation to docs (#1898) + networkd: Add support for multiple [Route] sections (#1868) [Nigel Kukard] + doc: add qemu tutorial (#1863) + lint: fix tip-flake8 and tip-mypy (#1896) + Add support for setting uid when creating users on FreeBSD (#1888) [einsibjarni] + Fix exception in BSD networking code-path (#1894) [Mina Galić] + Append derivatives to is_rhel list in cloud.cfg.tmpl (#1887) [Louis Abel] + FreeBSD init: use cloudinit_enable as only rcvar (#1875) [Mina Galić] + feat: add support aliyun metadata security harden mode (#1865) [Manasseh Zhou] + docs: uprate analyze to performance page [s-makin] + test: fix lxd preseed managed network config (#1881) + Add support for static IPv6 addresses for FreeBSD (#1839) [einsibjarni] + Make 3.12 failures not fail the build (#1873) + Docs: adding relative links [s-makin] + Update read-version + Fix setup.py to align with PEP 440 versioning replacing trailing + travis: promote 3.11-dev to 3.11 (#1866) + test_cloud_sigma: delete useless test (#1828) [sxt1001] + Add "nkukard" as contributor (#1864) [Nigel Kukard] + tests: ds-id mocks for vmware-rpctool as utility may not exist in env + doc: add how to render new module doc (#1855) + doc: improve module creation explanation (#1851) + Add Support for IPv6 metadata to OpenStack (#1805) [Marvin Vogt] (LP: #1906849) + add xiaoge1001 to .github-cla-signers (#1854) [sxt1001] + network: Deprecate gateway{4,6} keys in network config v2 (#1794) (LP: #1992512) + VMware: Move Guest Customization transport from OVF to VMware (#1573) [PengpengSun] + doc: home page links added (#1852) [s-makin] From 22.4.2 + status: handle ds not defined in status.json (#1876) (LP: #1997559) From 22.4.1 + net: skip duplicate mac check for netvsc nic and its VF (#1853) [Anh Vo] (LP: #1844191) + ChangeLog: whitespace cleanup (#1850) + changelog: capture 22.3.1-4 releases- Add cloud-init-transact-up.patch to support transactional-updates- Add cloud-init-prefer-nm.patch + Prefer NetworkManager of sysconfig when available - Remove six dependency (bsc#1198269)- Update to version 22.4 (bsc#1201010) + Remove patches included upstream: - cloud-init-vmware-test.patch - cloud-init-sysctl-not-in-bin.patch + Forward port: - cloud-init-write-routes.patch - cloud-init-break-resolv-symlink.patch - cloud-init-sysconf-path.patch - cloud-init-no-tempnet-oci.patch + Add cloud-init-btrfs-queue-resize.patch (bsc#1171511) + Add cloud-init-micro-is-suse.patch (bsc#1203393) [Martin Petersen] + Add cloud-init-suse-afternm.patch + test: fix pro integration test [Alberto Contreras] + cc_disk_setup: pass options in correct order to utils (#1829) [dermotbradley] + tests: text_lxd basic_preseed verify_clean_log (#1826) + docs: switch sphinx theme to furo (SC-1327) (#1821) [Alberto Contreras] + tests: activate Ubuntu Pro tests (only on Jenkins) (#1777) [Alberto Contreras] + tests: test_lxd assert features.storage.buckets when present (#1827) + tests: replace missed ansible install-method with underscore (#1825) + tests: replace ansible install-method with underscore + ansible: standardize schema keys + ci: run json tool on 22.04 rather than 20.04 (#1823) + Stop using devices endpoint for LXD network config (#1819) + apport: address new curtin log and config locations (#1812) + cc_grub: reword docs for clarity (#1818) + tests: Fix preseed test (#1820) + Auto-format schema (#1810) + Ansible Control Module (#1778) + Fix last reported event possibly not being sent (#1796) (LP: #1993836) + tests: Ignore unsupported lxd project keys (#1817) [Alberto Contreras] + udevadm settle should handle non-udev system gracefully (#1806) [dermotbradley] + add mariner support (#1780) [Minghe Ren] + Net: add BSD ifconfig(8) parser and state class (#1779) [Mina Galić] + adding itjamie to .github-cla-signers [Jamie (Bear) Murphy] + Fix inconsistency between comment and statement (#1809) [Guillaume Gay] + Update .github-cla-signers (#1811) [Guillaume Gay] + alpine.py: Add Alpine-specific manage_service function and update tests (#1804) [dermotbradley] + test: add 3.12-dev to Travis CI (#1798) [Alberto Contreras] + add NWCS datasource (#1793) [shell-skrimp] + Adding myself as CLA signer (#1799) [s-makin] + apport: fix some data collection failures due to symlinks (#1797) [Dan Bungert] + read-version: Make it compatible with bionic (#1795) [Alberto Contreras] + lxd: add support for lxd preseed config(#1789) + Enable hotplug for LXD datasource (#1787) + cli: collect logs and apport subiquity support + add support for Container-Optimized OS (#1748) [vteratipally] + test: temporarily disable failing integration test (#1792) + Fix LXD/nocloud detection on lxd vm tests (#1791) + util: Implement __str__ and __iter__ for Version (#1790) + cc_ua: consume ua json api for enable commands [Alberto Contreras] + Add clarity to cc_final_message docs (#1788) + cc_ntp: add support for BSDs (#1759) [Mina Galić] (LP: #1990041) + make Makefile make agnostic (#1786) [Mina Galić] + Remove hardcoding and unnecessary overrides in Makefile (#1783) [Joseph Mingrone] + Add my username (Jehops) to .github-cla-signers (#1784) [Joseph Mingrone] + Temporarily remove broken test (#1781) + Create reference documentation for base config + cc_ansible: add support for galaxy install (#1736) + distros/manage_services: add support to disable service (#1772) [Mina Galić] (LP: #1991024) + OpenBSD: remove pkg_cmd_environ function (#1773) [Mina Galić] (LP: 1991567) + docs: Correct typo in the FAQ (#1774) [Maximilian Wörner] + tests: Use LXD metadata to determine NoCloud status (#1776) + analyze: use init-local as start of boot record (#1767) [Chris Patterson] + docs: use opensuse for distro name in package doc (#1771) + doc: clarify packages as dev only (#1769) [Alberto Contreras] + Distro manage service: Improve BSD support (#1758) [Mina Galić] (LP: #1990070) + testing: check logs for critical errors (#1765) [Chris Patterson] + cc_ubuntu_advantage: Handle already attached on Pro [Alberto Contreras] + doc: Add configuration explanation (SC-1169) + Fix Oracle DS primary interface when using IMDS (#1757) (LP: #1989686) + style: prefer absolute imports over relative imports [Mina Galić] + tests: Fix ip log during instance destruction (#1755) [Alberto Contreras] + cc_ubuntu_advantage: add ua_config in auto-attach [Alberto Contreras] + apt configure: sources write/append mode (#1738) [Fabian Lichtenegger-Lukas] + networkd: Add test and improve typing. (#1747) [Alberto Contreras] + pycloudlib: bump commit for gce cpu architecture support (#1750) + commit ffcb29bc8315d1e1d6244eeb1cbd8095958f7bad (LP: #1307667) + testing: workaround LXD vendor data (#1740) + support dhcp{4,6}-overrides in networkd renderer (#1710) [Aidan Obley] + tests: Drop httpretty in favor of responses (#1720) [Alberto Contreras] + cc_ubuntu_advantage: Implement custom auto-attach behaviors (#1583) [Alberto Contreras] + Fix Oracle DS not setting subnet when using IMDS (#1735) (LP: #1989686) + testing: focal lxd datasource discovery (#1734) + cc_ubuntu_advantage: Redact token from logs (#1726) [Alberto Contreras] + docs: make sure echo properly evaluates the string (#1733) [Mina Galić] + net: set dhclient lease and pid files (#1715) + cli: status machine-readable output --format yaml/json (#1663) (LP: #1883122) + tests: Simplify does_not_raise (#1731) [Alberto Contreras] + Refactor: Drop inheritance from object (#1728) [Alberto Contreras] + testing: LXD datasource now supported on Focal (#1732) + Allow jinja templating in /etc/cloud (SC-1170) (#1722) (LP: #1913461) + sources/azure: ensure instance id is always correct (#1727) [Chris Patterson] + azure: define new attribute for pre-22.3 pickles (#1725) + doc: main page Diátaxis rewording (SC-967) (#1701) + ubuntu advantage: improved idempotency, enable list is now strict + [Fabian Lichtenegger-Lukas] + test: bump pycloudlib (#1724) [Alberto Contreras] + cloud.cfg.tmpl: make sure "centos" settings are identical to "rhel" (#1639) [Emanuele Giuseppe Esposito] + lxd: fetch 1.0/devices content (#1712) [Alberto Contreras] + Update docs according to ad8f406a (#1719) + testing: Port unittests/analyze to pytest (#1708) [Alberto Contreras] + doc: Fix rtd builds. (#1718) [Alberto Contreras] + testing: fully mock noexec calls (#1717) [Alberto Contreras] + typing: Add types to cc_.handle (#1700) [Alberto Contreras] + Identify 3DS Outscale Datasource as Ec2 (#1686) [Maxime Dufour] + config: enable bootstrapping pip in ansible (#1707) + Fix cc_chef typing issue (#1716) + Refactor instance json files to use Paths (SC-1238) (#1709) + tools: read-version check GITHUB_REF and git branch --show-current (#1677) + net: Ensure a tmp with exec permissions for dhcp (#1690) [Alberto Contreras] (LP: #1962343) + testing: Fix test regression in test_combined (#1713) [Alberto Contreras] + Identify Huawei Cloud as OpenStack (#1689) [huang xinjie] + doc: add reporting suggestion to FAQ (SC-1236) (#1698) From 22.3 + sources: obj.pkl cache should be written anyime get_data is run (#1669) + schema: drop release number from version file (#1664) + pycloudlib: bump to quiet azure HTTP info logs (#1668) + test: fix wireguard integration tests (#1666) + Github is deprecating the 18.04 runner starting 12.1 (#1665) + integration tests: Ensure one setup for all tests (#1661) + tests: ansible test fixes (#1660) + Prevent concurrency issue in test_webhook_hander.py (#1658) + Workaround net_setup_link race with udev (#1655) (LP: #1983516) + test: drop erroneous lxd assertion, verify command succeeded (#1657) + Fix Chrony usage on Centos Stream (#1648) [Sven Haardiek] (LP: #1885952) + sources/azure: handle network unreachable errors for savable PPS (#1642) [Chris Patterson] + Return cc_set_hostname to PER_INSTANCE frequency (#1651) (LP: #1983811) + test: Collect integration test time by default (#1638) + test: Drop forced package install hack in lxd integration test (#1649) + schema: Resolve user-data if --system given (#1644) [Alberto Contreras] (LP: #1983306) + test: use fake filesystem to avoid file removal (#1647) [Alberto Contreras] + tox: Fix tip-flake8 and tip-mypy (#1635) [Alberto Contreras] + config: Add wireguard config module (#1570) [Fabian Lichtenegger-Lukas] + tests: can run without azure-cli, tests expect inactive ansible (#1643) + typing: Type UrlResponse.contents (#1633) [Alberto Contreras] + testing: fix references to `DEPRECATED.` (#1641) [Alberto Contreras] + ssh_util: Handle sshd_config.d folder [Alberto Contreras] (LP: #1968873) + schema: Enable deprecations in cc_update_etc_hosts (#1631) [Alberto Contreras] + Add Ansible Config Module (#1579) + util: Support Idle process state in get_proc_ppid() (#1637) + schema: Enable deprecations in cc_growpart (#1628) [Alberto Contreras] + schema: Enable deprecations in cc_users_groups (#1627) [Alberto Contreras] + util: Fix error path and parsing in get_proc_ppid() + main: avoid downloading full contents cmdline urls (#1606) [Alberto Contreras] (LP: #1937319) + schema: Enable deprecations in cc_scripts_vendor (#1629) [Alberto Contreras] + schema: Enable deprecations in cc_set_passwords (#1630) [Alberto Contreras] + sources/azure: add experimental support for preprovisioned os disks (#1622) [Chris Patterson] + Remove configobj a_to_u calls (#1632) [Stefano Rivera] + cc_debug: Drop this module (#1614) [Alberto Contreras] + schema: add aggregate descriptions in anyOf/oneOf (#1636) + testing: migrate test_sshutil to pytest (#1617) [Alberto Contreras] + testing: Fix test_ca_certs integration test (#1626) [Alberto Contreras] + testing: add support for pycloudlib's pro images (#1604) [Alberto Contreras] + testing: migrate test_cc_set_passwords to pytest (#1615) [Alberto Contreras] + network: add system_info network activator cloud.cfg overrides (#1619) (LP: #1958377) + docs: Align git remotes with uss-tableflip setup (#1624) [Alberto Contreras] + testing: cover active config module checks (#1609) [Alberto Contreras] + lxd: lvm avoid thinpool when kernel module absent + lxd: enable MTU configuration in cloud-init + doc: pin doc8 to last passing version + cc_set_passwords fixes (#1590) + Modernise importer.py and type ModuleDetails (#1605) [Alberto Contreras] + config: Def activate_by_schema_keys for t-z (#1613) [Alberto Contreras] + config: define activate_by_schema_keys for p-r mods (#1611) [Alberto Contreras] + clean: add param to remove /etc/machine-id for golden image creation + config: define `activate_by_schema_keys` for a-f mods (#1608) [Alberto Contreras] + config: define activate_by_schema_keys for s mods (#1612) [Alberto Contreras] + sources/azure: reorganize tests for network config (#1586) + [Chris Patterson] + config: Define activate_by_schema_keys for g-n mods (#1610) [Alberto Contreras] + meta-schema: add infra to skip inapplicable modules [Alberto Contreras] + sources/azure: don't set cfg["password"] for default user pw (#1592) [Chris Patterson] + schema: activate grub-dpkg deprecations (#1600) [Alberto Contreras] + docs: clarify user password purposes (#1593) + cc_lxd: Add btrfs and lvm lxd storage options (SC-1026) (#1585) + archlinux: Fix distro naming[1] (#1601) [Kristian Klausen] + cc_ubuntu_autoinstall: support live-installer autoinstall config + clean: allow third party cleanup scripts in /etc/cloud/clean.d (#1581) + sources/azure: refactor chassis asset tag handling (#1574) [Chris Patterson] + Add "netcho" as contributor (#1591) [Kaloyan Kotlarski] + testing: drop impish support (#1596) [Alberto Contreras] + black: fix missed formatting issue which landed in main (#1594) + bsd: Don't assume that root user is in root group (#1587) + docs: Fix comment typo regarding use of packages (#1582) [Peter Mescalchin] + Update govc command in VMWare walkthrough (#1576) [manioo8] + Update .github-cla-signers (#1588) [Daniel Mullins] + Rename the openmandriva user to omv (#1575) [Bernhard Rosenkraenzer] + sources/azure: increase read-timeout to 60 seconds for wireserver (#1571) [Chris Patterson] + Resource leak cleanup (#1556) + testing: remove appereances of FakeCloud (#1584) [Alberto Contreras] + Fix expire passwords for hashed passwords (#1577) [Sadegh Hayeri] (LP: #1979065) + mounts: fix suggested_swapsize for > 64GB hosts (#1569) [Steven Stallion] + Update chpasswd schema to deprecate password parsing (#1517) + tox: Remove entries from default envlist (#1578) (LP: #1980854) + tests: add test for parsing static dns for existing devices (#1557) [Jonas Konrad] + testing: port cc_ubuntu_advantage test to pytest (#1559) [Alberto Contreras] + Schema deprecation handling (#1549) [Alberto Contreras] + Enable pytest to run in parallel (#1568) + sources/azure: refactor ovf-env.xml parsing (#1550) [Chris Patterson] + schema: Force stricter validation (#1547) + ubuntu advantage config: http_proxy, https_proxy (#1512) [Fabian Lichtenegger-Lukas] + net: fix interface matching support (#1552) (LP: #1979877) + Fuzz testing jsonchema (#1499) [Alberto Contreras] + testing: Wait for changed boot-id in test_status.py (#1548) + CI: Fix GH pinned-format jobs (#1558) [Alberto Contreras] + Typo fix (#1560) [Jaime Hablutzel] + tests: mock dns lookup that causes long timeouts (#1555) + tox: add unpinned env for do_format and check_format (#1554) + cc_ssh_import_id: Substitute deprecated warn (#1553) [Alberto Contreras] + Remove schema errors from log (#1551) (LP: #1978422) (CVE-2022-2084) + Update WebHookHandler to run as background thread (SC-456) (#1491) (LP: #1910552) + testing: Don't run custom cloud dir test on Bionic (#1542) + bash completion: update schema command (#1543) (LP: #1979547) + CI: add non-blocking run against the linters tip versions (#1531) [Paride Legovini] + Change groups within the users schema to support lists and strings (#1545) [RedKrieg] + make it clear which username should go in the contributing doc (#1546) + Pin setuptools for Travis (SC-1136) (#1540) + Fix LXD datasource crawl when BOOT enabled (#1537) + testing: Fix wrong path in dual stack test (#1538) + cloud-config: honor cloud_dir setting (#1523) [Alberto Contreras] (LP: #1976564) + Add python3-debconf to pkg-deps.json Build-Depends (#1535) [Alberto Contreras] + redhat spec: udev/rules.d lives under /usr/lib on rhel-based systems (#1536) + tests/azure: add test coverage for DisableSshPasswordAuthentication (#1534) [Chris Patterson] + summary: Add david-caro to the cla signers (#1527) [David Caro] + Add support for OpenMandriva (https://openmandriva.org/) (#1520) [Bernhard Rosenkraenzer] + tests/azure: refactor ovf creation (#1533) [Chris Patterson] + Improve DataSourceOVF error reporting when script disabled (#1525) [rong] + tox: integration-tests-jenkins: softfail if only some test failed (#1528) [Paride Legovini] + CI: drop linters from Travis CI (moved to GH Actions) (#1530) [Paride Legovini] + sources/azure: remove unused encoding support for customdata (#1526) [Chris Patterson] + sources/azure: remove unused metadata captured when parsing ovf (#1524) [Chris Patterson] + sources/azure: remove dscfg parsing from ovf-env.xml (#1522) [Chris Patterson] + Remove extra space from ec2 dual stack crawl message (#1521) + tests/azure: use namespaces in generated ovf-env.xml documents (#1519) [Chris Patterson] + setup.py: adjust udev/rules default path (#1513) [Emanuele Giuseppe Esposito] + Add python3-deconf dependency (#1506) [Alberto Contreras] + Change match macadress param for network v2 config (#1518) [Henrique Caricatti Capozzi] + sources/azure: remove unused userdata property from ovf (#1516) [Chris Patterson] + sources/azure: minor refactoring to network config generation (#1497) [Chris Patterson] + net: Implement link-local ephemeral ipv6 + Rename function to avoid confusion (#1501) + Fix cc_phone_home requiring 'tries' (#1500) (LP: #1977952) + datasources: replace networking functions with stdlib and cloudinit.net + code + Remove xenial references (#1472) [Alberto Contreras] + Oracle ds changes (#1474) [Alberto Contreras] (LP: #1967942) + improve runcmd docs (#1498) + add 3.11-dev to Travis CI (#1493) + Only run github actions on pull request (#1496) + Fix integration test client creation (#1494) [Alberto Contreras] + tox: add link checker environment, fix links (#1480) + cc_ubuntu_advantage: Fix doc (#1487) [Alberto Contreras] + cc_yum_add_repo: Fix repo id canonicalization (#1489) [Alberto Contreras] (LP: #1975818) + Add linitio as contributor in the project (#1488) [Kevin Allioli] + net-convert: use yaml.dump for debugging python NetworkState obj (#1484) (LP: #1975907) + test_schema: no relative $ref URLs, replace $ref with local path (#1486) + cc_set_hostname: do not write "localhost" when no hostname is given + (#1453) [Emanuele Giuseppe Esposito] + Update .github-cla-signers (#1478) [rong] + schema: write_files defaults, versions $ref full URL and add vscode (#1479) + docs: fix external links, add one more to the list (#1477) + doc: Document how to change module frequency (#1481) + tests: bump pycloudlib (#1482) + tests: bump pycloudlib pinned commit for kinetic Azure (#1476) + testing: fix test_status.py (#1475) + integration tests: If KEEP_INSTANCE = True, log IP (#1473) + Drop mypy excluded files (#1454) [Alberto Contreras] + Docs additions (#1470) + Add "formatting tests" to Github Actions + Remove unused arguments in function signature (#1471) + Changelog: correct errant classification of LP issues as GH (#1464) + Use Network-Manager and Netplan as default renderers for RHEL and Fedora (#1465) [Emanuele Giuseppe Esposito] From 22.2 + Fix test due to caplog incompatibility (#1461) [Alberto Contreras] + Align rhel custom files with upstream (#1431) [Emanuele Giuseppe Esposito] + cc_write_files: Improve schema. (#1460) [Alberto Contreras] + cli: Redact files with permission errors in commands (#1440) + [Alberto Contreras] (LP: #1953430) + Improve cc_set_passwords. (#1456) [Alberto Contreras] + testing: make fake cloud-init wait actually wait (#1459) + Scaleway: Fix network configuration for netplan 0.102 and later (#1455) [Maxime Corbin] + Fix 'ephmeral' typos in disk names(#1452) [Mike Hucka] + schema: version schema-cloud-config-v1.json (#1424) + cc_modules: set default meta frequency value when no config available (#1457) + Log generic warning on non-systemd systems. (#1450) [Alberto Contreras] + cc_snap.maybe_install_squashfuse no longer needed in Bionic++. (#1448) [Alberto Contreras] + Drop support of *-sk keys in cc_ssh (#1451) [Alberto Contreras] + testing: Fix console_log tests (#1437) + tests: cc_set_passoword update for systemd, non-systemd distros (#1449) + Fix bug in url_helper/dual_stack() logging (#1426) + schema: render schema paths from _CustomSafeLoaderWithMarks (#1391) + testing: Make integration tests kinetic friendly (#1441) + Handle error if SSH service no present. (#1422) [Alberto Contreras] (LP: #1969526) + Fix network-manager activator availability and order (#1438) + sources/azure: remove reprovisioning marker (#1414) [Chris Patterson] + upstart: drop vestigial support for upstart (#1421) + testing: Ensure NoCloud detected in test (#1439) + Update .github-cla-signers kallioli [Kevin Allioli] + Consistently strip top-level network key (#1417) (LP: #1906187) + testing: Fix LXD VM metadata test (#1430) + testing: Add NoCloud setup for NoCloud test (#1425) + Update linters and adapt code for compatibility (#1434) [Paride Legovini] + run-container: add support for LXD VMs (#1428) [Paride Legovini] + integration-reqs: bump pycloudlib pinned commit (#1427) [Paride Legovini] + Fix NoCloud docs (#1423) + Docs fixes (#1406) + docs: Add docs for module creation (#1415) + Remove cheetah from templater (#1416) + tests: verify_ordered_items fallback to re.escape if needed (#1420) + Misc module cleanup (#1418) + docs: Fix doc warnings and enable errors (#1419) [Alberto Contreras] (LP: #1876341) + Refactor cloudinit.sources.NetworkConfigSource to enum (#1413) [Alberto Contreras] (LP: #1874875) + Don't fail if IB and Ethernet devices 'collide' (#1411) + Use cc_* module meta defintion over hardcoded vars (SC-888) (#1385) + Fix cc_rsyslog.py initialization (#1404) [Alberto Contreras] + Promote cloud-init schema from devel to top level subcommand (#1402) + mypy: disable missing imports warning for httpretty (#1412) [Chris Patterson] + users: error when home should not be created AND ssh keys provided [Jeffrey 'jf' Lim] + Allow growpart to resize encrypted partitions (#1316) + Fix typo in integration_test.rst (#1405) [Alberto Contreras] + cloudinit.net refactor: apply_network_config_names (#1388) [Alberto Contreras] (LP: #1884602) + tests/azure: add fixtures for hardcoded paths (markers and data_dir) (#1399) [Chris Patterson] + testing: Add responses workaround for focal/impish (#1403) + cc_ssh_import_id: fix is_key_in_nested_dict to avoid early False + Fix ds-identify not detecting NoCloud seed in config (#1381) (LP: #1876375) + sources/azure: retry dhcp for failed processes (#1401) [Chris Patterson] + Move notes about refactorization out of CONTRIBUTING.rst (#1389) + Shave ~8ms off generator runtime (#1387) + Fix provisioning dhcp timeout to 20 minutes (#1394) [Chris Patterson] + schema: module example strict testing fix seed_random + cc_set_hostname: examples small typo (perserve vs preserve) [Wouter Schoot] + sources/azure: refactor http_with_retries to remove **kwargs (#1392) [Chris Patterson] + declare dependency on ssh-import-id (#1334) + drop references to old dependencies and old centos script + sources/azure: only wait for primary nic to be attached during restore (#1378) [Anh Vo] + cc_ntp: migrated legacy schema to cloud-init-schema.json (#1384) + Network functions refactor and bugfixes (#1383) + schema: add JSON defs for modules cc_users_groups (#1379) (LP: #1858930) + Fix doc typo (#1382) [Alberto Contreras] + Add support for dual stack IPv6/IPv4 IMDS to Ec2 (#1160) + Fix KeyError when rendering sysconfig IPv6 routes (#1380) (LP: #1958506) + Return a namedtuple from subp() (#1376) + Mypy stubs and other tox maintenance (SC-920) (#1374) + Distro Compatibility Fixes (#1375) + Pull in Gentoo patches (#1372) + schema: add json defs for modules U-Z (#1360) (LP: #1858928, #1858929, #1858931, #1858932) + util: atomically update sym links to avoid Suppress FileNotFoundError + when reading status (#1298) [Adam Collard] (LP: #1962150) + schema: add json defs for modules scripts-timezone (SC-801) (#1365) + docs: Add first tutorial (SC-900) (#1368) + BUG 1473527: module ssh-authkey-fingerprints fails Input/output error… (#1340) [Andrew Lee] (LP: #1473527) + add arch hosts template (#1371) + ds-identify: detect LXD for VMs launched from host with > 5.10 kernel (#1370) (LP: #1968085) + Support EC2 tags in instance metadata (#1309) [Eduardo Dobay] + schema: add json defs for modules e-install (SC-651) (#1366) + Improve "(no_create_home|system): true" test (#1367) [Jeffrey 'jf' Lim] + Expose https_proxy env variable to ssh-import-id cmd (#1333) [Michael Rommel] + sources/azure: remove bind/unbind logic for hot attached nic (#1332) [Chris Patterson] + tox: add types-* packages to check_format env (#1362) + tests: python 3.10 is showing up in cloudimages (#1364) + testing: add additional mocks to test_net tests (#1356) [yangzz-97] + schema: add JSON schema for mcollective, migrator and mounts modules (#1358) + Honor system locale for RHEL (#1355) [Wei Shi] + doc: Fix typo in cloud-config-run-cmds.txt example (#1359) [Ali Shirvani] + ds-identify: also discover LXD by presence from DMI board_name = LXD (#1311) + black: bump pinned version to 22.3.0 to avoid click dependency issues (#1357) + Various doc fixes (#1330) + testing: Add missing is_FreeBSD mock to networking test (#1353) + Add --no-update to add-apt-repostory call (SC-880) (#1337) + schema: add json defs for modules K-L (#1321) (LP: #1858899, #1858900, #1858901, #1858902) + docs: Re-order readthedocs install (#1354) + Stop cc_ssh_authkey_fingerprints from ALWAYS creating home (#1343) [Jeffrey 'jf' Lim] + docs: add jinja2 pin (#1352) + Vultr: Use find_candidate_nics, use ipv6 dns (#1344) [eb3095] + sources/azure: move get_ip_from_lease_value out of shim (#1324) [Chris Patterson] + Fix cloud-init status --wait when no datasource found (#1349) (LP: #1966085) + schema: add JSON defs for modules resize-salt (SC-654) (#1341) + Add myself as a future contributor (#1345) [Neal Gompa (ニール・ゴンパ)] + Update .github-cla-signers (#1342) [Jeffrey 'jf' Lim] + add Requires=cloud-init-hotplugd.socket in cloud-init-hotplugd.service + file (#1335) [yangzz-97] + Fix sysconfig render when set-name is missing (#1327) [Andrew Kutz] (LP: #1855945) + Refactoring helper funcs out of NetworkState (#1336) [Andrew Kutz] + url_helper: add tuple support for readurl timeout (#1328) [Chris Patterson] + Make fs labels match for ds-identify and docs (#1329) + Work around bug in LXD VM detection (#1325) + Remove redundant generator logs (#1318) + tox: set verbose flags for integration tests (#1323) [Chris Patterson] + net: introduce find_candidate_nics() (#1313) [Chris Patterson] + Revert "Ensure system_cfg read before ds net config on Oracle (#1174)" (#1326) + Add vendor_data2 support for ConfigDrive source (#1307) [cvstealth] + Make VMWare data source test host independent and expand testing (#1308) [Robert Schweikert] + Add json schemas for modules starting with P + sources/azure: remove lease file parsing (#1302) [Chris Patterson] + remove flaky test from ci (#1322) + ci: Switch to python 3.10 in Travis CI (#1320) + Better interface handling for Vultr, expect unexpected DHCP servers (#1297) [eb3095] + Remove unused init local artifact (#1315) + Doc cleanups (#1317) + docs improvements (#1312) + add support for jinja do statements, add unit test (#1314) [Paul Bruno] (LP: #1962759) + sources/azure: prevent tight loops for DHCP retries (#1285) [Chris Patterson] + net/dhcp: surface type of DHCP lease failure to caller (#1276) [Chris Patterson] + Stop hardcoding systemctl location (#1278) [Robert Schweikert] + Remove python2 syntax from docs (#1310) + [tools/migrate-lp-user-to-github] Rename master branch to main (#1301) [Adam Collard] + redhat: Depend on "hostname" package (#1288) [Lubomir Rintel] + Add native NetworkManager support (#1224) [Lubomir Rintel] + Fix link in CLA check to point to contribution guide. (#1299) [Adam Collard] + check for existing symlink while force creating symlink (#1281) [Shreenidhi Shedi] + Do not silently ignore integer uid (#1280) (LP: #1875772) + tests: create a IPv4/IPv6 VPC in Ec2 integration tests (#1291) + Integration test fix ppa (#1296) + tests: on official EC2. cloud-id actually startswith aws not ec2 (#1289) + test_ppa_source: accept both http and https URLs (#1292) [Paride Legovini] + Fix apt test on azure + add "lkundrak" as contributor [Lubomir Rintel] + Holmanb/integration test fix ppa (#1287) + Include missing subcommand in manpage (#1279) + Clean up artifacts from pytest, packaging, release with make clean (#1277) + sources/azure: ensure retries on IMDS request failure (#1271) [Chris Patterson] + sources/azure: removed unused savable PPS paths (#1268) [Chris Patterson] + integration tests: fix Azure failures (#1269) From 22.1 + sources/azure: report ready in local phase (#1265) [Chris Patterson] + sources/azure: validate IMDS network configuration metadata (#1257) [Chris Patterson] + docs: Add more details to runcmd docs (#1266) + use PEP 589 syntax for TypeDict (#1253) + mypy: introduce type checking (#1254) [Chris Patterson] + Fix extra ipv6 issues, code reduction and simplification (#1243) [eb3095] + tests: when generating crypted password, generate in target env (#1252) + sources/azure: address mypy/pyright typing complaints (#1245) [Chris Patterson] + Docs for x-shellscript* userdata (#1260) + test_apt_security: azure platform has specific security URL overrides (#1263) + tests: lsblk --json output changes mountpoint key to mountpoinst [] (#1261) + mounts: fix mount opts string for ephemeral disk (#1250) [Chris Patterson] + Shell script handlers by freq (#1166) [Chris Lalos] + minor improvements to documentation (#1259) [Mark Esler] + cloud-id: publish /run/cloud-init/cloud-id- files (#1244) + add "eslerm" as contributor (#1258) [Mark Esler] + sources/azure: refactor ssh key handling (#1248) [Chris Patterson] + bump pycloudlib (#1256) + sources/hetzner: Use EphemeralDHCPv4 instead of static configuration (#1251) [Markus Schade] + bump pycloudlib version (#1255) + Fix IPv6 netmask format for sysconfig (#1215) [Harald] (LP: #1959148) + sources/azure: drop debug print (#1249) [Chris Patterson] + tests: do not check instance.pull_file().ok() (#1246) + sources/azure: consolidate ephemeral DHCP configuration (#1229) [Chris Patterson] + cc_salt_minion freebsd fix for rc.conf (#1236) + sources/azure: fix metadata check in _check_if_nic_is_primary() (#1232) [Chris Patterson] + Add _netdev option to mount Azure ephemeral disk (#1213) [Eduardo Otubo] + testing: stop universally overwriting /etc/cloud/cloud.cfg.d (#1237) + Integration test changes (#1240) + Fix Gentoo Locales (#1205) + Add "slingamn" as contributor (#1235) [Shivaram Lingamneni] + integration: do not LXD bind mount /etc/cloud/cloud.cfg.d (#1234) + Integration testing docs and refactor (#1231) + vultr: Return metadata immediately when found (#1233) [eb3095] + spell check docs with spellintian (#1223) + docs: include upstream python version info (#1230) + Schema a d (#1211) + Move LXD to end ds-identify DSLIST (#1228) (LP: #1959118) + fix parallel tox execution (#1214) + sources/azure: refactor _report_ready_if_needed and _poll_imds (#1222) [Chris Patterson] + Do not support setting up archive.canonical.com as a source (#1219) [Steve Langasek] (LP: #1959343) + Vultr: Fix lo being used for DHCP, try next on cmd fail (#1208) [eb3095] + sources/azure: refactor _should_reprovision[_after_nic_attach]() logic (#1206) [Chris Patterson] + update ssh logs to show ssh private key gens pub and simplify code (#1221) [Steve Weber] + Remove mitechie from stale PR github action (#1217) + Include POST format in cc_phone_home docs (#1218) (LP: #1959149) + Add json parsing of ip addr show (SC-723) (#1210) + cc_rsyslog: fix typo in docstring (#1207) [Louis Sautier] + Update .github-cla-signers (#1204) [Chris Lalos] + sources/azure: drop unused case in _report_failure() (#1200) [Chris Patterson] + sources/azure: always initialize _ephemeral_dhcp_ctx on unpickle (#1199) [Chris Patterson] + Add support for gentoo templates and cloud.cfg (#1179) [vteratipally] + sources/azure: unpack ret tuple in crawl_metadata() (#1194) [Chris Patterson] + tests: focal caplog has whitespace indentation for multi-line logs (#1201) + Seek interfaces, skip dummy interface, fix region codes (#1192) [eb3095] + integration: test against the Ubuntu daily images (#1198) [Paride Legovini] + cmd: status and cloud-id avoid change in behavior for 'not run' (#1197) + tox: pass PYCLOUDLIB_* env vars into integration tests when present (#1196) + sources/azure: set ovf_is_accessible when OVF is read successfully (#1193) [Chris Patterson] + Enable OVF environment transport via ISO in example (#1195) [Megian] + sources/azure: consolidate DHCP variants to EphemeralDHCPv4WithReporting (#1190) [Chris Patterson] + Single JSON schema validation in early boot (#1175) + Add DatasourceOVF network-config propery to Ubuntu OVF example (#1184) [Megian] + testing: support pycloudlib config file (#1189) + Ensure system_cfg read before ds net config on Oracle (SC-720) (#1174) (LP: #1956788) + Test Optimization Proposal (SC-736) (#1188) + cli: cloud-id report not-run or disabled state as cloud-id (#1162) + Remove distutils usage (#1177) [Shreenidhi Shedi] + add .python-version to gitignore (#1186) + print error if datasource import fails (#1170) [Emanuele Giuseppe Esposito] + Add new config module to set keyboard layout (#1176) [maxnet] (LP: #1951593) + sources/azure: rename metadata_type -> MetadataType (#1181) [Chris Patterson] + Remove 3.5 and xenial support (SC-711) (#1167) + tests: mock LXD datasource detection in ds-identify on LXD containers (#1178) + pylint: silence errors on compat code for old jsonschema (#1172) [Paride Legovini] + testing: Add 3.10 Test Coverage (#1173) + Remove unittests from integration test job in travis (#1141) + Don't throw exceptions for empty cloud config (#1130) + bsd/resolv.d/ avoid duplicated entries (#1163) [Gonéri Le Bouder] + sources/azure: do not persist failed_desired_api_version flag (#1159) [Chris Patterson] + Update cc_ubuntu_advantage calls to assume-yes (#1158) [John Chittum] (LP: #1954842) + openbsd: properly restart the network on 7.0 (#1150) [Gonéri Le Bouder] + Add .git-blame-ignore-revs (#1161) + Adopt Black and isort (SC-700) (#1157) + Include dpkg frontend lock in APT_LOCK_FILES (#1153) + tests/cmd/query: fix test run as root and add coverage for defaults (#1156) [Chris Patterson] (LP: #1825027) + Schema processing changes (SC-676) (#1144) + Add dependency workaround for impish in bddeb (#1148) + netbsd: install new dep packages (#1151) [Gonéri Le Bouder] + find_devs_with_openbsd: ensure we return the last entry (#1149) [Gonéri Le Bouder] + sources/azure: remove unnecessary hostname bounce (#1143) [Chris Patterson] + find_devs/openbsd: accept ISO on disk (#1132) [Gonéri Le Bouder] + Improve error log message when mount failed (#1140) [Ksenija Stanojevic] + add KsenijaS as a contributor (#1145) [Ksenija Stanojevic] + travis - don't run integration tests if no deb (#1139) + factor out function for getting top level directory of cloudinit (#1136) + testing: Add deterministic test id (#1138) + mock sleep() in azure test (#1137) + Add miraclelinux support (#1128) [Haruki TSURUMOTO] + docs: Make MACs lowercase in network config (#1135) (LP: #1876941) + Add Strict Metaschema Validation (#1101) + update dead link (#1133) + cloudinit/net: handle two different routes for the same ip (#1124) [Emanuele Giuseppe Esposito] + docs: pin mistune dependency (#1134) + Reorganize unit test locations under tests/unittests (#1126) + Fix exception when no activator found (#1129) (LP: #1948681) + jinja: provide and document jinja-safe key aliases in instance-data (SC-622) (#1123) + testing: Remove date from final_message test (SC-638) (#1127) + Move GCE metadata fetch to init-local (SC-502) (#1122) + Fix missing metadata routes for vultr (#1125) [eb3095] + cc_ssh_authkey_fingerprints.py: prevent duplicate messages on console (#1081) [dermotbradley] + sources/azure: remove unused remnants related to agent command (#1119) [Chris Patterson] + github: update PR template's contributing URL (#1120) [Chris Patterson] + docs: Rename HACKING.rst to CONTRIBUTING.rst (#1118) + testing: monkeypatch system_info call in unit tests (SC-533) (#1117) + Fix Vultr timeout and wait values (#1113) [eb3095] + lxd: add preference for LXD cloud-init.* config keys over user keys (#1108) + VMware: source /etc/network/interfaces.d/* on Debian [chengcheng-chcheng] (LP: #1950136) + Add cjp256 as contributor (#1109) [Chris Patterson] + integration_tests: Ensure log directory exists before symlinking to it (#1110) + testing: add growpart integration test (#1104) + integration_test: Speed up CI run time (#1111) + Some miscellaneous integration test fixes (SC-606) (#1103) + tests: specialize lxd_discovery test for lxd_vm vendordata (#1106) + Add convenience symlink to integration test output (#1105) + Fix for set-name bug in networkd renderer (#1100) [Andrew Kutz] (LP: #1949407) + Wait for apt lock (#1034) (LP: #1944611) + testing: stop chef test from running on openstack (#1102) + alpine.py: add options to the apk upgrade command (#1089) [dermotbradley]- Update to version 21.4 (bsc#1192343, jsc#PM-3181) + Also include VMWare functionality for (jsc#PM-3175) + Remove patches included upstream: - cloud-init-purge-cache-py-ver-change.patch - cloud-init-update-test-characters-in-substitution-unit-test.patch + Forward port: - cloud-init-write-routes.patch - cloud-init-no-tempnet-oci.patch + Add cloud-init-vmware-test.patch - Test is system dependend, not properly mocked + Azure: fallback nic needs to be reevaluated during reprovisioning (#1094) [Anh Vo] + azure: pps imds (#1093) [Anh Vo] + testing: Remove calls to 'install_new_cloud_init' (#1092) + Add LXD datasource (#1040) + Fix unhandled apt_configure case. (#1065) [Brett Holman] + Allow libexec for hotplug (#1088) + Add necessary mocks to test_ovf unit tests (#1087) + Remove (deprecated) apt-key (#1068) [Brett Holman] (LP: #1836336) + distros: Remove a completed "TODO" comment (#1086) + cc_ssh.py: Add configuration for controlling ssh-keygen output (#1083) [dermotbradley] + Add "install hotplug" module (SC-476) (#1069) (LP: #1946003) + hosts.alpine.tmpl: rearrange the order of short and long hostnames (#1084) [dermotbradley] + Add max version to docutils + cloudinit/dmi.py: Change warning to debug to prevent console display (#1082) [dermotbradley] + remove unnecessary EOF string in disable-sshd-keygen-if-cloud-init-active.conf (#1075) [Emanuele Giuseppe Esposito] + Add module 'write-files-deferred' executed in stage 'final' (#916) [Lucendio] + Bump pycloudlib to fix CI (#1080) + Remove pin in dependencies for jsonschema (#1078) + Add "Google" as possible system-product-name (#1077) [vteratipally] + Update Debian security suite for bullseye (#1076) [Johann Queuniet] + Leave the details of service management to the distro (#1074) [Andy Fiddaman] + Fix typos in setup.py (#1059) [Christian Clauss] + Update Azure _unpickle (SC-500) (#1067) (LP: #1946644) + cc_ssh.py: fix private key group owner and permissions (#1070) [Emanuele Giuseppe Esposito] + VMware: read network-config from ISO (#1066) [Thomas Weißschuh] + testing: mock sleep in gce unit tests (#1072) + CloudStack: fix data-server DNS resolution (#1004) [Olivier Lemasle] (LP: #1942232) + Fix unit test broken by pyyaml upgrade (#1071) + testing: add get_cloud function (SC-461) (#1038) + Inhibit sshd-keygen@.service if cloud-init is active (#1028) [Ryan Harper] + VMWARE: search the deployPkg plugin in multiarch dir (#1061) [xiaofengw-vmware] (LP: #1944946) + Fix set-name/interface DNS bug (#1058) [Andrew Kutz] (LP: #1946493) + Use specified tmp location for growpart (#1046) [jshen28] + .gitignore: ignore tags file for ctags users (#1057) [Brett Holman] + Allow comments in runcmd and report failed commands correctly (#1049) [Brett Holman] (LP: #1853146) + tox integration: pass the *_proxy, GOOGLE_*, GCP_* env vars (#1050) [Paride Legovini] + Allow disabling of network activation (SC-307) (#1048) (LP: #1938299) + renderer: convert relative imports to absolute (#1052) [Paride Legovini] + Support ETHx_IP6_GATEWAY, SET_HOSTNAME on OpenNebula (#1045) [Vlastimil Holer] + integration-requirements: bump the pycloudlib commit (#1047) [Paride Legovini] + Allow Vultr to set MTU and use as-is configs (#1037) [eb3095] + pin jsonschema in requirements.txt (#1043) + testing: remove cloud_tests (#1020) + Add andgein as contributor (#1042) [Andrew Gein] + Make wording for module frequency consistent (#1039) [Nicolas Bock] + Use ascii code for growpart (#1036) [jshen28] + Add jshen28 as contributor (#1035) [jshen28] + Skip test_cache_purged_on_version_change on Azure (#1033) + Remove invalid ssh_import_id from examples (#1031) + Cleanup Vultr support (#987) [eb3095] + docs: update cc_disk_setup for fs to raw disk (#1017) + HACKING.rst: change contact info to James Falcon (#1030) + tox: bump the pinned flake8 and pylint version (#1029) [Paride Legovini] (LP: #1944414) + Add retries to DataSourceGCE.py when connecting to GCE (#1005) [vteratipally] + Set Azure to apply networking config every BOOT (#1023) + Add connectivity_url to Oracle's EphemeralDHCPv4 (#988) (LP: #1939603) + docs: fix typo and include sudo for report bugs commands (#1022) [Renan Rodrigo] (LP: #1940236) + VMware: Fix typo introduced in #947 and add test (#1019) [PengpengSun] + Update IPv6 entries in /etc/hosts (#1021) [Richard Hansen] (LP: #1943798) + Integration test upgrades for the 21.3-1 SRU (#1001) + Add Jille to tools/.github-cla-signers (#1016) [Jille Timmermans] + Improve ug_util.py (#1013) [Shreenidhi Shedi] + Support openEuler OS (#1012) [zhuzaifangxuele] + ssh_utils.py: ignore when sshd_config options are not key/value pairs (#1007) [Emanuele Giuseppe Esposito] + Set Azure to only update metadata on BOOT_NEW_INSTANCE (#1006) + cc_update_etc_hosts: Use the distribution-defined path for the hosts file (#983) [Andy Fiddaman] + Add CloudLinux OS support (#1003) [Alexandr Kravchenko] + puppet config: add the start_agent option (#1002) [Andrew Bogott] + Fix `make style-check` errors (#1000) [Shreenidhi Shedi] + Make cloud-id copyright year (#991) [Andrii Podanenko] + Add support to accept-ra in networkd renderer (#999) [Shreenidhi Shedi] + Update ds-identify to pass shellcheck (#979) [Andrew Kutz] + Azure: Retry dhcp on timeouts when polling reprovisiondata (#998) [aswinrajamannar] + testing: Fix ssh keys integration test (#992) - From 21.3 + Azure: During primary nic detection, check interface status continuously before rebinding again (#990) [aswinrajamannar] + Fix home permissions modified by ssh module (SC-338) (#984) (LP: #1940233) + Add integration test for sensitive jinja substitution (#986) + Ignore hotplug socket when collecting logs (#985) (LP: #1940235) + testing: Add missing mocks to test_vmware.py (#982) + add Zadara Edge Cloud Platform to the supported clouds list (#963) [sarahwzadara] + testing: skip upgrade tests on LXD VMs (#980) + Only invoke hotplug socket when functionality is enabled (#952) + Revert unnecesary lcase in ds-identify (#978) [Andrew Kutz] + cc_resolv_conf: fix typos (#969) [Shreenidhi Shedi] + Replace broken httpretty tests with mock (SC-324) (#973) + Azure: Check if interface is up after sleep when trying to bring it up (#972) [aswinrajamannar] + Update dscheck_VMware's rpctool check (#970) [Shreenidhi Shedi] + Azure: Logging the detected interfaces (#968) [Moustafa Moustafa] + Change netifaces dependency to 0.10.4 (#965) [Andrew Kutz] + Azure: Limit polling network metadata on connection errors (#961) [aswinrajamannar] + Update inconsistent indentation (#962) [Andrew Kutz] + cc_puppet: support AIO installations and more (#960) [Gabriel Nagy] + Add Puppet contributors to CLA signers (#964) [Noah Fontes] + Datasource for VMware (#953) [Andrew Kutz] + photon: refactor hostname handling and add networkd activator (#958) [sshedi] + Stop copying ssh system keys and check folder permissions (#956) [Emanuele Giuseppe Esposito] + testing: port remaining cloud tests to integration testing framework (SC-191) (#955) + generate contents for ovf-env.xml when provisioning via IMDS (#959) [Anh Vo] + Add support for EuroLinux 7 && EuroLinux 8 (#957) [Aleksander Baranowski] + Implementing device_aliases as described in docs (#945) [Mal Graty] (LP: #1867532) + testing: fix test_ssh_import_id.py (#954) + Add ability to manage fallback network config on PhotonOS (#941) [sshedi] + Add VZLinux support (#951) [eb3095] + VMware: add network-config support in ovf-env.xml (#947) [PengpengSun] + Update pylint to v2.9.3 and fix the new issues it spots (#946) [Paride Legovini] + Azure: mount default provisioning iso before try device listing (#870) [Anh Vo] + Document known hotplug limitations (#950) + Initial hotplug support (#936) + Fix MIME policy failure on python version upgrade (#934) + run-container: fixup the centos repos baseurls when using http_proxy (#944) [Paride Legovini] + tools: add support for building rpms on rocky linux (#940) + ssh-util: allow cloudinit to merge all ssh keys into a custom user file, defined in AuthorizedKeysFile (#937) [Emanuele Giuseppe Esposito] (LP: #1911680) + VMware: new "allow_raw_data" switch (#939) [xiaofengw-vmware] + bump pycloudlib version (#935) + add renanrodrigo as a contributor (#938) [Renan Rodrigo] + testing: simplify test_upgrade.py (#932) + freebsd/net_v1 format: read MTU from root (#930) [Gonéri Le Bouder] + Add new network activators to bring up interfaces (#919) + Detect a Python version change and clear the cache (#857) [Robert Schweikert] + cloud_tests: fix the Impish release name (#931) [Paride Legovini] + Removed distro specific network code from Photon (#929) [sshedi] + Add support for VMware PhotonOS (#909) [sshedi] + cloud_tests: add impish release definition (#927) [Paride Legovini] + docs: fix stale links rename master branch to main (#926) + Fix DNS in NetworkState (SC-133) (#923) + tests: Add 'adhoc' mark for integration tests (#925) + Fix the spelling of "DigitalOcean" (#924) [Mark Mercado] + Small Doc Update for ReportEventStack and Test (#920) [Mike Russell] + Replace deprecated collections.Iterable with abc replacement (#922) (LP: #1932048) + testing: OCI availability domain is now required (SC-59) (#910) + add DragonFlyBSD support (#904) [Gonéri Le Bouder] + Use instance-data-sensitive.json in jinja templates (SC-117) (#917) (LP: #1931392) + doc: Update NoCloud docs stating required files (#918) (LP: #1931577) + build-on-netbsd: don't pin a specific py3 version (#913) [Gonéri Le Bouder] + Create the log file with 640 permissions (#858) [Robert Schweikert] + Allow braces to appear in dhclient output (#911) [eb3095] + Docs: Replace all freenode references with libera (#912) + openbsd/net: flush the route table on net restart (#908) [Gonéri Le Bouder] + Add Rocky Linux support to cloud-init (#906) [Louis Abel] + Add "esposem" as contributor (#907) [Emanuele Giuseppe Esposito] + Add integration test for #868 (#901) + Added support for importing keys via primary/security mirror clauses (#882) [Paul Goins] (LP: #1925395) + [examples] config-user-groups expire in the future (#902) [Geert Stappers] + BSD: static network, set the mtu (#894) [Gonéri Le Bouder] + Add integration test for lp-1920939 (#891) + Fix unit tests breaking from new httpretty version (#903) + Allow user control over update events (#834) + Update test characters in substitution unit test (#893) + cc_disk_setup.py: remove UDEVADM_CMD definition as not used (#886) [dermotbradley] + Add AlmaLinux OS support (#872) [Andrew Lukoshko]- systemctl location (bsc#1193531) - Add cloud-init-sysctl-not-in-bin.patch - The sytemctl executable is not necessarily in '/bin'- Remove unneeded BuildRequires on python3-nose.- Update to version 21.2 (bsc#1186004) + Remove patches included upstream: - cloud-init-azure-def-usr-pass.patch - cloud-init-after-kvp.diff - cloud-init-recognize-hpc.patch - use_arroba_to_include_sudoers_directory-bsc_1181283.patch - cloud-init-bonding-opts.patch - cloud-init-log-file-mode.patch - cloud-init-no-pwd-in-log.patch - 0001-templater-drop-Jinja-Python-2-compatibility-shim.patch + Remove cloud-init-sle12-compat.patch, version in SLE 12 is frozen to 20.2 + Remove cloud-init-tests-set-exec.patch no longer needed + Forward port: - cloud-init-write-routes.patch - cloud-init-break-resolv-symlink.patch - cloud-init-sysconf-path.patch - cloud-init-no-tempnet-oci.patch + Add \r\n check for SSH keys in Azure (#889) + Revert "Add support to resize rootfs if using LVM (#721)" (#887) (LP: #1922742) + Add Vultaire as contributor (#881) [Paul Goins] + Azure: adding support for consuming userdata from IMDS (#884) [Anh Vo] + test_upgrade: modify test_upgrade_package to run for more sources (#883) + Fix chef module run failure when chef_license is set (#868) [Ben Hughes] + Azure: Retry net metadata during nic attach for non-timeout errs (#878) [aswinrajamannar] + Azure: Retrieve username and hostname from IMDS (#865) [Thomas Stringer] + Azure: eject the provisioning iso before reporting ready (#861) [Anh Vo] + Use `partprobe` to re-read partition table if available (#856) [Nicolas Bock] (LP: #1920939) + fix error on upgrade caused by new vendordata2 attributes (#869) (LP: #1922739) + add prefer_fqdn_over_hostname config option (#859) [hamalq] (LP: #1921004) + Emit dots on travis to avoid timeout (#867) + doc: Replace remaining references to user-scripts as a config module (#866) [Ryan Harper] + azure: Removing ability to invoke walinuxagent (#799) [Anh Vo] + Add Vultr support (#827) [David Dymko] + Fix unpickle for source paths missing run_dir (#863) [lucasmoura] (LP: #1899299) + sysconfig: use BONDING_MODULE_OPTS on SUSE (#831) [Jens Sandmann] + bringup_static_routes: fix gateway check (#850) [Petr Fedchenkov] + add hamalq user (#860) [hamalq] + Add support to resize rootfs if using LVM (#721) [Eduardo Otubo] (LP: #1799953) + Fix mis-detecting network configuration in initramfs cmdline (#844) (LP: #1919188) + tools/write-ssh-key-fingerprints: do not display empty header/footer (#817) [dermotbradley] + Azure helper: Ensure Azure http handler sleeps between retries (#842) [Johnson Shi] + Fix chef apt source example (#826) [timothegenzmer] + .travis.yml: generate an SSH key before running tests (#848) + write passwords only to serial console, lock down cloud-init-output.log (#847) (LP: #1918303) + Fix apt default integration test (#845) + integration_tests: bump pycloudlib dependency (#846) + Fix stack trace if vendordata_raw contained an array (#837) [eb3095] + archlinux: Fix broken locale logic (#841) [Kristian Klausen] (LP: #1402406) + Integration test for #783 (#832) + integration_tests: mount more paths IN_PLACE (#838) + Fix requiring device-number on EC2 derivatives (#836) (LP: #1917875) + Remove the vi comment from the part-handler example (#835) + net: exclude OVS internal interfaces in get_interfaces (#829) (LP: #1912844) + tox.ini: pass OS_* environment variables to integration tests (#830) + integration_tests: add OpenStack as a platform (#804) + Add flexibility to IMDS api-version (#793) [Thomas Stringer] + Fix the TestApt tests using apt-key on Xenial and Hirsute (#823) [Paride Legovini] (LP: #1916629) + doc: remove duplicate "it" from nocloud.rst (#825) [V.I. Wood] + archlinux: Use hostnamectl to set the transient hostname (#797) [Kristian Klausen] + cc_keys_to_console.py: Add documentation for recently added config key (#824) [dermotbradley] + Update cc_set_hostname documentation (#818) [Toshi Aoyama] From 21.1 + Azure: Support for VMs without ephemeral resource disks. (#800) [Johnson Shi] (LP: #1901011) + cc_keys_to_console: add option to disable key emission (#811) [Michael Hudson-Doyle] (LP: #1915460) + integration_tests: introduce lxd_use_exec mark (#802) + azure: case-insensitive UUID to avoid new IID during kernel upgrade (#798) (LP: #1835584) + stale.yml: don't ask submitters to reopen PRs (#816) + integration_tests: fix use of SSH agent within tox (#815) + integration_tests: add UPGRADE CloudInitSource (#812) + integration_tests: use unique MAC addresses for tests (#813) + Update .gitignore (#814) + Port apt cloud_tests to integration tests (#808) + integration_tests: fix test_gh626 on LXD VMs (#809) + Fix attempting to decode binary data in test_seed_random_data test (#806) + Remove wait argument from tests with session_cloud calls (#805) + Datasource for UpCloud (#743) [Antti Myyrä] + test_gh668: fix failure on LXD VMs (#801) + openstack: read the dynamic metadata group vendor_data2.json (#777) [Andrew Bogott] (LP: #1841104) + includedir in suoders can be prefixed by "arroba" (#783) [Jordi Massaguer Pla] + [VMware] change default max wait time to 15s (#774) [xiaofengw-vmware] + Revert integration test associated with reverted #586 (#784) + Add jordimassaguerpla as contributor (#787) [Jordi Massaguer Pla] + Add Rick Harding to CLA signers (#792) [Rick Harding] + HACKING.rst: add clarifying note to LP CLA process section (#789) + Stop linting cloud_tests (#791) + cloud-tests: update cryptography requirement (#790) [Joshua Powers] + Remove 'remove-raise-on-failure' calls from integration_tests (#788) + Use more cloud defaults in integration tests (#757) + Adding self to cla signers (#776) [Andrew Bogott] + doc: avoid two warnings (#781) [Dan Kenigsberg] + Use proper spelling for Red Hat (#778) [Dan Kenigsberg] + Add antonyc to .github-cla-signers (#747) [Anton Chaporgin] + integration_tests: log image serial if available (#772) + [VMware] Support cloudinit raw data feature (#691) [xiaofengw-vmware] + net: Fix static routes to host in eni renderer (#668) [Pavel Abalikhin] + .travis.yml: don't run cloud_tests in CI (#756) + test_upgrade: add some missing commas (#769) + cc_seed_random: update documentation and fix integration test (#771) (LP: #1911227) + Fix test gh-632 test to only run on NoCloud (#770) (LP: #1911230) + archlinux: fix package upgrade command handling (#768) [Bao Trinh] + integration_tests: add integration test for LP: #1910835 (#761) + Fix regression with handling of IMDS ssh keys (#760) [Thomas Stringer] + integration_tests: log cloud-init version in SUT (#758) + Add ajmyyra as contributor (#742) [Antti Myyrä] + net_convert: add some missing help text (#755) + Missing IPV6_AUTOCONF=no to render sysconfig dhcp6 stateful on RHEL (#753) [Eduardo Otubo] + doc: document missing IPv6 subnet types (#744) [Antti Myyrä] + Add example configuration for datasource `AliYun` (#751) [Xiaoyu Zhong] + integration_tests: add SSH key selection settings (#754) + fix a typo in man page cloud-init.1 (#752) [Amy Chen] + network-config-format-v2.rst: add Netplan Passthrough section (#750) + stale: re-enable post holidays (#749) + integration_tests: port ca_certs tests from cloud_tests (#732) + Azure: Add telemetry for poll IMDS (#741) [Johnson Shi] + doc: move testing section from HACKING to its own doc (#739) + No longer allow integration test failures on travis (#738) + stale: fix error in definition (#740) + integration_tests: set log-cli-level to INFO by default (#737) + PULL_REQUEST_TEMPLATE.md: use backticks around commit message (#736) + stale: disable check for holiday break (#735) + integration_tests: log the path we collect logs into (#733) + .travis.yml: add (most) supported Python versions to CI (#734) + integration_tests: fix IN_PLACE CLOUD_INIT_SOURCE (#731) + cc_ca_certs: add RHEL support (#633) [cawamata] + Azure: only generate config for NICs with addresses (#709) [Thomas Stringer] + doc: fix CloudStack configuration example (#707) [Olivier Lemasle] + integration_tests: restrict test_lxd_bridge appropriately (#730) + Add integration tests for CLI functionality (#729) + Integration test for gh-626 (#728) + Some test_upgrade fixes (#726) + Ensure overriding test vars with env vars works for booleans (#727) + integration_tests: port lxd_bridge test from cloud_tests (#718) + Integration test for gh-632. (#725) + Integration test for gh-671 (#724) + integration-requirements.txt: bump pycloudlib commit (#723) + Drop unnecessary shebang from cmd/main.py (#722) [Eduardo Otubo] + Integration test for LP: #1813396 and #669 (#719) + integration_tests: include timestamp in log output (#720) + integration_tests: add test for LP: #1898997 (#713) + Add integration test for power_state_change module (#717) + Update documentation for network-config-format-v2 (#701) [ggiesen] + sandbox CA Cert tests to not require ca-certificates (#715) [Eduardo Otubo] + Add upgrade integration test (#693) + Integration test for 570 (#712) + Add ability to keep snapshotted images in integration tests (#711) + Integration test for pull #586 (#706) + integration_tests: introduce skipping of tests by OS (#702) + integration_tests: introduce IntegrationInstance.restart (#708) + Add lxd-vm to list of valid integration test platforms (#705) + Adding BOOTPROTO = dhcp to render sysconfig dhcp6 stateful on RHEL (#685) [Eduardo Otubo] + Delete image snapshots created for integration tests (#682) + Parametrize ssh_keys_provided integration test (#700) [lucasmoura] + Drop use_sudo attribute on IntegrationInstance (#694) [lucasmoura] + cc_apt_configure: add riscv64 as a ports arch (#687) [Dimitri John Ledkov] + cla: add xnox (#692) [Dimitri John Ledkov] + Collect logs from integration test runs (#675) From 20.4.1 + Revert "ssh_util: handle non-default AuthorizedKeysFile config (#586)" From 20.4 + tox: avoid tox testenv subsvars for xenial support (#684) + Ensure proper root permissions in integration tests (#664) [James Falcon] + LXD VM support in integration tests (#678) [James Falcon] + Integration test for fallocate falling back to dd (#681) [James Falcon] + .travis.yml: correctly integration test the built .deb (#683) + Ability to hot-attach NICs to preprovisioned VMs before reprovisioning (#613) [aswinrajamannar] + Support configuring SSH host certificates. (#660) [Jonathan Lung] + add integration test for LP: #1900837 (#679) + cc_resizefs on FreeBSD: Fix _can_skip_ufs_resize (#655) [Mina Galić] (LP: #1901958, #1901958) + DataSourceAzure: push dmesg log to KVP (#670) [Anh Vo] + Make mount in place for tests work (#667) [James Falcon] + integration_tests: restore emission of settings to log (#657) + DataSourceAzure: update password for defuser if exists (#671) [Anh Vo] + tox.ini: only select "ci" marked tests for CI runs (#677) + Azure helper: Increase Azure Endpoint HTTP retries (#619) [Johnson Shi] + DataSourceAzure: send failure signal on Azure datasource failure (#594) [Johnson Shi] + test_persistence: simplify VersionIsPoppedFromState (#674) + only run a subset of integration tests in CI (#672) + cli: add + -system param to allow validating system user-data on a machine (#575) + test_persistence: add VersionIsPoppedFromState test (#673) + introduce an upgrade framework and related testing (#659) + add + -no-tty option to gpg (#669) [Till Riedel] (LP: #1813396) + Pin pycloudlib to a working commit (#666) [James Falcon] + DataSourceOpenNebula: exclude SRANDOM from context output (#665) + cloud_tests: add hirsute release definition (#662) + split integration and cloud_tests requirements (#652) + faq.rst: add warning to answer that suggests running `clean` (#661) + Fix stacktrace in DataSourceRbxCloud if no metadata disk is found (#632) [Scott Moser] + Make wakeonlan Network Config v2 setting actually work (#626) [dermotbradley] + HACKING.md: unify network-refactoring namespace (#658) [Mina Galić] + replace usage of dmidecode with kenv on FreeBSD (#621) [Mina Galić] + Prevent timeout on travis integration tests. (#651) [James Falcon] + azure: enable pushing the log to KVP from the last pushed byte (#614) [Moustafa Moustafa] + Fix launch_kwargs bug in integration tests (#654) [James Falcon] + split read_fs_info into linux & freebsd parts (#625) [Mina Galić] + PULL_REQUEST_TEMPLATE.md: expand commit message section (#642) + Make some language improvements in growpart documentation (#649) [Shane Frasier] + Revert ".travis.yml: use a known-working version of lxd (#643)" (#650) + Fix not sourcing default 50-cloud-init ENI file on Debian (#598) [WebSpider] + remove unnecessary reboot from gpart resize (#646) [Mina Galić] + cloudinit: move dmi functions out of util (#622) [Scott Moser] + integration_tests: various launch improvements (#638) + test_lp1886531: don't assume /etc/fstab exists (#639) + Remove Ubuntu restriction from PR template (#648) [James Falcon] + util: fix mounting of vfat on *BSD (#637) [Mina Galić] + conftest: improve docstring for disable_subp_usage (#644) + doc: add example query commands to debug Jinja templates (#645) + Correct documentation and testcase data for some user-data YAML (#618) [dermotbradley] + Hetzner: Fix instance_id / SMBIOS serial comparison (#640) [Markus Schade] + .travis.yml: use a known-working version of lxd (#643) + tools/build-on-freebsd: fix comment explaining purpose of the script (#635) [Mina Galić] + Hetzner: initialize instance_id from system-serial-number (#630) [Markus Schade] (LP: #1885527) + Explicit set IPV6_AUTOCONF and IPV6_FORCE_ACCEPT_RA on static6 (#634) [Eduardo Otubo] + get_interfaces: don't exclude Open vSwitch bridge/bond members (#608) [Lukas Märdian] (LP: #1898997) + Add config modules for controlling IBM PowerVM RMC. (#584) [Aman306] (LP: #1895979) + Update network config docs to clarify MAC address quoting (#623) [dermotbradley] + gentoo: fix hostname rendering when value has a comment (#611) [Manuel Aguilera] + refactor integration testing infrastructure (#610) [James Falcon] + stages: don't reset permissions of cloud-init.log every boot (#624) (LP: #1900837) + docs: Add how to use cloud-localds to boot qemu (#617) [Joshua Powers] + Drop vestigial update_resolve_conf_file function (#620) [Scott Moser] + cc_mounts: correctly fallback to dd if fallocate fails (#585) (LP: #1897099) + .travis.yml: add integration-tests to Travis matrix (#600) + ssh_util: handle non-default AuthorizedKeysFile config (#586) [Eduardo Otubo] + Multiple file fix for AuthorizedKeysFile config (#60) [Eduardo Otubo] + bddeb: new + -packaging-branch argument to pull packaging from branch (#576) [Paride Legovini] + Add more integration tests (#615) [lucasmoura] + DataSourceAzure: write marker file after report ready in preprovisioning (#590) [Johnson Shi] + integration_tests: emit settings to log during setup (#601) + integration_tests: implement citest tests run in Travis (#605) + Add Azure support to integration test framework (#604) [James Falcon] + openstack: consider product_name as valid chassis tag (#580) [Adrian Vladu] (LP: #1895976) + azure: clean up and refactor report_diagnostic_event (#563) [Johnson Shi] + net: add the ability to blacklist network interfaces based on driver during enumeration of physical network devices (#591) [Anh Vo] + integration_tests: don't error on cloud-init failure (#596) + integration_tests: improve cloud-init.log assertions (#593) + conftest.py: remove top-level import of httpretty (#599) + tox.ini: add integration-tests testenv definition (#595) + PULL_REQUEST_TEMPLATE.md: empty checkboxes need a space (#597) + add integration test for LP: #1886531 (#592) + Initial implementation of integration testing infrastructure (#581) [James Falcon] + Fix name of ntp and chrony service on CentOS and RHEL. (#589) [Scott Moser] (LP: #1897915) + Adding a PR template (#587) [James Falcon] + Azure parse_network_config uses fallback cfg when generate IMDS network cfg fails (#549) [Johnson Shi] + features: refresh docs for easier out-of-context reading (#582) + Fix typo in resolv_conf module's description (#578) [Wacław Schiller] + cc_users_groups: minor doc formatting fix (#577) + Fix typo in disk_setup module's description (#579) [Wacław Schiller] + Add vendor-data support to seedfrom parameter for NoCloud and OVF (#570) [Johann Queuniet] + boot.rst: add First Boot Determination section (#568) (LP: #1888858) + opennebula.rst: minor readability improvements (#573) [Mina Galić] + cloudinit: remove unused LOG variables (#574) + create a shutdown_command method in distro classes (#567) [Emmanuel Thomé] + user_data: remove unused constant (#566) + network: Fix type and respect name when rendering vlan in sysconfig. (#541) [Eduardo Otubo] (LP: #1788915, #1826608) + Retrieve SSH keys from IMDS first with OVF as a fallback (#509) [Thomas Stringer] + Add jqueuniet as contributor (#569) [Johann Queuniet] + distros: minor typo fix (#562) + Bump the integration-requirements versioned dependencies (#565) [Paride Legovini] + network-config-format-v1: fix typo in nameserver example (#564) [Stanislas] + Run cloud-init-local.service after the hv_kvp_daemon (#505) [Robert Schweikert] + Add method type hints for Azure helper (#540) [Johnson Shi] + systemd: add Before=shutdown.target when Conflicts=shutdown.target is used (#546) [Paride Legovini] + LXD: detach network from profile before deleting it (#542) [Paride Legovini] (LP: #1776958) + redhat spec: add missing BuildRequires (#552) [Paride Legovini] + util: remove debug statement (#556) [Joshua Powers] + Fix cloud config on chef example (#551) [lucasmoura] From 20.3 + Azure: Add netplan driver filter when using hv_netvsc driver (#539) [James Falcon] (LP: #1830740) + query: do not handle non-decodable non-gzipped content (#543) + DHCP sandboxing failing on noexec mounted /var/tmp (#521) [Eduardo Otubo] + Update the list of valid ssh keys. (#487) [Ole-Martin Bratteng] (LP: #1877869) + cmd: cloud-init query to handle compressed userdata (#516) (LP: #1889938) + Pushing cloud-init log to the KVP (#529) [Moustafa Moustafa] + Add Alpine Linux support. (#535) [dermotbradley] + Detect kernel version before swap file creation (#428) [Eduardo Otubo] + cli: add devel make-mime subcommand (#518) + user-data: only verify mime-types for TYPE_NEEDED and x-shellscript (#511) (LP: #1888822) + DataSourceOracle: retry twice (and document why we retry at all) (#536) + Refactor Azure report ready code (#468) [Johnson Shi] + tox.ini: pin correct version of httpretty in xenial{,-dev} envs (#531) + Support Oracle IMDSv2 API (#528) [James Falcon] + .travis.yml: run a doc build during CI (#534) + doc/rtd/topics/datasources/ovf.rst: fix doc8 errors (#533) + Fix 'Users and Groups' configuration documentation (#530) [sshedi] + cloudinit.distros: update docstrings of add_user and create_user (#527) + Fix headers for device types in network v2 docs (#532) [Caleb Xavier Berger] + Add AlexBaranowski as contributor (#508) [Aleksander Baranowski] + DataSourceOracle: refactor to use only OPC v1 endpoint (#493) + .github/workflows/stale.yml: s/Josh/Rick/ (#526) + Fix a typo in apt pipelining module (#525) [Xiao Liang] + test_util: parametrize devlist tests (#523) [James Falcon] + Recognize LABEL_FATBOOT labels (#513) [James Falcon] (LP: #1841466) + Handle additional identifier for SLES For HPC (#520) [Robert Schweikert] + Revert "test-requirements.txt: pin pytest to <6 (#512)" (#515) + test-requirements.txt: pin pytest to <6 (#512) + Add "tsanghan" as contributor (#504) [tsanghan] + fix brpm building (LP: #1886107) + Adding eandersson as a contributor (#502) [Erik Olof Gunnar Andersson] + azure: disable bouncing hostname when setting hostname fails (#494) [Anh Vo] + VMware: Support parsing DEFAULT-RUN-POST-CUST-SCRIPT (#441) [xiaofengw-vmware] + DataSourceAzure: Use ValueError when JSONDecodeError is not available (#490) [Anh Vo] + cc_ca_certs.py: fix blank line problem when removing CAs and adding new one (#483) [dermotbradley] + freebsd: py37-serial is now py37-pyserial (#492) [Gonéri Le Bouder] + ssh exit with non-zero status on disabled user (#472) [Eduardo Otubo] (LP: #1170059) + cloudinit: remove global disable of pylint W0107 and fix errors (#489) + networking: refactor wait_for_physdevs from cloudinit.net (#466) (LP: #1884626) + HACKING.rst: add pytest.param pytest gotcha (#481) + cloudinit: remove global disable of pylint W0105 and fix errors (#480) + Fix two minor warnings (#475) + test_data: fix faulty patch (#476) + cc_mounts: handle missing fstab (#484) (LP: #1886531) + LXD cloud_tests: support more lxd image formats (#482) [Paride Legovini] + Add update_etc_hosts as default module on *BSD (#479) [Adam Dobrawy] + cloudinit: fix tip-pylint failures and bump pinned pylint version (#478) + Added BirknerAlex as contributor and sorted the file (#477) [Alexander Birkner] + Update list of types of modules in cli.rst [saurabhvartak1982] + tests: use markers to configure disable_subp_usage (#473) + Add mention of vendor-data to no-cloud format documentation (#470) [Landon Kirk] + Fix broken link to OpenStack metadata service docs (#467) [Matt Riedemann] + Disable ec2 mirror for non aws instances (#390) [lucasmoura] (LP: #1456277) + cloud_tests: don't pass + -python-version to read-dependencies (#465) + networking: refactor is_physical from cloudinit.net (#457) (LP: #1884619) + Enable use of the caplog fixture in pytest tests, and add a cc_final_message test using it (#461) + RbxCloud: Add support for FreeBSD (#464) [Adam Dobrawy] + Add schema for cc_chef module (#375) [lucasmoura] (LP: #1858888) + test_util: add (partial) testing for util.mount_cb (#463) + .travis.yml: revert to installing ubuntu-dev-tools (#460) + HACKING.rst: add details of net refactor tracking (#456) + .travis.yml: rationalise installation of dependencies in host (#449) + Add dermotbradley as contributor. (#458) [dermotbradley] + net/networking: remove unused functions/methods (#453) + distros.networking: initial implementation of layout (#391) + cloud-init.service.tmpl: use "rhel" instead of "redhat" (#452) + Change from redhat to rhel in systemd generator tmpl (#450) [Eduardo Otubo] + Hetzner: support reading user-data that is base64 encoded. (#448) [Scott Moser] (LP: #1884071) + HACKING.rst: add strpath gotcha to testing gotchas section (#446) + cc_final_message: don't create directories when writing boot-finished (#445) (LP: #1883903) + .travis.yml: only store new schroot if something has changed (#440) + util: add ensure_dir_exists parameter to write_file (#443) + printing the error stream of the dhclient process before killing it (#369) [Moustafa Moustafa] + Fix link to the MAAS documentation (#442) [Paride Legovini] (LP: #1883666) + RPM build: disable the dynamic mirror URLs when using a proxy (#437) [Paride Legovini] + util: rename write_file's copy_mode parameter to preserve_mode (#439) + .travis.yml: use $TRAVIS_BUILD_DIR for lxd_image caching (#438) + cli.rst: alphabetise devel subcommands and add net-convert to list (#430) + Default to UTF-8 in /var/log/cloud-init.log (#427) [James Falcon] + travis: cache the chroot we use for package builds (#429) + test: fix all flake8 E126 errors (#425) [Joshua Powers] + Fixes KeyError for bridge with no "parameters:" setting (#423) [Brian Candler] (LP: #1879673) + When tools.conf does not exist, running cmd "vmware-toolbox-cmd config get deployPkg enable-custom-scripts", the return code will be EX_UNAVAILABLE(69), on this condition, it should not take it as error. (#413) [chengcheng-chcheng] + Document CloudStack data-server well-known hostname (#399) [Gregor Riepl] + test: move conftest.py to top-level, to cover tests/ also (#414) + Replace cc_chef is_installed with use of subp.is_exe. (#421) [Scott Moser] + Move runparts to subp. (#420) [Scott Moser] + Move subp into its own module. (#416) [Scott Moser] + readme: point at travis-ci.com (#417) [Joshua Powers] + New feature flag functionality and fix includes failing silently (#367) [James Falcon] (LP: #1734939) + Enhance poll imds logging (#365) [Moustafa Moustafa] + test: fix all flake8 E121 and E123 errors (#404) [Joshua Powers] + test: fix all flake8 E241 (#403) [Joshua Powers] + test: ignore flake8 E402 errors in main.py (#402) [Joshua Powers] + cc_grub_dpkg: determine idevs in more robust manner with grub-probe (#358) [Matthew Ruffell] (LP: #1877491) + test: fix all flake8 E741 errors (#401) [Joshua Powers] + tests: add groovy integration tests for ubuntu (#400) + Enable chef_license support for chef infra client (#389) [Bipin Bachhao] + testing: use flake8 again (#392) [Joshua Powers] + enable Puppet, Chef mcollective in default config (#385) [Mina Galić (deprecated: Igor Galić)] (LP: #1880279) + HACKING.rst: introduce .net + > Networking refactor section (#384) + Travis: do not install python3-contextlib2 (dropped dependency) (#388) [Paride Legovini] + HACKING: mention that .github-cla-signers is alpha-sorted (#380) + Add bipinbachhao as contributor (#379) [Bipin Bachhao] + cc_snap: validate that assertions property values are strings (#370) + conftest: implement partial disable_subp_usage (#371) + test_resolv_conf: refresh stale comment (#374) + cc_snap: apply validation to snap.commands properties (#364) + make finding libc platform independent (#366) [Mina Galić (deprecated: Igor Galić)] + doc/rtd/topics/faq: Updates LXD docs links to current site (#368) [TomP] + templater: drop Jinja Python 2 compatibility shim (#353) + cloudinit: minor pylint fixes (#360) + cloudinit: remove unneeded __future__ imports (#362) + migrating momousta lp user to Moustafa-Moustafa GitHub user (#361) [Moustafa Moustafa] + cloud_tests: emit dots on Travis while fetching images (#347) + Add schema to apt configure config (#357) [lucasmoura] (LP: #1858884) + conftest: add docs and tests regarding CiTestCase's subp functionality (#343) + analyze/dump: refactor shared string into variable (#350) + doc: update boot.rst with correct timing of runcmd (#351) + HACKING.rst: change contact info to Rick Harding (#359) [lucasmoura] + HACKING.rst: guide people to add themselves to the CLA file (#349) + HACKING.rst: more unit testing documentation (#354) + .travis.yml: don't run lintian during integration test package builds (#352) + Add test to ensure docs examples are valid cloud-init configs (#355) [James Falcon] (LP: #1876414) + make suse and sles support 127.0.1.1 (#336) [chengcheng-chcheng] + Create tests to validate schema examples (#348) [lucasmoura] (LP: #1876412) + analyze/dump: add support for Amazon Linux 2 log lines (#346) (LP: #1876323) + bsd: upgrade support (#305) [Gonéri Le Bouder] + Add lucasmoura as contributor (#345) [lucasmoura] + Add "therealfalcon" as contributor (#344) [James Falcon] + Adapt the package building scripts to use Python 3 (#231) [Paride Legovini] + DataSourceEc2: use metadata's NIC ordering to determine route-metrics (#342) (LP: #1876312) + .travis.yml: introduce caching (#329) + cc_locale: introduce schema (#335) + doc/rtd/conf.py: bump copyright year to 2020 (#341) + yum_add_repo: Add Centos to the supported distro list (#340)- Add cloud-init-update-test-characters-in-substitution-unit-test.patch to fix unit test fail in TestGetPackageMirrorInfo::test_substitution.- Add patch from upstream to remove python2 compatibility so cloud-init builds fine in Tumbleweed with a recent Jinja2 version. This patch is only applied in TW. * 0001-templater-drop-Jinja-Python-2-compatibility-shim.patch- Add cloud-init-log-file-mode.patch (bsc#1183939) + Change log file creation mode to 640 - Add cloud-init-no-pwd-in-log.patch (bsc#1184758, CVE-2021-3429) + Do not write the generated password to the log file - Add cloud-init-purge-cache-py-ver-change.patch- Add cloud-init-bonding-opts.patch (bsc#1184085) + Write proper bonding option configuration for SLE/openSUSE - Fix application and inclusion of use_arroba_to_include_sudoers_directory-bsc_1181283.patchfix (bsc#1181283)- Add use_arroba_to_include_sudoers_directory-bsc_1181283.patchfix (bsc#1181283) - Do not including sudoers.d directory twice- Update cloud-init-write-routes.patch (bsc#1180176) + Follow up to previous changes. Fix order of operations error to make gateway comparison between subnet configuration and route configuration valuable rather than self-comparing.- Add cloud-init-sle12-compat.patch (jsc#PM-2335) - Python 3.4 compatibility in setup.py - Disable some test for mock version compatibility- Add wget as a requirement (bsc#1178029) + wget is used in the CloudStack data source- Add cloud-init-azure-def-usr-pass.patch (bsc#1179150, bsc#1179151) + Properly set the password for the default user in all circumstances- Patch the full package version into the cloud-init version file- Update cloud-init-write-routes.patch (bsc#1177526) + Fix missing default route when dual stack network setup is used. Once a default route was configured for Ipv6 or IPv4 the default route configuration for the othre protocol was skipped.- Update cloud-init-write-routes.patch (bsc#1177526) + Avoid exception if no gateway information is present and warning is triggered for existing routing.- Update to version 20.2 (bsc#1174443, bsc#1174444) + Remove patches included upstream: - 0001-Make-tests-work-with-Python-3.8-139.patch - cloud-init-ostack-metadat-dencode.patch - cloud-init-use-different-random-src.diff - cloud-init-long-pass.patch - cloud-init-mix-static-dhcp.patch + Remove patches build switched to Python 3 for all distributions (jsc#PM-2335) - cloud-init-python2-sigpipe.patch - cloud-init-template-py2.patch + Add - cloud-init-after-kvp.diff - cloud-init-recognize-hpc.patch + doc/format: reference make-mime.py instead of an inline script (#334) + Add docs about creating parent folders (#330) [Adrian Wilkins] + DataSourceNoCloud/OVF: drop claim to support FTP (#333) (LP: #1875470) + schema: ignore spurious pylint error (#332) + schema: add json schema for write_files module (#152) + BSD: find_devs_with_ refactoring (#298) [Gonéri Le Bouder] + nocloud: drop work around for Linux 2.6 (#324) [Gonéri Le Bouder] + cloudinit: drop dependencies on unittest2 and contextlib2 (#322) + distros: handle a potential mirror filtering error case (#328) + log: remove unnecessary import fallback logic (#327) + .travis.yml: don't run integration test on ubuntu/* branches (#321) + More unit test documentation (#314) + conftest: introduce disable_subp_usage autouse fixture (#304) + YAML align indent sizes for docs readability (#323) [Tak Nishigori] + network_state: add missing space to log message (#325) + tests: add missing mocks for get_interfaces_by_mac (#326) (LP: #1873910) + test_mounts: expand happy path test for both happy paths (#319) + cc_mounts: fix incorrect format specifiers (#316) (LP: #1872836) + swap file "size" being used before checked if str (#315) [Eduardo Otubo] + HACKING.rst: add pytest version gotchas section (#311) + docs: Add steps to re-run cloud-id and cloud-init (#313) [Joshua Powers] + readme: OpenBSD is now supported (#309) [Gonéri Le Bouder] + net: ignore 'renderer' key in netplan config (#306) (LP: #1870421) + Add support for NFS/EFS mounts (#300) [Andrew Beresford] (LP: #1870370) + openbsd: set_passwd should not unlock user (#289) [Gonéri Le Bouder] + tools/.github-cla-signers: add beezly as CLA signer (#301) + util: remove unnecessary lru_cache import fallback (#299) + HACKING.rst: reorganise/update CLA signature info (#297) + distros: drop leading/trailing hyphens from mirror URL labels (#296) + HACKING.rst: add note about variable annotations (#295) + CiTestCase: stop using and remove sys_exit helper (#283) + distros: replace invalid characters in mirror URLs with hyphens (#291) (LP: #1868232) + rbxcloud: gracefully handle arping errors (#262) [Adam Dobrawy] + Fix cloud-init ignoring some misdeclared mimetypes in user-data. [Kurt Garloff] + net: ubuntu focal prioritize netplan over eni even if both present (#267) (LP: #1867029) + cloudinit: refactor util.is_ipv4 to net.is_ipv4_address (#292) + net/cmdline: replace type comments with annotations (#294) + HACKING.rst: add Type Annotations design section (#293) + net: introduce is_ip_address function (#288) + CiTestCase: remove now-unneeded parse_and_read helper method (#286) + .travis.yml: allow 30 minutes of inactivity in cloud tests (#287) + sources/tests/test_init: drop use of deprecated inspect.getargspec (#285) + setup.py: drop NIH check_output implementation (#282) + Identify SAP Converged Cloud as OpenStack [Silvio Knizek] + add Openbsd support (#147) [Gonéri Le Bouder] + HACKING.rst: add examples of the two test class types (#278) + VMWware: support to update guest info gc status if enabled (#261) [xiaofengw-vmware] + Add lp-to-git mapping for kgarloff (#279) + set_passwords: avoid chpasswd on BSD (#268) [Gonéri Le Bouder] + HACKING.rst: add Unit Testing design section (#277) + util: read_cc_from_cmdline handle urlencoded yaml content (#275) + distros/tests/test_init: add tests for _get_package_mirror_info (#272) + HACKING.rst: add links to new Code Review Process doc (#276) + freebsd: ensure package update works (#273) [Gonéri Le Bouder] + doc: introduce Code Review Process documentation (#160) + tools: use python3 (#274) + cc_disk_setup: fix RuntimeError (#270) (LP: #1868327) + cc_apt_configure/util: combine search_for_mirror implementations (#271) + bsd: boottime does not depend on the libc soname (#269) [Gonéri Le Bouder] + test_oracle,DataSourceOracle: sort imports (#266) + DataSourceOracle: update .network_config docstring (#257) + cloudinit/tests: remove unneeded with_logs configuration (#263) + .travis.yml: drop stale comment (#255) + .gitignore: add more common directories (#258) + ec2: render network on all NICs and add secondary IPs as static (#114) (LP: #1866930) + ec2 json validation: fix the reference to the 'merged_cfg' key (#256) [Paride Legovini] + releases.yaml: quote the Ubuntu version numbers (#254) [Paride Legovini] + cloudinit: remove six from packaging/tooling (#253) + util/netbsd: drop six usage (#252) + workflows: introduce stale pull request workflow (#125) + cc_resolv_conf: introduce tests and stabilise output across Python versions (#251) + fix minor issue with resolv_conf template (#144) [andreaf74] + doc: CloudInit also support NetBSD (#250) [Gonéri Le Bouder] + Add Netbsd support (#62) [Gonéri Le Bouder] + tox.ini: avoid substition syntax that causes a traceback on xenial (#245) + Add pub_key_ed25519 to cc_phone_home (#237) [Daniel Hensby] + Introduce and use of a list of GitHub usernames that have signed CLA (#244) + workflows/cla.yml: use correct username for CLA check (#243) + tox.ini: use xenial version of jsonpatch in CI (#242) + workflows: CLA validation altered to fail status on pull_request (#164) + tox.ini: bump pyflakes version to 2.1.1 (#239) + cloudinit: move to pytest for running tests (#211) + instance-data: add cloud-init merged_cfg and sys_info keys to json (#214) (LP: #1865969) + ec2: Do not fallback to IMDSv1 on EC2 (#216) + instance-data: write redacted cfg to instance-data.json (#233) (LP: #1865947) + net: support network-config:disabled on the kernel commandline (#232) (LP: #1862702) + ec2: only redact token request headers in logs, avoid altering request (#230) (LP: #1865882) + docs: typo fixed: dta → data [Alexey Vazhnov] + Fixes typo on Amazon Web Services (#217) [Nick Wales] + Fix docs for OpenStack DMI Asset Tag (#228) [Mark T. Voelker] (LP: #1669875) + Add physical network type: cascading to openstack helpers (#200) [sab-systems] + tests: add focal integration tests for ubuntu (#225) - From 20.1 (first vesrion after 19.4) + ec2: Do not log IMDSv2 token values, instead use REDACTED (#219) (LP: #1863943) + utils: use SystemRandom when generating random password. (#204) [Dimitri John Ledkov] + docs: mount_default_files is a list of 6 items, not 7 (#212) + azurecloud: fix issues with instances not starting (#205) (LP: #1861921) + unittest: fix stderr leak in cc_set_password random unittest output. (#208) + cc_disk_setup: add swap filesystem force flag (#207) + import sysvinit patches from freebsd-ports tree (#161) [Igor Galić] + docs: fix typo (#195) [Edwin Kofler] + sysconfig: distro-specific config rendering for BOOTPROTO option (#162) [Robert Schweikert] (LP: #1800854) + cloudinit: replace "from six import X" imports (except in util.py) (#183) + run-container: use 'test -n' instead of 'test ! -z' (#202) [Paride Legovini] + net/cmdline: correctly handle static ip= config (#201) [Dimitri John Ledkov] (LP: #1861412) + Replace mock library with unittest.mock (#186) + HACKING.rst: update CLA link (#199) + Scaleway: Fix DatasourceScaleway to avoid backtrace (#128) [Louis Bouchard] + cloudinit/cmd/devel/net_convert.py: add missing space (#191) + tools/run-container: drop support for python2 (#192) [Paride Legovini] + Print ssh key fingerprints using sha256 hash (#188) (LP: #1860789) + Make the RPM build use Python 3 (#190) [Paride Legovini] + cc_set_password: increase random pwlength from 9 to 20 (#189) (LP: #1860795) + .travis.yml: use correct Python version for xenial tests (#185) + cloudinit: remove ImportError handling for mock imports (#182) + Do not use fallocate in swap file creation on xfs. (#70) [Eduardo Otubo] (LP: #1781781) + .readthedocs.yaml: install cloud-init when building docs (#181) (LP: #1860450) + Introduce an RTD config file, and pin the Sphinx version to the RTD default (#180) + Drop most of the remaining use of six (#179) + Start removing dependency on six (#178) + Add Rootbox & HyperOne to list of cloud in README (#176) [Adam Dobrawy] + docs: add proposed SRU testing procedure (#167) + util: rename get_architecture to get_dpkg_architecture (#173) + Ensure util.get_architecture() runs only once (#172) + Only use gpart if it is the BSD gpart (#131) [Conrad Hoffmann] + freebsd: remove superflu exception mapping (#166) [Gonéri Le Bouder] + ssh_auth_key_fingerprints_disable test: fix capitalization (#165) [Paride Legovini] + util: move uptime's else branch into its own boottime function (#53) [Igor Galić] (LP: #1853160) + workflows: add contributor license agreement checker (#155) + net: fix rendering of 'static6' in network config (#77) (LP: #1850988) + Make tests work with Python 3.8 (#139) [Conrad Hoffmann] + fixed minor bug with mkswap in cc_disk_setup.py (#143) [andreaf74] + freebsd: fix create_group() cmd (#146) [Gonéri Le Bouder] + doc: make apt_update example consistent (#154) + doc: add modules page toc with links (#153) (LP: #1852456) + Add support for the amazon variant in cloud.cfg.tmpl (#119) [Frederick Lefebvre] + ci: remove Python 2.7 from CI runs (#137) + modules: drop cc_snap_config config module (#134) + migrate-lp-user-to-github: ensure Launchpad repo exists (#136) + docs: add initial troubleshooting to FAQ (#104) [Joshua Powers] + doc: update cc_set_hostname frequency and descrip (#109) [Joshua Powers] (LP: #1827021) + freebsd: introduce the freebsd renderer (#61) [Gonéri Le Bouder] + cc_snappy: remove deprecated module (#127) + HACKING.rst: clarify that everyone needs to do the LP->GH dance (#130) + freebsd: cloudinit service requires devd (#132) [Gonéri Le Bouder] + cloud-init: fix capitalisation of SSH (#126) + doc: update cc_ssh clarify host and auth keys [Joshua Powers] (LP: #1827021) + ci: emit names of tests run in Travis (#120)- Disable testing to aid elimination of unittest2 in Factory- bsc#1170154: rsyslog warning, '~' is deprecated + replace deprecated syntax '& ~' by '& stop' for more information please see https://www.rsyslog.com/rsyslog-error-2307/- Update cloud-init-write-routes.patch + Explicitly test for netconfig version 1 as well as 2- Update cloud-init-write-routes.patch + Handle netconfig v2 device configurations (bsc#1171546, bsc#1171995)- Update cloud-init-write-routes.patch + In cases where the config contains 2 or more default gateway specifications for an interface only write the first default route, log warning message about skipped routes + Avoid writing invalid route specification if neither the network nor destination is specified in the route configuration- Update cloud-init-write-routes.patch + Still need to consider the "network" configuration option for the v1 config implementation. Fixes regression introduced with update from Wed Feb 12 19:30:42- Update cloud-init-write-routes.patch (bsc#1165296) + Add the default gateway to the ifroute config file when specified as part of the subnet configuration + Fix typo to properly extrakt provided netmask data (bsc#1163178)- Add cloud-init-long-pass.patch (bsc#1162936, CVE-2020-8632) + Increase the default length of generated passwords- Add cloud-init-use-different-random-src.diff (bsc#1162937, CVE-2020-8631) + Use non-deterministic generator for password generation.- Update cloud-init-write-routes.patch (bsc#1163178) + Entries in the routes definition have changed causing a traceback during rout config file writing. This patch update addresses the issue by extracting the new entries properly.- BuildRequire pkgconfig(udev) instead of udev: allow OBS to shortcut through the -mini flavor.- Add cloud-init-no-tempnet-oci.patch (bsc#1161132, bsc#1161133) + Do not attempt to configure an ephemeral network on OCI. We boot off iSCSI and the network is up. Just read the data.- Add patch to build properly with python 3.8: * 0001-Make-tests-work-with-Python-3.8-139.patch- Update to version 19.4 + Remove patches included upstream: - cloud-init-after-wicked.patch - cloud-init-noresolv-merge-no-dns-data.diff - cloud-init-renderer-detect.patch - cloud-init-trigger-udev.patch + Removed patches merged with cloud-init-mix-static-dhcp.patch - cloud-init-proper-ipv6-setting.patch - cloud-init-static-net.patch + Added cloud-init-mix-static-dhcp.patch (bsc#1157894) + Forward port cloud-init-sysconf-path.patch + doc: specify _ over - in cloud config modules + [Joshua Powers] (LP: #1293254) + tools: Detect python to use via env in migrate-lp-user-to-github + [Adam Dobrawy] + Partially revert "fix unlocking method on FreeBSD" (#116) + tests: mock uid when running as root (#113) + [Joshua Powers] (LP: #1856096) + cloudinit/netinfo: remove unused getgateway (#111) + docs: clear up apt config sections (#107) [Joshua Powers] (LP: #1832823) + doc: add kernel command line option to user data (#105) + [Joshua Powers] (LP: #1846524) + config/cloud.cfg.d: update README [Joshua Powers] (LP: #1855006) + azure: avoid re-running cloud-init when instance-id is byte-swapped + (#84) [AOhassan] + fix unlocking method on FreeBSD [Igor Galić] (LP: #1854594) + debian: add reference to the manpages [Joshua Powers] + ds_identify: if /sys is not available use dmidecode (#42) + [Igor Galić] (LP: #1852442) + docs: add cloud-id manpage [Joshua Powers] + docs: add cloud-init-per manpage [Joshua Powers] + docs: add cloud-init manpage [Joshua Powers] + docs: add additional details to per-instance/once [Joshua Powers] + Update doc-requirements.txt [Joshua Powers] + doc-requirements: add missing dep [Joshua Powers] + dhcp: Support RedHat dhcp rfc3442 lease format for option 121 (#76) + [Eric Lafontaine] (LP: #1850642) + network_state: handle empty v1 config (#45) (LP: #1852496) + docs: Add document on how to report bugs [Joshua Powers] + Add an Amazon distro in the redhat OS family [Frederick Lefebvre] + removed a couple of "the"s [gaughen] + docs: fix line length and remove highlighting [Joshua Powers] + docs: Add security.md to readthedocs [Joshua Powers] + Multiple file fix for AuthorizedKeysFile config (#60) [Eduardo Otubo] + Revert "travis: only run CI on pull requests" + doc: update links on README.md [Joshua Powers] + doc: Updates to wording of README.md [Joshua Powers] + Add security.md [Joshua Powers] + setup.py: Amazon Linux sets libexec to /usr/libexec (#52) + [Frederick Lefebvre] + Fix linting failure in test_url_helper (#83) [Eric Lafontaine] + url_helper: read_file_or_url should pass headers param into readurl + (#66) (LP: #1854084) + dmidecode: log result *after* stripping n [Igor Galić] + cloud_tests: add azure platform support to integration tests + [ahosmanmsft] + set_passwords: support for FreeBSD (#46) [Igor Galić] + tools: migrate-lp-user-to-github removes repo_dir if created (#35) + Correct jumbled documentation for cc_set_hostname module (#64) + [do3meli] (LP: #1853543) + FreeBSD: fix for get_linux_distro() and lru_cache (#59) + [Igor Galić] (LP: #1815030) + ec2: Add support for AWS IMDS v2 (session-oriented) (#55) + tests: Fix cloudsigma tests when no dmidecode data is present. (#57) + [Scott Moser] + net: IPv6, accept_ra, slaac, stateless (#51) + [Harald] (LP: #1806014, #1808647) + docs: Update the configdrive datasource links (#44) + [Joshua Powers] (LP: #1852461) + distro: correctly set usr_lib_exec path for FreeBSD distro (#40) + [Igor Galić] (LP: #1852491) + azure: support secondary ipv6 addresses (#33) + Fix metadata check when local-hostname is null (#32) + [Mark Goddard] (LP: #1852100) + switch default FreeBSD salt minion pkg from py27 to py36 + [Dominic Schlegel] + travis: only run CI on pull requests + add data-server dns entry as new metadata server detection [Joshua Hügli] + pycodestyle: remove unused local variable + reporting: Using a uuid to enforce uniqueness on the KVP keys. [momousta] + docs: touchups in rtd intro and README.md + doc: update launchpad git refs to github + github: drop pull-request template to prepare for migration + tools: add migrate-lp-user-to-github script to link LP to github + github: new basic project readme - From 19.3 + azure: support matching dhcp route-metrics for dual-stack ipv4 ipv6 + (LP: #1850308) + configdrive: fix subplatform config-drive for /config-drive source + [David Kindred] (LP: #1849731) + DataSourceSmartOS: reconfigure network on each boot + [Mike Gerdts] (LP: #1765801) + Add config for ssh-key import and consuming user-data [Pavel Zakharov] + net: fix subnet_is_ipv6() for stateless|stateful + [Harald Jensås] (LP: #1848690) + OVF: disable custom script execution by default [Xiaofeng Wang] + cc_puppet: Implement csr_attributes.yaml support [Matthias Baur] + cloud-init.service: on centos/fedora/redhat wait on NetworkManager.service + (LP: #1843334) + azure: Do not lock user on instance id change [Sam Eiderman] (LP: #1849677) + net/netplan: use ipv6-mtu key for specifying ipv6 mtu values + Fix usages of yaml, and move yaml_dump to safeyaml.dumps. (LP: #1849640) + exoscale: Increase url_max_wait to 120s. [Chris Glass] + net/sysconfig: fix available check on SUSE distros + [Robert Schweikert] (LP: #1849378) + docs: Fix incorrect Azure IMDS IP address [Joshua Powers] (LP: #1849508) + introduce .travis.yml + net: enable infiniband support in eni and sysconfig renderers + [Darren Birkett] (LP: #1847114) + guestcust_util: handle special characters in config file [Xiaofeng Wang] + fix some more typos in comments [Dominic Schlegel] + replace any deprecated log.warn with log.warning + [Dominic Schlegel] (LP: #1508442) + net: handle openstack dhcpv6-stateless configuration + [Harald Jensås] (LP: #1847517) + Add .venv/ to .gitignore [Dominic Schlegel] + Small typo fixes in code comments. [Dominic Schlegel] + cloud_test/lxd: Retry container delete a few times + Add Support for e24cloud to Ec2 datasource. (LP: #1696476) + Add RbxCloud datasource [Adam Dobrawy] + get_interfaces: don't exclude bridge and bond members (LP: #1846535) + Add support for Arch Linux in render-cloudcfg [Conrad Hoffmann] + util: json.dumps on python 2.7 will handle UnicodeDecodeError on binary + (LP: #1801364) + debian/ubuntu: add missing word to netplan/ENI header (LP: #1845669) + ovf: do not generate random instance-id for IMC customization path + sysconfig: only write resolv.conf if network_state has DNS values + (LP: #1843634) + sysconfig: use distro variant to check if available (LP: #1843584) + systemd/cloud-init.service.tmpl: start after wicked.service + [Robert Schweikert] + docs: fix zstack documentation lints + analyze/show: remove trailing space in output + Add missing space in warning: "not avalid seed" [Brian Candler] + pylintrc: add 'enter_context' to generated-members list + Add datasource for ZStack platform. [Shixin Ruan] (LP: #1841181) + docs: organize TOC and update summary of project [Joshua Powers] + tools: make clean now cleans the dev directory, not the system + docs: create cli specific page [Joshua Powers] + docs: added output examples to analyze.rst [Joshua Powers] + docs: doc8 fixes for instancedata page [Joshua Powers] + docs: clean up formatting, organize boot page [Joshua Powers] + net: add is_master check for filtering device list (LP: #1844191) + docs: more complete list of availability [Joshua Powers] + docs: start FAQ page [Joshua Powers] + docs: cleanup output & order of datasource page [Joshua Powers] + Brightbox: restrict detection to require full domain match .brightbox.com + VMWware: add option into VMTools config to enable/disable custom script. + [Xiaofeng Wang] + net,Oracle: Add support for netfailover detection + atomic_helper: add DEBUG logging to write_file (LP: #1843276) + doc: document doc, create makefile and tox target [Joshua Powers] + .gitignore: ignore files produced by package builds + docs: fix whitespace, spelling, and line length [Joshua Powers] + docs: remove unnecessary file in doc directory [Joshua Powers] + Oracle: Render secondary vnic IP and MTU values only + exoscale: fix sysconfig cloud_config_modules overrides (LP: #1841454) + net/cmdline: refactor to allow multiple initramfs network config sources + ubuntu-drivers: call db_x_loadtemplatefile to accept NVIDIA EULA + (LP: #1840080) + Add missing #cloud-config comment on first example in documentation. + [Florian Müller] + ubuntu-drivers: emit latelink=true debconf to accept nvidia eula + (LP: #1840080) + DataSourceOracle: prefer DS network config over initramfs + format.rst: add text/jinja2 to list of content types (+ cleanups) + Add GitHub pull request template to point people at hacking doc + cloudinit/distros/parsers/sys_conf: add docstring to SysConf + pyflakes: remove unused variable [Joshua Powers] + Azure: Record boot timestamps, system information, and diagnostic events + [Anh Vo] + DataSourceOracle: configure secondary NICs on Virtual Machines + distros: fix confusing variable names + azure/net: generate_fallback_nic emits network v2 config instead of v1 + Add support for publishing host keys to GCE guest attributes [Rick Wright] + New data source for the Exoscale.com cloud platform [Chris Glass] + doc: remove intersphinx extension + cc_set_passwords: rewrite documentation (LP: #1838794) + net/cmdline: split interfaces_by_mac and init network config determination + stages: allow data sources to override network config source order + cloud_tests: updates and fixes + Fix bug rendering MTU on bond or vlan when input was netplan. (LP: #1836949) + net: update net sequence, include wait on netdevs, opensuse netrules path (LP: #1817368)- Add cloud-init-proper-ipv6-setting.patch (bsc#1156139) + Set proper IPv6 interface variable in ifcfg file- Update cloud-init-write-routes.patch (bsc#1155376) + Write a route's destination network in CIDR notation instead of using the netmask. This provides support for correctly recording IPv6 routes.- Add cloud-init-renderer-detect.patch (bsc#1154092, boo#1142988) + Short curcuit the conditional for identifying the sysconfig renderer. If we find ifup/ifdown accept the renderer as available.- Add cloud-init-break-resolv-symlink.patch (bsc#1151488) + If /etc/resolv.conf is a symlink break it. This will avoid netconfig from clobbering the changes cloud-init applied.- Update to cloud-init 19.2 (bsc#1099358, bsc#1145622) + Remove, included upstream - cloud-init-detect-nova.diff - cloud-init-add-static-routes.diff + net: add rfc3442 (classless static routes) to EphemeralDHCP (LP: #1821102) + templates/ntp.conf.debian.tmpl: fix missing newline for pools (LP: #1836598) + Support netplan renderer in Arch Linux [Conrad Hoffmann] + Fix typo in publicly viewable documentation. [David Medberry] + Add a cdrom size checker for OVF ds to ds-identify [Pengpeng Sun] (LP: #1806701) + VMWare: Trigger the post customization script via cc_scripts module. [Xiaofeng Wang] (LP: #1833192) + Cloud-init analyze module: Added ability to analyze boot events. [Sam Gilson] + Update debian eni network configuration location, retain Ubuntu setting [Janos Lenart] + net: skip bond interfaces in get_interfaces [Stanislav Makar] (LP: #1812857) + Fix a couple of issues raised by a coverity scan + Add missing dsname for Hetzner Cloud datasource [Markus Schade] + doc: indicate that netplan is default in Ubuntu now + azure: add region and AZ properties from imds compute location metadata + sysconfig: support more bonding options [Penghui Liao] + cloud-init-generator: use libexec path to ds-identify on redhat systems (LP: #1833264) + tools/build-on-freebsd: update to python3 [Gonéri Le Bouder] + Allow identification of OpenStack by Asset Tag [Mark T. Voelker] (LP: #1669875) + Fix spelling error making 'an Ubuntu' consistent. [Brian Murray] + run-container: centos: comment out the repo mirrorlist [Paride Legovini] + netplan: update netplan key mappings for gratuitous-arp (LP: #1827238) + freebsd: fix the name of cloudcfg VARIANT [Gonéri Le Bouder] + freebsd: ability to grow root file system [Gonéri Le Bouder] + freebsd: NoCloud data source support [Gonéri Le Bouder] (LP: #1645824) + Azure: Return static fallback address as if failed to find endpoint [Jason Zions (MSFT)]- Add cloud-init-after-wicked.patch - Change the service order, the cloud-init service wants to run after networking is started- Add cloud-init-noresolv-merge-no-dns-data.diff - Avoid writing resolv.conf if the network configuration contains no dns entries.- Follow up to update cloud-init-trigger-udev.patch (bsc#1144363) - In this implementation the "name" is not yet an attribute, use get() to obtain the value from a dict. Source code version confusion.- Add cloud-init-add-static-routes.diff (bsc#1141969) + Properly handle static routes. The EphemeralDHCP context manager did not parse or handle rfc3442 classless static routes which prevented reading datasource metadata in some clouds.- Update cloud-init-trigger-udev.patch (bsc#1144363) - The __str__ implementation no longer delivers the name of the interface, use the "name" attribute instead to form a proper path in the sysfs tree- Update cloud-init-write-routes.patch (boo#1144881, bsc#1148645) + If no routes are set for a subnet but the subnet has a gateway specified, set the gateway as the default route for the interface- Follow the ever changing inconsistencies of version definitions and detection in the build service. + No more suse_version in SUSE internal instance for SLES 15 SP1- BuildRequire pkgconfig(systemd) instead of systemd: allow OBS to shortcut the build queues by allowing usage of systemd-mini- Update to version 19.1 (bsc#1136440, bsc#1129124) + Remove, included upstream - fix-default-systemd-unit-dir.patch - cloud-init-sysconf-ethsetup.patch - cloud-init-handle-def-route-set.patch - cloud-init-no-empty-resolv.patch - cloud-init-proper-ipv6-varname.patch + Forward port - cloud-init-trigger-udev.patch + Add cloud-init-detect-nova.diff (bsc#1136440) + Modify cloud-init-python2-sigpipe.patch, import signal and constants + Update spec to account for new location of bash completion + freebsd: add chpasswd pkg in the image [Gonéri Le Bouder] + tests: add Eoan release [Paride Legovini] + cc_mounts: check if mount -a on no-change fstab path [Jason Zions (MSFT)] (LP: #1825596) + replace remaining occurrences of LOG.warn [Daniel Watkins] + DataSourceAzure: Adjust timeout for polling IMDS [Anh Vo] + Azure: Changes to the Hyper-V KVP Reporter [Anh Vo] + git tests: no longer show warning about safe yaml. + tools/read-version: handle errors [Chad Miller] + net/sysconfig: only indicate available on known sysconfig distros (LP: #1819994) + packages: update rpm specs for new bash completion path [Daniel Watkins] (LP: #1825444) + test_azure: mock util.SeLinuxGuard where needed [Jason Zions (MSFT)] (LP: #1825253) + setup.py: install bash completion script in new location [Daniel Watkins] + mount_cb: do not pass sync and rw options to mount [Gonéri Le Bouder] (LP: #1645824) + cc_apt_configure: fix typo in apt documentation [Dominic Schlegel] + Revert "DataSource: move update_events from a class to an instance..." [Daniel Watkins] + Change DataSourceNoCloud to ignore file system label's case. [Risto Oikarinen] + cmd:main.py: Fix missing 'modules-init' key in modes dict [Antonio Romito] (LP: #1815109) + ubuntu_advantage: rewrite cloud-config module + Azure: Treat _unset network configuration as if it were absent [Jason Zions (MSFT)] (LP: #1823084) + DatasourceAzure: add additional logging for azure datasource [Anh Vo] + cloud_tests: fix apt_pipelining test-cases + Azure: Ensure platform random_seed is always serializable as JSON. [Jason Zions (MSFT)] + net/sysconfig: write out SUSE-compatible IPv6 config [Robert Schweikert] + tox: Update testenv for openSUSE Leap to 15.0 [Thomas Bechtold] + net: Fix ipv6 static routes when using eni renderer [Raphael Glon] (LP: #1818669) + Add ubuntu_drivers config module [Daniel Watkins] + doc: Refresh Azure walinuxagent docs [Daniel Watkins] + tox: bump pylint version to latest (2.3.1) [Daniel Watkins] + DataSource: move update_events from a class to an instance attribute [Daniel Watkins] (LP: #1819913) + net/sysconfig: Handle default route setup for dhcp configured NICs [Robert Schweikert] (LP: #1812117) + DataSourceEc2: update RELEASE_BLOCKER to be more accurate [Daniel Watkins] + cloud-init-per: POSIX sh does not support string subst, use sed (LP: #1819222) + Support locking user with usermod if passwd is not available. + Example for Microsoft Azure data disk added. [Anton Olifir] + clean: correctly determine the path for excluding seed directory [Daniel Watkins] (LP: #1818571) + helpers/openstack: Treat unknown link types as physical [Daniel Watkins] (LP: #1639263) + drop Python 2.6 support and our NIH version detection [Daniel Watkins] + tip-pylint: Fix assignment-from-return-none errors + net: append type:dhcp[46] only if dhcp[46] is True in v2 netconfig [Kurt Stieger] (LP: #1818032) + cc_apt_pipelining: stop disabling pipelining by default [Daniel Watkins] (LP: #1794982) + tests: fix some slow tests and some leaking state [Daniel Watkins] + util: don't determine string_types ourselves [Daniel Watkins] + cc_rsyslog: Escape possible nested set [Daniel Watkins] (LP: #1816967) + Enable encrypted_data_bag_secret support for Chef [Eric Williams] (LP: #1817082) + azure: Filter list of ssh keys pulled from fabric [Jason Zions (MSFT)] CVE-2019-0816 + doc: update merging doc with fixes and some additional details/examples + tests: integration test failure summary to use traceback if empty error + This is to fix https://bugs.launchpad.net/cloud-init/+bug/1812676 [Vitaly Kuznetsov] + EC2: Rewrite network config on AWS Classic instances every boot [Guilherme G. Piccoli] (LP: #1802073) + netinfo: Adjust ifconfig output parsing for FreeBSD ipv6 entries (LP: #1779672) + netplan: Don't render yaml aliases when dumping netplan (LP: #1815051) + add PyCharm IDE .idea/ path to .gitignore [Dominic Schlegel] + correct grammar issue in instance metadata documentation [Dominic Schlegel] (LP: #1802188) + clean: cloud-init clean should not trace when run from within cloud_dir (LP: #1795508) + Resolve flake8 comparison and pycodestyle over-ident issues [Paride Legovini] + opennebula: also exclude epochseconds from changed environment vars (LP: #1813641) + systemd: Render generator from template to account for system differences. [Robert Schweikert] + sysconfig: On SUSE, use STARTMODE instead of ONBOOT [Robert Schweikert] (LP: #1799540) + flake8: use ==/!= to compare str, bytes, and int literals [Paride Legovini] + opennebula: exclude EPOCHREALTIME as known bash env variable with a delta (LP: #1813383) + tox: fix disco httpretty dependencies for py37 (LP: #1813361) + run-container: uncomment baseurl in yum.repos.d/*.repo when using a proxy [Paride Legovini] + lxd: install zfs-linux instead of zfs meta package [Johnson Shi] (LP: #1799779) + net/sysconfig: do not write a resolv.conf file with only the header. [Robert Schweikert] + net: Make sysconfig renderer compatible with Network Manager. [Eduardo Otubo] + cc_set_passwords: Fix regex when parsing hashed passwords [Marlin Cremers] (LP: #1811446) + net: Wait for dhclient to daemonize before reading lease file [Jason Zions] (LP: #1794399) + [Azure] Increase retries when talking to Wireserver during metadata walk [Jason Zions] + Add documentation on adding a datasource. + doc: clean up some datasource documentation. + ds-identify: fix wrong variable name in ovf_vmware_transport_guestinfo. + Scaleway: Support ssh keys provided inside an instance tag. [PORTE Loïc] + OVF: simplify expected return values of transport functions. + Vmware: Add support for the com.vmware.guestInfo OVF transport. (LP: #1807466) + HACKING.rst: change contact info to Josh Powers + Update to pylint 2.2.2.- Update cloud-init-write-routes.patch (bsc#1132692) + Properly accumulate all the defined routes for a given network device. Previously only the last defined route was written to the routes file.- Update cloud-init-trigger-udev.patch (bsc#1125950) + Write the udev rules to a different file than the default + Settle udev if not all configured devices are in the device tree to avoid race condition between udev and cloud-init- Add cloud-init-trigger-udev.patch (bsc#1125950) + When the user configures a new rules file for network devices the rules may not apply immediately, trigger udevadm- Modify cloud-init-write-routes.patch (bsc#1125992) + Fix the order of calls, the SUSE implementation of route config file writing must clobber the default implementation.- Add cloud-init-proper-ipv6-varname.patch (bsc#1126101) + Use the proper name to designate IPv6 addresses in ifcfg-* files- Modify cloud-init-write-routes.patch (boo#1123694) + Drop a '-' in the route file for the last column- Add cloud-init-no-empty-resolv.patch (bsc#1119397)- Update to version 18.5 (bsc#1121878, boo#1116767) + Remove 0001-Fix-the-service-order-for-SUSE-distributions.patch 0001-Follow-the-ever-bouncing-ball-for-openSUSE-distribut.patch 0002-Add-tests-for-additional-openSUSE-distro-condition-m.patch included upstream + Forward port cloud-init-sysconf-ethsetup.patch + Add cloud-init-write-routes.patch + Add cloud-init-handle-def-route-set.patch + tests: add Disco release [Joshua Powers] + net: render 'metric' values in per-subnet routes (LP: #1805871) + write_files: add support for appending to files. [James Baxter] + config: On ubuntu select cloud archive mirrors for armel, armhf, arm64. (LP: #1805854) + dhclient-hook: cleanups, tests and fix a bug on 'down' event. + NoCloud: Allow top level 'network' key in network-config. (LP: #1798117) + ovf: Fix ovf network config generation gateway/routes (LP: #1806103) + azure: detect vnet migration via netlink media change event [Tamilmani Manoharan] + Azure: fix copy/paste error in error handling when reading azure ovf. + [Adam DePue] + tests: fix incorrect order of mocks in test_handle_zfs_root. + doc: Change dns_nameserver property to dns_nameservers. [Tomer Cohen] + OVF: identify label iso9660 filesystems with label 'OVF ENV'. + logs: collect-logs ignore instance-data-sensitive.json on non-root user (LP: #1805201) + net: Ephemeral*Network: add connectivity check via URL + azure: _poll_imds only retry on 404. Fail on Timeout (LP: #1803598) + resizefs: Prefix discovered devpath with '/dev/' when path does not exist [Igor Galić] + azure: retry imds polling on requests.Timeout (LP: #1800223) + azure: Accept variation in error msg from mount for ntfs volumes [Jason Zions] (LP: #1799338) + azure: fix regression introduced when persisting ephemeral dhcp lease [asakkurr] + azure: add udev rules to create cloud-init Gen2 disk name symlinks (LP: #1797480) + tests: ec2 mock missing httpretty user-data and instance-identity routes + azure: remove /etc/netplan/90-hotplug-azure.yaml when net from IMDS + azure: report ready to fabric after reprovision and reduce logging [asakkurr] (LP: #1799594) + query: better error when missing read permission on instance-data + instance-data: fallback to instance-data.json if sensitive is absent. (LP: #1798189) + docs: remove colon from network v1 config example. [Tomer Cohen] + Add cloud-id binary to packages for SUSE [Jason Zions] + systemd: On SUSE ensure cloud-init.service runs before wicked [Robert Schweikert] (LP: #1799709) + update detection of openSUSE variants [Robert Schweikert] + azure: Add apply_network_config option to disable network from IMDS (LP: #1798424) + Correct spelling in an error message (udevadm). [Katie McLaughlin] + tests: meta_data key changed to meta-data in ec2 instance-data.json (LP: #1797231) + tests: fix kvm integration test to assert flexible config-disk path (LP: #1797199) + tools: Add cloud-id command line utility + instance-data: Add standard keys platform and subplatform. Refactor ec2. + net: ignore nics that have "zero" mac address. (LP: #1796917) + tests: fix apt_configure_primary to be more flexible + Ubuntu: update sources.list to comment out deb-src entries. (LP: #74747)- Add cloud-init-ostack-metadat-dencode.patch (bsc#1101894)- Add cloud-init-static-net.patch (boo#1114160)- Update to version 18.4 (bsc#1087331, bsc#1097388, boo#1111427, bsc#1095627) + Remove cloud-init-no-user-lock-if-already-locked.patch cloud-init 18.4 is not supported on SLE 11 code base + Remove 0001-Support-chrony-configuration-lp-1731619.patch Included upstream + Remove 0003-Distro-dependent-chrony-config-file.patch Included upstream + Remove 0001-switch-to-using-iproute2-tools.patch Included upstream + Remove cloud-init-no-python-linux-dist.patch Included upstream + Remove cloud-init-no-trace-empt-sect.patch Included upstream + Remove cloud-init-setpath-dsitentify.patch Included upstream + Modify fix-default-systemd-unit-dir.patch Use pkg-config, only modify the generator + Remove cloud-init-sysconfig-netpathfix.patch Fixed upstream + Removed cloud-init-skip-ovf-tests.patch Fixed upstream + Removed cloud-init-translate-netconf-ipv4-keep-gw.patch Fixed upstream + Add cloud-init-template-py2.patch avoid Python 3 dependency when we build for distros with Python 2 support + Add 0001-Follow-the-ever-bouncing-ball-for-openSUSE-distribut.patch + Add 0002-Add-tests-for-additional-openSUSE-distro-condition-m.patch + Add cloud-init-sysconf-path.patch + Add cloud-init-sysconf-ethsetup.patch + Add 0001-Fix-the-service-order-for-SUSE-distributions.patch + Add dhcp-client as requirement cloud-init uses dhclient to setup temporary network for metadata retrieval. THis is needed until lp#1733226 is addressed + add rtd example docs about new standardized keys + use ds._crawled_metadata instance attribute if set when writing instance-data.json + ec2: update crawled metadata. add standardized keys + tests: allow skipping an entire cloud_test without running. + tests: disable lxd tests on cosmic + cii-tests: use unittest2.SkipTest in ntp_chrony due to new deps + lxd: adjust to snap installed lxd. + docs: surface experimental doc in instance-data.json + tests: fix ec2 integration tests. process meta_data instead of meta-data + Add support for Infiniband network interfaces (IPoIB). [Mark Goddard] + cli: add cloud-init query subcommand to query instance metadata + tools/tox-venv: update for new features. + pylint: ignore warning assignment-from-no-return for _write_network + stages: Fix bug causing datasource to have incorrect sys_cfg. (LP: #1787459) + Remove dead-code _write_network distro implementations. + net_util: ensure static configs have netmask in translate_network result [Thomas Berger] (LP: #1792454) + Fall back to root:root on syslog permissions if other options fail. [Robert Schweikert] + tests: Add mock for util.get_hostname. [Robert Schweikert] (LP: #1792799) + ds-identify: doc string cleanup. + OpenStack: Support setting mac address on bond. [Fabian Wiesel] (LP: #1682064) + bash_completion/cloud-init: fix shell syntax error. + EphemeralIPv4Network: Be more explicit when adding default route. (LP: #1792415) + OpenStack: support reading of newer versions of metdata. + OpenStack: fix bug causing 'latest' version to be used from network. (LP: #1792157) + user-data: jinja template to render instance-data.json in cloud-config (LP: #1791781) + config: disable ssh access to a configured user account + tests: print failed testname instead of docstring upon failure + tests: Disallow use of util.subp except for where needed. + sysconfig: refactor sysconfig to accept distro specific templates paths + Add unit tests for config/cc_ssh.py [Francis Ginther] + Fix the built-in cloudinit/tests/helpers:skipIf + read-version: enhance error message [Joshua Powers] + hyperv_reporting_handler: simplify threaded publisher + VMWare: Fix a network config bug in vm with static IPv4 and no gateway. [Pengpeng Sun] (LP: #1766538) + logging: Add logging config type hyperv for reporting via Azure KVP [Andy Liu] + tests: disable other snap test as well [Joshua Powers] + tests: disable snap, fix write_files binary [Joshua Powers] + Add datasource Oracle Compute Infrastructure (OCI). + azure: allow azure to generate network configuration from IMDS per boot. + Scaleway: Add network configuration to the DataSource [Louis Bouchard] + docs: Fix example cloud-init analyze command to match output. [Wesley Gao] + netplan: Correctly render macaddress on a bonds and bridges when provided. (LP: #1784699) + tools: Add 'net-convert' subcommand command to 'cloud-init devel'. + redhat: remove ssh keys on new instance. (LP: #1781094) + Use typeset or local in profile.d scripts. (LP: #1784713) + OpenNebula: Fix null gateway6 [Akihiko Ota] (LP: #1768547) + oracle: fix detect_openstack to report True on OracleCloud.com DMI data (LP: #1784685) + tests: improve LXDInstance trying to workaround or catch bug. + update_metadata re-config on every boot comments and tests not quite right [Mike Gerdts] + tests: Collect build_info from system if available. + pylint: Fix pylint warnings reported in pylint 2.0.0. + get_linux_distro: add support for rhel via redhat-release. + get_linux_distro: add support for centos6 and rawhide flavors of redhat (LP: #1781229) + tools: add '--debug' to tools/net-convert.py + tests: bump the version of paramiko to 2.4.1. + docs: note in rtd about avoiding /tmp when writing files (LP: #1727876) + ubuntu,centos,debian: get_linux_distro to align with platform.dist (LP: #1780481) + Fix boothook docs on environment variable name (INSTANCE_I -> INSTANCE_ID) [Marc Tamsky] + update_metadata: a datasource can support network re-config every boot + tests: drop salt-minion integration test (LP: #1778737) + Retry on failed import of gpg receive keys. + tools: Fix run-container when neither source or binary package requested. + docs: Fix a small spelling error. [Oz N Tiram] + tox: use simplestreams from git repository rather than bzr. - From 18.3 + docs: represent sudo:false in docs for user_groups config module + Explicitly prevent `sudo` access for user module [Jacob Bednarz] (LP: #1771468) + lxd: Delete default network and detach device if lxd-init created them. (LP: #1776958) + openstack: avoid unneeded metadata probe on non-openstack platforms (LP: #1776701) + stages: fix tracebacks if a module stage is undefined or empty [Robert Schweikert] (LP: #1770462) + Be more safe on string/bytes when writing multipart user-data to disk. (LP: #1768600) + Fix get_proc_env for pids that have non-utf8 content in environment. (LP: #1775371) + tests: fix salt_minion integration test on bionic and later + tests: provide human-readable integration test summary when --verbose + tests: skip chrony integration tests on lxd running artful or older + test: add optional --preserve-instance arg to integraiton tests + netplan: fix mtu if provided by network config for all rendered types (LP: #1774666) + tests: remove pip install workarounds for pylxd, take upstream fix. + subp: support combine_capture argument. + tests: ordered tox dependencies for pylxd install + util: add get_linux_distro function to replace platform.dist [Robert Schweikert] (LP: #1745235) + pyflakes: fix unused variable references identified by pyflakes 2.0.0. + Do not use the systemd_prefix macro, not available in this environment [Robert Schweikert] + doc: Add config info to ec2, openstack and cloudstack datasource docs + Enable SmartOS network metadata to work with netplan via per-subnet routes [Dan McDonald] (LP: #1763512) + openstack: Allow discovery in init-local using dhclient in a sandbox. (LP: #1749717) + tests: Avoid using https in httpretty, improve HttPretty test case. (LP: #1771659) + yaml_load/schema: Add invalid line and column nums to error message + Azure: Ignore NTFS mount errors when checking ephemeral drive [Paul Meyer] + packages/brpm: Get proper dependencies for cmdline distro. + packages: Make rpm spec files patch in package version like in debs. + tools/run-container: replace tools/run-centos with more generic. + Update version.version_string to contain packaged version. (LP: #1770712) + cc_mounts: Do not add devices to fstab that are already present. [Lars Kellogg-Stedman] + ds-identify: ensure that we have certain tokens in PATH. (LP: #1771382) + tests: enable Ubuntu Cosmic in integration tests [Joshua Powers] + read_file_or_url: move to url_helper, fix bug in its FileResponse. + cloud_tests: help pylint [Ryan Harper] + flake8: fix flake8 errors in previous commit. + typos: Fix spelling mistakes in cc_mounts.py log messages [Stephen Ford] + tests: restructure SSH and initial connections [Joshua Powers] + ds-identify: recognize container-other as a container, test SmartOS. + cloud-config.service: run After snap.seeded.service. (LP: #1767131) + tests: do not rely on host /proc/cmdline in test_net.py [Lars Kellogg-Stedman] (LP: #1769952) + ds-identify: Remove dupe call to is_ds_enabled, improve debug message. + SmartOS: fix get_interfaces for nics that do not have addr_assign_type. + tests: fix package and ca_cert cloud_tests on bionic (LP: #1769985) + ds-identify: make shellcheck 0.4.6 happy with ds-identify. + pycodestyle: Fix deprecated string literals, move away from flake8. + azure: Add reported ready marker file. [Joshua Chan] (LP: #1765214) + tools: Support adding a release suffix through packages/bddeb. + FreeBSD: Invoke growfs on ufs filesystems such that it does not prompt. [Harm Weites] (LP: #1404745) + tools: Re-use the orig tarball in packages/bddeb if it is around. + netinfo: fix netdev_pformat when a nic does not have an address assigned. (LP: #1766302) + collect-logs: add -v flag, write to stderr, limit journal to single boot. (LP: #1766335) + IBMCloud: Disable config-drive and nocloud only if IBMCloud is enabled. (LP: #1766401) + Add reporting events and log_time around early source of blocking time [Ryan Harper] + IBMCloud: recognize provisioning environment during debug boots. (LP: #1767166) + net: detect unstable network names and trigger a settle if needed [Ryan Harper] (LP: #1766287) + IBMCloud: improve documentation in datasource. + sysconfig: dhcp6 subnet type should not imply dhcpv4 [Vitaly Kuznetsov] + packages/debian/control.in: add missing dependency on iproute2. (LP: #1766711) + DataSourceSmartOS: add locking of serial device. [Mike Gerdts] (LP: #1746605) + DataSourceSmartOS: sdc:hostname is ignored [Mike Gerdts] (LP: #1765085) + DataSourceSmartOS: list() should always return a list [Mike Gerdts] (LP: #1763480) + schema: in validation, raise ImportError if strict but no jsonschema. + set_passwords: Add newline to end of sshd config, only restart if updated. (LP: #1677205) + pylint: pay attention to unused variable warnings. + doc: Add documentation for AliYun datasource. [Junjie Wang] + Schema: do not warn on duplicate items in commands. (LP: #1764264) + net: Depend on iproute2's ip instead of net-tools ifconfig or route + DataSourceSmartOS: fix hang when metadata service is down [Mike Gerdts] (LP: #1667735) + DataSourceSmartOS: change default fs on ephemeral disk from ext3 to ext4. [Mike Gerdts] (LP: #1763511) + pycodestyle: Fix invalid escape sequences in string literals. + Implement bash completion script for cloud-init command line [Ryan Harper] + tools: Fix make-tarball cli tool usage for development + renderer: support unicode in render_from_file. + Implement ntp client spec with auto support for distro selection [Ryan Harper] (LP: #1749722) + Apport: add Brightbox, IBM, LXD, and OpenTelekomCloud to list of clouds. + tests: fix ec2 integration network metadata validation + tests: fix integration tests to support lxd 3.0 release + correct documentation to match correct attribute name usage. [Dominic Schlegel] (LP: #1420018) + cc_resizefs, util: handle no /dev/zfs [Ryan Harper] + doc: Fix links in OpenStack datasource documentation. [Dominic Schlegel] (LP: #1721660)- Add a modified version of fix-default-systemd-unit-dir.patch + Removed pre-maturely, still needs 1 part of the patch- Remove fix-default-systemd-unit-dir.patch + No longer needed, proper systemd config dir is queried from pckg-config- The distribution inidcator is set to suse during template expansion, we do not replace anything set to ubuntu - Do not run cloud-init after network-online, this breaks functionality in cloud-init. Certain parts of the code running in this phase expect to run before the network is on-line. This "re-introduces" boo#1097388. But the changes made are not generic enough. - Root should not be enabled by default. For image builders/users that want root access by default they should provide an appropriate configuration file during image build or image setup- Let distribution default to opensuse/sles (boo#1099340) - do not disable root user to make it easier to work with - Run metadata detection after network-online (boo#1097388)- Re-add generator (bsc#1089824, boo#1093501) + Add cloud-init-setpath-dsitentify.patch, upstream solution to hanle PATH issue + Re-enable th egenerator to reduce effort in cloud-init configuration- Drop the generator (bsc#1089824, boo#1093501) + The generator spawns a script called ds-identify which in turn calls blkid. When the generator executes the environment may or may not be ready. The generator speeds up the boot process in cases where cloud-init is enabled but we are not in an environment where cloud-init should run -> Don't do that.- Update to version 18.2 (bsc#1092637, bsc#1084509) + Forward port cloud-init-python2-sigpipe.patch + Forward port cloud-init-no-python-linux-dist.patch + Add cloud-init-no-trace-empt-sect.patch + Hetzner: Exit early if dmi system-manufacturer is not Hetzner. + Add missing dependency on isc-dhcp-client to trunk ubuntu packaging. + (LP: #1759307) + FreeBSD: resizefs module now able to handle zfs/zpool. + [Dominic Schlegel] (LP: #1721243) + cc_puppet: Revert regression of puppet creating ssl and ssl_cert dirs + Enable IBMCloud datasource in settings.py. + IBMCloud: Initial IBM Cloud datasource. + tests: remove jsonschema from xenial tox environment. + tests: Fix newly added schema unit tests to skip if no jsonschema. + ec2: Adjust ec2 datasource after exception_cb change. + Reduce AzurePreprovisioning HTTP timeouts. + [Douglas Jordan] (LP: #1752977) + Revert the logic of exception_cb in read_url. + [Kurt Garloff] (LP: #1702160, #1298921) + ubuntu-advantage: Add new config module to support + ubuntu-advantage-tools + Handle global dns entries in netplan (LP: #1750884) + Identify OpenTelekomCloud Xen as OpenStack DS. + [Kurt Garloff] (LP: #1756471) + datasources: fix DataSource subclass get_hostname method signature + (LP: #1757176) + OpenNebula: Update network to return v2 config rather than ENI. + [Akihiko Ota] + Add Hetzner Cloud DataSource + net: recognize iscsi root cases without ip= on kernel command line. + (LP: #1752391) + tests: fix flakes warning for unused variable + tests: patch leaked stderr messages from snap unit tests + cc_snap: Add new module to install and configure snapd and snap + packages. + tests: Make pylint happy and fix python2.6 uses of assertRaisesRegex. + netplan: render bridge port-priority values (LP: #1735821) + util: Fix subp regression. Allow specifying subp command as a string. + (LP: #1755965) + doc: fix all warnings issued by 'tox -e doc' + FreeBSD: Set hostname to FQDN. [Dominic Schlegel] (LP: #1753499) + tests: fix run_tree and bddeb + tests: Fix some warnings in tests that popped up with newer python. + set_hostname: When present in metadata, set it before network bringup. + (LP: #1746455) + tests: Centralize and re-use skipTest based on json schema presense. + This commit fixes get_hostname on the AzureDataSource. + [Douglas Jordan] (LP: #1754495) + shellify: raise TypeError on bad input. + Make salt minion module work on FreeBSD. + [Dominic Schlegel] (LP: #1721503) + Simplify some comparisions. [Rémy Léone] + Change some list creation and population to literal. [Rémy Léone] + GCE: fix reading of user-data that is not base64 encoded. (LP: #1752711) + doc: fix chef install from apt packages example in RTD. + Implement puppet 4 support [Romanos Skiadas] (LP: #1446804) + subp: Fix subp usage with non-ascii characters when no system locale. + (LP: #1751051) + salt: configure grains in grains file rather than in minion config. [Daniel Wallace]- Update to version 18.1 (bsc#1085787, bsc#1084749) + Forward port cloud-init-python2-sigpipe.patch + Forward port 0003-Distro-dependent-chrony-config-file.patch partial integration into 0001-Support-chrony-configuration-lp-1731619.patch + Forward port cloud-init-no-python-linux-dist.patch + Remove 0002-Disable-method-deprecation-warning-for-pylint.patch use new cloud-init internal distro detection code + Remove cloud-init-resize-ro-btrfs.patch included upstream + Remove 0001-Set-syslog_fix_perms-for-SUSE-distro-addresses-bsc-1.patch included upstream + OVF: Fix VMware support for 64-bit platforms. [Sankar Tanguturi] + ds-identify: Fix searching for iso9660 OVF cdroms. (LP: #1749980) + SUSE: Fix groups used for ownership of cloud-init.log [Robert Schweikert] + ds-identify: check /writable/system-data/ for nocloud seed. (LP: #1747070) + tests: run nosetests in cloudinit/ directory, fix py26 fallout. + tools: run-centos: git clone rather than tar. + tests: add support for logs with lxd from snap and future lxd 3. (LP: #1745663) + EC2: Fix get_instance_id called against cached datasource pickle. (LP: #1748354) + cli: fix cloud-init status to report running when before result.json (LP: #1747965) + net: accept network-config in netplan format for renaming interfaces (LP: #1709715) + Fix ssh keys validation in ssh_util [Tatiana Kholkina] + docs: Update RTD content for cloud-init subcommands. + OVF: Extend well-known labels to include OVFENV. (LP: #1698669) + Fix potential cases of uninitialized variables. (LP: #1744796) + tests: Collect script output as binary, collect systemd journal, fix lxd. + HACKING.rst: mention setting user name and email via git config. + Azure VM Preprovisioning support. [Douglas Jordan] (LP: #1734991) + tools/read-version: Fix read-version when in a git worktree. + docs: Fix typos in docs and one debug message. [Florian Grignon] + btrfs: support resizing if root is mounted ro. [Robert Schweikert] (LP: #1734787) + OpenNebula: Improve network configuration support. [Akihiko Ota] (LP: #1719157, #1716397, #1736750) + tests: Fix EC2 Platform to return console output as bytes. + tests: Fix attempted use of /run in a test case. + GCE: Improvements and changes to ssh key behavior for default user. [Max Illfelder] (LP: #1670456, #1707033, #1707037, #1707039) + subp: make ProcessExecutionError have expected types in stderr, stdout. + tests: when querying ntp server, do not do dns resolution. + Recognize uppercase vfat disk labels [James Penick] (LP: #1598783) + tests: remove zesty as supported OS to test [Joshua Powers] + Do not log warning on config files that represent None. (LP: #1742479) + tests: Use git hash pip dependency format for pylxd. + tests: add integration requirements text file [Joshua Powers] + MAAS: add check_instance_id based off oauth tokens. (LP: #1712680) + tests: update apt sources list test [Joshua Powers] + tests: clean up image properties [Joshua Powers] + tests: rename test ssh keys to avoid appearance of leaking private keys. [Joshua Powers] + tests: Enable AWS EC2 Integration Testing [Joshua Powers] + cli: cloud-init clean handles symlinks (LP: #1741093) + SUSE: Add a basic test of network config rendering. [Robert Schweikert] + Azure: Only bounce network when necessary. (LP: #1722668) + lint: Fix lints seen by pylint version 1.8.1. + cli: Fix error in cloud-init modules --mode=init. (LP: #1736600)- update cloud-init-sysconfig-netpathfix.patch: * skip checking for files in /etc/sysconfig that never exist on a wickedd based system- Fix logfile permission settings (bsc#1080595) + Add 0001-Set-syslog_fix_perms-for-SUSE-distro-addresses-bsc-1.patch- drop dependency on boto (only used in examples, and should really be ported to botocore/boto3 instead)- Update to version 17.2 (boo#1069635, bsc#1072811) + Add cloud-init-skip-ovf-tests.patch + Add cloud-init-no-python-linux-dist.patch + Add 0001-switch-to-using-iproute2-tools.patch + Add 0001-Support-chrony-configuration-lp-1731619.patch + Add 0002-Disable-method-deprecation-warning-for-pylint.patch + Add 0003-Distro-dependent-chrony-config-file.patch + removed cloud-init-add-variant-cloudcfg.patch replaced by cloud-init-no-python-linux-dist.patch + removed zypp_add_repos.diff included upstream + removed zypp_add_repo_test.patch included upstream + removed cloud-init-hosts-template.patch included upstream + removed cloud-init-more-tasks.patch included upstream + removed cloud-init-final-no-apt.patch included upstream + removed cloud-init-ntp-conf-suse.patch included upstream + removed cloud-init-break-cycle-local-service.patch included upstream + removed cloud-init-reproduce-build.patch included upstream + For the complete changelog see https://launchpad.net/cloud-init/trunk/17.2- patch distribution detection until a fix is delivered to python3 (bsc#997614) add cloud-init-add-variant-cloudcfg.patch- Fix usage of fdupes macro: there is no '-n' parameter to the macro (there would be to fdupes, the command, though).- Add cloud-init-reproduce-build.patch (boo#1069635) + Make builds reproducible- Add cloud-init-resize-ro-btrfs.patch + cc_resizefs fails if the current root is a read-only btrfs subvolume, use an always writeable subvolume instead [bsc#1042913]- Add cloud-init-break-cycle-local-service.patch + Let systemd pull in the default targets. This breaks a cycle- Fix variable name in cloud-init-translate-netconf-ipv4-keep-gw.patch- Add cloud-init-translate-netconf-ipv4-keep-gw.patch (boo#1064854) + Properly insert the gateway information for v1 json network config data- Add cloud-init-ntp-conf-suse.patch + ntp configuration was broken on sles and opensuse lp#1726572- Add cloud-init-hosts-template.patch (bsc#1064594) + Properly expand the /etc/hosst file when manage_etc_hosts is set- Fix sed expression to set distro properly (boo#1063716)- Update to version 17.1 (bsc#1035106) + Version numbering scheme change now YY.NUMBER_OF_RELESE_THAT_YEAR + Remove cloud.cfg.suse, use generated default config file + Remove addopenSUSEBase.patch, included upstream + Remove suseIntegratedHandler.patch, included upstream + Remove openSUSEhostsTemplate.diff, included upstream + Remove cloud-init-handle-no-carrier.patch, included upstream + Remove cloud-init-digital-ocean-datasource.patch, use upstream implementation + Remove cloud-init-digital-ocean-datasource-enable-by-default.patch, use upstream implementation + Remove cloud-init-fix-unicode-handling-binarydecode.patch, included upstream + Remove cloud-init-no-dmidecode-on-ppc64.patch, included upstream + Remove dataSourceOpenNebula.patch, use upstream implementation + Remove setupSUSEsysVInit.diff, included upstream + Remove suseSysVInit.diff, included upstream + Remove cloud-init-finalbeforelogin.patch, don't block login + Remove cloud-init-handle-not-implemented-query.patch, query option removed + Remove cloud-init-spceandtabs-clean.patch, indentation fixed upstream + Remove dynamicInitCmd.diff, different solution from upstream + Added cloud-init-more-tasks.patch, (bsc#1047363) replace cloud-init-finalbeforelogin.patch + Forward port cloud-init-python2-sigpipe.patch + Remove cloud-init-net-eni.patch, included upstream + Remove cloud-init-service.patch, included upstream + Forward port cloud-init-sysconfig-netpathfix.patch + Remove cloud-init-net-sysconfig-lp1665441.patch, included upstream + Remove cloud-init-python26.patch, included upstream + Remove skip-argparse-on-python3.patch + Add cloud-init-tests-set-exec.patch + Add cloud-init-final-no-apt.patch + Add zypp_add_repo_test.patch + doc: document GCE datasource. [Arnd Hannemann] + suse: updates to templates to support openSUSE and SLES. + [Robert Schweikert] (LP: #1718640) + suse: Copy sysvinit files from redhat with slight changes. + [Robert Schweikert] (LP: #1718649) + docs: fix sphinx module schema documentation [Chad Smith] + tests: Add cloudinit package to all test targets [Chad Smith] + Makefile: No longer look for yaml files in obsolete ./bin/. + tests: fix ds-identify unit tests to set EC2_STRICT_ID_DEFAULT. + ec2: Fix maybe_perform_dhcp_discovery to use /var/tmp as a tmpdir + [Chad Smith] (LP: #1717627) + Azure: wait longer for SSH pub keys to arrive. + [Paul Meyer] (LP: #1717611) + GCE: Fix usage of user-data. (LP: #1717598) + cmdline: add collect-logs subcommand. [Chad Smith] (LP: #1607345) + CloudStack: consider dhclient lease files named with a hyphen. + (LP: #1717147) + resizefs: Drop check for read-only device file, do not warn on + overlayroot. [Chad Smith] + Do not provide systemd-fsck drop-in which could cause ordering cycles. + [Balint Reczey] (LP: #1717477) + tests: Enable the NoCloud KVM platform [Joshua Powers] + resizefs: pass mount point to xfs_growfs [Dusty Mabe] + vmware: Enable nics before sending the SUCCESS event. [Sankar Tanguturi] + cloud-config modules: honor distros definitions in each module + [Chad Smith] (LP: #1715738, #1715690) + chef: Add option to pin chef omnibus install version + [Ethan Apodaca] (LP: #1462693) + tests: execute: support command as string [Joshua Powers] + schema and docs: Add jsonschema to resizefs and bootcmd modules + [Chad Smith] + tools: Add xkvm script, wrapper around qemu-system [Joshua Powers] + vmware customization: return network config format + [Sankar Tanguturi] (LP: #1675063) + Ec2: only attempt to operate at local mode on known platforms. + (LP: #1715128) + Use /run/cloud-init for tempfile operations. (LP: #1707222) + ds-identify: Make OpenStack return maybe on arch other than intel. + (LP: #1715241) + tests: mock missed openstack metadata uri network_data.json + [Chad Smith] (LP: #1714376) + relocate tests/unittests/helpers.py to cloudinit/tests + [Lars Kellogg-Stedman] + tox: add nose timer output [Joshua Powers] + upstart: do not package upstart jobs, drop ubuntu-init-switch module. + tests: Stop leaking calls through unmocked metadata addresses + [Chad Smith] (LP: #1714117) + distro: allow distro to specify a default locale [Ryan Harper] + tests: fix two recently added tests for sles distro. + url_helper: dynamically import oauthlib import from inside oauth_headers + [Chad Smith] + tox: make xenial environment run with python3.6 + suse: Add support for openSUSE and return SLES to a working state. + [Robert Schweikert] + GCE: Add a main to the GCE Datasource. + ec2: Add IPv6 dhcp support to Ec2DataSource. [Chad Smith] (LP: #1639030) + url_helper: fail gracefully if oauthlib is not available + [Lars Kellogg-Stedman] (LP: #1713760) + cloud-init analyze: fix issues running under python 2. [Andrew Jorgensen] + Configure logging module to always use UTC time. + [Ryan Harper] (LP: #1713158) + Log a helpful message if a user script does not include shebang. + [Andrew Jorgensen] + cli: Fix command line parsing of coniditionally loaded subcommands. + [Chad Smith] (LP: #1712676) + doc: Explain error behavior in user data include file format. + [Jason Butz] + cc_landscape & cc_puppet: Fix six.StringIO use in writing configs + [Chad Smith] (LP: #1699282, #1710932) + schema cli: Add schema subcommand to cloud-init cli and cc_runcmd schema + [Chad Smith] + Debian: Remove non-free repositories from apt sources template. + [Joonas Kylmälä] (LP: #1700091) + tools: Add tooling for basic cloud-init performance analysis. + [Chad Smith] (LP: #1709761) + network: add v2 passthrough and fix parsing v2 config with bonds/bridge + params [Ryan Harper] (LP: #1709180) + doc: update capabilities with features available, link doc reference, + cli example [Ryan Harper] + vcloud directory: Guest Customization support for passwords + [Maitreyee Saikia] + ec2: Allow Ec2 to run in init-local using dhclient in a sandbox. + [Chad Smith] (LP: #1709772) + cc_ntp: fallback on timesyncd configuration if ntp is not installable + [Ryan Harper] (LP: #1686485) + net: Reduce duplicate code. Have get_interfaces_by_mac use + get_interfaces. + tests: Fix build tree integration tests [Joshua Powers] + sysconfig: Dont repeat header when rendering resolv.conf + [Ryan Harper] (LP: #1701420) + archlinux: Fix bug with empty dns, do not render 'lo' devices. + (LP: #1663045, #1706593) + cloudinit.net: add initialize_network_device function and tests + [Chad Smith] + makefile: fix ci-deps-ubuntu target [Chad Smith] + tests: adjust locale integration test to parse default locale. + tests: remove 'yakkety' from releases as it is EOL. + tests: Add initial tests for EC2 and improve a docstring. + locale: Do not re-run locale-gen if provided locale is system default. + archlinux: fix set hostname usage of write_file. + [Joshua Powers] (LP: #1705306) + sysconfig: support subnet type of 'manual'. + tools/run-centos: make running with no argument show help. + Drop rand_str() usage in DNS redirection detection + [Bob Aman] (LP: #1088611) + sysconfig: use MACADDR on bonds/bridges to configure mac_address + [Ryan Harper] (LP: #1701417) + net: eni route rendering missed ipv6 default route config + [Ryan Harper] (LP: #1701097) + sysconfig: enable mtu set per subnet, including ipv6 mtu + [Ryan Harper] (LP: #1702513) + sysconfig: handle manual type subnets [Ryan Harper] (LP: #1687725) + sysconfig: fix ipv6 gateway routes [Ryan Harper] (LP: #1694801) + sysconfig: fix rendering of bond, bridge and vlan types. + [Ryan Harper] (LP: #1695092) + Templatize systemd unit files for cross distro deltas. [Ryan Harper] + sysconfig: ipv6 and default gateway fixes. [Ryan Harper] (LP: #1704872) + net: fix renaming of nics to support mac addresses written in upper + case. (LP: #1705147) + tests: fixes for issues uncovered when moving to python 3.6. + (LP: #1703697) + sysconfig: include GATEWAY value if set in subnet + [Ryan Harper] (LP: #1686856) + Scaleway: add datasource with user and vendor data for Scaleway. + [Julien Castets] + Support comments in content read by load_shell_content. + cloudinitlocal fail to run during boot [Hongjiang Zhang] + doc: fix disk setup example table_type options + [Sandor Zeestraten] (LP: #1703789) + tools: Fix exception handling. [Joonas Kylmälä] (LP: #1701527) + tests: fix usage of mock in GCE test. + test_gce: Fix invalid mock of platform_reports_gce to return False + [Chad Smith] + test: fix incorrect keyid for apt repository. + [Joshua Powers] (LP: #1702717) + tests: Update version of pylxd [Joshua Powers] + write_files: Remove log from helper function signatures. + [Andrew Jorgensen] + doc: document the cmdline options to NoCloud [Brian Candler] + read_dmi_data: always return None when inside a container. (LP: #1701325) + requirements.txt: remove trailing white space. + Azure: Add network-config, Refactor net layer to handle duplicate macs. + [Ryan Harper] + Tests: Simplify the check on ssh-import-id [Joshua Powers] + tests: update ntp tests after sntp added [Joshua Powers] + FreeBSD: Make freebsd a variant, fix unittests and + tools/build-on-freebsd. + FreeBSD: fix test failure + FreeBSD: replace ifdown/ifup with "ifconfig down" and "ifconfig up". + [Hongjiang Zhang] (LP: #1697815) + FreeBSD: fix cdrom mounting failure if /mnt/cdrom/secure did not exist. + [Hongjiang Zhang] (LP: #1696295) + main: Don't use templater to format the welcome message + [Andrew Jorgensen] + docs: Automatically generate module docs form schema if present. + [Chad Smith] + debian: fix path comment in /etc/hosts template. + [Jens Sandmann] (LP: #1606406) + suse: add hostname and fully qualified domain to template. + [Jens Sandmann] + write_file(s): Print permissions as octal, not decimal [Andrew Jorgensen] + ci deps: Add --test-distro to read-dependencies to install all deps + [Chad Smith] + tools/run-centos: cleanups and move to using read-dependencies + pkg build ci: Add make ci-deps- target to install pkgs + [Chad Smith] + systemd: make cloud-final.service run before apt daily services. + (LP: #1693361) + selinux: Allow restorecon to be non-fatal. [Ryan Harper] (LP: #1686751) + net: Allow netinfo subprocesses to return 0 or 1. + [Ryan Harper] (LP: #1686751) + net: Allow for NetworkManager configuration [Ryan McCabe] (LP: #1693251) + Use distro release version to determine if we use systemd in redhat spec + [Ryan Harper] + net: normalize data in network_state object + Integration Testing: tox env, pyxld 2.2.3, and revamp framework + [Wesley Wiedenmeier] + Chef: Update omnibus url to chef.io, minor doc changes. [JJ Asghar] + tools: add centos scripts to build and test [Joshua Powers] + Drop cheetah python module as it is not needed by trunk [Ryan Harper] + rhel/centos spec cleanups. + cloud.cfg: move to a template. setup.py changes along the way. + Makefile: add deb-src and srpm targets. use PYVER more places. + makefile: fix python 2/3 detection in the Makefile [Chad Smith] + snap: Removing snapcraft plug line [Joshua Powers] (LP: #1695333) + RHEL/CentOS: Fix default routes for IPv4/IPv6 configuration. + [Andreas Karis] (LP: #1696176) + test: Fix pyflakes complaint of unused import. + [Joshua Powers] (LP: #1695918) + NoCloud: support seed of nocloud from smbios information + [Vladimir Pouzanov] (LP: #1691772) + net: when selecting a network device, use natural sort order + [Marc-Aurèle Brothier] + fix typos and remove whitespace in various docs [Stephan Telling] + systemd: Fix typo in comment in cloud-init.target. [Chen-Han Hsiao] + Tests: Skip jsonschema related unit tests when dependency is absent. + [Chad Smith] (LP: #1695318) + azure: remove accidental duplicate line in merge. + azure: identify platform by well known value in chassis asset tag. + [Chad Smith] (LP: #1693939) + tools/net-convert.py: support old cloudinit versions by using kwargs. + ntp: Add schema definition and passive schema validation. + [Chad Smith] (LP: #1692916) + Fix eni rendering for bridge params that require repeated key for + values. [Ryan Harper] + net: remove systemd link file writing from eni renderer [Ryan Harper] + AliYun: Enable platform identification and enable by default. + [Junjie Wang] (LP: #1638931) + net: fix reading and rendering addresses in cidr format. + [Dimitri John Ledkov] (LP: #1689346, #1684349) + disk_setup: udev settle before attempting partitioning or fs creation. + (LP: #1692093) + GCE: Update the attribute used to find instance SSH keys. + [Daniel Watkins] (LP: #1693582) + nplan: For bonds, allow dashed or underscore names of keys. + [Dimitri John Ledkov] (LP: #1690480) + python2.6: fix unit tests usage of assertNone and format. + test: update docstring on test_configured_list_with_none + fix tools/ds-identify to not write None twice. + tox/build: do not package depend on style requirements. + cc_ntp: Restructure cc_ntp unit tests. [Chad Smith] (LP: #1692794) + flake8: move the pinned version of flake8 up to 3.3.0 + tests: Apply workaround for snapd bug in test case. [Joshua Powers] + RHEL/CentOS: Fix dual stack IPv4/IPv6 configuration. + [Andreas Karis] (LP: #1679817, #1685534, #1685532) + disk_setup: fix several issues with gpt disk partitions. (LP: #1692087) + function spelling & docstring update [Joshua Powers] + Fixing wrong file name regression. [Joshua Powers] + tox: move pylint target to 1.7.1 + Fix get_interfaces_by_mac for empty macs (LP: #1692028) + DigitalOcean: remove routes except for the public interface. + [Ben Howard] (LP: #1681531.) + netplan: pass macaddress, when specified, for vlans + [Dimitri John Ledkov] (LP: #1690388) + doc: various improvements for the docs on cc_users_groups. + [Felix Dreissig] + cc_ntp: write template before installing and add service restart + [Ryan Harper] (LP: #1645644) + cloudstack: fix tests to avoid accessing /var/lib/NetworkManager + [Lars Kellogg-Stedman] + tests: fix hardcoded path to mkfs.ext4 [Joshua Powers] (LP: #1691517) + Actually skip warnings when .skip file is present. + [Chris Brinker] (LP: #1691551) + netplan: fix netplan render_network_state signature. + [Dimitri John Ledkov] (LP: #1685944) + Azure: fix reformatting of ephemeral disks on resize to large types. + (LP: #1686514) + Revert "tools/net-convert: fix argument order for render_network_state" + make deb: Add devscripts dependency for make deb. Cleanup + packages/bddeb. [Chad Smith] (LP: #1685935) + tools/net-convert: fix argument order for render_network_state + [Ryan Harper] (LP: #1685944) + openstack: fix log message copy/paste typo in _get_url_settings + [Lars Kellogg-Stedman] + unittests: fix unittests run on centos [Joshua Powers] + Improve detection of snappy to include os-release and kernel cmdline. + (LP: #1689944) + Add address to config entry generated by _klibc_to_config_entry. + [Julien Castets] (LP: #1691135) + sysconfig: Raise ValueError when multiple default gateways are present. + [Chad Smith] (LP: #1687485) + FreeBSD: improvements and fixes for use on Azure + [Hongjiang Zhang] (LP: #1636345) + Add unit tests for ds-identify, fix Ec2 bug found. + fs_setup: if cmd is specified, use shell interpretation. + [Paul Meyer] (LP: #1687712) + doc: document network configuration defaults policy and formats. + [Ryan Harper] + Fix name of "uri" key in docs for "cc_apt_configure" module + [Felix Dreissig] + tests: Enable artful [Joshua Powers] + nova-lxd: read product_name from environment, not platform. + (LP: #1685810) + Fix yum repo config where keys contain array values + [Dylan Perry] (LP: #1592150) + template: Update debian backports template [Joshua Powers] (LP: #1627293) + rsyslog: replace ~ with stop [Joshua Powers] (LP: #1367899) + Doc: add additional RTD examples [Joshua Powers] (LP: #1459604) + Fix growpart for some cases when booted with root=PARTUUID. + (LP: #1684869) + pylint: update output style to parseable [Joshua Powers] + pylint: fix all logging warnings [Joshua Powers] + CloudStack: Add NetworkManager to list of supported DHCP lease dirs. + [Syed] + net: kernel lies about vlans not stealing mac addresses, when they do + [Dimitri John Ledkov] (LP: #1682871) + ds-identify: Check correct path for "latest" config drive + [Daniel Watkins] (LP: #1673637) + doc: Fix example for resolve.conf configuration. + [Jon Grimm] (LP: #1531582) + Fix examples that reference upstream chef repository. + [Jon Grimm] (LP: #1678145) + doc: correct grammar and improve clarity in merging documentation. + [David Tagatac] + doc: Add missing doc link to snap-config module. [Ryan Harper] + snap: allows for creating cloud-init snap [Joshua Powers] + DigitalOcean: assign IPv4ll address to lowest indexed interface. + [Ben Howard] + DigitalOcean: configure all NICs presented in meta-data. [Ben Howard] + Remove (and/or fix) URL shortener references [Jon Grimm] (LP: #1669727) + HACKING.rst: more info on filling out contributors agreement. + util: teach write_file about copy_mode option + [Lars Kellogg-Stedman] (LP: #1644064) + DigitalOcean: bind resolvers to loopback interface. [Ben Howard] + tests: fix AltCloud tests to not rely on blkid (LP: #1636531) + OpenStack: add 'dvs' to the list of physical link types. (LP: #1674946) + Fix bug that resulted in an attempt to rename bonds or vlans. + (LP: #1669860) + tests: update OpenNebula and Digital Ocean to not rely on host + interfaces. + net: in netplan renderer delete known image-builtin content. + (LP: #1675576) + doc: correct grammar in capabilities.rst [David Tagatac] + ds-identify: fix detecting of maas datasource. (LP: #1677710) + netplan: remove debugging prints, add debug logging [Ryan Harper] + ds-identify: do not write None twice to datasource_list. + support resizing partition and rootfs on system booted without + initramfs. [Steve Langasek] (LP: #1677376) + apt_configure: run only when needed. (LP: #1675185) + OpenStack: identify OpenStack by product 'OpenStack Compute'. + (LP: #1675349) + GCE: Search GCE in ds-identify, consider serial number in check. + (LP: #1674861) + Add support for setting hashed passwords [Tore S. Lonoy] (LP: #1570325) + Fix filesystem creation when using "partition: auto" + [Jonathan Ballet] (LP: #1634678) + ConfigDrive: support reading config drive data from /config-drive. + (LP: #1673411) + ds-identify: fix detection of Bigstep datasource. (LP: #1674766) + test: add running of pylint [Joshua Powers] + ds-identify: fix bug where filename expansion was left on. + advertise network config v2 support (NETWORK_CONFIG_V2) in features. + Bigstep: fix bug when executing in python3. [root] + Fix unit test when running in a system deployed with cloud-init. + Bounce network interface for Azure when using the built-in path. + [Brent Baude] (LP: #1674685) + cloudinit.net: add network config v2 parsing and rendering [Ryan Harper] + net: Fix incorrect call to isfile [Joshua Powers] (LP: #1674317) + net: add renderers for automatically selecting the renderer. + doc: fix config drive doc with regard to unpartitioned disks. + (LP: #1673818) + test: Adding integratiron test for password as list [Joshua Powers] + render_network_state: switch arguments around, do not require target + support 'loopback' as a device type. + Integration Testing: improve testcase subclassing [Wesley Wiedenmeier] + gitignore: adding doc/rtd_html [Joshua Powers] + doc: add instructions for running integration tests via tox. + [Joshua Powers] + test: avoid differences in 'date' output due to daylight savings. + Fix chef config module in omnibus install. [Jeremy Melvin] (LP: #1583837) + Add feature flags to cloudinit.version. [Wesley Wiedenmeier] + tox: add a citest environment + Further fix regression to support 'password' for default user. + fix regression when no chpasswd/list was provided. + Support chpasswd/list being a list in addition to a string. + [Sergio Lystopad] (LP: #1665694) + doc: Fix configuration example for cc_set_passwords module. + [Sergio Lystopad] (LP: #1665773) + net: support both ipv4 and ipv6 gateways in sysconfig. + [Lars Kellogg-Stedman] (LP: #1669504) + net: do not raise exception for > 3 nameservers + [Lars Kellogg-Stedman] (LP: #1670052) + ds-identify: report cleanups for config and exit value. (LP: #1669949) + ds-identify: move default setting for Ec2/strict_id to a global. + ds-identify: record not found in cloud.cfg and always add None. + Support warning if the used datasource is not in ds-identify's list. + tools/ds-identify: make report mode write namespaced results. + Move warning functionality to cloudinit/warnings.py + Add profile.d script for showing warnings on login. + Z99-cloud-locale-test.sh: install and make consistent. + tools/ds-identify: look at cloud.cfg when looking for ec2 strict_id. + tools/ds-identify: disable vmware_guest_customization by default. + tools/ds-identify: ovf identify vmware guest customization. + Identify Brightbox as an Ec2 datasource user. (LP: #1661693) + DatasourceEc2: add warning message when not on AWS. + ds-identify: add reading of datasource/Ec2/strict_id + tools/ds-identify: add support for found or maybe contributing config. + tools/ds-identify: read the seed directory on Ec2 + tools/ds-identify: use quotes in local declarations. + tools/ds-identify: fix documentation of policy setting in a comment. + ds-identify: only run once per boot unless --force is given. + flake8: fix flake8 complaints in previous commit. + net: correct errors in cloudinit/net/sysconfig.py + [Lars Kellogg-Stedman] (LP: #1665441) + ec2_utils: fix MetadataLeafDecoder that returned bytes on empty + apply the runtime configuration written by ds-identify. + ds-identify: fix checking for filesystem label (LP: #1663735) + ds-identify: read ds=nocloud properly (LP: #1663723) + support nova-lxd by reading platform from environment of pid 1. + (LP: #1661797) + ds-identify: change aarch64 to use the default for non-dmi systems. + Remove style checking during build and add latest style checks to tox + [Joshua Powers] (LP: #1652329) + code-style: make master pass pycodestyle (2.3.1) cleanly, currently: + [Joshua Powers] + manual_cache_clean: When manually cleaning touch a file in instance dir. + Add tools/ds-identify to identify datasources available. + Fix small typo and change iso-filename for consistency [Robin Naundorf] + Fix eni rendering of multiple IPs per interface + [Ryan Harper] (LP: #1657940) + tools/mock-meta: support python2 or python3 and ipv6 in both. + tests: remove executable bit on test_net, so it runs, and fix it. + tests: No longer monkey patch httpretty for python 3.4.2 + Add 3 ecdsa-sha2-nistp* ssh key types now that they are standardized + [Lars Kellogg-Stedman] (LP: #1658174) + reset httppretty for each test [Lars Kellogg-Stedman] (LP: #1658200) + build: fix running Make on a branch with tags other than master + EC2: Do not cache security credentials on disk + [Andrew Jorgensen] (LP: #1638312) + doc: Fix typos and clarify some aspects of the part-handler + [Erik M. Bray] + doc: add some documentation on OpenStack datasource. + OpenStack: Use timeout and retries from config in get_data. + [Lars Kellogg-Stedman] (LP: #1657130) + Fixed Misc issues related to VMware customization. [Sankar Tanguturi] + Fix minor docs typo: perserve > preserve [Jeremy Bicha] + Use dnf instead of yum when available + [Lars Kellogg-Stedman] (LP: #1647118) + validate-yaml: use python rather than explicitly python3 + Get early logging logged, including failures of cmdline url. - From 0.7.9 + doc: adjust headers in tests documentation for consistency. + pep8: fix issue found in zesty build with pycodestyle. + integration test: initial commit of integration test framework + [Wesley Wiedenmeier] + LICENSE: Allow dual licensing GPL-3 or Apache 2.0 [Jon Grimm] + Fix config order of precedence, putting kernel command line over system. + [Wesley Wiedenmeier] (LP: #1582323) + pep8: whitespace fix + Update the list of valid ssh keys. [Michael Felt] + network: add ENI unit test for statically rendered routes. + set_hostname: avoid erroneously appending domain to fqdn + [Lars Kellogg-Stedman] (LP: #1647910) + doc: change 'nobootwait' to 'nofail' in docs [Anhad Jai Singh] + Replace an expired bit.ly link in code comment. + user-groups: fix bug when groups was provided as string and had spaces + (LP: #1354694) + mounts: use mount -a again to accomplish mounts (LP: #1647708) + CloudSigma: Fix bug where datasource was not loaded in local search. + (LP: #1648380) + when adding a user, strip whitespace from group list [Lars Kellogg-Stedman] + (LP: #1354694) + fix decoding of utf-8 chars in yaml test + Replace usage of sys_netdev_info with read_sys_net (LP: #1625766) + fix problems found in python2.6 test. + OpenStack: extend physical types to include hyperv, hw_veb, vhost_user. + (LP: #1642679) + tests: fix assumptions that expected no eth0 in system. (LP: #1644043) + net/cmdline: Consider ip= or ip6= on command line not only ip= + (LP: #1639930) + Just use file logging by default (LP: #1643990) + Improve formatting for ProcessExecutionError [Wesley Wiedenmeier] + flake8: fix trailing white space + Doc: various documentation fixes [Sean Bright] + cloudinit/config/cc_rh_subscription.py: Remove repos before adding + [Brent Baude] + packages/redhat: fix rpm spec file. + main: set TZ in environment if not already set. [Ryan Harper] + Azure: No longer rely on walinux agent. (LP: #1538522) + disk_setup: Use sectors as unit when formatting MBR disks with sfdisk. + [Daniel Watkins] (LP: #1460715) + Add activate_datasource, for datasource specific code paths. (LP: #1611074) + systemd: cloud-init-local use RequiresMountsFor=/var/lib/cloud + (LP: #1642062) + systemd: cloud-init remove After=systemd-networkd-wait-online + systemd: cloud-init-local change Before basic to sysinit + pep8: fix style errors reported by pycodestyle 2.1.0 + systemd: drop both Wants and After local-fs.target + systemd: networking service adjustments. (LP: #1636912) + systemd: replace Before=basic.target, dbus.target with sysinit.target + (LP: #1629797) + doc: Add documentation on stages of boot. + doc: make the RST files consistently formated and other improvements. + Ec2: fix syntax and tox in previous commit. + Ec2: protect against non-dictionary in block-device-mapping. + doc: fixed example to not overwrite /etc/hosts [Chris Glass] + Doc: fix spelling / typos in ca_certs and scripts_vendor. + pyflakes: fix issue with pyflakes 1.3 found in ubuntu zesty-proposed. + net/cmdline: Further adjustments to ipv6 support [LaMont Jones] + (LP: #1621615) + Add coverage dependency to bddeb to fix package build. + doc: improve HACKING.rst file + dmidecode: Allow dmidecode to be used on aarch64 [Robert Schweikert] + AliYun: Add new datasource for Ali-Cloud ECS [kaihuan.pkh] + Add coverage collection to tox unit tests. [Joshua Powers] + cc_users_groups: fix remaing call to ds.normalize_user_groups [Ryan Harper] + disk-config: udev settle after partitioning in gpt format. (LP: #1626243) + unittests: do not read system /etc/cloud/cloud.cfg.d (LP: #1635350) + Add documentation for logging features. [Wesley Wiedenmeier] + Add support for snap create-user on Ubuntu Core images. [Ryan Harper] + Fix sshd restarts for rhel distros. [Jim Gorz] + OpenNebula: replace 'ip' parsing with cloudinit.net usage. + Fix python2.6 things found running in centos 6. + Move user/group functions to new ug_util file + DigitalOcean: enable usage of data source by default. + update Gentoo initscripts to run in the correct order [Matthew Thode] + MAAS: improve the main of datasource to look at kernel cmdline config. + tests: silence the Cheetah UserWarning about NameMapper C version. + systemd: Run cloud-init.service Before dbus.socket not dbus.target + [Daniel Watkins] (LP: #1629797) + systemd: run cloud-init.service Before dbus.service (LP: #1629797) + unittests: fix use of mock 2.0 'assert_called' when running make check + [Ryan Harper] + Improve module documentation and doc cleanup. [Wesley Wiedenmeier] + lxd: Update network config for LXD 2.3 [Stéphane Graber] + DigitalOcean: use meta-data for network configruation [Ben Howard] + ntp: move to run after apt configuration (LP: #1628337) + Decode unicode types in decode_binary [Robert Schweikert] + systemd: Ensure that cloud-init-local happens before NetworkManager + Allow ephemeral drive to be unpartitioned [Paul Meyer] + subp: add 'update_env' argument + net: support reading ipv6 dhcp config from initramfs [LaMont Jones] + (LP: #1621615, #1621507) + Adjust mounts and disk configuration for systemd. (LP: #1611074) + dmidecode: run dmidecode only on i?86 or x86_64 arch. [Robert Schweikert] + systemd: put cloud-init.target After multi-user.target (LP: #1623868)- add skip-argparse-on-python3.patch: don't depend on argparse for python3, it is builtin there (as of python 3.2, so the patch should be good enough)- python_sitelib does not seem to exist for non single-spec python modules, use python2_sitelib and python3_sitelib instead.- Drop python-cheetah as requirement + Cheetah is no maintained and cloud-init switches to Jinja2 as templating engine if Cheetah is not available - Drop argparse as dependency for Py3 build + argparse is built into Python- Modify cloud-init-finalbeforelogin.patch (bsc#1047363) + Support user processes running in coud-init-final to consume a large number of threads. - Modify cloud-init-service.patch (bsc#1055649) + Start after dbus.service, needed by hotnamectl - Modify cloud-init-handle-not-implemented-query.patch + print needs () for Python3 - Add cloud-init-spceandtabs-clean.patch + Fix inconsistent use of spaces and tabs in various files - Modify suseIntegratedHandler.patch + Fix mode setting passed to function for file writing - Set packag up to build with Python 3 for distros later than SLE 12- On Tumbleweed we need net-tools-deprecated to setup the network- add cloud-init-net-sysconfig-lp1665441.patch (lp#1665441)- Don't call insserv if we use systemd- Do not set mount options for ephemeral drive, use the defaults that are built into the code (bsc#930524)- Update fix-default-systemd-unit-dir.patch (bsc#1024709) + based on work by Thomas Abraham - Add cloud-init-handle-not-implemented-query.patch (boo#1017832)- Require net-tools for network setup- Configuration split (bsc#1016160)- fix syntax error in datasource LocalDisk (fix got somehow lost)- adjust license (as of 0.7.8 AGPL-3.0 was added)- fix unintentional edit in last change again- Modify suseIntegratedHandler.patch (bsc#998103) + Store previous hostname so update_hostname module does not overwrite manually set hostnames - cloud-init-python26.patch + Compatibility fixes with Python 2.6- fix the cloud.cfg split, cyclic non-versioned dependencies are bad. also fix changelog entries- add datasourceLocalDisk.patch: * Fix datasourceLocalDisk module in case directory exists but is empty.- Add Conflicts for otherproviders of cloud-init-config. - Add require for python-six (used by several modules)- Add LocalDisk datasource datasourceLocalDisk.patch [FATE#321107]- Reworked zypp_add_repos.diff to behave similar to zypper ar- Move cloud.cfg into an own sub-package, so that we can have a product specific version. [FATE#322039]- Add zypp_add_repos.diff to support repos for zypper [FATE#322038]- Modify suseIntegratedHandler.patch (bsc#1007529) + Fall back to the previous method of writing network information We have to work out upstream how to have distro specific renderer for sysconfig- Add cloud-init-sysconfig-netpathfix.patch (bsc#1007529) + Fix the default path for network scripts - Cosmetic changes to suseIntegratedHandler.patch- Update cloud-init-no-dmidecode-on-ppc64.patch (bsc#1005616) + aarch64 does support dmidecode- Update cloud-init-service.patch + Break another cycle this one in -final- Update cloud-init-service.patch + Better match upstream intend Ubuntu networking.service is equivalent to SUSE wicked, thus we cannot translate networking to network, but need to translate it to wicked- Update cloud-init-service.patch + We need the following order: - something brings networking fully up (in our case wicked) - cloud-init.service runs - network-online.target is reached- Update cloud-init-service.patch + The network must be up an running in order to get ssh key injected- Update cloud-init-service.patch + Had self reference and thus cloud-init.service was never executed which caused ssh key loading failure- Do not own /lib/udev to not conflict with udev rpm- Forward port suseIntegratedHandler.patch + Implement new abstract interfaces + Some minor implementation fixes- Appease the build service, differences between OBS and IBS, and own the directories- Fix package, udev rules should be in /usr for distros after SLES 11- add cloud-init-digital-ocean-datasource-enable-by-default.patch, cloud-init-digital-ocean-datasource.patch: add DigitalOcean support - run tests on build- Add cloud-init-handle-no-carrier.patch (boo#1003977) - Handle the exception when attempting to detect if the network device is up when it is not- Update cloud-init-service.patch (boo#999942) - Backport upstream commits 3705bb5964a and 6e45ffb21e96- Decoding error (boo#998843) + Added cloud-init-fix-unicode-handling-binarydecode.patch - Fix dependencies, depends on oauthlib instead of oauth- Fix dataSourceOpenNebula.patch, missing closing paren (boo#998836)- Fix typo in cloud-init-service.patch- update to version 0.7.8 (bsc#998103) + added cloud-init-net-eni.patch based on work by eblock - Using config-drive instead of metadata failed because the network translation to Ubuntu-style did not return gateway information to opensuse.py + added cloud-init-service.patch based on work by eblock - The service file cloud-init.service referenced networking.service which on SUSE is network.service + remove no_logic_change.patch included in updated upstream source + forward port suseIntegratedHandler.patch + forward port setupSUSEsysVInit.diff + forward port cloud-init-no-dmidecode-on-ppc64.patch + foward port dataSourceOpenNebula.patch + forward port fix-default-systemd-unit-dir.patch + forward port cloud-init-finalbeforelogin.patch + forward port cloud-init-python2-sigpipe.patch + SmartOS: more improvements for network configuration + add ntp config module [Ryan Harper] + ChangeLog: update changelog for previous commit. + Add distro tags on config modules that should have it. + NoCloud: fix bug providing network-interfaces via meta-data. (LP: 1577982) + ConfigDrive: recognize 'tap' as a link type. (LP: #1610784) + Upgrade to a configobj package new enough to work + MAAS: add vendor-data support (LP: #1612313) + DigitalOcean: use the v1.json endpoint [Ben Howard] + Get Azure endpoint server from DHCP client [Brent Baude] + Apt: add new apt configuration format [Christian Ehrhardt] + distros: fix get_primary_arch method use of os.uname [Andrew Jorgensen] + Fix Gentoo net config generation [Matthew Thode] + Minor cleanups to atomic_helper and add unit tests. + azure dhclient-hook cleanups + network: fix get_interface_mac for bond slave, read_sys_net for ENOTDIR + Generate a dummy bond name for OpenStack (LP: #1605749) + add install option for openrc [Matthew Thode] + Add a module that can configure spacewalk. + python2.6: fix dict comprehension usage in _lsb_release. + apt-config: allow both old and new format to be present. [Christian Ehrhardt] (LP: #1616831) + bddeb: add --release flag to specify the release in changelog. + salt minion: update default pki directory for newer salt minion. (LP: #1609899) + Fix typo in default keys for phone_home [Roland Sommer] (LP: #1607810) + apt config conversion: treat empty string as not provided. (LP: #1621180) + tests: cleanup tempdirs in apt_source tests + systemd: Better support package and upgrade. (LP: #1576692, #1621336) + remove obsolete .bzrignore + DataSourceOVF: fix user-data as base64 with python3 (LP: #1619394) + Allow link type of null in network_data.json [Jon Grimm] (LP: #1621968) from 0.7.7: + Digital Ocean: add datasource for Digital Ocean. [Neal Shrader] + expose uses_systemd as a distro function (fix rhel7) + fix broken 'output' config (LP: #1387340) + begin adding cloud config module docs to config modules (LP: #1383510) + retain trailing eol from template files (sources.list) when rendered with jinja (LP: #1355343) + Only use datafiles and initsys addon outside virtualenvs + Fix the digital ocean test case on python 2.6 + Increase the usefulness, robustness, configurability of the chef module so that it is more useful, more documented and better for users + Fix how '=' signs are not handled that well in ssh_utils (LP: #1391303) + Be more tolerant of ssh keys passed into 'ssh_authorized_keys'; allowing for list, tuple, set, dict, string types and warning on other unexpected types + Update to use newer/better OMNIBUS_URL for chef module + GCE: Allow base64 encoded user-data (LP: #1404311) [Wayne Witzell III] + GCE: use short hostname rather than fqdn (LP: #1383794) [Ben Howard] + systemd: make init stage run before login prompts shown [Steve Langasek] + hostname: on first boot apply hostname to be same as is written for persistent hostname. (LP: #1246485) + remove usage of dmidecode on linux in favor of /sys interface [Ben Howard] + python3 support [Barry Warsaw, Daniel Watkins, Josh Harlow] (LP: #1247132) + support managing gpt partitions in disk config [Daniel Watkins] + Azure: utilze gpt support for ephemeral formating [Daniel Watkins] + CloudStack: support fetching password from virtual router [Daniel Watkins] (LP: #1422388) + readurl, read_file_or_url returns bytes, user must convert as necessary + SmartOS: use v2 metadata service (LP: #1436417) [Daniel Watkins] + NoCloud: fix local datasource claiming found without explicit dsmode + Snappy: add support for installing snappy packages and configuring. + systemd: use network-online instead of network.target (LP: #1440180) [Steve Langasek] + Add functionality to fixate the uid of a newly added user. + Don't overwrite the hostname if the user has changed it after we set it. + GCE datasource does not handle instance ssh keys (LP: 1403617) + sysvinit: make cloud-init-local run before network (LP: #1275098) [Surojit Pathak] + Azure: do not re-set hostname if user has changed it (LP: #1375252) + Fix exception when running with no arguments on Python 3. [Daniel Watkins] + Centos: detect/expect use of systemd on centos 7. [Brian Rak] + Azure: remove dependency on walinux-agent [Daniel Watkins] + EC2: know about eu-central-1 availability-zone (LP: #1456684) + Azure: remove password from on-disk ovf-env.xml (LP: #1443311) [Ben Howard] + Doc: include information on user-data in OpenStack [Daniel Watkins] + Systemd: check for systemd using sd_booted symantics (LP: #1461201) [Lars Kellogg-Stedman] + Add an rh_subscription module to handle registration of Red Hat instances. [Brent Baude] + cc_apt_configure: fix importing keys under python3 (LP: #1463373) + cc_growpart: fix specification of 'devices' list (LP: #1465436) + CloudStack: fix password setting on cloudstack > 4.5.1 (LP: #1464253) + GCE: fix determination of availability zone (LP: #1470880) + ssh: generate ed25519 host keys (LP: #1461242) + distro mirrors: provide datasource to mirror selection code to support GCE regional mirrors. (LP: #1470890) + add udev rules that identify ephemeral device on Azure (LP: #1411582) + _read_dmi_syspath: fix bad log message causing unintended exception + rsyslog: add additional configuration mode (LP: #1478103) + status_wrapper in main: fix use of print_exc when handling exception + reporting: add reporting module for web hook or logging of events. + NoCloud: fix consumption of vendordata (LP: #1493453) + power_state_change: support 'condition' to disable or enable poweroff + ubuntu fan: support for config and installing of ubuntu fan (LP: #1504604) + Azure: support extracting SSH key values from ovf-env.xml (LP: #1506244) + AltCloud: fix call to udevadm settle (LP: #1507526) + Ubuntu templates: modify sources.list template to provide same sources as install from server or desktop ISO. (LP: #1177432) + cc_mounts: use 'nofail' if system uses systemd. (LP: #1514485) + Azure: get instance id from dmi instead of SharedConfig (LP: #1506187) + systemd/power_state: fix power_state to work even if cloud-final exited non-zero (LP: #1449318) + SmartOS: Add support for Joyent LX-Brand Zones (LP: #1540965) [Robert C Jennings] + systemd: support using systemd-detect-virt to detect container (LP: #1539016) [Martin Pitt] + docs: fix lock_passwd documentation [Robert C Jennings] + Azure: Handle escaped quotes in WALinuxAgentShim.find_endpoint. (LP: #1488891) [Dan Watkins] + lxd: add support for setting up lxd using 'lxd init' (LP: #1522879) + Add Image Customization Parser for VMware vSphere Hypervisor Support. [Sankar Tanguturi] + timezone: use a symlink rather than copy for /etc/localtime unless it is already a file (LP: #1543025). + Enable password changing via a hashed string [Alex Sirbu] + Added BigStep datasource [Alex Sirbu] + No longer run pollinate in seed_random (LP: #1554152) + groups: add defalt user to 'lxd' group. Create groups listed for a user if they do not exist. (LP: #1539317) + dmi data: fix failure of reading dmi data for unset dmi values + doc: mention label for nocloud datasource must be 'cidata' [Peter Hurley] + ssh_pwauth: fix module to support 'unchanged' and match behavior described in documentation [Chris Cosby] + quickly check to see if the previous instance id is still valid to avoid dependency on network metadata service on every boot (LP: #1553815) + support network configuration in cloud-init --local with support device naming via systemd.link. + FreeBSD: add support for installing packages, setting password and timezone. Change default user to 'freebsd'. [Ben Arblaster] + locale: list unsupported environment settings in warning (LP: #1558069) + disk_setup: correctly send --force to mkfs on block devices (LP: #1548772) + chef: fix chef install from gems (LP: #1553345) + systemd: do not specify After of obsolete syslog.target (LP: #1536964) + centos: Ensure that resolve conf object is written as a str (LP: #1479988) + chef: straighten out validation_cert and validation_key (LP: #1568940) + phone_home: allow usage of fqdn (LP: #1566824) [Ollie Armstrong] + cloudstack: Only use DHCPv4 lease files as a datasource (LP: #1576273) [Wido den Hollander] + Paths: fix instance path if datasource's id has a '/'. (LP: #1575938) [Robert Jennings] + Ec2: do not retry requests for user-data path on 404. + settings on the kernel command line (cc:) override all local settings rather than only those in /etc/cloud/cloud.cfg (LP: #1582323) + Improve merging documentation [Daniel Watkins] + apt sources: support inserting key/key-id only, custom sources.list, long gpg key fingerprints with spaces, and dictionary format (LP: #1574113) + SmartOS: datasource improvements and support for metadata service providing networking information. + Datasources: centrally handle 'dsmode' and no longer require datasources to "pass" if modules_init should be executed with network access. + ConfigDrive: improved support for networking information from a network_data.json or older interfaces formated network_config. + Change missing Cheetah log warning to debug [Andrew Jorgensen] + Remove trailing dot from GCE metadata URL (LP: #1581200) [Phil Roche] + support network rendering to sysconfig (for centos and RHEL) + write_files: if no permissions are given, just use default without warn. + user_data: fix error when user-data is not utf-8 decodable (LP: #1532072) + fix mcollective module with python3 (LP: #1597699) [Sergii Golovatiuk]- Add cloud-init-python2-sigpipe.patch (bsc#903449) + Restore SIGPIPE default handler when executing shell scripts- Add cloud-init-finalbeforelogin.patch (bsc#978048) + Ordering issue, avoid login prompt before cloud-init is finished- Update suseIntegratedHandler.patch (bsc#971275) + Properly handle the package_upgrade configuration option- Add dependency on jinja2 (bsc#948995,bsc#948996)- Add no_logic_change.patch to undo upstream logic changes introduced during style clean up- Properly write the routes file for static networks (bnc#920190) + modify suseIntegratedHandler.patch - Remove suseSetInitCmd.patch + is now integrated with suseIntegratedHandler.patch- pmtools only exist on Intel architecture (bnc#928552)- update to 0.7.6: - open 0.7.6 - Enable vendordata on CloudSigma datasource (LP: #1303986) - Poll on /dev/ttyS1 in CloudSigma datasource only if dmidecode says we're running on cloudsigma (LP: #1316475) [Kiril Vladimiroff] - SmartOS test: do not require existance of /dev/ttyS1. [LP: #1316597] - doc: fix user-groups doc to reference plural ssh-authorized-keys (LP: #1327065) [Joern Heissler] - fix 'make test' in python 2.6 - support jinja2 as a templating engine. Drop the hard requirement on cheetah. This helps in python3 effort. (LP: #1219223) - change install path for systemd files to /lib/systemd/system [Dimitri John Ledkov] - change trunk debian packaging to use pybuild and drop cdbs. [Dimitri John Ledkov] - SeLinuxGuard: remove invalid check that looked for stat.st_mode in os.lstat. - do not write comments in /etc/timezone (LP: #1341710) - ubuntu: provide 'ubuntu-init-switch' module to aid in systemd testing. - status/result json: remove 'end' entry which was always null - systemd: make cloud-init block ssh service startup to guarantee keys are generated. [Jordan Evans] (LP: #1333920) - default settings: fix typo resulting in OpenStack and GCE not working unless config explicitly provided (LP: #1329583) [Garrett Holmstrom]) - fix rendering resolv.conf if no 'options' are provided (LP: #1328953) - docs: fix disk-setup to reference 'table_type' [Rail Aliiev] (LP: #1313114) - ssh_authkey_fingerprints: fix bug that prevented disabling the module. (LP: #1340903) [Patrick Lucas] - no longer use pylint as a checker, fix pep8 [Jay Faulkner]. - Openstack: do not load some urls twice. - FreeBsd: fix initscripts and add working config file [Harm Weites] - Datasource: fix broken logic to provide hostname if datasource does not provide one - Improved and less verbose logging. - resizefs: first check that device is writable. - configdrive: fix reading of vendor data to be like metadata service reader. [Jay Faulkner] - resizefs: fix broken background resizing [Jay Faulkner] (LP: #1338614) - cc_grub_dpkg: fix EC2 hvm instances to avoid prompt on grub update. (LP: #1336855) - FreeBsd: support config drive datasource [Joseph bajin] - cc_mounts: support creating a swap file - Refresh addopenSUSEBase.patch - Refresh setupSUSEsysVInit.diff - Removed cloudinit-datasources.patch. Applied upstream - BuildRequires pkg-config. Needed to find correct systemd unit dir. - Add fix-default-systemd-unit-dir.patch . Use better default for systemd system unit dir.- Fix (bnc#919305 & bnc#918952) - Properly handle persistent network device names for OpenNebula + add dataSourceOpenNebula.patch - Properly set up network mode if interface config file + modified suseIntegratedHandler.patch- Require e2fsprogs for filesystem resizing- Remove Requires for python-yaml . There's already the right requirement for python-PyYAML- fixed syntax error in dmidecode on ppc64 patch (bnc#914920)/bin/shs390zl32 1703255561  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABC>>FGH>JKLM>OPQRSTUUUXYZ[\]^_`abcdefghijk>UUopq>stuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijmnopqrstuvwxyz23.3-150100.8.71.123.3-150100.8.71.123.3-150100.8.71.1         !!""""!!! ##$$$$$$$$$$$$$$$$$$#########%%&&&%%######### ''((('' ))))))))))))))))))))))))))))))))*******************************)++,,,,,++++)--...........----------//0/11222222222222221111111111111- 344444456789::;;;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRa:һMRbsutf-8fe36924f937ba86644bd3805bdf1702de884499095b0e1ed6441991decd97548?7zXZ !t/%]"k%%1ƷmO8uWV/ݷumy X́ғx'#4PZ")Tyۖ~ȿÙ&6ǒ}Ur Tcb><6kC4_]y\ ?:` +oR~ZWJ̨|oFk#SDogޞb@!d;ۍ0SHT,oÂ;} (!mhXW~4nLӫ'RY8·0' : L`}2` uGdLb7!+dFHX3ĺ1E~%Eu%2]pw)%a Xb|^=lֺmIPq6vT 1/>V@dLskP0"=2bg /{l;ݍAVr(mYٔ؛;W "EI}aU:q{/9ݛ.aǪ5יnjKUvB%._YBmZK;P)qw"Pr*Г+^q0\k^ǛڝR s Egxȿk)lhO9/ ,΁]žG'uL8cZߊy|0n~lwLoy nui" rt98.1h5*e|!HO]^OrXs'!da/ixu c+i@MaÙvJDxI&1mW+ D[Cw.Q}q/Yr@ #%5ݘLn4f4m%"B 'F Qa8,J_)RYδ#&:1Vm(=+ h*tvM-`F(_`5Õ~թʓ#]LS=}h?@0[RhKgRkjZ|^:d8x ,溧d52'5!K o OFAld~&S Yh4]=η%_ʔeEgĦ|aWMBF Qbȴ|*Êщ-jnq4X=h9c4 HK41zXQf7nn:.H<[Ǡӽ sDkE7y㖗q4z׷ܸ'L_tG]ANm|Q" Dkr5q36ct%!0[ѥ3?c#<]rU5g`l֤8x<7V6ثCk$f(Qw)\'&X޲ oGF֤Z-A8 iŕ5I}"yTQVbr|h(,NG:XNþ-2ڣQ1ř>R)# +mSerduZp4 T+ ֯pe:dEhd2Ic\BЖzNDK_wG3ݟn@bw~馸`}>0:2ķhpp;Tn- M'_ )6rV0 (n= R2 YN>壛=Z)ԁ5zu!]q_]3\{F | D8: /BCyPyWA9[dZkA/ucv4T2%kER.y}yf>m^q177#:ᖌjM1O4hf _gxxrcvJ"XC @8 oϗ:'l[`TwwA頀= ѕc4 U'e_W.*5ܞfhq3MS>{{l90vE|DO;!jr荫<<6ShP,tLG˨XHCakĂOJ+K]*̲{8"AG~M^kq|.uq6R<_(򧀻qPaZnd-jt[ }a C T5s|A/i8 On/ b ~Tcfـ(3}%:)xᴄZ-0m;ϱ*ՠ'!)zREI"LL mRJ[51+s(d"I(h{lh>[qxf D怇4%,6MXgfAu.e6_5\:"MY2cy]Y(=҈סh+dvNm }/,xͩ}x.yhu@L HM6=09y|ghep. 3eu=DG+gL)w"<$ս%(اk*#S Ɂv^ 9 Xp!9eՄ#Yfk'lJ$Czb8fO!}٘ו9uD!Ay6v x~RѽH(> <-`#2䌴+0_YުnC!չ\$R`@hBIعx2b.eP` RY(ᕊ΀& f:^HhPKCTdS-)%,*7A-$؜r%]|X< ՙ,G5N,խ,.ɴW C~?[4KdKP_M =  wEqE0'. PPo9819m/&R73\GCǵ7u6wԶ5+][H/ A ú`Pp(z^AokOcg8kuYuimOelS-RwP20гpa87@m3PpNw==8DڢItn~y2+:ɾGpEM-+!;Q@\:^v~X}p)w9ϛ 2 xA\\Q$=wqr Vj".CqGPd2 bTK O𭱫æExu7 T @oU ̆+וpFvi[1:pʵ]x'&Wn槬)Sc]ztJ՘r$vV& qSCL7nQa#2z~X18DrnWiū,p41$aP-qOQmMS1 SU`I~}~hܐT?L<C<Eo^2d Ze\Zƕ&1 VEwg5,s;.y %^BiP  R:p=&a^F^e#x{PŒ}n4?*ʦϗS*mPZ!27A%\e.v}s`d^{_ 'f+ {?5%,\+'A u{#*+pd/qAuV[Uu(%vhqYBN]?Or<*1lp?ƔDWKɔ7@hXm-`>j/!Bo/48!H0w$QqϞ/7${dXd8"7 70 [1yT7

gTQQ:ti:x95al_[R2YM5XH=/t'RXL_uEBo;K _O͉j uԶqx*v&P@iE*L:Gz`(O'r,yK2Rm[٣JEpBDy"$Bj@_9_=)]AC&qn5,{$V0cfCecx|<EsjRY XQ )xfɥE&ӨM'?N'P2.=rքB{,x|#Hni$d2s[Jyb+ Xb/?HP~LuB>az'^rDC& bW"CbC ǶEF+Ui:r 2|whSj 9.347&/"|1q5dҚR=jDQJv*9[Fa۸+ATDsPD:cM/#5H6wᦄON*;K%13.ZjD̃o6SL 쪃oʆ82xTV\M3cB,fd'3Wن6.1yz#&zCNk~[)=[#DpQ;ʘ>N#!r;'Z[ŧk@7u䟽$He%:L|!Qse\!ӷs{N-ENrNMoBH25>jLg/?6$X֋g|8'd"(o$,8Hqd*XdP q--@Yw\HHωMz@Ձ8(,LY P/.Cߴ?՛/(OWZ:&7E:YEmoQ D$SPcS䞳0lBnт7dO єD7eτk޺A,fZkQxR~ޑLwjNdnkS&~Z0bԆ59++c 9ly.sPV| QQÉ!6[kkAT&$J p/L[>N':*y)]~ q2 f>jB0+DhA{mCD X%gpal@,:GLj itቜL0hdor;zء`ҪJ.YR F Dy…|{e.o儃`׸Dy3LZD?M48\˼J/Ax}A1߸i1#kݜ#Ț c[|R]܎A7)][Y~^ Ї wfA 4fCWhvi>>,@<]mh%ypv^D6U' FX&'|h<{7ى27 nӍ:INpYʥNϕE`kk*-鈀Ѫ-/Rj9Oz6I5iJ)2ټ  JHm)&sM{_ 0ռk:7Vi^=\ߑ-;.5uP<]NƄ)B~y/N(WJ!eQ0eR13Z̙s}i9Hh+;.R"#y%ߌ50:p -i;1$@{ښ׈3hKmW@xl=h!op֎LA׷>q$˻b'LGIR?6v!Þ reʔl*.Cr 5Pj?+GԘx1 o+uőj.:q9N)QQzJHh也{21H∻R$SS>πPKHh_,kEKe :"6YMZIɢy7gprQqB!g1(h!V zRBq=>2wJV  ؟kXsf_ =Q MLYԛĀ^[Yz6د&pN&F2>"`b5=qY?0ƀ!2P>^I'p/\];8[&&<4p ѩ CN;'MU\z+9}Ch'؟ gmdLNPbk1;BO.},!:Qs|\gT)˹)u淞x:)zU`aWw Z ?Tj} z}f嘍@m`-B@%֌0q԰WmqnUz| [6Dp0Zi4.43ĺ+'U-A OS6mźW'i?[ope Uq8I'WVkyc^pƙb*,t,ЊkO; rg*12 mjT,~C~dM6i^aNksυGdÃ7|ILKK&Jp)-0HLhx$ڐYH-͟'Us"G#0xvܗHf -5e=5z&խtV@9AKvaӿ>V{N=2ô+:6Bno>e:޺˩ 3kHLdD^yno/^%ݖ`&WymhZgW1tC.U@[zD5Sp0b YsbioI'ۙ5,ۀǷQYv?R;G{~g]THXFM_450mzE^>CXU#*dy5}VQ;-ǰs!@ ́/vEۣ[~iI8(Ɂ#ttMc^ѰDaS ha,k~g߰5FQB7̶VZ!`dʁ bXc-eo#Eyɀ;:<>K#;llAVqA9]X+|Ô V{Cp3:FfW Pڢ|TxV2lf0i=(`Fyw?O,&?Lqm!}Cv܂b&eG+'eN6jڵra[*p&79s2TY17pUx"5W 0#/1qѭնeH LΏMAʒl eמќU^Ib%8J1J>Xb )y ?Huњd X! TC޴h8e@d8[KX*ـao2 .9Mg8Sg4a;d{Ě 1{j&V0z6xWM"UgݨK;q3u ~ OxmyzMgO12OAaLΚWVÙ3`x; mlTyqL`g[U&աkG+ȓB%=Y cCf+SݝPanwG"qQy~$ 4'q|oJTc$ˎtnXMqr93V jJ)aO78nS7t<@S4:`ez/xR8+2*dWJr* ;,;6oAϖa3S6k:2qة X t{ڑ!;rhUZY1>qn6̹vjUR_!Q0Zoͷ53V\AUa8}d&#ȼ Fb.Y}Y|7X}ǵ@pİO`maVIkOq{Ǖ6k'VӲdM70ҟ($nxQUFD7U#!AI~dl Uw$%<3A]c5{ 5{\jl36LzxA@u]{xF*0iu4$tȪ>}W/Ih.x~$ uCZ2e. IO҅)ŀkpasT ]^LTrf`#p%譻H̚TYG>+b{:ZrIr9/jEsn:N^#iEԻXd=Ŀ!4PuT j/O#ߓ{_#ΠE`K7N7S !6&~YE8hf ռ d"s$ZNlh^:كmP4ʚ^>bYiPBw沼"9e2O~\=m}@rwlc F#;:K0~7$f`^٦ qkp$ݬŹJAȭe?Y>{ v$0&d$_inf~J}utH>dPDO/@KMӝ48׬b/#`FفUL7Mic2G"G4/BqxFG@2M/PK gu^T[x4r5bb ^)Ϻ̾i` nW#Og!>Ψ.ai `ey_qW4zf38OO)A&/+{+Ҽ齉-X,3SS)H9;P"_GO8"Pem_ "Ꜿc&:+?9Q yN,lO屦]I8L\ڥ)T% hU2~3.:L!t8',7 TIv[츆j7,(H{:i.#3sZt;%nr8y`ҚwW,% ]BKqLD=U.伒C08=E7,!n䯅 v߅&: 4qHfF)BF%k~g(g~!bnh=Le25A]{,4Np#{Sh4~^f( scry;:ig2~&G9t$ P)UV^֠edn7]9#;ϽK$Qx|*Y1T^:Rf/NFbu5K &G g.R!4/T@ZؖEÿ13syJ%`34 ;] ~1oT$4٫iHgT I.Y]V 8 +kfdGh gzqdKFmgf[椹ىf~޳ְu٘a!&QZՇEi^^ u"?gfޔW3v>S{aLu<>YQ/ ͡9&bIT#2H-{Cu4-^<`)K3g9)P!Wf]'6MN%qCrhNAV36ɤg"|vԖ-zkW\=dŜгՌ)#‰|MPk]b:aM\>w%Z,QDN|؛;貅b _?G}BteMTsFtO"wCjn:<Գ< ? `*.6z X[m|z>R—ڴKmxC'54zd"NZ:`#ݥ HPGPؗBb蘉 ͍+:#6DVں7fZRC3DQj$9X卩5"RF_d}li7_rA kxF%L ?\<.g0:o}f%ojX]lmaE0k +},[C,׫b_4aSIc2{=E!"z .v+›Jp'?Ǧ'ǂ9S[ܐk9ęDf6:?Nf9m߯{5yRXL$xm[4:K{cɡf$[ohd=*A}J,k2 }1$' s͉RU$^RzBZ0 COP_b c~[蔹=MtO.)?t ɬF\ʂi]TD(nu!+"ty}oyE`L$kTV Ca2dyF[B\eƜhlqmFW%+"}8s}=uo75Hqe׹OŀfgєDUٞ4g1x^;9>;Wh}(Fgժd-OH!2_u=,j3yhn ?<]ąMd _jx.yz~uK~AĮI ~bEEux!݋[gj qe; MV-z >B+臼Bmf䕥~dwL36K%5}9M# [,"Z\TLbfd߯VߩZf#FZR"8XE)rжJW;43';ؒ+F=9Xp7K`v)S˛NEXh\=DpnOJcSrCOe' 5I|ޔ5!MR71(زjN֐˧#0#jKt 8=$V^P+D\"*ٕ&RAmZO!#QPa;w?y/W7~+if9Hi|0/>&74PDn=m <%;xX־/%KqYsJҟ* \oM.)eE<]Bxbk mrqU`ȭ(>9v2Hy \*rQJ=P]*2Ah"ư-7@5|S9`h X{ L'6975&ʵ$cI*i׋K?˛F\pHGLJZC!u2$GH.v#9fHryzKyV<󚁗el3W[nfTFX'=ǐ3^8v((8rɝ3DRҍAΙ֛g ȍ]f 6^2D6, ܏3kS}bY'߁!ӣW̐9_k)'X:*Mы;ZVV1 KXDH%ZDoZ^vs]lÐ |sj'tluZFB]$ uB&+Po4FB7}Ԑ$y/ػڊׇ#q^X9čTKvIڡ5Šq@OwdI̛DzDf 39/"+x/@m̥:Ei緶E28NMw$0"˒0TMSjRԤ(v0L, &ءq8XRI`Dvٶh H\7US '4/ n{#3~_/jDvN pfMO^WumcvZ<0n0mTAѢ+?T!ې6)Je=dGwݽM\*Wظh_?٫z4pd;kfs=pSifCˀ95?G}*>I;rwʕ5u?}z$X[DPKz =j HVviHapYK{0yN(Us (2CƟ5~v6qkؿZݸZA2Ug[ohd`ʉUrf~n~MeK+V:ؙxȿi7us!_80ݜ˛ $m6[n/O4݌4/͖c>wX)6+/>UUۏJO[7RΠAK*(=Jgx ҚSmr-|`,@dT'TcuB#\ |b٭<)VP-679ƅV|xKG  _$ hG熊a^lݍ]N.ga\Vy$pZjm TO,2A6 *q^q-XӚ5Bѓ@, k`RtQ''U8 t$֫j"l `]>".Wi)IwkrxUE*R2zAf>Ó~58PP.^v:Fw3ΒL BnƒnEK_l S)( #`BAB3boD2ߩZh4JX C:AmbctZqCH;ݺ.9,İ6z|`IS.9oLgH?F8ЌW1ZZLϳi-ǂDc tP~~Q`g7F_H-Wr3EQTm/s,CrǨCz4jHh*+x9uD?kZ6YͿɇ >!Id]_;NcW>#> OR_KJ?CT&5LC>.#+2ﺋ@`+l.bg?Fu񞇸_LV#SWf^7fқ!0mMBa K Vz>[,D?ۂN̤kS>ɻ6Pw #V'](-n Z(:iRbF-hV/<ȅt7 @(3aSb3'%J9@f^f5Y@zs$WGatA~tK~L]nu>gV70S俆ŀƋME*۱Q?:8҂X"uI $ saNO" 9Z%ww< ` 3EQןndC97mxi!7/;˲P>p*ODϝ2I _]#UIq/S; >7Q4hQ&ƲډvLi$_('Q QYCW) n`hAt5(t_F&dlݐ9@ROoPWr]Jwpݕ 8(Nw֨Ʉͽ3=[28ڽ{ n i>\Kn'.%k-;F6G {Y./Wf!{_ c.*QkJ^G57id+O#kb`߹uZ2(!KXc|4<#v혊궯Mo SPA4nm߶qCJa 0m-ih$R]ZxN!wG3Vӥj1Ga>`<&oە}1ٽѥsROE%f6EL.%Xn):}sIHE3ġλsEI+un.Nn6@^ qԒNDiDd3o1(DDG TrX (GA_ӧ.5W%UFʴlQ$Pf\q KL+Ht4o85>(+60 3_.j]'CE"i[[>t+0`X?!9iSEY\XwΥVE{⌺9!قR׸ SZS2|J!@,sgӊtd, 1 V8 1NH7We7#uI}hR?XD.q0e0KFEðtO] eNJGFTPx3D4d=15>m1f#| L%W^#т^ =,$ZQ9!0\`y%[.H?M)2F,.Fh_9iD,"PjmNt%]΂2m;ˎC g댙ڝ`>{AWC~qlu >:*sϡl5HH+)R#OI!5z;Q p~~;&u,k!J mZFcG a9DRRVP>rOjҸ0!+E_?mg[5.huTྗ2@r򯆳RwV0+[Z-9>]m1ƛ6tR]Tl맮vN7f#ʕ@< 1}tMPp[. %e\LZߏwUd]&Sn ~"{s&iex+fz [ц7yb0ށ_iN: {iS3{d%dm@D[ 2Oj̏2"i#h \(K?8 Y;Q~ Z@F:u&nnT5;T!w]a2rQ}#% Ґ(P,=0H2>)ǡc #0sݝXy59oY8`5VLY\zuD.TWjp<#`44e`kCI:ֺW_qkm(2 E6D%s.]ǀ) 4ut7e[z@m @rP8Nn\7c)a$ɥp ?'F!}K:n8T̚ǟZxv}<Wkۧ `'+rN"Ic 1|kRRep 5T 뇟><C8F6D‹ȪK&ݷU$Dm48! YzNS'Dqk 4n<(F 1t뾱Ș9HBf2'?LpZ;+FDݱngtGyUƑL ifW.%6ۊoi&hWP*=]ma ^J$1+tm~p@33v=tT_-cqGV,A> K<CWB rQ:=o+@a0okzV|lG'9Ҙsc,'=hdYȞ^a>iDE ʅd^7XK_mp6BF& oϧdٟz"]u-ܯ%\lW曯*y%X%q$ yTi߁"e^!`8*s ,)=>&xGдh}I0JX0=׌%4<6RVٺ%Hě jVO:<3< ,++Φ1,ؽ+Ě!fiDpKD(B^[M+KoW8_ #/ .߱AƶY89JkT gLZF!OB8}ZFj?v}Pw>Cimm^Ȇ=vra]+W{~*K4@wy9ؑ/9F%WOk˩d g= Lp.`JrjkN/~$0k1FbEVw(KpYXjkmRZkyFR_sFmp$?<]WcM6סn* ,,3 n0RD"Δ:;+_|ۚ&v+ȒLC.g·i V^f 4~JDMaA/W ˯mX 6[Z ٦VH1·U8!!1X8 U-P25L'-n95f:+xʿ`,^r\\5T2V"< ||@;^PG`l EH}`1 Wj'EHoBfm&wr8߱y!'CTeUF'^.;_E䛠IXC^%q M!NQUVѼ+8tVדiڍ*Rz\tUp,Qړ{D 7"SVb JIweb{M"cR}eݕ SrƜDwZ8`Q{0:gѿ"]njJr^׀@ úZ({ݷ__qWj jϬ| @TiX< 54AC'Ջ2G0!3dK@ApfF ScI hl~(u;,^UYtR(/fU;9nOLV'ӳ\"ipoR%>$!צh$Ф #_p"=ߏECl6Y"@DӬA,vgB&I\\d`e ZW6iy0 H$*^TxHt];S1MIR][nx`;zn\.PΜZῩp0?L87H1OZ]FY)cp=* 1*2>9Ờ ʳH;JxA a)'kC5ȩ@~pLӾoQ"ra5hI4ąvA T*/[/xb Zt`oAO+AeP D#b վ?!DWe'G*U"-D;# %'ЏJq PB҆}ֿ`):52GY-unop?.,1v?58ٲ/93[y# GX8ˢka@  Mbkn&5Dsg*9k+S\2QTLtOxx wTޗ8tQջU50 i;Kԋ 2vtg|E{ >)E6 U(:6CFZbLVXICbUy4;7! tQDs )y29+zIL~kx)^?umsrշY7slxaBn.H(UL3 ;BjX(BRR3 hW40)lK=\ KijT=>e< =#3*s~vB s; 8 qU/Yl=ޠ=aI>>5f+uɒcEoBpGg!j䛜8C7QF&쌱E7OT`VH7[~{x%({hNVc8yn❥!3)I"%fw&͂U:)>KC Dž'g2Mоh?yoB=ބkMfY'1r\P|ckUjGu7mdet9 ṐHIr13 @;Ǔ(Ms9,.}2 u|:5vFٓZy2ĺ}TsoZRngٗ}C oDGr+rmp+5u~%0~lm{vn~ٶ+~jf\հQ av{)}x&G~4쾭(MBet=T\>PuL (S1}k ߽:Lm CC'Z;P-G7W 0)բ|W[@}cMqyl{|麩K2rE^ez?"l7YF\uUv]v\dMD4Vx:7Fٕ.$AȟNw:ޚxgܧe76&\< U ;^dW*D} teN1˸n#5} <JgEB{ps\0@M$2ʓ'v[ғ HZ`"(>-/NmVItTN\^pBiYf#Sy14]]8xbB"rjnE¤C'}IbIom`A0 &90|ؘO9SObţw5yևd(dzN]iTGbj͔t"dVwuФ0kTq?|[''N|"|p>r1L!{!x=8Wոveohz` '\zJ|0Q%ٹxweW&12ٌBD*/j+oT4jC0IC29G"LI4:2k۫ .[fharveG/00|H0n[6.P_ޤ[7k7~$4u-Y}3NkSI${g#CPdbK8Kiq<é*F* 1m Ɩؚ2EMG9{?<3/W)P'\{qͫ_}.6,- 0ઑvБ̟rBޞ̏d87L^/|i`1$[?xBYe#d+9KZNJJ`?%|9w`9eC CACSCu.]7Sfa \`VyChJ@l8Ӧ}݆ mS᦮vmߜg@+oP׌EB<ƨl<@empe(E2zM|}FOE3;I[Pz_ͳ7\++ii(&*]B]2jH9{S-ϬfHj"/^,EPS( ʀFZ&ǗKXN`^[5SQVc>v|agy m amN2 V0"#|Ko>+y{R2Uk3Nn=\Azj$ȲʦQ-@6#,8'?u9ĺbh@gb\}3cEhꅂ $n,v \,;C3M7ɸvܮ/QM8ޫNQhc7.y)> G,:. "wgY$4ZH-aY" Ni~J}l.zedӃC˱C61K3,l|AR"4~΁-| /+t KY5z v]Ma3N,0a Yٙ}DCG>YQ%/O8 n&\<W) scWxk+ ˇc5"}i?Y(xtApF3Чf|xFOADʢ,Yt5+(u$ Rn^ܨ_Q$A80ZA?r!׉n9Md2;UO"^^F=<t:L`<[kpRjqJuD)}E 6/U#e&$z v7!HrчtvORMzIƿLmv u0V1%fs-l2'EɌtw@\62RUDʩMĂHua ?^++U,xyHvbAK2:3raQr ;+6]Mb@(5^(xY+?: oUcW^`a>ioLZnpbʤf5, ud襶,SSr6;`5mjMޚ–IH^ȶq,ƞ_Km^-I6w'U;Hہ - xd 42m(hmgP6 go\3`*^VZC8f t c|LMi@MtLטy仜(p}2Ā VyjʖW~Q/S `Z IyDwmZCvucA ,H"y``ƶG 0FZb͒XID1+S7K;Y֔d5Pkl9 }`\Iwͣ?劮SbΤtnPxX LO~0[n׺O.&q9FM)*c &@|@zӊOvKf8J>j k ̓Wx{`H-(cMحyVmiT2Ɛ#4dx:xi=՗rs'%kT܄۝ Ik'5A5zm;um>гTZ;YZ*E$F-q|y 8:i|\~ ef).]Dxz+eWVOmi96α=nT Y{i$( tȍ.j#x]bba#>'B9%A \,E`x{K+^0a6SӖo]. &ŔD pٹFTCg׶Yq;;M*}Bul&<2fV,]p^ ] .V;dFW_zl{lYؚc2Yc#n& ˯\6?Wo0sDK2|CrP[>,!QQ+?9>^H+XBD \~+@AxYpg oO:#ZS[NVD:khu#"@"YHggU8XJe=ڟ|N.@=Nb#%d|-kX)y鳪‹F~Ecuj=ZLL4߬lFwB`kJ  +$.8a#\E$kSjZB@VaR\$8U[ %}h1:/4lz"Q!I\l^6kpI#U!V,J7p#EMS6Pӳ 4 U ll5+]O߭PPӠ^獽 _II~Xw -RcƧ9 P9TH0hc ۰lPI5f .k6'K^=4F M&Pe+_51M-:n@[6`SҌK R).PLg9Ю9|*Ѳo:v^V zs>] sj˻6p[e˳~YQ79$*3σ4O+S`[naNEx>}rS5ˮu];s JyR24:Ux{| 7\mrrv¢CN/|if!co\mwr*5b`o#CO.m3DŸ>=M]q>/X . 6:@SI.B_[R)̓S?$* cn?>aIAt{ϯi%02WZ'1YAڈCr^ҹ쎁zs^v]rie"pR;`e lsil^MmCi`zhϜz-eRv>6Z֌3_AAàݼ fxwe!Gv I2߉E٢2TݥiLhˮ*An4W!Q!ܰ(#|*gAdMgoƀ ònW'JnIyj¿Q~KbFg#^RMKK=ްS 7yWTR m]q4nm|oa+cDj͑|9"HVYh_SsjX#Kus@vƽce03~e6YP*8pk[%;(C,M)&K^E׋.(椷[n a M8JDvbFCsfk"7V~EvC ^I=U=Bzo>H:tW9mt_"٩D:wP+B q ¦CCΎJC[7ͪԫk_DF^1S+pKz Уex42 11K6ʎYBJ+P Ztw|řp akH\bs'!trU,-}'Bh P9B! +n)NTq¥dѱw])s^^v;ە>Y3P&uPPА*NQU# DY~ 54ô3 R5mmt#~ ~mbq$XԢ bcǼ61r`ilks&(W*H Ԍi$6Ӻd81X5mQkwZzvڳ6:y e؊ U\~}G.0qՐwF:iJeɾ5c'@dzS ju)Hk+CQ.ƴ'0p`^$ +qK墳d +5%K;ϒE~ Z$y?SPJxjDr_)<3B2W{0܁_Ѽ}ilL]ψ␕8RIjȐv E=΍ v4vr78 ns%!٬G T>/Zr-TzLsg3n$=FLN0׫;ɓI4YM]b$dlT8~ ?|M+Q)$q:K I, zx @ f.ҹRs޲9F_EK[!l~ +E g@i)Dhb x |@ցއgVw {xĆt~VQoND@)^jɼزIdi!ۊ=|P!h!b{?~ƖSLka'Q6ϩ -vYR+QsiMN+nG$}fPBK:I&bT߭EmnK&[cxUqԅ> 6dFi-|@ u=|_h*x>n> * O[fKo\,-3qeg"NMu]аDrWT5e}"gxr(>OXAeCZKg+lE֖k q6HFzV*5T.0'0KԃB "T0Jл. ]ڪ ^"*a2#*P֚^uCj+YEЂ[:ƕH7YL d(?][,ߏlG^rziqsD%U+'ltOHO>yN=oP_ئ"/Q+_FYmꚿ6e9_Ѹi;rIsWžhp,9m:q!m*yƯ߿ yAT2Dal9;گ 9؂r?i'ď[5q^tNe# %#it_a"zfòj52B‘2ƻ%oP 2^K@Do9%\8K۳idrYV#!!8*d$+֢|2HR6۹@яh+Zw׋I * 2n1՗3=u{]I8*?x~2*x̊Oʀ\W/J=|M۩ nʨ'@V*> t*WFx#GD3DԽFӐWnV^(G.tXQΑX~iэ,92n%37B>|zcvbm Z5(`^ o60i&kwv|roO> 3GQ^3zBW_]L T()܏iaM9z? y,Ժ y嵵fU3jf|(O.{Q(e c4Φ ^F>m,%3V>9|2 Oz?t9&Vi?\/B?rb˵IUF6M Hn0qZJ =%>VYHWqODs)Y~jy+92׺"B8?>zpkghő% z>^S՜ߎH;n |qCW؃OAn•ђ`oJяdCP2-˪n ʋy9bE aS%n߇g(1G'9_B." `Gt ]Y>Yt83!ͶIڞq p#wM4@I]'Z"Hٰ(j:RsI7 TUї((WQd+_ʼU[;㣆^mвr )Z.>^_~1 ܰܰrv q$u/ .%ғX5q#jR~+iX8N.Ł`rɌXc( Yduc2zb~;ש1p |kajHȑJ1F*JGwhdڙ|7v3Qdwx$xR4Xxe_ٰd«F54ZAUaUS5囡G=Ͱ;b_V1jn @1WN!u? .AK\r'ܻ2!ʧ =M- %<{SҔxCfs;z4t;??<28o:Ѓs:G˒EXN׻TEZА(?<{9kO3Dl4HJao:fH-T9&%)g1 !}>|׬/VOz@Y~dzCp7PSq-6 ~x@(]byyI2ChwR_'q4jXI qKq_kG5a0Z6R &ƙTTVFL950s VKO7Ϲ7Oic8w҉q)k% Bq RNH7%fluLWy>ÄW e\s[҂oN"BNMrrRIQ72DEBr]‹7g>is xjka[BhYr֡@B ʥUܻ2ǙhaM]J20pǛՠH0U18ӣA S9=S$;ktx>z9ʯ GHj .R$kP] ϿP G =hYbeKT5b٩L |ZuT`EDzx)bkNpqc@<Sf_ζGD#/ 40KdFVc<g,]k;87'+\Tuf(OٟvśFѫb75a¼כсϯlw`fRW< GUphCgM);6nq}sY#I/vLSV6)ڝ4 .Ca 6]VYtvI/IO !BpFwN:ƜpDeEO~kL¯8!ja똑|E?3Z g\6Y{O$74 qs3*CiL Wq#L&AH"eX Zj>Mx<#援1ܙ:B1۹*['#پVu^T6KYhX*]g~$0l(V_yȧ/NH'EY,:i.CPj^LQF  l$8tBu.S{Tajx0.{d{_YE@c-QVuyNFr[u|\@*9:rOҢ@x}29 [5AkRD68Dn1V˫`sC`!TTxc5l<32@rYףp.R!‚~ bhPtkP"V kT4JBvDW~UŦP!nrS??,+EQyUuf#cIDFU@K3ˢpDGd>1?.!  JHM()A9cf4#Wr;Г,zvWOc _*x|MVNڲ3SrH>%=D$bRA.k睂O?B1Ӧ6.@Kg-Zӥ+;H-<5?[ ~32\Vsli0W~+J+Gڄ) Ri" CL$?q.#Z/YB"s4#Ϯ7MLQ(f+QOP<`?#f+Ő]f/OMwqҋ򾒚ZB41εx&M̺ޞDƀ?N)J/=8%akAFXI`i mY2k dvS O<Ff5kD`#3êF;UWt8o=\"'mj> )Ol88LebܼɜrOxp0e7@E`?`,r pH?-(zM=\=9Dr8ǟ}KMZʶXZgQ|ɟu'{yphfA͏|y7b/<yh= * ,/1;ۮT뽶wAWXYY;ઘqZ[[ \_ֿ:4@Ƶg;mwr{ zt") 0V7=;ng:"[}c]6xoe|tM1 mMd'6gkgmWy+ ~`@[Ire[raYa(>ꋬvcop-gbZDNiK"̚?UJ;U{Xrư7~S OZ Zl,Xϣu ,<u#>a_,Pk0q0d ?FħJB:O9 cB[)TL)/^)6t?鈟ZY 쁎1(&sUՄa\?W6{R #e!a*8o]Ƥ?[NCsab}7PT-A]ݱùS.HDX*.gpU(܈zg;I;v:[ :uEvNv?flW}*$Օó<'n?QF98dB(`I@̇] @-*D%氓m5!Yu_/TB]pT~8,"^AbMPrSǗ#Biɥڔ `1s=o`(3jwx_;R -z>~ R""Hag+54+{P$fc3&)+K۹ {z{E${8=e7{F~ȉF̖$QJWH J"Yu@_O/<mD0-.-p#(YYWSh"5v@)wC c+%S.igIuQr~`4 -{'E 12(oAZ{y]Ʒrhu#&@J[g:m}n,O$dnR`ջ :BE-oxܠ*bG.qWR& mbU5 mmfm{FbP=Džߝ* O|0f_Ewq{5rj8Y(Qlxm'p"+VT$͔ѭݭzܴÄM{x5\7 Rn:REԊЬ.:0sw}|9Sdߐ0RMU~5tI)]-QȳV,{)ڴ"&G!Ql KH+UHAGbE}/"G2׆}bJ]~N '* cA7[E74)ȥ_1Iz8 I"P!4s⃂tu|hw::^vN\W7ƋeshIJCeӔJ( [r3߁OݤBO4꽟eTX\~7 >]PrR E;0[4HG|E^!偱}OT?#b(_ ]#bPOQLDj́srFXȘe3 V}.uApŃxqE\ϮXgS*狞fsr.CA@.˛R)F6o  ƴ*ċ.Є2 8rK#).lK!xz`I+'Yv"Zor1MeL+fڿɒC7Zq>Y4) U@:Bul̨Bl!B[IJV#R '&] :vFh!P3G5ǭ]x>n@NyϮ1:FAd ;1+$fݿbɐ9#@n`4@wUE` /ѧKV5\45ē/Q2cIڋV v Oz ^XR {ɖkԡ!+z,5s`VKF$uHJNhnuf0Gg:~w4rs+QxLIsr8U<*/L#nVu~75e_I 7sc3cl_Oe_= M5`JҎLAІ%R4dzrv I/lcrgr#d'P'Nh ˄\2ioep(/ģjAOԣnT&!>E#r\Yc4Q&T)lnay5N&9fR՚hN5&'˰8jgt L ڋfMA**$䴲1(}H$!MY~lՇa-o&dАy |$8; ZP^ZGAO8jn"Aѭ]j`ԁ+7"Y^-! O"xE1 T~8Aܟ-@ -/[ +3  ek۷Y$6oUЮJ9q,WfFRk&r<a~k6Zt|s<~ nCE?P˅D;ĥ.J8Zvo-ăƢO6( 9/Y3!P=UAp )@в~MRQY(C( FPiFH`Ƚ)"zNZjvQms2m5O仔/ bi6n2|i詷bDs 'oZ2=HұV12PSPJ}PlbdQdxCԈG.}yϥʝa#xf~pziKH[V5 :to""n -Sot "D* doŒu\`?/!~C$#2ZU^A4L|ǫ}jbAA,DE0xo˞.qs YѬ4 X ҜuH wQq18*JD{x(x|WuXUA=C7` ,B%ۯ Aǽ|#[K<Zrɗ+A; V;yXʡFC&M u-Tmi1"rr3G&胊xa$"SQvNv1pe)K8Kd|lDUiGYvt'R@ҐZT3~Xg2<33bpYz"ߌZ1:o^dS?&@`ZΞY~X/FD :O7T,&ūYS_ӽR8L3< B'C j)^ZjT,*},-F F, U>Aaiu>iB-Z{5V:D*ՒicE+i>};`meRz6]2!6Ú&ŗ]P IZb;k">N),t!Qi# OxokLzV`{m]oȮgouY; 憻CUȹ P T*}rSgR,XwL~e06:y~^f4b%-u|r$ q"#׊dXh[+4{v,{Rcߕ[I۶V(l,lX5{!RZHxbwH!;ib迶P .d(ƭngq1 CbrʷQᯘc@EI撟>04L o*Y)GDGzwe"oh~CsS&' 0U#!D<$hEp$=Gvq Y.t=۱NYof' J@>k'!o_\ƅ053qq"T+ 3^+օXhM㼻 ؐPoUh10L4=8NuC3گr:Ͳ}=EuP"‚NfCdrJkܖZ D[R'-s_RԳ* YZ)p U'V6r:Q&\y&̙'U5XWpDW"s,x 4e=1A׺_UvaDr>oX{Ƅ`KuM 6ry5/J3HsQ~p" ߌI#|bimD8o ^zyvtiefR P}A>s̏܍UdeT ч ᶎaA yŅq4Ydym*֡.m"ZwFa፤q킹L~/+,$sV`!]̧7řJU 4P ȰS~F(Rk+?6B 8z SYON0cqPkM]r[)uz o"-='R@i,I1K5GԴ.jV8zhkIB/{ݶ|ZewQߡh H8L8=LM/v@PKIA{a her,18>d"tt:n+Ӝ ~L3tFױրμawc dx}F5*@`(REiad)dld1aGyg*Gd qKCR/535ӦƯмHLcyDyg qH!I˕zњz"nk ԨdfmN3y ɟ,үFZo.=# hB<+tǙ=u&(gCHQ07S>JpO^ˊ=KS9*JRhή-fKfZ~ߨYuu)!.M>\0#/]Vys?knv* ' ,|ʦD&> b`#.**x5jRx@Dڍu;iA4iѴFc:ݢ+=ԓ 2z=;҄zUKhjFG|#)h.W/ Ϸs9Ң>q췪G(S06>d Wp7pN4e(XGuIOU(F^}nB6 (q"Q]?\v3'EPesbK#ֻ;#/ l$r%9ە=˕)]^=祟umP@{a:o3#'N(rm3z^vrKR$I]HI}Jo]x4-$݀?!hRPXQVp22EYLy\C^ol$g^6G]0eB:U>Cd 6S|yDMjٙw MofǴ7 S`>\ a+~fI.̽|#4G 4(ɕb/wP<Ƒܭ3@vnY 1O%鳐aW=8Kc"0ȸC>q}k[_yξS,z5|K_v]p gdW|Z~2@}AWitͦj@&Xqڕm bB~`\z/6DoptRpmt_- d>c;y ʛKY;2,U!h'2hAaT܊%̌\iTȆPolƆ;b̚KL5 ]bvS')rjN;:8&@IgOF9qh<_\$Firn 4e :جm=}N49?ojvdK0 .+ֿi3׀$.p6$R<1ŭeg4ur[C~ ( &6\0edL\^z5!CS/%4WUzPc8/0/2ieW#u#3 J]p Ul<3/udU㩽WOnb',buR͋ Uv!gAdwRex?}B+{%@4 /Շ; 8^;+YJP%XuOh3ؚ![Qy1 HȪnB\>f1Z΀yXBe\*6rӔE17۠)4G VV>}O#qEo3Y"oBQ*Ea^VH(}9ـx!"kyAtDZ2:zsZ墰50&<JکFp,A%O.{gQACC% GF\/?B>`x9qhbxۂ \ NYKJ϶g[9t8r~Kt;(P0MhGd =k/edVl"oCmSĈ Ό6*6ޭr?78TvtsR(A%_g%n{+i9ܒH".T9P@^%*msؿĻвւjS-L95M!G~s]Zԃ V Fv 55)J 9% Uf^23zM؜ӠM$6.FBMDDU0G y^rw[1Io|Oc>{0u!sK 1B.=d?$#[㎼Dɇ( B3ސ&F}c^M^ ٿ!ʪ{:S UQc|K qivChܤ' +FKX2Ai"ȉv'Vf?̔4uKLl0^*uZ#DNT{:_ yL]Ჷۜp vOe*&?O}u^|OR= +jlnt㱎P*qjI}]k-rjIp8*&骤(e4(6C ۮͧ#q5^FA*9B`\+R"G4s)+˲$؄C,8 h:jGa42 l$\< }$+U&g#bPum|p;t5jk*j{.|ugyQWJJMtռ$>-=I/X1g#NץjӪ=16?&S;~NGBF[-VA8* 9$S`>G8Ӿ]Ay&|/CHTr`,Tk G za@LCiF.mވr']4φ|7l1!Ջ}CbT߱]?'6ɏ7]*#$Ci_5A\]^Z (?@r1 iq _7}!ˬSy[A^{'u15覨^hb[h=2;PnWoVoŔ3|͉\W7^ .k@8:(_&Q0u8tˋPO2meS.;mg4^6OTXi2o ѰӒo'U"XYڃ},v7^ 3A1DjY:{h^Ukr2t KnI& fh>[N㳮ƀIpE[Lp˟?i9EȎܱ)3qVa/}W{nY4&3L9,C;q ^*'둄b~ޱ1FПq}9(/˦OJ]L,0Թ,X{bki?CD≠r/ë܁(3?P_|%FffU6\2`X+sYlM״i Bt%Sf퓋w`{psðGx)S_ fE"}xXRB)K\@4@ĝ ,)#H@{SvO23?=⧾ơUO+ Ïs(BfNnn2{AJ/B)Ԋ,lM[XЃ[|gv$N2ʡ"m]扅%mmD zȅQ&vG0F8|R#wwsAϻWo X=d< Z)aפ76~ʝQ\ߝ&SHI0 ް'tjhO6kw숮`(~z~o܋?1ѽXRӿf4,qխHɲ#fu><_ 𖓛Q/Rѿc8$k\>-4RLӧpaoxM ;X2(qK#&"dc%s[2ҋ˂{jpxlo}Ig3_=~(9d~d&}VR"H4 Lßjm9w.8"+8a(\-20ɸ 1-<^KAgdCr+̑sQxl!V\8q=M* NA1vnvD_p']!MQkR^X3 /ۘ_i$B7w*[TǑ:.=n)4:|\Wv(Ry Bݜ˦C+mpl1tcb&gJYz4=`4scTdg pz8{g>w6dH :YV£!vƾ̓?%~~:پDzu6׵Axœ3u1z^?pc$yBnk_qBx7~1T~Fel1ހKn66]' L4O,NcEkηLx?tH~eqƦr;} i2#'KM=!ȫR@Z=4-(sQΔma#J,4g`YB3 'G6¥$*tTPt7fS NI/S>뺫ݵ _Ɓp4C%F?}֭s{9 lqk;V6~^_&9j!2STuQg%so"Jcڃ&l,K*JVﲅC\O0~5`dds]`#HiV^%G mv|3sm"'`4&/usB[vH{gOSyIc&\ #J&e=N w8R_W5v lphU*Pl(YK}6L[݋\l&/ʃ+>ɪ=ʖ ӕrZe/6cJ}oV)iu"Cb4i8l &a0)O ;1 Ost;'A3Gh:H^v~0HgR]C4v&-!7AfM5@rV,Ĭw<4\AYc/+wPHjˤ;p.ʣwʉ!ώocC4+AJe[RFTS+oY*^*:[_K_.=B&<꡹Wzcȋ~+iIcPl7D_vP(YɕCޘ350+ucOiq{ׁL+pmixb ')_)HC>{IY{{ x [med $BKFx  Lȓ0)t7& R T<3xؽ^u_#};g|^iV^ä&mQ ^33rhV~9׽zօU^ v vcrS09g/EjJB|o͏cST~}M$P @v~QHmWAHa]sh,BH<ۭ5e`Պi=-fa}QQS4gK᠊_sMCLd9{M3vP.+1 eJM@k_ʨԢZϘ $  px}l^p\Crb}Dg$5) cGysHĪ)ۉ,H"j49x11zA ceIa $/b¾ ]:r7Ad~{h$< 7 I K8&MТFQV [ڟ:&;(Yɴ P(OJ30zqkѵ[0ٌ:LҦ-%|K7(9X| BJnD,SGrzIkD.5=BFQ"kٓ|!*HT O{V7> tY t횄P]lCtBYG?WԽa~{9yP.睸3@wNc$)eL{ s"O'@irXgdHUjVHx@֢:htF~ }SvvlC^t&1qz2ٜ+ 0BpBob>3ߤw})mhQD V;4D mԯRZfL!\Ģ7`޸^hmIH4|`7n9@gSg%f>R/ 9 :l_RĕrQ|=Jm1n-ǂ>|h2햵{ R.~y-nRo^1142닩@ ɸKR'^}~G/ t2*0P^VM?%lCPY(N^&/ drTQ&n8e/C+F2˫,,II^Ѱ,>k,كU k,g޵ZT85د^9|Tl#m #4txn61᷀iuŗ(_[݆^j0F ^IAR~N'RJqX"aQPkz^e5ۋ>|H̿ =gxHcS:m7@KSuf(>'ӅHٔmER{]f &lj  &"ȾRoDU/xH<` Kk8jWuRjZD N0r wwbG𨢗"2/( )~-^%^r)qX,fF쇎 94_z4clw <@w)(}Z@>eF5< %{SȫabBvhb|Qg*.nKՂzuƕXA_BuG4'Ҋe !+Xh.٘N2;lH0\`E ,@ F+15#J=6AI. ׎}trDUp2` %>*[K Փ,^"w!(39MZ_j~\]_Z T^vtbCĖ[uV%>rC/Z^& ;,tyTYm,=bA4}L POe\z"EVLޫ@t qC!:(Ftw}#{yL/?;8Y 踮yk6iY7o$<'A @u7R&/EQDyIk -jQo#L;Vi;c}0-6XYytcq%lP\]}ˁ;T8&ŽoOVZ7@ y!ߓnlr,_4'n>,Zs^\ەG0Aim % %ݩxHyƼSOz}*lPE8Fܨ1rQa/pt:lU(:D͍GGj*za3-1bW/tUnN;85 V,#:pxD 5O#0HN꽱^`2n^'HjapL}te+ÁeD\Cz.N7-Gsl>u^vOQ<' * DH@6@i|7΃F/_I肞B\g0Mz*1+{Kkf 5-@UXi0`0ɵCUC=hMd[&sAB²[R'KxWD Yn t>rq rt@'$қMc<fUKt 1MS.:mݰ`K<,ֻ̢ہT]I!jEƄ)XnH ;|OX)Wt V ( vkOCDC8|XIO}d>,ZU5>eM˜F6=ͺɛqQ W tm6qݣc'4^8@ڭ0y4k7|`l:9v2@f'7̛MߵDcI྄W"d! *0d+#]EHa2`@V )Y?28l1AB口^bԮ5F?㧄d{QU݇ȪvN]ۮ,ك6ݶ*ݴ?_a9&Ϙb‚~e}u,V0211"H4S`ȡk@k%X1SyOZ`HnhgVÇk܆C[ķԖ!5RFZiQv˳}K5bqBvzzgpD㷷=Eohl DP,| d Ugc*u>d2Z&h>ƃ7%tma7Ml ix< L٪ȊTڲC*oe8`ؠqBr48g[|mݠ[#DJ Kunɋy$"ij#)\tIT>ݱVwo}J>ʠP*at*uye {g)9(*wrbZc,(0'.YK/?)4>7L|o@^]魐~=yHp^02L{|9'ylMqw|quXZ1 kaM0lJd!#[#^qgt7z\E3nM$v;M"3fF򢚦o0@yT\ zg:Х3h} ckM{O]_;~د\A״tz[mzQ#+^_O>4B1ʮ=x*O1ɖeۃ:-BaU~[P`)kJNїmg 1|)A!{C(,(ߦs NR](1N_ĩV DjG8T= qW&P>gh!lz"@ETq8xfDoDOA8騌HKL~[^ F'i98p@v`cVy4l+'eeRH;ocBbr~jPQRA|K Om)-ِr(rem"٦>ۛ`?M~v~ /' ;vCl͞)b>~EGj:8W}'so=@ YcP3ȯϱs [l"يȳ&1Ȯ&%arD8DJ!U2FG"UBmWag\_O!.TFYřN,+@jWN)/}YgFzac/uSiu賠_hgFu1DQL4'p(I$ lo$X[-JHĎ +@Ӗ(0">t/h(8v}P*^!'4**sV,xןgǃ&LWzlc`>ihZA[&)u!'Ԣ_I<_\ӉEtw=M Z-*2 =2ԝӻ=Q^wƛGPiUD=KbcM#APU$#h]܇,Z%"k_ޖU/ά.:,XAөnOgĽ:pjo A<شZ:Z>")1J|&-.e92dÈsoA^㹙'8  FتѮk1$xBv 7L==Qx+nw8 '=]a "l&ne؝"?(pXLru S q ؚ'/j=?Cl R Ndcqղ`Q5w|t@8.Tec~ }(J5^nHɐWK[zCU%*p%d%g#15Eq8o=^ҽo!agrJ`*,G}-"0VtFL{.aBtELy8@,Yךr?h'WZZ)$.7?e%ІЏxVߔVdj"H%w_gX:53a4&0H{--uvsqSE:Gxђ- "1䐜Ӊ`Xe7(R\:"5 ,b񒁶"nɇL^PHLnIV,LKds"TmVHBnpWp;Ѓ`OgC4T!CL|# ȟ:pXe /3j O!aJbdxsjy~zh*4Ä$cPeN@YW6jFT ZL u`,[@ 'd hٚ=b`ql('a]9%3~([lNެVP'/تD+k&`RhqLzିrd7ڷ{ޙu\‚ Kx7`02k I-qBކVlW!fĽb@:K; +Dz [IOXa2^Z,/!1p|hm([aNf@MX_\u|>羊O߈}D bևt# ꬫ`bPf}fVA#+O#YQ<9Nrl!PL*,l;@%Y&2;!2.МmN8a f[Ttե\{LXܳbse\!@w8^6_ j=t ]# Ea}i#b"˅x=gS$]>\ۦ]&(S-Y6 F)5ﺕ*XQRG]ohHOwޥrd>{G>5S7~xuOhZ:,#t>y<$B+ktmyfmK: &0Keq2M2 ǣ7U%~hoL١׳ Et&@*?.3G#Y0-gz#[7Jn'e4| dz~Htľ5׹G4p4h ]뢪9WoQNGH2_icvU8R ӑsb`Rl`,j~`-,jݘTYv- |DZdZ.^Њmߜ̅H3!t;l-p5C4`P{ i_;V6hYRQS`MbT{ô ` _12Xy9nٚ_fYbXMҎ6th:U!ہcA-C`1,ɮtih@ CmWEE@~~uox\ $C8mzxIn' pX $*DpbU ΢&="\0 WUgS[IfgQY2i6|+$,bZԋ<&ed978 ȩjuKW8FBv˄/0,oI~gS'\g3#_Q"Iۆ#Vx9HwxqɟQ1Qޠt{FE(SW/"2>W.ȡ*mabՙ?X 2^pWPll(t3wӈK?˭/PvN0xI"#6 ߓ5H02+.Jm1Z z7Ø!^#] TZYm2cr*-``Yz%U{@Kx2>q:Z?g'1:#*» J= ;lktnmMQD_DThL@ 4\HRi-&6D+XfO;>(M X&r=4V.")2XtHpY{zf1Ljm2D זLE 6ƫ7jU\KRmkQtꐃfWĈDJFB,K"XQF,w9<ӡ9/Ha sow#ep(9x8cxr*xP[$ZRN^LFvi1 Y6FV+6 c`= \J5 @P _3#&Xf6񜈚K|IHwclFOAlĵdgy#ص̃x./&hQYguk=&d7a \`O$L,ʵ5U-,0 h85UӼ՜ ]~2\ #执GA.OI$|QܫKmd!,B!>} D)_%j^"P珵,=P-(ڻҫ=!$AǷ"c$hTwUǽ&?9OkLB*mؚ")g7'`'c9.߅..G,j%Q 稵#lX~mӟ.3 7c#Tg[9ֳDwMV̇" 0F&>.J) ZlAH=Yr>lË|^CDN{K{t0##o,>6 }ĝ]FhNK%e+"vNT~P)Ϊ&{',3o(U,m#4{q*|kO3;dlbPs>pP/8{HAIƉ:U$q0&8]L7%r5?pQ~A6e#227$f=!^](0.)~ XS;Ӌr=+U$SSxb("ɂOF8=au *ZAv<9gdJ*nLj^&,$k9b(B ު) W7/܂7)F/VM B4s]aÏcZ?3ɯəFz%g9{Bn "낿kOHJ E)Ŵ߬įلyQwU;CȓG%bBO./Oݮ"ә,&@ڴ]6;!MfRo6`Ωjsm!\{tw-/Nz uąYKM3< =87W0$%ZAJF~|i;&#,IWXtȴ<6oosV$uS>3-/ˏl]'k?8bA0dY,HW{R`fBLxc*/a!ZqO=5YP5{WA;" vnN"X"zsЯ.%; ӈ_`P 5}n6$_50p{Z BaUxGu~О˼m\u :hG3^V~mPX @4oS˓u~udRLv-Qc [Ēg[|B4CnYf2s jѰ(eL40 bP<b@K ԇgׅ{zPlHœ?ɸ;iFS:0oAHodU_"s 2/xe.g GvŇCʦnF )wHsш5{#g!M_wOswoh<AVp8g dgDE#L /r~:-IOHZ49YJ(ed >J샤R^^rǶƗqss@Asf_hSdjF0@:xFT$q>Q&_.l@\%\Vr@P{~ [l փ1b$y!(G=99x1Hv΃ &W>W#<+ r^B@ے +N=c|ԬE()isb#gyM$>WM|k$#0p2m `u$-+H۪՘%v K'Xs${Wx`Ab験Kcm{)W2,y)ԅ[2#R EvH|y"0at嬰IbM:t0虍QVf;݀:X=o7zh$cmɱcKB%qj/,B06T* /z[x!m߽VӀmjL E0͢O!b-hk@%9o>xΨfT<3Bv"hU(N3μ$c"{5 + GG LH`ŗPG%dE 痿SzF}8 uW^BNh[;ayAW3U(-Shk;'=B1I%#-PkU1vEt3oV_Ŀ+&D &vU:8iSYkI׽SĬ]AC_^alO}뢄u>zW8J+JUDH^TԻ R2k vD|H"eԙW!"->oOV#gTImǑ!_?0y,ÚrzSD}8eBs.q>,PG_icϑVp郏EJj˻S+5s ޥ(kze7FPpT.?P/ KR[1]+v#ʝeRwǺ:)1O$Θϱ0!m(mTݍqO N{^u'/L- ZXԈw6 j,l7pq.Vy̙&̩޹7pJMOۛV/,7a`ly m0ވRJcճZѵ4}3?{eNC<*ע0ve]ec#X!NyhBzLk W"Zl-)g2e Z2 6eUA Kc)!q7\=%#Q  ֈf}/^2jZ;[@I9?fBoIwdN d,]d $Czf%{m =3~pX/ 4Q{6Wi]0rCf˫۲2)9Yb8X_R . ^0g7(DvS(?'ux9EQMe3uBSkbixWTͯn5D*2lO/o"N _1h(jg-t+%u87ՔLY`[Ao\C$s_A%or(8#־hSPUgp]HDK̝n\zگd!VS98>'e4ٍ}s0{ R4ayhd)`dxWLPO|)Z!ǫl{D _% ٌQm"VyjzLI)PL 죀$AfP''۠=n청e{w;ߠJOp*<ĬjCg[;wX|?CU8"7a(ٍ^Fq%ɇrAS] oUv#C#7 K̏2,/N=9]Ka%I."Fƚh'K0'[{)Х Ս2]z;$4vE5 }i媧{E _v̤;6X9*qp<^GؿMK\_ ޭT$l?cK'wu(&t/\s0G-D|gA6%ʌ`.Z#nyքa WuZkH,e1!`=f?i44)H'wmʍQA efΔO#UZv*QIr3ir@n#TTBv: fݳ-C?\#=Y*?cq[/9ܣ_~}@]&++3')pxE&O,PKc{.NXh*Z? [}${Dؔ=e *pzP;|Fp[(ݖ29sXICz|K^b>}!":cNXC,c!W( 2LsA̙9MlZ.蓩`]vy$!% ;" 7$DnJ9t@<$p̐9*M<ꣀlnѢo"h ͒/>aG6qu1kD<*o;@ÛzzŒ0J'T|͎| ")1Q"fa ɤGFdhZcP; *ɨ[[&+ƱVNUW6~ 0kaJ'jl m[J~&+NMhX'O"'FZ@h^va GG)mb3³7Zlў>5,y.+{LHEQ4yK)Wf\IGnTtGZ -u9RO@?[4Z8+G,ߴ&@Y/qPoxJsK{?;c;##HUQs˄lHzjSF𩤖k=NZ6淍\CPOED WnhK`5amRk-L@PC(lȉnH,1EgFOwygI6jS' iN\l _z#|~S05C4Xvf>V>dƲf>%\*dHo4v 2_@"}ْ3j,&iSdx,a~23IA-ڵQ!E#Xտ:4sN(djW:S] AA8bV;VMEL!]s':|o ;M_:ΐr9Ȍ8\-}ӉU=85LIL+w`j(xEȵӭڗ6תV`pIlD&QOy=_KSXtJ}e%L9v*^FYɛ\eC("gC_xEH8& " "BFo刀VSHE=XVnNj:Mp6׀B @3K/^T>u`thD.Գ3*:4K:^noQDYt}kC#Os뽫 koW4'PkgYo(To "ȫe {IS(EVĮ _b9^6ծLܼ`i3ݕ| su޽"nQ&hOHz .O r^g#̬`ި εR 杂ԬzY4tDwC$Q!=.vZ4--@9x~+D\OxDAF0Daa0iDC g@ƚ{LݞCN_b1w/k1l͛@mJz$r= #8MP|)õ?WU0mVGU% ڃR@6&ic]HNKh_Vk;r]2,{eDw%)NY07 kYj}0nL(3b)N{qxn+(0 rJHC%1LW-ؐk/mlFʸ_#x4o NFghV'8}.vO!x ߴ\7*iH oo+קn׹|+r76 ˲GDR)=#FR:$MnT*a s+۽X#MXi;'Wj"T:I U9KٟƆtP XŠtJ+eT1RQ%?Z,]G{K, 1-2|ر%Ъ!5zk/ d]Hگ Z/^H\qWhvHET$h'1 -icdm~4.!YJI*0JLuqW %ƫH .-<i\yèw<~qf\ lLE,OB)Ȕ+{Hu"EZdM(l^kaj\r?M* 1,ul ^/jwOx ~H|'F`VgZMׅ>U9-TȏIL}ݰŏ#|qF}~&&MybMJϨi+ɳ/(FW pcg{@{:(^h*PS|+TI79 k1Tq BݗҕmV6?%FS !'eI.TRKC2SZ]=V#Q%3m*@~W j6&wK~q|yW-y%(? ٲR e+0O=^-e"MsŮ$=(Jth̆#Y~Ǣx),p?>K @_Rt /?#g|N" j#pa[lZY͑iBIxuFjzFKXX?¨7GNJՑC# cYD*URr'.A[D71W'B"0~ ov!+BĐIm=j 0=C3 x[wxTqT'a!tHgׇXenm#m/{w!7)t| ,*ǂcuE}X]z:yhm?M<.B__!+F/МjD$4v0eHcaO>8VC9Ϛ;J&*\##HD|j-*Ծ-p+ P6קs|qK =w)]qk~x:`ܱuy!dFڿ k.lXw't3- QY )I؈Ա%{:79 *hŨxrX HEj"U6-DvFB@uyҿ.Xiώ6WE3-LK'Ygsɗr#Tbc0g/,͐8 oyz_%GhMT=)jzQ:gkN;dqg-@:X^:^]8\)| >\4t#K$ө) 0X~O߷KOoKGg?Qi&7^6"ց+]|bIڿ3ajkIXnaGBڏ?O%rT@#_6YOP<%W 7^:Osd[9x]KW7i`V/2u*-Bo-Oɻi Q9T ƞQ*~PkpfW=z^^V^F$>\9r)TTщC%gup7OD3>V-t]DFuVb$&}O[uNE͌Xрy\,WR౜*ܗhB8["):3a108@.O}v-,5^f0$:4_6*J%,U!LwEDYNyҸ*L!"v.]N4}$H[ ϲ@hN#B%,BIEcޢ7,TC <5#cJ6D|nQ5g[rFBAGV+„h9Z}r>z)ذꃜI&E#ʯdvZ)!j0D xlMJ d5$VB) hpDp#VwZrCFuR{,ʍe&D0Q61lxu[w#KqL˖·{sNnNngDZ>ĸWDyaKOYW@n_drrE`X*Q(esVI'>/U|' ]vH=܇X*6zG񡜣]ag0R&v_|4,cƞ70&B:0ټ83Z6 -!-vjL#xyŘdz'&QWi9qv|O$@ صD  ƶ(K)\wߪj1 \mY\J孾`Q7F-`,I޿xDBP3@R.E5G^zz50seM]6ƫmOzHJxA}2aѣR~9o7p II_/;k~ + Q2u/{a(f(dKX#xL2gÕmlIً9BZ(nZN]_b5c 4T>|83˨;'0"Ə֟i7qR52kv.leiSWay_F7B H\{rUO_K 3Z@[ BEM_8&Ї7Q0Ќn-]<. e_̡W^:4eiBTٯGW$6@2 sFcsEsa(=c!K卹:H k Z1Rz) S[N7r5)ߘa EFV]IWNbVGa/ځs`k&P WA^@1H;NqF9E VM"} BbU7<)EM;302y^>=F h#y UBHMhoo94 8d֌P92/#Ëh7UP<-v␜SrSzcڽ|~q #mx"48ݦ?"Ve} )Ϗ1Q9[aV(rS&MazeY$wCeODl⏛{ l"M;G_ 5bW< ϲ&j//0KnYEY=(I $t]ȕ~dyCJbYH$pW@~ERa[|21zEv;t Vp4J^hy;wWEXHJr)1w!ZW/xGˌV&Z)FGf>/m#'w- $G^g:ɑz^?eB~oE6D7j#Vfu_HF1)$7l?ݙ_WԞ3[/Ə`[AO%JnaY;^UcPnttZdF^sR7+H5HaJ( `l{r(`3R2=4_HZWg`!_{Y3 ;]b8uUVm dw9'a 1 Zk[y¿x{@Ng$ZM.xpIՈ-D?9FLxHcm=xv`t.$ƗksOba=#z\auڗQ? 5 gIG;5Q&0> A<a" 'kV5\u(8 $\>E E'Jƙ*/y=!nycqUCx lD-ٙI!dɛC~sf]/z[?Z;Cvr:52&md/^m~<#Ec;Z4!!/|E~ po{\/CQ?(I7\a n:%= *m̅:uK"m]uhϤ4Tߖh"ΣN׍iYt@oNg/%a0-OV *T2)bp-8wvFQz1@/R9qRf20@O S*i4QdKj`KcO;/"8n'Wd~n EM#PX#uGRfHH\dVyңO⦳{S*$0W(iaIp@uh2oGaA3eeV˲ũs=`EEf'Tu;f]J.S4J^H3`74$DR[@J^.kYkGaZg^{,܍lȈ͈W= W[NҒYg<\=7+ ;t}ᰟA";A)BVQ/HB{JDҧdEU'nv҆E]ۄsB 4nxo\lH(n;1[5Be"kʃ>SyEk4\$eØ-;/b۫=Hq[(faI$q*F̋C?q{`zӞ\Ds]~=||K~>P1wy JJ,HJ]GӒnbEFr ThKC{7l} x:[U% WN J>tȿ k W "HR@:W["*`?t% =wo?' e[Io礞I౐B!?D 'p6 F)T,NVv@K\b"i˓J%5 "bZbmry`1Z֣UIt9{+N u[ zb\TC^>?GN})kDnͤ/.gؐ~e|p=s =5P$َ4b)7V`ծ$[eeI uݚ$C< M02>Ď8›D=7calzdِ8[}xOiۉ&_{a McZJkvJ,t;'Bd9Խ]s-!%vAϵEgtJFA&-,\._zR4IwbTJRQ'ÄZIKlϪ5 ~li5[|bdHo_="&;tIluYWrHV,xڇQg >&Pu`t<j˘FL~,tbn3;GB#M~AD t]b ."߸Sf" S=b5/p? +ľɱLk6Nkw+/w2h}\T۬v8u !Pظ W7#?U֚%PbȟrsU6=V'H ]w向`Siט9Cs8 l'9^>AU>PCDSfҽ7)z$l~jrG>9R783p+X޴=7qòS JUY4L]zf饖'TdL@8ƐhAq)[l[l~❙C?D(rOX||%4c]R}&wIYj2֒wKݟ#6AboOSp,4nD+ЬjKTl"a0 JZI  }m} ˴ dAuY_3oۦ[Vm*vl'/&$\'^B b@uv< ޸rnﻆd'wgxAmL\ѡ8%?Wlh<.o0:0ªϏ\mInk{ȳf%R zd5$㗺}FbEOFs 4ʞ'Afj:&o*c{4t%̌vao5/o%F@zbeVqzr,pYr1K5檍F+Pu$ bC] O"?*1Qa>֏KY)}dKZbi!I܉Fؑ͟?k+;$;i!cp ,ncɽN^AL |sFhX@Ä]MBVkݬ -|_㧖Ay5 mSpʷgNS= /inZmfu(AEGT499[ڰOH ț|R^iޕ@; bNJ3Sl%lڅҲr{+s P*^R002uQWo2Hk.m:6氷T1XAGXJUx| *dyxƱ-݃XЍ{ +Jo ; ^=Gz^n( Ÿ٨8⤿ \7>Kaz2'N@w453„7(!]v~~0-dVB8 d% N Q"G"`@sxvbaͤ!]x5 D4O eߴ0 DhPiq0yyWy*IԲDŽ7L?cqRq<(C ȉj@yj&P.Qş6,+-i$k{vv#Y"K3n.7=א"*>qlDx䝩a ⍷+#o2 u]2pu;B w{uw9@=ǣ-U4@zϳ̊EL>8z2[NǘUPIa *99s _0<%3Q|[9~Gz`2|FKaB$Q$h\ Ѯ\J3vaCW)YF O*%:yEзhY$29]ωo) ̀ >r#'Tq6-|~J<Vc6/B$1_"tWf@FS SRkZ( 0_L$ sTL!;BiZ7Mzǻ'? 9l#5<.1cTi ՙ:L&-^}xZ_Cb"ͼY=~Ddet\j8H&gw'AMEHz_gҌ*Zb贜Ѩ<bpEq; w*z铦ލk6yr첅LFHu}Ua[ $`M|rppXlҗ̷ͩ? )?lC)kX;c-:6CR0G{î]uj\Eދj43BϷXŤq%&2>4 iSen/TԘhcUJxo%΢($k %7+,4P~KJŴNuc%| I2Mjop!a8Bfq]mYh?_ wxrgl*pqVBrEŃk?8 sXC'GgGT^N`RɰIQHD),agps0y,oom`+1nMF4Tb@W_%|L5op?]>6Z7v0{ !T3/}is!z/8Oej5z)g }!͈~@́5]& i8Q۴óظfE2 gXc6a+'v%cH-H`<36?FKal3p/9\zwP^Hc |J/ A\w"0Ԃ lYf?AT5S6Iىvi˨d#4eƯ,R *>?l}ir20 s1`&K=QM xuR5:J_Zʫ {~{7CazIDžd FpbSH9)MG'aO+shpdžFVwpjz?e!LQA;m林V{iKQI2SPbk>Hs2=YL2 -̔yʢsKՆֿRv$DS@EށqCl92&P YDl7[:ibS_{z$᢯t"ܹ:Gw;lq3\y0A™U ڱB`gS> M=Vd[Aj7cqx}imyf Y67rǫd{^g(Lώ%ʍȈCpaoB@j eƱy:g7E72.8J&!/32.g loqD{OmΉۅӠiLCqfTBWmJ+?i$5W} j*32 CyTȢjoz3뚟UW/[e|MPU2oSNPj zMHl`$Tg7f ) U$Xya B{g~ZR (a XcBm8WzZ,:q iwPrM[]?=2z 0,B]]YJ]?)Hw$e1se*YX&q-ڳLFtڃ4vi 1FX~ Jz^e%UeygJϝ0!-wVJ\oyjzbtBH73"̀`_uN܎8y'JRR .OEaA~=jo`%}¯{TLf"2&79Հ ]V?[.%z@P] $mZ-^jukQ'- as Q0*15(~|P`׮t/K@2HQ|%6Yb0*֚7Gss3U>jƮtO$sQ^7JY a߳f 2C%FKdE@oxG."0Às'WMٶ5j5XKRنx\WI|/ˆ2#\ _ {H0U*mPzO_m;FHea'`rBNكRϝ#9Iڷ u0ӊV{ a9UoIDFAXɸv0väJ麝bMu!9@@Es 0FTƏAHD-Ql]ױeU"RCh1假K*pj:$J}KZ^K과ˉwtA୉FW*,b|~0?k}ͪ-kev_1 k-zL)̊58mG%.HuVZj F?5D.DUQCvk(I גM޵Xxtnc"B$f- 2Dp#Yʗ: i]z,(Ka{c3@UŲlɚTDA޵UsxnGD{-2M=>#wͨC:֨k՘ThLo]][b7^$,A`>OLǦjz0&nE #nڣ9SX>ކr_ݱR>0k|R/ԃ0stfyJݭpLpgU`I˳Q!Z!2:\^%kwfu*V8jlk1y6~6RJnUM~h Al;.V( ڪ8(H` ̓J,?W8WܷW?=&g=i!sKU9!VU%&_E^\Mfusaj|,BҎѶ 1 6`jp¸zzjj, 6&y@ۧxg-8S[pl?AwaŢP#xS0K_Q'>])ܺd^ s5rŋH\Evplh0͜1.e:t]V ۩TYE dF xQ-U4g#FIM `L9[;vBS܉F@(ȏMh/Һ[:DVTԞ3q_]$‘PX,K/{FS ER;&24cҵwEl :Tƨ%QxLhvP2dg-KV- |U9@Y/Q毤} CT%V<ϋb}"63TYݝ/'|>}]kGQb ;A)[nE_>RWAEh(_\$<|]$M,h9FbBзƬr|l SrHv쯿SXD ' ;R?‘" "+Ǐ A|f̭k[;JXz> nϧRwΞXI<(oc\jBw{Fs)\)0}PTI0VRT~{V4 AQ*+ϝ/>pCH= RdE s~ΈrIfty@6ip~s˝7'5 y B#% V RtHEYhggl-*wl4zux.AR[ոuiM 70 ^4/ޖmTewIkֹbT:7dWlfj=XIwї_v6_kʷۣS 1kk<+{Cb]k{zrRD= 3a([/$ޢh2 ~x{*9̝]09 aYA[5е  *@xζ<{L/p7 wj:z! dH茎:P&©$*!*LT%LڸdO;<*3@ O$J2wE]j<axљVBz |߃SICԣ$BhzR?@F,bO,%w9|D.]1_8(J( J w@˦kws:fYQTf͎f>'XfVRI䢫2^<񿡹>qy*%ik/wyTgV!CpʁKjc܆W;4:*EB_>m x1$#..q-IIO{7Ԟ,[ޔFiz~'䵽]($7ge ͡52!qii pn;_w~;@9*M،!FxDRr0фc2{7FIdu#*ٸ L5MچH 2&,䵔>|it/tL&G䣗> 0jW̅{hj "pC%/kxe+O-/eMmJ[O&~)>5߷9j̣.1K⪐2I[8Bl"NU7bW:P: VZ" =kj PڢZixC,놖Sg@#h\vtPIvW|!z8k >֠pW)rA#b,4K"#={^ƴΒLJ B{[bG0O?(3/DuU3Ly* *{)]F:ổ%MXyWմ_-wW#Os&ag}}n1ʛW *< g]4 WNe;k8EGvoH4nJQ&Ӏ;0|U[{V̧kW/ CuNhaH102E:EDЍD|#YAt!<\d5.Cr2Q.IeQn=DYtt. T ~Ǽ`B Rf M i]/|Q2.^Cb#kqh$gKVL;>aQmbڠY7*̽ɇkZ El9S!h ̪p,*m|K½zh9lQp/l-`p?CE%ߡ"bgimLIf qh9Oy܃iō?~-zBH~k7 Q/5%8`PQ[yشI^DU^nu*Ma)#QQ$p?]cAEKٝmpyz)6w')!ċnʤJߤ;dG܆v0GR4flҮŭ+" >]z+ra|d5иo:!t|;Ս=FQM-ղlFYEl OBGk]gg386`}(3݁۲T xE!>:xI3.x m >X0"k;E[خs:Gd[AW]v쳿LBwb<\N[~ ɰliSaw}<VrʐFYL0.g|[G˥~Bv!o2j@&XW :ǴwZ 2HTm(]o`R $upSVfp5-cUkyY W#P]oPyIzOxC#+KM"d:7Onf3ZVGp1Nb9M|܈iԺQߐQt-GnPzuuj",l34Wh9$5S7%lhzo!f^I,bg#<RFAZˬH1*"hH,;mQ艌:a1;NF~-̼m01/.O.D.WXE;{ḅc%В |I; [,zsF֤7~jEalq!Vq%tt;XxrTuj:ΣMIXi);| +5ќwEbE 7=XַsZ9Ξ1l3`5+ )d3vSݞϺ\~Ӊ!>U~ 'xd Du yEyKdV6Hx`ȠcZiފ8!ve|KT}c)OuJ-)$oLywRcg R Z_RQB\VQ="\n(/qiJu঎+%V^lT 6 rs$c9K,"@H}Lز妟Rh.T,=%M ٞn u7FƟBEt$v.Ö0^2S+`4{h9K|eîmV)u;>rW# f5 y`f*iBnٯQh4wf%&iQCϜ>fmP&3H]VB@'/4*FrM4 !L3s >@^O\+Ć0> .b., ůX^ TXLYD?YCIMDovpR:"i E2oL_ric3a\ fyH֘A8+L@wv"QUnj=nᶼ{kRŨEq"34Sʖgɏ]=KH&Wd 6BL!}o )ySs(%%GYz{AЋRGof"|ASPׂv5LwI={Ht|l_:ןp2iyGxpr(d B Ҋ9lLpҫУ޹wޘGY}URm#qXu{VL12J&\0L~1yTyQ TR+CN6r ZOfP2[xo k(hK{]G 8னRVuY<`2j\SC0ˑ 1f2gzR2o،KhKtd^ qB^9~?F6 0!Gǔ!+&=(=RI r}=3J2^: 3|Zb|GJ_cA9Oa?&kx* duVJ w٢Q6lk?2h'Po x}׉5SRTWu尲t]dwY)ۘ4qG ,2n&D^jz)u<'Ha}u*݆A?Z*IFmBVp?!'Cy7ng9VņUN)+Z6'(FG{nCil+I}=uosElv`JR]Ku܎M_ :XA0|Tʸk4RvbO&oөkCcBt M-R[#_u|&fZ-Ӟʭl3F.u'<"HRDV1nqE6il--{Xx@DәܼV~gZ٣HTAK(xы2:TťPUYjcCVZ맧.hmiZ5Խ:Rn x vNHTMɳuG1",ҫȶܸ ZU9;(8*?-ӶYvL Ȩ[B ']eO1lDՄ(u3)C!ތ&,tp0JuYG=iQ)uY YS9AZ',gI]^qSKH5hy?gYHVŖ%@_Ǒ5 [EP1` LBv>RNj_(A+/^)d -R jWjg(>uSfs]FFU:;c`&>1.ɮv"&&EtFuUja>ˀZ?M" 3Дf"v=͆zɗҘ(-/?-a;Jx2JK:'=eD5Ir#C$ui[9,La R%{ tSB|d amYnV8-MG_y]1IˉAKԷePcn3暔o(]ҰPR4G7ԗ*|c>~lTҕiʣJakp!wױ#j(t]{>* ̪d:p(Mgԍuv%{}j4<fk|&6J7gHPGU-JL= %Xn>U5a0hV2bF%q..ʈI9Yq|,OKpe_EVl?=1ݦR%0²K6"ODWt<$q?R-%|ѩJ'!'7jWa~Y6($ivN2j) P@_[^D?5)^IvWjqq }KJmaӛ 4 &C9S|B;3T#6lPr/G PC/ ,RZ-pr]=Jp̄wjѼR ~T\=u7:2wE" A:ػLv l,p> LH}ych{sMwi#nPVb,B2SSyqgʣiLjBƗMyF=?"Y4^xVy'ǃ FP~Hϡ#[}( ocH˗kv{^A\t*W0\e,pƴT68s6'VID|QO+Pog&ܶ-4~x!$0?R(̒~ܶڴ&LԕŇx#RE(t?=N]y*U @3ߍA'GI'THٛ&82q{f>d5mxi lŚqE&8F0g$ђ4GŔZ(l%_)Q;)vZrCsn 7GӓG23$kYvRj,u$JGgr2`sZWzҴDJ裙Q˅ S቞|v5 70PB7!~A4> ˁ CѪCؓ*5'Vkdz? "DcW[ UӋ\HpgMmC(gx;ǩ'Ce'ƕ?ٳ=Gf "9f#2ciWPsym ם"NQQtX$g^Gzb8k,+vbvqtOK$B CcF2N˧+ygT"jzꚔ-*~DG"z?Xc „t,A٤ⴔ`M SYi23QqT}捃g9!A#nEx?FV"˪5yMf](2\daNv/2 K(;E2̶DF9"{ѻB1ߐ&:Q-`8l5;Ȳ3qP2dt9=P"wLo;i /;![0*O'[ND78/̗+O~xpB8wFfui|a$t:V"`rIA{8N@`N:&x XQ@\8<BEX{.iqogTdujܺTA_%X}\qЏ d`;nj0y-WZ\\_;Pu;5=y$Hn7PveݻMz껣a%٤攕.k ޖRwkKY+.h)!SKXLxII:ZPc4&ҮK.-쇰`o~ g$4&ے)*=` ~\]fY&Cp[Ώ5uPŜ~i(`C9>4>TɃ=ɳcgXY0Ҝ %~ 1`QG_vנ#{"׬0aV62\0:ŲXv˦̄PXX"Ǝ{AfT^G_[Q_ rc}Hl G0;MY"gcחGاXqE9/Eu-$j!KRbD N\qr{+hUyVEaX4Cg 8mu&d.rxdnq/=KnF>v2V߸tsl{{y5J{4|)P$՛?+Of#6FM&|x#=#;.A5E;As󵌍=4Z'ƟV~X,%*6"mQSziS.{=kp4<:$LQ|`c=r<^IGḷ<.[YzK`',H`%&$V?ڋLqE&t'8-#Nxy|5_5D fg=_D,sfmy4B4r C¸0kiC2/,XCdLj7Rd5Z> Ϸ)n'ߊx#=H74v*}k:Mx*NY8_HRu4"g>VD}){w{_Ws[`%*0: tg ZQzZCޘ4zm;|uOv{¸ҔL(PdkSi!'Oę[ٛ y S,xg*vJ1W|q3DpF?4RkܞOE~/ux$ K`X@M,qE +hVuӸ<-Zbq 4bbe[y$82qkToxEB\] N/y]4υBa $ppHb擿>A CBæ u; [_,3kԷsLҦ v7-A~&EV~{ImY٢ߙ @npeGvJKĄA38NRؚS[80;p\'&묭M0?$Sb%M@3E$kK X}UX \P@JyM2 Jzj{}P<ؙ%3%ve`/S!Y\/(\|)Ɗ^;jٿDh+ U Vv܈s :{6\[D$u3Hb V>ҏyXc}# ? K-k%Agq xӋnu2A-[ҧ`+ |T0XGYjf @5BԔ Y7VAz2VqŎYHcZ>X$4lwCIWS0 dkG@JX KNCl0: P)/W8tv|$ g099ppԵCLG ~-/i-v*m9ĥ7!<ϙvK55 -{S[VćsYr7kqezPiғJ~·O'KcpX4_=Fs^#ENkcyuua֢@Qv:R[Uzw`s@eOt|G4auV:#Jh[=dV6lkBiћayyYV Ѡ(u]~h $Vü$Ywq0N eU6ŕjf}jxze?\~hc\^uP⡼m"bz.\U D#hiL'VxVQ50qјICxFʅ=l,-3Ҟ(ݱ^<̖-Ý]RɧR'#$ۢ"ܘ_ߒ&dRG?/JioF/#/߂gJղmOQCF.q#դ';蚲F7##;LYlz#qJJoL7A_02q!ydv/{J ;5qn}r"h4a /ol5A+9W; ̉@*ll3mBaH ؝-'4kAXKr@b}qy_8k}/ϰSbq066v1AD78k97jg9k9F 6μ!x{YK"LS}s GIlz#I D^T3*<;ǵk#" wUҘڢ#P*Ӄ3I3J_IN8!ioi2M֔S͈5#bhoepR] 6Kk 7(e'?'X_pZi'ejQd&;g9 ࠄS]kJ(#:<"^k[fO}S=OW0aO3#Q9MR0WW g&;g2-uQK<klkLHڌjƓE72r*a^~/v91Q2oxVs?:f\OBRFժW/WtHN۸/y^*FA0 e54H»I4<$h[ ̸g_@U9YG*V׿;pbSM^K9`99bCns}3M؈q?6;kӤd,(DQ?@򳩝:kiO: eR~_ox{ۑ30$RH*Hx:ۏdWMM&ߣ@I\[WcVsC&P) `DQ5+m *Ͱ ݓ.JUdy>mFxŔquPτH.xmTj.6yk]\J!@8QG"-ӆ8nNŊI%b EA;#TE6L:oEUr !2: sW k7qhLT8lZQ*!B .PN0ua"ěW-=k'6!F()ts *mgy ܣ+=Y(6)\׬#fqLQ}Kʁ!2yUk8U߫(|o1Maj8Q˘&ܘj:S`+]P&^ﬤ鸹cV%$}iz|=Оu{i8B 8ȿQbB_[ cf@O` y˝ye* u+Cg7̍7;,`r{KaSЩP'>4P<32Va:QVx"L7Lk +T6!*'m@c4ͨhՓ%7':m,ŅQ~mԬz5tİd^5?CsI2)eP+ w(iSCqp{5`׽6ʚ2dzGo~|2%U|5(˻rၗVMU,x,8|I#+6''sVsLM=A7[S cyX y-ÄCFpfxMTYc mQYip / "h+h}6z84g$SL o":EO1~ͅB#R!i Z*4-cEo9_pB| О~IX]dWfAPrM6 e:RJ+G۶HbPF``'p!\=>j΢Xꀁ&OoM(Mu MԂ%. t o`q,C޿`@]3.KU3oV4D;vF\EOV=uK"K%A<=\ߦͧ,3c-9C9Y Id}=:䔃cs.&m}nRs}lO(pcRs4NsMx Pg N0Z-=_dיabX ׺/kdNm\3'5/?;=ވq>tM18ydȃFt~mv_XP2j'izwd  vJ9$,f[(MւylɘU'7RΑ/@(rȑl0rLO6RRp))*N( l/nѥ\#YuJW ['_ÐD!Edc hݱy&t.ݘP+4%1=Lmbc{!]_L6j\௲+9i!/j+zMI$s|_Hzx=չ"NZ.H:lO&kJ"dv#垮0 pj0BXf2OxtxNdLTX4ݬr*ߑx0=ibڼDZK+}R20Lxpۼp-FPk-P)Q8ҫFZc ^cVxoX&9h(Ɠfwl⭐P(N ͜W׫mZml~AV-ݷdquuP[k2]71IqEI *jA-Sk^^X(^Ύ>@0(C\ZƄJ yV2ᕈTzy+=vqw!.?,.o =[`ci?EP]Lj_&"/07qY C)x 5d\TO6bxT6Ad[^!R5l?HVe@5)#NƆ.8^f{7!Quy \eX9G5a#L"$|>%@C&Q8YL{neߕb*O=jnSb%9k߃8dv8:5^J 4JI/V o6n/3b4Jo]rDĈFV](ERDFOU':娓^Bt;yJr.fʦm4"ir2 ! ԈI3h/؆on J-1 JWЍœݔU[W6^ld#$>3L៤X>C {rE2G#valﴸLBĉhrR5: >D&Qmm&O-č $6W nFAX3d`52k@X]hus\E}݄|ɒ3]B-}W-~s.7.m|{eXBDLd_c{LLE2S拸+$v$ss& KB %=I;Ӌxj2cM.E\JL`Dh nA[qEҊ'kAn}lVBb`XUK2xyb|g~J 3*.`+vh;w|5Fxz&WgDca+uٞ,e]_ O$x=?tz̯%xHMn:(f X<9`Ԇ": Mj&͓c\-ב2gX<_5P[ޯڏtK_[-d̤ۡ,c&zC1JO[)-іRwszxr,r##`*{e"[K:y3f(4YbLj <3=ϾC۾S[j9^ZsML٥\$y?eC(hSdM4)nBo'u]gB̚2 x1%6DNN]9Fn߱E~+>QO i+h"╺z#"^з6 e B@>?YM*>uJy2r f!>]fDHv#̌toXHPaE^H^ ;>~ eB[HAEX+Zrœ֛Pt+]1 ΰa1Ea!rͅ{mWY8z{ZO`UL3r]֘ T߾v`5EI8.F.$e^oY3{m)&څ-Y-1/IɖB@=ȮH-2POT&)S*);5:t,{*]B9T{; zAOh/lR/^bk !)" kb_-h\93۵ةC K G9 u퓇¡V \CM1SJiH-L%~?8+eqn6% eG@C9ABxoa{'>y_%vG$%aSn.K]Pd&IC7w/ĔK=>=2s̡g\Le^磄.z Ә^P.ˆsk35sc~f%EH( .+"Np=vwpZ>W^=fD DzP|+*TξfBa&[XT&֔oN-tYr~kO/xlDz1^4K|B#~2msZӮh/{-N>f!y-uN5ikفEYW("*3\,<"pW^'Wm68 %)s]Pʨ-Um6{6>8dΕ[p)HDM).@tYMaڬ&M;"HD;59r_cFy8Z *o@'p3@=RVRq4q .-Є 4ZV yTACȇ#IbK :҈>l2I%qh-rN1؃{rǕJRج,GW? ߻'??tYRo e,B—5)?Js ; _9\q*ަ%mf#|h"M"e7GcNY 7` U Y*ahq.?.-;Vq4̚Ym66%*U}E`je?7V 9OFnMDn\{5ξ dPZQm\$2_nc_χuxȇ2+cK.*UL*"X~# F47K>v[-RX-"4RS_YKWԀ\|C񄵪U- ץЊD}-~O^.~m@z'Ez!i^9D#T~@rU)&9> mfSM~Kc@kd~#̡tYR)npRG8ѰCuk[U&>O;>aZ\Fo+ %%-j>&[{-9+i'Gh'ht"4mt~Noa&8@./2wȷcw>(pQF59?Ô5R ]]c2 ׏Џ?ϳx'ТBZ^HpiN>pqK1H B]8WـQ%Yb`r^v16eNZ3-Z\N8@@ GHJ$5yvudU 7**svM] -k|1)6b%jrgtDA6"U.k$H8nRfq^Sb6}'W::3Y ]I(l:B.IA0YIzV'E7ocvZ4MfYthW'tچg@&4"ge2%U$a7K!|{N&?ݎPdɸ(:Ǝ A |`rml*?Ecjn]%gW֮ǩ<'T@"yS5!]5㗊]}5(S.r D$G"윫r{ҥVC kb;{/8DYrj;d5m͗&tb'I&-TO)_)59ȓiQpffr&+CE}Le{3FՉ@܊ !RvxWtkD }cG,xu" JVIZ "eƹ"/Z(2nd" <#R/GַnA~X@@MCՅT$DJ~}yn=-4]`̨Bmě/(bY+b<8hSXy9SlĆ#Յr}[pk@9]U Eg8:!(-?nh>cf+:F,JRV-Ɯ_gy( w:aZty!u~;$7q|#6U>w5b2Ů9DU0𨦇Ux@@ypk1nr'^s@]?d(1FaI+ȦU$F]?] mFlV5GS]7:†PĦ-XU"~ݐn^ir&e辳Pg؃4{\>)Ee$Xx%uA* GPzxJwME=3bv:>(p[9/B}gY."MZovϲd̥iϺnhpo)KײCh~aHqah#7+75OSvx'"+p ԭ0O@ it-Ke~A`A1ȺН-۶^&w BC;z gQI Yy~ /aC&*sz0tݳƫQx6 E^;%NaEZܞ/Nis8'`I`/ |$' g7goXTh-d=@ZMbZ͆k ^ KQ:$7ks1gMnDq)P`t1>D&$7M]-cVB$ 9Egܥ{1f[d!HA.K3<š(94^u7,58BpږJZ.dU=Qd%IB4ޣHėd{tJ?u8l}>ɕtjB^ ߁vU1ʧ8_ "n4OlSե!ٛyJfmb-:O%sVLԢ^mG\XņZA(GV 98Ҙ{6Fm4 AlRZ7O ,F6Y4R-A =RN2m)BJ^ :B##@ <Q8rM]^0X13rܚ=|-̨OR\_F02s#|lzP}EemН~,\Zx!{`'e#_mD2[ w#x O):٩ BjcOP\DZL}]{6pL# P}"%Wi@QsT^:t4o56,GP0SpB7n><{\`_72uQ&ǡ|Zk8:YNrz~~@uŖips9ˢ Wv[XN<Z_֛5*t[(ʼAR J8Z=ۃL@P M`LKh.MJAC֧SH:IGYiN%X a$@g1`nQ,c(//^mn[RxΝxuyf(/qY|:a |dѪZk=!S7[mUŜ TɠoEA7evwwDF(`ۃcel<8z]'.4?* Ly+/k_% + X)ؑ47hyctЯ=l*1D|7| ,¨5p=^jQMl<9=H<)GXi48c χBD?tkʜ!Ў.<IP'֋pf$Rk'fqsh;A`egl6ߦFn #vyT+G[C|ۢJjD?&lq5" Vx}#Y<yErB*Ń.i/ct3ojϢJR ?ShS &+ʎ~p]h$O8.,[c]Y嘕#s1%h@pI%#;$r`pѭM  &j֗BjF=]";4 fu57&6JV:cQOȭ>Z9xU9" 7_.,W-0en6^׆֯%+4fXg5z~ Q@JKK:c>$dBjtvbFysPw9ƥ &.  `ٔQ_kyLUqk'pr.khݼE8@dF\%R^Tchʇqb^;I74 zz}Oٽ8$keJ#`J:ΩobhNo?lH]`*CM3RեhA+AOcg/4E!ky Cz0І) ,@.^/h=Hxb6hREC ڜL; tp|蒽>^lon扤[4gϖB>؀ha pi IC9 Bv_fзn%x)dZvFimQOi4JsZ r/XIv5r]Bu[*S@9jbN$ Gjg[Aeugo_ϕ! G6'AKF]l6㏥Y;.R+C6XDyY$*է pPEE-$%ڠ̭B0$|jxHdg6-,q|켌hZkv^5q pã/"N\%!}6Ҟ5/rÕ7PI 2K.J|鏫ÄɻؐGJP f[(oz-7͠v4 'FƻɛՆ BHB0(#O%n69=N6j K?*wíDy-p5 FB Ħ9ōՒAl>:F!#p+ | <*?N|+u'Ao0Lx% GЃOE܂ $L֚iKRI#Za5B?i5ۍ|A Oֺ!.c_;ݮY88Md$ c{kE ZyߴJ#SƖ1s?Xu !_}RG'CU"h&A9>89_J7UяxB_'z#4nߐVH&dEQZXzc3`KJ 2vS2Baz9 ."W R;r~2d5 38 b;9P=( b=P^B;n\D|n!+.n/ԍ[4m5aL'p>2}RUi;5rL-O"D.\GqK&v2a>ҘCzxE “ɧ @]"{DqI$c03ܽJzڄ5'k]u>@aˍȠI_EE!Nn"_#rrƵ3FԉjD\PrΕ@D.{X#:w1ȇ;[khLY=1f2 x C`Gt><״6;2V[44(3Ox/jBEzy􏓀b2ižSO0Mӻ"&}`ܔ`DR}c=9ϽU,mD䏃O>D*DC%elbCr;Q@y?|kQZ? n*h#\UkQ>ݺR0 ow#* .BBOD%JDF$޹"~ʶNMh/y  j7, ju-@"Ԟ5E|$슋%@[$g_h.Д)vXNY~!D = cp;xQ[ zWAҧ&,k!+2xv.}C8)t\}V9{ZIO['987&ZZA|Z#p̂h}t.-`o 1Q&&Huu!FaMSt0l / # CMg^|[R2,|KZ=W ֗h[EcRSYh=y #x o+_izT+4twIm%ZM$_,1k%U5A?eCF;mUn +?ƍggxmpҫLrb))HYyў{/\Z-#l?I'}ܙ;B yυbM٦+cL,eѯﯿJuL4DEFRnEP<Ѿ 8|ĴT:5L.V-ŕ0xH !Bfh.$b?j3I뢂4E< 3ձͶ1!=SqO]UT-A~xwTM!XVgׯ{M4lu_kA.w䧷Q< ݙa?|PI \FUzSJw:/"Q_F}מR~s5HbiK I:àSh;<:E00P.3z„XaK ]4R[''H| +M?` a%htEǯIEτZ&kKIW( !Ԝ<{ >@dЃVW}by:%e9"~J5[ヘHQFa|/5tlFkRu}*uj;~Dރ_hTO˔| q+w[[~T2n]c'p$,&r[m$m=v x+EXb3iQ?ÂYf.Ձ賗>@CQ;nCo?}$r 8f kB>:/P~ o-u8V")1D(|f,m{ams%Cf_ٔ" X{)c~7F8?O: Vq j"}I/iC%}qꟹry_rK-R|- :%^#Ǥ쵧&ASyR#)YG1=u9BYKb PKMW_l6Eq: MfbB|WفlSUbr Ylpj ;M*>F資v/.H kz a`y "42s+dް- W72%_aT%I #঻V.-N'9ݰ(KOD66$kNP0iK`Aݷ,9%HpEqU?MfG9nk; e]HInNJ& Q"¶ApK^ks-Y($:Ȥ-&{W- *jnuIӈ$wvQ#FUhgTvY.uX&ƫ̥Ja6]7nkhf uRd~wh# ܭ,*n{GwK;*4 @.$}Y{=t{/2O֝2r)z74m[ &7 n`>r wO%k݇wL b<#?@aʣk$A5LHCؘ,Je\H`|M,3Z^&ɴ$6#i mԴJjD]Zu* K兣]2I9&CIՐB;O$P)}i5SЗ β b<[ou+Mpuk }k*aWk%&{Ao8Լ"Z>P)5A`4ַ̘[I95"j3Jˊjd8]\`IS K$ր_z jY?-z\)C4&(=SZ(=ƶq6\|z,zJHanrKGk2r QkG}ЬL>I;G.w5'*kqZw9n-*ߋ.ᕞz]_Fn_\t'5AP58 D!tNqtf)STwac[ij+)Le}3   d*JG^[u6}3w+r(h(d$>SH39Ŭ]K[~N=7)C6KWY6 :pPkzV1Z4J65{~V<*v[N RFl|6ݔfy1= +Igxع++h< 5*qɭ.{jp^=JW @}+˥]>2r@LдH0ѯGo.`r轏ՎJ{g Oa\^lC}>%4Cv$U juC 'Tddy'ِ>DrĐ%Y(M>p>1pQ;'ȣJ/OqNQF 91MBdYdg>g|?faEhŞF ly0%˺~Y7F/ۛ :"c#FP63F~ͭ*o})0Pku:K4ia|߮o.;BxO& CQ&ISyq GHy\0~"BIjA?t2SΫ gɩ00ՂjN{7.sM ̜YQ6Uzy4H}ݢj|cɰLlї w.OBY$|"O6`|;34†Co,{Ou_xUA:ufMBQJTtP, 1t+Rc,;SafK_&~QC/l$[7C t4뙱h[G8ט/#8g{6J{5 bvNr&iCo0|,Qrt kd s_AáI/m!nMvHPI>ܡ^j\!%"SU&Kl2/&R=8p} .bz-jy_En~wF')%lDqv9}}t&'`L5e='Yo jOkV˪p#xb՗FŔGx6ZG4}wh*3Yِ|VD}|$Ǎ~y)*Ž.ST2;,IZ^dhf @;P;Rݚ3SRfVgCsxZ*)G2i+;7`BjOtW?q6dQS՗a$k`R9F0&O]ta3 XJ*,}ڊyW *sB:X-R_BHYYAq62R"d ^berx$jP j$#lH'Q;{eϗBH/VA1!!)'_ҭddfNWwxzdFJU<̈};Hʍg3 i_+Ɯ4"m+z-chQrZ]74?XȤw*OSX5|3T#~sZ$t \1+H6inXW,_Ocqm˙@[^T*BKߥξҶƲo4ވ̾v.8׸I@4m'L4ZB|Y.r@bm~t$O+H1Bۿ[9\v mVt0 וbZdC"*5ڑ4fKp,hp#b1!YO. Hکc-\32)?4R4A&i ֌sӥ4oU~@ r0g=КHDvabmb`(IWhՉo fүO5U찫VfT"WR~1RF{K3Sزn {@orC tqPYU(udS0ޠj{#t9$4J%!_>X&.g[%{)n './5WT(eCӯn)RP_m5FjY",6_9D5oPo4d4gseG?6CetG478}Pie "Mɓq`z=X*J Dx`ei2|\H4mrfHAid;7|쉢1 fc^`ހl::}̜f$ >2->m|M YS7gI~g#՚! '3@ªk'4o6e~;z1Q:h+k]W),Zug nU=;7dlP(t_O&S"[5//# lT[/{Jcopګ=b̞ wbW12*ػW.-=:ˬ[zB-i4yoEtKG$۔1b)D;4CDC?miz~c' bѤ-57%Gm&Mj.v*dqAs%u46 3s\a$ CGF-$_ƧŞP-r P gw(B`Y#{7&S[E{eRc<!Ha`$h}}"!WGz+$"? adH!TelobS?nqm&aywI?9kz$Y@K;@jCÇF*sI/%B%0ߚRCP ipRz2`؋-QY1%0:<%|v* %慶3=ٙ=mBuf9FU&qL "mDW75cu.l9fװj"F= 3ʤV rf: ds E.)2tp ">[dx(%%zȵ|$֕Kq{-J8NUalXE F5+/5VuP0,J𜈹p6/<8V0 /<3BK?|]ݐJ;iG U"#*7$ ;˃SI f{m=_ QeHHq`J䁜Z@tZ7G\rMf+™wO 3uoܻOOA5xu_dy= Mreq# V2ǹOB{_$_dpaHHYtRjzгuoG$bB_YAakq缲Fr$o: 雃o{{Aۗ)BP)۔˩D!\#0=ZE87$,+:^yAt KK8) RM6z`X}/hXL(,C4ՕgQ=n%W~y`ՀX_R(]C!viZ%K?bćoc2d֑<4e %nVQ1%=D ]}ͪv!fhsr93p!g?ϴGsA!l } lk"vL&[enҥ\xôH2 b~xޝBo:dU=$_''fV1P]MPR9._dX'2Yx,Eo;g&t_ml>&p˫7tqĤ2wVL)4&f &ao1TMљOz Н(Isf5u{ZJY a88yk|.4$AKo3ס-PC1y)FAe|8ҋm@~Xnf,V$XELIgL0=_f]SES حF-CഊuI˝~ OܙB|DSy;[tTpTV0 RȪm2DrMrrt6tjEPhYs7RJ8|7blM,P|1%dXrU2_ Of0)qв %6 Y,t@X *Uɨ(avvC` .?<Yzr]F@4ei 2jRnʰ)!pùtW\ })p;HX?*7z=tKi4"8nS[|Ay=] L~&*&Vp#0>l30WqLͪ>J B4^*7oNo#*ħin-7LvN@_!+rծv7Y|8X)H9\C5Wf^ޯqGDU%c zjZ`!gMypQ*F^6#X+G)1ZMlU["( F5k 4,Ȃqɖ nk:YC{:Ab)/ |dDgX0<ю5R=3 E^OHMj,^Wrފn"!Н'D[݉$n.ZsrSRQ؏?̠n*w&vs6ncfJPL((90B Zo?.}| K=;{_G0X'v&~|}So}C Tʂ7nWj" dۮx3z1L9dO ](w @_w|%Y*,Q` iNJR+x˴ua,At:QY5Y'ߩ/!iI[gϏy~[!X%"cص^7U"Zċd&jXyT8[iL;aDߒVt fua~ȸ!Ȭq|>AJ\F^laBuM"_v1GlϪ6K+Jm|+n L6kf-a–0ϋYq%K6zg*ژww"~*fsm )N ü 8rp"=Ġ=l!#W#߱ tfg w;WM{bVD1x]))MRj!d'/~v,cП͒/&y`-f[^lP|8u>*ќ7>ExdY}[8w+56iIyUݳkB+~f S 7[B:1e,?E'e~RꜬE͢ 6O{ H_q+Q_Zh"[4.SwB6bbOc/&C>'R5lܼORhN dD8uؙb)͆VMC(@Zۆ DRUYB9jrh;P_h-rh ȍu%|b^نU1txI֝Jbo ak2AU|j7>5R<2} t [+ ÎDc/;ZЎnix8Z oRɀv3vˡ$Ls=Ȳvg]-Ar)I_Fkq /nA͑>tkGv[T4wQ큊- L)y@6о`R{tO7d-aǺMcC2sSB& ޢ^mDpi[&%^b#-K'츈Zbъs I朾ٶ.];p^XboIJtwɤ¾̂Y:V鿌6_!%Pu[/ArxӠ~ u:.k6` Jeِ 䡩qsΩ _]?nJrxb_bLʹ+߹xBFpϩRhg@C~JHr.ތ. 5{5|2pK2ԋW+rmG=Zu fpq:yxEjQ{鲿DQLe10f@^7.jȓqrv ڏrNٰi>6oU3pN3ǫVL c7۞~&*ޡLp#1ڛC61Ke1"i:hf ϻXe(Ll|B:Њ> '?aַڽwvԭZ~8WϜ|9Rp{ d)#8Q\>^,7jv;a]`WOz BQ14'ʠpFAbU{Ai{`V1VavM7W `Ev;4Ӭ\.=]/}Vߢ?Ryl"㭵 n5GI$lo43ud̟;>ݺĒ3Jgx|56*\mxEh};j hT疛 ̈́A]HϊAM8{l\gܧ0(%1d+# _lf5辳gZ Uÿ)%I0A5@?e{/Uyo+V欬35-}`a{oFL<⼛jD99H:aEqf%)rX煮EmX** Ќ̠@b,0; DKޠUFg  ܥI= U-_aarib,{C[N>Rg=eR^72{WAX+LQiY3gܩy~L$ݛuGYk1JHUc1VUO( 3/xCl^ ⺱,9fg`!W@JIho. &MHyx!I?A,Z6}GmEK29P#S"1*(!餍IsIVD eԂä&}allՑ, 8biT̰RU9%r[{ךަ}]|}<,y4(JZˀnVbDf-m-a>SQ˚ph4|ɇpۊKsIPi[u%c\ =n @)4vC0sxRuqcRֺ` ,5m8ʾjPJZYԅRe\_,*vVzY],v_Q3AO\-q I RDB5F8'suoՌ0M+/ x\\Ai!}k(r uኮp3nG3_ިdqASyJ2޳ -Z @sp[d1QoJ=޺8^l|VIj>$qgѷw[7ċcH&d!)C2z/3/8 22d@JD`Q]hA)B[QDmo]zWBfQ;f THn|*|<{Y{E;4=U}ƙ.ݺh*k Kمke[wV=e({)M0p-Wf4LUl&bϗtƙ:czqEgV"oqNP"H4?ftzyO^?E6M+ KsԌkc{$N*?~ Ylu_vVow>*V/:vjϐ[/ݐ2rWcBp=֤+MТaebSG6BpCs+ic{n fq}iέaE!6jՇ^{-4lF+၊;j$(`<-\"D<-W&PGyer*U1 \3/)fKMpsܭW?#Tl'-pfS?q.G3nދ"-QɚP*Umf _$%ewW'q?aqnB@0d==*ٷRS3ncڒ yM 3ܰ00@):1 aL%'XeP.fkZ.-)*#8m+:Is JUsJ'X+ٌP 2/]$ McOi [-o/jF~-CqRjT$껏<"ob"%+H)BA LLA`mL^A?;$2v1ynl? r4Y90-s먤hBfcZ2b^Q*X6$uh21 0y.^\sfw Y"|eqD/J/J< rwJ%T O)UkZ:qcwHj7p&α|Tq$V>ݾBo^6ig};SUa6ʦ1lLc)&En4W0^ ؄~[$:Jpwpp0㈰_([E> Z+yR6G"w{m ma=ے/pP{<'\מ- j&Qd!q~c P1Sؑy@nޛ#˷H xO1q3nΑTv!j-LJonY w~03UfSM|b2ܑ&Ɗzf*>2@srBh|-TwE^_\\|ѩ -bFKۿM&(A@{,NY4Ǹ9"׻Gf p4D1:-vsNVYƕ9E."Zd0" "pl?iA^$[G`p|WDr6Utp8[^8?W]j!$΢:9(nPmϮDOxn8l \_AĤR2i& }Yq2g%UĠ _tuܕS5-jʢ|[KxpGQK*"ю'TO5ui ,f?6=n)^򛴬'mhZ7WyҡG| +LiìS:`M4oYw6^ndB(#džޔfyxQϺ&s;W?%rTl4> aȢ{gEV5B` @tJeθSJ)k&(ex/]z JS82϶NفiϠhw-oӃKDYt_{6|WPA7u@ x5wsdi:iяm|1q Q ىVwn_71J.NmV.;,Vẽۑ"l\bәijr(Й-"Dc':VPb]!DXu n7mBʕpc%|^%)3@">eqϑCҳ+˛ɭ>k⾍c:IӦ*MhEK@9 #̺4k;dcUPfDWE'̱?#ܝw`^vh¦޻)Gm` OC9AKZ^ L~kgm@$qΑ6')KrF?޳n6Pz?it ?;BᜐCe(|~D@6:+9 @Ɋv͈vp݋(ʘCЛiΦr6aPm7_d 7obXTzwZpv3l/&̂/ZG.Cr}c(nlǙfTWy%\QWE"A >#0+PP=Ђ)%㷡ռUCFج%{%\`.% e](l-, O'OVoQ_As錫p/Uj 1 X8я*ҐL-KPgwkkO< aL:hJ2s]cA}/p/h !!lO]ϋj$(n4cڝ !o"2 el/j)]Gz,_FЩ+nva)W o䕚iz7`*SS?l[VU*휙tDO_8/y:Jo1u݌;g16/UCʊFzo6Imߣ 1Nm>[3ƺ7Wr\$h|BjVAKUiNqtldf8V`$95N057>񦌷rsatYࠧ6(c%L FmU6#ד5[F:U̹k9Npp#@ү JsH]"h?mx'g6LJ4O^SIv[Ԃ! l~%K8+m/5%OAZfc^c*8kXP}@3H`HvBVM9R}Ss۹?BiD[S9dn>(35E2D!spLݐ>6("f&n}`v>ΊLd?rk+,>gja'%ɱNSJag֊寳܇hr wX:|_}ۄ,K{3/:f $ -F*g{hk(\lOx[#fcXl- AuVޭ`wTGEȎ􄱜k}1ҾD_L#~SZ̠7hT/ބ4aU&v%w%i>-uQ4IJ;q{٬ >Sgͻ8p)-< $ ۘ S{gJJL3]r=kZo&@eY$GP;l{.NMEHH %K,Ie7 \2t /}&N% nD=p7I٭D)&S]je?wc;~]]E飁(kfo h@#Q"MtDfxّX]`؟w_#m^"8b7/*•OGL̃N?H?_ܨǞv$jl1+HZ*xhC$1Nz^RM)%-oE;;BF=Wvw'7W,:Fe:X' H0ܙ˿fuz?{ɄoJ#El:;eNz.I\}zpa;ZYLܥ*Р]CIu'38tn7F~&<]wzR69}H;.foon3db/V>Rx&D/kiGj6zP@0+.HRΖq^jѲhEAry=:J.RDθ88y~Kz%1ȵ;GDy(*5 ;Qa6TAZ:]Je e\U ZmF̲VH 'If>U)>SPHZfSms2p;toC-Ғ-i!}5XK! ;Ci-faP%9w b09VEg3_* C"Gn*aLw]2{8)6v-y(cpJ.b.sfwB͋0f2c.nxd8_5`]'*A5O @!%:rɑcf1zzj) I[2J^{?*6अtSu)~!.,k]$7U?hO"UM ;ySi ;@-5`oQvyB;Jc6vs ȍ\ SD3VqNi9 mr^/; . E&-%A@Ҕȷ|AÄPT){WN X2%wQ%_\OC8AD*{&RMTanp׽`B4h$W-#Z$nD*%]Gg&Us #o+ 6@Aլ6UYAAdu|uqc#lZ&j:*iϳWyI󦥗;BȎ@ wԒ[̱g f.ojOۋS7=K^4>W±# #|[F)› ^nT)9@ͨ9[ȭWmá? Gq∸ xXX¹~Z+TjϵlY&8Ո[JM8DVaR~ pwK5s$٫@X \HiV ,иךjck8sǏ-amʑ:Jj.4vWU5@5R|g ] a"ؘ+̪۟W4+r` iurD𾋗黼>IľԭkVCxXk>[ '%:Ivw?>qKmU;?I9e&Յx4>_64"1_M:m&\^9!7ְsj| 9ioB`'n$T:RϊAP@9t +n?Пғ^%Qg`Κ>M dߦ"8mqh^/;`SсKQA&H^|-c5)i1oV7*,n*ssEkXU' =د2dyS&NP;n_X|qޓų&r0O1~(#/jwKcP,]Cs~7`J냷CΝ$Ɉx\|B 6Q?lΊ:.Zh\Ym0لLxCy5o,%CYڅ.kA GtY nc'Ū _ ^'8cCuv%GI{>a>=Sw }@C Q*,"I38Krx%H ']š]P*[0"Hf-YdVz` ?f$*$5zG.{KY3?ìvi;+/Wۙxv:kRF5ǏHS,;jh?_ :V+*|FOu}ڶ #l94-˦3uNmk7/(Xc!'TLA2V\^ح&4{g$Z}N0?s^,gBAg\LiT7(IGỹu&vaiz `Jκx[C&rOH$K^\+BƔ ~OI+d逛^5/(r,[_ Բի˫g"-=3=MЯy%@H0+Ua=~ 3l0~)mM˝NZIP^Wɣ?HE^:<\H<4}{ Ȯ|+Zx>14l%MmO4Yaױ*JIՠXؔGi/RhH۷[][Ӯͥ=zRL}>.+dcȷ)L7qA3~iJ2eQ`\H̋}S3vf "E6cpȅvq;$t>EqN9:kp ,0Iztm0|c/*qd+9*r;MOC:Ha%+$ۮ:' N~zmE8ct,.K=4;NL_G^zyE c&œue %!Gߋgz](tokܱ"*Q$X:yD-_-qW/dt4%,֛ޘmk}TOF^#h/9'oHC5w(0=43Y-G?(W#<J&CxH*a* E~<3""c3Ak쏀~.u`s)1Rq2PQqhRG?a}F+E__Gyo[`bw#P+{eǻ.@((ɌY ڭ:͔R?f,aG{HAM[[%{ϣQvC=Cś^hdҵf9,J{E&\ 7E95Ď܎on9]}(꫐ qPW[^Κtu1 jьM8Kj} u2\S"XP$ 7r4PwB%YD}D:R/(nfo\]j«NyyTM'sAAj6pXaJd+ lj"wI& )*p: AY⏉+D ۨҺ1Kdmc7a,ㄤ^]_?%ӪYk/lٗ wڼ}+bc.9*|*{\h?< L^!OR=f]Ġeyzc^ԙGxndv߂Ws{/Ηc97hl+.0껳[zӳ_ݐX>s$!?=4Fvq Gj _Ťff<EOA,2(G3v~=|)ֈAĬ݅U./} mC$+b]^CPމW "jRgP:X+|&2V\oM ȦzFPa1nI 6̃`/HG XU_ϫ)bD'zy|X9\JEt`JT) {Zx|z B}u* <D v娐9P)`8&KiSjHOO)F%(p lQ◃zK2|IZHiB樬bOdL,z㻌,jcJ]*aXd <8p*˾f^`v6E!й0j#=*CNcQjrC.FM%" 6gOmq|?tmC L <.onX zM[v\}.|'܋Gi-w /ϥEk  (B(GK%DNK_U ߧ);5$Rq,;O?d]WRc]ʡF{Q[_BN3+` ;G/-rZոI2z-8gbu =YRm)q3_Cjgv fs8KJ -5\.Ŋ|GmpZ]Rχʝ|2"%n5f0{ E"1->3-7$) }YgV? yT*H*> Za#shd{v\aD=ڏVP. Vv.?,I xpb}<0b<o a5ݪǣ `qN.mr&O@"66GBĴfֈ5kBb쁏X~ܠk0}>!t!%Us9KOcB&m}(fIg]mULUXJ8{INHG m, ;o?v–xt#(a[#JzBC-ֲ}T+>2-WQarZZ/=nFD{i.!޺t0H5}i%Rٛ?gΕ/a% .aI# c ci"̝ئqQyi< "OO@>TA赮@Y}Q5nw4ﯝi2\I r5/rM]qt7Twg&0K 7 -_Jm$0uP}%-iR n@{;H&pPז `x/ _ 'N.bVf^1mS E!X˲Dp/H՚eTFZВ)#jy!ۅ8ɑߺ"b@"|~8q-7w@04hƊ{,j=O\AD'}4F{u:sOBf+7gwzI(،RH0 R]mTK銞g&Aqdž*/,**$sIe 0{?Kgxĵ\S>F ҅VΜ gRۗO+ }h@7xV맗룕QFUnw{?h%#>u3o4$_ʵmD_?qDg'PW{ E!E[%kPtvUD[EnWMk [$YA}~SlD/A2-$ vȮtphU"Kup34);;IA9.ךwR u?g}Bk\Hߙe dހ J\WYB C#*v*t;_'ɍ; 5a# ]!z?ubS!1, !uB> ~HzI SV} ɠUG?[;f9+9*w.fm@Z |{ٳwn)\,<0Gd|rGJ5zͺKkx C:[8SD-3X PZF/ x ?3 j g_ S5T;jsⅵp4W^N^*j722mW#θ_S#Qv JF Q 7Џg]y R)d%׬xIbQp#V <99@>\@HľC _[B 8d9J 썲8xyr[' N.Kh/GRƖﻞ#$?r5x:zS6 gleL=x` ̙lF2?Vr#wa'6޲,Es5"l&mǭnT^h!˛бAA4 q#)g@XQT `e}-1-Zf!z㑉ڋ%:NJ6UeBӶ<>q"G{ߓFZ =-[sϋ5ϰ1mct\ D=P$b泌g%O:W,i`O)f`I;'(:ؗmcb%V&NU?QvXq]`3Bk=/&Iմrk?3*FXHbvGUQ E xl &K@SǬjM`b5ASyK6Zdf !I({ _A$ :>5u .YJA0gm ]Cj>7bOG!ޑ9o%+ q>ŝ-}~W&"1,tʸ[ۤql5[B>q orی;ZsK{&>sh*M+{\ G.!G=-#^[P){,CvM3z=8BE 50w2~aE:F2Y5OIl[<-I:|B/nB 5@\k"pл%ʼn0G^Q˿=KD(l$y.(C0,pg6([G"IvJ>-b"D.qrzw|2]471#M/iN_Jjie]I՜Y#|'8qyOP YCeR}Z%=7ޜ¥ˀ2\9E׉reo' e)'&ȮjrpR@ бd}z*I^f1"f{(.m(KQ\OZ!%t%E<0$P- Ӱ1M:X++E /^f7^GpJYo8Vw}c_d1Aog.evYPT9E%p8m%&rl~M7`8]NK J ~?<6 u,]f@NF+pSymf(\ﱐ~w/}j`iJ8T@Rgؾv((oca~VJy-C|m@zxzNZ ©NF?^zb4yoQ#e4L;12!wӺYDWՕyc Գ̉g?w9PKBlŚfIFmPo_T7vÚ~ו09B ..]gq\'fa!}k7|pJ'tēNՙQˢ^.Hx_g&Xq4Jb͵,v12ቭcb(l;>衐lxt7S|UEBʯ}{aeؒ"W&Rqvw&bg=À eƒ?ԊĈ;ċ?噁0;)/D,'.~zJ+P@_s_ʖ{DuQKYA'Hjr {7®2Jⱴ_߻\j*37JqM/Zɾ/0IҺ'.K }75`|Iu~ URn^k]ꬺz$/zJj-)4&6 Bn=+28EAݘI7'+؀X%D:ľ2RDP ֜(9_=/ЅdžAKvR_g"Щ`PӤzҎuǬAF [&$e[+1ԙ6G$$j!7`slToS5#瀹>b_Y7cWx2{&6mj["]|ECvf,0 Zq ;yP$,Fv뿀:F`(lx'mOt["o+PE-Nޒ|$E}$ʮ"/}+ nL/}%R10|)I1 AK43pQ59*z/G0[}>ܟ}>TAuM뗋;׌*s]į&^HÎSAeMc9;r_ʗg S%Fs|ϛ*L>_ls(+d`H_CpQ|sxI^ TT:k\cy&>2; #;Z; =Y85 c#,3Pj-JfԦ5)%P_AG.&b4}'`5x-]δ? K03QWYlBIDrHXj~X FKj`^Fч8 vUBnG%l|Jh)0=qU]g Bf5em[C8ޥ&BIwW ,ZW3:퓱#_9j5fh0)dGd ,~><ȗy k.dBdզng0tXꊎk45WSvQ(R[pkfਦPͻ@m^Vg3At*5N-[UUC,R9x,{ @r}/YO4ޓc#bNI0irHͳ@UÓ.xT׊AJ FHnr^9aW2L,Wet ݟvj N$}=Bpiyj1aWS/r;^PcFlLyKP/ =ynvhv.2t3lrʿ4hV^(_i<"D2&3Kzo N{W ゴ)q/QT`d#Gܳ0R~V A`*.MCO;C0|sȣ&&$)ɂVuooRzEx꺛B o}bx%+/FRgy'$@P^74"SG[x%]\X1N) 9NQHp6]M7׃Qadf.Q䶳d,/B7hlH Q $E@URTq \aw=ƌ+P,x㘇٬/m H}Loɓ8;%L\V.cm/#mo`؄wb4W4nN@A8b>y5ܴB}%Xֻ) I sq4' ZgL3CO2uBjqKLch|ψ3)4BPϨex~ -wnJkcvly7jZ\&B0WլDE8n)5ibӳS·/&ʢQe!K5,@7<\ݖm}Ze0`U֭czL ~gX:;3d[$uz-hR{`E;>!8EQMϢUdXJP<=[P]9[T1HbĢV^zV!8:]{V-q%G5y6Е+#v]xA۔f,8LvkG(?}z0\܅3&0BPcۼ=bEC@#a֐It=%k v-N9cZ_Špۗx%`/taFN|6;E ^#b h Gz8<2şOJprXW( jueN_E[Ȗoq–BhwFrrlG[o;F̗t =Js2z`Ų U>kïu`,2b  =k7-.5bUEUaWbiXPoE^bNC}^}JCb*Oԓjl#6?P=[fܞL}O1$4, ]l53Vv~t\Pcx'Y}ukݞ+tf7E [a >,g ;YXhmz )o-4!2yžtC٫Ae[ /Ѯ(~.\pcu!deLJr1l?L,ID^{C4*OivxtZ&L{yЎoNS8U?>Aybc3aPr'$Xdfᔆzbf4Qx7\N!$`," /pc :$/5&ӌz*MUjpTcD}kG ]M(O ƍO?ȧ?p~6{c&{zNg>MeFX69/Zۿa<|6eIh%er!X$͂1BEx~V g lko|),l@9[͞OXO&GRVT%nhs7"}fuliW!PX+ES&[( ?&\<& ԟ z?Ի]r $ XʟPDm4ed{lװ+ l19/\S4>5D 0G!mRr'U>kg`9/*s欥K=Z>.DV87&FB:`0ҾpMT{fyDy6Ѱa<@Lޓ:qR Җ/ٛr*:h=w?y7KKΜBV:;HNV_D3mm#m'`vgRʠcM;V'T7H [TAD]4J>~lԂ5,i 8FqH8t%V.ui!V8Et\xd3f@쌘"x%QVʒ``y*^Q+ͪ8?6p=^c#QC*>!oT;ʹdn,E9hdb`VB h^Z?o ӣN d1]Ms!1`P4ԁ8 X `/B־R)RL,C?ke w^1ݹ+Hnoc4ZCCVf2`%9:ْXvװ~5ѫvYiuI!ۇ) a_tWL':TEly|[@%d3-O5-K?_p7W^Mji%*Js2ZS'_Ϫ %%.]&d+8,ߘٺj {~H&W8z5&"%{oO-#4гa/A61[W16Q85K ~x*|hG%b<4p#}g1g5Dc Q׎]-\10n6Qm'A0wߍ7X/.^"l εt ,(EG2bQ+Ya@/ 5n*oiyOL bˬ}!3ܖG돗eS)FreoBHQQ\y}nxr4X\8ñscsVJx9V$_ ;ir00> ' c݅K[J6$$G(X?+U%Ce'[74NXYԪHy6J8!< lv NtRCkG2Joҳ6ЗR`,f_I{NLt@~8|h&5 p0m5B6b{A1̠5 3Fm݂Hh[I%jY !eOqsA8 }JfZ a O2޺M8;wMVyXꀾlSMs>G5`n'R9Ye6 V!;d0t{iȲFL>LM5DHrC*}ڴÔYA3*i~`lUTA +JUX*v+S}_bۘS{7SH:ܽ ӹ^EEPgN4z5 yo;JGv{7ƦMC֞P7!(twNhǂ(Cd6-Ȟm)8Q3ݻ~rP.iMD[.*aހίd_J5-kg`u!9Sa[xj8]h8UщSNRLW`H@'a%yF #^EV-`H(Aln*i2QH*Qfϣ0ל$s]Z KvH z0j -q+ߗ'RI~[ƺeR0γ/tS178]#K5s֙AMg?A5b># H<"Bwe.F8XV|Q\z.\ӟZ3aSrf ]}(|E.,5hyi9!0kȒAiJbİo[:D){ *&lW `IJ=,Lt fbmwh'p677-"<^ԤCx|xM7_H1$Li/C{*7lNfR6DhŌMӟLE9Ǡ I3C 9 adwjn}&~q `$b5l)RyLvn87홖u'֜&?ld*vXT$*QUWQ+$@6qE}np~(2]L${֟τ@(H͙vY+ 'YkBM?jYp԰͞;EMNr35 ܫyҫo8Ise`}g#&?ruO-&>n!{͝6,xLxրVX>UDGvq1eRa'pgMĹ[/SyZt5v@ KS-!~Vs(oc ŐLvOvE*HIh3`=hC~sd}a jf!.m=i ENC,e)Pҙ;Q K[u[1ne *gc\y/ qD\lixk-0/8u#9R:2m#WlSzl܂mݧp@ԃ8c\-RH\bK .3N$|ԩRp9gsOm|q|ʟmW 5??tSQh?JNFps%f-cAFӬ-=Ad7!33cL]vK_#T |8Ɍ|^]7=ozA`WLuUOvζ @g^O@.% W\g1h3F; j%ug,<~'> [8p./}ۿ'zv~A<@~BQw$ë#5̳-o0y @{w~&hn|ޤM$Ůk6:uw zRx=(W(@v*Uwk@3ı>{Olp8 R'^@L yN;+In҃F##T/ş } ZV8D.h݈.F; 옑Hb%khd-9Vߏ.֘S V> A2HyN%('d_O<r{{| {EftgاePWQv6]buRqL噛DO+/c3 yx[4aSHj;|bE",+s(JL%d_P?Gd .$7V RN 0q>fu-У̷7{}Kޅh#j Aw(ΦeεW1tVopn'r+Q< Zu Ԩjvu\9m6+T8۹Go%yDvbư?dnoQoIKz˖KT*FEIG verͶΏCTэ؁IJkq3HVPIV`/rϮ2pez,b<_nwb:v]A0KG$%tZן\-b6usZS̬N$7<#["GB1h7TvC!t]J:{:{u R6U =/z1t6< d-RDeI]7 ,c6K(5G`6L f:ύ&8˴O u6hۀU|H#2lOҋnUdq4*K [_nA:϶ڙEV|I!> WP+򗽔̇Ld.jw"|ꍴVSZޠܛE -q,IP-g6@;:,'7a'J:k B"+UU)}Icupg$65^5{jx0(IՁ5. 5;1HP,7 apt;7`oƍxTF2CTZi %hPs{<("CnV=@nyy(;9Ǫ;v3(H`Iث]e^@b4qHloHK: pziC/e[V@VCgM"IJ%uQU0I8RAW>se5LEP_pf "sl– !"rh]@R*U>,aK$L>Dhk&z_ +,7[uȨ'tmĹښK,rA{aX\y3(\TvY˛g#c͒q^`vE^:2Jܩh{x(Bw},Of> 1KMLN-eivprLףh *7L6q䂱w;x5+&JGSm٠z\S`*JB qP|m)y߇ywdw8j ljv9S~ w\㻄Ao:tJ~z'Fk"Ylf:C V5 3zTSЇ2{YK E<%R6ax]8_ n_WD;gZ _<Y`#NKtl5)3)@ŵZ'rlФx'7x;c)?=lYkYU]|u ǎ&}%.gƁDEAD _C^r;7 F&xvw%aCk {,'ٛ<߉@*6%pE@ѨAKVul#fmP%Z36 xSwzy+X5-bxI `tEd٫9.NV .fiy+U`:힇v-v!~vCRsݕOH`B1"MC(;/6=KiDD8uNςT˅^Dp.vpzkq$)Wx+hw Ń*(SV)o [ʼ 9n!~Q~V?$zӁo7o1id8=ޘTo+@8!b[,! CaVVP49}kGm6=~r?ҿVtU ]*(IMk7=Joʩ{[N$m6"_EB" XR ]$.N 9B;˓/l2h*bs`ɯVTPr3Ŀ[o28LOZVR~GJP ֡a%}0vl=Õd T3{-WQ$OHzaadn.[fhNaĎ\XyxQYFobȹ<~y5NK[{Pq X[Z%20l4F-o.p0}I"NyBԺ:>aAc,HYcŠi7 >6돩α &~&4UU5㳰H hz.Nz04Ek( "Z ;X<t`iIТc\ȝ 2_ ?V$"b[6SM]tURf85'ڝlZ`\=α/M;kY.~ѝ;h}ZsahX3,]g; 28dΣ0{49*Gw3@%*~+]@j3%cSgR"D}ARƂ{.K|Dt% ]$4A-7*@K1ah~}(WGb}?"f@v+BĨ^L-u!"H+M5WlNe`Fk*7QP WZ˄w7ˌ<Ƅ:\9.h`ʐ0v̕Uc3KۜgC< ;g&_;C%eGqUh{_M7؄w9-h1|N=T3dRFT dĞsE +_^D6ڍ?m s G1@?>: m$wެ"*yWm=/lGT-p:wgXphIlԠΏ|h͕0a)H+ bqZI1tk9)z'%X'ͩ2U >涎OQZ0)GWz07<9j EX*.jup Y2i^N z I8D -kǺ='>|#fx?7Ƹo=ܛT58,=lG\eS/uFw K Q~H 38nJ% g.x mDž8( eډ.띇;h;!ay8lW5P;OsQ9"8qh?'u糎qeT@G 7"}a CX U87؈|z:wK*yַם3y b:b -xH W1P7[uMvH/lO|`ES1ǰڳP}m2ap3ccMxnjԛQ&6 dq7?7CJckDʩ&@VXC!䅸vߢH퀠G3K-= KߋVZ%q\bsNa ݟq̴ŗSgL;p^G~6pf<_eC+ Z?_xYQb|6 t;Q,lQ-a>4sԝ?.-Lee;ůeT5n6l|CmIGzEo&#QΤ\[{PYmmKyx6Xn!C(oC&p'YGQ%Np❡DF p{YN'Vv1Z3vL} 3;t08LԶ.E 9dx$Zܶ )8Y/@׈"aB2hDI]"1G\vMߔ(##^Uǧò45M5VFu$(нP8ʨ  /8MuNJD*>ep41zB|4 lZ!BF.q(etX-Y`BXw]2_g;0# rP7驋jcq6K4x |賳tJ_z& Rއ+#MܫV,)4>/SK*pHi` (]޿+fu C]0[@O J\+IiT. <'y{(,euK0Hftujt ]3cV_c~VFHAwM$dLq_=nAp0u4VW3 m}k4%?Sw~8tU ]X-UѫIh,;dOcoopLcJC.'Ef~ZsPz48Mc5KY##Z7 ,!Ջ!.Z~?w :\1D=ʄq:R 'o pBm8WGSX?3LbmzڝX̫ʸL%JgtX)\!|1^ ,HY`xsڸ3sUk~3]g2Cc `h[[sY;ז 쭋j(%w#ʦVe~A<+Q 3ʂkRHuj/*Z)˩9宄iJAa% 1Ok ͰY"BqK DT€dٗCZ3ND"M/\`)u]:8m;`O2 Jr.`+iWG'^XlQUEOQ&% B٫NkPQxmKǜ|Ka3(} WXe8yfS[znx^#o[L81Y ci/ L7qTHocKH9}Ί =00ױ+K;ěyS=$Zg$%){CBiMr$95{i˿Xt!i 2/XPjEAŢ"3m/DDk+(F=67yya1 HuX>&?|dpϱ?Y ‘MZZx{U1BX63.rfdN$.:&d?J%8ne݉JKM@AH6wv"*ux UZ<-rԐ #9ި6mZ#)et5| k4ASXSūբr<ç%AHr{Agz21-Tw7Q&p=Wc0A,D/CFDo[i{lj3SF"jvɹKqt.~4Bv7m]q`7|ooBOX =t +xV0(y 6W*nO[Aę|"BBe>dY4흃җnDIԑaDXkP;`Mԏ&@6,*X% +deITJ_O,S(fzU,7#tԀ9;5Cے; ͛|"uQt c^)Wz՜㴍3>; m#5^3̡(3}ǟ32o6b<Jf)Kޭ?dNp=YewD YC/uxð ʡ|1 y09Z XA$;.vzmWdH9-k:Hl j 6tR Hb}&i f*sd*;NeU6 (t\=˄/aڋiQO+kY#١mHߕ$XyjV \)I5O >>}QRBgmH`kJa`ʬ/`7d!4iN+0fGx\D8r0ΆO3]$ʐ[E3+W\HW1+MFDijDyCa)2Ly|-:G` E##j l[J?D*Q["9\2mT 40 qki68uܗ*H{Ʒw@9s3)#7EqY}-Cw+k[wLո[(7*YP"৾:/̶6Om\璄d8dKwz95{PW,GlBE"5F*`W.*NJ@UucH"H)K1i߫xO6zfpgVO SfoO.[K8)b JxPn.O3z++5 ͻB8~:]j"?qDN8NOɬΫf38-&Lg.,:#;hQl7ۊeӊG35 24C(gR5.[*l_tϳBC9ȫ>vAmmw,f?y~ed07YɅ^ܙ950b=3"+~i%$|;-\[3lz#H6XRXDg`G+jf\g%"2毱&#./ q{C:FF&V֟H޼"$40 #_ɩ"&d,ts ?&l0(mXW"Dg|ʭk2PREx3nt{{\فsHꂬ 3+kOu' Br0o!"Lq3R{kc@<%ɬ6nKV yӚ8ZS:}Ep8sKpAހUSM snBn9Dd@?zY0pP]521:UQL }1>d˳lQ\,a۸_)ͮܥ>}} \7K)Kݺ8.ŭ0H=v"Cx{e@5HwAE;bـivJ%ݤ%mdΓ]Xmз#Ty(SJIᎋ߱d';ٞיS:!}?y.b㻖ޑnL6WPo.ߝ-v@]zgL^h_Hw,mAIދipf(fo1(?; ff :4Q5L PEEx@odfh}}r4@k{v>/o7Wf>p%-m]PZyQqSdQqHvH|%y6ΧYNrb>v:7h꺲j|2|qyh4u*:CFi. u8rzD !@|E|m1P@_ Wsv@jc_'(3B7ADbHTb)F&pn<\ZjGgF0+pwv8H1kmeu|vN$~TƽtA壋m)7m@1fg 0H5/8o>yc+VjqkbV 12-2e &~$ ))咵/2EKc ˝{QG;_|S3$BT-oq2 K u!" 1[nƞ`%ɚq*Gos,7N_쁈2%3Qk;>#Wk .j*$-u!iRt ~dӀbGaX?\iS d24M:<]B]m(J׈)c\JB9VKx48A3B̚^V$Im p5!1+9!.+G3#M* IOL! 3I gW{9p]N,DU)+)@W<\sxꬃg^W/:hlbσ  nT\?fIެjRJ3(z&9;3 %`@'9:S0y?W,_ h^C5LELA,%Rh@i״JMƂZ>){Eײ3Zl_W̐D? d?KY~N!t3ȩ^s4P ,`0o{-d >ݬ3풉[C\tjY0kxQX5UE[Oۚ1jt 0ʠۙR)43cvw7 C7\c U)z;-` mLr{,&^E7zZ=jb]y Tfj#w`:+XXGc&6u/$UIzcȅN ~͎>㗧V+"{wo2ZH7?ТF4^\(g9UcjyoDڽu@eQb[XWHϋ ҋD֗B k`qNB𢲸`, Exجgޛ'&:]ϓހ=W:^_C@:!j ARTmҀA"Z1MZV2 -AqlDW9AxsU2NI+fz&+{LԴiG8p'q6P=Pf!<\x2+ugmi5CwE $?2:iȚr2.%pEtD- @Ap<߃/÷^.ɏY>N!4PZ@CղXKkxkSM)bzeZ)'et^Z8=> =!n3zD: 0=‚ӗHI[pv*7޹+pr9Z*\8˭[݆!lˣewgռg(R#"κqrzO2y޽3Ճކ|Em9 !:E2\CL]qT'"=q]I>1 fٿfB2<ե T:j 8<Ǝ6 rϜ8xH0,{`9!fAbTgz28ܴt٘Jm7nGzLYf]{|ys]\a#HB/pN$]Tp%E?"o8I>!gwiv$ݐ3 谿HVKnwLg[Z*V)=r q;u쮈.TBϊ+hLX<4n \m՞f_f*,@u[v猼L,ЧQM)W"4y;ʷ֍W^Jh~_O嫭K,6 uk:u6 # =_52-WS&]!#rs')V';"̩?J$ҽW57Nx)tѿ&v2!B"YfgY gGzn5NqYT ՠ6‹8zN"PnpmZ$}3϶}}_t\@Gs3OTK8Z-ԋ'0[$ǛԅSTll,jES0e|68,2I( L`[?UCƴJѨqz H\|Ty? !L V uRӹ W΀l@#;{;_e )tR!O ~']([êPޱ5g/z@9ZiJT\!k2귎Hjv,ܓDFqK6Va Uxcz5 `yL0OzRϾ~iK"amTot0dJ3d\ /l c!=.45=Xˡf_6͌~P7SZ7\5 hcKN蕣ihNx+; Dc5 Lx~yXdE0վ[uLYX2A8`=Ԋv t`k&]OpX6ך#D= #\-:o9W1q[|+F8o)!k'3aIf,k'T T 'ƹe \O#Q.U9 A;q!0&Z@P^լ)juK#*NB tث'U%jFOY%ww,˧'څd*(e*-Y#%M}V 8{ZmYhY3gzb4=vKkk8έ[9 X-86|5|Nh(HH3-cSr xfg;3Z&蛙n25wZ~7_\ԛnK-wDae iLko?~Td4 rWX!cNM~B EE^ƶMu)h砛98Yn^%F])A,FeFRNT ipъ ^ ÑYuK mv"&yg}ìX݅gfX` m8YD7 @?glp 4,4rur" ]CO(ѿ~L" k Ћ" *2ӔI;H$S=^~rfi[h IlexsЎu^h,e]W;E.8;;ٲ8>,k_yǍ$~|Q_pЮo8{i 7EbPa`iEt sóKO$9VJO EDյ_+a;.Zm@%d@5iG%b痻xޯs#Vdj2x34HVk/tBuyF>mR}^qԕFR/%"P/klWoOt͐eO6{n7tri&oH,{kJv>t_QMxeE]AS.#E2Ş6FР14'7ARA+FI}C׎5?j&n53@kxd侮!i}, {&S.x͎rSz[D짬ON. q-4LͬWK'pV6x(?Ԇ3=)xW.5q b Q2Ojl)GA~7TK{TlAb@m!dXrmn z&QUCW# PEwU+q[[&mD^ۣ MKǡRApax8-֑%AqH׍OɎ*T+/ R6^M8]^0Mux9+cW^F[™a!t_:5򖰡O)qL#㮾5p FdҸZ7]}O0*YcˣMӒZxAV))f;aI$N0Yp_d;|t;>ZZğxtl^{Y%)ur61gj)#"+u6 Vilh.5Tȷ*{y'OSbU 0m⫛sSFQ{یZUe|p MKgdlBW˟*C,M"}qvsQ=2*1S sK86:]ۛV1A[ ClA'4vb+;ןTH%Y PEC~uy})6e8r3 < Gq(`%#n~4i%!ĺ"k!wwʵ#a7JCȸ`(x_ |.>#06J# B-eLeM!a㶒w#ܘr;#Jk8J# Lǻ$vr RΣ,l֓4]yZkO<#"ArAQ=& $(&b[ t h"^*:o}Rl4xIWbAE5B;c)sG>RԳ"֢g4ה=hx{y;wQ"|A'iwrNy7ER/vAG;)'G7sa-d:KUDrg۲aiURekI*/TmM!m'82lu&1]Nje#6 m4Z=Sld-󑐟M.e_ Xf]^ҚZ-[$HoUϼM6GJÑ/#^eFWHj%[/j1K۰}#s5]^tr3wmKÈ$˻kTT +@DkY%jjAȼ+OT0nWhM*aT! ,>wrYhnaGRH5I?;v_ =lv6ZК2!)ԆE}黤c|uMimJ@ ۞+bǓKˡwH@qkyT7==gb؁);_Qo!zqj:;Xu(cSy$~n6y!lI4tcN>: >(~;wrMC-_0=SN E -Ք[#\DGJ[ڢ( Me5+w8X,Fc!+7Zat+}kL'2pQq(*4%xZ'c^"tSK. sŇʢ bA[i4Ŋ ׂuPKpA!UM\s pkX@kCe !w 8|DWi^Hh|_a@s#Н)t뼲1 :Q[e#]d[ .]@]~YEVZ혿3m='&vD"]c <&ێEwFf@t=ў~c %Dxjᱳ {tK`eݵ:xT@*IP)jNzCxYEyLN.Q)Ɔ+lvEš$ar+CC<J$F#B !@ɝ$Hp.ڥJE,Bo!GѷIߙi%dH(t8",nL+^䷧i}toIAp]AX6ezQ**ڥL1]N(K  -HODzUkt EaZT]FX%P?w}84:(I@w8]m7Ի] L A,Wm[Pg,ƹ0 Ϻ'3BM{~S]l _q>(D[֖Sw-ӰI)N]HŠF#5J?vlǹdo{_ ^f\e#Jyf΋̛U"nS^JTEN]En3Bd}6ijU?ѿ,rwPu :;MzWdN/ w0` ҙ#g]7v TP*:㐼_*ж K :0M?!ؗs@\ތo_e̙4"mִ;kC7b[ہae".T"T/};s"ücO'i;Ε{+4/P7:Åo>b6jț@Gxa P\ Eh$\3T{A%])-fdm?UMaFKޫx 5QiíʮfN^Gv**co6Qžǟ(ie(tXVc*S}@K8Ύ?;#@kdMCrmY]b7oq(Xb2BsDTi'mp(i83rQj m}<ڪ A1n#Ws7Z]*,$wȷyIXHۤ%]Dփۤfz~K:ʽlP=lblDIOcⵢZK;xu H HݖX3 C8Α{1T д;"'PUKԥƘ;0kzWV[&tq5]9ąiܮyL *|mثvuw )oJfN^ay>/A@Rv'̟'B^ ̂%U8sٸoTjZ p z5ñ㜄4⋞3"؝_\ftjӬk<1_7 lbo`XEa=TxHࡅ8,aaKv#JIEW!Խ(F[p?&UX=OQʹȂ 'd Vԓ]_Ry]0d9ݚnS\tbwi-&~\AXV3E>g-z,l/K- Qc P} wZn`زYڞ>ol5L:`&q4sطe KLz_\6``+ NdiEQ0ͩЉ͢8R=bL.i,<~Mi Y#G}ĵN.9qiVY\kPVJt?|vycC $Bc[ÐǗr7EגI|c;Wه'/^7e/|\ aBKTRIrY$@?tAe>idL V[1j -*lL N/0 |tgo<7TXKLd8x*oJd {l1HBe +0˾S dd񵣏 &_!`&FX{V!-Da/E9q WJu; _&$GX4'Uw= Um_oOZi*nc5RBI@@{FxI KJ,$3?w?;?;ݙٱQCd.BdO }CPLUlx0v8OZ'gZc4BO|L, tWFiao~0q Gzs=&!12L ~DxN5A=GYռ5Yƭ|r`I_O@c`_F85zjm._¢d/=w7 1=Kٚ#9=%@ZYOs'{~1-ce5'{]L@bJeqJYkA#ToЅ Lo1u:bXV¸?R|rWr|'#v#xR@?3w 0Ln, Agɺ"5ɓ=a]qU\)$`ͨCg{O˞>Y@| N3.5P]߉uW lEHRTv[ԠS*A$KXP=wRT""kjgZ)~qgY"a!(0N  ;S3\VQvBAe4g\<)1X+lyJGO @ Erzm[ӫT7n=]XMzx{%v)oۦ~bk-Խd-~%gr:ADsni_( 3eYCmGvDɋrؖl{Q%a19ZL7mCAϾ5 퍡-OnA&w8B^QZM8(gWd40DXS|RW\ Yk~N02FR"IJjջVlI!/H#YSbKocem+YaQYS 1A7@`.b7M2K-w/AqRxY2 +F 9tGGbSc2AMpJv38XW"Iͦ==5_SBR+oBMS2  ,Iݡ"lprh1bD~r4;0Zd]ʋRTM j3\VIi;fYIyV[e2I-RP_]Y~PZJGr jM-nqGwFVyN8CNbPaeE/S%+rI(?U3}>@3+0.sA[9FˠX)Ew#+'FTu}Hׇ_hλ\BOMҪ,29؄a=V s Gywxy2cW ]~ùg>k:>)n{45u懙 ¤Ÿxbd!+vv5B&gb#Nf Dڠ||kR#zYǣl3N( EMN YZ