From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dong Zhu Subject: Re: [PATCH] igb: add a method to get the nic hw time stamping policy Date: Tue, 14 May 2013 17:51:55 +0800 Message-ID: <20130514095155.GO8399@zhudong.nay.redhat.com> References: <20130511140219.GG8399@zhudong.nay.redhat.com> <518E7723.5010003@cogentembedded.com> <20130512142555.GI8399@zhudong.nay.redhat.com> <20130512172446.GA2484@netboy> <20130513021236.GJ8399@zhudong.nay.redhat.com> <20130513043140.GA2567@netboy> <20130513100742.GM8399@zhudong.nay.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: linux-kernel@vger.kernel.org, Sergei Shtylyov , e1000-devel@lists.sourceforge.net, Bruce Allan , Jesse Brandeburg , "David S. Miller" , David Howells , John Ronciak , Thomas Gleixner , netdev@vger.kernel.org, Dave Jones , "Paul E. McKenney" To: Jacob Keller , Ben Hutchings , Matthew Vick , Richard Cochran Return-path: Content-Disposition: inline In-Reply-To: <20130513100742.GM8399@zhudong.nay.redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: e1000-devel-bounces@lists.sourceforge.net List-Id: netdev.vger.kernel.org SGksCgo+IEkgbW9kaWZpZWQgdGhpcyBwYXRjaCBhbmQgYWRkZWQgdGhlIG1ldGhvZCB0byBpZ2Jf Z2V0X3RzX2luZm8gZnVuY3Rpb24uCj4gRm9yIDgyNTc2IG5pYywgdGhyb3VnaCB0aGlzIG1ldGhv ZCB3ZSBjYW4gZWFzaWx5IGNoZWNrIHdoaWNoIHR5cGUgb2YgcGFja2V0cwo+IGFyZSB0aW1lIHN0 YW1wZWQgbm93LCBzdWNoIGFzIChIV1RTVEFNUF9GSUxURVJfUFRQX1YxX0w0X1NZTkMgYW5kCj4g SFdUU1RBTVBfRklMVEVSX1BUUF9WMV9MNF9ERUxBWV9SRVEpLCB0aGVuIGNoYW5nZSBvciBkaXNh YmxlIGl0IHVwIHRvIHlvdXIgcmVxdWVzdHMuCj4gSSB0aGluayBpdCBpcyBjb252ZW5pZW50LlRo ZSBvcmlnaWFsIEdFVF9UU19JTkZPIG1ldGhvZCBjYW4gb25seSBzaG93IHRoZSBkZXZpY2XigJlz Cj4gdGltZSBzdGFtcGluZyBjYXBhYmlsaXRpZXMgd2hpY2ggbmljcyBzdXBwb3J0ZWQuCgpUaHJv dWdoIHRoaXMgbWV0aG9kIHdlIGNhbiBlYXNpbHkgY2hlY2sgd2hpY2ggdHlwZSBvZiBwYWNrZXRz IGFyZQp0aW1lc3RhbXBlZCBjdXJyZW50bHksIGl0IGlzIHVzZWZ1bCBiZWNhdXNlIHRoYXQgd2Ug dXNlIHRoZSBod3N0YW1wX2N0bCAKc2V0IHRpbWUgc3RhbXBpbmcgcG9saWN5IGZpcnN0IHRoZW4g d2UgY291bGQgdmVyaWZ5IHdoYXQgdHlwZSBvZiBwYWNrZXRzCmRvZXMgdGhlIG5pYyB0aW1lc3Rh bXAgYW5kIHRoZW4gZG8gc29tZSBvdGhlciB0ZXN0aW5nKHJlZ3Jlc3Npb24pIGZvciBlYWNoCnBv bGljeS5ObyBtYXR0ZXIgUFRQIGlzIHJ1bm5pbmcgb3Igbm90IHdlIGNhbiBtYWtlIHN1cmUgd2hl dGhlciB0aW1lc3RhbXAgcGFja2V0cyAKY291bGQgY2F1c2Ugb3RoZXIgZ2VuZXJhbCBuZXR3b3Jr IHByb2JsZW1zIHRocm91Z2ggdmlld2luZyBhbmQgc2V0dGluZyB0aGUKdGltZXN0YW1wIHBvbGlj eS4KCk15IG9yaWdpbmFsIGlkZWEgaXMgdGhhdDoKVGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMg bWV0aG9kIGlzIGNhbGxpbmcgdGhlIGlvY3RsIGNhbGwsIGluIG9yZGVyCm5vdCB0byBicmVhayB0 aGUgdXNlcmxhbmQgQUJJIEkgdXNlIHRoZSBmbGFncyBmaWVsZCBvZiBod3RzdGFtcF9jb25maWcs IAphcyBpdCBoYXMgbm8gZGVmaW5pdGlvbiB5ZXQuCgogIC0gRm9yIEkzNTAgaXQgb25seSBzdXBw b3J0cyB0d28gdHlwZXMgSFdUU1RBTVBfRklMVEVSX05PTkUgYW5kIEhXVFNUQU1QX0ZJTFRFUl9B TEwKICAgIGZvciB0aW1lc3RhbXBpbmcuIEl0IGlzIGVhc3kgdG8gaGFuZGxlIGp1c3QgcmV0dXJu IHRoZSB2YWx1ZSB0byBmbGFncy4KCiAgLSBGb3IgODI1NzZOUyBpdCBoYXMgbW9yZSBpbmRpdmlk dWFsIGZpbHRlcnMsIHNvIEkgbmVlZCB0byBkbyB0aGUKICAgIGp1ZGVtZW50IGluIHRoZSBpZ2Jf cHRwX2h3dHN0YW1wX2lvY3RsIGZ1bmN0aW9uIGZvciBkaWZmZXJlbnQgbmljcywgCiAgICB0aGUg Y29kZSBvZiBqdWRnZW1lbnQgbWlnaHQgYmUgcmVkdXBsaWNhdGVkIHdpdGggaWdiX2dldF90c19p bmZvLHRoZW4gZG8KICAgIHRoZSBPUiBvcGVyYXRpb24gZm9yIGZpbHRlcnMgdGhlbiByZXR1cm4g dG8gdGhlIGZsYWdzLgoKQ291bGQgdGVsbCBtZSB3aGV0aGVyIHRoZSBhYm92ZSBtZXRob2QoaW9j dGwpIGlzIGZlYXNpYmxlIGFuZCBiZXR0ZXIgdGhhbiB0aGlzCm9uZSAoZXRodG9vbCk/CgpJTU8g Y2hlY2tpbmcgdGhpcyB0aHJvdWdoIHRoZSBldGh0b29sIEdFVF9UU19JTkZPIGlzIHNvIGNvbnZl bmllbnQKd2l0aG91dCBicmVha2luZyBhbnkgdXNlcmxhbmQgQUJJcy4gRG8geW91IHRoaW5rIHNv ID8KCj4gCj4gSSB1c2UgdGhlIHR4X3Jlc2VydmVkWzBdIGFuZCByeF9yZXNlcnZlZFswXSB0byBy ZXN0b3JlIHRoZSBod3RzdGFtcF90eF90eXBlcyBhbmQKPiBod3RzdGFtcF9yeF9maWx0ZXJzIGVu dW1lcmF0aW9uIHZhbHVlcy4KPiAKPiBJIHRlc3QgaXQgb24gSTM1MCBhbmQgODI1NzZOUyBuaWNz IGFuZCBpdCB3b3JrcyBhcyBleHBlY3QuCj4gCj4gQ291bGQgaGVscCByZXZpZXdpbmcgaXQgYWdh aW4gPyBBbnkgY29tbWVudHMgd291bGQgYmUgYXBwcmVjaWF0ZWQuCj4gCj4gCj4gRnJvbSA4YTEy OTMyZmQyYTNiYjVjYTkwNGJjNzJiMjAxNDAyNDdhNWQ4MWJlIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQo+IEZyb206IERvbmcgWmh1IDxibHVlemh1ZG9uZ0BnbWFpbC5jb20+Cj4gRGF0ZTogTW9u LCAxMyBNYXkgMjAxMyAxNzoyNzo1OSArMDgwMAo+IAo+IEN1cnJlbnRseSBrZXJuZWwgb25seSBz dXBwb3J0IHNldHRpbmcgdGhlIGh3IHRpbWUgc3RhbXBpbmcgcG9saWN5Cj4gdGhyb3VnaCBpb2N0 bCxub3cgYWRkIGEgbWV0aG9kIHRvIGNoZWNrIHdoaWNoIHBhY2tldHMoT3V0Z29pbmcgYW5kCj4g SW5jb21pbmcpIGFyZSB0aW1lIHN0YW1wZWQgYnkgbmljLgo+IAo+IEFkZCB0aGlzIHRvIGlnYl9n ZXRfdHNfaW5mbywgd2UgY2FuIHF1ZXJ5IHRoaXMgYnkgdXNpbmcgdGhlIEdFVF9UU19JTkZPCj4g ZXRodG9vbCBjb21tYW5kLiBUZXN0aW5nIG9uIEkzNTAgYW5kIDgyNTc2TlMgaXQgc2VlbXMgd29y ayB3ZWxsLgo+IAo+IFNpZ25lZC1vZmYtYnk6IERvbmcgWmh1IDxibHVlemh1ZG9uZ0BnbWFpbC5j b20+Cj4gLS0tCj4gIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lnYi9pZ2JfZXRodG9vbC5j IHwgNzggKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICBpbmNsdWRlL3VhcGkvbGludXgv ZXRodG9vbC5oICAgICAgICAgICAgICAgICB8ICAzICsrCj4gIDIgZmlsZXMgY2hhbmdlZCwgNzkg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvaW50ZWwvaWdiL2lnYl9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9pbnRlbC9pZ2IvaWdiX2V0aHRvb2wuYwo+IGluZGV4IDc4NzYyNDAuLjQ5NDg2YjggMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWdiL2lnYl9ldGh0b29sLmMKPiAr KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pZ2IvaWdiX2V0aHRvb2wuYwo+IEBAIC0y MzI3LDYgKzIzMjcsOCBAQCBzdGF0aWMgaW50IGlnYl9nZXRfdHNfaW5mbyhzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LAo+ICAJCQkgICBzdHJ1Y3QgZXRodG9vbF90c19pbmZvICppbmZvKQo+ICB7Cj4g IAlzdHJ1Y3QgaWdiX2FkYXB0ZXIgKmFkYXB0ZXIgPSBuZXRkZXZfcHJpdihkZXYpOwo+ICsJc3Ry dWN0IGUxMDAwX2h3ICpodyA9ICZhZGFwdGVyLT5odzsKPiArCXUzMiByZWd2YWw7Cj4gIAo+ICAJ c3dpdGNoIChhZGFwdGVyLT5ody5tYWMudHlwZSkgewo+ICAJY2FzZSBlMTAwMF84MjU3NToKPiBA QCAtMjM2MCwxMCArMjM2MiwyOSBAQCBzdGF0aWMgaW50IGlnYl9nZXRfdHNfaW5mbyhzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LAo+ICAKPiAgCQlpbmZvLT5yeF9maWx0ZXJzID0gMSA8PCBIV1RTVEFN UF9GSUxURVJfTk9ORTsKPiAgCj4gKwkJcmVndmFsID0gcmQzMihFMTAwMF9UU1lOQ1RYQ1RMKTsK PiArCQlpZiAocmVndmFsICYgRTEwMDBfVFNZTkNUWENUTF9FTkFCTEVEKQo+ICsJCQlpbmZvLT50 eF9yZXNlcnZlZFswXSA9IDEgPDwgSFdUU1RBTVBfVFhfT047Cj4gKwkJZWxzZQo+ICsJCQlpbmZv LT50eF9yZXNlcnZlZFswXSA9IDEgPDwgSFdUU1RBTVBfVFhfT0ZGOwo+ICsKPiArCQlyZWd2YWwg PSByZDMyKEUxMDAwX1RTWU5DUlhDVEwpOwo+ICsKPiAgCQkvKiA4MjU3NiBkb2VzIG5vdCBzdXBw b3J0IHRpbWVzdGFtcGluZyBhbGwgcGFja2V0cy4gKi8KPiAtCQlpZiAoYWRhcHRlci0+aHcubWFj LnR5cGUgPj0gZTEwMDBfODI1ODApCj4gKwkJaWYgKGFkYXB0ZXItPmh3Lm1hYy50eXBlID49IGUx MDAwXzgyNTgwKSB7Cj4gIAkJCWluZm8tPnJ4X2ZpbHRlcnMgfD0gMSA8PCBIV1RTVEFNUF9GSUxU RVJfQUxMOwo+IC0JCWVsc2UKPiArCj4gKwkJCWlmICghKHJlZ3ZhbCAmIEUxMDAwX1RTWU5DUlhD VExfRU5BQkxFRCkpCj4gKwkJCQlpbmZvLT5yeF9yZXNlcnZlZFswXSA9Cj4gKwkJCQkJMSA8PCBI V1RTVEFNUF9GSUxURVJfTk9ORTsKPiArCQkJZWxzZSBpZiAoRTEwMDBfVFNZTkNSWENUTF9UWVBF X0FMTCA9PQo+ICsJCQkJCShyZWd2YWwgJiBFMTAwMF9UU1lOQ1JYQ1RMX1RZUEVfTUFTSykpCj4g KwkJCQlpbmZvLT5yeF9yZXNlcnZlZFswXSA9IDEgPDwgSFdUU1RBTVBfRklMVEVSX0FMTDsKPiAr CQkJZWxzZQo+ICsJCQkJcmV0dXJuIC1FUkFOR0U7Cj4gKwo+ICsJCQlyZXR1cm4gMDsKPiArCQl9 IGVsc2Ugewo+ICAJCQlpbmZvLT5yeF9maWx0ZXJzIHw9Cj4gIAkJCQkoMSA8PCBIV1RTVEFNUF9G SUxURVJfUFRQX1YxX0w0X1NZTkMpIHwKPiAgCQkJCSgxIDw8IEhXVFNUQU1QX0ZJTFRFUl9QVFBf VjFfTDRfREVMQVlfUkVRKSB8Cj4gQEAgLTIzNzMsNiArMjM5NCw1OSBAQCBzdGF0aWMgaW50IGln Yl9nZXRfdHNfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAo+ICAJCQkJKDEgPDwgSFdUU1RB TVBfRklMVEVSX1BUUF9WMl9MNF9ERUxBWV9SRVEpIHwKPiAgCQkJCSgxIDw8IEhXVFNUQU1QX0ZJ TFRFUl9QVFBfVjJfRVZFTlQpOwo+ICAKPiArCQkJaWYgKCEocmVndmFsICYgRTEwMDBfVFNZTkNS WENUTF9FTkFCTEVEKSkgewo+ICsJCQkJaW5mby0+cnhfcmVzZXJ2ZWRbMF0gPQo+ICsJCQkJCTEg PDwgSFdUU1RBTVBfRklMVEVSX05PTkU7Cj4gKwkJCQlyZXR1cm4gMDsKPiArCQkJfQo+ICsJCX0K PiArCj4gKwkJc3dpdGNoIChyZWd2YWwgJiBFMTAwMF9UU1lOQ1JYQ1RMX1RZUEVfTUFTSykgewo+ ICsJCWNhc2UgRTEwMDBfVFNZTkNSWENUTF9UWVBFX0w0X1YxOgo+ICsJCQlyZWd2YWwgPSByZDMy KEUxMDAwX1RTWU5DUlhDRkcpOwo+ICsJCQlpZiAoRTEwMDBfVFNZTkNSWENGR19QVFBfVjFfU1lO Q19NRVNTQUdFID09Cj4gKwkJCQkJKHJlZ3ZhbCAmCj4gKwkJCQkJIEUxMDAwX1RTWU5DUlhDRkdf UFRQX1YxX0NUUkxUX01BU0spKQo+ICsJCQkJaW5mby0+cnhfcmVzZXJ2ZWRbMF0gPQo+ICsJCQkJ CSgxIDw8IEhXVFNUQU1QX0ZJTFRFUl9QVFBfVjFfTDRfU1lOQyk7Cj4gKwkJCWVsc2UgaWYgKEUx MDAwX1RTWU5DUlhDRkdfUFRQX1YxX0RFTEFZX1JFUV9NRVNTQUdFCj4gKwkJCQkJPT0gKHJlZ3Zh bCAmCj4gKwkJCQkJRTEwMDBfVFNZTkNSWENGR19QVFBfVjFfQ1RSTFRfTUFTSykpCj4gKwkJCQlp bmZvLT5yeF9yZXNlcnZlZFswXSA9Cj4gKwkJCQkJKDEgPDwKPiArCQkJCQkgSFdUU1RBTVBfRklM VEVSX1BUUF9WMV9MNF9ERUxBWV9SRVEpOwo+ICsJCQllbHNlCj4gKwkJCQlyZXR1cm4gLUVSQU5H RTsKPiArCQkJYnJlYWs7Cj4gKwkJY2FzZSBFMTAwMF9UU1lOQ1JYQ1RMX1RZUEVfTDJfTDRfVjI6 Cj4gKwkJCXJlZ3ZhbCA9IHJkMzIoRTEwMDBfVFNZTkNSWENGRyk7Cj4gKwkJCWlmIChFMTAwMF9U U1lOQ1JYQ0ZHX1BUUF9WMl9TWU5DX01FU1NBR0UgPT0KPiArCQkJCQkocmVndmFsICYKPiArCQkJ CQkgRTEwMDBfVFNZTkNSWENGR19QVFBfVjJfTVNHSURfTUFTSykpCj4gKwkJCQlpbmZvLT5yeF9y ZXNlcnZlZFswXSA9Cj4gKwkJCQkJKDEgPDwgSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MMl9TWU5D KSB8Cj4gKwkJCQkJKDEgPDwgSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MNF9TWU5DKTsKPiArCQkJ ZWxzZSBpZiAoRTEwMDBfVFNZTkNSWENGR19QVFBfVjJfREVMQVlfUkVRX01FU1NBR0UgPT0KPiAr CQkJCQkocmVndmFsICYKPiArCQkJCQkgRTEwMDBfVFNZTkNSWENGR19QVFBfVjJfTVNHSURfTUFT SykpCj4gKwkJCQlpbmZvLT5yeF9yZXNlcnZlZFswXSA9Cj4gKwkJCQkJKDEgPDwKPiArCQkJCQkg SFdUU1RBTVBfRklMVEVSX1BUUF9WMl9MMl9ERUxBWV9SRVEpIHwKPiArCQkJCQkoMSA8PAo+ICsJ CQkJCSBIV1RTVEFNUF9GSUxURVJfUFRQX1YyX0w0X0RFTEFZX1JFUSk7Cj4gKwkJCWVsc2UKPiAr CQkJCXJldHVybiAtRVJBTkdFOwo+ICsJCQlicmVhazsKPiArCQljYXNlIEUxMDAwX1RTWU5DUlhD VExfVFlQRV9FVkVOVF9WMjoKPiArCQkJaW5mby0+cnhfcmVzZXJ2ZWRbMF0gPQo+ICsJCQkJKDEg PDwgSFdUU1RBTVBfRklMVEVSX1BUUF9WMl9FVkVOVCkgfAo+ICsJCQkJKDEgPDwgSFdUU1RBTVBf RklMVEVSX1BUUF9WMl9TWU5DKSB8Cj4gKwkJCQkoMSA8PCBIV1RTVEFNUF9GSUxURVJfUFRQX1Yy X0RFTEFZX1JFUSk7Cj4gKwkJCWJyZWFrOwo+ICsJCWRlZmF1bHQ6Cj4gKwkJCXJldHVybiAtRVJB TkdFOwo+ICsJCX0KPiArCj4gIAkJcmV0dXJuIDA7Cj4gIAlkZWZhdWx0Ogo+ICAJCXJldHVybiAt RU9QTk9UU1VQUDsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2V0aHRvb2wuaCBi L2luY2x1ZGUvdWFwaS9saW51eC9ldGh0b29sLmgKPiBpbmRleCAwYzliNDQ4Li4wNmNkYmMwIDEw MDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9ldGh0b29sLmgKPiArKysgYi9pbmNsdWRl L3VhcGkvbGludXgvZXRodG9vbC5oCj4gQEAgLTc3Miw3ICs3NzIsMTAgQEAgc3RydWN0IGV0aHRv b2xfc2ZlYXR1cmVzIHsKPiAgICogQHNvX3RpbWVzdGFtcGluZzogYml0IG1hc2sgb2YgdGhlIHN1 bSBvZiB0aGUgc3VwcG9ydGVkIFNPX1RJTUVTVEFNUElORyBmbGFncwo+ICAgKiBAcGhjX2luZGV4 OiBkZXZpY2UgaW5kZXggb2YgdGhlIGFzc29jaWF0ZWQgUEhDLCBvciAtMSBpZiB0aGVyZSBpcyBu b25lCj4gICAqIEB0eF90eXBlczogYml0IG1hc2sgb2YgdGhlIHN1cHBvcnRlZCBod3RzdGFtcF90 eF90eXBlcyBlbnVtZXJhdGlvbiB2YWx1ZXMKPiArICogQHR4X3Jlc2VydmVkWzBdOiBiaXQgbWFz ayBvZiB0aGUgaW4gdXNlIGh3dHN0YW1wX3R4X3R5cGVzIGVudW1lcmF0aW9uIHZhbHVlcwo+ICAg KiBAcnhfZmlsdGVyczogYml0IG1hc2sgb2YgdGhlIHN1cHBvcnRlZCBod3RzdGFtcF9yeF9maWx0 ZXJzIGVudW1lcmF0aW9uIHZhbHVlcwo+ICsgKiBAcnhfcmVzZXJ2ZWRbMF06IGJpdCBtYXNrIG9m IHRoZSBpbiB1c2UgaHd0c3RhbXBfcnhfZmlsdGVycyBlbnVtZXJhdGlvbgo+ICsgKiB2YWx1ZXMK PiAgICoKPiAgICogVGhlIGJpdHMgaW4gdGhlICd0eF90eXBlcycgYW5kICdyeF9maWx0ZXJzJyBm aWVsZHMgY29ycmVzcG9uZCB0bwo+ICAgKiB0aGUgJ2h3dHN0YW1wX3R4X3R5cGVzJyBhbmQgJ2h3 dHN0YW1wX3J4X2ZpbHRlcnMnIGVudW1lcmF0aW9uIHZhbHVlcywKPiAtLSAKPiAxLjcuMTEuNwoK Ci0tIApCZXN0IFJlZ2FyZHMsCkRvbmcgWmh1CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQWxpZW5W YXVsdCBVbmlmaWVkIFNlY3VyaXR5IE1hbmFnZW1lbnQgKFVTTSkgcGxhdGZvcm0gZGVsaXZlcnMg Y29tcGxldGUKc2VjdXJpdHkgdmlzaWJpbGl0eSB3aXRoIHRoZSBlc3NlbnRpYWwgc2VjdXJpdHkg Y2FwYWJpbGl0aWVzLiBFYXNpbHkgYW5kCmVmZmljaWVudGx5IGNvbmZpZ3VyZSwgbWFuYWdlLCBh bmQgb3BlcmF0ZSBhbGwgb2YgeW91ciBzZWN1cml0eSBjb250cm9scwpmcm9tIGEgc2luZ2xlIGNv bnNvbGUgYW5kIG9uZSB1bmlmaWVkIGZyYW1ld29yay4gRG93bmxvYWQgYSBmcmVlIHRyaWFsLgpo dHRwOi8vcC5zZi5uZXQvc2Z1L2FsaWVudmF1bHRfZDJkCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkUxMDAwLWRldmVsIG1haWxpbmcgbGlzdApFMTAwMC1k ZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQv bGlzdHMvbGlzdGluZm8vZTEwMDAtZGV2ZWwKVG8gbGVhcm4gbW9yZSBhYm91dCBJbnRlbCYjMTc0 OyBFdGhlcm5ldCwgdmlzaXQgaHR0cDovL2NvbW11bml0aWVzLmludGVsLmNvbS9jb21tdW5pdHkv d2lyZWQK