From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Cyrus-Session-Id: sloti22d1t05-2008515-1517318533-2-299940204868776602 X-Sieve: CMU Sieve 3.0 X-Spam-known-sender: no X-Spam-score: 0.0 X-Spam-hits: BAYES_00 -1.9, HEADER_FROM_DIFFERENT_DOMAINS 0.001, ME_NOAUTH 0.01, RCVD_IN_DNSWL_HI -5, T_RP_MATCHES_RCVD -0.01, LANGUAGES en, BAYES_USED global, SA_VERSION 3.4.0 X-Spam-source: IP='209.132.180.67', Host='vger.kernel.org', Country='US', FromHeader='com', MailFrom='org', XOriginatingCountry='UNK' X-Spam-charsets: from='utf-8', cc='utf-8', plain='utf-8' X-Resolved-to: greg@kroah.com X-Delivered-to: greg@kroah.com X-Mail-from: linux-usb-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; cv=none; d=messagingengine.com; s=arctest; t=1517318533; b=Fqb+oKnj49h36bh9lP/YMdQpCxFba19JeewF2dIbmufJKS8 Yn/6QopFHJzZqybsl7zOxeegsb6HdS9Yx7uf3pvx4NsKxTuiYTWp9hBIXCQCWeFy 3ATMrMs79pC44B0Dacr1Y7N3P9bD/VLDwLFxirxpqBNZpWJH5IJ84Vb9tBY8j3ER mXr6qD8xRne80NnREhTR2lgzh4E0pptRC4I0yGsy4c1ZVnXtzx0x3ivMJy6v1F+P mqFf5CggIvwT4egv268kpM6wgRTzGYDjSQp8qBgLVvMFgpPvbntjGS+6nQe8zouE +98XnUvCRF0/SMC9RO3POCeb5FcUMT2zUTqS/YQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=from:to:cc:subject:date:message-id :references:in-reply-to:content-type:content-transfer-encoding :mime-version:sender:list-id; s=arctest; t=1517318533; bh=9KFjir jXuF3PDnagZUMZuzwKjrr1Py0QteEJudFNRw8=; b=AMMq0b2b1dV0q5WQnNaxj6 RAmpb7Xm22rfa9myKFySUuLRBDHTs/6sw10abd7Kx2kjg6I+Uvk4kDYOeRamZMCn R09jWUfDK8DT8nEctgf4YTBEvTljJXsjPz5ZfKeNEa55Pb7ootwF2ZfYn3TMO17i tdS4LVRwuV3AN3O03iabKOyu/DsnTyXB1+C7X27OzmhwUOPV6eTIypUi/V1uj2qz 2cIXNyaKZcLEmDas/EbWtAblARsD4kebYXWgibwVDYU8Wj2m2rMQoW+P6K50ytCB wyidL9Oe3j84cm1W6584/HTPd/Wyuy8s/+sxJVkqtGt9NpmLOS5o82nAjBY79R6w == ARC-Authentication-Results: i=1; mx4.messagingengine.com; arc=none (no signatures found); dkim=none (no signatures found); dmarc=none (p=none,has-list-id=yes,d=none) header.from=richtek.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=linux-usb-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=richtek.com header.result=pass header_is_org_domain=yes Authentication-Results: mx4.messagingengine.com; arc=none (no signatures found); dkim=none (no signatures found); dmarc=none (p=none,has-list-id=yes,d=none) header.from=richtek.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=linux-usb-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=richtek.com header.result=pass header_is_org_domain=yes Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752397AbeA3NWJ (ORCPT ); Tue, 30 Jan 2018 08:22:09 -0500 Received: from mg.richtek.com ([220.130.44.152]:47528 "EHLO mg.richtek.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752461AbeA3NWG (ORCPT ); Tue, 30 Jan 2018 08:22:06 -0500 X-MailGates: (flag:4,DYNAMIC,BADHELO,RELAY,NOHOST:PASS)(compute_score:DE LIVER,40,3) From: =?utf-8?B?c2h1ZmFuX2xlZSjmnY7mm7jluIYp?= To: 'Guenter Roeck' CC: Heikki Krogerus , 'Jun Li' , ShuFanLee , =?utf-8?B?Y3lfaHVhbmco6buD5ZWf5Y6fKQ==?= , "linux-kernel@vger.kernel.org" , "linux-usb@vger.kernel.org" Subject: RE: [PATCH] USB TYPEC: RT1711H Type-C Chip Driver Thread-Topic: [PATCH] USB TYPEC: RT1711H Type-C Chip Driver Thread-Index: AQHTieCLFd+d5p/wz0qymBaVQ9+cLaN6DAKAgACwyuD//6aTAIAAiK7g//+In4CAAG9NgIAETJIQgACZXACACqxK8IAAZtUAgAGDp2A= Date: Tue, 30 Jan 2018 13:21:01 +0000 Message-ID: References: <1515567552-7692-1-git-send-email-leechu729@gmail.com> <20180119082218.GA22976@kuha.fi.intel.com> <25ced79e8ea84908bf6110a613ed81a2@ex1.rt.l> <20180119092413.GB22976@kuha.fi.intel.com> <20180119160235.GA21066@roeck-us.net> <20180122185034.GA26058@roeck-us.net> <20180129195752.GA24352@roeck-us.net> In-Reply-To: <20180129195752.GA24352@roeck-us.net> Accept-Language: zh-TW, en-US Content-Language: zh-TW X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [192.168.92.54] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-usb-owner@vger.kernel.org X-Mailing-List: linux-usb@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-Mailing-List: linux-kernel@vger.kernel.org List-ID: SGkgR3VlbnRlciwNCg0KICBGb3Igbm93LCBpdCBsb29rcyBsaWtlIHRoZXJlIGFyZSB0d28gd2F5 cyB0byBpbXBsZW1lbnQgdmVuZG9yIGRhdGEuIEl0IHdvdWxkIGJlIG5pY2UgdG8gaGVhciB5b3Vy IHN1Z2dlc3Rpb24uDQoNCiAgMS4gU2V0IHZlbmRvciBkYXRhIGluIHRoZSBkYXRhIGZpZWxkIG9m IG9mX2RldmljZV9pZC4NCklmIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHksIHRoaXMgd291bGQgYmUg dGhlIG9uZSBtb3JlIGxpa2UgeW91IG1lbnRpb25lZCBiZWZvcmUuDQpJbiB0aGlzIGNhc2UsIHRj cGNpX3J0MTcxMWhfZGF0YSBuZWVkcyB0byBiZSBkZWZpbmVkIGluc2lkZSB0Y3BjaS5jIG9yIGRl ZmluZWQgYnkgb3RoZXIgZmlsZSh0Y3BjaV9ydDE3MTFoLmMpIGJ1dCBleHRlcm4gaW4gdGNwY2ku Yy4NCg0KRm9yIGV4YW1wbGU6DQpzdGF0aWMgc3RydWN0IHRjcGNpX3ZlbmRvcl9kYXRhIHRjcGNp X3J0MTcxMWhfZGF0YSA9IHsNCi5pbml0ID0gcnQxNzExaF9pbml0Ow0KLmlycV9oYW5kbGVyID0g cnQxNzExaF9pcnFfaGFuZGxlcg0KfTsNCk9SDQpleHRlcm4gc3RydWN0IHRjcGNpX3ZlbmRvcl9k YXRhIHRjcGNpX3J0MTcxMWhfZGF0YTsNCg0KVGhlbiwgcHV0IHRoaXMgc3RydWN0dXJlIGhlcmUN CnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHRjcGNpX29mX21hdGNoW10gPSB7DQp7 IC5jb21wYXRpYmxlID0gInVzYix0Y3BjaSIsIH0sDQp7IC5jb21wYXRpYmxlID0gInJpY2h0ZWss cnQxNzExaCIsIC5kYXRhID0gKHZvaWQgKikmdGNwY2lfcnQxNzExaF9kYXRhIH0sDQp7fSwNCn07 DQoNCkZvciBvdGhlciB2ZW5kb3JzIHdobyB3YW50IHRvIGhhbmRsZSB2ZW5kb3IgZGF0YSBhbHNv IG5lZWQgdG8gYWRkIHRoZXNlIGNvZGUgaW5zaWRlIHRjcGNpLmMuDQpXZSBhcmUgbm90IHN1cmUg dGhhdCdzIHdoYXQgeW91IGV4cGVjdCBvciBub3QuDQoNCg0KMi4gSW4gdGNwY2kuYywgY3JlYXRl IGEgc3RhdGljIGxpc3RfaGVhZCB1c2VkIHRvIG1haW50YWluIHZlbmRvciBkYXRhLg0KVENQQ0kg ZHJpdmVyIHByb3ZpZGVzIGFuIEFQSSBmb3IgdGhvc2UgdmVuZG9ycyB0byBhZGQgdGhlaXIgdmVu ZG9yIGRhdGEgaW4gdGhlIGxpc3QuDQpUaGVuLCB3ZSBjb3VsZCBmaW5kIHZlbmRvciBkYXRhIGlu IHRoZSBsaXN0IGFjY29yZGluZyB0byBjb21wYXRpYmxlIHN0cmluZy4NCg0KRm9yIGV4YW1wbGU6 DQpJbiB0Y3BjaS5oDQpzdHJ1Y3QgdGNwY2lfdmVuZG9yX2RhdGEgew0KY29uc3QgY2hhciAqY29t cGF0aWJsZTsNCmludCAoKmluaXQpKC4uLik7DQppbnQgKCppcnFfaGFuZGxlcikoLi4uKTsNCnN0 cnVjdCBsaXN0X2hlYWQgbGlzdDsNCn07DQovKiBUaGlzIGZ1bmN0aW9uIGFkZHMgdGNwY2lfdmVu ZG9yX2RhdGEgdG8gdGhlIGxpc3QgKi8NCmV4dGVybiBpbnQgdGNwY2lfcmVnaXN0ZXJfdmVuZG9y X2RhdGEoc3RydWN0IHRjcGNpX3ZlbmRvcl9kYXRhICpkYXRhKTsNCg0KSW4gdGNwY2kuYw0Kc3Rh dGljIExJU1RfSEVBRCh0Y3BjaV92ZW5kb3JfZGF0YV9saXN0KTsNCmludCB0Y3BjaV9yZWdpc3Rl cl92ZW5kb3JfZGF0YSguLi4pDQp7DQouLi4NCmxpc3RfYWRkKC4uLik7DQouLi4NCn0NCg0KdGNw Y2lfaW5pdCgpDQp7DQouLi4NCi8qIEZpbmQgY29ycmVjdCB2ZW5kb3IgZGF0YSAqLw0KbGlzdF9m b3JfZWFjaCguLi4pDQouLi4NCn0NCg0KSW4gdGhpcyBjYXNlLCB2ZW5kb3IgbmVlZHMgdG8gZ3Vh cmFudGVlIHRoYXQgdmVuZG9yIGRhdGEgaXMgYWRkZWQgdG8gdGhlIGxpc3QgYmVmb3JlIHRjcGNp IHN0YXJ0cyB0byB3b3JrLg0KDQpCZXN0IFJlZ2FyZHMsDQoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKg0KU2h1LUZhbiBMZWUNClJpY2h0ZWsgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbg0KVEVM OiArODg2LTMtNTUyNjc4OSAjMjM1OQ0KRkFYOiArODg2LTMtNTUyNjYxMg0KKioqKioqKioqKioq KioqKioqKioqKioqKioqKioNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEd1 ZW50ZXIgUm9lY2sgW21haWx0bzpncm9lY2s3QGdtYWlsLmNvbV0gT24gQmVoYWxmIE9mIEd1ZW50 ZXIgUm9lY2sNClNlbnQ6IFR1ZXNkYXksIEphbnVhcnkgMzAsIDIwMTggMzo1OCBBTQ0KVG86IHNo dWZhbl9sZWUo5p2O5pu45biGKQ0KQ2M6IEhlaWtraSBLcm9nZXJ1czsgJ0p1biBMaSc7IFNodUZh bkxlZTsgY3lfaHVhbmco6buD5ZWf5Y6fKTsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsg bGludXgtdXNiQHZnZXIua2VybmVsLm9yZw0KU3ViamVjdDogUmU6IFtQQVRDSF0gVVNCIFRZUEVD OiBSVDE3MTFIIFR5cGUtQyBDaGlwIERyaXZlcg0KDQpPbiBNb24sIEphbiAyOSwgMjAxOCBhdCAw NzoxOTowNkFNICswMDAwLCBzaHVmYW5fbGVlKOadjuabuOW4hikgd3JvdGU6DQo+IEhpIEd1ZW50 ZXIsDQo+DQo+ICAgV2UgdHJ5IHRvIHVzZSB0aGUgVENQQ0kgZHJpdmVyIG9uIFJUMTcxMUggYW5k IGhlcmUgYXJlIHNvbWUgcXVlc3Rpb25zLg0KPg0KPiAgIFExLiBJcyBjdXJyZW50IFRDUENJIGRy aXZlciB3cml0dGVuIGFjY29yZGluZyB0byBUeXBlQyBQb3J0IENvbnRyb2xsZXIgSW50ZXJmYWNl IFNwZWNpZmljYXRpb24gUmV2aXNpb24gMS4wICYgVmVyc2lvbiAxLjI/DQoNClJldmlzaW9uIDEu MC4gTm90ZSB0aGF0IEkgZGlkIG5vdCBmaW5kIHJldmlzaW9uIDEuMiwgb25seSBSZXZpc2lvbiAx LjAgYW5kIFJldmlzaW9uIDIuMCB2ZXJzaW9uIDEuMC4NCg0KPiAgIFEyLiBCZWNhdXNlIDB4ODB+ MHhGRiBhcmUgdmVuZG9yIGRlZmluZWQgcmVnaXN0ZXJzLiBTb21lIG9mIHRoZW0gYXJlIG5lZWRl ZCB0byBiZSBpbml0aWFsaXplZCBpbiB0Y3BjaV9pbml0IGZvciBSVDE3MTFIIChvciBvdGhlciBj aGlwcyBhbHNvKS4NCj4gSW4gdGhlIGZ1dHVyZSBUQ1BDSSBkcml2ZXIsIHdpbGwgYW4gaW5pdGlh bCBpbnRlcmZhY2UgdGhhdCBpcyBjYWxsZWQgaW4gdGNwY2lfaW5pdCBiZSByZWxlYXNlZCBmb3Ig ZGlmZmVyZW50IHZlbmRvcnMgdG8gaW1wbGVtZW50Lg0KDQpNeSBzdWdnZXN0aW9uIHdvdWxkIGJl IHRvIHByb3ZpZGUgYW4gQVBJIGZvciB2ZW5kb3Igc3BlY2lmaWMgY29kZS4NCg0KPiBPciwgd2Ug c2hvdWxkIGRpcmVjdGx5IGNvcHkgdGNwY2kuYyB0byB0Y3BjaV9ydDE3MTFoLmMgYW5kIGFkZCB0 aGUgZGlmZmVyZW50IHBhcnRzPw0KDQpUaGF0IHdvdWxkIGRlZmVhdCB0aGUgcHVycG9zZS4gSXQg d291bGQgYmUgYmV0dGVyIHRvIGltcGxlbWVudCB2ZW5kb3Igc3BlY2lmaWMgY29kZSBpbiB0Y3Bj aV9ydDE3MTFoLmMgYW5kIGNhbGwgaXQgZnJvbSB0Y3BjaS5jDQoNClBvc3NpYmxlIGV4YW1wbGU6 DQoNCnN0cnVjdCB0Y3BjaV92ZW5kb3JfZGF0YSB7DQppbnQgKCppbml0KSguLi4pOw0KaW50ICgq aXJxX2hhbmRsZXIpKC4uLik7DQouLi4NCn0NCg0Kc3RhdGljIGlycXJldHVybl90IHRjcGNpX2ly cSguLi4pDQp7DQpzdHJ1Y3QgdGNwY2kgKnRjcGNpID0gZGV2X2lkOw0KDQouLi4NCmlmICh0Y3Bj aS0+dmVuZG9yX2RhdGEtPmlycV9oYW5kbGVyKSB7DQpyZXQgPSAoKnRjcGNpLT52ZW5kb3JfZGF0 YS0+aXJxX2hhbmRsZXIpKC4uLik7DQouLi4NCn0NCi4uLg0KfQ0KDQp0Y3BjaV9pbml0KCkNCnsN CnN0cnVjdCB0Y3BjaV92ZW5kb3JfZGF0YSAqdmVuZG9yX2RhdGEgPSAmdGNwY2lfcnQxNzExaF9k YXRhOw0KLy8gZWcgZnJvbSBkZXZpY2V0cmVlIGNvbXBhdGlibGUgcHJvcGVydHkNCg0KLi4uDQpp ZiAodmVuZG9yX2RhdGEtPmluaXQpIHsNCnJldCA9ICgqdmVuZG9yX2RhdGEtPmluaXQpKC4uLik7 DQppZiAocmV0KQ0KcmV0dXJuIHJldDsNCn0NCi4uLg0KfQ0KDQo+ICAgUTMuIElmIHRoZXJlIGFy ZSBJUlFzIGRlZmluZWQgaW4gdmVuZG9yIGRlZmluZWQgcmVnaXN0ZXJzLCB3aWxsIGFuIGludGVy ZmFjZSB0aGF0IGlzIGNhbGxlZCBpbiB0Y3BjaV9pcnEgYmUgcmVsZWFzZWQgZm9yIGRpZmZlcmVu dCB2ZW5kb3JzIHRvIGltcGxlbWVudC4NCj4gU28gdGhhdCB0aGV5IGNhbiBoYW5kbGUgdGhlaXIg b3duIElSUXMgZmlyc3Q/DQoNCklmIHRoZXJlIGFyZSB2ZW5kb3Igc3BlY2lmaWMgaW50ZXJydXB0 cywgSSB3b3VsZCBhc3N1bWUgdGhhdCB2ZW5kb3Igc3BlY2lmaWMgY29kZSB3aWxsIGhhdmUgdG8g YmUgY2FsbGVkLiBFaXRoZXIgdGhlIGdlbmVyaWMgaW50ZXJydXB0IGhhbmRsZXIgY2FuIGNhbGwg dmVuZG9yIHNwZWNpZmljIGNvZGUsIG9yIHRoZSB2ZW5kb3Igc3BlY2lmaWMgY29kZSBoYW5kbGVz IHRoZSBpbnRlcnJ1cHQgYW5kIGNhbGxzIHRoZSBnZW5lcmljIGhhbmRsZXIuIEkgZG9uJ3Qga25v dyBhdCB0aGlzIHBvaW50IHdoaWNoIG9uZSBpcyBiZXR0ZXIuDQoNCj4gSWYgdGhlIHN1Z2dlc3Rp b24gb2YgUTIgaXMgdG8gY29weSB0Y3BjaS5jIHRvIHRjcGNpX3J0MTcxMWguYywgdGhlbiBRMyB3 aWxsIG5vdCBiZSBhIHByb2JsZW0uDQo+ICAgUTQuIEFjY29yZGluZyB0byBUQ1BDSSBTcGVjaWZp Y2F0aW9uIFJldmlzaW9uIDEuMCwgd2Ugc2hvdWxkIHNldCBEUlAgPSAxIGFuZCByb2xlIHRvIFJw L1JwIG9yIFJkL1JkIGFuZCBzZXQgTE9PSzRDT05ORUNUSU9OIGNvbW1hbmQgdG8gc3RhcnQgdG9n Z2xlLg0KPiBTbyB3ZSBtb2RpZnkgdGhlIHRjcGNpX3N0YXJ0X2RycF90b2dnbGluZyBpbiBUQ1BD SSBkcml2ZXIgYXMgZm9sbG93aW5nLiBIZXJlIHdlIHdyaXRlIFJkL1JkIGFuZCBEUlAgPSAwIHNp bXVsdGFuZW91c2x5IHNvIHRoYXQgUmQvUmQgdGFrZXMgZWZmZWN0Lg0KPiBUaGVuIHdlIHdyaXRl IERSUCA9IDEgYW5kIHNldCBMT09LNENPTk5FQ1RJT04gY29tbWFuZCB0byBzdGFydCB0b2dnbGlu Zy4NCj4NClNHVE0uDQoNCj4gc3RhdGljIGludCB0Y3BjaV9zdGFydF9kcnBfdG9nZ2xpbmcoc3Ry dWN0IHRjcGNfZGV2ICp0Y3BjLA0KPiAgICAgIGVudW0gdHlwZWNfY2Nfc3RhdHVzIGNjKQ0KPiAg ew0KPiAraW50IHJldCA9IDA7DQo+ICBzdHJ1Y3QgdGNwY2kgKnRjcGNpID0gdGNwY190b190Y3Bj aSh0Y3BjKTsgLXVuc2lnbmVkIGludCByZWcgPQ0KPiBUQ1BDX1JPTEVfQ1RSTF9EUlA7DQo+ICt1 MzIgcmVnID0gKFRDUENfUk9MRV9DVFJMX0NDX1JEIDw8IFRDUENfUk9MRV9DVFJMX0NDMV9TSElG VCkgfA0KPiArKFRDUENfUk9MRV9DVFJMX0NDX1JEIDw8IFRDUENfUk9MRV9DVFJMX0NDMl9TSElG VCk7DQo+DQo+ICBzd2l0Y2ggKGNjKSB7DQo+ICBkZWZhdWx0Og0KPiBAQCAtMTI1LDggKzY3Miwx OSBAQCBzdGF0aWMgaW50IHRjcGNpX3N0YXJ0X2RycF90b2dnbGluZyhzdHJ1DQo+IFRDUENfUk9M RV9DVFJMX1JQX1ZBTF9TSElGVCk7ICBicmVhazsgIH0NCj4gLQ0KPiAtcmV0dXJuIHJlZ21hcF93 cml0ZSh0Y3BjaS0+cmVnbWFwLCBUQ1BDX1JPTEVfQ1RSTCwgcmVnKTsNCj4gK3JldCA9IHJlZ21h cF93cml0ZSh0Y3BjaS0+cmVnbWFwLCBUQ1BDX1JPTEVfQ1RSTCwgcmVnKTsgaWYgKHJldCA8IDAp DQo+ICtyZXR1cm4gcmV0OyBtZGVsYXkoMSk7DQoNClRoYXQgaXMgYmFkOyB5b3UgZG9uJ3Qgd2Fu dCB0byBob2xkIHVwIHRlaCBzeXN0ZW0gZm9yIHRoYXQgbXVjaC4NClRyeSB0byB1c2UgdXNsZWVw X3JhbmdlKCkuDQoNCj4gK3JlZyB8PSBUQ1BDX1JPTEVfQ1RSTF9EUlA7DQo+ICtyZXQgPSByZWdt YXBfd3JpdGUodGNwY2ktPnJlZ21hcCwgVENQQ19ST0xFX0NUUkwsIHJlZyk7IGlmIChyZXQgPCAw KQ0KPiArcmV0dXJuIHJldDsgcmV0ID0gcmVnbWFwX3dyaXRlKHRjcGNpLT5yZWdtYXAsIFRDUENf Q09NTUFORCwNCj4gK1RDUENfQ01EX0xPT0s0Q09OTkVDVElPTik7IGlmIChyZXQgPCAwKSByZXR1 cm4gcmV0OyByZXR1cm4gMDsNCj4gIH0NCj4NCj4gICBRNS4gVGhlIHRjcGNpX3NldF92YnVzIGlu IFRDUENJIGRyaXZlciB1c2VzIGNvbW1hbmQgdG8gY29udHJvbCBTaW5rL1NvdXJjZSBWQlVTLg0K PiBJZiBvdXIgY2hpcCBkb2VzIG5vdCBzdXBwb3J0IHBvd2VyIHBhdGgsIGkuZS4gU2luayAmIFNv dXJjZSBhcmUgY29udHJvbGxlZCBieSBvdGhlciBjaGFyZ2VyIElDLiBPdXIgY2hpcCB3aWxsIGRv IG5vdGhpbmcgd2hpbGUgc2V0dGluZyB0aGVzZSBjb21tYW5kcy4NCj4gSW4gdGhlIGZ1dHVyZSBU Q1BDSSBkcml2ZXIsIHdpbGwgYSBmcmFtZXdvcmsgYmUgYXBwbGllZCB0byBub3RpZnkgdGhlc2Ug ZXZlbnRzLiBpLmcuIHBvd2VyX3N1cHBseSBvciBub3RpZmllci4NCj4NCkkgd291bGQgdGhpbmsg c28uDQoNCk5vdGUgdGhhdCB0aGUgZHJpdmVyIGlzLCBhdCB0aGlzIHBvaW50LCBmYWlyIGdhbWUg dG8gY2hhbmdlIHRvIG1ha2UgaXQgd29yayB3aXRoIHlvdXIgY2hpcC4gVGhlIG9ubHkgY29uZGl0 aW9uIGlzIHRoYXQgYSBzdGFuZGFyZCBjaGlwIHNob3VsZCBzdGlsbCB3b3JrLCBpZSB5b3Ugc2hv dWxkIG5vdCBtYWtlIGFueSBjaGFuZ2VzIHdoaWNoIHdvdWxkIGNhdXNlIHRoZSBkcml2ZXIgdG8g X29ubHlfIHdvcmsgd2l0aCB5b3VyIGNoaXAuIEV2ZXJ5dGhpbmcgZWxzZSBpcyBmYWlyIGdhbWUu DQoNClRoYW5rcywNCkd1ZW50ZXINCioqKioqKioqKioqKiogRW1haWwgQ29uZmlkZW50aWFsaXR5 IE5vdGljZSAqKioqKioqKioqKioqKioqKioqKg0KDQpUaGUgaW5mb3JtYXRpb24gY29udGFpbmVk IGluIHRoaXMgZS1tYWlsIG1lc3NhZ2UgKGluY2x1ZGluZyBhbnkgYXR0YWNobWVudHMpIG1heSBi ZSBjb25maWRlbnRpYWwsIHByb3ByaWV0YXJ5LCBwcml2aWxlZ2VkLCBvciBvdGhlcndpc2UgZXhl bXB0IGZyb20gZGlzY2xvc3VyZSB1bmRlciBhcHBsaWNhYmxlIGxhd3MuIEl0IGlzIGludGVuZGVk IHRvIGJlIGNvbnZleWVkIG9ubHkgdG8gdGhlIGRlc2lnbmF0ZWQgcmVjaXBpZW50KHMpLiBBbnkg dXNlLCBkaXNzZW1pbmF0aW9uLCBkaXN0cmlidXRpb24sIHByaW50aW5nLCByZXRhaW5pbmcgb3Ig Y29weWluZyBvZiB0aGlzIGUtbWFpbCAoaW5jbHVkaW5nIGl0cyBhdHRhY2htZW50cykgYnkgdW5p bnRlbmRlZCByZWNpcGllbnQocykgaXMgc3RyaWN0bHkgcHJvaGliaXRlZCBhbmQgbWF5IGJlIHVu bGF3ZnVsLiBJZiB5b3UgYXJlIG5vdCBhbiBpbnRlbmRlZCByZWNpcGllbnQgb2YgdGhpcyBlLW1h aWwsIG9yIGJlbGlldmUgdGhhdCB5b3UgaGF2ZSByZWNlaXZlZCB0aGlzIGUtbWFpbCBpbiBlcnJv ciwgcGxlYXNlIG5vdGlmeSB0aGUgc2VuZGVyIGltbWVkaWF0ZWx5IChieSByZXBseWluZyB0byB0 aGlzIGUtbWFpbCksIGRlbGV0ZSBhbnkgYW5kIGFsbCBjb3BpZXMgb2YgdGhpcyBlLW1haWwgKGlu Y2x1ZGluZyBhbnkgYXR0YWNobWVudHMpIGZyb20geW91ciBzeXN0ZW0sIGFuZCBkbyBub3QgZGlz Y2xvc2UgdGhlIGNvbnRlbnQgb2YgdGhpcyBlLW1haWwgdG8gYW55IG90aGVyIHBlcnNvbi4gVGhh bmsgeW91IQ0K