From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 6/6] drm/i915: Migrate stolen objects before hibernation Date: Fri, 11 Dec 2015 12:33:16 +0000 Message-ID: <566AC28C.9080102@linux.intel.com> References: <1449665182-10054-1-git-send-email-ankitprasad.r.sharma@intel.com> <1449665182-10054-7-git-send-email-ankitprasad.r.sharma@intel.com> <56694926.2050503@linux.intel.com> <1449753470.12247.120.camel@ankitprasad-desktop> <56698919.2040302@linux.intel.com> <1449811003.12247.141.camel@ankitprasad-desktop> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 1257D6EF04 for ; Fri, 11 Dec 2015 04:33:19 -0800 (PST) In-Reply-To: <1449811003.12247.141.camel@ankitprasad-desktop> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ankitprasad Sharma Cc: intel-gfx@lists.freedesktop.org, akash.goel@intel.com, shashidhar.hiremath@intel.com List-Id: intel-gfx@lists.freedesktop.org Ck9uIDExLzEyLzE1IDA1OjE2LCBBbmtpdHByYXNhZCBTaGFybWEgd3JvdGU6Cj4gT24gVGh1LCAy MDE1LTEyLTEwIGF0IDE0OjE1ICswMDAwLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToKPj4gT24gMTAv MTIvMTUgMTM6MTcsIEFua2l0cHJhc2FkIFNoYXJtYSB3cm90ZToKPj4+IE9uIFRodSwgMjAxNS0x Mi0xMCBhdCAwOTo0MyArMDAwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4+Pj4gSGksCj4+Pj4K Pj4+PiBUd28gbW9yZSBjb21tZW50cyBiZWxvdzoKPj4+Pgo+Pj4+IE9uIDA5LzEyLzE1IDEyOjQ2 LCBhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20gd3JvdGU6Cj4+Pj4+IEZyb206IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+Pj4+Pgo+Pj4+PiBWaWxsZSByZW1p bmRlZCB1cyB0aGF0IHN0b2xlbiBtZW1vcnkgaXMgbm90IHByZXNlcnZlZCBhY3Jvc3MKPj4+Pj4g aGliZXJuYXRpb24sIGFuZCBhIHJlc3VsdCBvZiB0aGlzIHdhcyB0aGF0IGNvbnRleHQgb2JqZWN0 cyBub3cgYmVpbmcKPj4+Pj4gYWxsb2NhdGVkIGZyb20gc3RvbGVuIHdlcmUgYmVpbmcgY29ycnVw dGVkIG9uIFM0IGFuZCBwcm9tcHRseSBoYW5naW5nCj4+Pj4+IHRoZSBHUFUgb24gcmVzdW1lLgo+ Pj4+Pgo+Pj4+PiBXZSB3YW50IHRvIHV0aWxpc2Ugc3RvbGVuIGZvciBhcyBtdWNoIGFzIHBvc3Np YmxlIChub3RoaW5nIGVsc2Ugd2lsbCB1c2UKPj4+Pj4gdGhhdCB3YXN0ZWQgbWVtb3J5IG90aGVy d2lzZSksIHNvIHdlIG5lZWQgYSBzdHJhdGVneSBmb3IgaGFuZGxpbmcKPj4+Pj4gZ2VuZXJhbCBv YmplY3RzIGFsbG9jYXRlZCBmcm9tIHN0b2xlbiBhbmQgaGliZXJuYXRpb24uIEEgc2ltcGxlIHNv bHV0aW9uCj4+Pj4+IGlzIHRvIGRvIGEgQ1BVIGNvcHkgdGhyb3VnaCB0aGUgR1RUIG9mIHRoZSBz dG9sZW4gb2JqZWN0IGludG8gYSBmcmVzaAo+Pj4+PiBzaG1lbWZzIGJhY2tpbmcgc3RvcmUgYW5k IHRoZW5jZWZvcnRoIHRyZWF0IGl0IGFzIGEgbm9ybWFsIG9iamVjdHMuIFRoaXMKPj4+Pj4gY2Fu IGJlIHJlZmluZWQgaW4gZnV0dXJlIHRvIGVpdGhlciB1c2UgYSBHUFUgY29weSB0byBhdm9pZCB0 aGUgc2xvdwo+Pj4+PiB1bmNhY2hlZCByZWFkcyAodGhvdWdoIGl0J3MgaGliZXJuYXRpb24hKSBh bmQgcmVjcmVhdGUgc3RvbGVuIG9iamVjdHMKPj4+Pj4gdXBvbiByZXN1bWUvZmlyc3QtdXNlLiBG b3Igbm93LCBhIHNpbXBsZSBhcHByb2FjaCBzaG91bGQgc3VmZmljZSBmb3IKPj4+Pj4gdGVzdGlu ZyB0aGUgb2JqZWN0IG1pZ3JhdGlvbi4KPj4+Pgo+Pj4+IE1lbnRpb24gb2YgInRlc3RpbmciIGlu IHRoZSBjb21taXQgbWVzc2FnZSBhbmQgYWJzZW5jZSBvZiBhIHBhdGggdG8KPj4+PiBtaWdyYXRl IHRoZSBvYmplY3RzIGJhY2sgdG8gc3RvbGVuIG1lbW9yeSBvbiByZXN1bWUgbWFrZXMgbWUgdGhp bmsgdGhpcwo+Pj4+IGlzIGtpbmQgb2YgaGFsZiBmaW5pc2hlZCBhbmQgbm90ZSByZWFsbHkgcmVh ZHkgZm9yIHJldmlldyAvIG1lcmdlID8KPj4+Pgo+Pj4+IEJlY2F1c2UgSSBkb24ndCBzZWUgaG93 IGl0IGlzIHVzZWZ1bCB0byBtaWdyYXRlIGl0IG9uZSB3YXkgYW5kIG5ldmVyCj4+Pj4gbW92ZSBi YWNrPwo+Pj4gSSB0aGluayB0aGF0IHRoaXMgaXMgbm90IG11Y2ggb2YgYSBwcm9ibGVtLCBhcyB0 aGUgcHVycG9zZSBoZXJlIGlzIHRvCj4+PiBrZWVwIHRoZSBvYmplY3QgaW50YWN0LCB0byBhdm9p ZCBicmVha2luZyBhbnl0aGluZy4KPj4+IFNvIGFzIGZhciBhcyBvYmplY3RzIGFyZSBjb25jZXJu ZWQgdGhleSB3aWxsIGJlIGluIHNobWVtIGFuZCBjYW4gYmUgdXNlZAo+Pj4gd2l0aG91dCBhbnkg aXNzdWUsIGFuZCB0aGUgc3RvbGVuIG1lbW9yeSB3aWxsIGJlIGZyZWUgYWdhaW4gZm9yIG90aGVy Cj4+PiB1c2FnZSBmcm9tIHRoZSB1c2VyLgo+Pgo+PiBJIGFtIG5vdCBzdXJlIHRoYXQgaXMgYSBn b29kIHN0YXRlIG9mIHRoaW5ncy4KPj4KPj4gT25lIG9mIHRoZSB0aGluZ3MgaXQgbWVhbnMgaXMg dGhhdCB3aGVuIHVzZXIgd2FudGVkIHRvIGNyZWF0ZSBhbiBvYmplY3QKPj4gaW4gc3RvbGVuIG1l bW9yeSwgYWZ0ZXIgcmVzdW1lIGl0IHdpbGwgbm90IGJlIGFueSBtb3JlLiBTbyB3aGF0IGlzIHRo ZQo+PiBwb2ludCBpbiBmYWlsaW5nIHN0b2xlbiBvYmplY3QgY3JlYXRpb24gd2hlbiBhcmVhIGlz IGZ1bGwgaW4gdGhlIGZpcnN0Cj4+IHBsYWNlPyBXZSBjb3VsZCBqdXN0IHJldHVybiBhIG5vcm1h bCBvYmplY3QgaW5zdGVhZC4KPiBJIGFncmVlIHdpdGggeW91LCBidXQgdGhlIGFic2VuY2Ugb2Yg YSByZXZlcnNlIHBhdGggd2lsbCBub3QgYWZmZWN0IHRoZQo+IHVzZXIgaW4gYW55IHdheSwgdGhv dWdoIHRoZSB1c2VyIG1heSBiZSB1bmRlciB0aGUgd3JvbmcgaW1wcmVzc2lvbiB0aGF0Cj4gdGhl IGJ1ZmZlciBpcyByZXNpZGluZyBpbnNpZGUgdGhlIHN0b2xlbiBhcmVhLgoKWWVzLCBhbmQgc2lu Y2Ugc3VzcGVuZC1yZXN1bWUgaXMgcmF0aGVyIGEgZnJlcXVlbnQgdXNlIGNhc2UgaXQgYnJpbmdz IAp0aGUgd2hvbGUgcG9pbnQgb2Ygc3RvbGVuIGludG8gcXVlc3Rpb24gZm9yIG1lIHVubGVzcyBp bXBsZW1lbnRlZCBmdWxseS4KCj4KPj4KPj4gVGhlbiB0aGUgcXVlc3Rpb24gb2Ygb2JqZWN0cyB3 aGljaCBhcmUgYWxsb2NhdGVkIGluIHN0b2xlbiBieSB0aGUKPj4gZHJpdmVyLiBBcmUgdGhleSBi ZWluZyByZS1hbGxvY2F0ZWQgb24gcmVzdW1lIG9yIHdpbGwgYWxzbyBiZSBzdHVjayBpbgo+PiBz aG1lbWZzIGZyb20gdGhlbiBvbndhcmQ/Cj4gT2JqZWN0cyBhbGxvY2F0ZWQgYnkgdGhlIGRyaXZl ciBuZWVkIG5vdCBiZSBwcmVzZXJ2ZWQgKHdlIHVzZSBhCj4gaW50ZXJuYWxfdm9sYXRpbGUgZmxh ZyBmb3IgdGhvc2UpLiBUaGVzZSBhcmUgbm90IG1pZ3JhdGVkIHRvIHRoZSBzaG1lbWZzCj4gYW5k IGFyZSBsYXRlciByZS1wb3B1bGF0ZWQgYnkgdGhlIGRyaXZlciwgd2hlbiB1c2VkIGFnYWluIGFm dGVyIHJlc3VtZS4KCkdvb2QgdGhlbiwgaXQgd2Fzbid0IGNsZWFyIHRvIG1lIGZyb20gdGhhdCBj b21tZW50IGFib3V0IEhFQUQgYW5kIFRBSUwgZXRjLgoKPj4KPj4gQW5kIGZpbmFsbHksIG9uZSBj b3JuZXIgY2FzZSBtaWdodCBiZSB0aGF0IHNobWVtZnMgcGx1cyBzdG9sZW4gaXMgYQo+PiBsYXJn ZXIgc3VtIHdoaWNoIHdpbGwgYmUgYXR0ZW1wdGVkIHRvIHJlc3RvcmVkIGluIHNobWVtZnMgb25s eSBvbgo+PiByZXN1bWUuIFdpbGwgdGhhdCBhbHdheXMgd29yayBpZiBldmVyeXRoaW5nIGlzIGZ1 bGx5IHBvcHVsYXRlZCBhbmQgd2hhdAo+PiB3aWxsIGhhcHBlbiBpZiB3ZSBydW4gb3V0IG9mIHNw YWNlPwo+IEFzIHBlciBteSB1bmRlcnN0YW5kaW5nLAo+IHNobWVtZnMgc2l6ZSB3aWxsIGdldCBp bmNyZWFzZWQsIGR1ZSB0byBtaWdyYXRpb24sIGJlZm9yZSB0aGUKPiBoaWJlcm5hdGlvbiBpdHNl bGYuIEFuZCBpZiBub3QgZXZlcnl0aGluZyBmcm9tIHNobWVtZnMgY2FuIGJlIHN0b3JlZCBpbgo+ IFJBTSwgc3dhcC1vdXQgd2lsbCB0YWtlIGNhcmUgb2YgaXQuCj4gV2hhdGV2ZXIgd2FzIHN0b3Jl ZCBpbiB0aGUgUkFNIHdpbGwgYmUgcmVzdG9yZWQgb24gcmVzdW1lLCByZXN0IGFsbCB3aWxsCj4g cmVtYWluIGluIHRoZSBzd2FwLgoKWWVzIGJ1dCBzdGlsbCB0aGVyZSBpcyBhIGNoYW5nZSBpdCB3 b24ndCBmaXQgaXMgc29tZW9uZSBpcyBydW5uaW5nIGF0IAp0aGUgbGltaXQgYW5kIG1heWJlIHdp dGggbm8gc3dhcCwgbm8/Cgo+Pgo+PiBBdCBtaW5pbXVtIGFsbCB0aGlzIHNob3VsZCBiZSBkaXNj dXNzZWQgYW5kIGV4cGxpY2l0bHkgZG9jdW1lbnRlZCBpbiB0aGUKPj4gY29tbWl0IG1lc3NhZ2Uu Cj4+Cj4+IFdvdWxkIGl0IGJlIGRpZmZpY3VsdCB0byBpbXBsZW1lbnQgdGhlIHJldmVyc2UgcGF0 aD8KPiBJIHdpbGwgdHJ5IHRvIGV4cGxvcmUgdGhlIHJldmVyc2UgcGF0aCBhcyB3ZWxsLiBCdXQg dGhhdCBjYW4gYmUKPiBzdWJtaXR0ZWQgc2VwYXJhdGVseSBhcyBhIGZvbGxvdy11cCBwYXRjaC4K CkkgZG9uJ3QgdGhpbmsgc28gYmVjYXVzZSBvZiB3aGF0IEkgd3JvdGUgYWJvdmUuIEVzcGVjaWFs bHkgc2luY2UgVmlsbGUgCnNhaWQgY29ycnVwdGlvbiBjYW4gZXZlbiBoYXBwZW4gaW4gUzMsIGJ1 dCBldmVuIGlmIHdlIG9ubHkgdGhpbmsgb2YgUzQsIApmb3IgbWUgdGhhdCBpcyBzdWNoIGEgY29t bW9uIG9uIGZyZXF1ZW50IHVzZS1jYXNlIHRoYXQgaGF2aW5nIHRoZSAKYWJpbGl0eSB0byByZXF1 ZXN0IG9iamVjdCBiZSBpbiBzdG9sZW4sIG9ubHkgZm9yIHRoYXQgdG8gYmUgc2lsZW50bHkgCmNo YW5nZWQgb24gcmVzdW1lIGlzIG5vdCB3b3J0aCBpdC4KClNPIHVudGlsIHRoZSBtaWdyYXRpb24g Ym90aCB3YXlzIGlzIHRoZXJlIEkgZG9uJ3Qgc2VlIHdoYXQgaXMgdGhlIHBvaW50IApvZiBhbGxv d2luZyBzdG9sZW4gb2JqZWN0cyBhbmQgZXZlbiBmYWlsaW5nIHRoZSBjcmVhdGlvbiBpZiB0aGVy ZSBpcyBub3QgCmVub3VnaCBzcGFjZSB0aGVyZS4KCj4+Cj4+Pj4+IHYyOgo+Pj4+PiBTd2FwIFBU RSBmb3IgcGlubmVkIGJpbmRpbmdzIG92ZXIgdG8gdGhlIHNobWVtZnMuIFRoaXMgYWRkcyBhCj4+ Pj4+IGNvbXBsaWNhdGVkIGRhbmNlLCBidXQgaXMgcmVxdWlyZWQgYXMgbWFueSBzdG9sZW4gb2Jq ZWN0cyBhcmUgbGlrZWx5IHRvCj4+Pj4+IGJlIHBpbm5lZCBmb3IgdXNlIGJ5IHRoZSBoYXJkd2Fy ZS4gU3dhcHBpbmcgdGhlIFBURXMgc2hvdWxkIG5vdCByZXN1bHQKPj4+Pj4gaW4gZXh0ZXJuYWxs eSB2aXNpYmxlIGJlaGF2aW91ciwgYXMgZWFjaCBQVEUgdXBkYXRlIHNob3VsZCBiZSBhdG9taWMg YW5kCj4+Pj4+IHRoZSB0d28gcGFnZXMgaWRlbnRpY2FsLiAoZGFudmV0KQo+Pj4+Pgo+Pj4+PiBz YWZlLWJ5LWRlZmF1bHQsIG9yIHRoZSBwcmluY2lwbGUgb2YgbGVhc3Qgc3VycHJpc2UuIFdlIG5l ZWQgYSBuZXcgZmxhZwo+Pj4+PiB0byBtYXJrIG9iamVjdHMgdGhhdCB3ZSBjYW4gd2lsZnVsbHkg ZGlzY2FyZCBhbmQgcmVjcmVhdGUgYWNyb3NzCj4+Pj4+IGhpYmVybmF0aW9uLiAoZGFudmV0KQo+ Pj4+Pgo+Pj4+PiBKdXN0IHVzZSB0aGUgZ2xvYmFsX2xpc3QgcmF0aGVyIHRoYW4gaW52ZW50IGEg bmV3IHN0b2xlbl9saXN0LiBUaGlzIGlzCj4+Pj4+IHRoZSBzbG93cGF0aCBoaWJlcm5hdGUgYW5k IHNvIGFkZGluZyBhIG5ldyBsaXN0IGFuZCB0aGUgYXNzb2NpYXRlZAo+Pj4+PiBjb21wbGV4aXR5 IGlzbid0IHdvcnRoIGl0Lgo+Pj4+Pgo+Pj4+PiB2MzogUmViYXNlZCBvbiBkcm0taW50ZWwtbmln aHRseSAoQW5raXQpCj4+Pj4+Cj4+Pj4+IHY0OiBVc2UgaW5zZXJ0X3BhZ2UgdG8gbWFwIHN0b2xl biBtZW1vcnkgYmFja2VkIHBhZ2VzIGZvciBtaWdyYXRpb24gdG8KPj4+Pj4gc2htZW0gKENocmlz KQo+Pj4+Pgo+Pj4+PiB2NTogQWNxdWlyZSBtdXRleCBsb2NrIHdoaWxlIGNvcHlpbmcgc3RvbGVu IGJ1ZmZlciBvYmplY3RzIHRvIHNobWVtIChDaHJpcykKPj4+Pj4KPj4+Pj4gU2lnbmVkLW9mZi1i eTogQ2hyaXMgV2lsc29uIDxjaHJpcyBhdCBjaHJpcy13aWxzb24uY28udWs+Cj4+Pj4+IFNpZ25l ZC1vZmYtYnk6IEFua2l0cHJhc2FkIFNoYXJtYSA8YW5raXRwcmFzYWQuci5zaGFybWFAaW50ZWwu Y29tPgo+Pj4+PiAtLS0KPj4+Pj4gICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMg ICAgICAgICB8ICAxNyArKy0KPj4+Pj4gICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggICAgICAgICB8ICAgNyArCj4+Pj4+ICAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jICAgICAgICAgfCAyMzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KPj4+Pj4g ICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICB8ICAgMyArCj4+Pj4+ ICAgICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jICAgICAgfCAgIDYgKwo+Pj4+ PiAgICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgIHwgICAyICsKPj4+ Pj4gICAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAgNiArCj4+ Pj4+ICAgICA3IGZpbGVzIGNoYW5nZWQsIDI2MSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMo LSkKPj4+Pj4KPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4+Pj4+IGluZGV4IDlmNTUyMDku LjJiYjllOWUgMTAwNjQ0Cj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMKPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+Pj4+PiBAQCAt MTAzNiw2ICsxMDM2LDIxIEBAIHN0YXRpYyBpbnQgaTkxNV9wbV9zdXNwZW5kKHN0cnVjdCBkZXZp Y2UgKmRldikKPj4+Pj4gICAgIAlyZXR1cm4gaTkxNV9kcm1fc3VzcGVuZChkcm1fZGV2KTsKPj4+ Pj4gICAgIH0KPj4+Pj4KPj4+Pj4gK3N0YXRpYyBpbnQgaTkxNV9wbV9mcmVlemUoc3RydWN0IGRl dmljZSAqZGV2KQo+Pj4+PiArewo+Pj4+PiArCWludCByZXQ7Cj4+Pj4+ICsKPj4+Pj4gKwlyZXQg PSBpOTE1X2dlbV9mcmVlemUocGNpX2dldF9kcnZkYXRhKHRvX3BjaV9kZXYoZGV2KSkpOwo+Pj4+ PiArCWlmIChyZXQpCj4+Pj4+ICsJCXJldHVybiByZXQ7Cj4+Pj4KPj4+PiBPbmUgb2YgdGhlIGZp cnN0IHN0ZXBzIGluIGlkbGluZyBHRU0gc2VlbXMgdG8gYmUgaWRsaW5nIHRoZSBHUFUgYW5kCj4+ Pj4gcmV0aXJpbmcgcmVxdWVzdHMuCj4+Pj4KPj4+PiBXb3VsZCBpdCBhbHNvIG1ha2Ugc2Vuc2Ug dG8gZG8gdGhvc2Ugc3RlcHMgYmVmb3JlIGF0dGVtcHRpbmcgdG8gbWlncmF0ZQo+Pj4+IHRoZSBz dG9sZW4gb2JqZWN0cz8KPj4+IEhlcmUsIHdlIGRvIHRoYXQgaW1wbGljaXRseSB3aGVuIHRyeWlu ZyB0byBkbyBhIHZtYV91bmJpbmQgZm9yIHRoZQo+Pj4gb2JqZWN0Lgo+Pgo+PiBDb2RlIHBhdGhz IGFyZSBub3QgdGhlIHNhbWUgc28gaXQgbWFrZXMgbWUgdW5jb21mb3J0YWJsZS4gIEl0IGxvb2tz IG1vcmUKPj4gbG9naWNhbCB0byBkbyB0aGUgbWlncmF0aW9uIGFmdGVyIHRoZSBleGlzdGluZyBp OTE1X2dlbV9zdXNwZW5kLiBJdAo+PiB3b3VsZCBtZWFuIHNvbWUgY29kZSBkdXBsaWNhdGlvbiwg dHJ1ZSAobWF5YmUgc3BsaXQgaTkxNV9kcm1fc3VzcGVuZCBpbgo+PiB0d28gYW5kIGNhbGwgaTkx NV9nZW1fZnJlZXplIGluIGJldHdlZW4pLCBidXQgdG8gbWUgaXQgbG9va3MgbW9yZSBsaWtlIGEK Pj4gcHJvcGVyIHBsYWNlIHRvIGRvIGl0Lgo+Pgo+IEFsbCBpbmFjdGl2ZSBzdG9sZW4gb2JqZWN0 cyB3aWxsIGJlIG1pZ3JhdGVkIGltbWVkaWF0ZWx5IGFuZCB0aGUgYWN0aXZlCj4gb25lcyB3aWxs IGJlIGltcGxpY2l0bHkgc3luY2hyb25pemVkIGluIHZtYV91bmJpbmQuCj4gV291bGQgaXQgYmUg bW9yZSBhcHByb3ByaWF0ZSB0byByZW5hbWUgaTkxNV9nZW1fZnJlZXplIHRvCj4gaTkxNV9nZW1f bWlncmF0ZV9zdG9sZW4/Cj4KPiBCdXQgYW55d2F5LCB3ZSB3aWxsIHdhaXQgZm9yIENocmlzIG9y IFZpbGxlJ3MgaW5wdXRzLgoKUGluZyEgOikKClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK