cloud-init-21.4-150100.8.58.1<>,bG=@p9|(SJI{ .&K|al. ׶c&o=D.=~Ù"92JE?5r=.qfwKuHNpɪYQ*vxc0f6cQkM4>h?Xd   ?  (:bhp7 L7 7 (7 7 {7 7777ʸ'ˈ'ͩ'( 89$:vF)(G)<7H27I:7X=,Y=8\=t7]FP7^r9b|c|d}<e}Af}Dl}Fu}X7v4 w7x7yz TCcloud-init21.4150100.8.58.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.bG=@goat205SUSE Linux Enterprise 15SUSE LLC GPL-3.0https://www.suse.com/System/Managementhttps://github.com/canonical/cloud-initlinuxx86_64Yj+ :< %<b"j_I i + 0,5V z,A? [zS| D4kU&' B!3 =$1: $2e^T w gNP|  JJy q"y .Zm M yp9t Jd .{E&   (3P7 5'[ W ,c #: y  x ' f *_  9+f e:%b  x^f MY#  {D1 &* N HHiVg7'G'e>7 9H " 5 \ (vQL6  mYT~VZ MYV'KY=9UX@YBh g& F3V2M  Z oQ( E%>"/!1t#8 J ? >]&) G {)/L4,2v.KYX$|#>-T% ?lH}q -!h*b"H04k# x5&0*]#-e7[3 =8'4py,>(5r&{q Ax} 5 V" 1* ,!L0t%l b}M~ cQ_^&uE2`n0d ;vDp R Y"m Z2g MTL4A zV90IGP= KKAAAA큤A큤AAA큤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큤큤AA큤AbG= bG= abG= bG= aabG= aaaaaaaaaaaaaaaaaaaabG= bG= abG= ^bG= abG= bG= abG= aaaabG= bG= bG= bG= bG= bG= bG= bG= abG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= aabG= bG= bG= bG= bG= ab@aaabG= abG= bG= bG= bG= bG= bG= bG= aabG= abG= bG= bG= bG= bG= bG= bG= bG= aaaaaaaaabG= abG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= aaaaaaaaaaaaaaaaaaaaaaaaaaaab@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabG= b@bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= aaaaaaaaaaaaaaaaaaab@bG= abG= bG= bG= bG= bG= bG= bG= aaaaaaaaaaaaaaaaabG= abG= bG= bG= aabG= abG= bG= bG= bG= bG= bG= bG= aaaaaaaabG= abG= bG= bG= bG= bG= aaabG= abG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= aaaaaaaaaaaaab@aaaaabG= abG= bG= bG= bG= aaaaaaabG= aaaaaaaaaaaaaab@aaaaaab@aaaaaaabG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= abG= bG= bG= bG= bG= bG= bG= bG= bG= b@aaaaabG= abG= bG= bG= abG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= bG= aaaaaaaaaaaaaaaaaaaaaaaaab@abG= bG= abG= bG= bG= aaabG= bG= aaaaabG= 688c83da4aa4d373a6b4ecc07b4d8e2bb5856a23426e3e55ff1233802f5222645df6c972f880adc375ec32564a00b917fe1bca5aa02359abc0f4906fec65e0911c80199250aeabaa9ced4990d3e222ae83859a983e781c4d6b4c64808fc5a6c20d49d7f9b483a7f90f2f81ff794a7ab43388ead785e47b73ef1c88017d555b897fbdd5a008b0c1c4c64f17495c235923512d06e53103f088d6b3da24cb84f31c9d92432f448212c11af85691bc3195368f7079a031c059375c893824e2fcd58f4af93e3113fffe18f11f34e9a5b01fb449c16d05e0e7eba59978ea18068b06bf9d92432f448212c11af85691bc3195368f7079a031c059375c893824e2fcd58fd09ccd2f4f0285f172043565da0759194be954e45ab43a4a4c025903607a35544af93e3113fffe18f11f34e9a5b01fb449c16d05e0e7eba59978ea18068b06bf7a978528b6f5b1d93e8cf8e0fcd146e5201cd605c443eca4b7478dffb4f7dfe13310425931bafcd491046edb04861c02bfe57b9252236898751c96337fc784064be98341c7b0833a00b0aca41f863c126fe09c0f3a0101c18ffe101a53430bb7f40c1f9575af4503a096759fe136cadaa0fda118090a8b1c00197fccaddfa2cb981f72b961f25049174168896b9d979ded61406bf0052321b606f8940c4e08493662d513d2dd9f1272e5e56ed077c5351d03375eed6dda588a0e8a1c342c2b9aa09c0d9b1a54e00700755e1e892f0f30fd0b47decba76313c1affdff0f8b51832eca7ea07f2397196143f0811fc9233148ba894c1e9c62c911f1e414115a98e09838131fa1b14ea887685bbbca67cc1f94d704eae431f6529f0f1c1f9e05b0d8a09c0d9b1a54e00700755e1e892f0f30fd0b47decba76313c1affdff0f8b5183587d891a25d4e1fd999a1a9ed80cd8146950ba8ea38d8f264930a88cc81f7e6c718053ea9a0f1bdb7e401f20b50cac6686c04cada5b7223b92f0d3800e1a4d0bcd1041962e1542e8030f93c8a393ddc2920bd7efecb2fb96d86aed52ba10efc7a6943def789ca80866c87ad99c5300ad8791e92834601f05cdaff7560021553898a31a4c66e573885df151fefceb38273000a4126618c8733a39ae2a9a9a0cdf1d435e1d79784e95f1982b534a7c5f79a32fc3b91eda3f6cd67c97d23e0d134694553280d2460395c1f66175306f014dba141a3786e41584d752d92ee76d1370bb496c2694086a3edaaf3e2ce4acaedcbbde5e066c9e45c678b603d7a5fc9eabbf24328738a784acaa2e8184e0150c2621873ec2478c102099e35bf04335e06ffcea8a0608bd741b9660ad4814073b35bf6cbf080e1fa27ca2a103a155c32aaf5a740409f088c01dbfddbd4712452ff37c1fd9750c0f973d5e274e44608ced327afc39e89350aac127111f3046152c1b8bcaa5c6ea5f98a020164ebd704b05fb6efe13aa324a20715703d96619d8db3d3b39bef557ed7a8215146639dcfd051c2477a2ac1a5976dd46cbedcf6389b4d1e3ed83ce6fb9c994c9699afca294cf502478f077361c171148831119e9cefec2d91093519902911520b4c602efae348101ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b87b354571a05199eec5bfc4f9efbd95a4f748e645ad5f95caf7880b0ae9053ef6c3f99e79ba29c6af429f9e5a2b39b0daa83df8592ecc8c835ec6337bf7db5e68c60ee03d62c6c45fe5eec59f23709b966ac544881a85d2a57d6f13278ebb736e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855f03fa75ec3613ffccafbae72b563652178e54e21eb3d53748be08463b9b93f21df6aaa4a1470521b89fedb02799b0c995cbfe371da194c710495359b8669a05c56c62b9fe2b21f0dca2263f106196a6ddec0bfbf0885662e6e4e10cacf98a23409a37234e11ed7e54bc9f6ee3effa41f2b4bbc974661bad6a5444486acd53861751e9f5dc01cae627a0f1a4fb7c64df022a2b28eddc4824186018a717d835fd46637c8ef577a3c46ae557aa63373f1dfa5421532714b53777d8d4d6465b8824dae31c1beee02066c76cc7d2ddd3d704e88a3711c9cd10f31c6a836ca7a18946aeda17295f2f7fd71ccff5e0026827bf97eb8eab3bc5619d4a3ca71ddb7fd26749dff846cd02e5f302ca935c22a20c9526d772cbc0eb3bfaaeffe40b25c2b6ab2988f822c2bc86c344ea4f40dc56aaee2474a4c145d981de6b8401454b656984821703a4b5c59d1eeef69630e681be9f2ec517ab1b1d5ee563dd899b9054627ee60199b4bf6009d9c8cff545a84383d768220c8b5ee934eb97e79d70b2ed903cf64ddd6f767b4b7e022f2943e2b2875f86d6854978e2ed3f25fb8d2ba04c83f702a68854353c1fb7ac95bac905e84c9c4f2f6b385d7a1565b0cad92d89f00466a59dcee2c67783c92b6073cd18cc6e8e917f6b9b20bdeb93034b3e7d7ac3c913ba6fc74805efd19327ccf7b825ee62bb7950aaec663761296659a6358e1a495b28a1cfbacb23364fdd4463cff1c06cadd8c12175a34738b1a1e2d99b2f42e9205d42fca6144f175077af9844296b879050f16a5dcfaec43a09d71c192521e8564b71116d7c899d908a86458dfb6399b102b71352a8444e2c47bda49d9367b0554a618e6a62fe664e00d2de9ad2d6ffd5a0e92f9b1e3a89da33550f3f5ac8cf87bbcb610eb6b1e886da395a8881aa2bbbe25d6833dec8bf3995c1c3be6e3121353069fc85d6b43b6a0dda0e9db8285e3809c7661942c01aa7bb4ea24582dcc4fd482bd2500c08a6636f0fd8a6d7c180a966eeaab1089e4a79e8ddfd58829ed7ad509209819191629c447a7b5255f79c30f1978f6e75a839c42a902bce14a69de4e35d41e4fcb90e60a416322ba65bddd8b3b7e85f754c644116911a31f702e2528023f9d285fcb29173a543bcf0ed1d4f103e91535abd73e1bdb310eb4839234c66ef294f69c1b325b4a3434be4a82f9f74344306691ee2699b58f13f259d5fbf5255d3abb27f20bac765a17d25895d53a99ca1028e2c3ab2d6459533ac9770070b68317d10f024e6296af877a70ad5bcfb8afed9a3532daff3ec9346de87eb3f86b9f111a3eeb9f7ed8cce10742682366e30cb76cb9f34fe0214ba16cf0cdbf64b66c6e33cecc28dbf6470a7c3a448f8b7071a5878116b856099ecf0f912286244b6eb6ff369a95042120736e57c77aab635958eae6497cb0709faa9d015f324095391c97fd3d1b3e17765512e2bbec0d07cd9caa4ece1dd0e66da808da531a92d8bad0efcc3f6ce6808bc3088316c39923fe208b39d9040b9897aea7bb376158e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85512f2578145ca0c728e0fc6125aaba40425ebbdd5bb34da803150c5327a4c718912420b40b9a3db494a97dadcf2515ff7c78f27da10afba33c297c9bb8a205f6fb459934d51757ef0189b6882a027af056a5c54bee9544c4d06452b35e71d47cc6e4e5c7cf666a5b0cb9b28a54a2ee11a6311f09546c745cda2316cd9713fda2e6baf1b71b0fd460cdccbcd1b1709fa6aaefd901e6c622e9c20562378e6cb7f6ba7f14406be882a51a53b1ad2c6a3c821a218a99fe975cde5639f8d68fcd1871ae78b5836f9b8e4e3ba7c29c4ac6e6280019922f58a4073cd3092ad7d797eb84e99f6ebcb59deeda627f98c14f9cab7c10a15469b5a4ae22db9f6e010aa1938df4f467c18392f7e0e906c179e06ec17c26656447a2ca532ce8de5ce101d8c8083166419e447d372a0d4a8170c1edbf7d03fdba90afdf9b9df52a37be0fad4fd62e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85597707f9e261c9169beea3a2f89b033dd23ca757d533d564ef5b113694cb67fbc40946d519391e8072ff2285f30135ef51b5233086166e491bd1a9685f6312704877a4d2f1b7a0d261cfac1d5cc9a3d585060e20bf1b361669a1e1efbcb205c59862b2adcc2dab4c28c0e9c44fdad7a678b2eaab6a9975f7129b8098009648434014bdec33bc698134f94f63ece21ee232c85009e75dc0a011816e6ec6108c168afcd4b2d0b7de6205ac5a524ce7ab49f7daf76948cd314a7a87e6f93a18efbb21349c7aedc19af4091839ab05fc1e20faa1c032735efd6fe21b352ddc3bc601bf161915baefa7b91d464d37c2c22b788ad9a786d728db0b674cfffe81bc1c0a020e1f0dfdda09a29077c315f7a6286c1fa83a848264ba7dd42e7a8be561f853d9e9d7b32e534159b26bc70517f1e083a2ed482e521b3b598f3945637e67c04019feddd316444fcb9d9f2f73d79ebf26ed5649ad0719d890817d8b15b5d9bc32ef63e07ae25eb52532da8c9a8c9fa4868a030effb07c57a5d7a8a03e91aa57e14b4e639bf60d94aaa2d3d16f8f5221c1b012f2f310958cd72f1de93f33030732b85731db2f50d6d83605382b19a2e51befc19a8cf072ac569975e1d359ba3c7b13ad8fd80e9c59d8f25bea4c946d92e19e5cc10c439828d45c643a264aba4e741f97dcb8c4d261a9cd4fb52d9fbc8b41af2bc0649e4ce7d9e4e5e37f3dc0a7b53b7d9704045f6f506d30b3be4e8cb49027f6eabf28ce6a547db0c71d5e709887d8dc53ba75dd6d8788435c9e09743d76e719249e82a5c5e17c7e92ef0a84e0ba5dcb7d8da2a10b5936f1db3efb868eef67d9d567506eb3f38f03a8937aa585a6fff3f0fe734c26dd847fac105f3f6d85826193d22656078010dbe128d2b71d8ff976e96b37db1b627a3f898b169fe646efe254b51ece80ec0f1fc7c5705b755e0e4494e827a1eaa70e6e68bea2a2bf5489285149d7e2a8023d517640168111ed760ba61c7c1b8b3649ed581ddab6f2757a6ab23198f7623e483f9d5d7bb5605ca3634705f0e3eedd68a7f15778c5212b8979586161acda473bf729cd7da1898eeb54a1f7871c0d3624608506d8426c475dbf76af2c927a2abc4bf3a79c811eed0ca6eaaf2b43dab5a74e41c3e7d9dfe696a4f84a59c1e726e625a89f7cb300398b2fc068e40b040ea0516c115865a01ff8ea1f913cb6a4d715dc5ec3ba909c77f09bd37431ea207161b44a39c5880fc64e97cccae25cf350a85014a3f4b4d7328fb0c084b569664868a16ec5be61d86a56dd7dfb8612f2760f6f62b6fdcebf1206b9fb587da78c3321bc8c7ce4ab52b389f07795d6a2219e883cffd95f7bf5eeb7cf9f38517caac82a0f8936716f84fdf052d7ec1c13992cbb6a6b54e235f3b68add46ab556280786489bbc918ffd7cd65ae5391d58ffe9e98838b80c98cae51e9caa2445d01fe69f5c1fcbcf4be2ed35372e548d3b52c63f8b1b3fef844781cccc8286fe1fb19e8da988c38e5ecbc1c48a7ecd66b69bba7669f058e8c544c4efee4dd5c74ea87e7f1351601271f13eaa366eaf65160a9ab5a329ec77d37a64fa25eb6a609cf2cd2fc39819291e1120d5fc3ab7c265017d2ffea280cf0c7927e90d39551f081d0cc4c50893a123eda6ed2b9662fae269604076ce6e90a9a5de54977f73e9e7d1af3bacb0229c1d6b7e2e59d5271b55ce1993015a22253d6b93495117c6e765d9c21c202b883b7aabc76b4e6e507d1cd33b616188a6a89b58044cb7f13b187b8995dc657faf8e99376a6eb45cec40cf6ca8cc7490ac3affadfdde990585e7c8d6b2ff2ec702a6b3e3d48fc5b2fb9f3c9cfb5b1ba0259b7d17a4c29d5c03afd606d16a4c8b12dd403d100139e720aa90ec9060919d2e0af7fdd47407259ea0995e0087de2c2c45fedf823c04c054ac327dacd9ce53b68095a04f7b9a069bdcf113773c3e951454fc1f40b26f8410cb032973347d57ea04d859ba323bd28ecc9514399f65c63bf091d44322178cc5d554cf5676ba63bf48dffa1fb1525f3d5328db613e157ae55105ec48bd49654d736fe05692078e2b370b87c7f08c0af0a33b182a6180822a4dd97be445c8336bfbf8312786e5b7a1fa65423471ef4858ec5419e7538eb7ac419a791c1dff7dbf1977986a74ae13b70d0d412b0f0245bac9e3a11518672af26b098076b26f6aa3c7d5247e645cff946dbe24bbbd603e326f610575a9005a116e2a94e8e46506c87c806b0b2f9344d875e0adf182193a461cc576314a2e0e96fbfe9739ed88b517efbe6321d3d6da87778421f818f54a3b8ea359bbeaafbf487d990026d77b9740b0af0e209a1194eb2193a34dc34df97809ad86bc53001f3fcb1bf9dd7bf48993b2b238519ecaa35c17cda46fa862b355648c58c27160a330283545a4ed510e1640af2fdff480d8456c33ef5393fd3d9283cc67d31578428c5b66aab3dc24d00231887f9826dd3ef1539c1afa31b600f52ac7b323ea2cd4430b0feb9c538627185ae5dcebf6f9879629d98d23fb71d083f52e360cc25ff9f702923e1bd020602d72f88f1c0ee204b3136406651d5ad8047533c924af31f976586c83b0d16c4df81bdf55f1bc995a5695745c5e3f9f76f2759ed1716a5f8a82a384c6698abe0ab3e2ff2e51ed43b30f61d33e6fe282e6c06e5a1d5681e603ebdf2f80aad22352486285fca46e8868a6bbbc5d02885a75619c0582a2df31419e8edc7b73f07ab8d654cbdf90ad0cc3b53e5fe65f0f412e74dea0abe8442968e00ce523b298d4d06ce844146890f096ed3022ddc98a2e137c75c7e8c5e44251b5881b8ca2301361b05d81d9f33f185ba46a807de36dd5e44dcfefb6d86fa285b9b5c84d280506aabeb98cd5ed921975aee11d5ed9a192349528c53ababa3df7957b8dd35fc5fb8b908aaea82feb0c9bd22fc725b66fb0ade6ce377e99eb354287d23ea47d0e546b2dbca1097218d021982d4f09c9f469710560f86e14e141090a8a1e8abb260b1d738ef220015ab0507ff5cb81629a0c7c705d94cf120ee3e5950586e15775d0629337e3e1285ee31b673dd659d475404b8b2c047af9591b0c1e65373954835d59a1135819ab0eca9438185ecbddf0dff28d5f5cf2c30c28be53cfc7f43d7b26453dfda3e233b0a523782cd693e85e0708cf50b285efe961221df59090f3a1448c99f661e7dd77eb5dde0129d300b33fe3a3a8a20a8848d3a3ef943e859eec288c5e4c29d5286b25b5325a2b32d56404acb15a96e35f244a91ae13ec8976a092dd18209602fc008f760fe872c16544c8a7a8eef2405ce858a9f08e906e30ed48c3e26a0e39e31c608b961ef1d8bd640897e48ecd0aa4743d41ab8c07761a4b624b4c9d1b9ec238b17cddaf871a45a070215fb8d44d27f6be323ea246ae33806bd27286543a80ed09d41b70ed8c3b341cab20f4f275880d65af34d673c0b1b20707c3777c3598d91efd8c9882bf9ea59e1849727b5cd91bbb4f8f25ae165d990917c775f948238e99092f6fa7e1fe1ebf1b707f3face83f0a5a12ccc40cf71fc1552c876dc94ae4c7fb637bbd5f5d098db020d017a70dae10f0591056bc646d88736eb164b9cc0e4324e75087c3df03f63b13168f90424cc0984bbf4b06bc2931909fc37b63fd94a4e9fd12eac0ec41253f0829901a3854b24cbb08771e26ab217a32546ebc1a48a1e89f57d8a36d05908dd435cb240b1585654eada0669a26fa4c003f3de75792ab6d3ac6f2797401a24db9623003bec67fcd40a6495c82de73e6cb19bbc77868c6c1bf67c9b26a5dea2f6695111c8f8249318317fb04b948a89ad3ec60f1c429ee5fb8eecd9399815464773ed1f9d954e86155452b0a69c6cc5c440015931cf05ba7e1fd50c4eff7c9a5ea3515569439c70503fddb9e0dbdf8a55c23dca80fbf92ff702f591713c59ee2c08b2e7ece46683cffbc9de47a2bf3221b4d30e03cfe02d4ed7be2c9a1a0c8dfdce16c115572a3fd52a35514eede436951602ec1959ff656fabcecdc553bfcd201318430ac53048dd83e6b4fb7a7b123ddb40bd1e08cf3315fa4afdb14bc0384a4cc20f5446da372d48e4c88b7965bd397aa151dd0125dab6b8ddb24098d66041872097fbaad8a65214cb502637f4f20e3bc5bccaddb8125a255365d4fe8aba768036f559aba5e7fbac0813f1d4b96ebcd96f8aaca0253f0fdc4b69b0c8441e978028dee839517be69861eaff6ef735e67a0e8ff00148756811490d288e00cdf91e3da8374d6fe96071111445a8d6f7436902404d4b09451d78165de84470775f2afd3d737901a28a67d4c94896074426ffab4353b4d586cafe0c8f9d24eb3fb66a9a020ab989ab5d0decfee273e9e50771525461e19af9cae40dd9213b0d0507cd29a75aa7e22683f9c5da197c4fd89710adb59adab22a9b8f75bde1c3465e583ad72fb462da4e92c78eaab11695c757b97aaa9cd297fb40b48307eb82c27a34325200303684eb6e6f44720cddf3294cd91b06762b670df7873316e74b29f6af6945aed99b4a1c176019099dd566f0ef53ae6b796737eb7b4af9047619d5787cee14344f96ea03f00e138096c0c7f5e2eeaec812ddc1cb0e509cdb48b47ebeb92831637f247722ffad5f67a23d712f66c5713cf2efcaa19ad878dfabbeb6dc8dcaaab427bf39d08a934ba9a908e5dcaf25acb78e0f969e35b8733ce0b34c92bff1757165b2e91dce565784abc384fc9c7020ce7a1cd7c79a91b8587dc2d974abafb39ab7c42feb33b6ebafad3c815d8c6328cd8afcb05604f27e423ca63188c0d03895f275756ec8d4c46a17af8a988df19af364d0d1ff302a1acc39a150f326176a4e670236bfe3c43382f2e6f5cf0e2d2d202c56c417eb58c775d642f1c342d99eef20724995680c841691c8936cb20c4bb929020cc29d08d86b1bd7d0a94f62dbc3931c7902d195ab9c06aa777263556d034537899b371b5bcb3995bb9dc97469676e7d76eeab52d85a478a8e28cc61b86162e1b55923696db626817ea85d2459163adbc1baa0356643fe7203c3fd40744516c9f487998b199d790cd39fa2fee796cf8d6d287722aeac2b2ccf2b47a819df538fbe9091f207000d0a32e0c09373f7b4b17801232202ef98675f4ee6b1d8c0920bf97ab27e7305f3d53b5ad484d01c3f5113960df524360fc5c01fc603bde7e9e18cc41355526991048e01cbd79be79a90ba339717eb791a35796eb7fb77e9d8616b301b624d07ba413b0ed4bdce8e1bb21d588dff5f71ff1e8c7503b6d91d83f57871dcd02891436348ce4649a51c151a0e64c2c83dabcc9cabff60766501731be75cb03f3e0995da4c6a793c1f41cc7d57c4d4ea6c683440554dfd0ecf75782ffde4943b83d045b0e9a4129263cc3132dc3d102d97ab1350064d5e047a7e1dcb0df74c56369d6f06f09c372eb96f92abe66967ac6b0e735f4f0898beda1b204c07b0f1396edb0d29baf0a6943150c67a2a17f4e2a4756d0af378df0ad6d799ee96e4beb3de73e6e8bdffac5408b83e9e4a3848a42182c872b9a15c060de907a745894df044dafafc69a2b8f81ca5dd3a5a1066775b8082e71f99c636b53ce34d5e5f27139a1bcf334fd0ee846abd55c7c46b1e26a1edfdf90a20a099234090c1742650a272bd1fd99b14ac2a2a55b56b2ebb14facca0546b8bbbfce6a904216389522f29338e81e4b10c03bdb1595aef8e8ad95cf9bea72630ef7e107b298f26d9513ea251dcd127c598e889ecfe9d3f8ea9607f526abe8532613c284f769e6032adcc3b13f28cc7b85a99508fb7fc2983502b71a690a68acca862ed63d819a9bed0998338ee09d00f74f9cf610719d79764668a8951b8934e7cd3626575d65d03afdcbeac71a4b5b593d79524bdec440870eae9c9f954ce1e0d20cd5f1427eba31092aa23e9a717305369aa1111db87409751d0b8379d06593fd83633caeda27d433682b4ae2ca406d81f690169890d05e8d813bf4bd247d818261e27e8c20afc65b59ee95e4c8442c0c638df2aac1580864d06cb1673662d852c3851d117c871f13a14eb0e6e41cb48d1322e1eeb848a000906a98d77d630d588b9310bc1ae31f5a6c561b4e4c34f7db2eff858962e5b7b70f8021f05f26ccfd2a7346a70c6e48679d20dc91406b27b8cc7c2f8677290136fe687e1d4faacc5256b70a633469dd2557089421a168558b6341019849c1c72c35f548ac0f058a982d4f16edf54607a1d97857a069dbe7980985996ddb4ebaf7ff4ac5a7575dc4beead8b23c2767cd4209611acae4317599416be24084c2db61ebb51c8569fad8b031a74cd021e8aff26c8184f9000152e76447a5679b1dbe22a155b0560de2e02fab1d279e81fb8cd5e47abafb564b6a2a0029c5644c3fdf7f43b1d77c87568166d1425c99b90fc1ade09a903b791d4b542968405e52c67a1b774bdc382f3c1d334227714dbc1e0de5e522da613bba36cf047b49e439049fbd4f0a520f0070178ccee56ad2c4dfdaf9987aac10217388acc6c94b0827b0423de7d8ba24ec63dbc45d89e6d39789b4dbff82983f4e3627f6e364e1ac5914cdd63041a9ee181b510be14c2f45f709ec2dc4276433240062f61b0338a1ebb36c5115c938117411d062773bda0452ade1a971ff567034f8e21605584bec1b02db8c24429c761cc29a5916fd53642c0a0aa1d663e01d061ccd564c5e638f44f845e384d1711c3c32d4d976cd8827f54224432906c53a0ad9b332a83c8d5a4e938411d093896c9e458b7e652cef7dd45c5fa81a6b80e4505d4630ee5d36ecd08c99e10a709308d6397e06a3987e1cf2d73e658b5e4bb5d71c13492788ee8bf69aa6118e56671ed534dce54a4f968eddb3332f952d1d98d52b1bbeb06d33e9a54509a62228b2dc5e65a39803cc5c6c996f66750533803d8d2f3282ea50035f141f7004fe0923840127c3eb8b91ad251066b35d0a82e02c5e9f42e442f1fef6c1b8c68b43e87e4a6eaea22b503603aae2702de8c1bac45fc03d71764737d34ebdae6993a81e4acdead848de34fa494161a4e03e089dc4614c48f4199f012957ca84a66f413130dfac66ca26f2784b80ecd34b61d7f5070cc207b7819a7821a09573e22b27744047de9ac8130e54e817b3eb1c375372802d40007d3b271896aad894562caba1b71c15bde0b18baf6713282802e7655b05b4b36f043e59dec1970f7a61d716df3e73189e3c94f3ace0cf9115dc39be4e68626972caaa2bdf59e20ac2d26b97dd78e094b669627d9ed7db96c682035cb5310e287e047154ac35c7e07cae09c33652a6d8d80763e918989e119d20ba8c369945ec542684865156058c1c50ac6e014782db1a17b46b81b1c327a491c93b9bf52d53117ce3e71911c183e29d61197a994dd6d225d3a5e08d8a0265f63b8e78436e486934c17ed750a8205c90602152bdd020f6ad3c4221771d7c23e5cf24679ae5e31be6bb4a3c2b1661d145d6c7f91433499db10d773e20548b1160f3c9bb9ff16b349f58ef2873630f0fde8d5c3347a7ff054e9216c260fc89902070892f4dcc092f9c5c0d4ee8dccd80a46303c2709e3d433d5a32f6a8e42dcb988c45f7f739a906487030e4e0752da82329663506bb4d47c96bd25e08c67433dbdd18438a2a20895586164611ef5e4b99a1f27c2db4e95130db2eed4b707b20ef3011467dbd0805a84329d90c5801cc05192bd0ed91391bead0f87589d418b074b8d99ec0e60f2d9213d73b5e2cca1d699b42de378f9f2f16e7bfef22c7bc49012a3ef1fd3bffc37d752a5b9cd487e5092d0e77fda63ab9476c911dc6667836bb3ba3015cc3dd02c9d6bb8a35fc4b1fbd241d4a15a5e19bbfbc0724c337d3b3304f4d45873a767c3daf10be9156e64f928840e2989b061e3db56655e3b76f4c6796adea58bd6d5b818e6a4eb8b324bc7923ccc22290af160d62dd58cc5609e2f80a9d4d3dff0c8da1947666e8820aa733060ba08534cdb0b8bda8e52741462d7373d8fefab13a116e03d2744b0fc08c2d93652560032280687ea07548b4e8f6d33e01c424aa2c9154ec1f4a7573184f7a91f7dfeb16891a507efbf95616a43b939aeed54da146bd3e3086bcdafba7b0c433ddc3792646b921c3e2b0cda08e4b9ca26d31cd1e63dec001610f8a7cb36fbfd46bdafb48c2e2441f97aaa20d355a956ed13589c4d12879770723ae80eb1dc1be8f7d2bc095648558d5f2c3060271df0c36bceb9662b17361799e69917671745aa92546060f9476c17d5aee3b945eba23f6af994b4414ccaf5be038aa470bdb25d952693a46acfcf581d85e6e1a12ca76e222fc1455f4c3b13fed8b6d273aa06eb2a30389003ec99821a77a3237a4ab0d457b034ce2e465c310ad968310abaa84b3aedc4fd6d8da19ca76f4cd5bd10cc161c1add4ae0b20ed3c2774bdb9037ac83db9f7a842a9e45c2f6cdd0748b98d523f828e12aa77d3c52fcbb7efc5556141aaf82de9276e8684ba66c55260350f72806d7c1ad2f33fe4d020156b6def5c107696a90ead4be4b1a179e25f2a5181f96493312bb07accaf5be038aa470bdb25d952693a46acfcf581d85e6e1a12ca76e222fc1455f4ccaf5be038aa470bdb25d952693a46acfcf581d85e6e1a12ca76e222fc1455f4e699610cd92682a1a7e75e76388878dad30a0e999fa2a16baab094c62a840fb1c159a46d1435cb939fe7b3e9689802cebf9ce167cf288a55cc0acc7ab5c2dad2ccaf5be038aa470bdb25d952693a46acfcf581d85e6e1a12ca76e222fc1455f48fe4fc8f09d0646ad2f1d20bc85fb78506a5b35eb614aed39a39316da9e2c044e7ce815ec5767db1d6f2b5f952723b15f77ff137e79db9a60f0dfac9b61eed0a71fc0117f7dabe881d45293d2a222415bc38fc60505085cfae406447552d1282e127627b86bf634749cbd5825cade7f21eee48f6b97c6f5b394790b3f177ed54403add4d6d5a232c6a28eb4b5f5a2eb656d20d6c0acad5267bc5a873a999423e11b5e7cf5e488540c0d164069810a4c91fb2f8a850cbf962b20eafe00a53520cccaf5be038aa470bdb25d952693a46acfcf581d85e6e1a12ca76e222fc1455f4fd03fddecc91c36271250bc62b4228076f320fe748a2105851210f39c01e97ca4bc43611abd510ce607b27329315067197024befe03dcbc00cc9e6e80e811bc3275e96a4c0cf21ebdcf96bdc1a7ffff5102cb6891aa531f3c8cb52bdb583b27a71bc5cba65b9f9857e0f0bb0daf0d8bd91f6396213e3a4fc4cfe109b73832a75ce6821995d7277fcca6cacba85f0bd943f89666d471acd4eba159bbff89f0a3aaa160d3d574e46c2ab7e9b4c3ce9d4b8ef7f7bc1ff3d3c267a13a82e2c1f560b1ef7b2cfbc2d41c84e086e56177db194a3a6f4d14f22424e2f68d06d3cb885c0b7cc30410fccbb79377e3fe3560c48bbdcd708ff72b7dbf1be1a15c2c4c4911a1870f861349826229570c8e8b03a89b46b50e66b25d9dc8ca4210bb94678243c3ff1537ec6fd2b6afdc6b39d00d4d9355ad0491dd8a7cef78518ef887dd3b488fe297ac7249774e915d47617c33483e84544cf48850411af2e62bc80880ebdf61da836457ffe3f2fbf09297531b5c6bc3a3e3e9d580bc71ef0df30a3e3d0b20e810e85203bad2b3abfa2b78174b7a87f438512ee4f235d1a1c57c9e3f49b2892207b6ee19e9e247b3252c127dfcf284fc91a9f776d8700efa0679e47dbf1c2360c87c321859de3db275c61ebc1e242f5ff64a953a846a7edcc810fc187adefffe0f698de69c79e81085fbf11fcda0d34fe658fb4501a4f223e69e7ba0721f7ff4ff2cbc4433d678428b9dd2fad770082913f7d6994ee1873599752d89546cacbccaf5be038aa470bdb25d952693a46acfcf581d85e6e1a12ca76e222fc1455f406a463142bcf6b6103c58d2bc730163dc6dfeb940432d316724edc8cdbc437988b3e20210807be849c695a6a0e907fd0f84013dd293d2c7b9b04fc4bf7ec04fd946921aba512bae5d64685d36ade260f6f894447f36c943859b10fc6848cad45ccaf5be038aa470bdb25d952693a46acfcf581d85e6e1a12ca76e222fc1455f464c3fba0a3caf4c8ab326309f6db231a89408ae5391eb640d822c8307165dfb3f87e01dc4a605c459bc211d8f827209a6e0d4475d27958872c93f668b7371b1c9d02a34802cb5bfda1e58934d65e3866ca66197f8f14a5c29eabe7088138da0ce8608d765d6e2876af0aeef0966899e2462c3938b50409720fa70dc911f5a0afe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855c20e400aafa5f88d49d6856ede62d62860f172eca9c458887a32856184ad527f1a1d4aa7a5180e3525f9eece7ab81ffa9a693c867f4ca8b0a4433586d51b3771aeca49c40c7bc8ddfcf9c70f07125202f8dfbda7108a0955023ad143f2c22ae42cc0205aeb432d38b2bfc25f5329d9f374729acb77340ef57500a0cc156b2c3b4be859e5ef88e4d192b629adac0fdf8f58fc5bfa38dd0662f8a66eaf4f61aa528db04b3c8e12429684df3e626a926d3dbe2c50a4e3e633304190a481c0176d6a3de696fedd24e51262bd350d0bac1fc0ca3a18a49a11d24798c949f99c8febe2ef6f48c1935e3412d596e8016090f8a476dcf5f985bb7c42d290b065ce8b9b171e88144d6d760711b95b50eb48564deec727ff73883250bd964a037ed31bf3a46291b04944f057fa22360c6291b9ba06151f0581eebe884320dac6680dcbee44dbe74c2dda66b65a586c4e1adf995f703acea642c532177e1ea50cfb880797ce784655df9c3eb1bab42425bd624b9eb0384b2b52b5735713b6bf7925c072f609710b1153d77996b23f3b0a7b6a47623b53e468d05ea87ee4b41ef356d4454aaeb47d45cb5f9e13b932f31f6c5989dcf7e44ff35d0db0f2b2db2304410b9b580345f340ec9ac7c484505743a3a4d07f8d9d234f2697d9e5e93f79e87f835db7d7ea29c448bd655b0be5463b27552bc99773ebf6604a9e6876008c60d031cf87ab25cc263ae112b073e2310eda67de20f36b37a79fdc9b55e2a80f7e18dff1446f47d28ee924890b0d784408e4c38fefa0073d31a4092700b22247ca56b03c4bdbcc8ed335b90f649e6dd14ee8255714b3509f36f957fa64634fe07575af5a1339eef04f1812495a459c7e7bbb0dc94852bcd1f217ab52282c255297706cda7fa3b4a5bd7e59a37c22e51a0feb55f1159c22d9449cffbd8a6ab5389d247ae182300c43e3641b410d6938135f885aded0d7f91e1603740f5d3d442acc352758d1fba0b7d64db6bcc44bf794993810815066d20a3aabc3672c926d952b9f32f95a7a58c35e0bd71a779c29aaac426aad60d4de8fc4cd1d264f29e2288059639704e92fc4f10bf1f6a94414f096a00803ce5c42ca608a8314d9609d1345033549ad8c1b55794354703d203e8a7b9f67c26b277b1629f53de791ece9a957cf0a5b28001318f44749996a260a1b2a166ac0416f85546dcfe05684c056960879f5de4f05543efa3fd6c06bedf6bf656c98a4038735560aca71f275129d71b6aca73ca0ae2da755ca8a17cadbae9405b8eca4c95ae8b0d1ec0c0126b9b6b3a7245210596b41581770711aa9526d7eb4775efb20ebafabd6be0bc8b0d678ffd625150d9f1c5a872bb28a9e64f0f1fc31b92b650b3b916d4737dbda8f4deee2440f52e16bd50aa5811e0cc780b8fa02f8d2d14748e0c7255f79002e2421b7882c7eabef5bcee18fe772ff2c227c8c494607c04a5bf01a8953ebd4d100d52246d84f4953ca443cf57dbc052f914e6848238513c4a554c2c55424a2975444f14094a880afc91064ae69099cc9278f3b69c99db1bfcabb6fb80712ca1662dbd6dd05411c100d8b33ba098effb3e9d8bae33b7399d8d7be584e1223a93da2b02123b9a0752d50eaef0d0660083c6be9ae6829e2751e2f8f4e659510296938fb4c7bbe5c3b9e7615b2dc61b5d5f3d2e1e9d96457250a23cc25bcf1068612de8e8c28fbbaa2709f03406e4d0cacfa7cce18abe253b108e3a0d1c775f2b40575ef4b36d2f7dbc8c5e8cbada3a5db9a767fe6694d14808b0819071caae36bed6f70c22dbdc7d0bf756b92933ac92fa766bdc7bca3eb0d8a830fdc7f175712e65cc77cd57e9b37c651efbd1333039caf06af557db4c583d86def606306a0ab312814ad2b5146481e9eaf0417c53c7d8f7744c3249be66c42b3bec1187156a1779ce28ec73a3c1c1840fb8233f8dfc3e83af284d39b13e2988388bf177f31951737f215230fff7b6a0eaba6a64bb57ba025b022fb308211163504ee55c07ed570cf8f4fe80d0edfab8d56a962a6a06e5998d8c3d7010cf7e4d502b76c41b7f9d5c243c45f67dfb94013be5dff623e6480f4ea455b61871d043207043d56812781d1f63c0aebc643fd1e3a2d0c71efd58ecd7e14102e5b8d445f377577298b803b09d1d4750fae0c8572a9459bceca8de2fea4243aaa8fa9e7018cd85849018e8c59ce3548638e2d6c6480a0cbc2dd74cb1881be19432f413c458bc1234dd0f64963b6cd1d25a700d03c339de5031ab1fb4bb5e7629e7bd12e8f68aa3cb560a22d8e1dceeebe73a6bd6b61d3ec4f6038feafdd8c83a6b40ff3822c9f3f07f38ed9835fc283d80cc9c5c4a6cdb340466d721f80bc0e13605a83abd87764ba21614fff6e660b3cc93c3f8ebc2b49b19aaa5aa3664d02591979ea26859e8b7a28beafa1b6b50a55a0757a2807873d2a0ab44e2bd7da3f7eaf07c180f998b69d385af23eb8648a1a29117803afff0748aded299a4cb55e76fa546b21c1496811754b4ff697d415d70b9e238a0ecdedcf1397c6b7600e08d177ec6789a921022c2b8f69f06c620f2ad25c93f7d31c82a5922ac49b4e2cd1fc4d98dc57b8a2f9aa7b5d5fdf8d8b54d825c87dbf50725b49a09807e660238695e381cb25f55dc9880cda89afff1d498571f68a82d1d408cb858b047f7ae1473ff4d026e198b1054eac94f0cc7b0efab7ff18e415afaccdcef562c51fad8a4671fe8f9920297617d968963d7d47c57c980e559151fcfe1858e681c56661244d51dc1ee4a11126e1510a16d29593db65314c7052c31db95eb2c450734351d8477d4ce0fff40ee5a0e61471b51b56fb8627e7385fcdd5125a3181e9754492886f91474a68a31bc8a5c11cde1addc819109ce5220aedddfa61fecf61400ac5b4d1abd80499a66ca74384e667119863d00c91a2079eed32f38c54837891d4e8dabd7ecea269e7eac79fd0998daeac9b86632d010ea965202e79ce2f2309dec9d902dd816b822ed21838d98b5c0e4b985eb1314dd4a3f3582be7f0964eefc1a1b7211530cee0ed99f38168ba9cc74697ab485d94777dc252505c16875ff23b46ace1b7ee5f1e13fb266703b4863196243ae4a12a412b28f2c72a9df3ae54b53c9118bde6eed334b66e3ed7fed3ac22a073bb0b6257a58a8038ee11de48cb569722f2d6c365b274aeb27b28e9fae54cabd6803defbdba35986cfb937a8f72dc909d948b6383f5f34cfe05b80582a988fd8a9e478fc2fd6efd6b3667a640b57025db05357a40f557b4492885cbf228ab8a08ab130c497b7e9c291e29f9c858f61ca9286c6521aa54680035074bd63adbb56f85007ad19436f56c7a9b3a2e994d29363fedbf6679875c113cff96ea74f2e6c9905fb385107ccd7f76fc401e875ff1a529125d8200063a3cebf28a724211838a4bd6419406a4ac327f4a38995417457614675b4ab39e8f301199b287fffa493e60ec5aee4b71696ed3d6834aa00166daf28096ce8a1ab09951807a0a3ae827e629a0a639a5519290b70eddf2195b3ca4bd72ff07c6e8a00aea8e6f638dfb5879a6009802d510f5493049dd0d38b4c8ffa52515b82f115e5aab8acdfd6ee853b6c2e809066a83298ca732680580791d0e243d2d8af2c480b8a089c7115f7f2933ba57a57bf6fc0bebbd5f53c0458daa0b404e0edad1fb9392dfa0cb6fed0f5c60393d581f1c8ad3e6a0b37ce2e96fe392482a5b9fa15eee46d3f5e643f68cb152cf0e8505fb99544bbb2638a3f0b5f54907c337e4b9f404bf2a6c1c52c1e8a4b1d9bab6e731ac64ec4b76a280f52f5985a125014ce87c624de42e3f555070adf36c7208f42f585db4e462bc66fdc9a15cee3030fbd6ee128572adfd5a5eec14f3683769d9042864440b4722fad0dcd2257f373dc8b0acec342f8387781978866f5401d4793f4362ef756db324204bea0ef60e6d8a23612cf10ce4d010d51e2c50cac422c3b3a097a8c4c7aac53d74dad802466ff90fb95baf31a3d9164f851ff445ae709bd4162b023b76637f7abf170d1a957c8f4e84c6bf7c91aeb262bbf590f2afa1a1717b907fc2526b7b16084ae7382b7901c861cb66d7daf6d2f8f52e3eae2c8e8ccdb5b81181066c5a8d18422df8285d9ad9ee174d49160b5585b2671a5caf03d624fde2bdc97172c6b3b9a0d11d44844ee5fe4c7bbfe3728abb57e6346df5560286e51d2d08dd06aadf5af8b7d081a8b9da35099fa4c71dba39495ed22b6e3a449e3ef15f2f2e556dd84247bab9b06ac64ba97ef2491cbaae9e17e1497f19f5c3efd1adb0a49e82433684cd6255b0b0bb911ee2e8c2c8df1e2d341198f0771353095f2789880fcff65c6db8d9731f68d96ec05eaf65c03eb0daf8ba89c05c2d7cf6af36c53d3bce30747373eea162cdbebb5d354fc2e3a6e19124989528c279f2d83f4c9524bbeae6bbca78acd7de2772d600d61eeec00a1013425bfa0c6b34610f6eaae9c54c08b39e28ed187d2243d1f7aae1ca2d4dc3af1f3f1c5c6c5d3bc6d94693efe3dfeebb0a9c0b0d371c9abdf9433ab042a42299ce0b4feb69cb02733d390b7723c381106fd2baa63a582769a4a6ae85774d4dde778a544ea1714af7451070b7fac388e4a209776c487d573be5d1debf06c81a9ad8d07d31b97d80401433735b07ea563d99e55f9d98b4c1a4eb5b1db3b00246412b9c68332af63a7bf80da124a0bdb586acd785d1eda4f979de150b128dd938cf28f57f70d31760e36e355ada5841086fe79af9d2834d32243cb36b92442cbf85ebfc20ced794d3b7916b426e2bcaa5b5376fae7a5acbb5bda48042885cf0748f9f8f5f6c02e5b422ca807ddee0e9b815dbe466d81d5fc504a00fd112c1dad685f01c642afde3ce79a77dea61ec717775ce15f330c269fa9c65aab952377589d2920dddc91d5073783a8ea7868722a6ad1973b84d2deef57ef79e3666efa5ded65f04594c634931171864e641d7842f1e2f8da781ffd4bd481a3d84e52a603ce3f83ebe9e13d113548566a4fd7af07e7cb039eaf3a77eef2877c94efc6c89229a3ef2950dbdb86f75246c26db649bd65937b1b1b45ad15e938d3e9c59c4d27103b63fd81cfac8e26bd498b71bcbac1d1ca0dc487137bf54df0cc870b52f2a44706fb13aa36142ce24949324cbd2b30bcdae08e4d8efddb38e0fbf00050bfb48b92f26d99d89b75627070253408ce2bed2925a1f40e3a46811585cc30988c136c466a5106ad29530f7b26177d71eddaaabad467096cda0c3c90b22022f6d20cea458df532aaa52e309e2fec2007f23613b9eddcc4214b65046e7b0f11255fda89ff85327e80ac533f8ed7e93356e166cc7c9cafde543a6c839537ebfa2785e8c0a4edb9dd6faeca9d9a2d409db26c5274b575bccbb9a4616ea12843abca4b76d84c7382d1332555b457f045ac2475ca76bbaf5ac9ab513862c02dd06806c77a3322a8ec255c773371fa509c43606f0cb5e8ae3bdc9fd159b541a7fe81d9af58c9eb71524bcbb30c036864cb76024513fba8520e918416554f17ff24ad143f8047cbb123824ecbe0cc236761a1a913d79a90a6bc4cb6545b5d01cd0399d77eaec3bcf871eb2b6fbdc6cf0026107219464597100b54f7595e3f5955608dfd54b6dc7946838360d92d1890547ea45c3a67dac81bb2937114bbc0fa4fdb4929582cf8108f6abcb310c726ffa4e239e49f6eaa79c70618628475f42973fbec99431ab42567ad630f92311db14c5f3586b8a70f81d19d07d563cb792f67df1bd3b20f7da70d7a2397d868958b26f9561c78936b42a404ec4339d664af4209c5e7936185bb39093e5630aab3b77b45c9e810bb92bd2a9840f03b71808754e90fcfae7e93d226b5c5fe8b83f7950703a6391e7270b4500ea737507dbc539acfcf1ce5308900fc05ae90b51262d22c8619fdd9a6466648b47d51ae251576f03af1d50db985efb6c0f67906f2a2cdf8507e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85579661c69cdcdf5de262eed93a8c82be9a8d68f84ed97c1493e4964e8cd7aeb3eec59becfa36fb7eb3b6e7c33bd4a54a8a3e766eb8cc35461eb1b5fa7598ebc6d6895a7b61b963968acd796f2d352023410f4241c3145f5b53981fa01ff1697fde2e88b9c3a9de21ce96df7825cc2f6bbc7b1144c1218737d957c04adfc65c946702142a3f308f8209e2a77f497875322b10beb4d31b4b13b5f1446a1bc8a8641742f22a0c3b85ee5024803b70c6759ad1d5b990593c70a3a440ab69417b6e27b964d8fda95edea03830e1ab52b8b6be93cbaea34c2ccfdd4e7a9a08c27b966dbd6a09a028e8bceab6b26cebc49bbe3882ef3e4918eee6e54048a2bb2148801fcc171fde68da9d7938b2bd04c1a79b31e75f8adc80ab5269c157a7185d21ed6752d0ea8fd50fbca3392f85531e5cea4368fa43795ec69af9b8a183840a2364a2bd2f93eafb03a5d0bd2f37ecdefd3a94cd51725edd4ae4f06452310c27ff9dceeb74cc922c212354236d55ad01332af609deea7fbdd02b9beda58b33423797cc4ebcffc0bbe29450bb35c78ef7d874b042fad73ccbbf0e9b44bff92e31d208bb7371b59b632e983fed5b9c11f51816af0e8062e0012c40167be6cd33a40c7b7d4e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85517aef62f46514ecaab990056bae032eba8436fe01f9cd7d6e6d4e9c58db332ade3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855ba9f2f5ab97892e73e3adbd124e8804d7eb96e2cbad6573549babd7c817f82b8bbfe5b9bb74010f2db511ccafcdb84f1fd7bc7f6fd0252408efa1497e68f8d20142b6ec4f8f69a4ba26b3c6802748842ce7452360811aec5ee86a55783f6cdcab2dd3d6f4a6aa95cd89b9096f476f9aa038cb4b3d25bce57a585f9f8136c5ba73c76535ccc9de655d8defd428285bee271329b21dab79f1e1c19c9b6f4e6332762ed309ab3021fb9af9df35548975099db21749ab7934f4a44fd6d503480916baa0c619da2c635f7791a742897cabc8a55fa52dead3e0c1cb8268f1f50af873edb104afebd6c411898d5bbd51fcd8d116e3eb91a4db245465ee05ba5046fb1b3dd108517fc42eadc375eaa061e57649b1bc42ff5b40c05b02542e11b4d76a101bdb33941078b64983c197d6c8425dedc8906bb7fd21e3133627815cce0f51161ba964e5f9515d1a0a509dacd811055262303f7aa3ab990245bf4ca28e871b56de3ffe19b140c8c431693504abf92669792a35b9aae3e95ea03039dc2673cd743ddde67056c1b6d1aed04cfad48b0c1fe2ca332b6e14866d9d468f1a99671cc8ce24e89a8923f7c8586306e46346506a9ca3d552a1a3b80825c493a296a890b07cf7a955f16651f5299840885b672979038f150fc413912e4fd9579b2a22fbd6fd2f1df6cb02e4dd661056163f15b952146300521d9a545486ba1dbc43ab80512a641017827182295eb99b71a1c6f055200e4d619c71f8a8abbda03d76334cddb5971c47dcb37f265ac27931e24e247467997b8ff9696414748bd80ef4544f1c1ebd2699d60f3ba093ff201348d164e48a189915e24577a89af24dfd56c885701c30aea8d066a97e3bea9775ca8d0c1f26cb02af5bcbff32fe72ee8b4435963ac4aa00761a7986e05e1f98f36987944f30a0d49d4e5089bd562f08adfb8337d583d7056104806dde24d7f59db5fa62ca68a654615034d911f5015a3ad38e539d5df98c7c55414f7386e5841b86682ce4e3b009f65e7ac0e0f73290c304f64ac362710e8dcf4d80957fb15028cbfe0597882d81fe4a6b489699d6e19fd4983c994db10d6a7dad164f8d9fb5979d242893417ea0a4b3b0b088d5ff0245065f8cdeb44d120c1d752bbd0e11cb0cb6ee2f2f301dca3949fdf17164cb8edb764ec1447b12c6aab1392a794d43559a4db9f7527a49a6200b5aeed8b7a86eedbb7210d8e0ec2b7d345c65ebf8f0efece58cec620869d983f9eae6405e596b4b821fc81cd8807c0ad417b80ff71fee3f35378808945f02eefd392d38755d2cf5d09d1888c1a0cb5966e30ee6474458bd8e63c62e78524621db8aaf1287585d12efdf3e1261905881018589031f6220819f8227c5a653fb7a0c07731210cd46e9fee1abc833bc477cd14e9993a781e8aa06598242baa76b2ce8332fd00c3c5733e455656cd6fac7b18dce2cba0bde2ee805ba28305fa9ede00f7eb13b9ed82b5d00ce111d4e8756fdc798a9004521b74619b57f1d55ac1a52922595e260b012e9b48339b54b5e792690b2c18108e04454047bbdf6eb3950b48f995b2641f1a1356cacd9ec03eff0d9fc4ed89a28d65ca9ee8b614d04e72439e699ec8819881f7c0b4ea0ed56466e376b81e39ce746d9e6ad76ee4ea92d0d8cf38a483fb2529eae201c6e908a7bf4057380317aff4e16e29c29674aab094de4407cb1b4d96e1b65ed1297dda6b3d13522bdb3a3921dbe3fa7e59ea96d8c1f17b521bd027a78b3ca1b049ddfaf8d1f148cc702fd260e901fc681a404050d28a3fa7def798515fabb5148b448cabb6ee72b89da4bfa3712f4a6227c01d412be6e02196c2ec2be1b81a0f061690134ed88b56dd0b8ccfe78c694a930e86b8aa957a7027ca8b3ae2ad01982efef5005370de601a737d7b0ce9c599a11181221534e05711cf1ce073382959f5ba4a34fa4f638bb59049d97ad004e73ff5baf4adc401540d9b458f98e0dbf40227fcc4c0701388bb8f07020284875c0174bdd5eaa2f6aa04431d83a1f53f8121c320c27f1b8c1185a5982d2800124ac801d911f665aa01b78ebe3d078f43948b2eb566a4f2c7ddd19b65a969da5d82216c9b355b223a5255d005b5c9441496792c17836f1cb09d3194c95241c5ec08fb23555358fa0bb811bd5aaee6f716279499825c5550142747a94ee33b5aea5b6b127e6c96210287dca3789d90d8bfb56d75b6e9f7db62fc559f9c910dc4c062f64e583c3a9c69f2dbf39bf58dd15c9180a217667c9de8deeab80f02218c5976d0a2587f3c38e8542d2131fdff5fc0066bd207b74f3c562a1fcde9b25ede34652de34eb6f29c01f033b4cfbea347b0e89649fb161adb699e9070bbbadda229089d593300bf7ec3d694079c957d4e6327cb106c8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903ef34ed2fdcb449d543051e113fd45740c9781b113176553f2291512366a7408110c99ee8eb2dd56e6f110587cdf4dc30878e7f427d27ab41c7637763099b064d4fa6bc880190860fa99347a4f85700b7f664c7f73557cd75e793d141ff4dba63rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootcloud-init-21.4-150100.8.58.1.src.rpmcloud-initcloud-init(x86-64)config(cloud-init)@@@@      /bin/bash/bin/sh/usr/bin/python3bashcloud-init-configconfig(cloud-init)dhcp-clientdmidecodee2fsprogsfilegrowpartnet-toolsopensshpython(abi)python3-Jinja2python3-PyYAMLpython3-configobjpython3-jsonpatchpython3-jsonschemapython3-netifacespython3-oauthlibpython3-pyserialpython3-requestspython3-setuptoolspython3-sixpython3-xmlrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)sudosystemdsystemdsystemdsystemdutil-linuxwgetwicked-service0.721.4-150100.8.58.13.65.0.23.0.4-14.6.0-14.0.4-14.0-15.2-14.14.1b@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)@rjschwei@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- 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) + 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)goat20 1648835904  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*%%-.%012345%789:;<=>?@ABCDEFGHI%KLM%OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*-./012345678921.4-150100.8.58.121.4-150100.8.58.121.4-150100.8.58.1  !!!!!! ""####"""$$%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$&&'''&&(((((((((((((((((((((((((((((()))))))))))))))))))))))))))))(**++++++++*******,,-,..////////////////...............*01111112345667778NetworkManagerdispatcher.dhook-network-managercloudcloud.cfg.d05_logging.cfgREADMEtemplateschef_client.rb.tmplchrony.conf.alpine.tmplchrony.conf.fedora.tmplchrony.conf.opensuse.tmplchrony.conf.photon.tmplchrony.conf.rhel.tmplchrony.conf.sles.tmplhosts.alpine.tmplhosts.freebsd.tmplhosts.photon.tmplhosts.suse.tmplntp.conf.alpine.tmplntp.conf.fedora.tmplntp.conf.opensuse.tmplntp.conf.photon.tmplntp.conf.rhel.tmplntp.conf.sles.tmplresolv.conf.tmplsystemd.resolved.conf.tmpltimesyncd.conf.tmpldhcpdhclient-exit-hooks.dhook-dhclientrsyslog.d21-cloudinit.confsshd-keygen@.service.ddisable-sshd-keygen-if-cloud-init-active.confcloud-idcloud-initcloud-init-percloud-initds-identifyhook-hotpluguncloud-initwrite-ssh-key-fingerprintscloud_init-21.4-py3.6.egg-infoPKG-INFOSOURCES.txtdependency_links.txtentry_points.txtrequires.txttop_level.txtcloudinit__init__.py__pycache____init__.cpython-36.pycapport.cpython-36.pycatomic_helper.cpython-36.pyccloud.cpython-36.pyccs_utils.cpython-36.pycdhclient_hook.cpython-36.pycdmi.cpython-36.pycec2_utils.cpython-36.pycevent.cpython-36.pycfeatures.cpython-36.pycgpg.cpython-36.pychelpers.cpython-36.pycimporter.cpython-36.pyclog.cpython-36.pycnetinfo.cpython-36.pycpatcher.cpython-36.pycpersistence.cpython-36.pycregistry.cpython-36.pycsafeyaml.cpython-36.pycserial.cpython-36.pycsettings.cpython-36.pycsignal_handler.cpython-36.pycsimpletable.cpython-36.pycssh_util.cpython-36.pycstages.cpython-36.pycsubp.cpython-36.pyctemp_utils.cpython-36.pyctemplater.cpython-36.pyctype_utils.cpython-36.pycurl_helper.cpython-36.pycuser_data.cpython-36.pycutil.cpython-36.pycversion.cpython-36.pycwarnings.cpython-36.pycanalyze__init__.py__main__.py__pycache____init__.cpython-36.pyc__main__.cpython-36.pycdump.cpython-36.pycshow.cpython-36.pycdump.pyshow.pyapport.pyatomic_helper.pycloud.pycmd__init__.py__pycache____init__.cpython-36.pycclean.cpython-36.pyccloud_id.cpython-36.pycmain.cpython-36.pycquery.cpython-36.pycstatus.cpython-36.pycclean.pycloud_id.pydevel__init__.py__pycache____init__.cpython-36.pychotplug_hook.cpython-36.pyclogs.cpython-36.pycmake_mime.cpython-36.pycnet_convert.cpython-36.pycparser.cpython-36.pycrender.cpython-36.pychotplug_hook.pylogs.pymake_mime.pynet_convert.pyparser.pyrender.pymain.pyquery.pystatus.pyconfig__init__.py__pycache____init__.cpython-36.pyccc_apk_configure.cpython-36.pyccc_apt_configure.cpython-36.pyccc_apt_pipelining.cpython-36.pyccc_bootcmd.cpython-36.pyccc_byobu.cpython-36.pyccc_ca_certs.cpython-36.pyccc_chef.cpython-36.pyccc_debug.cpython-36.pyccc_disable_ec2_metadata.cpython-36.pyccc_disk_setup.cpython-36.pyccc_emit_upstart.cpython-36.pyccc_fan.cpython-36.pyccc_final_message.cpython-36.pyccc_foo.cpython-36.pyccc_growpart.cpython-36.pyccc_grub_dpkg.cpython-36.pyccc_install_hotplug.cpython-36.pyccc_keys_to_console.cpython-36.pyccc_landscape.cpython-36.pyccc_locale.cpython-36.pyccc_lxd.cpython-36.pyccc_mcollective.cpython-36.pyccc_migrator.cpython-36.pyccc_mounts.cpython-36.pyccc_ntp.cpython-36.pyccc_package_update_upgrade_install.cpython-36.pyccc_phone_home.cpython-36.pyccc_power_state_change.cpython-36.pyccc_puppet.cpython-36.pyccc_refresh_rmc_and_interface.cpython-36.pyccc_reset_rmc.cpython-36.pyccc_resizefs.cpython-36.pyccc_resolv_conf.cpython-36.pyccc_rh_subscription.cpython-36.pyccc_rightscale_userdata.cpython-36.pyccc_rsyslog.cpython-36.pyccc_runcmd.cpython-36.pyccc_salt_minion.cpython-36.pyccc_scripts_per_boot.cpython-36.pyccc_scripts_per_instance.cpython-36.pyccc_scripts_per_once.cpython-36.pyccc_scripts_user.cpython-36.pyccc_scripts_vendor.cpython-36.pyccc_seed_random.cpython-36.pyccc_set_hostname.cpython-36.pyccc_set_passwords.cpython-36.pyccc_snap.cpython-36.pyccc_spacewalk.cpython-36.pyccc_ssh.cpython-36.pyccc_ssh_authkey_fingerprints.cpython-36.pyccc_ssh_import_id.cpython-36.pyccc_timezone.cpython-36.pyccc_ubuntu_advantage.cpython-36.pyccc_ubuntu_drivers.cpython-36.pyccc_update_etc_hosts.cpython-36.pyccc_update_hostname.cpython-36.pyccc_users_groups.cpython-36.pyccc_write_files.cpython-36.pyccc_write_files_deferred.cpython-36.pyccc_yum_add_repo.cpython-36.pyccc_zypper_add_repo.cpython-36.pycschema.cpython-36.pyccc_apk_configure.pycc_apt_configure.pycc_apt_pipelining.pycc_bootcmd.pycc_byobu.pycc_ca_certs.pycc_chef.pycc_debug.pycc_disable_ec2_metadata.pycc_disk_setup.pycc_emit_upstart.pycc_fan.pycc_final_message.pycc_foo.pycc_growpart.pycc_grub_dpkg.pycc_install_hotplug.pycc_keys_to_console.pycc_landscape.pycc_locale.pycc_lxd.pycc_mcollective.pycc_migrator.pycc_mounts.pycc_ntp.pycc_package_update_upgrade_install.pycc_phone_home.pycc_power_state_change.pycc_puppet.pycc_refresh_rmc_and_interface.pycc_reset_rmc.pycc_resizefs.pycc_resolv_conf.pycc_rh_subscription.pycc_rightscale_userdata.pycc_rsyslog.pycc_runcmd.pycc_salt_minion.pycc_scripts_per_boot.pycc_scripts_per_instance.pycc_scripts_per_once.pycc_scripts_user.pycc_scripts_vendor.pycc_seed_random.pycc_set_hostname.pycc_set_passwords.pycc_snap.pycc_spacewalk.pycc_ssh.pycc_ssh_authkey_fingerprints.pycc_ssh_import_id.pycc_timezone.pycc_ubuntu_advantage.pycc_ubuntu_drivers.pycc_update_etc_hosts.pycc_update_hostname.pycc_users_groups.pycc_write_files.pycc_write_files_deferred.pycc_yum_add_repo.pycc_zypper_add_repo.pyschema.pycs_utils.pydhclient_hook.pydistros__init__.py__pycache____init__.cpython-36.pycalmalinux.cpython-36.pycalpine.cpython-36.pycamazon.cpython-36.pycarch.cpython-36.pycbsd.cpython-36.pycbsd_utils.cpython-36.pyccentos.cpython-36.pyccloudlinux.cpython-36.pycdebian.cpython-36.pycdragonflybsd.cpython-36.pyceurolinux.cpython-36.pycfedora.cpython-36.pycfreebsd.cpython-36.pycgentoo.cpython-36.pycnet_util.cpython-36.pycnetbsd.cpython-36.pycnetworking.cpython-36.pycopenEuler.cpython-36.pycopenbsd.cpython-36.pycopensuse.cpython-36.pycphoton.cpython-36.pycrhel.cpython-36.pycrhel_util.cpython-36.pycrocky.cpython-36.pycsles.cpython-36.pycubuntu.cpython-36.pycug_util.cpython-36.pycvirtuozzo.cpython-36.pycalmalinux.pyalpine.pyamazon.pyarch.pybsd.pybsd_utils.pycentos.pycloudlinux.pydebian.pydragonflybsd.pyeurolinux.pyfedora.pyfreebsd.pygentoo.pynet_util.pynetbsd.pynetworking.pyopenEuler.pyopenbsd.pyopensuse.pyparsers__init__.py__pycache____init__.cpython-36.pychostname.cpython-36.pychosts.cpython-36.pycnetworkmanager_conf.cpython-36.pycresolv_conf.cpython-36.pycsys_conf.cpython-36.pychostname.pyhosts.pynetworkmanager_conf.pyresolv_conf.pysys_conf.pyphoton.pyrhel.pyrhel_util.pyrocky.pysles.pyubuntu.pyug_util.pyvirtuozzo.pydmi.pyec2_utils.pyevent.pyfeatures.pyfilters__init__.py__pycache____init__.cpython-36.pyclaunch_index.cpython-36.pyclaunch_index.pygpg.pyhandlers__init__.py__pycache____init__.cpython-36.pycboot_hook.cpython-36.pyccloud_config.cpython-36.pycjinja_template.cpython-36.pycshell_script.cpython-36.pycupstart_job.cpython-36.pycboot_hook.pycloud_config.pyjinja_template.pyshell_script.pyupstart_job.pyhelpers.pyimporter.pylog.pymergers__init__.py__pycache____init__.cpython-36.pycm_dict.cpython-36.pycm_list.cpython-36.pycm_str.cpython-36.pycm_dict.pym_list.pym_str.pynet__init__.py__pycache____init__.cpython-36.pycactivators.cpython-36.pycbsd.cpython-36.pyccmdline.cpython-36.pycdhcp.cpython-36.pyceni.cpython-36.pycfreebsd.cpython-36.pycnetbsd.cpython-36.pycnetplan.cpython-36.pycnetwork_state.cpython-36.pycnetworkd.cpython-36.pycopenbsd.cpython-36.pycrenderer.cpython-36.pycrenderers.cpython-36.pycsysconfig.cpython-36.pycudev.cpython-36.pycactivators.pybsd.pycmdline.pydhcp.pyeni.pyfreebsd.pynetbsd.pynetplan.pynetwork_state.pynetworkd.pyopenbsd.pyrenderer.pyrenderers.pysysconfig.pyudev.pynetinfo.pypatcher.pypersistence.pyregistry.pyreporting__init__.py__pycache____init__.cpython-36.pycevents.cpython-36.pychandlers.cpython-36.pycevents.pyhandlers.pysafeyaml.pyserial.pysettings.pysignal_handler.pysimpletable.pysourcesDataSourceAliYun.pyDataSourceAltCloud.pyDataSourceAzure.pyDataSourceBigstep.pyDataSourceCloudSigma.pyDataSourceCloudStack.pyDataSourceConfigDrive.pyDataSourceDigitalOcean.pyDataSourceEc2.pyDataSourceExoscale.pyDataSourceGCE.pyDataSourceHetzner.pyDataSourceIBMCloud.pyDataSourceLXD.pyDataSourceLocalDisk.pyDataSourceMAAS.pyDataSourceNoCloud.pyDataSourceNone.pyDataSourceOVF.pyDataSourceOpenNebula.pyDataSourceOpenStack.pyDataSourceOracle.pyDataSourceRbxCloud.pyDataSourceScaleway.pyDataSourceSmartOS.pyDataSourceUpCloud.pyDataSourceVMware.pyDataSourceVultr.py__init__.py__pycache__DataSourceAliYun.cpython-36.pycDataSourceAltCloud.cpython-36.pycDataSourceAzure.cpython-36.pycDataSourceBigstep.cpython-36.pycDataSourceCloudSigma.cpython-36.pycDataSourceCloudStack.cpython-36.pycDataSourceConfigDrive.cpython-36.pycDataSourceDigitalOcean.cpython-36.pycDataSourceEc2.cpython-36.pycDataSourceExoscale.cpython-36.pycDataSourceGCE.cpython-36.pycDataSourceHetzner.cpython-36.pycDataSourceIBMCloud.cpython-36.pycDataSourceLXD.cpython-36.pycDataSourceLocalDisk.cpython-36.pycDataSourceMAAS.cpython-36.pycDataSourceNoCloud.cpython-36.pycDataSourceNone.cpython-36.pycDataSourceOVF.cpython-36.pycDataSourceOpenNebula.cpython-36.pycDataSourceOpenStack.cpython-36.pycDataSourceOracle.cpython-36.pycDataSourceRbxCloud.cpython-36.pycDataSourceScaleway.cpython-36.pycDataSourceSmartOS.cpython-36.pycDataSourceUpCloud.cpython-36.pycDataSourceVMware.cpython-36.pycDataSourceVultr.cpython-36.pyc__init__.cpython-36.pychelpers__init__.py__pycache____init__.cpython-36.pycazure.cpython-36.pycdigitalocean.cpython-36.pychetzner.cpython-36.pycnetlink.cpython-36.pycopenstack.cpython-36.pycupcloud.cpython-36.pycvultr.cpython-36.pycazure.pydigitalocean.pyhetzner.pynetlink.pyopenstack.pyupcloud.pyvmware__init__.py__pycache____init__.cpython-36.pycimc__init__.py__pycache____init__.cpython-36.pycboot_proto.cpython-36.pycconfig.cpython-36.pycconfig_custom_script.cpython-36.pycconfig_file.cpython-36.pycconfig_namespace.cpython-36.pycconfig_nic.cpython-36.pycconfig_passwd.cpython-36.pycconfig_source.cpython-36.pycguestcust_error.cpython-36.pycguestcust_event.cpython-36.pycguestcust_state.cpython-36.pycguestcust_util.cpython-36.pycipv4_mode.cpython-36.pycnic.cpython-36.pycnic_base.cpython-36.pycboot_proto.pyconfig.pyconfig_custom_script.pyconfig_file.pyconfig_namespace.pyconfig_nic.pyconfig_passwd.pyconfig_source.pyguestcust_error.pyguestcust_event.pyguestcust_state.pyguestcust_util.pyipv4_mode.pynic.pynic_base.pyvultr.pyssh_util.pystages.pysubp.pytemp_utils.pytemplater.pytype_utils.pyurl_helper.pyuser_data.pyutil.pyversion.pywarnings.pycloud-init-generatorcloud-config.servicecloud-config.targetcloud-final.servicecloud-init-local.servicecloud-init.servicecloud-init.target66-azure-ephemeral.rulescloud-initcloud-initcloud-initLICENSELICENSE-GPLv3cloud-id.1.gzcloud-init-per.1.gzcloud-init.1.gzcloud/etc//etc/NetworkManager//etc/NetworkManager/dispatcher.d//etc/cloud//etc/cloud/cloud.cfg.d//etc/cloud/templates//etc/dhcp//etc/dhcp/dhclient-exit-hooks.d//etc/rsyslog.d//etc/systemd/system//etc/systemd/system/sshd-keygen@.service.d//usr/bin//usr/lib//usr/lib/cloud-init//usr/lib/python3.6/site-packages//usr/lib/python3.6/site-packages/cloud_init-21.4-py3.6.egg-info//usr/lib/python3.6/site-packages/cloudinit//usr/lib/python3.6/site-packages/cloudinit/__pycache__//usr/lib/python3.6/site-packages/cloudinit/analyze//usr/lib/python3.6/site-packages/cloudinit/analyze/__pycache__//usr/lib/python3.6/site-packages/cloudinit/cmd//usr/lib/python3.6/site-packages/cloudinit/cmd/__pycache__//usr/lib/python3.6/site-packages/cloudinit/cmd/devel//usr/lib/python3.6/site-packages/cloudinit/cmd/devel/__pycache__//usr/lib/python3.6/site-packages/cloudinit/config//usr/lib/python3.6/site-packages/cloudinit/config/__pycache__//usr/lib/python3.6/site-packages/cloudinit/distros//usr/lib/python3.6/site-packages/cloudinit/distros/__pycache__//usr/lib/python3.6/site-packages/cloudinit/distros/parsers//usr/lib/python3.6/site-packages/cloudinit/distros/parsers/__pycache__//usr/lib/python3.6/site-packages/cloudinit/filters//usr/lib/python3.6/site-packages/cloudinit/filters/__pycache__//usr/lib/python3.6/site-packages/cloudinit/handlers//usr/lib/python3.6/site-packages/cloudinit/handlers/__pycache__//usr/lib/python3.6/site-packages/cloudinit/mergers//usr/lib/python3.6/site-packages/cloudinit/mergers/__pycache__//usr/lib/python3.6/site-packages/cloudinit/net//usr/lib/python3.6/site-packages/cloudinit/net/__pycache__//usr/lib/python3.6/site-packages/cloudinit/reporting//usr/lib/python3.6/site-packages/cloudinit/reporting/__pycache__//usr/lib/python3.6/site-packages/cloudinit/sources//usr/lib/python3.6/site-packages/cloudinit/sources/__pycache__//usr/lib/python3.6/site-packages/cloudinit/sources/helpers//usr/lib/python3.6/site-packages/cloudinit/sources/helpers/__pycache__//usr/lib/python3.6/site-packages/cloudinit/sources/helpers/vmware//usr/lib/python3.6/site-packages/cloudinit/sources/helpers/vmware/__pycache__//usr/lib/python3.6/site-packages/cloudinit/sources/helpers/vmware/imc//usr/lib/python3.6/site-packages/cloudinit/sources/helpers/vmware/imc/__pycache__//usr/lib/systemd/system-generators//usr/lib/systemd/system//usr/lib/udev/rules.d//usr/share/bash-completion/completions//usr/share/doc/packages//usr/share/licenses//usr/share/licenses/cloud-init//usr/share/man/man1//var/lib/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:23520/SUSE_SLE-15-SP1_Update/2dbb1186f917c5af59dcaa11705d2216-cloud-init.SUSE_SLE-15-SP1_Updatedrpmxz5x86_64-suse-linux       directoryPOSIX shell script, ASCII text executableASCII textUTF-8 Unicode textPython script, ASCII text executableBourne-Again shell script, ASCII text executableemptypython 3.6 byte-compiledPython script, UTF-8 Unicode text executablePython script text executable Python script, ASCII text executabletroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRR R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R RN{‡-IgP5utf-8771ef3cd47b4a9bc171f83554af491afd2ef85bc99a008c5d65d9e798cb762ad? 7zXZ !t/']"k%f1ƷmO3y7uC)!ɊLcxbIis"TfCl3:xwHq7P)qg)P;r]mjLxrH̠`eFF]X:z"W)i}>xVhUַ9rS-VLyܨqh;ҁmlZ{egyfCedl>H,AMx~Цk1u=Y1ίuR^E;v6su; ,#xoKU"lL˒|Gb SN­kc`S_xt;s.KћZW*5Z^@ZPOTT{2鉒ܱ#sPqGБ}ju u|s Ѱ.L (˅XG(1f l9%ӕGќ2q#TP9-i+0Qx@~^[ӕ67DLl /k>c@ro1h4{LQ qHO|*AѬF9DqQ`sOqkPUľa@)|?:mӇc l~t]ㄢ%&aE?[;|:% oʣ-#2gH-LeX9jM;RVd\sÒC4cq@x;5&_z9V·,_3kIx_:RĤ@c> jH5hRhY#92,E,,,W3`5bZ1]wsxEi6QU[X6-G&__lXnjJmx4z\;#䄐^$ .i0Y/1H.0`Ӊ TAZo6`b됁s0/drohag:z3|v3PDyF2JT\a;<[I aJM5K_y⩎ӈSi;Va7g0ZHZ 1 ^7dVRnC/׾~p~i{녕'sU\TEkNv!AnFEGΫ%X#uz4j .Εߔf2 pi(:q25:*!$}XŒmV:-@2bWUal_ Cg!Z!~;56fgskD:ۋ=AA +U?#@;8ug~K}QH J0,i MÀn8F\3IWp ¥<+m;F((g5Hm0꤃o<;>?vKYn䎴<{1Ne3B,Jl<f ƔY8|(<Th5J*$c0վ$E~:G@%)C3_ۉVQ1a AyÿHBz 6cfB.v=S Tmڢҩe#g:c{Vh/I.߷ҤoӲB\CO\+KU=/Wi *#>\e0qdv ol&dXvR]pB 仵O$w%H+{VБ}U\98pa-`;] ,&ڼcM̶f}C7 o>4!ؓVc4t(:i..̋J'9M0vcR(ȱ3B6 cFGcDƿ,fB|BGlV5|pgpɖA' GK(v/}_iԨieㅎ^Jᇠ/dz}lXl.a@4`VGTھAXyP4yd8YFsJ!Yf E3J1zML3l/LJhJbj jTaIw&j1']7IsH1 aSg5lS&2eKB`1tg@T-=+cdp[7d*F@YU/)T8A;FwVIznyO3VH7r ,èZwc VXp`Bk$p$05>Ɨz0pQq6-7i h2 W'R9^/m}E|Yd}0֙lЂܡP:`n^K 8";E{:Cp DAC 4 B즔Inm뚗wBi<;xچF # aQHMˋppj g6oTB-~›X^֡ > HsL#?P=hsa`^v 8W \pQkI}>U(e'q0XĢAb;? **0ԬhڢiU&O@BTGRoqj74<|' o=^cj1VG2: {nIMD O*amvӵFIN^X| c9Cy_K>]D"-\x?x|X,8y>CCu@>N=C=/Y>J&[VDZ&t,;T=J&W8,y*b %1ƮtH7Q䍹&G.e԰{cZ$c "ꁋ@G ޒ|! ld?T<2fvҁZVyTk=¾_xjZ"6Ch&{!<Μwf-P2D8c3 :3_s,1.F9RCeE5}9# *ZeFEO`UzqG~{. $ =rDntt":HVU(& fzz pM䢺e63b0ovXqxH5ǽ滪{?nm|lxQSo-xNQ(<1ԍd(S;M|HQ}OR~$C<.N6M"b.m}fx;ĽdJv`磹fW:]] *7MhOXZiXuӉBo]~*LCְf-q F%;( qOW @VGxR2` 07s3½%7 jT2߃,=[y| g@{z.B&ނpԅ3{0t1ZBQׅ龸3K^ZFTϺpֹ"5ihdk!nv.Q-2{kMoEO'F]W{73fO }M-yw۠iru,J#𻘱<=*_(K1xIH6Kbx6y7ǰ )7K8딷1Rc" ZCs_hfM -dtJvZz<Ʊ 1Hz;oƨ+f!/q:N(D7^ߖzWȼX}:sP\% B9VHW T;nqJJQ: )`lA7){6u@s( A~EkCqy`>k\/ʵZ*:Jx>ݠ1z $L }o?= n3iyvb34H{ڏ' .4`RWvDxлlӠ_ $@-R1c;w^c~n+^~\zb˘w6w\1yZ?t:SteR96mV2D4TiWIP)Ф'x~\蔨!,2 ~wmw^Ab; }S/yqrhteor@,?ʐ+$ 3A@afqݷ#y)]-Q1_.Ze,)7F2Py\U&adjA AVs64"isG CyC+qS,顎l110VE9蘓1ǣj`GwCx̧r)΢/)f](P }/ 6;gי%ԭ|coX>**Dv! -w@!&^1: MW~A.^T#/e#O K`^jZ Kuc,S Epf| -t5&C-Ug8ͻ޴܇1O7~iaF躯 +My V{WNDˈUYMiUnI|5230x<ֻTz 'NtIk}Nf0$ 4p,qCŹȵ¦,I|! B'Lj3}Y-4t/RTn hB:]]8{j"YcRK3JT'v6ðkqڑ4=R1}kgH+1<|L *2AGѢ\$:FZn]x$&` }jk#xUSO66'\2Z}od7rוt.l[c51_;'ήi)rtS"ш ωv ~ h>;y퍃/׊> |qxJ}:0 1CgT}D5@hHݶZA[~kLC¢!JFSz[ kDVr(lOIL u8_鎂11hy YA)J5ɖo[ݴ^J-KlZnj$g k Zъbl} Õr(⛅egLozb ELrya |Nli#srֿgni 5eD{p2!Uͫ( (V;Q Ra=H#lfOî f\ F0)@x кGQVXYpB4j:iǛ[@$\:˄^ӭPSN%5F!RjX[u}QAE},utU "CzփIz#4Ɓ0ʜϪjgas[%2a2pIL\?<Pss7Ӽ ZT{PU8gy-[ֲ HW2b >k2j 5&q@G7e'#CzkaFZ7<=OSܿI\)׃KSGV˙-#a FRdŶ |@s{la+ޤzm Lċs~bTHsOaP-@іu P`((p7@Hk(/mVkm1Y'Yf XWg:(~ 'NJSOB?zR?f.ޅhw#GkF^ ldqz0W ?]"V IU|KC`; K8¹. ;]=r[4.J˘b B)2j$OaɥľAUׇKS(d")xntw4ڴʲ}ZS`]Ki+Fx$<)ߺ?+ ֦~0t u,W;a!7b8(8մG`s3p| / gfZ?›+GW]oqJ:D@v Wnƽt-\6#A7.]ZW? 7/NjQzYh^=o"%;ܳB[]!/z+dqe)t雪^A<[>ָnEvct&߭gH:0@$i|ZH} ׄ^p_r]s-2ցc~ |q lCVVցcA Wr+SJj}Ȑua|`JDƒGTܴ2|F|zbhif|HëWA0>9X-0.`_S<$Aݎ ɢMF:>=f8cR [dP 'qhͩ:|Dv/a;`i"kq.+hb[+;8J/g\W1R:7C8оg7(pt r /xU|ekvCKPS p)I@<[dN\FaW>UyꅨѓhdT`{h)oTۢ0D( 6VmLy'=z&S~ءi}.xdQ3(jܶfe)yFc LVz &-ahpEeCQgQ}7vXh>vv4Qmbwf2!o'^ >VLޠZϲ:Ej/;i'UT7BϚ=7d[vwF)C[~Gszi!n緇{PLD}eȜDO -]mwǞU-a0%.$[twpJR+!Xtҡ?έj>V]S9(C Rf7D)H: 97j=x!߆b8Qܙr/Qm:"Q_*0Z\w h쾓SQ ~䎢,G&9Tʒo$yhZ "ӟ8vt8y Kz%E t2TfOxOē0mY2 ;^Tcr1q;[)|}6?l9Ԁ4'`3\j`-Cne9!=]JG wvrqf*Ns=H#|˩oUSS)0e b2:wz`EhcsʦӋpD* ϶;>jt)T@3?S/`>rGSP'"g&#yⱻ%u7ߢJ^kȆyEثqܡ_5 IxVz^?mIP r G*y:(Z2bLjY6%ͫ4~Q\^l|N~\Hvp#p܍)oSfu5Yy> Tsŀ+>Ů Q @)lf1EX&Ѥ< Snz&ԘOMA+0%HL/9FmB =Lj05DW4 H,<{c^7 jSG ]& ؇t\ܝ}i0sHF["N8^aoݙHF}&)eA5_fQ& 'r(ُVO=l!)qߡDIǿp{`ѤRNre=n!H/Ӟ-r f3|+^I :?ɩWS[c ګ.3**b|$CP+Au0-Gvԉnds(q8=m2PkcV'te87䩟u}!BHO{D1U?C@0GP,84DO?#Dn)J_PW`o ;eslm/C֖*& ޽c1dOi kTT\ ޖ3 ^f8i"7AMa-:P{R\߶N`=n iLYo\j PHbi? O%N ܩQ edR)Z9rX@}S:7ojR^"0O UGzGbϻDߦ䔇ߡHb/ٛ ]zm@h-7ţ !#52: ڣ~u Pg1 w>4͖Sz@w3j(brjC La I+s|ZC6a Iy*$Nؘ2ܷ!N ,(^;ܥ:__e[Ԙe(mtbŻYhVS[7c]r^[!El0-fBV*^2@ļ3 GY- p:@eV ;Yf3S)=rLݤԣE[g!^˸ H4PNAa T[m[gڍ,L"NI?*T8#9o* By F`js7.FһTiZInHVzѝGB7b7̄uh`u`q^eƍ1G<&NP?!(Z@@?$ӑ $a51LO3t%"D>_iHϺu %}ncϭ !+Վs[+K{L)FIgpE>,**E4[h\g<+rQ8[cNՄKDN wi!yܿD_=L(T50QJj%8U1z;kMU\Qip3ڙ5v!%24DF5g 1îhR. FM[Ź"}&Nb?EABLARőذG8V0_:KxήP3&N!Lo;$ XrֱpExޭʅM$NM.KJLKY^( /Eloփq+N="_aTuc[a'{l;o*eLH3$Š!z(eC }xr;V_Ȩq =8l68t-Vحu+/%C~P*OND') ?mհoxӞ(vH_ǎ{ҌbT 3o*+s~`3atEg||^Ё-F|Cч{^ [m)!1p 'Ɋg9QlC4E5?tOqWQ18EL>. bYZz2~4' ō GF2NuhbT|>PE)`8> R ih0zv<5f@j8A2;(fj~aT1}[baNYwu;pkۺbKF/2Rt/0 VyCB ҺRl>[ ; : Z%W94km+Жy ss;2 #ֈ)h7/vֶB;WꁆX DŸS}#_O^Dr*LѤNv%J逸lBw`$pE7m쭇>=X=<YOF7nlHoەQ$}nXG'vu3RE[ 'np1 `ۤ\/8\}lb:GZ{YGj{nԑo{! 6+&j k!8A&#(zL;ռK|&ݫ_D`_>G% |7=wK$1X} @+xím)|O%O LYrwlk3&^¤]ݖ{V@oWMWe+m?I׊cP1u!c O_: EVNܭ?<ܛpQ@"W*ldFZMO9>bI4 K|@ MeiG!3(OqS:#)ĦX3rjIyNխDua.19g\!iCn4 uNd8 j;i0=ea4):, JdV9 i6;w)S6$UHBĬNe`^hڥT=fXt]{Oj xx|j{WUKſZ% üdsl|܃Yk:)7pjݍn\!5W(qno뉶d>G퇭hB/T=5_84-S(?-M^FX0HjD,YDN qvw#3'N**+äJՎ,:3*A:֥mz㕰-=w+zzxQ:]]TrPR#1 olҚp#]߁X ԟͳQx&ivVu4H;vy -5&/W}\)wʵ2}Zgԓ-O`Gd* +f> A'ƵxOC7- UN㸣 ]V;XU>C}CZց,bcBRZeyRs 2ztG~Vޤy߽ٸ k=7 &K5Ea_vsZl 6Ra!͚n@H} v%ގII$?kKX3ʉ#e=3c*9VXcBu1mCtm9Ӎ~E1(LQ2,o.͈g)C3Q=e[/uNzHduD-&3k^Q4ޟ*a.x)0yy mTFmqDHК{t]H 11NJ[ݘ\<95i4[@9k)ldw)͌<\R+JW8lJw#6G?#fk(1`6;0P%,V[y4͘GAlCA+꤮WXN]tT5U4S.5V?*9%O^y&uwSW$qv.+*&c%$KS}61˞ `FRj ]ѿ/̌'p0U7C]ݛeT=)Akyt%aǾz-hu !3o&F%LV!9fl_S7! T%K7T PL8>VzCJ<8=O8ATL6>7 &ec#8&8ㄫn:P ꅆ[l#@ySYpMQ^h} Q#@ԟ;b3\jdOȊo ;a|9xv6P\#5%koI,ـVO=#"2e 5+Bla0am; f,Yη:׼Yhr)/ iDXle?*>$ّ&Χde34E%Э/e@vqH]?جl}erԀq֠QB6w1!?4>ɒ%o&j@Hy1 7GBH!)wi%ۤmzFn8kn ,p{jpD4HX%Sh ԝuVqE?e-E}˚ٲ)B6|3&&+֕d)K.6wh?ŐV$[ͮCOѪ_;/GXFeDŽxɅYkc~mA"XMp=* ɸ󅘢s]Fo x| mI#Mj:2ə*v`j~X&M}E3nyqrnoz'KGsm:O嫈\$snurD.Z˟Hbr4+w6|[r@l6qua2 $<' !;ׯΔʑ(G܀CwZ*kjh/ɦ#*;ÏkKyq̲n{ yRGi7'PN73IO7qw('c4޽bQLǙ:ViW`gB,O3~0ːf,K΢fQKկV.ZC(; . ]ayzUZ~/(߰鼨]n q~V~u>nR*9HZP5hj666& Hc.w"Oa:rVh#,6,A QM\o#3A!,޽Q> K]h9\kAd9zYh#p qQF@dQ%ux q6JpQ,S*Do.)q*\Tq(EUu U;gF֡9 481JpvLhrl'4x}0Cq)(ՙUB5+.: Ӏժ6Id5nwKJRIՓoq ӂjkTവrbG{e|cܚ|Z'>DکT:^oFx/A6ZQZd<؈'h\'d'$Qi%Ct6S~v Ahe^͖TVUz_;g]Km5M/uct]7Wڹ@#M?5%EYHxTWI:k!+UYH_h>WZXlT0 `F׮!I@ 6@8 P?yM^저G4hljN 7xJ 3 0(M[}yw,B ۧ2mZ҃#͆ -$f2UEi-FABsn'T[rPºBuNj#Q2nY!u,yJm`Aj[mYm.dK<&&Vŷ' [zBFr ": ׻3ciJYsgcoC00[jSޡؿgZ9E )3$gOpѻP5&8qQX}EAbS<1|LRsp)g zEŨO<M>d ,'Pp|.ISh'f.[Y;LJǻduP-'[Ӎ7TJh&\[OB򖷆7ӞB1:S](ѓ~G 8Xg&"ByL~#J ߵю-giP0ykY2BܘVƨ\s{B;H8J##կ8GWȺKRϞ#&_ă=ʡ?hoٲĥ"C4j%=+V!×z݂J.z֭g*5 61\q蚇;{y["I(z=CV&zb :C9"+1aj)X&dNhmgQLXq;F"*f!yJzĨoK"dc\<]`Eu #7] S͞>$o?< FG]1u}:3e1o+ j1 1a?5ht={4+٘0JP[ׄŎI˟_Fp5 ̈́a/;LFX@ \D㷛38Wt'ԢsB-y`?˶ax`&Kp}u ]k넢b)D%;G#IStԖqɥgk TCP6?,S-3A0xGr ?8JK-kث({엻_KdCLцaM qޅGw*J2w,ܰ(loUH4;'E;HNxƠ<:Bl+NN^SuVX"6$x2= Y÷5DZSt _ 5.5y/ƶ+;Tz5äYaiЭQ:C󣈁XwQu4S,DӹwX%P‹ÂICt)Ed[hiǍ{gxswBYju]~?= xDjMFbWje:ׇmK=3YUqgRAץ/!ktX6e%4fr$D|.姍ZeTE*ŃontXRZ{A hQ祲ay18b@-kRQ$kr =ED)(iWs"}*MQBנ/fv! k-ŀD̶I$`r -S8;$?97RaR9 h kQz~)+҂_5(•0ѿN6zOmibcȕ4L.R \4, *S `sK#ѯҞ?ҀWdvҿ^tޑG>X{RYD%2``a/#lu0?B{2ܺt8Fƶ >!@#k]p 9`jzܖ*pe 'u@HVDB[T})6 ^첱q` "O gZPFcȑvC[FYeJgϓ Q֤Adii[q[0])5@+V wpht~IA(Fa# *9WRAŅn$9%StKtJ`y qg0>i;-7WHJg?SSI= TQw:lw!F !K c&:kmȭRt:'NMX oMs|ȏ"έXGtC9c^HL6@:CH5y82*[Wy8/bləߐ HQ.{ז?g.틶enbۭqQtŖJNabVD֎/HOn!)RdWWȫkU GP.U~]#Wu7*8eX}=u8yjk ݄C=yΎn=EJOo5Ne]67z`l.,pCuSPUu0)}忆 HP[.1]3!S}R>fx-g$k{j5bm5Jax>grP=]63OA sjn_kힱo^guнZg1l4ʹ ]iD%{1@ǴǞ9!/% *T낍 #8ѿ.fvZ8/jxyBf/ƞ F @|F=,6TxT4\ DXV$=sXfbV *snP\,R@cFจ)Klt%m(KqVɑW 7\^_`2|y3^.r?<PN岾NڌrƅJ",ܕ9 sr!*9h J_nl| Eevn1 m-1 N|WRg79A5_oӖ6 nSV ;>{v+38FS&''1]X&uw^CI5yHut].A-tm<[d5_$W}O2ܻ<ա5 8j}&zqH^C%6bװ :a0_󹅑M]je-NjE'p_9Z9/@J- C :xɗJΗy*ieBM.- FE]9KO= 摉' +`U%**} vrd|fuFu)C9?u>udòĭk773f0C5MHYi^#N=7־Sk`2- /dU rvX[U.NvE0 PupI$ In6.tՔG@DV-WFqd8E7}yу)StfPF=`U*3*2@CmenD\?sye(w+n7҄-,j0`-)VJ|0TTIIC2V[1HTk{n ʛGCEuRI<>'9\đ&T贍O&RoƶJ/8x" #lazKtkі/AE&_aOSP[B  )KzJ}- HZxk\mmhȉDBXΑP :++vžut=I!5'M %ڐp_wLBfhi#W <[٢a s @<ы,*;hA6'&m6mbjwkQzEGժ׋])%]4Ka m\e YlCڕ/bgsQ`Icm<|G"޺%bd xL5O sQ\w%y} &"~%I8tzl{ d:4 _.YOaXv`QR)FpB[tϻZOO2W6&RWg)ј!C` ZlP ׶! /H])?PyxwwlWAϒ~8΢yrIH_ ` [($Ruo`@ڸ\q/anN"(#6dei=xk񘮥RtW7H$f`WIoo#?jcDF@Ў*%!{z-/=xy sL \I"u6(DBw{0=E^P^zۃ]W|-!}6gjý&xb" #YMWݜzi~C곅UbQvHĒP]9kiRۮ{ѵ[~r|&ׇڢډ5bGX̐i/N-^hT}O@NI50z帹)ܰz, )>;'߷έ *"l|^YBo7hU2RVZ*nظ:Mmw@AP=>l m?h7-T)4mYRvHa04iD6Eq!ő~W(@ݺRF?S*>RBShdrb{G2ԟn| XP@H*kz[w?,UZ:W.SKgc2#Jvc ! هr/fIqWZ4"]~o*bظ n#3Lm0mt+" 9U4k%gfXa}gw3 ~&;E :tIդ/eDGܼ_C^N߬y}Lz5Y;N{.!.~2lw%S6;oxZ01Hw*a̒kNWY_:<+ULF'v "m9V[ p9xv#\!z^0x0Ċ1 ~i,F@S3t!Q!ElgdT-'Ӯ.OoBhhQEvk0`Ga"r=aiѫ\!] nj}%PfT|JϗF>oS0ʑ}Z :^Dr=XT{:Wuj<5I^n-T\@9`X|_ e,Cnx~3N=ˈPȠ 8iL4.WlJdg*Ң:ӵNHt߉Jlm=E]£Y_IF8b/ʊC d\ʑbݹj;|!Sȕ\BeHR,0n]&lrzJ[oo.bj&LM.dnk %Y]=PbPi*]+ew&YxQpV"MyZtF2)5%آ)Ḭ7Gx$l31k>)rfIq(=iΆ/X@@5_IQeyhGrþ\@㎑9#О0֬ijR B(v2.X(~8EGb0&Ù!R9'ar' !'..rJ~sj|Ld \nPkVO hS qU /}`8;8tW,X3b<"HOv9NͶTNX ͊b;,Ԧ$KvL O䜎9'63AԵۚ8-e/Qp&%ss}Cw4o U5#@=D%FV+[8 fשĖK0a{`;Vzz2t/N'/ҠoPWwZfṨQ[eIi\|>??&n7w"K nD -~96x:c{<ʡf]\X`&Ȣ'n(ks;tId >M&ŦX~Q2L~%|3l!Ysdy1Bʍ qf`=! ?t2:',(ruꂢ"Gpej Pt@}O΂,#πKFb53(E.c(w%(1&t {ڀ4姀 szvz[ָ@S703383} Wl&uY.O+_?Jc@.6Y)ѾkqDM33 Lqb8a t>#\Q3-ЛՑx-jd8ɂgY\kYpmY D{>mLn"14 Cjx} ڑ,KN3۶{Єnp蔞 =LP2'zޏژl41ti~beǛǚS ZgiòEgȔCv +M6V BLyHĥ L8Klg!2z,S[DeoPj `'g;dq ^Yӹ{HQ7x8WD5s.s :nRk ROKˍ‹Sb땁S+\Q~v'+/xZ8̼'ݬKiްi BVnqٴ+lK5@PL)(wyG 7YEm<=Jyi.Xp^rW4(7Bv*.ႀZNQXC??pZP_>*VZ`A*?F-q Fu;?;_fp?vaM8Ok"c)cɤbzIg#~.[Mae<*oHYD܅=G(#3XWҨ3:Fu;aykxm%St,o;{]8xKy FMii5浼ڒ& ,Z U68}ګx: @ƶ%Jյi tLxMigT:y_.x "+e@?pI<1ɡy7df'&ۿ.1J/R,<-Vm$$FB3 ;+\liSEDA4 jüҾuSĪ4Qd@|Fa-R_:8/3-g&6zgب./P(\ `Ƃ0߹ /`bVIQH:ԑAP^cxYux3M}Ye4R{9RͲ^Z&Gə<ݠ1O* {*ܩ-^-2%%+vBFrpmueTrVdl͢E8/IHX)Uop@V$'M7T]<Ǭ謹WӼӤ,Љ3"Igr|!*Z'$&Jo'MWozbnÅQa4J1;W\O3 r,͝ d?eOaUC[ V.- f3v"Ė眀<:֐\)@zA䄬0~-q~q%N|Ć)5S%oDgcߥII6GPm`ĻۖC5 q˕6A&tH6E&מJJ]j&O;FNfL sRFYW~ \mNK4i׀ ֙^L_XO-U9+mЯ!:ѥH/Iȟ5z i<ˆ>ROwBȌ}0;I`i9ey${b GAnjaȚp8vŪ&jF6X0u'_kZJtx34Rq"7?l.h8j2szL{<Qɻm3OJ*'JI!-1Noi,By[bj0QI*1Ơ{3[;ߩQ*9<4تJZ?Y^1t>;v(cbI~F`'  F3]nF{Ks>$ُ_,mפ5^K5no^&˓: bAjtwʹzVJD?Aeyו2+ f"/ROFˣ 2?Ӑ%X~8ʦ'"D.F+OipcR.vJo~'UHlEͬ{jFAbaRI.nO:-$̍˼d0_HAc>L/"b*Q/-D-Ι9!};܉MFehNc=:m.*/;LѝɎJv>[yڕ`|n,{ƍSΉoY[ Ã'JGSvVE<4(dr0{4XY7xP&(${$]0 i @ )}ʎb ;߰GסGlK?מ/" +q,ͫ͟@ (a+5Z;)~~YA"Nh7REM3[F`ٺ!3\FD~>auqIh)b?&|[_qIq`1sFlMm7BI흫$gݦy:=( c72M&ހ&hLf*wki levB!T .̿Yj&`3/ (Y51SR_RK%JoB1I^41Q~ b$LX E~I6[?ye *PeହBKnZ,XŦhXjz)})%u ~;ό1)6o{m?#;36zh۞2qN~@HQذy&4 xKy7nVTn|s6۽„XA^4@wLUYmI`0_$4J㌔E&/D=v+ge%@:ꢎA6A X<~ffz[^C5/B.d|Y o7UAp`Ur!aP(\PEM@|:Q6^)#V= aI^E7PIR&&_kNS Md_ vgj2ӣDb)*zjjd(\bK_+/Tlw*N8迤L~wH'5&ƛM"Bq8#Ћ\>>Dy|T'["O7[F?ے3Ky;@w,R'G\8Չwu%HLi³^RN|uyfH_iA ZEeyx,h 1ZWs%ζٿwaj{ F\vRH)Ŕ'=CI0w@f0-1to5Q^#3dvz5GS 7Q\:[^8 ^RH4'ςq8J1!_5 0Ԫ&[R(b)pKN)үC"a5mځˌy@6>'KW}VYcDWV3ЌO< -𖛷*gʼn%t_Hy <_ ΪI+b_^~\Dٗ`4qKMkߜYZxn1CMBt;/,>=y} +ECMf WJ;_8yT.cZ +Mí޷-!?.A'Q q5^A]b5*lm>l,I"BFw68+OP?ڃ3qD툦5;Oo@9fY[sy 췋n=Y)7.v|P$]#r `m;X1$B Ca~c,mjrf(1תjYPQ_ ڡXGM ys nڀ ӗͷjHy^_{q^dxeRUIXCl\i<9kwU!nGc|I^Bu_or,_iC]=vugb}SLw|c[:TBO͌y}beellA>Ԛo{z !46.,ro `b|^]6Vʮ3/Y 51֘D;I%T.)=)⑳%rǓ\qH?kKgNgcVcrѦ=ԒgqlDqfSu)ѱ ]qH-JfEg3JZWhŅ.{'D:DFɶm#\"6yU)>0ۊyӞU@0ݨ'퓒ZpO,_@ـǡ_z)`: a9M5cVQ8K.]j$3YEԿ_Fֽs"7Ws1]98WaK|@ΛOׅMEBgaoĒQgLca" Vx8PU9+Gk%Y>v( JeaDO<*H2WEFIq[S8E-L,KGqWs1VADfv/ţYi}L$^I9`s%<~S锜߫ 5 V1<,޽jɋ-qr1 =Cd)I *6lTxL3 ~$d!JIVqGnQfiKDGQ9him%T=' gq;P$ >i\d 7,dyB 'uSaAwȮOQOL<)i} -˔2K4jծGXL߸3{Rέ?J=* \G弲 H\TY+DĐKdC9ρWK:.>[Z857XۏAXN,VKY #$FaFZ\G[2F)9Wxju2 ^-N6]uSɃuߢFrMrXH @'va˚Մ۵-z(`/1,ipSTQXСٳ`9@W꘥ =Ꝿs_7. /?Z(fl/cjN'.i)_g7Wln+Eqb'Z(!zoȹJ㋥^ 8#Sa""cQϧY   !ԵrhBbAbݑ_ ~yy2Wq2k0٦bA.GX0݊ub1ǁ:$mR5U g|^g!\̓dPsaZbxڂp!''Խth_3=` i!6,{όym<Nj6GBICZ-'s\lm[M,:|sۛ'X~[MUcjl:FpD< ?h,͘lk/jo|hKL3J?$_9m6'/78YDK%V.C0dvK:q,p%Xo6)&E˽]{R"A[r@40};,bc8-.66 \f2qN3n"p;5:6&qEdG8[+RAeMijSt4_Vncy1m^E'AZq]ַZE%q#K K3]_lbC*~ݗ ֟ hbw\۴{;XWƈXh/ &בbtycqd="0yF4;е)ȡ|?m32.1J y)R+zW1۪PKIc*ufB=DD:<ń'z>#tv/v-z!@W\s@SO-IC2ŁM[E̺aH,6/23TL.ԖaᾑNZިFiR%ktq 9W^UCʆn> LX ~5ďnAiwdYkM!M;ȐuW0mlU DJHθ. +sdy3KD+ %6 m!P7Sug)';Gt_/]w\_'jܪ.iJ1q +na}bڳP" .Z7Mv#mȬ RRdU29: dd f.Yޓ5d-OCیh-&1J{K[EYztFrjt..Oˋ9aUUujiޕV l(_ m7,̓560hzCa2 ]άd]I>I*צ/g~ȸ$iCe9ϣkc mM>B?M cˀ̦ : ~# aE5(k8 l :.d5r 5͢"ǭE tF+AɳL4^b}] G&={{4D{ L2H]Cv=.hHvtqj&.Fȵzܬlt 2ʗƝ,}bC|ZZ)v16:+ BZu_*cb&ud;5q>|x`#(_h+A?I0} CÇkv=N 񊧊jbo"TuzI$t`pZ9Mٻ -{xE9H^o.v(%?<*OL.A5)N {XvСw_4GCL` 0@ ޼vݤؖ.PWhs3IBw K D3yJ%tH64=-!U{7STyZ ~ҼV@J/Z*=785`Mݣ~ :hGGjbo[>Y]~Dc]NZÀMZo @?h!g@CX DǕ<@}]27_gL^å<0 VR48ySUVu;T{s_2\ħ ? 'oYHu7*Ap6cc5'07zJ:, qQ'ޥU7\O&"Jc4[,2.&(j=>)l*_lbqxlNƼ>Vyj$VItNJ8.iQ.0)+D4vS)鬬gou_.ds=$:I)nC8H5Rez Slk^}4G%"`X4tU)e +9r[2NȜ8G R-I4M-,[ϗ8T7 Ұд̱-?jiUZt,I1DV[g E@=5o(%y'.=P mYLؔ57;MHXUJu=оWNknd/by&27?T(6eLU6J(˚#@QHfHO\P9I uD?=3]5E,CsSJR4ۢ7-pҫfZ%J5 5սeX$/Օ$TYٹ.<5^z:P@}3SH.\!MFo `*" 3i=?J9DB쎳KjL /Gz3yRlgE&MH*Wk fPm}m ҃/ `p5_E=@F] f`ˡ%q;@*-KbG8ء/c+vS qв|}/'b9 )ށ(&z>\%uĶb7,>(1F y&,ٻ]AkT=㽹bY"iXE~гORcё~q% qف7 @D I)CK#J0/ۈ؈Z_ |p} |̢IG])lN-c/W)MsA}VqB?@V[Я͓6EK͌nBc٬TKfP\Ljp[8khMiGCoE]`ʿk/aT 9|o`;"E:|sNڑ#XRyNq"u%hg^6-RV im/i~<+D~~H%dEXvJ[bGDz3q"{B:9섎!^_ ;id"4l\>5X5+S=E8d6ֆcerD| =I:ud{0CEpO(0ERNٮ٧FH#~ hgw,v1d.] %[T{4~э/KitI*mSj+r9FLbB5!F:=Ody@c](h۸hb% @F\rj*DA 8D@Mi}c A]/ͥUdy%}=E&90fՊl GM}epDrb*)1هkfeu!d{rvEb?Ó IwY|L5HZK(/bL0@q^Eda~rTsvTw.rԄښL {yθ5R-LdU0U db+ӜKTҀ dAUJ}$4fyĈL@c u+Aiv:`<:XeO#ƒk$ͱm=Y~;Z2!IQ ĉ͂Ha_+xB.KH<@!QÔgU=E4µICyUeo> n_=> .K7 胲}у1E굓εm~W1H6)x3OPO:Ɂ0IİaGn]N%.cxzjGVE_甩"3^J&p7SŋhVtKa v+*Ӛoԃ"S4P%pO5u4>2_a0D(uL*p}(7!3KOe9q 1 NI!Ac) eCr5gW>Ol:Yy4T_HL98EYTt[*ZO7Nݹ 퓭ro 4a^ՖkVSfن!gqnJ~=t™ĎF:8];2}$/""O*Op-94*TɁ b4GDzi"o3$a79ę) kK8ZZmO;ю:r}y<;0̹^C'`Ԗj]i==+OR[O$  +㷃{T_?˵fra _*nsm֎-4am3/Ȉ@ӈjI(Ԫpg[L!cUQ=+ e)4K @d#PRQU3(1v`;g""OBJHLυo}K8Tb/< ;xen\(LRl팺i)?t3Rbà H6-Z4=I͎u.-Y %|gG+00ݎ qTмȱ,ewXm@>Uz 4t_.ƒAZT[SCiTn~0q?me1 \|tI^75reN7Bq.X9brp˪_@m bz`m]%%{ce4p-o$+{59_r>g"^4482'UF)?2▆vo|f h$$-=FP81<̽n"gbyh|}ԀFU kv-GRݔ48ܜ m@ZWbt4&,!vyE_CΒfHZ]1:A4Eۚ4Cy_X?vJWcSoX\\ڂ d\OP`Q5_:dۗ2Y6&k&(ߥ-p%ή\XA/*Zϫso|~uK֥a3``H<Ը|E Y|^ 澆Ppv/KW䌞M$gJ9Tnv/ &(40$˵m >MkSXT)&68uǕ/Wbor/h׍M$(?9I9z|`a!M31zLkzx>)tɟh%.R K+4gO942.Lw#W|8\"ֵY"x.\)P!GSpwpWe-Gɯf*{vE)sUɷ\ǐ^b9lݒ4_?Q{ӘE,#yVZ`r4C.@a6?[*nܛͽtvnaffpn8eY9ydaiД8vHpzԺ)|\KuًI\,!cI2;F ABeC(z/$.P'UgcJG5Yt(6`6Ʒ+5dZr$('gXտE]qK7кңMDt Ks0LL>eQnir '!렱ۋV!Oi7xeTi%uoKe&oKr2ȐDt$1 NɚŮ U*A+9Lγqw“: !R6!}Frl.Z"v--yH57(v(A WP5 "ƞAWLkI[%k2TNAdCvN6>fXi i8_khYӮ!XH=fI2IQ`hZhZ3%ֈg)7]GG(U(Kp*KRw:Opmb-&vԮaN3)գfBƝSL9} a,5/hkNkhVUJoh'< (8@46]-33Ew`#lhHs ݣl,6Ρ5+vz{wB.Q9Xxy,O)24`f7,2$e wh ~),nT^|ȳk LY18Hd=1S]z=׺aSa?e+*ob|TE}O޳[\]9&Dϳ)=8/buixvɊL,Cy;!D6令Ȩv \.`jҍp| T(V:Uܽ$Xmr)B;21` #_ 3cOQ⨢53lh+K 'r_yw3!梃+˾rlf[*cm.#ۄ&*~y6,VCIjQtc IuS1̜*q N۝4wsA:SWnI3SaCzT`?;kHAC(k9b88q~S'[Oi As+y ׏3?ݡ3i{9պVsj_427@>J6WZm޹6|{WdVFKDƹ^2L_Sj3Y?ae!R+Oӱbksa 9p S61/IĒ^jas ](R> VgAt5nq+ %,,t3ri7uP^|Dh_M+vO90"nuIMDݬ=e[ Cb3ֿV(#AlWؠR?Hl\f#YsШk9[b+9AbY厺$wYa&˼%> 0q'¤1޳D _,Su]mH΄4A,t3/֬4Zؕ\p[#ٯE%rz(>3T ]NTÁ"1 DUJn sc(MQhB#+$;̙TсU{ '~]3>$ԵiJ{RyR#gH8@˾ 9Z]B} "Y@h`C忌q#&{6xEF40˂d-ޚ ""q v2z 0sAcJl| e01r -;RP<F!a.߬.NZsGV#;"(M {^ "QrmBG лCJ}Z=l 4jS^ x[q F ] &.ґNrNq`0ʯ7\eVAC]K4udNڜmeF7W:A9QS!f4ybyԯXW41<K~Gp^o}k˭|<<{a>t=EDYk$z'|p.#8 =Ro[/AܒeSHikpc`vP~Yч.{a8ިC-* ϶L%kHY=*m*K6Otz-҈#_2[/ܹMdZ6&]F+bǰd5LTbvȡF3ϒ#e<"嬌[LRq߂8۞;lTJ3aN+: kZאs`*Fi I©,oI<qKyn뿽bIV WC:*hJorɡLߺ9խI$}02MXjC\[!Z*V!wO˙YϜn7eTe4gdSl >Epڜ[igY$CϷN&QըTSRbba2;xN|5֔{Yy]tgAPMFɠݺN'2!lYIh{yСY‰>|q"8>a_]Lĝ|]dXҫ?X}K`pze (1ZbQM` qD"Fa#ٓg@/[)(R$rL5e!DQIXwp(.E1@Oi`CکִYz03vv1GȍSSh*@U^waPGfj;`KP$`5xYEMAjs="?ܵD8>3Gw%ۥ0K6Go,@C+!HK -j Ij)\?3d'+Eo9 ?jXobe jJ%%pyb5p)sj ?(nâΓz> "U sWc[TcĕCJySsn^XmH4xuhlѹ#OX騃KqA@Z$lo^fzdFJ&2M(ŌlO3Ftv|'Bj,,df>)ԝ5~?> +.2 oZՕGfR6J 3mwMҭ::7,^D}La$#67E"QHSX B*:v+}@ARԆlsJ\BZ}&hgiF&\XS6BqXfg m*T!8ULmo=5G*vk{ǐ0 O"~ٞapU O!b RFarrEu+딲HdLeGDˉJE1Iوdh 6'8Zp(e#ciu*' _#6 V >僯ǰwL`|:aFzt?XOEUa'g :Y=!o Hs .nѿ87OO _2z3,X*ݤ{Apޙ62+JpHrx.9|CjV` ;:Ps[I)Iavv8WESu%@mfZ]fY;t asOM6d]]k9v>HMiq=Zy暭:#~+p-FōUɨ}R Byu)WM*!;ǒb%W)ܤ|("UjO}r%HY+|@NobF5($28(1g}s M ]7 ".rGTnۈJˋ q^5[KQ]a{iɼag}_yŸFCM-1q}׊`_57ΘIGyhk 1mNI[>,?=EFj##.}֟+?bnj ~aaiE DK뒍*Ū%J*MLqz v9yW or Z1/6őJ@o#/A?؋?,TF b̛NT\iTviO4%4-#VXD=UPޞӔW`F9gNl'u@ c`K3-K.RNsG *<֯4[Njo&21o-ԓoD2!"<^yjD {ٺ3c^lo/9X(mv܋xp}xFa$fhAev6ĭ `W5&usD*?Ձa̽_$|0䮓d&) MGq^#%Gq#$4!x^ZZb"\ ?vw)?[}u;>ZY/<>ĸ''pSYU5 !#(Jsd SMzh:TI+-8Tle`},{rS{ m=bN=ͿDZbJ֏2NL@'b,.?Zgߴ6Cz!>Xh#TE;([0ˏc$ru|h"_>j$75Yz_I5׀PZ.}e! #3uaDOQoii,~tl9PJNu%m5DII0Ӆvm?z5 4 FQ'FtjrL{}OD:d%AbS0d)6A8J-ʻ@:=.(bm}q&QTh7`…>] S *j Ԡ/|b;t˧F?Kk!N{IԽ,ztrr;6jyؘ\<=?qj 0q29Z^,}[0UVh5T[ rJ974*YoEhWz^J)O\0n(G| jqkPqaq;ϑd}ʟԟ.2\v?/~{8W-b{@ hS.]$-ս3"YBuHYj401.nc7F :Θ[DDU 3#7JQ`~/3I!߈ʣsjKKN2h2Ǵ#aVYlj%B3B9.cVaKQm0|cudf l`$U@*v/4wiGFBe*P>s|Hc_ed΄uJ3H, {-TIzn ;#՜rHs1A`.rS,P]:(źfNe kX ͜!}I\³?VD`H{Χ&cR-|c]>rr_ZFC(m|i;9M:8 ܜ Ǽ_DtJޛd9"i}`dt?C_aO1*Q U?*OrJ;7n8I/&uQI >1Ԁ*eBULN멨ڽe)9k^pןFU SXp]E\U(,5+`(huU:~7cP? 79$L锳׳G??}\2:zA<`Dv[XMR߂vay "ai 8_]!ls"(K(( A*S:Y0e _Nɢ9<k!3b5umiC6*cŋ@?nI:6y Yڟdl ,eW ɊCA=pW v8NJ8n =o'6<0WU? UJƠEM r[jxaď٣JYa0¢6,:`'Gl3A^]֣}þʿK?y==mv\0Jt' dݧ+-3IWU@MZ?(0"x%tLSSEA+"v*!1Az`Q]<$x㎒ahMfwihD{(R/ Y.*! r,4 ". VFM:!%Z_j,.jE߅;c+'bsVk("B`<^z;jsYmvϼiK~0o% t'zzKb:Mp<P(w V1 y/ex` (J3j2 ,uPղE_aI_>Vv3[)QDGٌ6d 0ǣ|ʈd#:olΩGVNVavȀ#Em|Ə=81-W{3AA'DnVߎ?ej/7 gT)R ^ums#R׎W($4>W(ZRYk&J.GMQ;`HG˕,>>3Le2f$*Gh=7X-O??K׺'O}{fMxˊFGE$xՕ8è_MTxdnR3'D)$/3>+:HC&U#ߩqPwR ܇Y$+W!9@Ko>.@ ?!D)/?/VzբZGv<{D`?c9)~nndӫ2/u@ %j2̜Kճz4, BK< í Ht{_lm u+\$*9$Xw*Įz57 )_b~AnBʈ)xEǻSp uzfv_nJWAsyd.͑|/%TֈNaZa5Mx`HtAJ*Tqu;r| `jǜLQg Aڡ<vuQ3 $=ߴ2p||&R<,gXxenp*Q޾ȐرGkFCXEh2qoB~OF4"աƭSL`zp=5G 4D[ _8Opf;?!Hvۣ:A+4Q" *|>%UuJ?{5됚ߎd~dsQ5D KЗ7z8K5ȂܔchIHa*{ VjGqYNuɠ'~,]ϼ1"R*:GEx@@֡Ӑr_摒j'p{ݺP{fC+Tпya 1ضcwM>6Z$[z鄲Dﺄ:gPR M33ٿHD'.0n#_:@^C^u_xQhǿi.S >ɬ:w/>b:]F8`9"cHӔv~GsP%1'9=B tYT~ œf'}AG.FY~&@e]l=4kt?-#rRAp#'dPnWvᎁ(disrWϳ\ τbU,+~A HZBu>lq0T9<(k랜Τ=488n =zRI6+rDlF wbA7Vvv h\Znc}e Hva}0U5<̟[ v^h4ȅKva1T| 7Ega2- ǣۙD_뜊XxL<6z-ab|'?F_oq^yHIJYbdtR|!~CK YnD GmcQP)e톶R? [7P>rv"^ZS"_e]^= `5A kƢtܜsah{Ky˸8>rKYrO$Em?pVkrl!zS DS)(TaP:X yi$[8z?Z@s*A+0hnA$y;I3 _?H҆=(^"·}% ?ߙ[MwQ]i\ &";{6XEtB7T"aJnqCu"JMHL(s,Y~"Mj" MYvς(9!2YHy_e(];qI3MPon1ç!XD)W5*(jkT:ˤW7xh5wr#c~zd7 20"0iA'r*X[D*F< Fݣ&2ˎz|HŽڻD$K2 ^euw9!_Gw2^7V"XrO{Ŧ90YMfuCIfI7:;|^ҭs=a4Cvޙ2J11bfbP jLb3~Ζ4%37h1ހ7:Su> (pqm_ ? `.LR=};N}GK|T.^\CٲY"IE8Vd9nϬtKj0v(6[В'\otd-b5&`UaI彺DWFlqK8 1E/P_Fٰ Q"H6DXTw (u:vB ނrݲ1G_S H]E[5NXMf>=`$PtD7ce1Eytsk[0tzH0;ԆDȺVտCW!ྴE g3}eRшC+CE12{%7K`H̜U+R}\|m6ziiDf'6c/aX!f6 #Ym$r$ ]7;;;uXW%܏^`xen52#ΔMXyǟn1Ƃ=xcQx"д< KZbGo5w;e"=1BWQRS]it:UG5kvJ8r4w5<#еNĬc EgOilBwתr.Sǟۦcd ~.C/E]^IW[US.!4~«~G2 򖛚 <聖]2r.`lZjSXB*`֏bl2:mnjcQ☗h.\0ʬY32ZX=tYq1ГmTٕPG;# _+&9_U*O-{rսplVkV9Sal+3DAV˷̂|]ggfCUkMb,0K:fў >tT,WEb`)@FT3`)#b4nbMEkV}'1c֊t@,(ԽJSUwI{jmn[5U/OBC+,P~. ߾pj#d..`|2C [caB421+ౌA<^ "d8ㄸtX;@\xItK{GgbO'oyZg mala9 wiW`8Nd>Q@8$~Ԑa9(C?e%# cqypޡ@8vT9.d'.41x3+ ~kQՕ.QR*[SGr|ʩ ݖf%Mjf^#knu-uR_6|E<;]gЕ>X!B*im=*2{l%Cwc<+(Tv]/}4-eB< `^W_|4- MAI,ɞqeK_3 30A?FT ,2_lcd%9|ңSb/Q@%smxYFƖ%5 /[B/.QmE:NA2'q }7ݲym1Vsk&w> w1e!cIKn7.H|ڒY!^;Vm9L`gZ2LM''DJsB:ˊ (1qRj˲5N>Kؓ'xmu,DRdR~,GA(cQwI~E=cϯa6%1IgsR̯a5ƛW{W A%[̾RN rm>_2uH+15$IkeI{ P&(F^y=G#)Wōs5x0C|<M&)zr 3BWtIL{ܩ)8.H㧻3_)ꀐgYIW_wWB#9HifX"ahG:N0A;``mCsV4mh>=i lP{^'5:v7_\vKkqp|G[tKTVc1'jp܇4d@htuBT`0/y*=X<%@? RzU<4xV˃3L1\ٮ IA,T /BgHy3mH,Qg­KaO'%73 s02LRA7}T[eVAf1/Fwm#@ȣ 'TY}мo+r"AUH2j̘7kCma2xIzw&2c,j],#R/šdo"!Tnoјۋ~awain̅(xL.frPcN4 H/~~Tf$F,y :ScXɓ\?Eg7 #B5E]92;:2=,z|+'=T[zP"&3f0D'HF7x xJ쁟K$( -=UҫiUצF?lCz`m~MŠO5>WMz A$zjr'ݬ<-I*ȵbkaYTd|-{ @$*.-<rxP (UXS`.PD}ŃK:]+ AGlhkSe'iָ9߅hA :fZl O_6gbs^\Wa| ^|چE(>ޜ4TU1H~:!˭":Tt@,Rx"ndؘ~` 3 cΈu'e}bp2'[褉vx—+ɴ4z(sh!v#vjCXPgb\Uh0G0> HҺ~Ux&Ãx7P6+_VEv*A uKj12}++ď*:9WT#|'zW2K*Ow:}9{vHp 9zM.:k9#LՍ[eE=VqIӂcdl~-#?ae+;S/e]ڸ"1@?'zlعc^r@eT@ irN{,cIH+Qء]g9Vk;z;Ց=l5_"*ޙK]'YU/Qqz%3$2xR5W$,hr^0a ktWURC_|!"=Zbn(5%R%@,p2hN%1XzY$r_ϷU^[W=ѨR&) Z)X4Pel|un^V]`m穫RON# &]uWM; M}3Ԏ_MN4"ү "z*<M4\(A̬\;ޓ7%DER7iya)iҴ 1dXBq溜 qM$YV{U|-B)5r}Xn2PTiwMQcAwDQ#^Ly!]DI?/}"n$IA?W&πa: ٪S*1P>JSOu3.Vo%(*uevXX8ZֱvkeN"+})Ya ;V`:o{YAĤ|5BQ ~R]* Xꅜ~L܋ѵIewO;n8Bɗ!O뢙k gK{ںȚ>՜(Ú0Zȥu{* "{%(ͨ9xJŒZ;pENmՓP C of)4=޳<>"&'qBa99YzSWܝqfEa"m^e750"ͫj_$.+qI .S荄: CO߮o0NN0z&n8=9ѐ_b&wtdQu0e0%Jr=%"r&s[Mҥ5n`"x$=o3z5:8JڳxHhח1Y͘Hz-"Ia•’cr38tRIʙ8d :#  -j`^ɂ-GL|dM$L&bUd=tay*>pᛎ7ЫAoY>\ WF橌kP7:PCWF6y5LÄjGH؏i3/oeo:n@X޷_I-~'rAWEK5ڄ@>^bkl(," Kyv=AYZeֈ{0!q9^ڴs$S^z~ӻO(mg1-K zX~횡Լa뎢NImnj.4t:8B3pU[8zf2@|LP[\ /G ˆ4ܙtp5[lhxjI%"Ԍm CT{3)Q{iMb‡0ѳrѴ0+d~jE_qq,ĩ:Wx!'ʕ4x U  ndb8>7g?րHЖYX5F(ﻤhJ|4S\=c{Xcg8lݙx2\P5#{.g;P҈ћD]3*MP(!1<*G#&A^5nF89*Ԭ%*ɋYiޭvmC EHsd /**A%3qu ߠ̄C1341:O3&-`Q(QF`t]04.crik} IBI1U):9mJNg ziۗU%&_# C{'0>M]KIǃ e?͟EKsy3A 䋒 jX)4ޮkўhX\O>/ЛAcV_M H N^Ynq{@xQ X-H<[lf_Eu{5T\˼wΑ#å$p`C`.i^nX,>F#T6jy/=DZ9RᕣS<0G:X5x蟱4(b*݆ws`^ m'Μrm@C^D{L=gtt7&ܕ}JW'٣"x. N΍ /2D$SC &o-Q+ڦAz5y*^[NU㻾qD6,/|Mh<V};W4DSЁmyy3 A/}AH699.'ڙj Rɘ֡AOG-b61!%Jv*6W"QTGHֲjÏ5]T@(E؆>kzI6& +QI.#DE\o1dJpUL-pahu-_">r~b^ݶ+&`>L[rsl6ICK>پ_9DlEA7#2 ݢS ^w-”I#"GLp1( MV':Xܝk(af@>zŚ6w\^=dg& cvhUq^Gu=9֤ A??a-m,$s?ꟀFLb.UAAo` 6(rpEHg+1Ru.G11? 7LD*%\?zzg@LXm+<9nbEƳQλ=4I<4> *b5>rMI,nހ|_6D}@e VJ*7&VX~-3tZ31rTg!t"\ -Gcy/ڌ*b$,v4GZ!fƅݡs$r^m>\"dm\ m <lHzcGA!RLAdQa> G4Kpv'#C%8+;Plֺ^ X:3%)8. l}s9~d2E7ef6^i-q P 2:YEgN HPKO"Œ@Qˍ` pglY%/*u Ov(\h dةb#ZI2"!*w<95@5ޅIKN(䓓+qC[/|iMdhMYʓ&"ڦ {\/_TL|g=t*TGV4jw7e}zsɼնGjڏq]^PZn1A\m#EAr+B(b RUүt{h ¤;xE' kzdȸD ٢fy0UQa!pˍy7pF&W*rp͜;n3.Hf!goW(Go*ψN>,[6Kt, xNQuBD);<1e3ƽѴ?ごH}C, uJ0O[I |1c MA"k2Gk&יL#VNE.75^k0ixdѰvB,UӐ`ЧJM:jW? P|8_tE#1R o?nU<-<"PJ'lk;=Z3 )JbT]a`j<7cyhOM3^mފIw޵e0s~}}?J:Hkc4$by 'Q2)x/^ Z"g( :52XcDuʴ\LAf#QW4":'Ae;dP:2?̧= *'iO *$Nهp~-N1$HYyO0h7ZQ-Bn#K˶Gd73ĵ2:(E ± n/'\7.]l͛a(QdXMdMbٮQˢ U |΁]j_qT.JMC~0QW''-lQ08:  T! 9.F3'FQǍ3_mC|胖sJ 'Gau"$QCN\VL!#.堚">x~1rHM7*PB+_g]}ְJC]oJvs֟GIC:[Vp W[=wUL& NRMj4^ `0qb"'zx@٩P2R,Sltaa# 9V чGг?M@^ :OB,H*Oa9,Fؼ"2W'DIjpK9f+B,.b6ֳA9:C SX8VJ,tq}g*/LG̪vPR[U@,P4@yʝl;r\0ZfnڳϞ5»?j`L!jY #`f]&sICb YeQ$! ei8-.rr ʴZΗ'^̙ : ԌKO&/@\γ,8TQd{Yc@wNJ`c>nJe!݇;r3ْ 3'0/K\w/t_"b B_ܩ24*Z5aaƆdEq+)V2 D󖰝*n1-xӟlJ$)z0jƎGXqXӯx%%?e"4_[!` +cEWQ ؼg"J &) *(dof 6C$(r V(MKunF|$f9%;UN<6YV$CmwcWW:S é&1dH2%5PTX-Rq&(P *ёR$݂U!?.{hzN&:g$'Kt}'6)7doe$G})c>1'J0h6Sa{}AO~ZMn1:'߿o2Tn9n19`5w%)!{~8À[MP8S1!u Vo}7:YGu )ޞAQjKnYy,|=SX@[7,^#֞+U{'u.Yx l}B\PwdJuV;]%j^6~o̳S]ݨ RH 28>fg-x8#XM$?ӡLz8FBbSyZCXXW:ԶFV3$/0Z #}ǚShc}WEx9Xz}L!a9.E "P#>.bE젤65$w\_^6ƹWQ8 FgElahJ]IJ_=c,&)W=RW1C5Je/0R`i)o ݙ13UɌ}0k8 G,R2/cOC/8k.wѡԾTBQlיf ɎÌ*j͸ykDߐme\zD͢|5Zjy3ecRb-@4c7XN| Ih@e?J3u䎤YZiރ]ku\T)9Pyj'ӻX& XqSA{Zj#Ҁ^YIxGŋIצV`8}l cA1 *b" 'fXԡ^f4jɔKcJSõ|yDRFs|W4+Ft⼡KEU$w u~-t4wAⶎkc#]z&ԳC D&t5P=^ I?evSFd] 0N>?ϣʵzP[V8(WVn}pgKh`C7spLь";o[%|@Jܝc*!2tIu3zѶߤlE|e gsIɟe^}i:mW:& u XIЅp9EA;R zOzap XHQ| 'T|MwhOaT?;`.u#R:T>(,a[7tX#m%˝5S=b8_9N7jw6 hi[ˆ J_WP%kne_Rxyd7+z ;S> R;zt H_=Ӛ120s2A]-ll&r#, DEs S?`>3{ "q$HjȟPJ\;C-[CPG+/l`ZH4BY^}_u㉥wMVDuJ^H⸂ W*M{%]8ZTl;Lm*З!INDq hBb/w1^Z |y|yzNȐ0O…uR'$?#Q%n^PPYgYVn: ჊ɌI_v I@IM]V: dA6 ITP"W5a3N'R6QP_D"juB_ 85PD@'_3jPT itH~VQ@"4aKbhOZ53]˺N ]+zGh.|WA面摩.fj\t@y{aMӯ÷c \Fȋm:}qӶOugF9&i@\g- $Y|&hr{e MoW5~F1?pQ)G}`5Q: #%{GwP앪JͰH[epoS˩ gt  l( <$EOȤSܟ5bkVLϑf%XMh }\ !W%0J D颊jӂ+(4QS1T-Ea D"y5;`؜>P*1]G .1D O*`rBsi]l9|E_LyHL]Y/$puÊxu!wExa)[>F^ GY_ZuP*np+2ÆdW"h(bT8T-2YWUص !J'ubԲNCz ގݡjKrG0 կ").ZbY8""pOSģ: 9A+jo O_BDlt٧쀦$v)7Al_OZֽrwO4sۃJWz(cϞ+$CH"< i,?**IL uP{U,`e)+n.Y?xTJU)0݉1hMM}@/;MN&-n_"L!ԶQj@ũVCň[&e>U^j XKv/Aܻ|/bypD}\jiyR֙r3^yxd1N}"5l<,BfZj)Z(KFnڞmWw,&4nRI9= {,%&UI[@@jM' Npy*s^Xע)A)vi?j7;¸?yљ!TG iXH7dOWO5l*n,:UZCiJ3ObkBQܛ|ؤoͽB,.a&.xn/FCy}qȬ2L zq WeX,3Ӱ3<)˪-SFtb=DH=Zܦ ;,ofw{_qM0 6a"BkfӞk ]r;fs@PCo$atj..āwǭ JLS]C@ZF, k*Y*I'gT'k;0\|B*ࣺlD\_WonF2ٮ7zCPɒaހ$$'.l݃(;nͫ߷)yCAzݙ)d:ARHbz& p LK-+i}!&o=ng\yӉhl9Mʱ$4m O|r CUr)˫ =#|‡@Orb7ȠxM`J=U[)5XUS~PPת Sy:5}mj3j:`,nh 灪`ܶ\(g5HuV$`ݥ~'PJI#:`~$ܻ(Lo ¡4b '.Id rB|q#;R ?jBRjdYxNJs#M(O6 }@(zAz"\!.~R(W&=$I&RCJ%?q" wi-zlʯ+0u`&Rxx ̿B?cSv3P&b -%a>WdGN(f"cങFw $imCeyE )'ٲ\6m%-\UZ7 h4gd=`onG,U `,0tW`d W6In W=Zn1}"gmO:#`I\TCB|{+E\qE6)GM&G]i8^'{t"s.-bȲRlid)V)m쎘Vq:뵒#J $uʢ'me=n $8e)[-(]$买Ãq'L8#3rM(H1KV.Q]ڔ ɋxVmzEf̬=p#4oE2@=BMJFB0eR:ȃcQ\o)LI,𐥏  ih|K8@oYLlqhrHv'b99|cul42#S'1.uJTٟ%iI (%;-vcZjep΍5PDNJ*xaPa)+5 >Լܱ3:J-؄IoV$$ FMxg~|lfٵOwk98[fTrz(b;Yl7<nP ӤH "O ƆڞLSZ)  R偍 3>b^Dt{Vec1Ks\8heY])T6lC]J6S6G"PF=B`OÑURޟ<z +T%y@MgEը-i&'1K)mZNJɘwdM|;d-hhBE흲yY:cZM7=[eOY|F}i 4v1d,AmF-# BCz ~-ky7|h>D=Ҙ#wTh\G<O cv 7`ƭ[x-ӗHU ~{IPMu }o0(?iaO9= V&дKd[vZ#n3GV6jTC/`Tģӽ;{j86qϗiyR*]ӯEg޻ !˷oP$ x\Qm{`$wKdAq.Vp$5 EP{qb)1 )=N4ra]ɪ౭I_FG{] Uh3BE݂DZ[' )LNMrD8t uL>MP5Q9Md}GX:7 (׉0o_hUV?J9J8_yq[o|73oS[!IA5e!D?'W9hu3(nM߈Cɲ'g+p5\w65Tl6t˔P[eĺ!/Z܅fBWftk껍 fΦoEbhv!?tybE%{Iv( aSuz ]!ǯ ^ֈ ie;+APsgubu#m;*r tNnv0²ny-@)udgU&!4@rJFq:Jip]'83d\05㲷A*t'3do%q?v態"d<[a\xӥFhϿO &JMpcvbqn]Z x\ ΗEQΡdkK]:,UpQΪj3Q\o8yUڐ|m5t @RpLޏ6_$e'hp1JAۀ#O,3k-PV#A $5Pl+~3 Z0>d8T|F9n5-Lc !J,+þ0 R{<J_OP 7CZ5ڕ|e'j: wNHΡMBՃ0&bТ=ֆ@zܺR0*0O,zJNALI-=I0vAo$]paGV,cS^aPg: NpSTb/!Ty7l}$xԫe!\:Aל^:"՞lk^9@ 3' N9X?,GR~hDzӻ"-C%>֧+59+O#6t˱[$ Z1[DQE} c;ƂI"N6Mq'`80õor?X LlxMHay+yYo੭RoպX3Be[WilwÐ-̄fDMA~uI]>ydºGx ӎѠ0pKLR3 qs+]ևrٝrTԡBnO̅_^eC& t5AM` Ϸ|8ȷ:b{%/u8͑x@8'q^YDKCpZV&>BUrĐbmkZDʩFߌH;%IFJNȿCk&^| # ^,c8;٨wڣԉLQRU#A*Q'0vJ;|"niwxE2BC쵧ϥt ';#큹`tkW佳tI5l/So{Єw3`JN͗c4״sSTưky+5zt笔q˭obUgtX/RJիp2zme ䷡Np*:5>MXxixeò@]̑)Nc.[+Wr YHOmc&n~ĬWGw wA;R`B΍x/Qy1$(li:]v$. ]A*i`?Ê\ 9S2ID47*Kzt{28P1,o+bfЫ?; RӠQ7fžEM'k|9`fψ|V|RL?Ya(X}d^g6)3O lST;2[_-=vĻUeWQҧQ-j݂.VڈW{R']&3Q)ʥʡAـ0rsu {Qp5v=!eFФ)?ZSGiy#Or"i] ]dM>X#$ϲ,MIQɫ-k d Drz[k A6G>L/B93&#V~JH9B!#ɧS}֊996K-LbB_hDŽd22*WOkaӐu28[4;T4A}Xxίt%UΑ@w QD@{W/iPnv1h,XN0y ~ycc <%JxFfS4Yو~?j;<-s"Dk„5 q 'ᎺfPi&T=q&qCG/ EN5Kn05Z-m:MYW=.hTͬ\;})Psgќ5ؑvf~ .ÔGr7>zeғi)'ku曍ZbP PL=%<Ğr3=J۔l ||#Ƃ2"b|,G'fg2iF@5VBX]>b=x0>h𑥼4l~ NO9ӭ3>)Gf(*S?>ú;<\I+v.N k la,6Ù2EyVl1y4}cUiyG {S 0p;`ƥK{lKst2(q`S$|G0I[ϱV}.[b>~?)|87=@ p棄>;Eh7[?Qک_'A}T:NQhK*--هZ_!z/Fqr޲{|'齯1=/MxmEQqMotܰk4PRwYC,5y򄙂!r=RRY>UmcYI8(3FOa2^2vCqb!PW;% P9GRPYӹ@ELq|&bYqvGc WQKMBܛuىC8UԃU)moKpjr4R`X`\q(pF\WN" J}}'m7?%R̊ΙS`$ӔRl y^$iizxBm] l؋.5l}'уѡ2m=]3%(ߊfx/֊)݀ ðSm#@09|cDvits\;@X Pʸn.]$ 15_WF3!|10wY[îs\㽧'SK>! Unj& x1qafw =q1T6AĕIx/ȿ M(}|Ap:ñQf`۩s{H`i;UR)N~>(Ǐ ~{jhK/9DrO5ؖ=teo" (;9f _w=ߚ2PAm^ϐ$ƣhxF [bjfXr> ٞ{.ߔZW"8źo/c| whaCIn+VVbf& n@QKe5j1,%y'qYsFpص0~=%3l73#%ez)#8uO~RqC*a }VulKzefʈ!C`R#L΀0l朙㕻c/9ڝ( O#0tb2WۃOBajzĀe%AAXnJ#Yh9@d~ qOeȅGu@98h]x}^y";IcL7k&X-(o@0{"7OGD) +sd&B!R~ j%,0W֠?[:+S]+~u8?ajnFzޕWIBoLO6gEGQ&VEBALtJ {RH9 71OxRGxق ?nuO@?/?tOot2Wsڰ3f<^ҍ9% % 9B?!Rg-C10fB㥰g:! ;{0zO4*W*hB_0=Ø177[!(zRSSp)p 1^uVX[P{}Oal]on?h#Q;BJ̎H9^ 4oCcF[l9=(K}Pb\WʘtܴN%G78̀%LzJi)s/$DnO| h&ò*SY"HX@ehҙ,hakׂ?¼DX] ׂɏJblQ1:6p]e֪.-S\︅S[?B-1>2LQQ!ZQoYM,`R$He\w2l<O+2 aFa\t#eNosbg՛ojиB}h`P-3ZnTN-2yly ϰO3+bև a)}Rָ_!\DUdyR>͂K_UXA3:zōûǚ7W1}z`8#/< 6?o}l6&954N>RԱ؏ ''箖2!ڪc>4[H(GO"9Z S)rzK3zW+x~[ CoM){gGaV]/ğUދD9 ~q#1}9~!Bhxhzgl|ϓL"LfT7H~Y{MQL3^ڨ 4\ɎN6Z= "&#O1leR3?qmo?3 &YG"󚍙"zhNҲߥoLG~`:=vcEMkg*Z!-?]Nqf庞4O)DB͑jDmݮc̦U¢Y@LwH7JҒ4E*Y`!bwRT&;!bUBx8xR|lA &2 &yG^6k,KL]S2J5{=yi] >量-Ԣ'͈}GRt?czj,%(d]}ryJ2#pNܩicZ ~fÝQjrVRkS\Œ;$DmzV&z1*$pW= b(T=~U#ŁF"GIAhhm'x\̔2jU,`Pt!vER2r[mĞhc( ՇG5,uS8E.woe[#1͢I(®ĚuڪnJԻ(4Wtn\w!`^ Pf JfLfZ IQ%,78h}1$pBT(<2` qvٯg3]y"ir Pc[J{RTrgVҟjZ\E۲0c`q+'>.F :8$FD1ctLRX\{G,7_?P>yNIr Å`dxiقx%kf]ǣW^>Ҝ-g;{h ֑sis?²Qyi=̛ov8-Y[^ts` S0MykfQ:QڼbmC*Q{Α5E"פ+w2J{r=[ 'FAӟ7U S]ՐHCH %xMEd/It x6`Lz 7sX0o'фg2c)>;u2 ƀ,(u I dJSaSK$؍ ш vDF6 auvRӺh\5aDQ1(c@tWWtg,|b.,X6 5|"j=qc&՚@yc‘W GH{hn>Ea!Qpjxt5Xm-!T' {m:ӕ "NoNj{x mC8e=8u;`˶\%)\VJc'!@#J'76(wҚG.&u8P*c*@UdRԍ,")SKPX'ڬ{>8m#i5LZ=,X$XSF@ ]K]S.=DҼw@jΩ{Tb@5AhRѥt♇90GW?%Y, [jP?мCV m^B wD3u睗3frDs1yI }4KSp+mdihZw~h,(G%J?*v@`" XȊC LISixO T^ U7 W%N=Am˲N?`|׽fV} IGo=aӣ=$.yh+DJcF;^( Lۦ)s{ng*2s|Vf" s^OVt$Zt*qPm?F\k#ƆDTSh+!X8V=ģͅ_4R F}_CN*zN( C]o?X̨Aq04Jfn/tS$k JMe- $T&×yB.ݙЕP0[H턔ّw#1]? ފD1 _kČh Ŵ8桠9:F"Y3]S9t#H|{dw610FLu>eLHG)qI ox#^|0g+ vf&_f}ۏcߥjRfxο؟1!Cm}:w|BSip+^:^ݸH)'ANݚ1+6Q+@kD y]b淯$ x+nE $ ܕ \[~q7w2xTV{Xϙ<⮭V--YԱB]fM}9/=a?1zf@l*I !S`X3vUs"::HȐ99"Pf[k\O-m^,#YnPA(aNFzLǏ%ﵮpvBZA,xygFR1\4A+a-h^7b4+:tgGE"yv-v !,ETǟeQc q#d m46̴ϐI۵I3b"]i<}V ԣ4 WUW+_hAbHh/tƲTR=ьkDD9O>\Grё0pćUVv`:tgvr7U8NzEUe/4$SB`32A짖~1>Hj$՝\ta<&bȴghz&{':>)Pv4 J3P(&C늀vۄ_\iv_ܻz٥g@lhKhZ tyCdfϝ:{#[J]|d$ÜN[ҳ>?$w&rەPsW~ys%ٓS@WtТͻ W,i0R,uvv XxEFiċq9=dM|*cʣ 2.bcOhGn;:e!3씕"gwCO|eM^K jꅲR`M2)q<8\} ?=ٛTYtn>/$:&',mCk$ <[Q^^t1 #oQmc.ͭ2esA C#W{gE̓?[#*&4G~Gt#q KBѧ"oGk6p+mLζ H,tsr9K}ɷhb h@1x=2EɁKtTUL| =OMNcQVN[bK8[)7׵B%aϓh@heM|=ʲE/TrOРo?m${4(uL>`Ħ'gFtMjKc:ؖC0*K64yM6PTs͍QCB:}빔U#CAxu@82m§'r:8c)'sl.IQ֒x1{U;5bc/+3RUˬ XR]is#8. 3v-o/|*TΆrO׊?4D}(SA!M{ؐ.<OwkJkǶp֓Ԝ.ty4YY쬒 R*~F_:gvֳJJ _jYlc@\!$^ }Hrk Anqpx8cPilHq&sk!}a_GhM̵%>0N/2tB&n.,SxK桉u_' `ÿ;6&.pܫ;eE馜.1'Υgr5dnyTrԻ3Y&ߡ-?dՂݓS T V}ORVqg0sц@1qR0nZ}4!]fOd\M+Үs*gXq H;zV+JPH+?Js.w@2I3XFEv o%q (wnK\8E4[嗢"ObTi.|$P;Ozu! `ÛJg5OfeWUb$i0ZkbnY$xi cXl]\qW@^"IuWrEɃA؋`R4C o.2ԗP`ђ);]$,E/. -H Yd됤TPwHEwRBPtQbϊs~JbKE"| t89*ōI"дQa/K/9->sxOnBԲd'F>?1s6_2B44LC0>x5 EzUք4/]**_ϯLGdK'umH2hz|="7٧Z";WNtB/?b$K;vY&H_l!Ջ X+V7sbL]}z alҏTV|J24* }M׍Ǝ6S޳}R2aУ?4'`*eR:jqA۠W hVЊfYb|99fIWθVJϟ5OɪQ(L.@il9tCϯ p/0g+[[>o䭅} ?LHs: T_4~-w&T;qx/ZqJ)H2*JV;1?DMdb=]"~8rox;CYLGPyuVOJT"]90pUx Ddn^xr?8X=;>"xE NƨrBv>44rN*v qB֚KmIká-WUdٮ?WDtlx"_H~ࡱIp\<̼\\5_+ ()3y\22b3d":Κ9%$;n@ceMkg^y+2#"lL"L; ТCvS%E(D_#u-E s[ɤr’N.xlQ;#8֜\^ry,xеo-yſƕ&2tK+az^fy͹i0FDKhPcDQ`|ZJĺ[̀ FH{ky#,Y\Csde"iBxvǮބQ jb(J7U;J݅y]=BUj/e#hɣ@ cDMg,"UkbN~EJߜ1x7[ᕠϗjH]ńp!ך#F"jh]6vә~x^Ħ8.CDtg|e %-bI4ơ(_Dmyu\kQ5Aύ#]h-P .m#U}ү:" ܀eYNMO Y~g[@u!7*%gXZ)(3 rz] l/68Gy.m7[lVvU yh>bh%pJ `PߝaII4Xn2vHq|fȃIJr;@k(pXkn-x/RShd{8D{CLFrM.*`JU)o 6㯮:Jj8TX4঴0!PC@ *o6q+jK5! H;QHܛ;rkFR;+SҌ}LHʽ ji]oYɠo}Uބfo:+MNL6Ro"Iܚ=/U3zwvf.{ [8 V,ilLܞ,cCL*Q1]>z WFJ@p7M`OBiqf xnℛӢ%]ka?PKs 6\7k=EN~?ֺpc 28eW}lfSïW3mseT _6/i^ i=>P^(,C `q! ]J /[*^ DV8P1.~$%3I2PŸBjdK_sA=N݂YgZo 0_,X;kI.y@/!Q,k DgnѰo% 73jH4@5Qն~Ԋ'#d{B-DX&n1.=Rfщ1|E+* "&6͎&ץ`m x6NJ3H=1b@}W Wi8xf]13ZeZQz,hBkXԺ{O0:^ARДJ :!bqsT^`Va=w+'l~ 3a4%}+{4^]8/Xz b &s FmY!l߄ ~G9>zy<2*^5@KHDLSGW[Ip≲4Ԕzi{WbJAuwEl>BhB8#ķ4yl'2h6tZ5zAGdn*J^x.ZK*' vTj}qY3;}&0cZlAoJuhORwGv،:̲%>v@ ;ga~8*" ^=kw4/C-͈ϻdȠ>h+v=G?j3ﹷs?BJ 6mW)ǷM-,W"k0΢ngճO|@ D7,sO.8[SN䴜/LZj2AUk̸n;&2=_ж`rWGi䧋w埾яO:wp,N?d>X'!;cȌCAPBlR+73 udfn©7\z?C5xlqfRM'ovH?[F'' ܥsRh$>C}>7hqMU a9X1!NNZ6-ٜ="C:铜Sdr NsFsaCQ OaLC_T Rnv Gҙ3ډdS'PJ;_wV }?!Wth4xBlxl7>OT$Y,TP<> Nye5YT7"3.P~l䜭1MISk [9\\ RZ9,M{ j4 U9HNyYBVrÑ茁13Hw̨7a@UcًKӕ[0'4:.S45rn9@-E*Z>N(< 5ܠebJ{ yCܠ@t}tYM$B]ȫ)ӧ-XCҗ#"h߀hߠοB>N w8c5:fOnT:CjX]6X Ҷf-HmSfOpG)Y!&Z+`fÏP@gwW.[#nqhZ9ë}Isq}@ dkP?Yy+fٚ׷H" ,ۥB91Y8} =E??~7-NN#xq; b9f{s7iEGfF]k~.G\j]e[][^\ *{~h|bGqmLSz]INНuiwp FGۊN5Pڷ}z06A)EqыIN`X'0) }\G] {7іKJt25OG^1rqMiU9pb*wØ]랧 ֚K4I qB9Gra:IfĞٳ k ~u(w5r|81$S%<ݶOvBM&ՀINs iN-#oe%,(׀ǨtcCۓ ڀ[,;Wa|aI` )%$z<%r+j.5uGP7z oZ: њdy2xWY%P@)0K^k%@VTJwygnz^Ԟw.1X]8qi&3|=p[~uh~'DZvL"H:LEn(L2=\`/(>oQet-t Gj(_ RށCijs|4[H,]geRa^rޣg%bAT*jPE!q |}l=TK 41R:\D[,sS.3uVȺ.NEc{왐H7Oء#!M7lG*IXo\P 0$y Δ@Sq2`OAjdIZ㬒JT O1k"!{(r&FހN}]z'r<&;E LfB[ji(?Bd~Z4BMvRpgWBi4&H6kg$QvO3Y]^qo޻`OD~4i[c)bLJt und2:NK|l$ɰ77TbuƢ };\Vb,16DGc+,u 6#mm,ḃȼ~ 8]ұ o2o;&6`H1JՀXmVBt )0)58{᪒\_('.vTV=Qn. u*Rt:N`v_`stj,Nn~) d ${1t[S:1_W#zˑ7zvMAث2&H%vo"wSgV(܁:zmF]> k}.O Nu0B4Ȯpq1Rʞ,Uu~`5lL*dbnZn HUi 2' wG[ҌtL۲InܛEQ@omĎC*_b /YgX~u(enH<v \Gg2G[TLé8MP)o2{f4FR/E{D1^iH2\@O^R߃Y|D/}1=.4"K3tgM-*GZl%RUzݭ7Z.z*O#^F_8oe1H>R@qYppixXPRza,|r~Zm/GGſV%-֡IKcn -Mm[܊>B D~w v3ļQZ!*OBh `tbl%ExG槯x|u1fH:g>vY)瞼:& ! (TXy w8?mk©B5& PUNxD%ZҼA ei!Kp3O98YAFް]E65(BO{gI9bΦֱ Ѫ5ҎГXtڷ=s?E:IuB5+ź7̨si cw؂;sEm^_ϑ| $.ml ƚANXf'v+ T2q"9Dŏ)L2v5N yOn_]#lB"?b-d+oRy;t'v7tSٷr~o=[]jE=%΄-w@[ܖzZkudkcCl`'lgaD2c;pבT6ܝk6 q,w[c7J]#: n sx,);*,ۨV⎊̀Ac^nPVey&ztp)m|Vh9o2erPɥA;<1%{Z,ȖnVcْ4Y D:QV:"vh d״\>#;qX .ـ#@G9n擏ÄYYAC_;d<{ii*~ү ApXw~{IxK'T8qr`1"&IbQUߌ?_RtYAb>< MGܖIdxP^+4"A%ᛦ#rbq]4/Y0DjmAVA7 zDPQU0hL6w5y/32p}.-`Piy6tVo?$I\HyZ諟W إp]a* u߆Pm`FIp+4+ Y-n=8W>n3 IdfBIq&9bB2r}|U.kMmD8DZM_2ͭ(C&rIK*u5`J1|P@8F 8 kpykG>bTK[ɹ-ΩrÃ"nUDb_l^oJd5bVF@K$ 1+(;hN~`31M`2WU rkdxMð TUS2҉( g:@[FFg|`V}t,|{.یZDiT֏͖eRԳרqkII>lTCGdkFE)k:2"}LS$mFJg#_E/Sq'wD y[!)Xee{}:,{)=.P/0<ެ3< Lon s x)"ĺ;ܵGv'6 x S{K%&3Q?.XaxNKkȿa&CA{ΪXuTt=:^s;:z 4G3EzdM 9bf5cmH:e Nڤ6AM[/?~H;["\VA-f!Ondn`} fzW5̋i!FZ*)'»+S:s}Y/3Yd[-qWOT!B']?quݽTo?%Ƴ*>;]hIn/ɰ^"ɚĨ~e taw5/\U?ڏژ0͜R(kRH]}h -q(yeŘ%0sgym5MGr<>jjmgYŦ3}{p6qIojm@V>=,Ŏ=ÕCnsI|4n@Ň#x/.tbW3i-*Iֶ >WVQйw]'a_08K:( r^{#WPY$Cmm#p"鸩Ň.Ks{~1s`;3)Db`^kf٭Ig!euktXUΤӚ;vf-dAf`gG* 3XD ˚IUgv Y݆9s^L+ɽ.xBYÓ퇍+~=\g˂X1/|~a 0CЇn:[&Y PΗӐ Ҍ>INpTO@l &PA~ ڐ[y{XL+|p,t6{7G9_RndžC y$Ó!a l1J5d W2:i Ԓ'&8N.P r_Ef|H^.(6DKƀ`HˊeHad}l;BY֖"МG/"#f9bO zxq}YHQ!oQ}CUD'#JLN];og䫠l&іRhƳLeQ7~xs7QC 0[>#ԧت?-jû.F, ӚZīI,W4N]:;%1~gGsC?7b&9(s˱'3#Gn*/ 5Z/SjTXa׀0ւ?@E.9 Qi5Zp8K%Us.`7]` 4\oq5HtRG@[eu\{2 UnqJJpuv~/.2-ɚA^9z9DZ#ђOpˆд?u{-2g0E ~=X% >釾sPOUDr]j ,0.ߦ^Z`ɲDZrDAfnG%м=3ToۏDֹd =q_DPb*hnMv剿\=>֌FcҺ2yYiQ?lv R+.a+>yl/\{e+n^VZ|mGfi.RB% +32^cH E)ML~#M0S1G -66#?C V"t{VրaJXosFH- W ȱFzxIӖZCN/)!)=x9 nug' ~f")m3׬ Cg$#{ִ+84ڋOf;ct$MA/u[* sfN־U C_=mD?ۜ ?- ]kxރc'z5PcvN?0JƑ$Y~2B,PӬ ]ԟ9>҉L#W3jW_£dlSm'F5̽“Z!W1U i)kM`2ZUl?6I[|&^JvvxmT3}Uqs'{P_=lKNX1 4_fvG[}EA:[$ǿF;|z[51Y~;Sy`@,d'<#pr%'p`ujD4}@ LYSa.;V^^`O!r+ِ{U KQuC!X{WOA!Y@~-(Tf㾕BR=#1A?K,֞B[ iiKl#’4̔EGEGB0r:B08p&1>o9|ŹjrHJ&=P<Ҍ7C{DXKLp(饣$OAF3&g{xjoVnYSHgYqjf5ǾԾInj>U" it>XiO1!cfd0ٔ'=.H14`q)s^tl/f4c'YȽyi+"a<2XrrWƒ[q!""yfG^2{y# j-MmГl7,5Y}OЀiZE-8JT#Ղx8f'W?Lcb|X.1Ͽ*D -XM5'3n<cY$VƬM5%uuHPcs'& ꞀK3m# ~J5B;ofy:k$0-Z\ajgmcwLĢ\[PĿD|v6NO# )(+|e:X#}Ya 0ǒH03CShu\z,Gf!),{iDz}yblb #{Y]oF܄_ۈ6]ꁅfX-1ZX%*kXw)3"͞LiBIdG&eOo$=Y#{.H%@+ł;a+Ey[E:O0T'&/q*_kPE+|Q$'ǽܰ VwRPΦEIt.Ё*o-*5t7tM4ȨM_%墹jVE.?]򄙄6 w"e!ϱQ !Y}["݉KÿEMc}L.xB=EFeIx|uc_ s4m "sc'걑xH[ zT3aNJ=dtf9Re23-1|Byl$l7+U@5ʺޒ>{+G,hKI~9Z*ДPy&Rs:Oq귁fRKtv/+C!ɮ8OҀbnpYS%DtB8fդ]*Gozkx碉B)Ii]T55Cۿ`}ğкOw<ޛɽ{X@W"h萤QQ9+VOdkUFgHFH^E '26%8}.Cq g6 9ZI(h(BE!f7HdJW?.7e Ԇ>ȊN\< dG+@D{tRФ]4{״12).cAWt!rek)_Z*v <3V{Uz~\=ڑKKC eg_qcAd?a-m?ޜN־HOV@X=WLEk; Hz$̝qY;8JlU9Z͂x 9&$V:& ģ[LAi Ŷ@c2?FBudP@ӑ{Y\^ Vu 8?Ɲ d{ (V"R.y]=jt3o~9W&i0⋚Y6nkqS>_ۅf/(GZـTADEbQP&zjw/8pDqDz.'Dc|^lBd};Psgo:_dC|(R[!X[+2 etQo:6e;t!9S/ j SfϞ P*Id8D)[cLÓĬ) ֹAnw9~Uw/܂E`QBԩB6'J:dz` ,Zau"~z0"q.\&2R8*٥PYN6vx5jbmNݜ_fs13w\ Iz_HNoR&iW0dzyڳ#ci7Jf22q+GJCΣU>$͘i׽BV? r>,(d#Z2 8þJ/PXQ 4ZПG0_*>ilIGQS*1 ePQяq-6&,|^6yCo4:KUs) 2pָֆgQl%\Xa+߷r_Ou1>Xl 'Zb2Q_ik!6Hlؑ C7ZI9RL0FK=g겶eKh6zcƤH? ">7jJ7g)RQ!~7|Є$F)_ _ OWƒժ6]Fwi~J(s[/!`9lsyȚaœ?WC?T(Vkzq/o)Q2'c=篇zP >f\}ɴVBJĴojN86 NwDv}5tH˻Ӌ\Q' AVoApa &'!ss4Pe4"7uE%۹3UvK1hvT#xGJ"blv4:w"XyWKۢs=!~bOc_+^?}kKHNm*֕ϝl+YLfҍMT*^\=>N˖d@N^f=`Da}DgO4Qpe*݄dN}ďP@I{x$`e[[wd8fo=zr{zLv\]Ri~Mln0@ߚ?tsj߄?xj ( j{+T9_sx8(oSSHyZzǿ^백*'9g[]+w+|`XC",i/o#Ӗ=6Q|ܗhp 1p]<_R:@+% BfH; E 3B&|EG!}Br/-ךqJ1#~SiAzd܎e]b޴ʹޖmqccOK/h(RmI9rD]]{CVj7Z\dm"NNJvHnHQ .rn_{C`LrڼݣO!7vfZFIFWOLPY=M 6aDPH y{/x"KR Cy-2asYZ!q:#,cYF/+ *[V|C)5wYx A-)p8]L[ 4'?^pJu 1ڝ):q.[eF:$?϶l)֙Ӌ)i 7u M槿\ Ɂן|x0J):xBR760벣0A QDi KSo8~-(s2g:uα3qeÀ~쁅DB7^GXg_*niV2#j}z$*|sC ?1;K gpycH?St7lԱC۰MƢL12:֕i}}ObZ3$? ;$d܌-ˉp#~S3̛8;Ӂ=<'7(N$ <jR} 'Yb_DSG/]%)̋&<TF d %W%}J!'[~6؄<fLޑtKS8'`U\<ϼ7ЁaOM )!mn<4 Oi {>RؕZ!)&,BwMEà!꘮?Rn@wJh?)a-kX>Y{Є(AX&YwU.\fmH~Ab ?Kʎ7U{TѮQ]OWҷY]*p:Ыo9BƂIsSPo`u딹Ò6pm 9~Gnz{VFagTv7H-$o>R_nH;?.eG$/|5 E> `r<5`[.EvsKf,u4 /h5^*zd+jjqm*m:f\ًg[:S5HCuN/$ԇBƣWo26 ,D?V_7 '&Ҍ9\g/#LV` VGVe6K`f ?CMrCgQQm%KO:.F ;@4Y.#^y%%3uR}!KMS;`BیEvRAdF!~'< N`1(tJKrKKF[:VWk{(Y]lLp(t. %[Q/ XK&@E0y.fqr%&yR$D.Ne<Ɖ%vkƨ箷)K*cBag&.Ǣ8 s= ,PxW&j .H$2!BrRɷ<rFZm;@^~ i0gM &\_-ܷ*I(LP~4$޷$9PF!8,=tGE9{9Z -  ]8Ml^x1ԴSe~y1o整ꇳM%x1A<#8փLUk岚 ]R2g'&Cl{fNn8䛠Hk17$Cdα5|GVA(>~^봧c-aPtsfsŭhW2T˲mרMV2|>Z'?S/zAuXJ&TQŽ=a^{NZ[@̇a ]hbw}8?5G:iz(CDڀ_mYSCJ#I<qu7[//98{yZbGK(Bܻdr!e1o;HDda<@KGx]z z<{I`JqdtG9vtf ][0J1έC""b㢱̌x"v@۟u]Mm%P{ QDM'"Z(cOWn QKV' fl~mSLܚ\|U O-ɼ]v ey>"!%?{3#vnLK5 7% t 'ʓj!N Hus栠A6E) ?.CD!kPWp/=^[ʁ^ C7 i ܝ2ifl2y←3)h%36 UVtN [+gw=Ǟ=9s*B*&/sЖσ]{W#0|+?1V9>H^R @!ɠvSnAO\H-BJ}3z8"CS/pÁEAD(oBTEp?:)|QJB§hU)D(˽Ao9{3%NW:vxjI5(wF_JR.V>b3 :?W+dKH _]k]3RCBۉш񽳐~5B1PU v!Y31Xq}dEݦEx2?O3ί)fnOg; ~ˎrW`]b U-( ZI.1WY7Eh$:$!S/V铟;FТ\*49Q`pT$DI0& jGd P/RKM:oy1ܜtB5 g`:ް}/Tboqma؋<476f~Af([dZEh<#5ce㞧tb$ܮk$<8^_xFanUX,$]ZJƐ"=#6+b#S6jfu~%]W&?i~xTw jvCyq/rB;@}sڮ5[)'AZ~ WFy꼫tYjgA-7i +eЁ^oPК6S(1:}IQŚږOhB+B.~#eCDE%HG2׿`[Rښ}UBQ_mS)qR #ҬGyZl !h[vFqE%B{QsQe 2FoD&#d\nPʼlڙ5 hTWw&J> A 2F~I{|I1?hV %EH>4HO]gI7 +Q]aP:*b VhζPu\T!!ˆOr'|ДzPE6eϡ>sVfT{ћ]Ay,~MB$$qqo 3QUj I5Ahɚb?E ;'I&)ё54X[/M;qoН0Ò2=ZaIz8qNA< F(rp6y9G1ŌVu|˵x׽iﲮ0e~AiC ٴ)#0{w  ezyNT&ii.l !f =hP`e st=aAR.Һˆy4#Ș)iT<=Dʋ+X ~[T1%QFG%%39/~sN-/ʐ|Lnf*Xd5$=rAj :e *5 >`}e}XF5;97]D(<,iRw[zrid&2s|$4apmX/TobA}M)x@1_E Tc/frE-$Nx\v R"6/*66;cI; 덻aHL u4h" ,Hd phh$DV~amL۳!!kVaĜ};q{}%}n_ĵ2&@*f%l*]a=nE  +:XMr${mgT~y)J%+a3Պ@zk1Pq7t7Pb<,gq!3jpAmRhEg.íR[9'(:BIC@NlWٱ "}.AWp LBИ/">r=o6'}n';},q_: a?wq&0leoS e2.zv~DXGHCK!30R ʧ#dW~F=;PEEgFhRK@)a}B} H]V; GJ"pAqP,"}i{5΂|9+kɅ3qvg"Þ B=].T#RL/R Ղ콘_v /߱ϤS LضS9yh:.-V*D$Yo)[|ӃDv$)jF?~)ΤE0[ߵD|/h;3R((I={alk=. $ۢNwp?]-Ct 6vuX~n`olDjw((x|KQXNlJs-yTͶ(W9꾀p8>io{c&':y|u婒̈́Qg_)- Xy[$_Qx.Ϗ>V0k[&ċjͬaF,6cճ/]0"j徇 )i?u0rj̦|GDxlZHmr y#*:q.1j*uf\O,lknkFyW!jkIqrC?)P8g:Gо\o̴؞t[õ#\gUQpi]^^62"E) g- t;^2 hij2_/Ck UM HeÞ؜ eVaf\7e!HLfFDjҖG ]|Xo|N4cBɂЗsXPJ:D{[y H@/ $YDTD~M wWW D 9B/Ua}A"akT_l*HfHÜI $OoqxV=t|bN>bFɹ/,@;l>-5lf0 Këoe9k$ζ9ѽa|,֞[bm|d9kX yb1UmyHR/J86kݻU@&%F`*o9߇#)myߤL %x;H¡0pxd0c;9ɩ qJ9'dߚ.F!Q4i- 7Co]k4gQv9;6%Re'yj9E€g-b k'{18Aѧu[|9;^7#Y ?稆6 !O;&] 0=QMFvuMs0V>電@6D;@Sqla3 %+B=Ժȴu`-X3Wqb2Gɼ[4ғQbz5_BꭤOo!}b ӞV2}ߵ*QkپxFyћgF8qq`n(6/v0+)\RwK'd_B@f|F:=2*2kPI 'x9ne~9~ ZQ:g:Y]{M-u{Tv_ lK d jxmm%ν6ۋ|I S8cuv'rMpB[DŇ6ࢦZг+b TUKNc#~?Opՙ̼>zV×}@2M?d,IJt%'˷Tuw$GCmlSڴHmY K/%o瓖Ы& m^ YM}K䥕}tGT4Gtڜ\Wrjс 77 f : Ԩcߥ.۟Q#Q_n:wʍX7h,O*='ͤ*}'տPOýd T jk"6DrWí\y;FWޱPP*w0 'ehO8jg~d ЭйNeu1:lXd_IMU <{K9 .*Nڵ*:1}.G±<c:>_ q52kv>5TU|I+t9gw>рK,cD!OBbLcrxב,nxwخUBR6b$tlӍ^; S@~OZM'+x=+=RIRQX|Ӳ6܆%]#o8S5U7zsDYtAR^)=: <3]~<= 8F:c-k2:A_L^YI+ƶ |?M#b-"쀵:/;htk?ΤU7󊣠 |w-iFHYkDnfK{ATLQ7Y'H)Is6 ̡Л8n (Zr8P*Xk0㉌GV_no8g~ x +X"{cvcE~n9,ÊZaы-a/<-zʹq=rG*?xU {aO:a~hJqsvY!i,dGVI@·fTC>3)}'hA~łFǒڥ']~g>WCn/E|^-r: FZ벐JH0u2XȿP1^.hٱW@H$F;mK3@($bruoył3pCys;5یdfF~w:{Kğqᝨ*R gnaZJBKש%l`aj/-+!!;\ B JS6ߐ2%5:`)UswM}>ESK ZK ۈ#\?< u~eb؄ 4ۉiF4 _ SF1L`Ije?E;FݦBoH4"Uvg[<3op9MC߆\;žwx_:[] o6]Um'LA-9)VL!>Z}Ƹa|diI?ʼ@ݞQpUTT< .ą@[! g T0ݙsL^| DgZ#|] ͺ{I.δ:zJ vZsB*HAȚ`+#(`]wOs6#ẙGɇ/0_dl=j=띀ً"/x^ >oIFIBUt4 \Cɀm6^<ֽIYпF-9hC}iȼ>w1)6ȏ9 ~@!7(}L,Yw@BxI)vIJYS=(E4>< Δ؈StxPq@s_G!GZE5.3`IH>F`rNk;P|CD(!Ɨa{"ia*EXro[f(fCr.~!t@#}"17?,0i^t"L7«̓^y0RFZq0Йh3d&st>(4u@z|B٢[*:9[ƛS$ d!Vf&_ XʾQ1uh~HD,^~V@!)ί(jxe# m8 oAp)"E$<方#KDR$// g/cdt^3ؕr?OqDj!^;{$4=&𰔅"ݞ[=|y3F :нtp(H>PF!%aW˛6vÊY_;_XnЄeϋu|c EĝLK4PC?h֬ ѥ<=R2MzB =AƲ?7$$3́ $32h5+iLg*Fgp R"A"/xjY2"I`]//MCH"2◲:[6~te'usџUφV~'JH<آT DZzO8lk=5sq鯊cQ[Uj2=;%D~Kyz26Z8s3}2X/JXS< =^pf5CԈ2~j9't]x9 m _@FM{L3`2d~l] 󭛭dG UYPޱôud6ӠBwmKs?S:.$_e k zV`wbͤ? 1S'C+V||锢4gv]fHm5b/tL3pLtv0UoؼM"9.&=R:3w6Z{?FGǗ3+f eCPq)z dcϘN݋IuT!Y3&GԔ&[b+rVV'B6Hf\ ~bZ|E9X,ࣜ EeÚ1zE1΢ 4 JLQDj-d?0# ka ǘs/aV]C:G+SR ^8y Km5ohP@^̓!Uq?Yyf$*bE[ -Aqɰ 1UD* RP: h .?1dT3kCLM*d̅# U,F`4,FXZ?\zq'CT>[>ㆻt0=6j:U8ӛx\4@8 W6M<:lOTВFzHLuoX Oz9tzRd=w( ڃKٳ4F7)#ݽ[Ij0$ OY'@U}xVD1bXQ~/F!esJؐ،;s'93'f(/8@I55 ꬖc ]Xq ϴ`J$omB`M#=-|bE8u-^KBevDV-Ttۉe:Ra mŒ(S 9JpQ2fHiҳ=D#_)y2qK5ZziS՜wD5r'kΐɜܝ!2Ql?`5eP6p h=-9LZ:q*ڨe1r<\OӀ Q4>us'N+yeIRȏB,e"Ԟ̅m!U*>XLP>u"9iJ\˔ʋ/φERO\~RNL"QINֺ7J2'_?'KeReiL,7hmݕ(bO/](K~RH[xahv lE3Ih+1*'`D :>}iʬ KN -vH°1_,#0t1!~ |*prv5>V%jnJ|n^W{}JNSK|5m\TN4]hr=B/ݬYMOˈ(e~v6+!eK\n OUi:k' З-!#( c&`ŽԸ+EQgX%W(͹jjA64i/ I㷮r7kb'ȉ 9h'39xDx0Ϊ<|9 QYg>|߂z>Q&p?݋hIp]]`?i3ʷ[/h>6˵Q(C0V869nkJ|]%H.ӻtA3Q`,1j uf̌#&dꬓA^12v*_|'=Ѽ o7GHU2xEdm57_*+=MȬ|R<2R2Q {P ۅW=#8z/>st}6>;rs%0ElT1@!XV=Лu,@}h3K12`ɌHG+@NÁ@2*G2nWr=Ț^AaWyĽ3e 9&M_._#({tjzG6$.m^囍ۙ#?y(ߵ= =Ԋz44XZGg΋wSB.:K^h:Яd]4Wԙj %:!D 9esOqǞkN` t'nJB ܽ oqbi OGWvn6mn#:BĽsaIR#9\{H|xYZ/phkѸ1f|h3G;-t LnZм]AQ[^uQEOWB->즃oR.gSP0IGQ/^ڼ\N2bfTH,#]Sq GQn+ՏͿ1?MrH#4#x ˿zyJ>\LqV"iW Z $zDŽ< M}IQzP1yQqGԒ~f("YOJMEƷSiDhp΄Z;Ӝ L^wWi8])P<(AG)W,ZgW"2&[ aȐjn\Pf& =L ^(;| {eXA,H} PvyD<>uDlf#eH/rp;{ڹ[x⑥NXFd|0 vz^xzEp,6PxR K#.ZhPzY66І} ;b/*~zLK=vxf.8ƸvO;> VS_8tr f#F4ǯq?ȧ_JzRk]-JïXՙx9F^Rc_0ػtoWD x=oAϓ4xhDȠWAү >鵅V9o4Kj x{m,è e{ia֧FaI DCDEsV1K+ 8ozy YZ