cloud-init-23.3-150100.8.71.1<>,ep9| _r2[ ˚rzbFj{ZkH_.W#%)g^#ں|2ZiS7~-be7 ̼ [,ݞ,ABjLy-RŧM1ȡ"9/"D*QmZZt{$L,ėtº`lWA 6zP-DO$![&]5\K 60]Du>@?d   ? 0Bjpxx tx dx Tx 4x lx xxxt؜x|)T))(898:X>;~F;G;xHExIO`xXQYQ\R x]\x^=bcdDeIfLlNudxvD wxxxyx 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.eibs-power9-12?2SUSE Linux Enterprise 15SUSE LLC GPL-3.0https://www.suse.com/System/Managementhttps://github.com/canonical/cloud-initlinuxppc64le/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큤AeedHedHdHedHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHe^edHeedHedHdHdHdHeeeeeeeedHeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedHdHeeeeedHdHdHdHdHedHeeeeeeedHdHedHeeeeeeeedHdHdHdHdHdHeidHdHedHeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedHdHeidHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHeidHdHdHdHdHdHdHdHdHdHdHdHdHeidHedHeedHdHdHedHdHeieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHeiedHeeeeeeeedHdHeidHdHdHdHdHdHdHdHdHdHdHdHdHdHdHdHedHeeedHdHedHeeeeeeedHdHdHdHdHdHdHdHedHeeeeedHdHdHedHeeeeeeeeeeeeeeeeeeedHdHdHeidHdHdHdHedHeeeedHdHdHdHeidHdHdHdHeidHdHdHdHdHedHeeeedHeidHdHdHdHedHdHdHdHdHdHdHdHdHdHdHdHdHdHdHeidHdHdHdHdHdHdHeidHdHdHdHdHdHeieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedHeeeeeedHdHdHdHedHeeeeeeeeeeeedHeidHdHdHdHeidHdHedHeeedHeeeeeeeeeeeeeeedHdHdHdHdHdHdHdHdHdHdHdHdHdHeidHdHdHdHdHeieieieidHeedHeeedHdHedHeedHdHdHdHdHe0e27921782b92a2a69153c74be78fad5428a3491132c9b21ed519cef272e9a7a5df6c972f880adc375ec32564a00b917fe1bca5aa02359abc0f4906fec65e0911c80199250aeabaa9ced4990d3e222ae83859a983e781c4d6b4c64808fc5a6c20d49d7f9b483a7f90f2f81ff794a7ab43388ead785e47b73ef1c88017d555b8960babe2b1d46efc52b2bda653c7968fd2db476f117a0b047be9f8972642a100ffce07bff7620f8147b712fcb2988ac7d572c0c3bb5feaae5dd9dd508ce4771784056e7c9faf495e67b3aac4f18afe35d3b6d608489c723f79eaf15582f41149542e64ee04a68fdd796ad7f21ec3924a0aa6966f8f4873a199e98812de111db62ee9602c7e9f920f2cb5a3139fc53a12748ace9f99aa09ea6fcbbdce2da48e26fb6b6994d865624c7c2ae0a244bab7d35a8c8005d44b06ac4f33268ea22cc232ab6b6994d865624c7c2ae0a244bab7d35a8c8005d44b06ac4f33268ea22cc232ab6b6994d865624c7c2ae0a244bab7d35a8c8005d44b06ac4f33268ea22cc232ab6b6994d865624c7c2ae0a244bab7d35a8c8005d44b06ac4f33268ea22cc232a42e64ee04a68fdd796ad7f21ec3924a0aa6966f8f4873a199e98812de111db62fce07bff7620f8147b712fcb2988ac7d572c0c3bb5feaae5dd9dd508ce477178b6b6994d865624c7c2ae0a244bab7d35a8c8005d44b06ac4f33268ea22cc232ab6b6994d865624c7c2ae0a244bab7d35a8c8005d44b06ac4f33268ea22cc232ab6b6994d865624c7c2ae0a244bab7d35a8c8005d44b06ac4f33268ea22cc232a7a978528b6f5b1d93e8cf8e0fcd146e5201cd605c443eca4b7478dffb4f7dfe128d648f9e07ada3e8568886e57d326bc58685edc14ffd463d2af56dabc68f3663310425931bafcd491046edb04861c02bfe57b9252236898751c96337fc78406ec24d4fad651b451c9dc6ac9c0f88ff314fb969da148eecc3e572644ec92fd5078d2b2063b6f539fc516e494645dadb50f709a5ec0f41459589b7f7ad0d434ac4be98341c7b0833a00b0aca41f863c126fe09c0f3a0101c18ffe101a53430bb7f40c1f9575af4503a096759fe136cadaa0fda118090a8b1c00197fccaddfa2cb09710ae90dcf19a410552690dc7628780c3395a91b211e0b6f61ea350fd1486017349dd2b84f777dcfc9bd2adbc2d4fa1c6bbf31fb7d5befa2f001fbc0ef1096ba2399c141f3feb3dca25b99bd95bc750f9e9af25ee2fe5465715e55e58ec54bec2c86522f536c741e98822b207bbdb11b4e8af625e42d1f5d75d8eab4d936791e8ff214ccc752f57f930a4d9bacf36676a6737821c5773148cb28da6242a3e8bc294c0f9dc6ceb4b41cc628b6335db0b3beafd9b6b69f640cb31d9000cac567ec2c86522f536c741e98822b207bbdb11b4e8af625e42d1f5d75d8eab4d93679cf516487772b66a2db46e04cc55654089d8dc3065c3cafed0d5daecf23df921c587d891a25d4e1fd999a1a9ed80cd8146950ba8ea38d8f264930a88cc81f7e6c718053ea9a0f1bdb7e401f20b50cac6686c04cada5b7223b92f0d3800e1a4d0bcd1041962e1542e8030f93c8a393ddc2920bd7efecb2fb96d86aed52ba10efc798a31a4c66e573885df151fefceb38273000a4126618c8733a39ae2a9a9a0cdf1d435e1d79784e95f1982b534a7c5f79a32fc3b91eda3f6cd67c97d23e0d1346d76fa9b68ac0ebd9d8c3908edc3be7fac74b4742a7a12bbd1a4407bdc31c8228c02a8d9f2b9580ead6ce47f4c00dcb28c1a091824b832011ab3603ff203f30e9bf24328738a784acaa2e8184e0150c2621873ec2478c102099e35bf04335e06f72bdd350030e37660ef3a092946a7b382f677693fcb35392494477fe47b4e81d5a740409f088c01dbfddbd4712452ff37c1fd9750c0f973d5e274e44608ced327afc39e89350aac127111f3046152c1b8bcaa5c6ea5f98a020164ebd704b05fb6efe13aa324a20715703d96619d8db3d3b39bef557ed7a8215146639dcfd051cbabb6befa3c87edc667289bf493f0b913eb013174b6c27e7aae8e4eb263299b0f8dcde93c29b6502724a181917fadd13be670865df1209d914ab1770cac3db2e01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b87b354571a05199eec5bfc4f9efbd95a4f748e645ad5f95caf7880b0ae9053ef8f9eac79ab226c5cb691bb15925b43087a19a05414b813a9d1ea9e40dd39e0d98c60ee03d62c6c45fe5eec59f23709b966ac544881a85d2a57d6f13278ebb736e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e351f162d931e05bac36cf37889ab116d80ba6e3518d4ed7dbcd8cae9e844c46dd65a5d7a35f1860cd6e62440014d65a88a94374ee4652b0e5ca821a0ff808483a5db8385351c09ca4ad6477bff1f07cd068985ab1f819a6f60746f72ea916f659b862b597572ae63bc0249c8a25841b68d05f1feded275043b42e190e49ed5b6e8485e4533190bc99b1b1db61c56ddc80bd4c2e623c72ba81682aef203912f1792e98a8b078460ea1fda345999da871ca814e7e5936e1dda17bdda1361a80cf587a9df126c68a6456c969349b2a6e650eab016e5ed44d56fc588aa92559cbcc9099a87e118bb1de21b54d41c1220622135c81efbc3a3c0c6bb0137c4b94c6aabfb68ac468b76167e95c25b654ac10fb483f27839b6048a016f8916d57677944a857bb6a65bde1636b2d155d58ff7021a2c1f0ff017ded0375ec8d659198e1def37c287badda44360f5602ab905ca4ed22a84260ce4a12c18bd709be4e33feeb07eb621ec22da12c46f01b6edd9a0b3058a1511baaeb695a14c8c186bb7ec77a2e89a4491306b8a9867f3f581f9c0589697cbb4bfd89f5255f112f3d29fef718f30894bb47bb5dc5fd0088719870397a4f6c7f4519c6acd7eab45766808f4073332c46464b8e62207d7218b7e495607e299c4c822a893b3b256cf8147af637723f4fb2637d964c7ab1eee823edcef1adb923345d2d77515adbf851e9646a6af1224ca269491c3fb82ab07e87866a56b11bb0bda87e64ed25c4670b8cc1303704b22f978f32e52497cff77310cd17936f594bcfa27c39e95e2bc0d191e50c7b12d52af8d5da464d7fcdaa1640704f856eec834647b4605c13826123b8d7dd42c7c71a089c95826810c0a2d8cd892856891606478efd044875ab51e55c2fbdd8e2279593ab9d746b54e4b76ae38b13bb9de046382f8ba0aebd62afc36bebe19771537a3d7e90c84c7e022eb0d7c99174ba9f5b538350ebba8f161d5aaace12073ed710e536820d26015c9035c0daddd201ee12cd8e104d539b0a53d6ddcce889db5297591ecbd46198434c7b4fe9e623b15fd8706fa2b63908107403a1fc810f3d737b87d9a2a5e61a1e55ff186a5d870d15299794393f985a58ff1c9f00b274e3132b98a3de119714acb34ce2cdaf93a1e04f350d77278102022ff710a2a3cdd6879b4790c6116544a0abd57c402a16d01301b65867fc37507d4e786f8eba45402819c87e5da841969cb8e812d64e782581b88aa2d37ba6b4030e99b19170984dee0004ac26393863053321cb1c2b54adf04ef6ef934c9fb203ae56a00297c08b52878b4e4967813b3ef704c7b618441163e866b12e04942f73e4baa7001fc50be3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8557098c609132e6600044ecfd31c102b6c3be6296e999c889c127abacc4307ceb372322caa6191651f46736a8c10610c9b342129cadc9a651262a90277a1f25ae5e7dbf90ec61f1693a27772b6287b9350f8a1f7ac0ff38ced504dcc9971b873c2909cd72fb32db3e18c38b82a36a0edee9b3fd0b558f8c272923e30185bc3d3c85aa2220ff0ffb1f7fa7827e45ac136dbcd73bd9d78a791a8eef6ef554266513b5fdac84a316c04c969d235fe074a0b98b6e91b0103fd66a40ae3100f25d9eee20c04f3f84e32162159330426580518af430da275f43d2f962fd5db9eae3e72c705d3fd5616806131d6951d8e51f30860f3aecdff0ed3842a95555624ba210018c7295b2b4069a5f714a3f8e6aeea1cc276f673ee241bd826d3467f024f04e64cb109fe13c822ef4f8633b5b5d1cf88f0349d1413b8d712e4ccdea53e2cc65cede3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8551441f11eeb306bf62adba62d76ae76145b5138ed12dc7a5ca71f4d169bd938b7e52fdf6d56d3725f4aa806f537992f8253925414bdfb9b3de9ff25693ed8adbe767f9edb3d459a5bc53488b513e1efcb40c9d56111ac971ee5bcbebd14d6da86f5b7431858ca1f6279eabf70601786623f4e751b8959b59cecf5bfc71571029108c2bf3edbfa7437417197b29d5161026986d4d883058cf68db17892e2cb01c1bdb9b2dbb9baf8e4e908f2b6e10a929b5b08ec5e3b3d96aa532a7c7a36fa70939eea09be502fad95be68d04c7b41787b8fddae595f5e8907c8b41f077e918dea2d55395f190cae404c8970df4adb89824ebb8175b29523b214a1f7abbd61296b07d19cbb49b267138ba2addac0acfc79c03923e38c9d286f862b7b32551a33fef252df15f757f4ade43521c1a80682a5120a1d90d56d0c60a07e4e88cab5c3a9933dae6fc332fd51cc997db9c801bd92b9aca67d3d6c15871f243e41dd17869931bb73ff224bc930e192be097edafb2cfc7879de732863b001295119dc67d34aeba26a93064ab33e94f49d9d6f7b785784451b92546abe054f8226342c0d3aac7d3095833b19289f1ce663f8988d736bd107d9f79ae3b0ebed6df2b35eb98618d446e32b63a4b1cebc72ca7dcf97829624ad7951543b26568c8057535facf12406b2410689682c2f7c93fd70b1c6ef6bda81c6e7f60cf7ec9e268f581b7f0a3b2427cf11a1a5a703f07828b46c0bbabb033f3e1f8b17f8f7704303ad92b2601b5e003472d08dea7c403ef94b9a10eadb75f88036fd373d4a032bb92ffc8336937e12280921cadaeea7ab8d666c61d725a397f560747072f52f7468d39529f095730d7b10f5a788f413386c403caf24b608e03793862aa114c6923c38f6f8c10954e2b2c879fda6547acccfe5cff64091357563347341cdd47445bb5ae9d1dd7dbcc4959f9e898bae070222bf6d5d7968032ae48d6a66a4612d959b08ed45cfb265ce7519904a6537b18708bd369fbd48a92f5b9389e778c48ed705c8b731643ad8d5ca19daab3e775bedc8b523e9b3ccadd371ad2da3f3673a4d67b4b2d20d5fe1cc6747ac4525b88844d5346c07eecafabbb5053bc6475769c5694c8e19b12f949f07ca2afa90d168e314248e4a168d0684b7ddc103f73d72a7adf3411fb8fa8c78f12d7689b29510b64b1cdec7d5a541af906ca871319c5849198b67fa5f3be66220272f7d09a353945d13a9dcb9d348ffcfc28c065713cbee9e9a835e71a23b8cdef02b54149c8a8301d800e2f810864deab75c4e2a4ef41d1bd413e4ad48af6d472b9f3ea12ea95320763782859d4efe13d066584585d92df0abd0976c6d0b6650a99d1c4be85113982e354dc9ca560a36ddf6d6ccb30c14eaba6cebf0aab60354196783fb2e8520d736f0a8b56487f7d2aa02a3f6367a539105ca4a162788b777194aa95866775582e83be95ae3c78d3ef0e901452bf9218102eea4ead64a2e8e21f0f360c47230a6e8479b3410c8f058a17044b4044975112d7175771af65fd9306dec02d9661859c3b19ecc8abf6cc48248cc0ae24b27e9b37857acd454e353c25de8076f02cb76181f9e77d48608c3867628a02dca611122fbbe30660c08912dd42baa4156400c479ff1854fa5208a21aaf2eab11b3c078273951292cce0b832b1fee847b5fa6f23bd276a85e08c7fbca197190b314326c747a943a58e27eaf5f63da397e0a83271ad4efd54d3860aa9c5794b850bc713ce0ad5f1190f6acfb16e1a384fa7bd440f04ebf3ff571da0f934bc135ad70d93300b7cf3ddf9a8e1229ba1aff4dde9da52fa3877e7d97d8ccc588bfaae22b7cefaa84dfb41536b1712d038c932fba484898ac9b4eb411730d6a2836f50659ab180374252f63cb6daceac7c5ba66eb0ebad59aa213e92da71f19263c83d697d98fc46d7d61588c70fa2be655b6a53a77570aa9e7841aa162d90ea9b2a8ad05498495f515f276fe7f1a5d46ccf0d86e58ea696a7269b8076c06bcdbfd127b82459adf936c99cd79d8a09f194d25a126fea594d9f34d3c528ff3fb745d83337aec14bae436aa6d3c8e2428f8864c66d7962afd7c4319c81b5093ea1ec85ca5a829550cde72669068d5eba35a4793ca3465e6557a3ed90b43e3eeedb18a55f12c90f5fd0c656ba7b53db4765c059c66ba607a68f19536e16324d9bbd33448008b30d9f8c16915ae72714ab91a793a82f88ae0b54d6158fe493a62d7f0513a78daa7a832461b124022cffe488ba8d854bc6da4edab4fcae796ce1ef89350882e922c776866da2ab55fe87fdf518008bf9beadc0bcd7386583962480ae11f48fca0a26e2f6cad6d1d485b00fb448ce2c2d7dc96f18f51a97681a1586f5bad1d26a7be5de437510fd2d642834976ee2430ec79a95511136f2fd7709514cc91293a623b9ac98401d3e7dac74ebf27d6243df8d873f1d7f471334ffab9dd8230b97edc216fefb60cd263a5194054b971bef92ac4384c72988d7328224477cbb95ad9f1e2b7e13721f6aa3c656a97dc528d2beb1eda8b0ef1d233a44a1de2f6573efe8b7d9382a3606c487daf2f9d26ad8bf9261e795d22b504cadbb7158db9c1278a536e8c06abc6c93e7ae0c73199f957394abf65755605d00077c1162450010e4cb97141bd729d2e4382d71c68d55d7d47d391e6b5d6233f5ad121b9eac816025f31f9fd01c0b99c762e3252f7cbaaa5428b2a4e41312b1ff06571a819cfc45eb1d6a7137e9abaef2545a2b0b5c1fcde0da8f90bdb94a3939d6d8fe21ac2c9a386abe1c49d82c658f98cf4d775f058d549165e7585183b53ca4ceebec167de5ae4549bce5664f1a47ba7964c5dc772c3300d2259ed03b72603ff48dd1064afef5d1414acbf5f9b6bb1598b8a9fbfb2aa1151c14a6cfdaa141c374999a1b6ce78eb165faf6c6a8b86f6bf5bce2865edf24779a20212323e6a4630219c20425c1686e69dfbc8f730070e388f84db79f6691413b9f5e82e5baf2d6ec80a6d9967327cd8d0fe7b87fe942c688ef400dba24079c333c5bcbc2b735bf256f5f38ea61b95a44a15f7f38ddb66f8a60fd9a914d0a35ed8c316a9ec9209ac0650ee746abe2bc1d538cf03b67ec0f0bdd31f300864167dac0ef76d755970c89aca953efd1d7eb72d94d2c489670fca06c78ee7a66405a40e455862a22f386edf10a9f3a759103b0c315cfb4322fb002a0e33e873ce7819ed938de502ce36043ae4f56a852e9eb4e0215faaea3eef0d083b2cd2162ead94d6094357207edc13d6f24d431e1bf01b23ce7079c39fcdce35ad4fe27f6f289265823b8b7c1936ab0bbf38b51d66af639a5535f085fe7322197f68cf902618785ca81e7a4e0c1b8b32e38876c2b511a5484f731a6bf5eb2e557627e000ae536941b66ba27de5aeff3175b83f130b899933ac7c827ca0a3f58a57218d4ab7cb59b75e02a13f41a76e1c41bed1d085983eb553e964a18c3a86f6a98748357a0de5d2d9bbfc4b150d34c29156042404cd4562aac46efddd53b6e5a07001076d89b2bdf6191bde50fe246353fba2b779766b73771cedd1fa2826e4fbae426ff314eb9a744947c9dce7e3607838226d50dd2de4430f206e12686bdcdad399ac2ba1023182e970fcbe70d0e1124aabf648522da10e7e15af17be2ec1fe65187c6ee65c0a0e741c3a24dfc8468667bcc99be4a51ed6a95faff7752131b40059c16946b148ab198f9fcfbd18fb43b343c4fab5f9f5092554cc7c2a489f86cd2af85cc5a663d894327d4e9e44c8d4edc180b49e132690263da442dc9aaedb41dff385021ca80311f66a54053b44348370ad29b6e3a084792d1804360bd5c3926299706d01e55e5cb3991f6e0182f7ea86d844625bd3d514ee6b1d6dccf6823296f5a95f14d6a94a8eacbb1e65aa4cf52509cee16a59b7d1ccb0f4371ef419e07f7fa4db95e9bf24b2876db8acc1c32a0ed5fe543ee1e07c01cda66093e38538250d77fc1c6c3bbe9ee1d11dd3b21a4eb4a9938fe53eb94868d038b76edf1f1f824cbcc5d49d8f34de5ad29b8d1cd140d04e136a9988f1a9b834f32c513cdc28db2f05e1b1c18af3df5585529df92b1de7bc83df07572aeb5c804e674b76fc9bf60419927771c148fd16841c73a453646db517db1f1111cde4bd7b83cb80d55b0db9d95deb9b6da1d27ea35ac8f6b37bb59f5fcbe42dbf132e58a395ee9fc7937c1c77b592757b0466450405445a8fdcccdc9ad919fde2d4ed0589243c692f4a923d779f3315d4adc010d26ea9757d74a7541f974ac848f881f5292cdd286ea3f33362d9394880d173c8a5bfdf5ed3ab8943e80a832dc85015b9a5c3aa8ce5244559742a8051a46f3a0c188543fddd3356cacacfde4678897d00fe89a9db8fb4348d7053481b590a086481b87f64e9519e0df214ef8c21981ccb3920c4472bf26e6446a408550ae7ce998894ede86fdaea8bd5d601fe07ce7f8c66153742b1634dc6802a59f3b7766df0f0d08e32f4bd5e1c4a1215f38f02029f1008c1fd5b7a916042805562fde403cc4a3dc9e58dc385c2eafb8afac07920e318307e70587a45038f1064dde355b7158256b6028a482c2e6c35169b544451ff4a8ea962ceb65e772d73c319b26f5a8048cb578720a92df23e89ff373cd4b1f25b94f47d71cc05f144b2efc0d2d47503be4ff41f860b502b9fb0604be0178c0780ce69e819a3e2ad42f977725aee8f925209e555fdb8caa62c0ea7c453f9f37f5f3fd23c3dfb5a55ad58c08ffa70cca64e4e363637a76789b29d0d6a3644f19a5a0605884be734901da3d90c8cb39c81230bb2a819f16615acc40904d502053a73423e80f6b63fe92a1ff24320e2e4f09519f1fd7a00bef7ad68f7e125f6c77d3ce1577b132f4c774f85ef80265c7020384adcf2eeda24eeace387d6967dca99843bc328f4a715086913d0325aa1d074b7777c8b5485e138f32ef2f6d6be04701dfeacc0bf2e8b2f572641134011caed550bdc6d41a742328623802ad7d3cd487c4331c84dd58158d4858e7fbfd734ad0b63d2cf6e11854fcc0023ea77ac4cd1ad7231cceca002b0ec9b34a0145726624cecafd9aa9ae352943b2e8994f80cb2f98be4bc62c4c36c76bdfbfa326b27ed3d1acd1542a7fd8789c2cfaab0cbbd752770362bec6a2f5af9b093e9327511590cea89dccdfbe6bef4a85a87de807d810e6a282a5780f54089f8d39609de389eede8fb25262e9f5d86e72a564ef558935fc10edb457ddd400910e22ab1abd84c54effadc7a62b7ccb862277ca3b3996b72c3d2280b9699e5de3698e06b428935cd5cbfc8c5951b10b082e996c36bd3e2b1f380af4bb812360976ddfc68a69ab3882ac03d862c6b37606feb3f922a5825982fe5047254e23455750f41ee2d15df9c64f2ddadd5bbfcf812d01beeea3192d3b090d30c7331ed896d85e4de76fffe1ed43697e3c39c63686efd499fea4a49f544032b4a49275287044a41410488d62e6a4d85631fe233561699e1b8a0793c2a2d6eb98849a55f265cb49352af3823b621d8d14222561ec8efbaea36f801887c731085c74094bac10850427f4bac0b0389cb7aa19370aeb0d5f26ab768e35b7e73677ca765dcbce400805849329db9d15849cb2eb82d2783a78e2165078c946858089156e3bd5086e880386ae18620378162091f27937559a5743c34b46fd10fd2e4b7007268ed77fa7dbae3e1ef0a9609d1b08d0f297253e8bbc8b0426fa5caf952b7a631a00ec42dc10e6f047c88a972afa7880b2f8612c76b5adc9dba688c8299aacbf29bfb1ca92ed936b4f89d16b556d8d41bfb6e761b2000f00e3d85a9696d41474515c928b7dec257b71153c4d15b65ec8d9da1c5bcdf68f1b639f0893798f3d531233ca304198c9075a576bcd7f52353d2cb06aa42c108cedd37955ad680bfe5468f18b75b8a1dea26a8c4077eb56e3a1d3f3ab12f323c18b77752ea580d6b7085f8d59268e817e76167d3d198b413362417d06b8b16e00577d60595f3dbe3b1cff530c08e75602962f7b38e531e6f3f3fb0c83f4569b2034eb50ca08c69459dac7939030977b5e7f4b0730e50a7be5dc5e70275555257d9214f4f1114d56d0912f5566c22a3c3308f53df7aec6c9bf260c3bda432bb3c44bbe70d34d0031aa10e775915ccfd390e47583d3fcf8093fb75c6527e78a4e09d85e4ddcb2e2a9ec55cfe393409762ba93ef346f869f820450a9f0300008b29f1dbbd2a344707d70c59dbc68dfcfe6fd46ae9ce30e5a5c8ff3cf466396ba55760a241c8e8dd70e5b92dabbedf16918920c6d245751bf7d06c2ee065dbc1f2a63023d7c4ecf5ca4f278b9bf4891f060faae2c59bf75bcae38e73864fcbbcda8b9e2d68c946e0a1a8bbfa016dd833fd9b4fa02a67faeff06510d703fd8e2b7232188141d480d66abc96afdc481f31e0c5e2ba2d0489fe3ccca462d977e3d9f8605dc03c3a8f77234577bbe177e700d9dbaba8e8d9cab884bf0a67d43d5b032df01381ec95e44e3fe06ebc0e31499e2de7e2567cf9c40188501a621907aebf313344ba34410833785e24c4c483d77e070c9934a71e377bbd01b1be02833a4912241f9e6c20d7d7430b23002669fb13a31bbecf6688cf03016341afd8d88701ec2781dff9a677e9fe0fa503be865963d97a0f75d51ad524838cb8d8c6cb21dfe50aaf7b62561f1ed3a585b9ab5ea9c4d9501e2e68c1264e9906a8fc5d5fe38251dd753b1f82946209b4af64d3742fa7b2e43f3c7e8bf88439ee297f2fcd793dcc14e02212ad1a05ae202c7dfe3323050ba69e8f1b632457eae9f87fb951500d1d093450ca31c75bc82138ee0b61031f9c6531192f3d07bd74c2de2e9d5f079a2cc43d2816871241c387845c227bb38200a0f43e177ac773bf51200d5800a5151c9037c38407fbde3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8551d3897b16f726312aa8205e8bff80b39988dd3ec1707d558fd8361b1cd4b5d6be82c14501f9fc4fba6e3faf9f67d7e422195395de7a608d3a7f6eff558247815aaa5cb572f32d135ea612a22644371985a47bd859806b9e1ecba6a01c07145fac597278afe3c7688c9170dbf84f566536a5079aa0bd5ff0300d57fa06c79ec17ffc13b74404c103cf3b3bbe11e609ee7ac49c8f9e41ea2b8fbf0469d2713b369ffc13b74404c103cf3b3bbe11e609ee7ac49c8f9e41ea2b8fbf0469d2713b369acfea0ce4ebf2a1bd7c7f40d0181865f3ba982d4d3cb9d490136cf496c0f98f3eb1e2ba3160965fa9705587c4a6baf5e0279dc94bed64c30eb84d13e596326dac5b9a86e4a62a86bee35cc382ed3439126a30ef61eb6bb5c15ea81a3f24fdf8f0f558da4fba3f4d2a86aabce7b53ea4a7d24d6581408fb754fdbb32fcea79816bb3730897979404d84d12d93f37568902e9532bb239d7e53c66a01c71731f84cff60b12e37263a826dd334d1bddee2d2df41f3db40c196775221bd2f3b959cea8cb016ecebf972bc846c0116e5a89d60d9fa9e27698582b7ca0298d84d2ef1ba5c3e9e3044cb9e4573f6a4d61a40278624d5379e9e3acef4ab2c8cbd34ea02c1bbc20bd69d86364eaa574f0dc4ced80c4a87057f0f143aea46bcbd8fbfad44cb756753f5413941f1e52485f35f8d7c9e2c46888a31275b0af6715e34667ff8a7fecd1e5236f8db0c2d152c71e7dc5003a094ad145f38051961702d5b10dc11c19fdebee358ec7a60f0f83663b4c9503663d97aa330ef8a59eb1e65f63e042f05e5e29c02d729b43684e883b941d69cafd76a4b00bacdbf6c6e825aefe65adf91d1a3a08e782b28037d803e0a272cecb97af6ad160f522bc872b253c50b9314a0db5fa5f0dcc455167cb1ac56f292864ccc5f0e85c3ed969bf159b50ee392ad80925eea9da16cc06dc75bc6228e707b65bd0a496d10d64566c0a61a3a903e593e91e8f28c534ea8f564a3dcbb2782d445ceffe638c82bd826088d85fda22bbddeee215c0da192e6bca3be7eb2f8598f81b2280a064ae3a45b3b8b5a35a5aff00d50d65260e83fbc1c919fadcd69ff6240c7f06959a61553087d00ef93c6d872889aa79d040a9a2443b4b89251b6d95239a932587a91014c87f1b9d0a9695f6533c3d4885fe638c1490888b22f961481147aa255a860278e0f1d138280bf26f5a10983809a35a8d9a0b8fb55589167a4b04d7db8e9d2d5bdd20d3aad8695e21cbcb62c7d71e6e9236097b0edaa5d61f4e656a0dbf1fab5de569417353851acb2e79362724475404f6c3a36a30b581864404c64b7a88691b8519ca4cdb909db00329b096ba885a572c293a113f2f389424bd15f03deb566299a830aa20d1cdd5a45f2560da2825c37574734aeb879fbc0fec4e7122db5ab6e0d0fac291f12b4da68d8cc6f076204363e74557fcea7e4a8e87211612cb54e4428bfa0e2525ada65646ced57c64de0ff228ce012dce599d132c24a7f3e66fac2bd0f6d90e19b03a5439bad5034fa56660e90790634c2e4b83a676959c12f750d7b2b6b00e8c21d8838b227b30506d92ec8b3663a44b795e5f8d77667cd7e90c538994fe1ce662a6a070ea406532758dfa60f2763ca8058dab1af2afee73d97cb1f8e5e31f5b93d793d3db2d1c5178dddaf79a5fa351fc25721077a7c9ce1ed247c81c2a580ceba2bac32433a315387b277111952374e11a20497cd5adf44ab715432c4a1ee2cc8b814634089edc6c8ef4650bccd7bd6342cadd4e220f63c6a301ab35b2f8a2edc40a9ed6d0bf0f281dea9d0c29e5bb455930422cdba9ce1cd64135210df8d0272cd3394b3e7269f2d21c341775c96654fc6e5564edc6733707fda7b275382c9ff9aac22b41a2e133069a5cec548c3ea230a572c0c3b922e927b1e9eebcf5d05cdcae8e6db6e11980ed711eb0730f8da636ce07dd89a5ecc7e33a753e007d4c06ebab737795b99e9f14b4c81e330f8597a36de7e77d71a36183f33840c57aea0c321e4031262785fecc64d8c1ed1b49508ebb94490b83a3810a5ab8f62f0fc2f563e2291e94b6dd042f9fecc076450b5a49f4a45699c2da5cf1bf2014cce120463dc6e4c2c654d5a9a488048e0c3192ad0665cf1643741450597e4a2cd48636ba257dc8ff956d95fcda3477d906d79d81a99ecda40a199e3c650d862558a3c3de9ab5a41836f765cf28e57f642d823552c328b3871a1a89d10537a226f6ce49ccd9c4026958cce0c4a3a29751905ba04c0512bd06cbf97d3aca2fba2eb608ad966df0e17c656f35295d9b54aed2665899548fbaa644969ed2d915dfdd7b89f92bc5e4d10519a4081e3884e8eeb5558e8329692eaeda5936befa1c25d072c34cf4e08274c2c654d5a9a488048e0c3192ad0665cf1643741450597e4a2cd48636ba257dc4c2c654d5a9a488048e0c3192ad0665cf1643741450597e4a2cd48636ba257dc81050b28510d1e8cf549e8e668a4bfccb1e92cb784312a65741a751deeb926fc458e9ab4d4012653706e4369532ff52179a27021b358dff9f28b3591b68f057329cd56724c27619b5bf9e1af38c75391df46f217750fb7e984a668e328586c6e4c2c654d5a9a488048e0c3192ad0665cf1643741450597e4a2cd48636ba257dcffb645243dd11bb329312cf5984e5bca0145fe0dd51050937a8bf4fc4349c9795ea6cddbe1fab21883646792f8f2013eb62c10f2ff06cccc270d20ec8439e1eeb3cf67aad24e4bccf8366aba8c02d3477a5ac7a6d85fba525341338ac80e08e49d17c5cf6bf6b6d9051f1527cce16b7713d855b761c4c9ccdf450c91d93273dc4c2c654d5a9a488048e0c3192ad0665cf1643741450597e4a2cd48636ba257dc56f8af6d7e9b387fd4b35e16d6bcb2a748e183f8351c02f1e3112a9f6e56393b3ae7f319654b4f820d7e26832a7e74bd8ab7e20bdb57e168f6152bdc431d9097c4a6cc2d48b6b0aff15fa9f9993364ae683983cb69b54d23e90daf43c3f84c172057e501cc2f2419e54821bf5703b4e7f051450a5050df00a9df6dc6e8984a59df2951ca09e8d1c7901a2af1c5d5a64fcec53b4953febab158de1cc08ab912e400501b95bce019852eb8871ffb64592579758a15e772df6499c4359ef35418cd6a81ddd917831e8e20577fcd17fcfaacc4b9f994d8ad54ef7fad735bcc788dfe6a81ddd917831e8e20577fcd17fcfaacc4b9f994d8ad54ef7fad735bcc788dfe6a81ddd917831e8e20577fcd17fcfaacc4b9f994d8ad54ef7fad735bcc788dfe4fb130b8110feac55874dbe032addc24fde9358b37581450e4e79bdfa7ff63d6641159fe8384f9bcd0735bb474b59a283932b09ee87565ee202bc53b9df3b678e593d42fc047435089f551bbf59a21927bdfe60025ec0dbbb2b0c50612dc9e7e82a2932e5cab05db371f0c47c000d99da95ef8bd7c2d9dd244837fbd2b1c80afd5ee6e7d91c33ac6e508e66cde5d9015b541d4416b951c03a5d4e9f2233dd6b609150fda7e26a34d17707cd78e971cbe76a261ef51291b2ca45a7a0cd9a1c0f81bd0152728ee5966a23f82c712bbf283beadf4b1ba19b1ac6411d90ba6fbc7c9910b1901fa056c01a8cc39806e89ef1e2577adb0648cd29c8b618d075931a5258ad73bb2fe7fc8bf9494770d30fc0437181cdafd077e2f26b1848908527c8e26a03dfa582e9f8dc589d7295223c328a3aed1318432d194ec636ff9139e5f86e8f007de5d30c59022db8b70d865bc5d79ff457c60002cb353972493ec6388b6fa6e052fbbb3bc97d56e8e3df4307d755b7555376c856c8543f9a056e0572dc0a483f38b079c7f5700ba3aebfdca0db3b936f64ed0b05dc401843b51b5f745d841d24e7c5c6b39a83cf60899b99fee1e7779d2ab52cb5a2bddca0f28b85b953ac2e78901eb35350fb9a9a77c5367674d5e1694199a5b15907b3800607272dad29eb358cc5c37976acdb18c01cbe4a7b8c34751aac5ec3b5e97a010f6ff4a11f3b61c6f9f76a89133e1283ae7d8cb40230b86ededf1d02b4b5434d1594d575432c90623823e93f2ee424e5720aa7b093e1b6b072805a3b015cebeff857c1f3a68354c2c654d5a9a488048e0c3192ad0665cf1643741450597e4a2cd48636ba257dc6a81ddd917831e8e20577fcd17fcfaacc4b9f994d8ad54ef7fad735bcc788dfe6a81ddd917831e8e20577fcd17fcfaacc4b9f994d8ad54ef7fad735bcc788dfee6c5da770f3a1bcd6a911be0f2f832d939befc0e258f5e87bbe4c18b4e0dd2604288ecf0229d9fd215a8e035568b9e3525c02c2b9af8385bc2c6a0eddf797963b1a8e1746bd58d419463455462a17325828fe30c56e9e8deb71065d9942ef8174c2c654d5a9a488048e0c3192ad0665cf1643741450597e4a2cd48636ba257dc93cba58bb5a7ef8379db07ab4bf01da680cc8e3a44aae65b8dd973bb63de3b37bc382f29b696449f7c80c19a1e148a8f518467a8483bf9a508dc1796f3b4e82f4383c369a28452bd4083fe2cabbc82c2040de04a5c420b4cb9cbf21fd72f3db0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85559805d3b8a1cfe48f9b16a3e8dab92938451b68a5d4aa6183b733d52a26fec77a47d32e83817d304a1946ec11078835ba2206eec0d24d4b2e810bed92bdfb5b09fc0655fbc0e56ed673318c16b86e0385fc62b84f767d027d73c6fb29ef5d2b98b4db6f9f384239c4268bd5dd7e8301883a937bb3928d562f07d6b6280280c67b3cebb6db7ab04684752412a47301eef3a85b00ecfd1b134973fe39d782781bd88d55dee930720a34784f16a5947d8be1fd6f93977da0bacc40d683940fddeddaee08c9ef62c5f31c330bf921a22db3ef639838d789f4179590075bbe412642750fc0a9f601f8a1cf8450c191199ef2a636ddb31b93d80570bf45e9a99ae1807a69271ee9045be2bf357a36607cec48601451aa1b111230387b28c3d9e560fbcf679fc822483f1fc1250593b6166044b3aeabda38b5ec00df6002e0f3b80e5725333b7fb255d73b522bf93ad88ab5e59fb1dd52cd7509ed85e5b31d068f21ab04db6fa8a187e8bf0bf256496cc5c26124e87ed3986fb8f325b4b106f8677d444639619aa40f3a31556de2e502757b3b5571a7158c501532c943abb3126cf169c3286577671e83096966f263d1a445e4cd25b94e07a114cb27eb33dad978be030380cdc03f5dadc8395c316687bc6e64db6bab51ac457361eefb119467ca9f7b540f728f87f3883b444b1ec245472bf6c395042f33f0d49fdde92a4aeb1ef808999af07e584186863b62091fe883c176825af293696ac8c226e5ef1f1bad70ee082b6051369c67e09e20e2893db8b5f41707da3fb559cd3f9d699f9a0b3bba4f05c584d6392a1a83b8167dff691f1615e9c9ef5841c5068e7c09d16a273570ddb12b87ef708cac00a7fbdd85026e149f9cb5efcc9cafbec50164a5bd9dcf50704e2980d23dd1991c8b9bbf9becc3272fc205ab071f1c7abff42e785dfa5ddc244a3fd453a02a7ec66d305a88da578e2684d1101bf5c59221b5b02260a565d5ee507965b1988fe09197a798a90cd7f05bf94802149f2b3964beaa0c78d7a00548b0d36e3e6d14ef0a1ac2dda9cfc4923c8f029c52a3b4f425d9f74f682f806526e4f8fa2b81095ff4366ca58f13a8a6b54dcc5458e5f74fb2dfb85d4980229d586cf9144b69a57d0e375b4aaa1f1ef58ea0d1c7649eb2186ab0741ebf083c40c337bcd5ac7f73a9448975884fc5ea047e806c1ca8546d324b7e08f10a95fadc47290a4224ef9a11844d6253cf7faefbea95b907470695674e70e5d29017aee95aa17ed300bf9a72c6022d2023aae92830dc3f7430782bee545587e9ae6296adbaee344e02d591284febbb3aed3d42baf077e8ca63f5556cc7e25834792d9af46670f4552cd71c8d2f004356fa793b29e450d65db1fb361bbfa695d5458ed5610a7cf22a93cb73b9abc59043b4125e7dc7a9f4d2150f0094486c8d6d1f1b8583dbc4da71828f83e29c2ec3442b0e8061952c40d34d0ce2183b155fde7516a1ec807d50da0c904cc8d8d6564d11dbde9148c4f254a28800339cd48b7becea576f9bb635f25cc0abeece73548beda2abf3bc5364a79223053a60e1c2952e56eb900d7f531873035c72e0abb98015278730fd2cd84504150be6b6e0a0066c869cbb9600f6132ed6a63e1a2dc78a6111a2c49dd26241fd11031b3e3d0a99bceb5710c8377d72d1666f148c3ecb8492c5ae4035aac8d2cf8bc993a462fb7357392d362d7e1c01b5f3f1635132189005bdcff87c31b334fc308fd4dc63b345695590facbd10560126b2f54ee23a6e62fe3724d9f957503d6c9f93f741c952b8d9dc065faf905377d09b48b9447dd7787753d6e60b3926c8a3e059e4a702707e0e0e4e74ff4cd5a0473ad6ce682201bbc049156fa948fc8083834df59def5bde2fea2ed3843716775b1bfbe2fa071550a8a12e29d39ae26ca33ee0ee7900e24621f10dc26ab81d96f35efd940b9756d3c7f65adf4d44d0865a615115576cd23a489d461feff393c3d74295c565b52edeed2753e8cf92a3ff920850643a803dbaf84b7066ce4d539fca88057119824eb28420c1dec15a5ea3ecbbe87ddcf90ee646a08474980ab96e66b4328c08eadb898359192eb59d2e259fa31be24315ed0a26201bf0aef934f1511b20300c7ac03b5a4dc8d6fa8890af5015344d51c4e2b123644818597d6be6ab1cc6f25ac61427bddb1158e62acbc9edf0da1dcb310b9f4dd60b1f8a74835d1db83b6ac9a81b5b22aa0d72586ac1385b3e1fb64f7bcf5500961751baf123fb6771fb549f4d36b59e2e518d989615253a4e90ff4356b1544376b9278747d7501f276775bd46ed82380675cad78815b110fb626bbcce47e998080e1a1a1dfa6c95629ebc81c2bea58f98504e2f247447a7dec00b5b359b1276976407869a4caa8786657e5aa457e569e58f3a4219f8be415c1f2595d5457664d1a0220b2d405a1f3b6c19665dcb6a95942b467060e21c163d46a3081d5b3ca31a4ef6a2929ce833057ed3ae054a36646dc62f7744c4129d56ff720130aa2a27327b10b9f77cd71d6987922c10a5cf8483c2fa7dd8229eb15c2d806cb51228df8c837b0b32504653a353068e12993bf10ce9528b8b654b854a93b89007a98732f93fc989c7617a7b37cb24d477a094d36e556970d0046f100c85aa5d672fae72bea2d85eea832bcf38c8e6b6a6048ae0aa8bb950171a3bcb9bd14ceb97788a159d8423e5a9c25249b5b7c8cd00797931edc89b01c37e7879fb3ef87bf5e3607d11743fb243199dd0fac430b45dfe714328b84b44fd3c9420358788d452b4bf48f0f0589ef2c9d939f5c88d71c644888b07168c21cd164207f0aed710a93c0c04e81e3e19e283b9043cc8aa932b7a5656880dfe24210fda63071699baf168a5d75e054ee8ee113579befa83f425eee5b1747b239c6e7247342d1f4062ab7f8ffddb18ffe1d6d790e936473d2e79187f76527cbd15840d66541b99f07f92146980b113052a6255bbd90f513558b7d4d28f8a24c35f8cb4960df920c8d4b3b4d9196655ff819fac6e9438db3865719e38feba4271f4c40348f622c58a668b6a94300ac1302d110b386e46bc4d8304fb67fba1855c156b51a6258c2ca57e7a01820924ea88cd31c7d21d13c6ef90cec95324720663c473dda162d699adbed7f3444e031d61fe554b2c698e6da26bcec26dc49eba040cdddd7ad486e8bcc9fb01ea852f81de4cfe1858e681c56661244d51dc1ee4a11126e1510a16d29593db65314c7052c31d270744e0eabb16fad5bec9254e6f476f7de304c426ba9c6eccaf8b8e5aea7b695a8a5f80b9d96c6e86931702860416deb6d656253b25874ae8a0a3537358dc287a805e82fde666e3e0d2888c1b307e6c3833d2db4b00c062d9fa379cd776e06ed6a903fe90cdbcf10c7f95759eefff5f72b13feff88bf9b27177f80c0198c00da3c1535382bd087ea81ee693e09f77ad52d93536b490a210f4e830c90f88c655ed1a0fb0ccfb8c293adc204ba7883d9b4a738e4cc03b1cd27845a609974836020e330429af8ea0b2895739184e6e50fae48bb5b75e5fe181d994ecf1e704bc56f8816ee6074a7fccc8e0e8f0629281fc58a436e70649ef4500dbcb60e35e743d50ab9b849689e28c825730d41fc9c3b7465d9cd419a32bf0b61ee71b36b260b4179ad3c46c8baa682066d960f82ccfec7025c830434369a3465d44c14cfbd91ec6318d1f5648282185a77aea0c758c79f800b7e1dbd6d0178cec377ea05e1a84d3d9668519fbb25b2b870d527717f4ef40fbde979efd97a2c09e043ac4056e9d0e68b8b4faf205a77eff2ca6825a847004a255dfa5d9823ee3e8f73ce2dd61157d9f92dddf6f085df13c7ce3976883e0d6976036abbb250eb85d63a89719760c8f35a1633406531600b689c27a8415ee817b0d888daa149cc9d3d103886fec21b4a3b67259c162751e733ed8cf3e93eb00e3da7b04d4143011bd4a87b4ea1cd0d1f20b7c512607e2f72efb7ab5878959f353180bef0694c3c5f8cb13de5f5ee8a1a6bcfac3dd2cffd1b1f850d8e69caaa96f4a56d95a6c4f757ab9e587d9b79841735492ae49405d4b433db31f61214c52a379f77390ec7bd7ca4368948cb998b56bf1ed91c4f4ed0970775aa0e5506aaf0c2f4fc1a5ea8d6ede3239e75d8528b7c8a57967f67d42b20b4ee5416faa8a4e907e3794ed062ba28ed6b00d70a6c62343bbacb1a950ee85eee08c6d370ab38e75a839e098df3bed659c527bbda77dadfd7af442b792a6c440114c30305191cfa3c6fd567a09c0541943e7ee6feb835314c040fcd907a67ab42420b803642533af8b485f214d562468236e95ed885d3093036169f656b28f551e84167cf1c6376f01eeaa7694e52ef5c3c34cf832c18787087e6db19c887fd1cfabac37c42a93c3646cf1e5a346e181386e9d854dff271d7921b8f67a9c4eed65147d825ceab209eb6a54adecc02eff4ecc9674ac407639e44f8bdae5756d7ebf5bd2eb37e987f5822a2fe6ceee1cb2bfade11a0351f6b4618bda10586f758700c24d737d63a7552c96059675915b2f33cf5c23ca9c3489c37bf230aa1b02a090c408d7840c41e08c82567ea451e5f0dd42db2819f938cd1dc5775f29d3f94294c8a711088eb1f04ffc91103537c583a016a7d915e30a9ea469b5edf85a91b3c0bc799434a000d8a7ab5d9a90625d2e48d26faf0935eb1ab78c5cd24456a7317043d1b2f27466aa645f5228b1b83441d59f6f9bc98693a652e38d13cbd45cafe4e0a3fdf98927361af6412411e265ad74c9c6312d784c708e988c01d813cb034f09a749da6410902c56c416e22c13761fbd0623492fec128788cb1920dc970e1d831871d38cd6a84fae341dddff2a6c4a42c68e0d9a7fc498f7c1f4acda60a4f5d0fc533b37302fd55d6e0960ccfbd0aa38b4d655bc03fc4fca6506e499e0a549f0c55d4cc64fa00b505afdfb41d6fc122f69cade93ae3ea09a09eee180b2df628a6845adc5aeb35c73194fa63f3a5124af76027c96cea1e3ccb3a8b415910dc773daab3e6222fe24b5b2096313d2f700fc1391c6f5e69edf50b71ab8e9c922bf4fc05cc2027591bc66bab07417f932f6e039ca8c2805af7a03d18b225d1413213d1392f5fb3eafd63de572f20f6f8cb7bfc382c476d1be90ee2e04de64fc66870b0ff99f1407bd9ad98f75f3ada177377e7acbafdb295f47683c306f0d81c1f1df287b18804fbba145357a722df42e25de8160e81d7d5f9ecbbf57747fc0d6557915b0a45c3e4c557899c07c02bbca2c168a5e2bcfeb15240582e4ced2c2eeab419c9d1b37f57819782f8e8b82ab51eef1af5957a9619c00c705e7846804891cce4521a58ca8ffdc04bec29b7596052e4f159b26d66a1da4dc11efd3de59420123a49582198acadb12c3762e8a9225f17b553b9f13884dbcada745755227ad24150f576205c1bd0252c3c09efc9c5385ca6f3bda79c65d9dd0d15ed1599868957800d0e8a64370b72b36611ff754eda653035d06e2d055561e4f684d6c70607d210c6a3fb9d3096d591f7be637b51a99fac5f0c9b817029a99916d891f396aeb22d5ae56eb9ea8af96b889370f91443a308f8039dd9bdbdd9fe4ce6a8b508476792f4689820635f5f9e8768f831deddc785bcd1c459987e75ef69a7efc16042748c15b583abb26be6af520da6cb5efa5969163c37552f92fa5d8474db45137610d57465114d0a38e75ce60891e55030334424e9acca992ad72d0d6c4a47bad62d80ea3e20d1419524b9407688cdf43de7dc4dd6a19d4e24321041f4b8ef5b6ffff0695a9efe68d03c5c95def97227456d985c4fcca6f5405932989ab408ebd32efae2e3ced3c544fe47576a4e695a97914295f0f82575877ce925ed99e474c1600e89bd9470eb2a7f6ab9146de816d317d8ab716139cf504ce9042544318ced6efa371f6076e4f67b03ed28584e4d7dec9b17db2724ec0f15833e619a2f76bf691d0776559cfb9108829a1015e88d5a4546d867133ac2bd2c94d87dcb5f3f5762cb14b8f41d7b3c97a2591a307a7d5fbe87130153dd7103ae4ced71357fc06d68392255d589135a98cc53f8029fed8b8c9f336dd82b5d0be7379be6a05d6cc88d5730f6bd60dcfac6bdedb8f668428228bf7856a1f0fc83fd8dd407c938ca5eaaaf0d05c4a706030ed05660afef0d756104150506e16cd11b5d93f67b11573423e0191b3791bc58e4f265b4b4cd0430caf00f7d98c509c3fc44427664578e75343698517f3fec34319357351a5fd1ae63ddf9101860eb7a2dd613aca9f289bd14c7cdcc4aa8a0408dce362042326686c89bc2a39845574c108a000d555d3dbe4b842c011d89feb9f89dde071d57c210e24c62e5de2b7b579680f45f1b66ea6077917c7162087a39fd230f46d8dcab390cb673fa6813b8d9e4e90c6e5978e580b044a7af447170dbdf69840022c650ce842f502424df84ca4de386689b0d216842178ae262dee17137afe736b5871cf6537ae0ff26532ae2b08a4000dbbcc56b330d9b1a2263f4bc17ed2a32a2b8452409d073d1217e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8558fe40523c8c260d4d7c5586b07794a1cbcfc8e51beaa4eb83e023de7e9fa5f92ce2ea94565e2e1860edce04436fd41f1a5e1864e4b71b9c5df4eecdc88b4454253b58106e8354f65f5eab566053c6051dc159c9026bd618b79258fe50dd6c6b4600c7f294c35502f32ce2b7d57b2d7faa48fd98e6906e70df9fcf3e13869c90c0ad374482678e16f1cef0c0d296a3176a14ff2ce75aea2a538ae2a5da197122756ec23861533bb49e42467ddab063313dfec96f7ebf3b4a0b1996a48de925747d529a4c6381281c93376662e0e7025f7dfee53b7faa4b55dcd99742648be562c8096fdd1996f2c995706215e0ed7b43975699399f937ba6ebb5d67406cb562d2879736742e8dc5c828ece2cdd2d37df30ff321573a532e9ec3b655a7651b08c8e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e4c3538b06a7f065c55085d3a28000173099205d284b07701ebd7ff515e4e0adbf3eb9ab959187480701901b1fbc0ac5796267b82dc546b2b19d71e50d3347935198e7f8c24e318b3715e6bef4f7f32339d083f0b911cc72b502aca9773ca2f49ac1fc33ecefb5d8edff8b318d43e3d7ad0a206373b1651145eb7b84b0bd347cc0fbf8007054194b01a4003fd90e68fddc84bd7fd0ea0415a7c4212084e87f0f691919fc545e683f3336e9685b7b7f2de9249d4a0f829438798660bc2aec1bc3e9c851e87bfd480216ec24ce1ca8fe7fb4f8ebde34f8b3528c1018542e6a3c6228c03c9013c1f5a3e2a8b9220d77f3d100e06e25da37fc5197dcce8619aaa1c7f4a1270a17f6b55a6cc8ac416f8320d534198e5ed83607230362fc493469770c5bc089305c118625c3b7dae00b5d27ec1c78ab54b238b5238b340205711bc86d9c15cfff2c5b771139d28139aad61b535f54d6a31bbddfe7d1468feb766f8358d08c700c02e670402879f5252a3a8c574bc06a22d2e6f0b39ae3df3ddccddbbc75e89e8cb695d334ed9d9cb2916297fcda7495ecf0a58a13d1ae1987e88ece125b31d5034b36d7266094b4987b9665d32b47846e077683d0db92d30f4d96e6572d4469017a58b9484287086b3370a3afcdfe2c93c7ab21723f7435cd8f6631a6abf498e33718508e80cdc53dc751c170359c081d395f97bbbd9575cce0ba25001346971708eeb2d01aad7d007251ebd9055cec813ab00d95a70b430262866762fa873e43bc7291dec0e5180acfb1f45821eeed1284ebe945e785955563cb1b7cc6a4d280bf2cddf858d2679a55e105d31b1b93908a680894e347ba9f1b1bede42d6dc3165a86591c0af5f1e228252b9c495dc4ba8aa23d201805f3081b9b67bae3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e5076c193abeb4027041f3a5f5e9c1e6d89d3ea444bfe4d3c87c68ac4837e168e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8558c6e17aee23337b95a27c182eb843d29e5a4b89755272acdcea2bf161b214444837186d9d020071c320d765a471d087db07737d85b2843ce81bf70f51b7466a21331c78af2c5da817faf9addcc486c1b9573920d0f8687fc1ac83929b1abe670d12ee20c700ff5dd5ef3d6bd6c5158888f5e478a522da7478c86815192fda340d5eb33315a97e5fd5983cfbd7d22c01ce7f585de30d77ecce1c55acba3790347d826c6538e9616a1b44f288a4e43846d4fc0f918a0a73efbc486f75ad208542e9de8fc5d1891069e46b805e45a2ae71883e32250e8d250b54e6e8d387b6f8019a751212433db218a6fdd146f02cf89df31758646fd37f7de2f403ca3cfaf52a051aa787e006f117fa66f9d2ee194468ce49bfef6169010c1ef2ab865c0f6b71f08985c1dc60451026ac902c85d2406aa3616516490b2f879598e16919ad5b95c49196f24cea409c920dc701c81c1289cb2586e81d477c009fd1baf204a2a197f8ab2226545ea64a8165927ad7b7f5a9c5a59e72f32b0e8cfa41cd207c92ea5fba88a9ba1a26f6677ba2d2f464581bc54ec54cba78830fdab0afebd12570e659261d1cb7fc41e4076cb0f2019efcf0f31e3185197f859924649da0db5544bfd648063e0bdf3a16f3108368ac8853aa98fbb87966f85d62bdd77aa6a6efb55580ac023aefb3c6b798536b9ac1310bfd6542501647ebc7feb4e94b61e5fad867917abd7940584b7e29b82e562ed63db15e2b68155bb6a52ca28a80a0fb5063ef2a71c53b5f5264adef7bf6f12b3e46d95629b21c9ebaa315afb1e57dfebf9a3553ce9b1ab59c54cf31a15ce79c2091f7c66c2b7199504363bc1d40d187f920e3db76d37b5060785b6588dcb00b4a1eb7efcdf0ac454b6f77d8289ed1dda737b777951d40177b2ea503d72f2bd97e8ba558de0795fb15106c2074da03e875208ead703361308034ea00abe37a2daf22fcd17feb6584083d29cb93b5fd14eda4a94f54c9b63a9e628316e1b712242164fb74028e41c23391b6724042a66c2a52a4a081e46f59d5f1cb7bfe2e95bd50f56f92fe170c43b932332efa2b6d02765827686e442e326b694975b1da58530d4fe420fa3dd0bfdfa2149f579af8b0418fe00bb13f9ba854b1cf3d7a9261b8473320b1a3a5c2092f653ddfd9d1b79683faa5361468b4a7bf329dd67647104ca5e83f0bec4d7a1ea7b633acf7054ac57d32f43d707de57f533833f11e414b939e5cce282886e801118d1cf4419c743761c67b75782596146e657de6ed6e9c82178fbfcd5eb4549d61f7a2ffd9cbb75f95bfe517f4acc4913f9f3a0ee83c02f1153bd407550b37d7b56d39b6d26357531e14b1802f95c1634a6e1cf319b551ee110a76486551b33cf7fdc294c8804a34e4b444ef213ba2ab4e5345ebf8b5ea10b83b65f2dd74395b8537592a5747f00b135eb5840d0151a5f08c4bbf9230c23717c4c95104253febab4b9143acc8951f375504a3a64f7ef13326b254ea93629f3e7a798764aeb69eecb4f1698e1d41ff0627527a5dbfcaf0ea5185875248587348baf33df176a3296cf2840543ac4bb539065544ff3ae4b2783979f469f27788a01744efc68b54aa13bf6f2e345fb7af52ac5eb6df001a0ab4b458050befb8a2a6fc4b1984a0f912d07554599a08101199d754cb810a300b6b809fdb6f93c43d40f2a62ee288a1d181fdb828963c0aaaa62e453fb979c19332fb569134c4c54d3779f1f25cd976e2f41cee1e4f9dff46424a216598103db0b58f0664f62c51287c1fdf37272eab06e42fc15085676fe90cc338ee4fef6870b31dbe31b926c578c2cb1b67483d9690dba7fd46240c525fef23be2f2690af815242250b1b46764d8f03e0b1b3b416b8d6b39d39e0f43a46df28a37800f266dffada811d45327c930e82971ba78f76f004d677a29f6b5080739bdd4ce3b2397d7662b381fcfd8af1292ab92a12af7b4e866e61d7f23b431f49656c82be41323b38bebf9bbd4225363017d2eeee737ab186c76fcfd93f0df9a99f58dd4e078f3c283692b3154690d39a3fe9c9d02c3b0aba8452c5b109f40ef7f0d2b11667c9de8deeab80f02218c5976d0a2587f3c38e8542d2131fdff5fc0066bd2079d494dccfb602ca43a6cdb0e090688a9560447993ae898fad94521b472b338160aae0163c8ddb4780313a1ddcb09b953ebb1669acd5465448c6b885cd5545c36161adb699e9070bbbadda229089d593300bf7ec3d694079c957d4e6327cb106c8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903b1842703b4253d4e037a5a17d8e57d436483cad532ff76eec92da8443c463d7310c99ee8eb2dd56e6f110587cdf4dc30878e7f427d27ab41c7637763099b064df0ecefb8ea6acaab244232415b92984735aac9b6ee3b3bf3df27c8bd885030farootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootcloud-init-23.3-150100.8.71.1.src.rpmcloud-initcloud-init(ppc-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/shibs-power9-12 1703255741  !"#$%&'()*+,-./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{|}~  RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR}'$utf-884c67fc0711e6565f14c6257a5608d2d9b4e97b9497223851fc12c3166f86732?7zXZ !t/ ]"k%%1ƷmO8uWV/ݷumy X́ $Z2JT.fl(p]ae`]U|yV rܵ#cp~ @WFú_=skx}sv b֠/sMU3bPb-h:B* )Z ,*S`39^!7Nۓz\CJLڟjA.۲sǂ뮱sUj+ȇ(z"!ZwRZ(FǸ\%Nd[T[ FbµA_ЕsXg}ѸE뢐 [̮lhhΥ4L^Yj>L]GEXPO]V߁N\/Ͳ>^dmJ;$ZV X0+uzTM_+dzto EǮe2b [N~(=UqW*cܑ0{t )k1;H!VhϢmZz02jB{| ={f%EY=݉k90.ڡK'҃yi>Wz@˵0!X{RhjhO' Q-Q4#|sthhfAoޑ/j>ԊC )b>(\޿$7ͲZSsݵ8ds+Cbx5dn^'L [PEւ,&8%نC>HWu1Z}ӜX68`BV17ydcd*f}T端E|>t m+A3,1sg3fiufnph5 ݧא9RUY(xF3F} IhxrM%hߙߓ}(MV \ot=NC}xz@z* yDi'Ƞ#ˇeI l5H~!4+ozE8/a$ڄ*)T طKբV;Ǿ  )lj/։ju +߲8$fnw4OrZ Dq]1)}jj=ׂ~ЪH,\7!|9Y8$0j"'9]xXą橖<_GflkjJ @8IӏT ܲOwsyFG8W jͿ7{^x};{i&cȁK8JhKkaŦY o!_%qZC Blߘ[q/܃nP_@F&jy |0+ynb kE||bLMC`ڹs$jis~#nq\e:N@]STEP=QGo̴0%[v!YFLDb2lvQyh(ygS.dG ӻ\Y`Få4xkrXF}d @>a8ƙ -ϠDWgw(gMV8ȣv#=wyHe< ˍq)uo lJ25'_4fGsrjrB%5 ijt> oK#[\׬[caO/1L'!78D-~Y!\Τ &SxW]VwY{p,rBgָzJ8״UK$<=ζ̪.9&Xr劜;tq{pȼ=hi~٢K*I *hH({ σ;po|{ɻ :p |ɫO6xyk8/Xyz ]Rxk8LㆾSQoAiIOt4dN;~c[ n6.&WM&6 ,'$L4z#k.ﱹ'fApuO[n iM=`@+@"":21<($N\AWa=iBd'OEz[DFeoA{#5\MST0N(4HD>>04pҧ{fWv3gt6`BcRأSM[Uֶ>VJ|naU]P"t<:"a:]Omzz06y,?纒qvC=O(X;YO;\ y?&:Yo]%+Su S^ߍy>swX_<%B~<;3@j0w|m9bjʥ)qmmd2}]9W4#/J>a{W IRM=[KS[K@kw*nUR=h>ôxsSsN"nv B[( o ۮYeCK;“d׏b>J5=\$ }?j:Um_g33uպ'(Co589Gq(FdAgNfĔYn;H8ܣ`qpuN1Cz5~+Ox^sO|}zLmo3}*s[ 9~><}9ݕcd36GyD0ծ4+2H*Z]&,Z!g~ %aUn^LRM*A Α(o"W}tbJw"TMѳۈf.-gn{!>]s?+js@NI ŕd|pa*~?q~S*_w 0m 3 @a2<}I./s_H+ VmdݛFϡ#A?3J(eJdu֊pdE7ʑ $[U.G^@:OL]&2<~F*}G!Vj-`MzBpv!3D_bOBgZy"h(hy< ]ªoZx/g e:;s?;UD.2vɿw3;Mbh{j 7˛_mGFFOْ򬷥"Wi ,3 , /9z?7REiл/. C6N Z\{jn('Yuѐ\Xwvl&-6pNh@B63"# Qw)u.g0-Ev YN_GoFF׮˩A8֭NPDJ'+Q:OiA@>K/? x#,Ƀ:d4J鄤b?m^6nN\OfH~!!CK-wh/#꓈S.e?brAs3L h{ .IHeK}îLm25-H$v5Ai^ yۡxĉ̀b:}dɶ=0Z 9vL2m/tiaF2 ׉p]Zn2@7ھOJ+]'-J1 -AIqYxw6k:R#$;|nx2["/ mDI6it ]1F[ ǫ/{6<ѫS綢ՌnHn4Q`b !wH0"+ ELaßJY۬oA3_*C~CՃb8{M2#uXv>L @1<ܷ< Bppߒߪ9r5i^!'/6% vvtJd$$&Q^F+vlS"Bw["яp0&)nMgUʫŀɚ:i-t0Rڢtgr|osU R{t`P@XIJXuPZۘMAԭ (-1 %i+oEKD۝?lr(s:,s"!G!ws{1yU s$~e;r h`!EUo8%sXfJ>bXJ08lM*`6rWHEo6`q/Xvҷ~KhzGR]nmiIT4(͋±ʟ#n^㭱0~nN e!3q#M :K]$: LG6'ZE䮣WqMKAgcv(:VrWR=C+H<-VP;~oD0*WxIJ]nrm[`Mu0?{":M7Kڍ6gl?cD3AX}ZPf459!p:ve Y_;CgC $7E-VB)߸~tf'GY8#ۭ O9d Y!;R8No߇`m5Q?4:!2z^=\V4d}WCJ]v[9`s[` /OriK#x<;`lOSI-SaEv8zoAt/zd:$CbjnwLGjdv&RA4m+0%PA6Y+9RT_b]`yԦ-UsmXbQ6Ʒ$inu=?h|.Qie Xc/>4և]>kn$qhA4iu+$s}ip! +%49D,;m㡶D{ۨ`-}Ca6=@:^@FG'^_od> ):yC?o8I@8pW5lb9^.ㆺ _hj1"Mj(c(5H&r17*05"=) =+̒V}abI%q8H"ǟN&t80Ҁ͠tM iwKU 1 t\V_EcETxF$4(zd ?pJHe\o Ooc?dYҪd{<$o,_~%㏇_b,  =U);;6[;046t'L?$[XU)CfQxbw[U4Zo$٦x L'ВQ0/% 2QC*ѢpE%K1ܹ}Kh:x IMWt4zd>?^d)Ց9hS9؛p$I:i'_>ѩg"{Nsw)bwˀV\pI82g:9 #h=?^Ԇ Xɰ8;0H5ҭp\@BYo +V7bR5#p(&hE*g9`{ULlf @{ړ6P~Jnx5\|)݋b՚Fu+8m)`䓯!iL9Z68a(97LZa-v2ɞH RTlhv{kuƝg&%ິ -ח_ hbԻ9U2l:H$UljzG-cJĬA?~_} ;*L9gI<^GzdSO 3[!1}RI1!-2.d xZRMJ^,YiRPz'$Kj]/krgAr F3l [c{00 TUN0|vņIeAtS2`/}>{Q /HR u;XڦJ1ixV8`*[RX+WZeFQ"3 n֬PGu!6 ܭ,Td, g]!41UT %]|:#f^2B<=p}Xnޅt x}[3;'2S :fLF6'\jfw9)CN[(µކ2] 0 Qn[DVPz) {Ljd! :O_ aD(%C'aK_T\fP/f 9D9cs%NS]^%OJkA#(k\8f-֫(RdPZ_=`9_w,:-}ؗZkzR:?E!V;zr`0AYyĞgq9"Si"7 *cIuP*RHR?̝֜#w5nA'@ 0zÊ@8wAPE(O}L^h{xW9w\t J VeT?vz]<Ҹc  9sOS3Wm|A礮saā֧X$(f*N^yGwI>vu+w%Á$T\W௏à!zR ұ%>lȍ!t3wm(`[?>Tn泃Tc@mOGFIb|bF&@ٖdI56:y)!|:-fɾ2w%=FNZ*ANˋ?|.^-"R#suaà-z )߈͵T50wgHAQn_!OQͼ]U:Dah=3F\ͯ E9sSy^sa ;)kbW]͇Dֈ=fl2`2_ j[ ['L7e5((wx\+,"S怣 {ccAժo>rPZ o/A ݽW1;xP;%G—z4=L3[AX-;wUlbbIEDB&9>ũ|c|D †F"}ɊlJo_Gz+N9PnL&_eil7';wک!{ )ubd) J:bH ZL[9&  '%ب9巗¾+L|Ƅi'ZV{H1OH"@ãPTwWg#ba~p_ys܋R47/[~3j,ɕHTǧ$w'xbV ƀqŏLShPr D;Ѳ\pr])vaܠA9J dkP%JdoR_V;t*$>׭EZ@EE q'p~+͛3O D'.18BGԨqHJ(+ yy0$%o`e<;{t;( JQK1zKH|$?#X߶p㺌(qjD)DEǁB'OtIlFA{%N.`;lݽY3pTojEW;qcNhk~I4Awr֧4/$[-ID%=>:]RB5'IS<dڂd+@wboY\7 wTferɷDHwթJvŁ\K= H*IjENDPExh=)K LmǍq Z,q*̭PR>&htf+/c$]7.tA{n^G. W.KF#|/_#i'^.K#O5fW<=ېmc(: 3XX' oTb":-" 8x]Cz-l>ڗچ ]+Z8`M~o ݒɽ??W\m /_Ҕdr`X tJ/71{<@|ƫIݸ34ZMt4@a~|J|qĻﺩ 掀ny8IK}z+-?#멨t\!day TA=s\wRhNT‘0γVx+sEP4IL T -:ƵW0?UH. J)ץNe`({}.' Қ>~M"{pM?&ny mí- xGBP_7PϺixC\Y@Un)`}Лt@it9mD|ChՒ3l5UOCZ6h=W5挅 H9@ {?RKz cȇ6DNdl>mt8پ.tjX,{Ui W.̡dr{f~W'lu"2_X-X<ʔڈq't/ CG>eVahmXJμ_:cefgM~)|CQ$k P/Бdx`w2 E(o5ƚn;὇lrǢ]XVG]w:4[Gf9>G],2r0a`i Ibm|c# Γ2ڥ1EcWkbT oR/FBĆ[7N*,HF/)MC|Lp{~ ҈>K%ZZ]46':5z,QlxP{;+ Sȥoe)=a?T8̓s #~|cUkMF jxVe=ǔIYϒZG]jY8vcA Bg+}Q[7:Xyf`bR?!=r\!@C}@,ݿ mpF(%pZS!KDy KpO_Jk-ܢ{Pyݴ";En@Ӵ3nS|_LJ-S z5ˮ劺3O}%fv])ϿݞK3 FP9*UmQ%.GD1ح4kc6W?Th$hC\n{ Tӎ,`<ɤTA EAra M'Zk}>mIU"O.<;~p@ZxuY Kvj|azwUȊ%LV&˲MUq1tH8Oʉ]('5!}"o읉Dg ֮ ɎSQ: 7{DzTKta&˰)[{ɱ:ԗi-|u6FS:%+jĸ@a+#\\kh0dB SL^-@|C.d "Xp&F]jr5twY/CZǮ VJ̏nu؟l(MQczUӖf=)h33Iwh$fg9cj%6edt ݎ4R^yaKmRIͳueV$zh#3 +%qxG&Pi*~\pYn'V)LrOː4o o4wJ:Ο*O{2D,aNdڪǗ*CsR5ޑXj,,cCi*w^7 >kVē.Dt ¿_(вI;C~Bgo!͝a82aQڹ[S1(Z ~o#g/oikb^aXyaFg<+_Un7Lw9]~{E{j$  9_>tQS!;J6uQDzbRL7τv$1DZw9OYf+yR@LN^++Ƃ7&v"W%ߦi˷,* gm{#pǥh[IM[S@;G8n_'KUV5[/`PL V/3a*~H/DǨTaA0 [NZ]fy;THwgUʙǙEJ%Hw=ij1hwGAk"sD[\QQHXnٴ ]3Myt7ޏŁ¨{4P衴k-$ˮ6D:bZ&!'_$ Fc҆\ 8}yriKLzT/bЉ){]gҭ:X 'aA8xtDSlͻ*Wѥ=$XUW(u39C7LN8)Y72BҴ{ˇnލ?Fwɛgf~KJX!$Nv{-e|ݗMZ:=Pt1}_V-OG˨6Ә|頟^q .DwH}uzbD1-xZ/n/>tICZZ%b4@ձߦ;RSlat +Zκysڿ@s\o9ϻ:J"s?RYDW_SΆmrii =TuT״:! wm/ODZn>'xF, rw8]&l}GF6ke0Oj &ĝ0+H\of90s` 㪫m"$EuFVw5SޑL=_bP_n<]jчSu| i>aZ U W,$&c(-գ]ᓛZ"lԀkNw/ǓfB$17uSpsKfϹ!FkQ`^ C^*-'+=G@rC4H~ۦц\fsx) d]>ȦmT!l}A6X?3Cd`se")K~U{Ǥ.h_[ItfgHzQα{ڂk}el0|B>TB4FI"kڍցv7YMNqH<sMY?t>c"nA}7< 5W0^,sSTKTAPjdZDmX;d4+?+uֳW|}zHʼw3:ǷEkȳ3W\lj(1B)d!0@v4YGqq4)uNI]  p?& (HN4TsVWHY Uwp5VX0&BoYvO kCn|"s6[G*)bE$wA${/T?]--C0g`T ${rXJD3fdl,,,Hz%<[&4 %ST?%mNOdD\v&ϖi"dɒ a2q7JyB:GϢa_=8.0ۃ>K)]NȤ[}/~ ^gM9V%4^Ms|צpAW簵=e(4Vs~Ah%#z Ll.2)z$߂0.#E4,u74k57{TBMa#rA*T+kѠM ; 1Y\в׷iD>;u`Ո{Un|1>۾QK)M\ͦDQ9L`[[=FU$s:'^ወ]"cD QVY$EN=$58itIwXiIg J\K W)V ݛdo[΋}->yLGdCUc9r~vБЅ$S`s }*y`FpLO.=mOL["RD ;R$&"luEA:~ S-z)B5&I~ϛ4f&ShtZF,)aLQS<Q"askt9. Q,Y~yF*-@ϧ ĚS 4KSLOyO!6I iiiQױjy*$J8'[+|jg ע0FIUBĠW|9¨ ؙ & 7>.ye7!Wfؚe l˜λs#SWAτd1sޔhq"pGQ0-$nDEJ?P3 zC{޳Wr?4MĆe l)WD;=BKPR"FyuȨCPR퀥pר 4ٲGO%l3tYAv ~/(ӗ|Sj+8=?ϛWmT翛%K NjG8%9jA SHfڂ\%iJ00QDLngU'1+omÌcP<%0*{h=etaX~LÂ2`G?Dp[, & 5xJJB78MH`H$ c\]K b*wD 9Ir1vDʞϑwR;; _\*/n*Zj)rD^T C(o>jz<9퍧L!گ4w8~MaCݛUa 2Y?ܯɺXK1|`A;F@߸2Nhw1Lj]T:͂]W uh>]ِQ# >B)u68 bO9$AE*T%Ip@)jo3s{b3z׾^K:NG=ny}u5Ye%u>Bs[^yfJӫbu8ՒeL4W<hJ8[&x(.]j_C4EHU#+ Hݱpj kUd0c´3Wآ[(UIeSub3B{)T?3*͊5a"Zr/3~: Eoګ&0D,gZtfh.N<' ?ҙag9Cͱ2.>i~v-OksV"~tgmxiMfaBL] ctjqzX;ÄK뉃9mzAfplhD&] Ҍl<?׭J:b.'=7ISn\k*&el jyq`=ʞ˹}rh ŝڻaiȞK\p=Fq~Йj񪸉wL1d(R, PMsPP!08@l/y/aCLTf7NW74vEfV'teq9,nD9f;oO%{%uoAKҊ Kb'cHP]ʌq ,-&گ;܀dQH8oI4C]o)meh ^>1뗶\6G S? {ۧ! <$*}jUTj-X)nDw6AWVCK <_3DhF2ˆTU#UY82fFHϏ `ᣬFν }j=ד$XҨ 2wTEEz@S;v=*4UKSk%z'麠Vl!$-oN@ogrg[bsYΥҴ+%YG ē&ӉKNV퍌}w~=mz3`@^rf6\Hb*y{0>B[^Py]%S[#fc7gb &s_1:ټ?, 7Rϩ0|\@z۳h" 2GE67UN:Aee@ak`5t-ޱc%DRqŚb>q.UBktʄ|k\C[YeѭP~.!vңГ`(1C!(iUjr2T^0DbO`fţ%f/3a5e+fmvWBQ![nF5nn]jQ@rR/Hb&J_R\Agb*2Jɶٙ *x:'*<  V]a<vf\-Xj/W/u=`fj[w^- nAZ2'Wk%͉GA'޺90ٔ n$:=&CNU< iT@h`,"HM񔧀z̊ 'HkE+ӒJAa^+6tq#aFY<,_/u!l]^> i:w};)ok'͡2( md /iM JK^9{}mϧ5?ӊ: Ď䟡%F#LJB!TG-o*+wGYTa<9I%Գ 4ஶBh;\82oQ%ɦuyl߄ڂ\֙qVh2B:jyfab%>#fFXf ZL18+p^o.#7Ҏn58rOءUޫ7,k.S2֐ZE:v6'dy0; r\)EGר6<\+1q/}QeZW)QNA_YtߴUt6ÇG)%ŬJ {3I+HIuým/w(Y>'y#=`h"kƬ,X^>nE>-T|xvG\cJ,7=:+5=Q Vֿ*c S體2I$bSsXXԸ?*Z 2_Q^.A7===m9NULx@*|7>,ԀTڇ&Ri3g%!'_$w…RW>Fb5 j%gy I ۓG濭Dʿ%qoo{) ^IuO8?Y?gP 9!S{]"Ԇ$) 5).D6'xR7!Vp( '?N؇ sZMM}ǥԴ D)VZ7ӋZ/TvPj>Τ2yWGˮ;䐑&]|_q m"dI'wraĕH8vPxgNt. X`nV&mBv*Ā2_F5/hyXX XHJLz=--01CUm&NgQU974$~@]r嗛62KtjDD'uچ69[R&;E@k5Ll"p"? XBHU7¤យuсh/⛡֌W<ʶ Rm^#o =| :hmgfDLr8MQJҹ( (at{?#8m$[G㕉iE]?8 q8s}l(g6(#[+M3!5ɢ#àP\eo/f n127#D0ed/p vpCiM8j4Ew4e/~#[&lϋ-WN˟މ\woK C끞rO 3x֎ $DZ>NJĒd PHi5/M¬W`;$~a!0? HoG~]uw1`'CutU1\NGw(FW#hds5o \rC렷x( W ᅆͦ' Ojm.LFIoZ8Kкr&U1 az^$һF)- Jwt(i1 #uk<}E6F8PD?/dVn*$_v'|.=LR,7M̻oya"+fgX~S+{9#N9\n\!OM`܅ OsF~f\:Brktd/RpwuF3ngMDтj"#?eMf Pؚ4TQm@EPHZAvkr}"VÖpB\Q=Ҩ‚:@9/Xm4,y Ir1gR[4(EXNŷ~aw"3~&0{_ h'QΜ`<`&<;*j*03aQN.@rZ:_@щ<zсo@)w" do9f >U`sLz75vP,9NX /oMYQ&eLJÓYgGK;8۞Û{sZi)0#qk;MIu[XZ mNRRJTԟIS  wOvI~>90c~H: SIcE j;7MS[53v)ol& p8nM tI 2"7R3@5. 0%y-v܅z@AW -76f>d`U<$"~Oh-7 mJD|{WiHï .2ƥNz6$ĸ#Lg_<#'}Q$i{XbT|z=&;#Doݴg!*0E۱,byײ=ƷUMeAyӥ'np5Ϊ;97EA,n-ާOYʷAYm;E NfAyp۳7V~qhCDN^> {W~{>>Yo-o䉴:WD]]{Æk D h7grQ,XGjs7$1@e2/f쇥/}\R6AƖ'Dp+ĉ zoxag襢_רbgƕz3^vLkvS+8C U*ꋂCItQ;'Izume!XDFdh(bA3+NnpIk&ĞsK/aw(3h{@UV*]42_ДfJLZYݬvސ*zX\}aWpsT=Yx?|}[/O_R5H 7С[S\WOGzMߐ$(UJb μ%#ԥW1[7]r-Aw0?oq6#$^9{H2b*i[QvGuM)"CE;`},n&F1 =Om?1NmOmKB/--_yѣ,*\`މSʞNљnK$Fc$[NV#H` ՜aDEKBhO BDÁV@[Q62\zj9 F38V &UBЇdB ̕9Yl՟ԗwmڞqL(i2$ß'+GF3n<4^V ]U1RQnoͼ(S TpZmd3څ,x2XxwV,+sÂoغOdIoS(Oxit+S)KAg,sT?mPtMd/v",J!*Br~9=kZQ) *- eTz,%D؅p%\͸rt {'pFc2Fڡ-MVdFG\u(9M3Ce|=׍ 覥f |Oĺ)da)%KWN:>ZKNs :wj[< UR޸~}Gٖ"Pv =j׮)RUE)jE=3x  1¼̫ٻa7Ѻ5z95*=]\p`"C f+}"cQ}]7pS| @Rj H"_5eN_!6k!)ϻK;I51 qÄQsYL Jar@x|Oܯ ZJT ŃD}һ|'98Z !eKF`G.̸P9=^2 `tg ݈ƫLnj(G_, Gqcn9(ˢy- d\駼> GYfIX"U$(QJa}/9M1ŊvQy|exPMo `^J_! 捻k{|?‘ɀM9"悠جN(3 r[!xku5\kmJ̡{g)ڙiViKڂ1NL8n3R&zJPa|U!'T& } 99 eƝF<.^xD䋹FzuNqɍPi>kWm+Иw0J[e t}ߩ=C9dJHvƹz<;0 0V |}I<1h!}5oKG;DwT|Oa&. 1xxT°*eͩQ2(}mÞV!. '([cXwD4U|&q^p˪BiѺĴG%eEay!9v/P+4ktﯝhrE#鏗HP~Yw(H3΋b\CyO 6?/L|RI>1 !'OKG6Ngi){b}2JOibȲ@Tȧ=0Mu\gEr\:vǛ܃M&TeV6`ɥj xid=bځ]xOm_J'NF_3]AM+teN/7#Z(f>P Dt9;i:nTS>4:)$;|B!HEͣw;MjkfN0ܕ}Ks.H\rz/YɏU "0m::lzbӴ>[fs!M%ꆭx" NsMੴBʙtyK$KP=4ߡtJw]H/ Y#/8ͥ@iV;9F=:|qƽ}CQ9 +> #-9 F+C[|izٲBZim2V (M}٬&ȭSX'mMy|dy.5ߙCXb7K V;҇7y  f~JXC<6Cr'p0`2 (^ CQM >9YTux6Tnn”z?#F;'CN`EI8*#RjŸ ݊ 2F@M12F .& UDMغ >pn|}^B/&ԝS#[Taec^++,ۿŭ|rh -S&_HZ$~ !tdvV`]GۀLɂ&5V!DQPe/S@d87{iIOf9u56-Rdb"愦R5MH۷`s~%,:c!]q)AW5REB08; \cAψ~!=FWtuOԠ-]X&5?6W/7e?nmnvB\)'vx'qb]FY ynaw~I eO@1 ^[N"cE n j5mZ762C7sr}l-OfqWtG  O 0r^)b[F7 ZF%ϽsXTILrP뤰코c1[`ITu%Z=fRUVS.=!NLz<gDPډ }r@]櫫!֒bSla *~e_v33mJq"C=pnBiFv(\8G(@y~apn:Y:Y< [ )Ө%  5L%m(w)~@6tWQ|4*A{5:U(L`)^.\=fԴDU<6ZBy+u,Uw5[}hrߏ.Ӂf: S?3]Qkg2]>_IU[<;ԋD<dIn:葫#vjTmƮo1J\ґ8rS" _C=VGC).5sQ`OVk'<~3+1!2& Y zqxZ;? !ᜦ#29ɫE{ ѸV% unv#.FsAR̼D|Xic9o}~[,Shat7B:?oկ8DeD U%łl*YPIzVb[zsl-į%- JAҼ؊ERae3yP z T0Շ9],IGgr>^@=|y8Fvfnx1U=[`DOpa`^_R`"Z9T)E D Klr24A@{&,J-x+zJEBk⢯rK&h-Q[^dBf<ƈ7}@-Iʤl p93ݴ;Z>ǟ}AB|Q]r;M m<43? njF;tKוG=Y8x dpG*J`D ջ]ok6]ޢ(=ɾcL?T0~osޛ^>ܫ 'x"%Xvj:xȫo+:OIu^T\R"y#ZPBBa634<ߔPxڡFwJOJj@{zje,lo2AHWߑt*yB?\m_t'GTPGx]6Ͳ u5N깟D>%hQl$,3aB(>3ww9ZC'2P>r-_PgbHc2 F}^2l+` _|fY6y3>.>r^JS\=&~#;LK>7|ޫ_*~S0o~-ޘ)RSg]ܿQ-֎.^y[f-v<Ín>xca`OMe3e݊-Al`ԅ@'x= o \y}/˗-]"[ZP0PY2IqYvAme\Y9dϷLn5ՇH)u7$5)~q%m7ƣ>9aG`*ek2.)&?.؟+BA+^ɣ'voC Pb _veڷ-FiH$enSrł3΂EbsH،>WiY_ 9ĿK:$z***, r  d`1 @ ?+(*Cʓ!z ?Hs{ŐTU`٠SpfGxr/CBDg):iqg4g>gHS/(4D$#֎_gK16Cׯb\Rf9JA|+υV7ý+m ؀@"dx^1ߔ;#nj|ӝ:O4~."chnH)_v(qݑ~Jd@H Z ʆ2#-$uODLɮ}x]O(?qwQP)7H}rMVT~ibr° _D\1b$DC\Z0c`n檣ejz"ݸf+ ٙUAtx?s*ِ觊h>}t/Z]oW|C\ :eg M`F oO[["HYk&ϷN7]r`h(Q`~"ƿ자J`˭ګ >?Eo6cPVle3?v* ,qv͸S@"*(Q:E7 A-7@JiK sgpc%Ap9Hm?P O&9IƁEJeNd+]$KNTD 5a8zɊ=W[FzYv_DU?l"[&WM~ 餤Nrg)ej{K, !xWl,Ցcƒ:4nDf[ :%aňmnGءK]Pyx]pqxfWnr/d 1SxA3o6Ce PCIYAӅE18vRϥ!_i jlA.z Ie,= xFSt&Νzsk8>로?/AR,PjfU؈Z"|ȧmK}? _KgJ\aFd}u'ٵ ߪLdq?|A p~ qӭB85w!8|\qTP ")/l_Z{V`u-.2Cb}o\OcQ)l2{sa5a8*+~i;GْnɎ BVC@x{pHeVTG_!=pweL}Մȧ }0:mҫU^;^WY.J.uAPvg_-+B##fӋ@> t Is 'k|V:>Lݰ}ll nj#B]k4@pPx=y=aqɲ4՞Vwəc.!;~L&dW8aPuݯv@ ;s~_a9}egW̭@, !-CB.%3yhU*ġ9N!g!$^E!JBSh˺JNje7Y`~ pV⣧0{1]`/X5+?ۅ~J}pѰ>Jd-跞 NdƎg`0)=3Nf9Z^|eBCS;Sls9"j{wlñj dRIę1QV[zl>ᡁ>gxmI fES\RDArw kR_om]CG\Jc{rx6@,`H(WknE^VuF"c ~aGW54v'E^x'hkn)!s#u*voε+䝅xFRrSWH11ЃXW"[1 ׶3SĜ.OoqNvD?`5/9[;xVmЃ%<06vՔ6Dɬ+? Y%S%0xPzX)rzr*Iۄoo܊@|O5}oqhB@,ov$[ǛhI^y+쳏IϮ^:1<ǿiܔF_Ӑw-%P,]rwʪyYjoSXB;hRڳwh"rWܶq/ |8QgB>vEc!v1riѕkvLE7qx/0 '?蟮=6&g]c-GLLU{{_AEJ((kN{8 [ . q!G!=T96[ttEF91+o1|U 5_QajeySU$>q.dv [QOk!t4p0"7H(:8NenblƂE! d5qԶD,qzj!5#:xπf9S>.;'%m"FjR%L%p<jz4sY2S{kJwP|)3 L #eqy !;q: "@dlU1_jg}|t`:lc0!#oYcUށAOQV@J|F2e6T-JqKDn:Q"Z͆fBɈEߙY4ŧX=$0W(jcE \^Ҭ? qzUƿcJ8NZW n6N(dԣ^i#+ 35QkYLs:>P 3F)t&X궶i ) < qDdo1e<>ؠ^O#NƗ| I$.L)׸,K?L%VV\D2Glk%L?V/Ha.9\NE^ _'væ, YwUVf2oz!Dm%F \_GYE.ٻ!6{zy,EtƙU3q9f9v\$epWEwC$3cQ_R*)q""1Ie=;'bD"1fzK5Zj.vN*Sa0eAup/-ֿT>6gS c҈u JA}tNIM)`!ʍd5!;1PR`xmY+jH^`${mweCO.&΂@`"cIixbvW4bzX \s]k2:jA: F{c]Ԙ6RfRzQw"ŸNhB5|RF w@a1،,,5JM6CC&cS5>T0Zw|ҽ5 >D^^ʳ>8>>^k훨B@.D+ɕa bnk`LD#/;.x\91qN`iMQ}Q+TOsS\d%꼨kHU.FAƮymc (r#<c/sc_,<~^emΞR ]w"!ĉtzVZj"78}+bU:AkZ" Y_7ͅ/͸S|4*vMD^L8e\|PKcKț9mE %愭}#(a-|[n %y μUkp,1J#T !}l6$=*;~ XVK ɩ0=k ;nVؼ8`H7r$L6i;d,mf˸ Rk#8, r{ouջ'!DlRwce?C4rb<)5ggA}^x^AZ?d&GsWSH^Q\K(&j|t tDJ_հ78WNPUǝrHQ~/A#]g-U<^N[iެ'8mr[մc0<O A,L9o"G!KF! lśwٗn+S<\ff8 LxdE#yOM^ y T$o+%V{A7N-^w5vxHy' M3}RFD/ 95(/-7yхi \fN: T9]l3?/OEQR*dg;T]הXw3g& ?SvV[&O@u=dJlP .uRї ;(?0r *O7ԳOu^A0F1-aV|dKZVOjoEpeu԰m*߰L, tܒY}^ϣiw~n\t6R%sU4詘F%Np N&vPF ;f3V] Pk\C26ޱN+5$(#(-IP>mG ]M@5N9Ǧ_h Qь }15 p pJR <F-ʣ*zn0jo3b˞+Aq EO15M / -O٧m컩PHғi_79[ycdǚ"({L͌MǪek:C $wnf{M">ވp{HsEeEVS[ 4 X-'#{ӵZ@:Z\jbzn;&;5΢xXvqՓv[\1s!` vd ? ƟƑ*cLؿyJsʓeM='UENOrk4SQ<ǂ ܰU8[YvZ 9hÉMzw4*h"u8Of D,PmM+NmWPf\Wݓ߮sF"J</_x7[kt-Ւ_SmܓYY<_Qv6$(a傄oKoDG{])mط0Ck࿅|)=#0]/9U݋u`Y'?eoQ rͨ;Ybi],cISHl}X/Ymھ%00dJ_oƤr. 8Y%H|F ˁzCߧ;Wc=f$_x(Q7l_Ѥ_VJfQV1:$ʼ&EH(&_cwa1˭ ch]ix@ 0XE)Vcے"zc BHLG/ DKpM\t)›OHƊxNr΢zB\/dS҇{vfs:q-BuTk7jy[7_j`pF%QMkN |MZϠkKLkh. >!"P_~*F_L m\,H8١I,B7*OAlؽ;&q]/{E\;$< wo4"tyISR9yxEbȏM]%BhAhd1$q;/ tPe,H¸j.6>8өx߻>Fm}Y0g7b[,p1fU #4gFg mȁb[ӓ.kq8er4-suM ^h\%$ erGҟ.u-~<>3vl /y1Ie hV2g7i8ѽ.ы ? Z_g0kdXX1l7e/ۛgGůo͍Xv L錘НexI5$,T Ļa lM^;!j7>o 4_Zk9U L8-A]MԔe(1.?>Zo(\5OXf}] Wϕ]m9;<łϦrmLLlGXBC>>]-ch&[C7@Fe\5y] Ŕ[s2"v^ _Vc 4z \ ƹfdc"zpOIh)ϠQk+FsIT;|pq;%H>nߌʖYYYҰx(@plP[:|kbE#+-I xy8B?d>1$t\F_7-^IFn$ʮnz0yςÅ@uT͏I SGnRysn+3h]~0#ߺ1V{;yW(/ENSN3 ]aCװo DRxGsU^Q۱Yv:ϫ"Evég.7vs犍JA_uhEy[+b>/2Jaڻ;oLǣ>eS5^T_nly22/3V13ڦ18VY6ɦ)]܀L-&bb8c@_S~K!#V<+#)2 "u$ƸQhɊ%a1QdfW~pT ;}?+_ B^vny# JEGraG(_W١_Jg2~x#/yd1$MW1/.nJ;HWO[@JKim-)z1PfNLPu^^>h7 p@F~ʺ2aip /HR?}lDNH%BU?|ĉs>4<5:8-qsM|朾ս$&Q~vre3$/9H !lK~1)  [IgoI_ c=`ſ6/"z;Ml1 |$M"@Zj'ӱOeQp#n<m@.9=cy0B|zp7l,]4+T?g)pƯ *eK­,qFi/ʑΧ9z[} a-ҏ)]3"o[Q6Tqm8zH)tFf/Г Um@fMB=C) %?6~>$3)뷓.~6# G|`s:q⛠s,&alcIu +3%nć-r] ˗~ʃrGm-$0o6,'h^ZW|7XbB!ol_[}#Zs76agfk0{|8TLpk4JiY_7K("x[X.n ADIyUy,s|VQY)nJ}, ̓<I TuD:k-Ύ%V> dښEwW`\?uh7=V {KĐ 1nt^Ql*zπUX?Jcarىt:*3k6L:叾xB` %=ORN&^{e푫i/0gG@@ bM=}0jn4R5zCzdA+FCp/$ݮr.Xs}|*ϤMO,)u gyB|Dp)33+5P˧7fZ!Sՙq;؃ )[$!T(TC!2q4*X~Ӗ( -Nƥ@_+ a 3d},ݚY:4dt:R<|) +PT{M3 <*.,J{K[>h "^x!E='Qب{~$_ G zwXmݙ1NLN4#sF&Yx!D~1RqUѸHxH3.sOJU?`ote"t;ʤ9*qb&'kye'V2't?fpD-w(G̖߄ҖXMeD(HOR~vjl;J$Jvj_mVV,L`\`efX'tea)ܬ"U^toHۋ$VSWt5W'ON Z׍gWOrr/5B[SJ(_)oBcdݺg]8F#)}vM}Wi-x0Mk\EE%/:0gѨeٓ^re0 ^Ti8ҺE=H0y[q}4_iX:mn *Ow2_9Fa6У&膎8R?2 !Dz+aV |b__izrfb5C53Cgΐ5 >a|JCZ#X󢩙9/oݲxdn_Ñ讍5izI!)B_So>#DZlm\{?ҒڭAŵU9 Y =Kjd~[?׋5!{k' -*p`k9',hס^Pjí=t%Q>gG"۽q4ӛz. OT"Z_=]'* Ns)btJ-Y ͼ鎠4mK4궎07Qفj>t!L.Fdpdߣr`5r ~$2^<=AEbʬrY xr[cAEpJ~$GmjbLtoM&ocWAv|bĩ$Vٙ "3 \of۝˾ꐞ5rWtMps![|b -(%/t;09@, '"{Pc_n@L $&~(/ FtR>x`rmmwaX|k ma6$O1Lo4 q*XG@8B^ EeD]k; YZ?(6"Ҧ,IUeV4<e\,Ale{t΀ny/3o}jC Q~/#TjB1l,s%C32׃N#ǔ"f) 06e [{$'I 5Vɇ}GxK$?pMْxRI#YJp^*N=?_Pg,;lq^_i F4uhr!L  7VKge:{dU:WN dӾ !U ^eڲ-&ޘ"8O($b*Kx\F@`3)A"G9eY&2Z]'kQrr2vm$&jUTK<%IME"@ [ "@Oۿ2W[&yx,?ɆejL yVoDofՃu#BkFƳȴco@y'DJy;H>H&3&Ä_Y0ťۢu(U$u`2cQ3rR8 H\CR؞aOEϝ6>V\)٫b94lT$`Y1R `zE7镄ai;&MD@B=zqEubjrt1dc ʢ}סDL  Iw[+M% ESp.K,0z]~cXxeŶ%͙VxBFOS'm1B̞/O1]K}T%&sw+`ӅڝY"ܢ+_Bh];e91nk)b)D˃NFu+PVspZJI&y% Hst֭XW&8#TIJ"zbk" Ileԏ6-:WF.B=N qfhjT_ P-Tw4ݹI|v4xK]X"?%ZcEwR(H2꼧ʄ ڭ\N H'/O%w;ѓ'%桖f\8%:3A&63ME #^l&|XV 6 뀿h8/];m<׌Z /Otc&2 ']x{ gh&6LZX h D~QlZ3?6ho^[o1DDwgڡA-5z-L]Ddd`ٵQVf7;I1l3^y8=a8!Bo¯jEw:r}0(hjv9A}o+ 0]qR |6BzoK9>@+ux`,!{A}|n'V[tVφ~@ӨO{9- 5<AB X>3B/$yZS8 }c_=|L/!PY#(@f*󆸯1uEh+_rM !%o~|y|N݂HMV0t+ x,ɿ(|F|]JvwU-4%F;Zzi1efxRŀ VpSWoee3\x& cƠ 0&0RO$ʁ~8;Tc8H3;Z02kXw]XA'.~5UJ'C$z--F90u7)l{azy)N*?N{0Oa!k d"WL e9,(o?p tgv9KL OgQG.bZS rhOB:1Iw&Y7Q!C6q_лiHpY)t.RX' l,{fAB W-6σE|22(c7)z#1fdsFHd=3( F"6f8[4 }J_űrae'dx (d +414Dvdӕ܉"V%Neŕֲjtk}xՄdʜEZUIRxvhg4hmG'jyLR҄}Xei9#GJrkܠda3r,4żq^BNYj%T#nmm-_sg}J A 8( Tθgd%nE*h F.pIľ&%%rOdm_y< _Zm5!R`~7 {b -6O*,UCaVFX:|506uҡUl;x_Ȗ ^i l|DQt~ EH25Ya!;eߊ EAQ:}/!67 z+BhzbSZ,|>9ׅ) Ŷk 6Lv{KH2yGxK6V.#Vt<*lmҜ(OTWtUmX鼑(#bRv83ҟNg\h਻)ڏ&j Ȇ,~G7f544M!ƦoZ\_~eWgi\-+1\ NDlYih BS?WZ{d ω7r fx"]9{Ki73Vޒ蔔OM״d{J`IV V%>BP {5kNV h# ɲ(u&F 2; |uZ?'2N2rgx*@5ɽf00, *U Omf:Kې0j>N2fӅ9^W2%̆KfdcL69b]YbLUh 5&5{[,mPMkp1(~Fd]1n {)U<0XK?IYodhR:73y."LalZEh`oJ;*QLh3mC,Cʆ1vʿ58WXx\C#V W81Q2!퓉,9Hv&wl8'#J_9sW&?Xq]&; Q?Ԕy!28]v2 _]I%$QnxCHLȋwg)7ZڠEwaOpkRq&_ vN+b}t ML{VrSii#ۛ,inYjy2cC6߽O4E%ڣ@[]Y,8ΩAglY:f. b4]$auEȘNzvNys,. W}^-W%+&w\o9iF&`\O3V/G^BL,gos߫¯mCdokMe6'c8[L$eLb|e Un;V-5`˓@;$@H:DC'sY+2xfvPTַW|F-q[A,2c%(+h\i_bi Sv8$#՟u &ď"s5\E^;XIP\IBbk3mOhMwS̥99-RPJg<5{%P~B2I$Uwg[Y."=LJz=uCaL1Y%kԃ?oG&/q>Ү {r^0 O Y/ii ^RWiM6 aٸ-`"]:7m` ,cyN 6aI== C}fL' ?,N~%' p EF͜ N[Ugr_-B\FYКFlU@cSnaۺb$m,p/~' iʶF߾otYx/+k3t{XVY`VK N3o#Msq8yb'5ZCbU \s*0'9|/'sdBUZ<%Ɍ/~џ41$A9*E(4b1i8i u` ?&\ +%KlmQ/,MTv &p^]9q:$uw$lF8ΒZ@ d\B1E"ŴʫKkXd')ɽ7"'Zҝ8 :h_wd ,/Y q̺ zx$T`l ./*st~IcnN/ўVVp>%\-$@ltO]i@*fՙ{e$xx\ k6vTi)ȷv(0ð|X[]0B33p@ U +CKYR! >!jGr0pڄP^n!s+pR9WXh]4V 7;<^LIy59G8i@p1)~ SkVn&e).ۚp[@ˆy4;c4^jT"*T[T"n.]@-Ģ{1V$=&wدvvi돐rJ Lf|)À8 }$Aۄ$)U11 ڄ0Jx䲀~VS־mVUJ8ɯx:FD 抦g!_rPWMK)k'_^j+2ŃΘ:=]cy2#QdMn>xC11QB C,60XwT,}At\:ʢF [iN'/i vzvHG2^b+G(:Fz+=MH?͗44fJ-0pE`'KQm&Jia]fBy)P4 <Ѫk$oͦ0:d=d&}:~[o 硶!(7G|i;BWvi=כ4^+ cUXĹp=%d;> oI8V:)^D=8;k1$=Җ(J(~emܻ *ّ:]9Llr}MHV!fų3*Y]nNǰ``f/euwct:`iҳ[5,4^od4؄΁T!UzX\1:ܔY@Qi7ؤ--)W4o'Ѝj^Vf˦%M]#  ^^h6-鏠)7L?.Kq6@^m9r.gDd`=G?C8D7YO y^Ci=l ؤ$pgA}3P/w ~<%5c;J!Ll tL)yő?1KEe]4„GN(Ԗ|Ga0qN/};:ob=`5Q,lK܆id:^๺.%L5ĝZC^qt=Uo$ h_{=cP:@EyQ3Fei~`5+Zl*w)>jˊbVI&&Ueu0 N]=b>2!#% }R_~Y ъOH" q#uP(x띐zuhKrܭ-);REZYKbfGmQ!v:Ur$ڢP8v:܍Yj}gHbg_4yH]p \u<bK`7'ߓN~|ixʳsFyf:I>'=оR,HUlx <:u\ї^ ):|wZhv a)ywnƠ\<(u[K17Q-sʁG,|Ν*]Nrߊa"1*$TsXzgbiCCL]%tA۱[)ƜƷq))J2e*j2+f8߽_ƺԦ+د#Έ3 nY˱;yvqO*7>7#I%|Ґ=(ز)Rv[_~!H+1 R&PTN/b_+nNlVh>5a&w+tDK_rŌvKlϟ&%ɫk΅e>_0!]n4b6T}OnTH- vkl'&pįLR9 ƯtARBVW]lv`.Q,Zi>:7*7Q[c PRL߻CVٲkh)3 ;w=P{%ܓ~q' Tp_mjtAN5U+hrw= iW{ʦOY{7!z[qb4 CG2_k/ VD, s/cߍfe-ML}c>YcM\MnK# @h6OOCx0@L0  @δ24C|!*ϥGG/i)}LwiC8Us-mOɐ>^ g$nIm5W%^mbӫRiRVmG]ܹJK"/LDvpC^c4;VRB_c-UXF52AW#~1~|_΄xs!'܅_wl+ﵧ}BLOJUՁ "Q1< /;|M.gpʥY˸euWz-Y9 v,"Xb#m.ձӲ=Kʀa}8Eu~ԊrO;?1](8RNV ˵ J:jEңfd_ /\jE•Ic :Exu݇Iqqh2$_Cuc>Ӄ@J͟Hs~A\Q9xr˿KPW@S[W8ly .N.4ێ깿`Ds !)`΀{s!$=='T֐k0r.=gæ1 Cc 9pfdv4[gvaBI3; +&Rt/mV`ouK gO QjwNQToFሊ+i8ፍ‡i=(5I A8ЙzNYy-/zL9'y^' PТEfD4M5͠QW>5!.0:mdCrCr5+AU卉ju7zkoYlKPQr-׎Ur O9 ZR*v҅bԡxvuྪ qpP}NAdaGqSTlx`A׷M8ΪC7< LOArK"g³%v(e2Pe B uϛ~Ԫ;1pJyU;Ka3(mk5}0-:ݿQgZۨ-zDlx)1{pO8Beٓ?X,P Zfj5N-]fdsS1.nJ6̗T|xpy@;'d9J>}4/q z9:r؟o_LPYl8SATV(] ٫ 6LbrFQ 7_~{ ݃_C!XI8ԲM~r`'<7.d+>[a;V@8ԩo}jvhAd &ӬD6ol\?i[UF7B5X+J˩sPWwrD& > 6}rD|"ݞg ~rev@&ЗEH&Z ކНӂ%2ŕҁmM:PqރXzV^Q ' q} q^ ZIAu%8[ӪC1̧~[,N8+u|Khbgۓ;& 5'*LB/>+ ֻA-%ko %*&1[QBL%xIH/ +XOLqIX7 ]`6nrvi%J.հ1Ƞ,.gٴ"j3DMMӂ"9;*||D d@ , ޺Sx jsn%³/ѵFMdI Q0/'wX`NEcӢ|]C _Lcp}UDVhx0!}p4~MQE :m^h D5a+} \ ҏTZ(KȨBA%?[2?ʧB*5ȵRk5 H6h9wC Gw50aWDDŨY2C.ryyJo +?1W(XāZO&b8z{\/L_")Kvg$-vߏ*_XlKO6CTbY\ՆP=% GQHSO~4;Bf]*Guo ܳbV7,Y&JTXllK'oX.*,Z_ aUAjad%*֥T=HXdyhݪ²4ut0[Xh %K-",0-l[g Nqk: 2w,o+тF& H+*yR`{T=n E%xfů]u)ӝw2~4:Q `&#P ̵!o0 ,`7} ~ck{¿<==IbZ5D_;˲S &K_ ᣑ, %`f82R竗Bܒ:7C#3zrgOmIT ,tv}Ј&}3{|oB y`q(_g__ @ wq:mLp ':?X@5cI9^=x5ɫ=kC gǒp{_;yo& eĴ| <>0u`LIn4!|*悦}6_,9s\q?{}r̻FQIMoēn6ejS/<׮`!Z_Ƣ7ۜ\3dѮARhy(EP` Pʘ%|Zgg-:-}eDSU!iGE<x@ <.C@Qi]s 0X8[} M1^psufo{8E cYg:6x2ab;2\?A+ͩ 7]tπfƬI^[z]4k3M' 'ҏ'lb;Ul.T"߆'jLF]AcH|̡'Jxkɤ Aәt9M>X8JSJU:;zlǸQ'JOw8ٌ0]Wn].*:^o;`{58(Tϻn!HDhde/C<,I .ԾXaG$|fPreAR Y@)Ь%ZF"/ړF緧ҿjn\`V߇#}IC@ŭsJx"הaJY9"{|v eeYJ" @-.tū2ċ3D})fDX(t7:.Xyoȵ_V|(0`naB, _I>n=?)V&EgZe`=tC_Qcin@qkap(f13 pw*k.54aطo#QHX6KIYz;Qow<'|G0ZeQom 0CBYHȮ%(=Cœ efwQ$\ek;?FZ2ǩ o,a ͡ Y3e RB*@ݜb]xc eVOQ_^.Pʪ??pV>5͎Q*DϷn,V=V:JpIR >YL ;w_mu0wqfkzz;4nUd53*.c{#Bl@2cÝ͏=*\ 2~wCӺ+[PKis}qwys{|y`WJ1~Հ-c#yS3,vѡV `,(5$xJ{4P-xE}w7Flɻ_wIјCwk AGgCXp&TNGW۵I7U4֘&&iNV,Hq.ҫvarL6BֳY'Ws@([>XFP*mkB7gB~B~ta磬PT6wD dezge0T\x9WF}yxKN2F LJlNSfxF7*ԐGjFNt :FO|$*)q:ˤy?^B8$yîb ' ?b_pv[nu[dwݖ"l2"i|twk@\OQ2|<:1t ;eXLjIc6 EP#>`nGjoӸ[z2$x,ʔGu ՝gr g!^;{5}^V{98@ǝ)-xh 7xJILh1~\ +q|o~#pն͹V?g+SBɿMz8%Xy˿/˧k#u?LJj ڗKAT*╋|7T/[mVo\{_(3j;ΰr/pP'@W1WiUkr x&1`Y ,QM]^J»8I?@.(@ ,7³t_SXa1 C,ѭT?h[eICjf`.)  @)#~pą˧n yiDyW3Oܑ֓Kx=(k-e!r<2)a hi.(#Y0[H09$-גoi%7?ACޯ,ޣ} gQXx?T'̌<z2kw-pUԙk ]Gտ<_]&:8fyhܠC%ZƦB(E4vb UMH l~!MnYjU%t]Sl;IꋫfU|#0?Uҏ|&XFSm_* [y*U9pjJm& HD\Ux'vרԄsGt !ųuRIBh?@ě/MH5ʟul,NhQa[q=@{#z 7[_oQIUf璍9B4w~/Bѿ8\:Wn?`)t_|)Ȧ|\"焺+ɵ弭.*(9(L+^@PidjdtZQd t~b{BtO-(*!_6)],iV `r|gLҦhGVh헌W$hL2Zuڱ}R꙯WQv_rnɘkCP+)%mKg=5 L;bIo F>|p}UFOг<|x5R+zi vep' %h#R.F ?tiGlpu }R1NRZLmm)g7" lHй?OIb:_F+Axlq} B R"՛T X-ZI9޼SU/ > > 7  W]Z;Ӳ>}ǮxNb`U8S%$cNhy^io𸰓Q8=Lv܈`bB Caו~9- wspy/oFJk[I*Fb!7s.-}ʑTuLc@xiͽ+:R9"z}D;}eZ:>nb?be;pf\0ETd9.d.fMUF4e6oDe3 37ְDxfA#$? u;s&5TU=Ӹz3!{ɝ6Htuz-RCNK1"^Ds-jc-o}a!ZP;QvBnI5WA(uD 01}n. hJDftTUܜN(!si,0T.:W`=7 Y䧆mwKD ʮk%/-}G #@W_o`{uX}8(劣gAcK 5b ^a\δkfDT@| ewɤUԡUJk@Z[.9feqx[[T{|09A9d wEf@O. (KGbwV40P ;RM7/J{6%${ H,++OEhGכ0QXsIޞWIW}swU؆0FA+0zw((3~.*Naa چ8 \ٚҟ; iRUN4_t6BvgI ed_:[OwϼnSEŠ//`OO-)Tk@ɶC桙ޖⷱ\ XoU Uf|.=S5KB5#`ugn!_*pѓ)tn>yRVVWpVOo+3!B2#%9$?++>xwJuL.2gu'Dnm_ރm0}S扳 É|e 8o*1ЖA\PINwȸK]PTGfǏ35j:/Y~u(x(v/^2#?S¨hw>S0l ?z0e=\Hoc񙏀2pb(!FI^28W/8$G%&.Iy2|*X`1tf6bhG*:|" K+g" ]0 zճriwx˪<5Fuv~NAY=c`6Npg{'%wctWaAݹ(Uh1>x }F s lf4*A aÏքj6= y3eq-y<7CNsBr[0\m5k?8hF~MS°;p;Q0 "#x+\Ӕ 6g&:β~L@s^j-~sbjwjs/ eM\ڃytTalsΊb Ka& BD^j1B[K&QzgZ?l<mdLܩameX?f9=9/|Cbtl\UPݧh:։y7ҕݢ5RakznsF9篞 &.m^QII(Ppv[}闠k/?)ĺ0CX2=ΜƳ]/Cs.mm=9qd=C jNlt[;f=G!C)g3RNEo^FnSİ=ćgii ؎*3/R!;:Ny͝BA:;ŭ$c]UDU~BT*펴^;G8֦{P'D~JoFF+*)'+Q B"dQ!6,F|9K+8@Pk2 }qh)WCielG]oQL u+b9K^Vly p)ͤ{A_6B~)4?4{n%5|<dq HwƖZO0;at~IޚtfK((5v `uM+KXjߤduT]9sS-Q7ȝ`*k!i5רO 3%{>1 nيrzD? fn~4/A?Y(hj+_?Os5גp^eei$dPE I^) w@8T[6rֲ!TVʠLB-|(7O6#|BOK z1@-&i=w.[EJOKU{ =G5ތO€i^~e 90'5oJcn֝ʹ?5 q[g]jt]! )0Ϛzʈ P^ (,\_?3EO)-o{WP;|&x7?Sd7KxJ{\RV Q!?!oڱ9&N!~lK~$=:b DžsmM,XgYݽq‹ctn|z,78= \oW ʑ ѕ&ӧ,ԍqy[Jۘ7~D 䴻ڵ<1LZ&wteD>Ecn1RH~)]_Qa+PJzRvp&lo8MkG>F9X?-ԯOXF]ArF>S6Z)=!%* 9=bpΡZ &x9`uxˬW)l{ȶ5k"os ;}e?tɂlkކ!Tq"!R:c5 WcO>fjƻ[7.'׿4^2b[ɮkmRZYYܞxwe+Z۵Sr|=ٜhFh;[icac0iqf`$$r5F˿ BxQ=mq%Cj{T܌wba5i">^]l#by)!|i`@FTԋ6e0&BĴS_m{}̖ۖP$h6xrQ!4OZU5UIN:i3OWMO9*2Hي4cZFjVhw 1 эCe;UҞ6\>4lu `^f-YJ QM(/ss3? "/}Oq)PTԀ8Hŝ4BY^>-ӱCןr7( xl4U`tQVkR "2ˆ67!0%<9&Ë`>4y`ː*經{Kf̖V691z5n ggT`eB҅x`R-ٜjSwݢUҽ.Xh'ph^f9X,7YŏS=)ݾE7R>Y(!LGo, Z8ZL 7%ßLh(v5 wd7F3 ?:3HG5Bx j0?`]:d}> dFlm1BpssMyaȖ6!z橧)!9kַ "}EZ;|[CoՁ+* JMY56 V8|]s;y~k_BScdm Jxh|[t{S߶b ^YLG. ["sd mׅ2 JZ/6Wr]7RORkv{*BĆ71O*|^ ) v6t(zdz|4-׭@X?TE_q,YBX(֞IJmrzgQv7Wd:̣ʹu\;r29k Sc% 4?t0(l<_3gBs*R>DF}*ˋaupuvJtYC(;Ȓk=bz%ѫ3P脈SAo+B=]dOdWBw[:q =$T ¸&~ z^{X~yg:s'fB/HC@4RaҿlcCzp)C-LKK΄7\,3uGq4ƧT౻dpKpԣNU%4AЋնad[qO(W8@ -Y%Sn}ڛvc`2W))U(s u ANЕfh`VmEq_ fg(^OX^96F~J';vj=`:M]g6PK oz`ؙ~)nϟ1Hx<I,H]ǻ 36)_Xc)3tG7ܮ GO|; K<.)8J-d*ElwX.@R&|p R:A?nRgwa-b<6qg+RI'ky9]|b1c;Ĥ<^]AċhE "R\I]ӕ8q*ȽЪ8 s1T\8%OVG歟m=!}iݞ ,Re`h@jpdY,i:o"F\x X$4wZ%J,~#Kbo(V~H,jg19 PBYcN@<迤>KS8II/QVulv8sdl!P͐[(yqMya,0 } w{ ;; _&b!ȴz"Bk?KF _iw]H< v'"LԫD/xo9tOӧg:$bfW^3G4HQ!P>~[vW ۜ2HJL)Ob-˨b6фCX4cz@\&`]i-QC̫ 6R6{ȴT<ߜQbFE凔ȞQn:rPQ EVO j1{:@;W1N 4r<.[5X1 EƏ\yr=s@AiZ?އ8C ZE̼A+A:,9(d&3\վWih]1iOL#gt8My̫!#!bF#ZNks ZpپR ^˜'0 R0w#=8581<P|C)^+?Bܗ&w3>.<^C>֨${V2`Z"1o`ѹ>iTJ;⨣؈SߋE'7Nm,xԟm^R`]X{D8(@Ui;;e(N`ۯ4$$FQUu?5<1X)z@%'(+4r Yt$ 3tMJ/r%Yj \u^Qh.ռ ^`rk3K$1LJs]45f2O ebm6|> loT?VK"?[Vn+q/˵IOr3e Õ`>s>HIUdH: lx2\]έ ?VÏB"C`ӝsR+`=8pDrg3j+eW4H OA2̓:}A5@[=*3YiiJZtoQ#6ܷȃ m^! IYv(ko`}Bs]3LY+tDǫv>rltk7ُM%{*.HARNnHs-4QA5ƺ|7}rJ6L.B޻6p/oest6q?;uOu*V'I/;yY v]#@p&ZLĦBAĵ肼& f;lz4Ic-G*Є'9ͅ3 j3I\y8O)w I>(9&+Ndh//G$[J'o[^~(9e/jy}"]?zBnQYm3]"F򽠋-2|{I(P]4OxĕG3qgpF5d8EІ{zGגTv>[|}ر'殒ƖHf{~dHN]T*eɡJ֒yR},J?Y,:tAU9sZJH5V3@tSIx`;5*'"+ϣ S%Z=+S2YJZH7q]hNFJ3{E)>7R{ yZگ%jD:o T]| F^J+eU.G;J do}mf 疣KG5ިBj* l QAKҪqfmF295RN2;t\M+TD%kn`KVCIz %v΍"P֯@BHGzLҐO};kRtQE\+A ނSv=ّ @ 6GlGZ߹v9N$i*8}rT:^4]Օ=V-`h:o˶,Vi~QMb7R=gC{]Xa=Ľ,KgIMe1$_ Eg2d,dyk'UG3~Ō<N-K 9&o7xF&gbȶ n @Vĉځc{sj _ʒWZ<dWgSnaX+b7E-igN#>uQ*Uҍ? Fݪg=g8Ơ`q9ᘍZ*ё;JI4A:Z@\Թ'q?:5B|Ĉ3а~0MЦ"nyK102M'#4UgxMM oE Atm\w?G8|g7Dov 笭p+MGk`v(5|1WqtJ \kOkC̠fۢ\cS{:ϞIK!/UWJ}#wf_H)aF8Aonc0Z*l XO*>yRwRT}n:M:e,&Ϗͭ/CR*~7?^^!>[ &^yB#$ W3P4 \ 1RU,r ȳP}NJM.M$=oYX)>sY>bK.1HÈ]9®/_MhȤKT;)Cr"dQIX嗟ڠN@7.Ϻ7e2';Wg{+g6צHHnJMZ"4 w5;` r‰"Ͳ!c5MqCo/ܼMC}k\aGHHL+XxNw|\xpPoiy<!@;0DIμk]kE@V{d-* .áyClEO^#w){\F% T3of6U#_sI-׿(;6?o`EJ'\k;Be;#Ľ̵`vj/Q؄a*:ZylSKu';_PIZƷtT9k0rDQaZ7.b| 0OLݴSh?rdg#=_E}(=Lvl9(>p&'=B7fC\~]9JQʼqgc)Q8`lRR9TOelTJܞ?.P)KPÄͯ#2G~,* NiPw60v3dWJOW5yJbac~{D]vtɤcs+k yg*R4Z }"w"%޾ڣV[cit}d<^_sOH/KM(f~f{Y^ti,d&NfjYm^gH ҩ_}}%7n 3zyF$c)eI/O |pPݢ%@ v u}1+#Nts|XWvCxr1Yf)䴢RTM^}ˬ ,?w{n`3Fcz%=%G"`*,BW =1ԣ rƂ3RP >PPWY(͖_|om]|hUO֣S=\ta4[-<,NcYrV X֞)9&l #Gڥn+# zT~(,5ȕ۶\͙yh둣ae H-OVZNawc]}J%Ū(8؆FHc|N=HЖMfxP i~}*Fp;]b,nJlhTtqh:Fd LGLjB`z}y&\y!1|붥<&<5ݤ_kk Ƣg9S'# kq:< y FW?jK5zx-u$z4A{)\Q˵LЁsӪ(<&,5.ŨZ6oO;gGE`+4:5ܳи3@7)OcsCq1#5`ۗݱ;!-8Eľ !Zb\0{23sR$10>UeN<aJR'ؑr%׸?x6gکHWvBp,`{->3FK\`B"x7IhRT>zJO K=~gO]!r[@܈6 F0}&}Zi {"Z3{;=TzPX(}*'!Xfx!o@<.oÑ3R(IHIq%>& ̩(shz0fo1XJBaO{vEl .Q6sc`6J0W[ӁVuxxp,j$dz7f9 : KBVsE cV\A)4eB]xp?3Ăp K!тbу/#0Dcٛ1h $'WQDQb0._#,cҠq)cr7qOgY5p+@A,? ŠAA'A^~/ {dyxo^Nyqˊ9mv+ '&?yAI?v2 yu^)qnaYF-M@O>"T<(@hʭh;ӝ8k?Yp0ps':=y6H g ZԧGsK>}-·WѪ pgo:oad]z\i/cT>c'ZIIʚ:bDw$|)실>BqR̻RaŰT{Ufyiн~@ WV] De(q33| t H'01ET4;YMa3Pd>_˹+JT$KAl"]pSy52QN;^D{Iﭟ|S Ohon% 8&㖞2"b—B(bY\D|:ofaD%x @}8h`;╖4V!M=<ühQEf[ ܖFا)3 *ҭ.%oej^^jḁcz hAA;ϷI1 !Io[;R!MiE)ʟhs{mF<fyr /7~u 7"l ;Njd.[|gPAGļ> 2DA>' (R[:-jy4[`MX<eup/c#Ei} xz?3Pȡi 6U wIDgԟXBJnP4 3jTMi m .VhhS:gpWGUk9`2̈\t z@B͈ӠqJ/`KJtI **n'/& ԢfHV}Z^ᶀAt;#C¼3 њIW3w3*Ou=s}"(Ħ1 6e)cjNλH7}o%B{S y'Lv徬WK֥uGtPs$fxkΚ#GS|v }CWu kY!WuZFP٘Ԑ`(HVPUx6I74/Kq&a[\:bQtNx :rd0:fTly^y.Eշm*7 hވ6/3?6x}53t/n5,o )菑 SBy8R4ׇ@k,Եw Kˆ3@-%0bt@yްNGgB1cXHQm{xy)lq߫F YńVO𮷊95͠+3 [Wa iGg/ŤCΒw`'=m7GD=z=%`ڦ K/f9.D'!p; %LmǒaPs>$,8 ٸ&_M)Ud5+'ox[2XTvG$h߷[4N`dj饼G`%%e3c`8/o@=v{S8s8ʭzhr Kx=˟w42&"c?:?n@ɏ%"!?!s=SߨNfS@=*b*17.D|fGX2ONSEir456"HQ^EfmJO [ctz#nT{8OU2&(nmH~t/\K|ȷ [6,E0Peh'~3گ@[Yqua1@uIҾLx[kvfG?؈&8BN3?דL -`cۚ:]9ٹ9]SUUK̷Mzm 9{}r~ڟ$Phj,zrҳBnP8_q6+ vyPzKyGdz\f+ pS'#e~R%Nن3ѿc*s'^p 2לru}wj84#q-[ N&g-VKza BRr>ѴXTN"btK(wicV D|vg1Ii\]zckY2ڍ3J/;s6 :,) K k*j+3hɣbc$0JɹnƖQC/aH'PqGU="wG9j濤1O6X`Ǎ|z|PjyZNT<4aƶ~(pBUAeU e !gVSh' ~4'Ƹ/)Fj 5|lV]-l5+2 Q8"l;F.r h8mxzKaRlMXDr\x !oVL/<.RaEODqr!j8b@KbFk~T#8`}VaAN%f`s?ė3BV+  _Q%#]r'2@%"(+'?W;_;@)XQŽS οu߁ _[Z a*(hq8wv+ aLӜb!!i01澳}QeM]Z4D@͓^Ƿ T=.(\k #ሯ; a{@l  _&Q`Zh{?2 Rd˽خbadc'SȌ|=k]B 2PTvqG7PʨXsvmvx.sU-)?soHRQq6릫}tx_ALps><.\mr^]`hdTgًߛg P*N+rkM|,=YO a/4Tv?vFcB9X&FdJL5kAԫ_w:RVgq+)r>m(b/J^ٕㅵ0+T XL I#H'衽U**E'Sz&!n-r*K *s 2LLM$pt"+y|OR2}H$P Yy Rȅ6L4wX NX> 3F#:mh"'ͧĊQsuӡpj D$_ʩh!eg ,nR+ɥMN!laa'?CgױCUStHˎs- [QaP_+"炞R]l6bSec+?=] #_K\$^dIc`yϾ IqKP@m/#ě|. !ABQTu6kh j5{gr2˂~I+95j U'+dsv?*_esps)U7_Vgtפ&X!]ͽCu{uIJv>08v |  䵲Lc{g~n E߂]M-`&"HȠ,c^pNQ **9wNXf<3$o j|xXJ ;76>O,Ne_C7k($ؼ|ƛI~um0;hI?YdkD[[SFfnD^= aHKN(:`S#"ͦj/{)f(A=mB5J4QbVy~6!&ΉI(ҚK*l*@e'Ⱦ(HlՑM c#'75T܍] m@j ˕~uyMP3X!XR#U:3h#\<+i=PZBεGҨ 1sj5etьNIPIZy|uӝ66d䍁޻if9q"H{Un^8)cB|#-MXw]LQi`Rw!ғ|"2=hQR3uXLS"w3O~bPsROVf Ԁme崲ԆWÓC-lm8 YeLh^V.xdF} pAj,XpV_B5AR?o9H`%9z! ?TBDZm`4 rq $|m06Nn5d:DU_׫E6S+@M>+ hIJ@Ei榚$ɸ@vӴrdǼ"C`U\mB%\VST~5'"Vl3]5Yd T DlS 7_KPOx2o<:nZðDk(k~@]㦊GcF+14✮ϗXb TÔ\YXW@hd6d=Fy%D@-U Z-0;*Iz3FUrFNjjIQ* K>y !̱wf+̈́ 74t.#aDN% 6HIyWl53P .0w?J%pQ:X2CL aMYCaVU$a. l95H˙TzQy  IgXqlx4$;P;xp{-k1 δ4M)݄|.&%vMY\Uxy.ޘ!Ͽwʡ!JB,F=擡0;*!j<ǮR_w)j͂mfC`HtdA=>|)UP[6Go;]d=pU0K6|UUs@ PJ\MAc]H2[DmN0NZMo]$j"Z/(]P <<Nj ps; wp*}whh@+-iV*"lZhIJ;9#쉩:O)%k&AA&~w[5p؜BU_ IY7^h3tp> _3mzm5S*UNZ-d[B4-*BJH2j s!@H2PU/ro!hJ )."vrFqvb&vJDkk_{Z.aU|| (,!?UXȴ92~KJ3v5 [ǞW\yȩnճHpsPy^5{V؎.[ L.4%SJEH+Es浞X`|c<O #QҍvOȞׂ@yiB$&}i(cVI6.8pƇeB!ƍve ~kyOAka5]jǙsEcPS[YOo^ MLsܒ/dMpۗИjUcvjuq>|*6RQw!N׼ֶje[tX/O|+zBx(SSt}?:g'-?tƨ{W}-&I"=LM c]\Hu#@uP ה%SG ߠ4M _.om*= 0n̘j?(: ..3zj{W%Ο{z.3|tjتecp)+vڅ_W/\^7 \\1ZBGWd&[epa%ᖅ]ud^t5sy sw;?6_Gr+)l&T&PleӢ ]l'$KW4VLn<. 3~pH{$7?ڞق::0M7J <̕h}(JR" QވшWYʷ/X`ޛ E+r,~b3lX{y9`;Œqc 675>og %F gJµTK+-K^FY%(Vp<XԼU/y+[jCN?^E7#0vn%nK r6|SNhBU o@A3ʴ kqc/$$ZhbXYT|nwe96bNەa{:<0%NþJ {Vcx8h*3F?Z}z]v,iK# bCZB$MTG˴XKu^{u 804yq17LK2ޅ WU57ȋC[tՍ(!v6H?ʸH1RȞ2Ngk-QT3I_.BgN; 9 83]%ؘ87 ˜:Y/ϯݥTnb: ԍ " Oh2Bn06]epZ.%ΝqhU#3ƪ@7]Esyh-@7"daxr %7.摲Ԇd EL8zˍZz$[B5h{zv8{ wdglnQ%z: N&aOf芝 FxGfH//FQ '2-1"$x-qv#oTΙ 3R ~]V'|Iޢm)e^"2%Q-7TnI>2˘#ى;`-p WYsP>-|^]^^>ˠp1r!+U>L@(ْF/2㎚ҝ]qUyXvn׃ dB,?kL(4Ȳl)`R4"Oߚz)uIOgC^gʫq7G?UB4S,`5 eFHZ!@h%{b_H9{:J`&56fF]LyЪL SQbKS.S]ABĈ{ ~gӵ ]VƓ7?LٮU *!6k^'NJjz/AnR7ysDl[JHI$}!DX;e揭d~W 9 @#(W5\̬%'j2B2wGWo|?0Tm(V7:23DRARz:jޓaB̶Wd,}у!-<Ė ߕu J(]U0kiQYr^S{W"fw/)qL0DEN_Zzw >9@9q 5 Uv,إZza8)Ӛ/4r<Ց9j#U.]0SڝU.:MeRI7l? c:6s)O]mLj \!= X=w^/7g@pM)=P#ZN^ŋ,1K/gBy=w4?ewoc8m?wqߦTk?5` D*}[x^)^kqTks¸WMVTƂpWx@!V Q#ʹFi lw[c{;w+*ZRIJkW/¿M6,p]RghRKkc};ُvfks>Yy0nijGZO$YXF#H!H\2 u۳ uuZN tH)=LJpl,WTZq^U$݋JE=vOE"d8,lj A8 esQpVɆeuڰNL^^۩ c#LX? }nΤN͓l7?jUQD$j#XK9q6} BE "au8f3d@uQweQjK~c*B ă3$X˺JʵY.h$a?iشd41uMKV'bO<ؐe ! 2i0bMTO=W! oC^UoH=110G ֈ 3vu3Se 3I0 qlfNE5MźWf8ȽlC[6n+M 3ɘ|Nnuٱ6;dܚ%'6,&.`BhRYMV6VVNztsE8`x`=}ϝlޝwJ &Q{6;hqa*YBo+d d .)U2EK@Z-{% bWP J)Vl4ЭDs~-8fytIT$y?NXB=2/7jӓ3]yd9)dn42 Lryԥl`IZ $Fhw p0AK!M^ULɆZAQfms !dH8,GV3)ϳp|D*#ut A#r4>ƃv|uMe\:W9N$Y#~!IqdC?qeRmNqbfU|Гz_LrsYe}8i>X&c1$O{c#.{s x&3OX+COMŴ˖K='md7t,a@-uGiڙEav݊Ih! ZKI9d-Cr-M@FasN1Kl3!oqn/9L:H%7p;gD$=2T"Y#KdeJCt>?=<|i&G`QGC9@| =ΐfpwͱIRɨ[whهC,`́c[1/=leU[ 6Is6l<1>9{vg&n*MHSBdf:,T;|D.92~]'2W<@*ċ$*8<8=O[ ))p=(JeUEz"ŕ<*I6;: dOћ6GG lev~CSmlN֞V`4U_`t -9*ߣ;ԇ@p1>̩ X_|#$7Lqio$8_)x5:m@`#N@͠u(Pc^oBW֗=vIʦj]Nq6 [Ӊ.NWІ܄(Ew ;%.ʻ%V*GByX-DcĈA[ν9%T!@UfJ xeFZ"6KÈ=8.I7ENϰږZkYKZ1q^vx؄lbWա_ubz%(v=q{W)#&z+uji\~ e<G@R~y{$srXw%TPZaPl$ªwӧf'5j* 7/: (;뉟ǐw{׭CM_ͮ&dRMM?f >x'td k_W)Цg?X}ZL~pHء>g d-gdHQ_?e$6.C8e2!ś>Ơ> R5J#{/N&ݺ[FUaLoB2ЮQG̓B6'Yb3?{ 4n"#iGj ?L-Px3՗3P8) 2NŝRRA1j:Ywd(>Y ƭ _e:{f<7J*yV#K ?RSs"m௱oS g.d2tiGdއ@z=ML_Wj`esCUCsp29ǵ\̏ClLGFSs#Zl7Q{6jFp~u K :@; Gd,,@쥦vEx?F{=K$/&Q>[Kj{m",}49R e K*%$Л.2:E&I4݅O%a]UķAMGVK Oa 9o~b;U$gq#"1j. g*^XxwCĤ I=f/HE i%͡ XGېL(UvvB @pD<Ħb[<7 4,:vAj`ϢѳJ*ϓb$}~>ݡ1KN 3ՠQ,9nCg"Aw#G+Qa=:ꔤt B``OrIe p?6,lRu Q=vW*vA1{ёq` 3%S4Rwl95ι8^Hn_`DL(uc.97$>,TT"5KUX?!<'V‰x[/=R$'tk21^N(YR"u.y'nD)x/F5Q 3i2?1/Fܠ<7 1խRgn.17\x;[⫐˽ss`^s*)wKY͈f@vi2ԃJqۻm;1Mzͯ$/6F&lw]9m\7p}$ XqqB twXɞOCocCzyu'CʑojVI|&-CtXsa$6BP|;*KSL: A([N<@̯mNK~$An5XS:X ApUR8lrT Vz#:ґܭB9Elm|`Dr Hx rN/T^QR؇78;kzPٚBѹH/Oee5ूyjvUJ=+Kg G=)]FBH 2݇J촅 oU:4v[6 PC >AFHk:40WFArٍHm:НP^gyƨjS)~"̳Hˢjn5njJs7=XAxgsGǎ{Ef*ԧ\mIٲ,p^jͧNDV!Ͼߤ-dRU^sFwQՌ+\VR] X`!i$ J@ ! qzt5}WL}B. Cd޷kq*B$"g;lvukα~M f ]>s$]2$?EVoN1'$CEq077̛y@WOha-%qf:􋶤/?]ԟW>`9AptزgWM$XxtW2F"w <,t>x ""=6L)gSe2}ݯ?Vin+9.B~̔56%.QvSҥg  8 6;E7 BAKI`cq{lp :Q,<u5+é`XCi(]GįQ,M`΅E9xXQ6 'ZY@;̈́smI01 -7zq/co [ NP y< xINhTeWUw.qy;.B$?Ü0X'N`W%\:cqƳ]0T ~;Zoڿj~Q!z AN c*-X3QcA$^6MWrK{H暕G/r?|k+Y~Ss}#Fbf4`&O`tG[,Ż_qtn#ۢT<o`'p($jP@}V]L mXv[Վv TYksG&HeLK\7"]T`Ѻ8Gj4kt|ht4@B* kmuaSI$S+ʒYGNI9h#,Fo> ;Z9/TJk`QCE'fQҙdTuF?nňEUCxxeupŝpvɮ,hTw7Io4wā "@v"hڕ ?.ۅTK A@SFO2OI7-=7}$>A[SgD\G;l=X1f19t+v8NҽOϣ8&yP PȭIj{CCe7nb ?ymf^Q;Oȗpƻ$ڇոp0ߎ"q2FGO;tim˝"v`Ÿ`#KZ3}dDDO/YrYxI]fBb2asb X+L,{ Y2:Jީ)Mԣu W^"-])FqóIS3m%VRB[eџ]'/H)+vL4)%tuZU xFݔ.}ofig` ]vz:TvS>) NN{[%bsm@$,V9@zɎW2Hf562#r,LѨ~b@c Z; W6qF*6%AR+X`=zCUX!R?6rYh{~W7Ab|"wĝ3̓_ͽ0m㉍)w`cc6EP3U?Ν0E_!nt43p!'1Ncq`mzt Tbf#3MgQ+e7_~f09 B| _٠:hjgsxsut-ntɫF͗4KP>K+2]*1e/|#&[BD\\'p,'C#r'/Y9D /ٳ $|?Xŕz$FwZ,[g[x"@huϙ*Pki^%lH#6e!5 ђ՚ؙ-5$DX (!4\?1(ӝ5wϠ>2ɢ̀B|u3?{WG[Guy?nx@ \y^L@ɩ]Gh}M+PÀsik&Y$!?81l,Y֍> qhXp;@[[_C(A~L3+ZKI|-D^>8/A۳]ko+ڌQ4zhTt IpN'nyT)B)wO#9, ͡+ʈzQʴ #eK~8J42#-6#yY7h'HŠEcm<擓1@\|. l cuϵn |u_<3WΕ\]CC r~iy5yfMKdH#؛[ | TVWJk^[fG]ш8pRW ;;Mu/|{d(|m\*PW@VEVdDpŊK FJ\{hoT[s \t3HKK`@TO&4p{N# CWdOnZIR@N_K0A5jc!Uwe[$; 8 Om=5<}6 Oe-U qNd!^;4E0):E*%9jwz3Cq!O) L(}FM L2I;Rb܏Di9M!CDDhl8ɋ:P< x4[O[)nT\qO;Ak+M_7#8UBPZu'6Z;BQV2䢢~d߉VX6o"㱤 &0" #0զz4bK%:Hk?UyK.xz$[$MT?Z¢ :RM(JANهܪQv#r+p}xDD2q˼K+/xr!居ƥ lKQ.Kq8F[ {|E(EI,m!zYc̨53w ."̢%SS6^)Q%%*9E;*$ YMa4/3=Zs|.3C&m!7:ޑ;y&4Mgntf<}.IQdzޓ.Cg wx d̚nB\/ҏaHyhY&6:QG?I pT qnBu_S> 2Ȗ~2s*GŃg w$ *>7e-X,xւ@J;kIUR7:n(p(w{)zSf*3VgK8ν x59qV]>Yj+rjO7_MƬϊj ζ9WQMPr\"$9 [GW5TtK#oD2ƭM&_Z!Gbi2ekھ ##P-_FUwN?7~=}tcrN\`7v[PE yD|֙;?\^W-ADt#|wcPƐjT2W`*@u "-"8q7E|7,BZQeł'H/N| ޵rC(naJh0';/ ]}bm@o )0'2m)XaJ \z _cXLn`4(Dbk6?U'Q&xW::.xfԲs`32B5}U7a?֨12u ѷ)i[j6N~\.QSa䚼<$m$[tRJ-Jg&M>\qˠ2Aj}cKFsh{Cb@STw QHI(qyTb?6\]=VQ6~cOp"k#.^>YF`Vl.܆xsGٍw缸; wTȧfN>]|liYYoIA[e3xh0ĝe7"KHY$.['s(;A^(*l߫`WEs^oh*+r{kt󪆨l;@ 1^՚a:7ᏚV7󹆼6Dk16io[5QMD=]&NG,^2AXi)Q 2CmhBD꾪UmGmPgP_袍9N2z%ܼv/sS41<둘 8+Uau/_r u<\}mQׁ#}/O|Yl7q0ĕs, ,)R4`OtL6B?MDgluqĶS#qGЄ \G@u͙SQ޸ pi:a' cm%uVX׍8uwO .Oߒ5=HʎCRe9uA6 TA=boZ+F,G/op1+ * .v/R*XSΠ DAqȘg J$:y7@ )UUrP^1ٚ6͛OS]4( 췺_G]ovSFKF+.#@.>jg "'m瞵6H ef8pZG\{<%!c(wrN.|^3\b9!ScH27!q聹UҿvX "̿NJGN?Yݏ~!Ai7rvAaMP-GJ/9_4$8NQ&C-2C5&Ħ}G =3dZWHfJnr>|fdbkGkiwۃ_o GZڢ\DU7UGoAp7;g1Ûv׋P!}SIΜ] S5v&ː]rRbxb}ap*Zpke5,jĤ X ;$jT rxdI ͬn'qNA(lkn^t8y,+ 8Y]53^kj3^g9K|9q=U l"FèJRhd'$%@=Xf>\XUBяwA~+"5Qh'!~H\2Ժ)+^GV1̼I{.j!k7Vњp : n†; 0 E̕Ƃ{1) !wҖMʚtcM* 'C4Uq{J Vsx|>)>@DёM [-1]Its3<=)a:拴޶(s(wܤs{HH7fǟ++?I |?cB1X Uxdj3|*SBV7Q(o89˥--]zͳL [vijM\A=gx(Z$kofEuA$ʘֹFTpBgh3r DAD_A^~iPn0+@  NoxzVBB<]UMM9 6'lGe)P: CR=ayښ[UwޏW"G`!͎["GT_"+xvU(>3ݫ 8FFb9F_Mn,2+ 쉩JOcյCͽO7-UM a ؠ/Q|Y}3ׯF19 Ac.GhOZbډ C'N!טGe_T_K}$jW/.,úF6 EˍpތオwnU=؉/!Q w2ѱG1U :Af+uҁj>mCUx(P0 KND(~X'{d!( ό(xNdK 2HtE̯S vC̍=nī Ga esWaVo?Lfڬy2tez&JFf[zjY*jKL .@Qf-U>\ ]ei?uÍ-+:M?=÷++"<~L^Qh_M}QBL4?6;k2~>޹{|<ÒTZbZ[~f:&f|gP& QM8 dr4mI (A/IC$Jiz"G@ 2m?mtcOnQԛ}|)ޙ>9Mƞ w9p}S_\!뗓㽅r$&+ħ[Հx{,h."ɾQj{^" pAY 4ꭤQښQ|uڷq%xzN)Ђ ^FUI cPgyȅg0vŧH.Cf481C2sG+w]NMQ=Z/I)&oD"A*ؔn0x[xo0Lri&{N7Հa :{H4 ygJ6;\"-o@6|Np$Ş\@T^`(y91 o9QKNv5pg5w#"w <W_ܺ7[:ymF5Ѱ~k?tQg&9oXMx6f8>SQG/ރyd-Mm(M]E gm#!ER<]*A3pm75,9yWTr-N A{Clg#>5~%f(#Sp׍AY4!z$Ua{#gP4%yoaO6SӁw E\B/Z}>d7(EhW/PPY/hb[,T*y|_ʰ pQAqcq|R5978^?lưݛ"/"( ϮIn+ oJIGǡ,`9A>&[iDz|@eJTK%_;1jn|o6vbah?fu̷f΀Ծ`5VH}3ٜjHla-XAaM1ཹ 1sW_NʹRz3dM=E\U y*'%pPR _o&'v`KL/7 a9_J'v0>'M܊"U[ ?@ZOXt&ڌu{\5)>1o6Qhj%5׮ΗHt?3T![P`GI?/}>뙩tfq%}[QGA$koI39Hbzdr[ф)>u@@ӖLD9wr*kge/Q q!þR`KS Pƹɵ|SM\pFC g NR-^|StUv&E:%` 퀢U4KG{68dFFB?V ++sjF]#њϏ5p5 s0*:HKLft_,z#wBu)ed-Adw h<ܶFJ|P0 w6e8ez5xf;1AexOM |:pǓ_D0!p/81ZV.pL!ʪCYY1|㔲aWXoz\E 8sGOoeIP .kLOP~eg rW vF[mU71oK{s^%ЗRO ڛgV:yyXƓhn2:2WLݑ&Jw8G:J6[yu‘!3qKp.wKΉU%q goDTYVYA9rXLڮv~ G~*kyeHSv'>pP6\2iϴ, '`l!h׆6GJF{T(H4,5"~ŌˆN483Jb(E_{>qm0s |]XJdLFsHyv#3ཽ {^~d/U8,f{л.滷1z:#4SEHR6$c3Z00vN>n=N&^q-g}z/oͪZAYD7Kw Kmij!ji~722(Oe u4h`Zi щ7\$pj'l4;1~MNI{ ~'@>yrIt"F֛ ]1hu^7x}b-9`As5=4P_4Eu C9#ey's:4Mы$ʳ[@L]eU#y[peEazusaP Hxl>)aE6QJ`ͼX[wާ)BjR^r)YVVƂ>P V;Dy&>_Ĝ' BՍH=욠sZw^]ӅsU![}vׇ1DX{ eJd:ԣ߭uw)}\PT)=ѝaC_ ^ @x:uq}\ʏ>qܧIƋ '6fQ빿y^%q7aV<흱!~[6X,664tGꞭKtԬt1~R$ϦqG4bK {-B,xtG +^\{jW@: `uKd{jaFl݄׆hZ`_Vй:p=u|_B\~ u=(qL+ISq7gC&F}`b_"I̱X gؒeҝB -Qbzz2%ݰ Ќ1"7:BŹi`hU:VKΞQv|ǽ"4i]zr7}} O3[ _ć<+ ?y;z5(_?^pwӕ-+x' eƑ(Xď u+sDS s7|u]X8,ZK`H;7iDfįZPG)hGњkÁGPt?E;=3FjH)I\y-D)ɶ men BX\N ߍՇTQFEkIK:mnQM?}`6b{JKSvHT L鎹i/WgHg,&4'6b ζV,qՒg mm~|wz{c|"XYjKPw{RID">z[{aBL[h~}ʶ{siZMcIܤSA0.#y<_WG?yBt[n[l߾H(QQqɮֲ)Ė&ۃXzl`e#POvthZu7%k%܅Ҡqwbr,qxUr*I12e`MHWV/W}dzW*L8gN }Z}ڞ"wzK7*xPFnxv/lrghTkpIJ7H{/UEI⣉a@FXuP]s%._mV#jB0ǝdZ-'|$` h$ފ?!"e ؗCa(^;2^Q)^3b:䍴1-j8X$>ǫ>qĦ(Jo9Jeil5-?bM&J:k$ӏ,tin")LƄ>a. ݰ7qt<٥E7K$Eubެw*m_~6gtq\rj</$T6-#C6l}?F}jϰa5@mӯ{_&6&̥=~d{zhݲ-㪳.,)$`"$6vhZJg ;vYXccݦDEfI~L`\)g-,).Drp5}\LK"6.ٙfFÛ2N/ܴXE0"cDl`2IAnY\FC/_p7%q֐0nNވf.uU2!؉[VuaRD\|n2v/چ~Z&v00m_Y'";M܉ܘ݄Gs|F5g75uSC X d}g)h=$"X4KP+D 416YFM__k >ܲ۔/UWRW}7Zb2 ē@ }oTc#*]{bpԔkŀZa#5k5TL';8k͋Yټ¸ʑ&z}I@~kcg7.<Psɘ[΂\TI5 SC~wlL = x)$wb~13LsQ<1>OR7,vetWw+2ay_S5|QFKcyiH S(d+QI)e!82ͩE[%wt^y DYI1ׂeE/ƙU Nűi-NM@ĥO!/OxI@&{<)>ἔB$o:eE-c' or EvE©S&Ed4Sݦ%n \&|.aYL4s&f%B%.C\Qj]m*?gV~G΀zR ]F(=PZF%togPѡ328}p$sDt>/&aiSvxo܋[)>´r&_JY;v%!] VC"c*81i_f4X%$*&"@u)ИKR? =1b́*>o*ffR~W{ g*X#" oa"ɜ=[ /+q?E0 @}:[~" D=gJCYˣ7N~+)){5#~sՇ:r<1j"0,ڭS9E02H#!gOAhiM:kb7FmоmyS?սef#k8',^l}5brd`ޒqCD%[!J3mj[+뼰3tM^8/Mc\>6%^zYg!T!Y֨5EQ/!xbGZO uW4!OiŲy4&~1bS6ōi삏=Duy-ևKƏ܀'Y"len_3}XA~5SZ݋lA">-K!COp!_ Q=8&srj;3%A[ogS`U8jR?}O_bDL}) 1rPl{GRj)R1Zo[㤙)iwbׅާlXH4WKym~r2Cߑ2W̨ٚR#u>U>C[? Fw&_$~iS  aך${pMsڭ]<n⎟s8  -Hߵy n?w$:/ dU';ZA!DAG ׋@'o&,eob Ģ "-Է1,&9.AG#ji=DlsFxr)BOw5 Yךc^LJp]z6dHTNKwn&&NU xvp[5EQT CCFoq#mUJYZuiFb݁#L*|0̻N}4[X9 W?fL(`FYZwY,A!XZT)tk' :_#r*S]$g. h%VH'\] ^4C:gބ TެW:cs}8(HßsڝgdŰ$Y>r9L7Ļu̔AD%`ԃuf S7k҈>=0JLD#0iyd9'b´y$ f[Iϲ3- D37pzI7{&eL}CK(#g ;H SxJ<_zhbm(FPzGqЃ<#j+r"KO묭I&ߙ l[i,JA5c 5'SG4=sA(/m?; ad~6q )DaNn #L:f6kJ"jk* edʚ_:݈A'iT_Z ժy҅*mCH:oRN ~ Uum'nKHЍh,ۮ攥 툨DcS6V^4Q#lwGL/9v y]IW9I/!5dQ%CFdH5PDBf˦aͶs]%ou1@ʵ _Rɛ܆P=S-* DQ> =IojVQ{Us]+k[GG.Q;?Ɖy=Y)'+םF*PscLi&d&X1^V Lu3H֛xWi!"s 7›K k+oP~=uo k|<,ov߬$E,@%|`'mo+Tܱ~jHty!!#;'k̎ IN3F$2{gu@ W⬒u0 v#}EREq/)JЋ[i`<@c;V/'ZFWھTw=ک0ٶ-!$Psg |vIm|ʋU:m\J5Pin uOpR3#0N}sGeeD";H 0M JTru}1x{y}HS6:*pPE,3B3&]xJXfr(NmZ ΔoJ6c:މa N>"EUNUVD!-mZ{0z\a;1O2ٰ5d7[p{ٵqmJx^]BQU=KޟΖ@,kNr4iJ#_ε=lW(1GedQuEn"5@JBAfim>&n?atg22i瀨^#xlulR9tdJVfHb))JBD͉'glwY84v?D6=f8Ň,S5]HMԧ^Y8ZGJ V_W0wJv˛:lXz[j9gm‘-ٓUɠͫˏb \hܒwY/Xpwt!}ي~r}˺d7 6^BZd9- +aZ̠cZ6Q.  EuCw8a+ %/'h^9]Y -ݻgubeXwWO;oLKѶ1fae1Xi,x83^4YPƝr=LQSw6s:(I%IJmW4`7VE=@Mw" *=4sFM2uz`仄撴g&J N7OpIxAe {T8L{uhcʱ7OUF7%"h _vF)ܡ){n36&QQ9Q # 4ZrZ̃${njY]{6 $C|ȆVvpvuP}Mo許H naV&`Z̵LOrx>v58Q5i͜'71D2,V^ FCy{%87< d*Ydh |l_K\`x!wߠFgQM@S6 ;`dq$v)vWc6J|+a6Emn}~cdT೿9a;rS[ړj@ F !͝LrbW`+lD(}& S8w ?\*We*L#6z g P fkYC*PH~5]QCmkјyNװ㱋<⨹uC~BC5B"tm;J4w3 alIn.iEd_THQeDaJ6d*ͅ)pŠH=֋Y@CW }b.[GSj,3&qe[$xPCI^ ׫}뭖 3!wjEQrqy?owSPMiM4\#'2XB`~(ED,G_otE{5T6v$\z+*6NQUɨp]KXˌ4=0Grc4>ANjCP: !XCc̙TZi=@G;ṿKQM"p\s9HJ)˙GCi9$yMg%`H˒ԟ3T)+㺂G(C%{d}+lQԗr ې\_f4R_:89}$Mne|k]5)SB C[ N};a9ÓvXض43Eto$oCUxPkN\܍u$DDž UI>uO L >\l79YyQY컚iB$'(_h|kQbdhXB!ZN(kbȎ Gi)hx+A'={t]7웇[LieaOˁ1_ ώ9ctfݢM[5Vˏ0*?[ 2[`Yw -| wqOtkwF v S 0O꫏t1{)rFF^D3nGoBA~JRy>DI ?yWASdoޕ9Xs]qԫWj+7Sq }SiON˺5Er>4!S(myrOaMP˝NpY8gcz$-~jKe8O<&TR*, δգWh{xEVLϰ5(|fCxYD5ȐdPn5lH'R ہw󟮐x6Λ(#;kuP߈-aU.JN;`Õ&5NmӇsj kcc7 Aklf,c7u_P1䣍lN%pr{Tl-Y]dBvqdߤ $ZY:[<$Ĉc>I#4r;_MW ];XI.H/PCs<1./aZ24Y& E J㲢|ÒA/B%ö 9e~Db7^jJlqgy_^$gbX33תP̫fNJi:tQlAi,d^_{L nƧj*u% N9HβZfR֬e\@m m W/02 ӵR1; F G.H pI*+؈*xP9@-R\8S\luWzpdej<{^Uzە7DAGπFuL-2٤t*Sł>k}MVqR>J)AL&W+Ӆ2/f"^ŧ@܁z>/n&,AȪӧQI/q["i HE71f$|m\k5kU# WG/byH#zy20dce;KhcYJ en+<躮u.6Q!3/RpVA! *AtNFc">[VOC(eٛވ };Ew5q' c,WL˙ta!(H:N o+EQy+KOq.X+n` ;iE(}ko.sӾJÔ-%mz+ y}ezѬp g`PbV ?!֮J<8kOqJb>{X`WK9OΪ ?#˯OTQP׾YcB: pQ/{N&:"r϶Q zS mzd}c:o-k]b\<虄N7̰i^&p^a *oc$H>GAԚS63FK4, Bl=ץf@Rcr}DҬJ"Q h^őL]QȚxoQǠy[OM9>;x[kN"Z+AEXeZ) ~(ԱYG9κ :F !p=C{\򍻓`%%è!+r{PœR*a ͳz>X,'|R   >\bm| g`E]i.LJWj^?6Fvɓw##{?_K:/B0'j-iw3 /s'WLՖ%W}U> PMDdR^N tSx<<Ҧ/%3b(׷/iFW*sVTEgKMΎ]ܕ}_WDE56kv݌ZKxp.dA ֓)9y$L zM{+r8'ʿl!͘\pKlUj;b@~X>+o7/!$A8CVe#;ر9V<4 }91ؐr>|"Ncs,Dc~7V z%}MK%tX26@y",IR^.Wi\t> aa㶓R[x;tB9ie {B |$"f 6ݍ$#w1M,+bbl#b"Zp/bjiw |nwa=py=k:6uݵ=dY]2tD9.aVNx! ]'?OBuR,zt~^[\(d+7,Ao !z欄)S5^B.>\1O St68[zʭM+ͶY$,/(ٌ!J;!g9w8 nJNX=*t ( qZ[.2{U2QqRJQū@#%6OuwɞfBxcGદP?ץ$N0.lz,KX`ίvxq6^i}c9 AC'"T3Y@=oؠ!ZoEbN?Uj7fPEI)r Ԇf+y 11ze&רmJ{<ڡ0LKx574bdO g THEooT]^]UjݩWY ?@Gw,y|dm[]%uU=ƙ:`G* +w$2}; wU;(pTgZf'#>}TvHҐ'VԵ+* xAӉ~7fl*"8ኳ SϿJ2b3C <Å2a7m^^&X[(QbKKSFst=-8ò ̶%DOʎd2k?eoqAjٌrUw},5KwY.608UcIicbvVY80V+"{Q7*r+9!(_+~j[ "?DS4PO3H ahv;whK:Zh_TYL9#oŅlT3'i&gh;mCHJHHd\ƌ(6BޫM-Ep|m8/ Tdc|/# %@S71$J2:g4Iyl_-tCsfh2Q$AL+d؈5I@k%-vQV0=w E&OtF =4&`z"է0-D)BU7L+ƘYk؉nݿ z^_-OCv|ˢ_2~;h5b#J5I\g_a&Rxlu*_ Gv<)PkZ^=NSs #!H̀:s>uc 1,a6I"d6>z.>b`'FdYw8d*wyZ9̍cָ)q̋K 0c `PiBh~Xa\U ߶)-EV :k D/]юtz…35K,s(b)1tNxw/hM# fyBQWr[kƙР7 dSd( c`X-VQ{d@&O\:{._}n\ is;Yè#%nY L4Y߆QCБCۥj:, Q֜_ B`8 Ub i}a")S-jyEXueh#n;Xg.(iHߗwg=v>;?-b)y4X(1ӝ}w]Y⿽8/QG˫I8xv_{07:y)*ucgK麰7uC˘U{\(yrGqX-Apls+_uXg/wkr[ "MURi1UiKܧHΧKB%!/+F3gGN8=zn%Vn!}4+V{h3TZ3Â{cE&m:^("D\M37 b P7Cm^'*LJ`"څ;焌yyPbC5zRI"\g#*_NfSR7 <6s5޿ 5mY q-VqY =sc)n=kc],Y)*ZW0hA2OByr03ow1T$|;7`uPjycdVꄄ} wNOKO6&Pr:zؾxt3v"7eCvVHVaF %Rl%iI9R|gwZѢ'ojH2o9^3Ԥ'v Buɵ[w*b|j DŽ$`ysQg?0sސYYL^"],c]罓][k89 9WM7GDžn"^b)>n վvCinqƮZT!irHϫ)I+J^" IoYov6tΥ0^nI(.Vp߸p{RPlQ :6mSH_v1HϾJZ$ʬ]nX6Ģ8{j]^[%]UZv(ĞR}v2Mڙ*&m*O3pЈ{WX;IWQK1%z5|;:KdhըgL.̢\3>XTֹ/E"?$!d~L!QBFfJͲ0.<.uoQ9LZo'ɼU껮xBc@RLa2: ߉UuCiIAAzGzo׿˓Zs:>Մ8㲃M~'jgFqk-0%N #`.r]< X:(\"K[SA뗛3a3 zXOI_,Sm"kGd ϧlIA!I W<P^]u)''8Ђw.=W]G\ ]?"rn \{)T)6Fv-:F呋nIV.K`Tm+e2 `aF~B u) vQxlKy'ƥF^%^nШ{8;j.k9e㮮TH'22Z)Ia{&?Iv}\a f.M *]AJ̩L_U{Ձ`굪'Yqd‡ ðqޣ3&&aDIZ">J`xD)슻P3ON #A-g#q=OA\Ak w7X۲p8v֐aʌ>E{o \ֹԬk54P$Trtى8gG}(&f+W"%08 8%+[,:f"{g7G".XM6cJK3PުK?Xۡ9-gǟ{51U5Z3TW-NՈ6Gȑ; KJml!_\#T3)RcxKb4Ja|`(k C}ݜ7#mV]Q!TChh!+u@ƒ(bd61En87d`k 'Y"677N}a de=cHVἳ{A= ]` GP~^d'2Em[!d! ۊ1!weDܔ|8U>qVɢ^,l޳Gmئ"h͏.nN8{`&o ,8KJQ ](G,<6cQՌ쬀@8 |JUT%\C-*0ХeUc$1сF7NUsPbJ'j*eK>g~:B\` y$0Sz-sBFMkY?EBY$fp,تoGi-]Lr7WMjJx2E.EGM$C1_ ca(r8hxs~B~_/Bm\6J  k4'h D5Qe{Rz >,v V*u2܋W^ogaz55$H}\ Drc [Tb0K$:4|H:Srhuf]3$6]>y"0;iPi8^Q&sUn/3Ngvo^5 gQqKfAfN-{F}e,4>Wd>X!XuLž" c,UKc(4{eTj#,P%&GD BBEJce[ (@ACLhQy%vǀM-V\C1I#fl#eM K>YFMe, $h QZc;\RgF61w_M9 ҫgD:et Kj1׍]Z|z<|S>H>.C:>w Pi7h<{(m)`̴(P*^ 3K;¥Xtevºc[ 1T'<2iTKF<"'߁T/Wy:(5%" Trg(.n32=wY&E'הçQ4HcȒډ3fn`gV-N6ˢ&2:g. 葟`•(-U3pjs3AIZH"fào3uhϢk-TnxuuY8ap TI+>?Czpjpz2zyZ]f[Yt-2XqD9J9>,MV$8굢q} vgSO;Vx6,GƫA\=Av4=lF]()B r;7͠{6T&K2 *8u'l$5_%߮$9TZLjsd|놬C:7RԖI=CUUW&C93SOHc=S\^Y DM/DHc)IE!!qyfS܋n˪OG/胣2VR|HWowf a8}lre+!bT' XXz[5$E$Ozj%K_н! -]; E9=vkh7Rrzh}.ʟJd\Vh\伾(l `sXu3%pQ KKY |}@ l-P pV q6fe8E2cO~k{A>eBj9rW:Z_U&w%_v =PFp7팕s_&ӱa˜iqDq*PgXb^@l `mu̽C> ;K$Cf1W7S|R_T~$T&d{tZ[E"CVI%icfBKWܑH'~ԗec6ۗ@.aIX  ۺ^))  YlTq)m] _F '21Wy8/X4(Rhp!vhN(d%]–Ơ*&"~yǟ"~>y;9vFyUVdsW%z {"ڍ8lFʏ+Z<}4E*]dd(/qJH`v{sBY*;uULQDQSbF_n<}8DŬ{6ƥ="I'#JqN_Z]?DɎ uq<`c 3r0.~ ɣ]1EaoU}үޝw[8ɮK=<{W,lhp%?p?gk\vmo!!#H!CSn Nu,^uH ݗOnR\Ѣױ?_UX$SF gB;gv3k>hWXMO"YGk2k@A2Jj.a G37m%lWjfGɎ%7O$96 fr%Гz9P_睪 F{)e:$oɛy6@kN㽫hyoN+R%Unі Fj$vI0mKb^ UjB-KFD玦6f'7:yfYUo^ޟ3rU+@!6l'p|EN٦p%+fU"JTJ>lųKCxFjev7Bo TG]ݕLe=aF 3Y!ہ|)ub1ElI/kwݨ) 0 {Vg 6#vk*C-ZCG_Z˶ݹľ5]B?OH5DPNP->̅Y=z=Op6grZ<G:N6]f&s3٦?^=x%ZW/lۊhƥMeJ(UĒJ"9-M- ܵF@HsvD:! Q"p}{= 򳛣hAQcco|Q (`Afx PgxΨP:,u( j9wH¦O!`%k%1!sFɁQbvsVc}ܖ]d#8 ۫kmYԼ"k[QT5s҈y+Sz%=k:`ќUuNGd*Rswxiv Va퓂@ʐfᏲ#o4^G"ed픏YR>nlJ|q=|FoD!1~&l :ײD~shtUp=" SB(a zn<}~6MTVh;/Vr U 8H*>ԃזwJ2+˜ >ZuW, _ӎll-ՁFՐ#TqXC ͝F0+pRUL1ʫx^Qw`"k`h23ZASu{v^Đ Y^C&G& Df"H'SHnrț#hi2I=#^K&~̪7 eaP9[F/c[}7:'u|7xaRv5N?_(UoWaI_:-G#Fy9W),#+u_ZS7"mt}Z %]NM̩]12P!ܐ3grWn ^FuV7_;8jH_O4ߴ-,T wABD!yg'zyiQ;oژvd ݇R#(AӸ@k=2:GUXd2%HG}By.s"j́1i89jrnZ oW(۹q VnC_-+.bǁFVx0'yW"٠ ?/uZ9%+>Q4ku ӈnI+ZQx'i)b%*p`[P82ެY¶%ddUfL_}XQ '{? ;I N iӅRP Ijڛ; >؈hK[R;/ͨZi&0]w\GpH'e)9䶉J)_C+w>;>' cX$36x=do=#6UqDuhVpX6h*CAuW=~*ڥW^"qujsBZ@,7aUcy<2}\<qD>q;}tlR׎<>Nen:oҹW1e&Z/:O[GE 珶#>$/mHxΔ׸V6zBTB q *63Xa"IӬmᐋ<^^LLESj5t,ʚ F kA -dB쫣;)^**|g+3i rj֘)Ҏ&è D%JN\ۜd/`GEo-낇ƃ{6V]NvvG KmE6ߟ@A^2Km\u0HPZ u9$}Wjfۋ+. Pv4fRcp񒋎TQEti0P/n-Hy]`䯧b!׎\1TR; \i-s> >1;[3k~iz"?! w8yh1n5ޑmCt[h-EXW4@VeO1)aCG}7: 3DS1˒ sChIDyҌ 30`\D a8b.E=:vۤ%Q\$מ/Q%E|cbAQ"&w \{g5}#X-lbܟbkT;<)/hDe["UD\~P+)֡iL B%Obkү)Ea7>E-L~IRD9 gRBҪqf_LuZ~ rA1)?@Xb*9ӀV!1f`;j{E1Q<ۈ*G? ՜Զ=V5b<~ph%#I'n"mYAjrtqmdDdZPǫ@buJ(3cۦZx? /^4Okz7LalPxkV~g[ez)UmQvyPa0~*%%lP`x()j~ļ2%?oѽaplеms.&ZB=A"pl9}.e>ɣj|xhCwqqaTSβ$ P0m^~hB<u5(> 7%d^oq@$ ~!OH[!E[2\Yjc3s*mͷ6qn=s Eݸ#V9@J\c *tm4SMOUɅhGxp)EJiA#qLjN^s~+NXb?̶I<ߤс[U0~)\׻P,Sů;hFsvEgC,HyHjnZn.RcTY o(w(:1Jv/ģQ44 }r[/o֮Ea~/wL`YV^a-g,ܯ[CQB2K^s^֥A &G''(X |Np;A v]q7yMEbhG|gpt-Xg\&ՏF  w7^'i{M9E]j02nM$'䀅8PNSYCzOXH앬oƦz`&Լ>Tdr |J( gf+T@+.@_قeHr_곸Li=f:/խtuV5q)G׼nji6_4vvڨҖ N=W/geڋζar[n;u%FdZCz#Lj8 ıtܲI<qzǝPU8ً3D{tzS ĈBiDߥmo!vKRQ@}|u7m p}Pw}b9Fuinܑ;ܥg a߭]XMpiE`>Qw:orOQ_J.w:YM=#S"m$Qba֏8(xQ| xGH Q2EPBy}c;tn*ЍBk rό9;6[ oqOE9 fRUL8U]lOEhLYgv% 2YxYNJrCs'_t_J>x w Z_Rt&Tm5 1Ӂ 7)XT L ^Ot+KVUm֏LBw SKޅMNkDI0RȱzcDr$|!>Tv1]W;lxvR%>bf>.iWK iί0dtΌ ؝*V1%֘@Xb[~Yvuwr㾎;`wHZ5]Wgіܙ| Dʾv_nMbT BgyAjN})?x.avE [k@DտS؁CA^wk,xyi/$̥ߓ?>?|OZLNCFP$p=6Z&KNtiqck@ܙask{|Y I1dy%!ŬHKyT",T냻;\"AST/̍OۗL/6?MM>Ql7gi3hJh +k+sm̷rs6 S*mc7 qc%2&`3aC\)nD^va$!89!;aBVnGvCMLF(X9,u2\8J^@fwgu68WIA8cbQgk;}eoiN3\8&‰T|S)$?ßQoIFYlkSV簁iYcńR .  jo G~t!Zr2!_8*}z$7WO49 z1ʒII`F;.jMySZ<¯gZtRK7aB0쑅!D61+!%m҂dSH͊L$nK7ʭK0a,2Ôm&y,$_m6 ^Oޕxjg%_x&",P)sw"lIͽ @}z7u )ň`s3sm)foVV?uj|BJM'K>irJA_V^>(;ݘΒM-\ƮX92d6*{cڤceT.!Xk/j-]5Ǿk&gN(^2mrjt3Jr[r/QwW"NӢfow2Q6qsR'VФѤ\ FŔ Jih㵘@ w!J/$#wITkı$a|72hx ܋ J9؄:6^Hy~1}OQ,;0f;n0ڕ)M}uO &@ txRAOО&p${9v)n4>b˞!OYgFo݂t0%clV=i_5_ʹiKVV[ E};P@&Xc}x} KUW?|jN}/FP[VG'4&CXxn䴪JR3h[cV+yR5?u7JkD*ڏ.9=CkltaVvSF O!۴88 A\3#lʍȐ'kXe']M]{*fԌ)=֢"(Տ1;.v;ˆOM/U6b?@/?Qbߝ8X)e%p-#Wek}E}gZof迻A-EStTj\k3$'6ok}mi|1$?,![>946e@–Rd &eLEDUc"#P eF7V=-0EŸD T~đ _<곖8WԗRMʙ+-nJA97ߩt8aSd=Ѧz$ۋ&9 wUm2e&U9;;bՌ:P`m)hwK݃&`T8ڼ{ \"7rghwRHU&m+)3ռH!>Jdo⮉ÖM$i`TŃ/͕oe$ByM~,%C`6ʹqٶ܄h,x=x84Q;k[U^WV: ,Lf8]u={*|6EgI@y,rE¡b|3MNPK5 J=sLnyg,r^>t1ho9&*$%7rcvk'NШ_1W, Ze&7âEYyQna@إ&L>5M)^vzljQY}3[ڊHo˻xNh'~T4AіSsS^+Q?Obtg/$j}L/^&Zng$"a@4ds[LjK%4=4_lS Nu(?6qZIsH;wo_}iPzOMYtNacЛڂQvnV%9nt$C>H- 2C2йMii~{kx9ʛ̶ֺHJpXžnvAv~uUX/o_xWI娭󄏂ҫK$[Bv(92]pxW1z=씣nuu: փwXV-۷(0((yHq6w˜bFPW5l]KmYn;,ZYjޘk]iblE8[b(r&C P'עV%Z34 F'%HGA PEErE>|; ׽P=+s_{7JiVK6@/c)~ N;8L9@f5] mοA7-I۬͆AJ"F̄)="]v/i 0^t#jͣ|AHas|+d'2n Y└=9a?!=($ԀR+$}B{}׊NV {Q}*+Mfq'YfB;y' So͏nΐb;1cBIM`%K|0,}BZٹjHMA[ Y~aS;V.I<q0"L\S87)=iI] U3 YLYu2VLy˛-. 2:V1]T歧7зR~^)~tmK^H_XFևkdhN~K 2 VKfI*#!!!JbsuRW=@B=(#yᰃZ+IPL#vuwќ]w\axIP[2{{CF3w\@FœA[4 ݐ:ac}C:7l4 V)7-"raImw3Pf@H *}#u6n0ﯗ߱֟8V/)76xr, ܞA~8 h.B gV{֚EE֚SC, ڂw*zvu}.?G:}6HG\21{zCC};8څ)AKc?VR7Bk@l74'6«Obi%e aGZV| {~ϵJo؇Tu QUHTLeǼǤDqo}:n2x$f)0ӜUgLUa|(6yȚ.Q|:;?cHw qɰ*uZ;YB~j*I= t.2/J ) Pw3،!c !V2v8ӃLocL@B$w}LbUĬZAn1 -Cm;\KQ 39&TbRC;Y:xXl q0/ݕG{=aK{ZO5c$ Z= 5,m&o5 }:P}玔;8*(B~dW@)v.ø68{=lb/VRIMȁ9þ: bɘdDd4Az>b9!'%=̛%b-lǜG|miQ-޲ {L:iikL &p3MJ?q)'6O->٩ܯTܠrSC* 7%`_kl9<3-m͆K!Olvܳ :-LwWO[R(||VB\z\{vrx.0MQ' c}i O՜OS#KנlVybMKr.M,0*0e!/sv+Q;֛,9 Záν{PUҀDƓevz8&M U/eK*<'th6ꉙs C8hyV7W49ΘRVH-;͙(Яe׬yYƆbcD"ֿ{_S+;\idJF nsْO;7SjںWg ݹ^ͪ?1x>^Q|GʒjԼAN!C~uV+lqz2J&3 @b*eu#11-MDPBGu:Q:j[@*4h;yR8d*@d$@6"sʙ6(Ұ3v|9 u pEV1" Ӄ d3 /pt,պ~rV׺IW5cIY`#»lv#ڪ"v-]v1 ='PrFlɈ1mM p3qߚhwʫ?MS*nE9uD ZA3BJ4n93d7bѧ{T釴)6N(DuqvBbpƪ]J䄵I[f$HkS :Ya I7Y>2٫Je"J $\1)-_]7K\:36GaH̕28=aH9\T\,L#)S x&}$U5eiUH@'@!B;9S:%*FQ$',ٰc[ƿ6{w*,"XxnEX QކQ%CKbNl_5v?/3e:α`'_o4aXϕJpQrN}m`T7W'PSW?=΃dL aޒ_i/B`̈)eGnO#A:\̇ _Esz>[poCpCF(U߷o@v0_.7NFpѭ+'=o;U$Y6b=|:>HaP%(v~0c=Xy. ihS ,*[,w]+ScQM_蒎#(*=:FY83Q?x^L/Z/\ 띎jA x%l5**c=LC+*Ҿ݅/ ht:}<YSxV)`E\Kx_(o8D 9pE3Zi9ԧLӫۛ},;-U ']SZr(M.BӒinacɚl3-zl~ 'rλ\MÄi\x=ɟ~ڛxnpbZA Q{֌sѪ);b\>Nȶ(sԢzvCL5;cU7qy). \)X;قӛ^|,L߽ᚂB߷ͨµ#~7Pn_xB<;aaF& )}^ ߦ|P/ mO5M;Ї3`Mx6?zV%~ MRIG&UosRrpjoԱI{A>n!ihZ  =g\W`oz jNW[ 6}x(*-ȫ ŝWoU8u_qQiƄ;*9/h0c37\jAMA'mUf:"Ԕ.'I01dsLޕnp5afߟúˡpfHI&oHYѧ|լ>6Tp?$v0 rN*5Py 3_ íƴCP z OuGٯ!hLYbyGLJWRxCDԖu P\R:P1Qh BZt* [xxvY:JxiN,$ߕ\qh?SNա'?0*x~X($ _)35So'7Nx aD;"ı^ u("u;@GVH˵T7\{|;>~?^i&I22cZy9='Vt٢>u,u ;~lt6#Dq;b]VfO\T]Cz Ҽ&¸Pv@JPai~X؁&J9@T<-Ю9`oQw5Q1yӉ9Y&CG5%:DIczqPjz 2TEqFoqQ3@Hp'잳KLsE[~b̽:5)~lEve:N7Z/qzS{7Ny;Y󮶜vĂѷ*HI0/k좾E")̥!FE4>1f㶜cxmWM:8>1t(gD\¿F^(H߾tp&{V#^ˡ2r3/V(e@b;oQ K|Kyûz/=oy,`#CBOqWl9 Tw,&AE-\Bz t[,$;$0:] $ N͋$݌av[ h5FR*&'hG)*?B]a6w6ղE=p{wId^##)\2@U#GrJ.4&ROoŅ[D툵 Ok֣/0W?@Y-  Lgƣufck;~&HnB 8wϩ8?ce{A ^-(x}hL 7Y1C{x6b3l96AqdSv֮%+ M@cb|q 1* 'gt#m Ds!Rall [p{eTFP-wL=V 0kGEl_sfڼRv=& _av<ix1+xZEdCoѹwPgNu:w'0Moyf%z%1X 2}z)=)BBfΖqd%OI~bn_ԫ ת*)'jd$OXK 4`AXgxd26( ֱg`Ofy#4<4v{6jBAKK&OIk"Ϥ"V+b}JX-!: 92;}Щcmo-Sc+yZĈp "#Q:'ђQJ61:n}vp_G1.kII84Tob/yC"].J@!j=M"/k6P- ( Fs*-7NbN#̻t%:c_Z7w-gZhOG^Z@&뗖(r!eWELfsmzr Gߡc`&< ؃"8G'3uIkƝ'@@zj#lY[ᖑ1=-@'dSN@6wzЩ|K]ʠXkG(xGF&ޡ5;&!ᩢ6Dw|iJ<Լub6ÁT21+BM'oGQǝ{5mPO1~cxpS2EKhi|aI0y58psvt層!{l;nk b_8:PQ lAQuYjzd$06lk'T#5xfƋ-*3[8't8x%Ä,@ [)Da9'ngh) #O`?!Rk2:zP!ut}Ӷy;q=E;$wGv~rD*Ćv[!Op"~T8:SP2Gl{#Q" {3Pȓ3vH8ʱ O\.G?x7hh,Iٖ|ѫ,Ś$u'2F+ʌ\%z7ֵEWkMK.;؎ Ɋ{e?u':;Cd?h)uHGMvF0 0~G 0t)g.͆{Q {3a#墺n?~H㨊%qBhڲ/j.Srͦ.A!_ yC½ ]+}b EpaEb;zqh @?y_<^x L6r8$TΑorQonMy2di"I֋w?Mi" P{hb1;ϢeפRer?9\ߒP!͖P םe~Sw,ʹȑ&o>>._IFטN?p@6Ř0pM߬eSn@*)0J Vвx9O}0SN_g0!A֜o6[H\nWaHڔ;5ဉXk;=I(3MS(WbvfjHdt2!5 3pn>_z)E *IZnu75^.YT.b7 "n[]!s+ؠV\M$Ib2y4&~.4L;A2;E'im8LIXpzggd˥{_1wZHdiɠ3ϫY"C58=}Ck/EF AsEntRvf$n7|p&恸,+*#epnf((!*[, 2.UP]+S5N-jx;UA&g,KxxdzΧI`JwZʗl N3L=lcHz67;AIJ+:7bMq|0,ֈG ım|@-o@DX% r,4 07+AL1n]tuwbju;iwQuii-2:UYg/qӡq(.Z/2my;K,h١&U¶1E 5t[tgoW&Ɩ6M!Wp$XplJhp<#ꗊ0Ս@GhTq'=Aϭba d5T՝$pgڔwq (:#Si"lSRilX @hw T]TO IսALn2\wLHn*Ą`s\&sROXG|! `;urG[q˴/[QH V&'+]эWPA4 7_A+OZ9$d}=p+^T!pzr gVG[%:\07U9}$tb_ mr$ 5 Ѥ޼砑 ( j$BkX~7~7z<shQ4RD}@doޖTeOn ڿ[HY6OtphJ"Rw3Mpemi˵x6R|.tqa~ՙ@u[g6vlkRBׇ+hJe< r] u@fAg"zP~+ !r9VC-hKT!'ҍlˡ՞$D`cЗnۓA3r($3.)@u|Bhpy*cg;&6zMбMT53֢vv@wГZW>y̘2-énŦ.2vրCX:\nfN! Ikz{%y,S,LU( tg4}Σ}7=bv6Ù↙fUNV9FL47~29z =q5R J~NǝEzJx2|.T51W%%YM_j1)I@8o Y} v5wye}T,߯F?^x=G9), PZNu'Vvz ZTg$* $"gV6D@nyGWWۺ՗:@YDpYG2GnD)(JGAÏ"VКE&`~џ4{bsy+>W=D.~UX1&pCaqn= "$&~xp)Lާs2nb#*IZP *A>!91FiS"'7y;#v!uCYw ."1|,ϱuIڻkl`}Lc)8zۅ|H5*~Y<o]/3&_߮7*G6x|f[SBoE p*BdXjnlEjJ.u5LJ!!!7UZnVKHzڀł''6偞DyRPsmmշV}Z_4yC\g=!؈X |AB~̏`IX.K"BVD#<>uDxx%d 0Fx}+eU_~3X3,=XƄkUB *QI\ GET\cjڇ*g~|\xF4OT4"ɚsxCԣZI-Xz..c -+CP.'\s6KhЋ0 79]RDt09k 1 ,Э532JiĽP_Fg(\i(mWy*^hfk =5ًe;&@sFn*lSPIL*.K()Ԑm#UzGhԯUߨw v4ǝEl# K?7;7s:ځKَ>~^։qn:>$9m CӔbFu'c`6*)xX>Ј]Ϲqt 0>S܍= )dDi!ic1SMAպ#% k}T|.Jػe @ ffa 4$t:JfKEERͧ,s :r^Kc$#}Vg[xh)nG۠Mn5C0;GVZ7mY5gVr04#o71p}^%>X~X e%$P]˄r\w +\d.U_ORGn3Ƣ~'eoj1 Sbx%:N J\ڬn/ "gY1C$JCEGGoRRFJ=1Ԣ-lv$ _+oCv8xnAq$ HaR %e9=̦sSBL@&K8*pn4_nW Ov^;>i)\'6iޏFODl;IU2~RF "llodyc2\fYxG,Vk(B=/-+̠Ϯ#%)WX njkskX0JJOWCTy`m3 ЕQہ}{ PgU ݘ3RP1!͝H y;5E}aAcܧRx& DE>tϸZJj^!gb] ĥhʺ"g^iG,QN"^xùՉ _͹ Hx)fcTfPZ}eZ2m3PSyِ̦LQ2uLduT<}BD*ObAZZcd?][&*0318+:WTя'{$bL{< `ץ)MB!69M;<)|DD!۲T];ZcL`Vܾ<}#jlx$C@X`GnxEnՙJȻn-RZ0i ǴTO~ϸ뉸-]T<{ 3]7fvz~0 5w҃u3›Dx^Q Gdz@LcRi"Lyt3 Z-KY]әU=2gDHOʌ'¥vu] aar¹6hL]X^ pS%`ԯ1enȘ''Jm(rNeK{TNXN[wT}'n NZר4'5CRۜU="qJF˩V"%I#691HOfޕ۬e1-5?L @Mai:YX΁RSmI5)LyztiwQM=Y~lV{t`GhKlbܟXDŌu Ǻ8Qa 1w}O{NFF@3Fk`3jzZ9 mzvJ(˿A`sC8D86V=wT` J'ֳ R9UĈJ9&>#F^MLBRaeZn?{(;зP^DH0 +"w4߉O_srI~Vet0^ 8tFჵiZN9$̑Е mpΤwzZ~OhH7-` k6yKi8A A{˪dK2Ƚ^&ƛpUuQ؝?l)a7$7 kv}ؿX~wzUza9gkmGkq}~jm5(r/:'ÿ? ռ֟B WiJkJ.X)KdITh g#0q{0sx.6[i1;^;hO髏V>-;Tbz@ӝshb7uh6^@qLӵ 5#EI*q.sU@ECX!dНf 7є/cX'wMB CvqlHVG'LAPN}s8̭f>r}'C#\'~乲XaLL()U7*m c {-'\l.Gueûj@Rd&p=y(}vAO*+U<5T3ip,UG)cf{''~@qfnETRೳ3Ph+a1FQ0j˚lQ/>cbbe a3%OxTt?&J?d_q+0:J,_@1MmW)w=R+h;o~tLƸ n#a?'Lf䉄D٪ۦwqnoƇ56ͅEZ0I`F.M =L6Z,#("G!- ?h-0(*K=%rk)da@G@WfO*'NFT h烗u/IHӢآ.9~Izm/,ߑ:$ڊŒI(#\e~X8b GVٙzÞ_x},)f€V=%~tV"c4&XX%DB~^$<;_f#BeV5/gǃPU7ns~F>TҬ+Y: 312ȚWyz* }L{](9o C-q;q2J2d=RL# fp @}6!97bH i {wƞej?V``VReaT _lPS6xls2l\S9JB:zn巼YBG%儬TFܚ^$պitd+՗!@btuD^,3{9ǖu˚ uZ_Q8%D#ein~c;Mы'61*i*sN1ՒN32Er}‧-Yh|$` }hW9@c*uێ\(jk;ITqhB@m2dS{)`4 >?.c\$-m|#(~i^vƢ('9Bxؚ}ei]V>T%qŐjӻtL^R9ƐJXpp/^VvNɶY8o@盨1ͅ3[m5lE=1p/[(z1(M ׄf #xs~9 0^,!E`\w۩z8%K08Wz>1p#z`~ ȁm9CDj,]dK~ď_.`E0yL`Ԍn@!2זE YBnuZ2ŋ.Lx@Mѩ}9֬Pl2'iQ 3]N)eO[B6o7`<,PE_|BF].(mRrћXѫU[TQ砺& vk\,o4n w}`rב!ծ0GXӒE墀V}kgmUPs9 z 7X!Ǥ' W?Zcx,T A:fs:` ;6ȥ!V9r0bDR#[s?8Sm:\+BN|. :qfdF.k=ee{Z)gFwߦ$JNlf 8ѹVS1`MgW N^goO fx mD}Zs'Im|L,b/: \Q;WO ~CP]ZMy?!0yp*6r0J H%733O)=82pGU&x uf1sGtzYA -C F'Kk~ 48+a3Y提F3\e'|T;9['s <Of7e`6YgQӆ6J @xQR.ÌX]*g)!k\eĞ^>Md|?y4K cK6A>%Sd\f`Jyd+űH.G(6{/)No&=*VhU5ᅀtzw<\S=ްc:י̣z9RCV˔e;N+yXjb_ 'inKy5i{,qLT(:t(&Ƶ(6-4ė0Ӯ οL%ؒ]GKA)cbxL7wʻiS[1M̀wQ}[f1h%L01. 71 ~J鬆{7fҧhwx$}GnUݧ;N&soH~`Ixdzp"w \[.D~o2 jQ7%"[.{~v6k#sT1AƁW5;7仫W+Ȓr6/-nA0cL&E]t ROBMۙO Wr>):R7_fS{E!w~%ՙQy\ɧP  ϶"#FgoLdՈ)La|\v"RP%tH_*~lj81c kN^(LF7ǖfb{IpTB|/0EE2quEh"<#qlA !_Rqx1@-!J"jröD x}@MXQ"qA1킅Gtk3LxA :N-U'&m 8!qTV8Eh]]bv^v^@!j'/1IH@bL֡AP}%Hɘҳ!'+cύK^i1Q"rks{XTEP;ůml"NczpRx7)^ 3T3ŌU2;)~ށӽ#ѻ^s**|p&"I{A#>>#53j%%N7zřwżbؕ4Hi-:b5I1F)$tGx=蟦8%|O2֍p7[0u+ J(99cɛýxrrza\R`)h0,Ub3?ۡ?Ys0w G`N"cɱwD>F3ZpRLf] q꫏uucj#pͭ$ZGC7˷Ei/zU7&^-%.yzSnȍϠ G<\0Ŕ=8zY){*YZRcsK|m=k3fݽLbh }e[E@xnZ xHI8koH$2E U^ M]Lɲl3P{uGu7+Ux+ |N\!t]vAroi5`8/>fvۮPl-n;d#lfG!Ȕ$ +?0B7oGL T髳6j } hW̸5͵@G>& 菝#xhK‘ŠW&4ڀ6bj yi;SzQ*lsǐG 8B#HMߘqF9JFȎ`mHL” v XÛA/B`1Wxcjl"Rϰź򬑬כ4Q4E&KpgӵFOnS(NmؔÀ0%~mU`{#hyU|r 48B=x\I+ؙLfʦ^H[PmR T4YB$wK񝲣*FB,'ϩ>~8u/FNzd8S}Y2oǭFsա1}X`:w1 ̶+ pVp-boPb :ڗrCO)50c-5425JŲj~×IG*!ٌsڇXu(bF0{Ië6Srd\GP|ͿW).Fo݉' qo">\S%#حH͏i^x,*z1m3/4`Ԏ0}^ Sx&SۧʮmZ/p\,tg =촸rT9 Gm~Z}0cխ8$ Efc*c|1Av\ Kv]*,6Q0N V9w~0:jPycO+;')<%gr-p]$CbnVyt\  e3<UqOJ E7oIX#H6U jSdXR.(K 1_kfX~UAjCr3"pHg,}/gɣ[n(o*̣njnPb ɚM1·FbrsLKmeībwfo:B3Bj#-&ЏkI wX; ][D^w14w5v=AksyX"]q1,3ؑj+bqqۺLvquHB5ГD 4bXjoe# @ҷ٭ w3\{ߋ*fMUuD~W31-?mߩe֕?bǨZ5uY }fh>( j*@:[ž)rʟư!+T/hNIW -r^/=X#g&pLTG%bạ,It^HJfP6?,E!(!H3 2E\kyȌ̮#4GB1r8loV䠟upC޳fIXJf _ɀ.Mfs嗠Wi ̦uUa Zp-E[ƅTGj (%Ba^$Μ葜v p`x.ݱȤgNVeࡓ Dox(AC—F:%BpKX!9U{l\2ȇ)z8A$~|MWD'XϒI <6S;D_bE޴483C.h%D)RDI5/CI:?yYr &rP^qdSB"Dֶ jޔ歷B%!s|pzڀW3k8xɐw;'$o>eӾe曄s7}S1۸E؅$ p:*:`H|>~=7klY]iCIBM@cEbH*1 %+#C fQﻩ.x AEn,(#tƁ4৚ ͛ vN NT/Oc4+hSgtV\J0J2H~H'i㜉[t,pSpT=y 㷉IvaSsL7daK'yyQ"D8U<`9Z{ZXC_4$c7%O:&)hm!j7b$?w04hK-+dwKrVQ-9)D WI)_:!Jw3eqI:L.U$U.]+x^, 8F8Yb}^u,bl_,'h.%;KZd̓K+FM )9pPk22d`ەU^k_F!XY۪>5\CM.W*4g3=s<+#AB5tꎖvwJi8rhvx q&g<DKu9KNY^Ґ"A|`Oop}^{1K)TP-VR$4 ;*PBd9~b|OyÔ Co>@z$Bnx ɕA¢_jNMo w&M+-HOuӈȠm7ڻ^CT;eD7GKF,Kzh/SaQ m.@ 9`fZu @iK>}i:`ywvL;؅O F{nI]K5>_&iT]3 ,CtѨP 4sCrx<$+Cu+rJ kSd &UpxldI˖@Z}aMhةL&N+] m;,&w4qMXkAs5sZBqR8`*;%B/ r'@ypNW2-ua\FEi4Dx땯=?M&]U ~E,3luba*˔lʃEGz\Z&ǎhL58jk"rč.aE h,48n܀z<%%&4v]W+=*oWibg, ?*|&%/^߲]ȇ wp!IW6HY5&&V'.Ms3vJ^/7b<034G| 㐦+ER}uTL4 " F,Y*N?a +r:d |0V?"c?#vQTAa{!K+矍F !bU.Τ%4>tg'=}_ywh~H43$e{G؍6{n?ȏ3aS&HVx͡ ]cg'.rv4 ?ețnyyB>OA|Ybit5B9AdܠyIc :30 |-EGqKdeGa6-#J_;UQ]=·l!y-:U-<=e`CFI_;C׹zԅg4ڳgbNghk9̓ 8Ϫ~1@8F24&pzڥi+~+NTm >0>*H\ݡxaT5aBM`n|0}e'(XBZioߥJS*3 8\Kj_ ` )T %boYX.lܲ_10XVxRV{쥉Z?dOsB )ЧrޒN"}ܬbҌ]rsz$dVJ72zW~%T;eɹi$j{P*vcED4ؠGFj(9:n/WHKwu]Sa0"Ռ(`N8Q&/9C={Cq'ULs ZxnZAa"GȺ` /u6&ȕ]<\ N?-J=Ψwi HQaKC nR{Ҳ 6̓F.B8H5U ڇ<1l/ 4G\r-j-V鶍j"zVg%*^A]nW6 a+_ƽ qw^G"5̤ @GIC+̭)յ>ʧYi:d^:s&{Zry0۲\"- Ms 4K˰y_1Ǧ>3ծ,ëj9M:Pd@;6Ϡ`8Oݍ6 Aa%~ubh|q,!,+6e pԸl p=;VBw917xromUGѴڲf!Nޛ"q>ai 9ht67#'3$zSPu 2sqzIĩ 6⒘N:lU,XUW54ÝH?9S+-Ko|>f|w&6%Q/אv bc}NmQfȼp=$_kH~ziX;v3IWЁ[5WZM=wkLEJG/wFhI\H'skuk!QZAy.qx_c4iKeoCluA,?xIFB/.jT^4>:02ZN"Y ia7cs(Y%3jT s+ُ8xTcuD3}Kr<mhpFC2`x:oɆC'ֆķ6¡jX$]{ˎso1yTaeՑXSrR7)+UNº[r$sw>.#,*.8r*}ީ}|)7VQ@sFSJvGx 6zhHݨ nL2bPQKw1ѵ,A/j#95 z*]E$Bk:FV]QGOM,PL_H`Gv'ktV0qtj#S矰}Cjzly¸'y@:¼|D|cKs K*E49< ֈ D;} o;G3$'iV>z۳S4/30C5]_/"7.KP[ds;2wzD %.oϊ6+CIݴR0)i ^k4~r- UGuwQ)J rxʚՉ2+@ ˸sC]m-;G#D0L7@LELH.=`2t"ÆEs#ey2$- T6Nry sA}FħbeW3ڷ}j@l. 1Qa_fb` ";r5 r0Hwه s{AXzu0>x ߯ ӑ$8ұQnDty[ZM^n-$47vcjpy1 默E:}j-'Gs@,JXxվ( )XJcܔ )SgDm.JAy,c<&:AaRܑ{KY@V< K4++Z]w-QL,.Hp"c²&Q[:OvaeRN&3HNF1oMovBha'-n$78~ec$Q"]4 ^a*<2e>An R6> u[9l!s=u3mġ׵Lʈy}7P#B29'!MV(Is2_c@AA,"?Sm)(EN)`Jc?%6ȩ6XSAAT FqNqx=~Afޛ8F~os;I^{ԀWrsz`vոWG͙oaM1hg&Mɬuy;O\n?͂kDiL&L,+Nz/Vu*nj;[{%TV'`oMcͯNm>ôUVq钻7 `싮sI^\uyt常Jd̹9To\VRZGTY֭cb'gC/c'i Flʃ&M(@h!L8G.C8C:WGtPYfE3 *23۞H+d({@|扏"ϸڭ=vFT5S;\EoU=PNXξIȗBtFP=)e@q^/;AˡAj]̵[݋(U~>̫ǑسAA qzj HgH}cpڏ2)&Z//L-iw5fFGanbߍ+JhX* `IVuɊ>8. /61|=A͋Ң%: UH'K E蓇kj7k7 'J'fQpكD@p-WX&hU fXh(C.֊KY~ rƶ՝!UR/mn *lk)m+|X+`Eq J[s&=ͻ;03?MK0p!/@+Q# F ۗڜ | XfUvKY.}aN8|VzԛO)LStȜ2E߷%͇' o{}r5V5뷥&.sB|#쓃Q;Rw j4BʰC>х[ϊ$zF+]5_gsv(j'IBGuY:LZ c);N;C,X 4wnzǫ^VpV~ 9}VsoD@z̖Pupܦ"f^" +фAn{X6z)۫ 6wVRط,bl$pei'}7`gbKS#D@,(.G1V65rFڎT1QZXZw F7mx^$d^7y$֧T wI"Rp&˓X#Oqps4>22%';kL#ن){N {OG /^ECOGO+L[0w# ~!eԀ̦ 7}~oF|2Q+ bW}k]T\LiQͳĈD*-SLGTWM4 p,5K,PUcow ;^g3,UDح< ThԶqYdS[5zlٲvvʠG6H ##779K;+hI3aB @ G F}^s&UIE6YDgQ{CC+",XCu~Al4B~}N;wtPÓ $>c LpnE2'Gr=ȯ̯ªHl;^'$-4uQ+կyʽ]>d@yg yyxVb C-:'sn`1 C{B57vEqaK? -oj iO? sޠa͢P+Lj2Dzwb09zR]=SE=<Ƈ99Y-, ʛZuv96F*$ؘ:lS[O:`ē-I, R Mbz2M;7"GJgDw۹ph\gno\0J(# ÝlWn>@a$U8{lgMQO#$e @?GA[]nAѓͬk4 =́"t4vBP>K9abQ̏Gɽ j9d[1A!TۓInսojǽl{D^7 Ϩl'##wYI#ud:kՒ́kԋ⺵ZHH=ѳKN󻨨1lrhLe:(Ҳ(v~6zOL2Rr: tX%~TZ'0504\r?BI>&˛e⎂K,".'ԀJo-JUҞ2oUhE}zMzNJ|ܴ[#o2SNݘT"{p02x"6X:T}c#o|hc 4djqJI=~NKˑ>;3Y mDX.,o9{KS<or._;;˽O1l96 aTpm8p[z7c% Ae:\JּU vKO1sgKٸ:LAegb]12PRLb;&2͆9bبn=W ܹZoTXҬ;ՋLL5h`Í4]n/9N:)E;rXZO,~1m~K ?"Qxz؝Wuȣ/}BϷ+Q] q(2 ^&:pz+ L5& ~Ҍ)<O~Tz%ĭ8rc^[]}/Y(QoOHIw6pyMMS3/S Fs:&jb|-aZzCK\X=bt wѨ*L+K+@ņI$f.ҭ˧˙RjɊZ+c!1 w\t}{m#H2vܞV奠E! jyC<\gjVC-T܀zlz*r[wh\]#edӳ# 笠 x)WI7ᵦw(Eڞ-!I$}S!c~ 6_naS#WɺW'J qS>~it^*,L(zzex@ӖR'FRm:Md.=Ըb4Ebɍ='$ ,s`I 'a•-(b3+B95VWAe'v/UZ{@U-'եdo; م JuB 3X1wc?+ E캥`(tO1Y3Kk6JvbV#I U/ZhDW$ڄ|,p1V׉ن07?wB 1 , -\r>hXe+eNOl/r&β)N/3;נS+Knup(r>G}NISxZ| U^Uާ/}VA 2e4D_\S60.T62gjUiŖny'- vctαh;o =Nlp6 ޱrı|KOY,s MJve*[9RUc3rT\^Hτ$[ bXOC@*>sbT)XzVդTԮ77ӭ"?QRg@_['4᰽H^]+ulhHZE/0􆥊z?r)lW#I,9")K+?b.L=qi,9Ʈv2-8{ܹ"h֍% m JŰ8]Wsͷ11Ik{p8+7}uD-nv~ժ[N_F7q柳5Mx%A>1D 0Nb_*m_ |*xk$f뽮b 7\6-6fkI{9IoS E]6F9= FEܽh{R'cfP]5Y l^*yP6;%?Dҏ2, PX71{f[{  pϦ*u\M;K$0qQ#Eh}Dο2U= EQgV. O:%aբXG]kG`6cp4uXعVF f8^q#7,YM+9K7+@ hSc^X}Z= \htB]< ߛpH&iS5)Բ , - {hIɾnj3^(8u[L`r&B;q'X'5Noqld=9\3^a`Iw$'ᡪ:z+] Tʧa]W &O{x ,nP6& c3eJ Z-/"aa&w 9VBB·Kb#%KkG,ljwؓnH&έSMa 3cw+b! CpAEf#&ue0JEDY((eÚٖxH$coLu t8Geq %XΡ?6"߁_jd8 o-w&!b W 16G-dϜߏ\ Cx,뢻3 d'\]yuXnlͮi|(}[@QuXUObi(Kw ~hu 0[,e@!L07 5Jkc8Hig+up@0Irm}hOO.ѩ68ܝ t@{7sxm b" 5◾w~̖Gs3ikV_8%;H6.ぼG'`<&U tᑫh ^0D{~ۧ"up&M1*pVBT|F7'yٚ D6@ yD)jh8bsg N(KӤ>k(dրC+Ar1(|X:kS^[Jof; mlyt][ I1-`NL8CDS+CĚlNmk#̸u^zɋB:M I8 !ʉiԩRQ9}V.E4\DeHc bez-7D6jxjJ4O8/: J"G%IU NBXEnx9̀€ߧZIeL ~4"@|9#6ܤʮCEC_gq@I*qȭTaI7k]Պ[S(BfIbhoFF:=vIDXμu(Yn<7g7㚟F?"92|4\bI10g| ,3GT[YH7"[>߾h)/_L#WmL -4jιQ*Mc$|_ɇ;.*gCaZݎԔ^ X%od|h>]ŸIhíKѼ7Dir2Aɵn`mDٰRh+uU=WkTR:`!1W7*3%'KK@*5.P0x]Fo>\Ɲ k ˻SԌ5Ugfˌoayi;1u lh@6LghR+|bmAaulS ,1YD6f.КJDuBh N8$ eM.1SIs"0?ŏv܋e`WKK=֨O o`s|xTƊx%DJ~Ct6V.;*qĀ|jm$/??̗c(:ndFypQ6\"][Ew T&Jz[yK: 9 P;\tV .PWTu<Dm>JIɺ+a3Ty9ϵbɡ>ExuJN`²P6S0>/W% ԍMxOƽf&OKq mo/! Ь&;ؿs`ݱdoxtv[0z8--/f: o)VӧB4ʤOR y:٧:wXZbP9%!COuycx+SK XɕёW;NJ)Sҍ+2!ŧP9QE~fWɚۿ 'A2J/""UCp1= }%BȝiRC 3 Bfuy\`3|W_?)8i&B(&-i;Stb7yKDBc,͠NRQ`Q.WC+\4W+W=4Tnn G"jJ*Α+-#x@Ę'đrOV5#6Gh[INO` T azu,7DGRIſ> IZxQIpѾ9n?Q;~k;)^foyf 3/+bK_\y_F9Y&AxjgcFZH4*X*BjcoG޳^E"Dщ2+1LoA%G>U:7,TZX9tl'@2]W/e-}^_wGd cy%uXINe6iܒHq8O+̅x3'*@naﱟʔUCY$vs8;*NX[􇹔#0*QqNnhX" ^[u%ǖn]z/[h >)XO>A>\(T':IJG ׃0R-İhY0LnZtxݙX-s_ X L[\pܬ{Z?yc-eI^/uϯ j=FUI[}'Fxq'w>.ԗ+T&3MYLF@{{]s @7f] OC YZ