From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH for-4.6] tools/hotplug: Add an initscript to start "xl devd" in a driver domain Date: Wed, 15 Jul 2015 16:25:05 +0100 Message-ID: <55A67B51.5030309@eu.citrix.com> References: <1436890874.11153.14.camel@citrix.com> <1436958450-14336-1-git-send-email-ian.campbell@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1436958450-14336-1-git-send-email-ian.campbell@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Campbell , ian.jackson@eu.citrix.com, wei.liu2@citrix.com Cc: Konrad Rzeszutek Wilk , =?UTF-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org T24gMDcvMTUvMjAxNSAxMjowNyBQTSwgSWFuIENhbXBiZWxsIHdyb3RlOgo+IFRoZSByZW1vdmFs IG9mIHRoZSB1ZGV2IHJ1bGVzIGhpZ2hsaWdodGVkIHRoYXQgYWx0aG91Z2ggaXQgaGFzIGJlZW4K PiByZXBsYWNlZCBieSAieGwgZGV2ZCIgdGhlcmUgaXNuJ3QgYW4gaW5pdHNjcmlwdCB0byByZXBs YWNlIGl0Lgo+IAo+IFRvIGVuYWJsZSB0aGlzIGFkZCBhIC0tcGlkZmlsZSBvcHRpb24gdG8geGwg ZGV2ZC4KPiAKPiBUZXN0ZWQgb24gTGludXggYnkgcnVubmluZyB0aGUgc2NyaXB0IGluIGRvbTAg YW5kIGNoZWNraW5nIHRoZSBkYWVtb24KPiB3YXMgc3RhcnRlZC9zdG9wcGVkLCBidXQgbm90IGlu IGFuIGFjdHVhbCBkcml2ZXIgZG9tYWluIGVudmlyb25tZW50Cj4gc2luY2UgSSBkb24ndCBoYXZl IG9uZSBjb252ZW5pZW50bHkgYXZhaWxhYmxlLiBJIGFsc28gY2hlY2tlZCB0aGF0Cj4gcnVubmlu ZyB3aXRob3V0IHRoZSAtLXBpZGZpbGUgb3B0aW9uIHN0aWxsIHdvcmtzLgo+IAo+IFNjcmlwdHMg bWFpbmx5IGNyaWJiZWQgZnJvbSB0aGUgeGVuY29tbW9ucyBmb3IgZWFjaCBwbGF0Zm9ybS4KPiAK PiBTaWduZWQtb2ZmLWJ5OiBJYW4gQ2FtcGJlbGwgPGlhbi5jYW1wYmVsbEBjaXRyaXguY29tPgo+ IENjOiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KPiBDYzogS29ucmFk IFJ6ZXN6dXRlayBXaWxrIDxrb25yYWRAZGFybm9rLm9yZz4KPiBDYzogR2VvcmdlIER1bmxhcCA8 Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgoKTG9va3MgT0sgdG8gbWU6CgpBY2tlZC1ieTog R2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgoKPiAtLS0KPiBGb3Ig NC42OiBJIHRoaW5rIGhhdmluZyByZW1vdmVkIHRoZSB1ZGV2IHJ1bGVzIHdlIG91Z2h0IHRvIGlu Y2x1ZGUKPiB0aGlzLCBpdCdzIGJhc2ljYWxseSB6ZXJvIHJpc2sgdG8gbm9ybWFsIG9wZXJhdGlv bi4KPiAKPiBOb3RoaW5nIHNlZW1zIHRvIHN0YXJ0IHhsIGRldmQgZm9yIGRvbWFpbiAwIGluICpC U0QsIG5vciBpcyB4ZW5iYWNrZW5kCj4gc3RhcnRlZC4gSXMgdGhhdCBjb3JyZWN0Pwo+IC0tLQo+ ICAuZ2l0aWdub3JlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArKwo+ ICB0b29scy9jb25maWd1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArLQo+ ICB0b29scy9jb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArKwo+ ICB0b29scy9ob3RwbHVnL0ZyZWVCU0QvTWFrZWZpbGUgICAgICAgICAgICAgICAgfCAgMiArLQo+ ICB0b29scy9ob3RwbHVnL0ZyZWVCU0QvcmMuZC94ZW5kcml2ZXJkb21haW4uaW4gfCA0OCArKysr KysrKysrKysrKysrKwo+ICB0b29scy9ob3RwbHVnL0xpbnV4L01ha2VmaWxlICAgICAgICAgICAg ICAgICAgfCAgMyArKwo+ICB0b29scy9ob3RwbHVnL0xpbnV4L2luaXQuZC94ZW5kcml2ZXJkb21h aW4uaW4gfCA3NyArKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgdG9vbHMvaG90cGx1Zy9O ZXRCU0QvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgdG9vbHMvaG90cGx1Zy9O ZXRCU0QvcmMuZC94ZW5kcml2ZXJkb21haW4uaW4gIHwgNDkgKysrKysrKysrKysrKysrKysKPiAg dG9vbHMvbGlieGwveGxfY21kaW1wbC5jICAgICAgICAgICAgICAgICAgICAgIHwgNDIgKysrKysr KysrKysrKy0tCj4gIHRvb2xzL2xpYnhsL3hsX2NtZHRhYmxlLmMgICAgICAgICAgICAgICAgICAg ICB8ICAzICstCj4gIDExIGZpbGVzIGNoYW5nZWQsIDIyOSBpbnNlcnRpb25zKCspLCA4IGRlbGV0 aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvaG90cGx1Zy9GcmVlQlNEL3JjLmQv eGVuZHJpdmVyZG9tYWluLmluCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9ob3RwbHVnL0xp bnV4L2luaXQuZC94ZW5kcml2ZXJkb21haW4uaW4KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xz L2hvdHBsdWcvTmV0QlNEL3JjLmQveGVuZHJpdmVyZG9tYWluLmluCj4gCj4gZGlmZiAtLWdpdCBh Ly5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCj4gaW5kZXggM2Y0MmRlZC4uYmFiNjdlNyAxMDA2NDQK PiAtLS0gYS8uZ2l0aWdub3JlCj4gKysrIGIvLmdpdGlnbm9yZQo+IEBAIC0xMzMsMTAgKzEzMywx MiBAQCB0b29scy9mbGFzay91dGlscy9mbGFzay1zZXQtYm9vbAo+ICB0b29scy9mbGFzay91dGls cy9mbGFzay1sYWJlbC1wY2kKPiAgdG9vbHMvaG90cGx1Zy9jb21tb24vaG90cGx1Z3BhdGguc2gK PiAgdG9vbHMvaG90cGx1Zy9GcmVlQlNEL3JjLmQveGVuY29tbW9ucwo+ICt0b29scy9ob3RwbHVn L0ZyZWVCU0QvcmMuZC94ZW5kcml2ZXJkb21haW4KPiAgdG9vbHMvaG90cGx1Zy9MaW51eC9pbml0 LmQvc3lzY29uZmlnLnhlbmNvbW1vbnMKPiAgdG9vbHMvaG90cGx1Zy9MaW51eC9pbml0LmQveGVu LXdhdGNoZG9nCj4gIHRvb2xzL2hvdHBsdWcvTGludXgvaW5pdC5kL3hlbmNvbW1vbnMKPiAgdG9v bHMvaG90cGx1Zy9MaW51eC9pbml0LmQveGVuZG9tYWlucwo+ICt0b29scy9ob3RwbHVnL0xpbnV4 L2luaXQuZC94ZW5kcml2ZXJkb21haW4KPiAgdG9vbHMvaG90cGx1Zy9MaW51eC9zeXN0ZW1kLyou Y29uZgo+ICB0b29scy9ob3RwbHVnL0xpbnV4L3N5c3RlbWQvKi5tb3VudAo+ICB0b29scy9ob3Rw bHVnL0xpbnV4L3N5c3RlbWQvKi5zb2NrZXQKPiBAQCAtMTQ2LDYgKzE0OCw3IEBAIHRvb2xzL2hv dHBsdWcvTGludXgveGVuLWJhY2tlbmQucnVsZXMKPiAgdG9vbHMvaG90cGx1Zy9MaW51eC94ZW4t aG90cGx1Zy1jb21tb24uc2gKPiAgdG9vbHMvaG90cGx1Zy9MaW51eC94ZW5kb21haW5zCj4gIHRv b2xzL2hvdHBsdWcvTmV0QlNEL3JjLmQveGVuY29tbW9ucwo+ICt0b29scy9ob3RwbHVnL05ldEJT RC9yYy5kL3hlbmRyaXZlcmRvbWFpbgo+ICB0b29scy9pbmNsdWRlL3hlbi8qCj4gIHRvb2xzL2lu Y2x1ZGUveGVuLXhzbS8qCj4gIHRvb2xzL2luY2x1ZGUveGVuLWZvcmVpZ24vKi4oY3xofHNpemUp Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2NvbmZpZ3VyZSBiL3Rvb2xzL2NvbmZpZ3VyZQo+IGluZGV4 IDUxMzhmM2QuLmQ5MGRiNDcgMTAwNzU1Cj4gLS0tIGEvdG9vbHMvY29uZmlndXJlCj4gKysrIGIv dG9vbHMvY29uZmlndXJlCj4gQEAgLTI0MDMsNyArMjQwMyw3IEBAIGFjX2NvbXBpbGVyX2dudT0k YWNfY3ZfY19jb21waWxlcl9nbnUKPiAgCj4gIAo+ICAKPiAtYWNfY29uZmlnX2ZpbGVzPSIkYWNf Y29uZmlnX2ZpbGVzIC4uL2NvbmZpZy9Ub29scy5tayBob3RwbHVnL0ZyZWVCU0QvcmMuZC94ZW5j b21tb25zIGhvdHBsdWcvTGludXgvaW5pdC5kL3N5c2NvbmZpZy54ZW5jb21tb25zIGhvdHBsdWcv TGludXgvaW5pdC5kL3hlbi13YXRjaGRvZyBob3RwbHVnL0xpbnV4L2luaXQuZC94ZW5jb21tb25z IGhvdHBsdWcvTGludXgvaW5pdC5kL3hlbmRvbWFpbnMgaG90cGx1Zy9MaW51eC92aWYtc2V0dXAg aG90cGx1Zy9MaW51eC94ZW4taG90cGx1Zy1jb21tb24uc2ggaG90cGx1Zy9MaW51eC94ZW5kb21h aW5zIGhvdHBsdWcvTmV0QlNEL3JjLmQveGVuY29tbW9ucyBsaWJ4bC94ZW5saWdodC5wYy5pbiBs aWJ4bC94bHV0aWwucGMuaW4iCj4gK2FjX2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyAu Li9jb25maWcvVG9vbHMubWsgaG90cGx1Zy9GcmVlQlNEL3JjLmQveGVuY29tbW9ucyBob3RwbHVn L0ZyZWVCU0QvcmMuZC94ZW5kcml2ZXJkb21haW4gaG90cGx1Zy9MaW51eC9pbml0LmQvc3lzY29u ZmlnLnhlbmNvbW1vbnMgaG90cGx1Zy9MaW51eC9pbml0LmQveGVuLXdhdGNoZG9nIGhvdHBsdWcv TGludXgvaW5pdC5kL3hlbmNvbW1vbnMgaG90cGx1Zy9MaW51eC9pbml0LmQveGVuZG9tYWlucyBo b3RwbHVnL0xpbnV4L2luaXQuZC94ZW5kcml2ZXJkb21haW4gaG90cGx1Zy9MaW51eC92aWYtc2V0 dXAgaG90cGx1Zy9MaW51eC94ZW4taG90cGx1Zy1jb21tb24uc2ggaG90cGx1Zy9MaW51eC94ZW5k b21haW5zIGhvdHBsdWcvTmV0QlNEL3JjLmQveGVuY29tbW9ucyBob3RwbHVnL05ldEJTRC9yYy5k L3hlbmRyaXZlcmRvbWFpbiBsaWJ4bC94ZW5saWdodC5wYy5pbiBsaWJ4bC94bHV0aWwucGMuaW4i Cj4gIAo+ICBhY19jb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIGNvbmZpZy5oIgo+ ICAKPiBAQCAtMTAwNDUsMTQgKzEwMDQ1LDE3IEBAIGRvCj4gICAgY2FzZSAkYWNfY29uZmlnX3Rh cmdldCBpbgo+ICAgICAgIi4uL2NvbmZpZy9Ub29scy5tayIpIENPTkZJR19GSUxFUz0iJENPTkZJ R19GSUxFUyAuLi9jb25maWcvVG9vbHMubWsiIDs7Cj4gICAgICAiaG90cGx1Zy9GcmVlQlNEL3Jj LmQveGVuY29tbW9ucyIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBob3RwbHVnL0ZyZWVC U0QvcmMuZC94ZW5jb21tb25zIiA7Owo+ICsgICAgImhvdHBsdWcvRnJlZUJTRC9yYy5kL3hlbmRy aXZlcmRvbWFpbiIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBob3RwbHVnL0ZyZWVCU0Qv cmMuZC94ZW5kcml2ZXJkb21haW4iIDs7Cj4gICAgICAiaG90cGx1Zy9MaW51eC9pbml0LmQvc3lz Y29uZmlnLnhlbmNvbW1vbnMiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgaG90cGx1Zy9M aW51eC9pbml0LmQvc3lzY29uZmlnLnhlbmNvbW1vbnMiIDs7Cj4gICAgICAiaG90cGx1Zy9MaW51 eC9pbml0LmQveGVuLXdhdGNoZG9nIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGhvdHBs dWcvTGludXgvaW5pdC5kL3hlbi13YXRjaGRvZyIgOzsKPiAgICAgICJob3RwbHVnL0xpbnV4L2lu aXQuZC94ZW5jb21tb25zIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGhvdHBsdWcvTGlu dXgvaW5pdC5kL3hlbmNvbW1vbnMiIDs7Cj4gICAgICAiaG90cGx1Zy9MaW51eC9pbml0LmQveGVu ZG9tYWlucyIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBob3RwbHVnL0xpbnV4L2luaXQu ZC94ZW5kb21haW5zIiA7Owo+ICsgICAgImhvdHBsdWcvTGludXgvaW5pdC5kL3hlbmRyaXZlcmRv bWFpbiIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBob3RwbHVnL0xpbnV4L2luaXQuZC94 ZW5kcml2ZXJkb21haW4iIDs7Cj4gICAgICAiaG90cGx1Zy9MaW51eC92aWYtc2V0dXAiKSBDT05G SUdfRklMRVM9IiRDT05GSUdfRklMRVMgaG90cGx1Zy9MaW51eC92aWYtc2V0dXAiIDs7Cj4gICAg ICAiaG90cGx1Zy9MaW51eC94ZW4taG90cGx1Zy1jb21tb24uc2giKSBDT05GSUdfRklMRVM9IiRD T05GSUdfRklMRVMgaG90cGx1Zy9MaW51eC94ZW4taG90cGx1Zy1jb21tb24uc2giIDs7Cj4gICAg ICAiaG90cGx1Zy9MaW51eC94ZW5kb21haW5zIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVT IGhvdHBsdWcvTGludXgveGVuZG9tYWlucyIgOzsKPiAgICAgICJob3RwbHVnL05ldEJTRC9yYy5k L3hlbmNvbW1vbnMiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgaG90cGx1Zy9OZXRCU0Qv cmMuZC94ZW5jb21tb25zIiA7Owo+ICsgICAgImhvdHBsdWcvTmV0QlNEL3JjLmQveGVuZHJpdmVy ZG9tYWluIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGhvdHBsdWcvTmV0QlNEL3JjLmQv eGVuZHJpdmVyZG9tYWluIiA7Owo+ICAgICAgImxpYnhsL3hlbmxpZ2h0LnBjLmluIikgQ09ORklH X0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGxpYnhsL3hlbmxpZ2h0LnBjLmluIiA7Owo+ICAgICAgImxp YnhsL3hsdXRpbC5wYy5pbiIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBsaWJ4bC94bHV0 aWwucGMuaW4iIDs7Cj4gICAgICAiY29uZmlnLmgiKSBDT05GSUdfSEVBREVSUz0iJENPTkZJR19I RUFERVJTIGNvbmZpZy5oIiA7Owo+IGRpZmYgLS1naXQgYS90b29scy9jb25maWd1cmUuYWMgYi90 b29scy9jb25maWd1cmUuYWMKPiBpbmRleCA4YmZkZmNiLi5mNmE3OWMyIDEwMDY0NAo+IC0tLSBh L3Rvb2xzL2NvbmZpZ3VyZS5hYwo+ICsrKyBiL3Rvb2xzL2NvbmZpZ3VyZS5hYwo+IEBAIC04LDE0 ICs4LDE3IEBAIEFDX0NPTkZJR19TUkNESVIoW2xpYnhsL2xpYnhsLmNdKQo+ICBBQ19DT05GSUdf RklMRVMoWwo+ICAuLi9jb25maWcvVG9vbHMubWsKPiAgaG90cGx1Zy9GcmVlQlNEL3JjLmQveGVu Y29tbW9ucwo+ICtob3RwbHVnL0ZyZWVCU0QvcmMuZC94ZW5kcml2ZXJkb21haW4KPiAgaG90cGx1 Zy9MaW51eC9pbml0LmQvc3lzY29uZmlnLnhlbmNvbW1vbnMKPiAgaG90cGx1Zy9MaW51eC9pbml0 LmQveGVuLXdhdGNoZG9nCj4gIGhvdHBsdWcvTGludXgvaW5pdC5kL3hlbmNvbW1vbnMKPiAgaG90 cGx1Zy9MaW51eC9pbml0LmQveGVuZG9tYWlucwo+ICtob3RwbHVnL0xpbnV4L2luaXQuZC94ZW5k cml2ZXJkb21haW4KPiAgaG90cGx1Zy9MaW51eC92aWYtc2V0dXAKPiAgaG90cGx1Zy9MaW51eC94 ZW4taG90cGx1Zy1jb21tb24uc2gKPiAgaG90cGx1Zy9MaW51eC94ZW5kb21haW5zCj4gIGhvdHBs dWcvTmV0QlNEL3JjLmQveGVuY29tbW9ucwo+ICtob3RwbHVnL05ldEJTRC9yYy5kL3hlbmRyaXZl cmRvbWFpbgo+ICBsaWJ4bC94ZW5saWdodC5wYy5pbgo+ICBsaWJ4bC94bHV0aWwucGMuaW4KPiAg XSkKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvaG90cGx1Zy9GcmVlQlNEL01ha2VmaWxlIGIvdG9vbHMv aG90cGx1Zy9GcmVlQlNEL01ha2VmaWxlCj4gaW5kZXggOGRmYzkwYS4uMTBmY2U0ZiAxMDA2NDQK PiAtLS0gYS90b29scy9ob3RwbHVnL0ZyZWVCU0QvTWFrZWZpbGUKPiArKysgYi90b29scy9ob3Rw bHVnL0ZyZWVCU0QvTWFrZWZpbGUKPiBAQCAtNiw3ICs2LDcgQEAgWEVOX1NDUklQVFMgPSB2aWYt YnJpZGdlCj4gIAo+ICBYRU5fU0NSSVBUX0RBVEEgPQo+ICAKPiAtWEVOX1JDRF9QUk9HID0gcmMu ZC94ZW5jb21tb25zCj4gK1hFTl9SQ0RfUFJPRyA9IHJjLmQveGVuY29tbW9ucyByYy5kL3hlbmRy aXZlcmRvbWFpbgo+ICAKPiAgLlBIT05ZOiBhbGwKPiAgYWxsOgo+IGRpZmYgLS1naXQgYS90b29s cy9ob3RwbHVnL0ZyZWVCU0QvcmMuZC94ZW5kcml2ZXJkb21haW4uaW4gYi90b29scy9ob3RwbHVn L0ZyZWVCU0QvcmMuZC94ZW5kcml2ZXJkb21haW4uaW4KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ IGluZGV4IDAwMDAwMDAuLjI1ZTNlZGQKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvdG9vbHMvaG90 cGx1Zy9GcmVlQlNEL3JjLmQveGVuZHJpdmVyZG9tYWluLmluCj4gQEAgLTAsMCArMSw0OCBAQAo+ ICsjIS9iaW4vc2gKPiArIwo+ICsjIFBST1ZJREU6IHhlbmRyaXZlcmRvbWFpbgo+ICsjIFJFUVVJ UkU6IERBRU1PTgo+ICsjCj4gKyMgU2hvdWxkIGJlIHJ1biBpbiBhIGRyaXZlciBkb21haW4sIGJ1 dCBub3QgaW4gZG9tYWluIDAuCj4gKwo+ICsuIC9ldGMvcmMuc3Vicgo+ICsKPiArLiAvZXRjL3hl bi9zY3JpcHRzL2hvdHBsdWdwYXRoLnNoCj4gKwo+ICtMRF9MSUJSQVJZX1BBVEg9IiR7bGliZGly fSIKPiArZXhwb3J0IExEX0xJQlJBUllfUEFUSAo+ICsKPiArbmFtZT0ieGVuZHJpdmVyZG9tYWlu Igo+ICtzdGFydF9wcmVjbWQ9InhlbmRyaXZlcmRvbWFpbl9wcmVjbWQiCj4gK3N0YXJ0X2NtZD0i eGVuZHJpdmVyZG9tYWluX3N0YXJ0Y21kIgo+ICtzdG9wX2NtZD0ieGVuZHJpdmVyZG9tYWluX3N0 b3AiCj4gK2V4dHJhX2NvbW1hbmRzPSIiCj4gKwo+ICtYTERFVkRfUElERklMRT0iL3Zhci9ydW4v eGxkZXZkLnBpZCIKPiArCj4gK3hlbmRyaXZlcmRvbWFpbl9wcmVjbWQoKQo+ICt7Cj4gKwk6Cj4g K30KPiArCj4gK3hlbmRyaXZlcmRvbWFpbl9zdGFydGNtZCgpCj4gK3sKPiArCXByaW50ZiAiU3Rh cnRpbmcgeGVuc2VydmljZXM6IHhsIGRldmQuIgo+ICsKPiArCSR7c2JpbmRpcn0veGwgZGV2ZCAt LXBpZGZpbGU9JFhMREVWRF9QSURGSUxFICR7WExERVZEX0FSR1N9Cj4gKwo+ICsJcHJpbnRmICJc biIKPiArfQo+ICsKPiAreGVuZHJpdmVyZG9tYWluX3N0b3AoKQo+ICt7Cj4gKwlwcmludGYgIlN0 b3BwaW5nIHhsIGRldmQuXG4iCj4gKwo+ICsJcmNfcGlkPSQoY2hlY2tfcGlkZmlsZSAke1hMREVW RF9QSURGSUxFfSAke3NiaW5kaXJ9L3hsKQo+ICsKPiArCWtpbGwgLSR7c2lnX3N0b3A6LVRFUk19 ICRyY19waWRzCj4gKwl3YWl0X2Zvcl9waWRzICRyY19waWRzCj4gK30KPiArCj4gK2xvYWRfcmNf Y29uZmlnICRuYW1lCj4gK3J1bl9yY19jb21tYW5kICIkMSIKPiBkaWZmIC0tZ2l0IGEvdG9vbHMv aG90cGx1Zy9MaW51eC9NYWtlZmlsZSBiL3Rvb2xzL2hvdHBsdWcvTGludXgvTWFrZWZpbGUKPiBp bmRleCBiYzhlZTVlLi42ZTEwMTE4IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2hvdHBsdWcvTGludXgv TWFrZWZpbGUKPiArKysgYi90b29scy9ob3RwbHVnL0xpbnV4L01ha2VmaWxlCj4gQEAgLTksNiAr OSw4IEBAIFhFTkRPTUFJTlNfU1lTQ09ORklHID0gaW5pdC5kL3N5c2NvbmZpZy54ZW5kb21haW5z Cj4gIFhFTkNPTU1PTlNfSU5JVEQgPSBpbml0LmQveGVuY29tbW9ucwo+ICBYRU5DT01NT05TX1NZ U0NPTkZJRyA9IGluaXQuZC9zeXNjb25maWcueGVuY29tbW9ucwo+ICAKPiArWEVORFJJVkVSRE9N QUlOX0lOSVREID0gaW5pdC5kL3hlbmRyaXZlcmRvbWFpbgo+ICsKPiAgIyBYZW4gc2NyaXB0IGRp ciBhbmQgc2NyaXB0cyB0byBnbyB0aGVyZS4KPiAgWEVOX1NDUklQVFMgPSB2aWYtYnJpZGdlCj4g IFhFTl9TQ1JJUFRTICs9IHZpZi1yb3V0ZQo+IEBAIC01Myw2ICs1NSw3IEBAIGluc3RhbGwtaW5p dGQ6Cj4gIAkkKElOU1RBTExfREFUQSkgJChYRU5ET01BSU5TX1NZU0NPTkZJRykgJChERVNURElS KSQoU1lTQ09ORklHX0RJUikveGVuZG9tYWlucwo+ICAJJChJTlNUQUxMX1BST0cpICQoWEVOQ09N TU9OU19JTklURCkgJChERVNURElSKSQoSU5JVERfRElSKQo+ICAJJChJTlNUQUxMX0RBVEEpICQo WEVOQ09NTU9OU19TWVNDT05GSUcpICQoREVTVERJUikkKFNZU0NPTkZJR19ESVIpL3hlbmNvbW1v bnMKPiArCSQoSU5TVEFMTF9QUk9HKSAkKFhFTkRSSVZFUkRPTUFJTl9JTklURCkgJChERVNURElS KSQoSU5JVERfRElSKQo+ICAJJChJTlNUQUxMX1BST0cpIGluaXQuZC94ZW4td2F0Y2hkb2cgJChE RVNURElSKSQoSU5JVERfRElSKQo+ICAKPiAgLlBIT05ZOiBpbnN0YWxsLXNjcmlwdHMKPiBkaWZm IC0tZ2l0IGEvdG9vbHMvaG90cGx1Zy9MaW51eC9pbml0LmQveGVuZHJpdmVyZG9tYWluLmluIGIv dG9vbHMvaG90cGx1Zy9MaW51eC9pbml0LmQveGVuZHJpdmVyZG9tYWluLmluCj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi4yZWExMTEzCj4gLS0tIC9kZXYvbnVsbAo+ICsr KyBiL3Rvb2xzL2hvdHBsdWcvTGludXgvaW5pdC5kL3hlbmRyaXZlcmRvbWFpbi5pbgo+IEBAIC0w LDAgKzEsNzcgQEAKPiArCj4gKyMhL2Jpbi9iYXNoCj4gKyMKPiArIyB4ZW5kcml2ZXJkb21haW4g ICAgU2NyaXB0IHRvIHN0YXJ0IHNlcnZpY2VzIG5lZWRlZCBpbiBhIFhlbiBkcml2ZXIgZG9tYWlu Cj4gKyMKPiArIyBOT1RFOiBUaGlzIGluaXRzY3JpcHQgaXMgbm90IG5lZWRlZCBvbiBkb20wLgo+ ICsKPiArIyBjaGtjb25maWc6IDIzNDUgNzAgMTAKPiArIyBkZXNjcmlwdGlvbjogU3RhcnRzIGFu ZCBzdG9wcyB4ZW4gZHJpdmVyIGRvbWFpbiBkYWVtb24KPiArIyMjIEJFR0lOIElOSVQgSU5GTwo+ ICsjIFByb3ZpZGVzOiAgICAgICAgICB4ZW5kZXZkCj4gKyMgUmVxdWlyZWQtU3RhcnQ6ICAgICRz eXNsb2cgJHJlbW90ZV9mcwo+ICsjIFNob3VsZC1TdGFydDoKPiArIyBSZXF1aXJlZC1TdG9wOiAg ICAgJHN5c2xvZyAkcmVtb3RlX2ZzCj4gKyMgU2hvdWxkLVN0b3A6Cj4gKyMgRGVmYXVsdC1TdGFy dDogICAgIDIgMyA1Cj4gKyMgRGVmYXVsdC1TdG9wOiAgICAgIDAgMSA2Cj4gKyMgU2hvcnQtRGVz Y3JpcHRpb246IFN0YXJ0L3N0b3AgeGVuIGRyaXZlciBkb21haW4gZGFlbW9uCj4gKyMgRGVzY3Jp cHRpb246ICAgICAgIFN0YXJ0cyBhbmQgc3RvcHMgdGhlIGRhZW1vbnMgbmVlZWRlZCBmb3IgYSB4 ZW4gZHJpdmVyIGRvbWFpbgo+ICsjIyMgRU5EIElOSVQgSU5GTwo+ICsKPiArLiBAWEVOX1NDUklQ VF9ESVJAL2hvdHBsdWdwYXRoLnNoCj4gKwo+ICt4ZW5kcml2ZXJkb21haW5fY29uZmlnPUBDT05G SUdfRElSQC9AQ09ORklHX0xFQUZfRElSQAo+ICsKPiArdGVzdCAtZiAkeGVuZHJpdmVyZG9tYWlu X2NvbmZpZy94ZW5kcml2ZXJkb21haW4gJiYgLiAkeGVuZHJpdmVyZG9tYWluX2NvbmZpZy94ZW5k cml2ZXJkb21haW4KPiArCj4gK1hMREVWRF9QSURGSUxFPS92YXIvcnVuL3hsZGV2ZC5waWQKPiAr Cj4gKyMgbm90IHJ1bm5pbmcgaW4gWGVuIGRvbTAgb3IgZG9tVQo+ICtpZiAhIHRlc3QgLWQgL3By b2MveGVuIDsgdGhlbgo+ICsJZXhpdCAwCj4gK2ZpCj4gKwo+ICsjIG1vdW50IHhlbmZzIGluIGRv bTAgb3IgZG9tVSB3aXRoIGEgcHZfb3BzIGtlcm5lbAo+ICtpZiB0ZXN0ICJ4JDEiID0geHN0YXJ0 ICYmIFwKPiArICAgISB0ZXN0IC1mIC9wcm9jL3hlbi9jYXBhYmlsaXRpZXMgJiYgXAo+ICsgICAh IGdyZXAgJ154ZW5mcyAnIC9wcm9jL21vdW50cyA+L2Rldi9udWxsOwo+ICt0aGVuCj4gKwltb3Vu dCAtdCB4ZW5mcyB4ZW5mcyAvcHJvYy94ZW4KPiArZmkKPiArCj4gK2RvX3N0YXJ0ICgpIHsKPiAr CWVjaG8gU3RhcnRpbmcgeGwgZGV2ZC4uLgo+ICsJJHtzYmluZGlyfS94bCBkZXZkIC0tcGlkZmls ZT0kWExERVZEX1BJREZJTEUgJFhMREVWRF9BUkdTCj4gK30KPiArZG9fc3RvcCAoKSB7Cj4gKyAg ICAgICAgZWNobyBTdG9wcGluZyB4bCBkZXZkLi4uCj4gKwlpZiByZWFkIDI+L2Rldi9udWxsIDwk WExERVZEX1BJREZJTEUgcGlkOyB0aGVuCj4gKwkJa2lsbCAkcGlkCj4gKwkJd2hpbGUga2lsbCAt OSAkcGlkID4vZGV2L251bGwgMj4mMTsgZG8gc2xlZXAgMC4xOyBkb25lCj4gKwkJcm0gLWYgJFhM REVWRF9QSURGSUxFCj4gKwlmaQo+ICt9Cj4gKwo+ICtjYXNlICIkMSIgaW4KPiArICBzdGFydCkK PiArCWRvX3N0YXJ0Cj4gKwk7Owo+ICsgIHN0b3ApCj4gKwlkb19zdG9wCj4gKwk7Owo+ICsgIHJl bG9hZCkKPiArCWVjaG8gPiYyICdSZWxvYWQgbm90IGF2YWlsYWJsZTsgdXNlIGZvcmNlLXJlbG9h ZCc7IGV4aXQgMQo+ICsJOzsKPiArICBmb3JjZS1yZWxvYWR8cmVzdGFydCkKPiArICAgICAgICBk b19zdG9wCj4gKwlkb19zdGFydAo+ICsJOzsKPiArICAqKQo+ICsJIyBkbyBub3QgYWR2ZXJ0aXNl IHVucmVhc29uYWJsZSBjb21tYW5kcyB0aGF0IHRoZXJlIGlzIG5vIHJlYXNvbgo+ICsJIyB0byB1 c2Ugd2l0aCB0aGlzIGRldmljZQo+ICsJZWNobyAkIlVzYWdlOiAkMCB7c3RhcnR8c3RvcHxyZXN0 YXJ0fGZvcmNlLXJlbG9hZH0iCj4gKwlleGl0IDEKPiArZXNhYwo+ICsKPiArZXhpdCAkPwo+IGRp ZmYgLS1naXQgYS90b29scy9ob3RwbHVnL05ldEJTRC9NYWtlZmlsZSBiL3Rvb2xzL2hvdHBsdWcv TmV0QlNEL01ha2VmaWxlCj4gaW5kZXggNGU2MDllMy4uZDAxYWFiZiAxMDA2NDQKPiAtLS0gYS90 b29scy9ob3RwbHVnL05ldEJTRC9NYWtlZmlsZQo+ICsrKyBiL3Rvb2xzL2hvdHBsdWcvTmV0QlNE L01ha2VmaWxlCj4gQEAgLTgsNyArOCw3IEBAIFhFTl9TQ1JJUFRTICs9IHZpZi1icmlkZ2UKPiAg WEVOX1NDUklQVFMgKz0gdmlmLWlwCj4gIAo+ICBYRU5fU0NSSVBUX0RBVEEgPQo+IC1YRU5fUkNE X1BST0cgPSByYy5kL3hlbmNvbW1vbnMgcmMuZC94ZW5kb21haW5zIHJjLmQveGVuLXdhdGNoZG9n Cj4gK1hFTl9SQ0RfUFJPRyA9IHJjLmQveGVuY29tbW9ucyByYy5kL3hlbmRvbWFpbnMgcmMuZC94 ZW4td2F0Y2hkb2cgcmMuZC94ZW5kcml2ZXJkb21haW4KPiAgCj4gIC5QSE9OWTogYWxsCj4gIGFs bDoKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvaG90cGx1Zy9OZXRCU0QvcmMuZC94ZW5kcml2ZXJkb21h aW4uaW4gYi90b29scy9ob3RwbHVnL05ldEJTRC9yYy5kL3hlbmRyaXZlcmRvbWFpbi5pbgo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uNTA2MmE3MQo+IC0tLSAvZGV2L251 bGwKPiArKysgYi90b29scy9ob3RwbHVnL05ldEJTRC9yYy5kL3hlbmRyaXZlcmRvbWFpbi5pbgo+ IEBAIC0wLDAgKzEsNDkgQEAKPiArIyEvYmluL3NoCj4gKyMKPiArIyBQUk9WSURFOiB4ZW5kcml2 ZXJkb21haW4KPiArIyBSRVFVSVJFOiBEQUVNT04KPiArIwo+ICsjIFNob3VsZCBiZSBydW4gaW4g YSBkcml2ZXIgZG9tYWluLCBidXQgbm90IGluIGRvbWFpbiAwLgo+ICsKPiArLiAvZXRjL3JjLnN1 YnIKPiArCj4gK0RJUj0kKGRpcm5hbWUgIiQwIikKPiArLiAiJHtESVJ9L3hlbi1ob3RwbHVncGF0 aC5zaCIKPiArCj4gK0xEX0xJQlJBUllfUEFUSD0iJHtsaWJkaXJ9Igo+ICtleHBvcnQgTERfTElC UkFSWV9QQVRICj4gKwo+ICtuYW1lPSJ4ZW5kcml2ZXJkb21haW4iCj4gK3N0YXJ0X3ByZWNtZD0i eGVuZHJpdmVyZG9tYWluX3ByZWNtZCIKPiArc3RhcnRfY21kPSJ4ZW5kcml2ZXJkb21haW5fc3Rh cnRjbWQiCj4gK3N0b3BfY21kPSJ4ZW5kcml2ZXJkb21haW5fc3RvcCIKPiArZXh0cmFfY29tbWFu ZHM9IiIKPiArCj4gK1hMREVWRF9QSURGSUxFPSIvdmFyL3J1bi94bGRldmQucGlkIgo+ICsKPiAr eGVuZHJpdmVyZG9tYWluX3ByZWNtZCgpCj4gK3sKPiArCToKPiArfQo+ICsKPiAreGVuZHJpdmVy ZG9tYWluX3N0YXJ0Y21kKCkKPiArewo+ICsJcHJpbnRmICJTdGFydGluZyB4ZW5zZXJ2aWNlczog eGwgZGV2ZC4iCj4gKwo+ICsJJHtzYmluZGlyfS94bCBkZXZkIC0tcGlkZmlsZT0kWExERVZEX1BJ REZJTEUgJHtYTERFVkRfQVJHU30KPiArCj4gKwlwcmludGYgIlxuIgo+ICt9Cj4gKwo+ICt4ZW5k cml2ZXJkb21haW5fc3RvcCgpCj4gK3sKPiArCXByaW50ZiAiU3RvcHBpbmcgeGwgZGV2ZC5cbiIK PiArCj4gKwlyY19waWQ9JChjaGVja19waWRmaWxlICR7WExERVZEX1BJREZJTEV9ICR7c2JpbmRp cn0veGwpCj4gKwo+ICsJa2lsbCAtJHtzaWdfc3RvcDotVEVSTX0gJHJjX3BpZHMKPiArCXdhaXRf Zm9yX3BpZHMgJHJjX3BpZHMKPiArfQo+ICsKPiArbG9hZF9yY19jb25maWcgJG5hbWUKPiArcnVu X3JjX2NvbW1hbmQgIiQxIgo+IGRpZmYgLS1naXQgYS90b29scy9saWJ4bC94bF9jbWRpbXBsLmMg Yi90b29scy9saWJ4bC94bF9jbWRpbXBsLmMKPiBpbmRleCA1ZjdhNzEyLi4xN2U2ZTdkIDEwMDY0 NAo+IC0tLSBhL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYwo+ICsrKyBiL3Rvb2xzL2xpYnhsL3hs X2NtZGltcGwuYwo+IEBAIC00NDUsNyArNDQ1LDcgQEAgb3V0Ogo+ICAgICAgZmx1c2hfc3RyZWFt KGZoKTsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBkb19kYWVtb25pemUoY2hhciAqbmFtZSkKPiAr c3RhdGljIGludCBkb19kYWVtb25pemUoY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGlkZmlsZSkK PiAgewo+ICAgICAgY2hhciAqZnVsbG5hbWU7Cj4gICAgICBwaWRfdCBjaGlsZDE7Cj4gQEAgLTQ3 Nyw2ICs0NzcsMzEgQEAgc3RhdGljIGludCBkb19kYWVtb25pemUoY2hhciAqbmFtZSkKPiAgCj4g ICAgICBDSEtfU1lTQ0FMTChkYWVtb24oMCwgMSkpOwo+ICAKPiArICAgIGlmIChwaWRmaWxlKSB7 Cj4gKyAgICAgICAgaW50IGZkID0gb3BlbihwaWRmaWxlLCBPX1JEV1IgfCBPX0NSRUFULCBTX0lS VVNSfFNfSVdVU1IpOwo+ICsgICAgICAgIGNoYXIgKnBpZCA9IE5VTEw7Cj4gKwo+ICsgICAgICAg IGlmIChmZCA9PSAtMSkgewo+ICsgICAgICAgICAgICBwZXJyb3IoIlVuYWJsZSB0byBvcGVuIHBp ZGZpbGUiKTsKPiArICAgICAgICAgICAgZXhpdCgxKTsKPiArICAgICAgICB9Cj4gKwo+ICsgICAg ICAgIGlmIChhc3ByaW50ZigmcGlkLCAiJWxkXG4iLCAobG9uZylnZXRwaWQoKSkgPT0gLTEpIHsK PiArICAgICAgICAgICAgcGVycm9yKCJGb3JtYXR0aW5nIHBpZCIpOwo+ICsgICAgICAgICAgICBl eGl0KDEpOwo+ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAgaWYgKHdyaXRlKGZkLCBwaWQsIHN0 cmxlbihwaWQpKSA8IDApIHsKPiArICAgICAgICAgICAgcGVycm9yKCJXcml0aW5nIHBpZCIpOwo+ ICsgICAgICAgICAgICBleGl0KDEpOwo+ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAgaWYgKCBj bG9zZShmZCkgPCAwICkgewo+ICsgICAgICAgICAgICBwZXJyb3IoIkNsb3NpbmcgcGlkZmlsZSIp Owo+ICsgICAgICAgICAgICBleGl0KDEpOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiArCj4gIG91 dDoKPiAgICAgIHJldHVybiByZXQ7Cj4gIH0KPiBAQCAtMjc5OCw3ICsyODIzLDcgQEAgc3RhcnQ6 Cj4gICAgICAgICAgICAgIExPRygiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBpbiBhc3ByaW50 ZiIpOwo+ICAgICAgICAgICAgICBleGl0KDEpOwo+ICAgICAgICAgIH0KPiAtICAgICAgICByZXQg PSBkb19kYWVtb25pemUobmFtZSk7Cj4gKyAgICAgICAgcmV0ID0gZG9fZGFlbW9uaXplKG5hbWUs IE5VTEwpOwo+ICAgICAgICAgIGZyZWUobmFtZSk7Cj4gICAgICAgICAgaWYgKHJldCkgewo+ICAg ICAgICAgICAgICByZXQgPSAocmV0ID09IDEpID8gZG9taWQgOiByZXQ7Cj4gQEAgLTc5NzIsMTUg Kzc5OTcsMjQgQEAgaW50IG1haW5fcmVtdXMoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICBpbnQg bWFpbl9kZXZkKGludCBhcmdjLCBjaGFyICoqYXJndikKPiAgewo+ICAgICAgaW50IHJldCA9IDAs IG9wdCA9IDAsIGRhZW1vbml6ZSA9IDE7Cj4gKyAgICBjb25zdCBjaGFyICpwaWRmaWxlID0gTlVM TDsKPiArICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb3B0aW9uIG9wdHNbXSA9IHsKPiArICAgICAg ICB7InBpZGZpbGUiLCAxLCAwLCAncCd9LAo+ICsgICAgICAgIENPTU1PTl9MT05HX09QVFMsCj4g KyAgICAgICAgezAsIDAsIDAsIDB9Cj4gKyAgICB9Owo+ICAKPiAtICAgIFNXSVRDSF9GT1JFQUNI X09QVChvcHQsICJGIiwgTlVMTCwgImRldmQiLCAwKSB7Cj4gKyAgICBTV0lUQ0hfRk9SRUFDSF9P UFQob3B0LCAiRnA6Iiwgb3B0cywgImRldmQiLCAwKSB7Cj4gICAgICBjYXNlICdGJzoKPiAgICAg ICAgICBkYWVtb25pemUgPSAwOwo+ICAgICAgICAgIGJyZWFrOwo+ICsgICAgY2FzZSAncCc6Cj4g KyAgICAgICAgcGlkZmlsZSA9IG9wdGFyZzsKPiArICAgICAgICBicmVhazsKPiAgICAgIH0KPiAg Cj4gICAgICBpZiAoZGFlbW9uaXplKSB7Cj4gLSAgICAgICAgcmV0ID0gZG9fZGFlbW9uaXplKCJ4 bGRldmQiKTsKPiArICAgICAgICByZXQgPSBkb19kYWVtb25pemUoInhsZGV2ZCIsIHBpZGZpbGUp Owo+ICAgICAgICAgIGlmIChyZXQpIHsKPiAgICAgICAgICAgICAgcmV0ID0gKHJldCA9PSAxKSA/ IDAgOiByZXQ7Cj4gICAgICAgICAgICAgIGdvdG8gb3V0Owo+IGRpZmYgLS1naXQgYS90b29scy9s aWJ4bC94bF9jbWR0YWJsZS5jIGIvdG9vbHMvbGlieGwveGxfY21kdGFibGUuYwo+IGluZGV4IDU0 ZGJlY2MuLjAwNzFmMTIgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvbGlieGwveGxfY21kdGFibGUuYwo+ ICsrKyBiL3Rvb2xzL2xpYnhsL3hsX2NtZHRhYmxlLmMKPiBAQCAtNTA2LDcgKzUwNiw4IEBAIHN0 cnVjdCBjbWRfc3BlYyBjbWRfdGFibGVbXSA9IHsKPiAgICAgICAgJm1haW5fZGV2ZCwgMCwgMSwK PiAgICAgICAgIkRhZW1vbiB0aGF0IGxpc3RlbnMgZm9yIGRldmljZXMgYW5kIGxhdW5jaGVzIGJh Y2tlbmRzIiwKPiAgICAgICAgIltvcHRpb25zXSIsCj4gLSAgICAgICItRiAgICAgICAgICAgICAg ICAgICAgICBSdW4gaW4gdGhlIGZvcmVncm91bmQiLAo+ICsgICAgICAiLUYgICAgICAgICAgICAg ICAgICAgICAgUnVuIGluIHRoZSBmb3JlZ3JvdW5kLlxuIgo+ICsgICAgICAiLXAsIC0tcGlkZmls ZSBbRklMRV0gICAgV3JpdGUgUElEIHRvIHBpZGZpbGUgd2hlbiBkYWVtb25pemluZy4iLAo+ICAg ICAgfSwKPiAgI2lmZGVmIExJQlhMX0hBVkVfUFNSX0NNVAo+ICAgICAgeyAicHNyLWh3aW5mbyIs Cj4gCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK