<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>155681</bug_id>
          
          <creation_ts>2016-03-19 07:27:58 -0700</creation_ts>
          <short_desc>Purge PassRefPtr from WebCore/html/shadow</short_desc>
          <delta_ts>2016-03-19 18:57:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joonghun Park">jh718.park</reporter>
          <assigned_to name="Joonghun Park">jh718.park</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1176484</commentid>
    <comment_count>0</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2016-03-19 07:27:58 -0700</bug_when>
    <thetext>Purge PassRefPtr from WebCore/html/shadow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176486</commentid>
    <comment_count>1</comment_count>
      <attachid>274514</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2016-03-19 08:06:34 -0700</bug_when>
    <thetext>Created attachment 274514
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176496</commentid>
    <comment_count>2</comment_count>
      <attachid>274514</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-19 09:41:02 -0700</bug_when>
    <thetext>Comment on attachment 274514
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=274514&amp;action=review

I prefer the name tryCreate to maybeCreate. The name &quot;maybe create&quot; makes it sound like the decision of whether to create or not is a policy choice. But it’s not, it’s an error handling strategy, and &quot;try create&quot; expresses that more clearly.

&gt; Source/WebCore/html/shadow/MediaControlsApple.cpp:511
&gt; +    Ref&lt;EventListener&gt; listener = eventListener();

I see no reason for this local variable to be a Ref&lt;EventListener&gt; instead of EventListener&amp;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176540</commentid>
    <comment_count>3</comment_count>
      <attachid>274527</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2016-03-19 17:05:29 -0700</bug_when>
    <thetext>Created attachment 274527
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176542</commentid>
    <comment_count>4</comment_count>
      <attachid>274514</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2016-03-19 17:11:14 -0700</bug_when>
    <thetext>Comment on attachment 274514
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=274514&amp;action=review

I changed maybeCreateFoo to tryCreateFoo where it just handles null error case.

&gt;&gt; Source/WebCore/html/shadow/MediaControlsApple.cpp:511
&gt;&gt; +    Ref&lt;EventListener&gt; listener = eventListener();
&gt; 
&gt; I see no reason for this local variable to be a Ref&lt;EventListener&gt; instead of EventListener&amp;.

I changed this to EventListener&amp; instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176552</commentid>
    <comment_count>5</comment_count>
      <attachid>274527</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-19 18:57:38 -0700</bug_when>
    <thetext>Comment on attachment 274527
Patch for landing

Clearing flags on attachment: 274527

Committed r198473: &lt;http://trac.webkit.org/changeset/198473&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176553</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-19 18:57:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274514</attachid>
            <date>2016-03-19 08:06:34 -0700</date>
            <delta_ts>2016-03-19 17:05:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155681-20160320000602.patch</filename>
            <type>text/plain</type>
            <size>17599</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4NDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTE1YTFiMjJmMGEyMThk
YWJiNGUzNTdkYTMzNWI5ZTQ0MDg4ZWQ0Yi4uY2Q4NTZjOThlNWUyNjJjN2I1OGNkZWM2MDU3ODI5
OGNmYjBhNDNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE2LTAzLTE5ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBQdXJnZSBQYXNz
UmVmUHRyIGZyb20gV2ViQ29yZS9odG1sL3NoYWRvdworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBuZXcgYmVoYXZpb3Vycy4K
KworICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaDoKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sczo6bWF5YmVDcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Fw
cGxlOjptYXliZUNyZWF0ZUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bHNBcHBsZTo6c2hvd0Nsb3NlZENhcHRpb25UcmFja0xpc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sc0FwcGxlOjpoaWRlQ2xvc2VkQ2FwdGlvblRyYWNrTGlzdCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQXBwbGU6OmV2ZW50TGlzdGVuZXIpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sczo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJvbHMpOiBEZWxldGVkLgorICAgICAg
ICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5oOgorICAgICAgICAqIGh0bWwvc2hh
ZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6bWF5YmVDcmVhdGUpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oOgorCiAy
MDE2LTAzLTE4ICBaaHVvIExpICA8emFjaGxpQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUg
QXV0b0ZpbGwgYnV0dG9uIGluIGlucHV0IGZpZWxkcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbHMuaAppbmRleCA1M2Q2NWIxZjAwN2E4OTM4NzVlNTAwMzY5ODBhODQz
ZWEyNmUwMjAxLi5iNjU3MDVjZjM1ZTc2MzNmYWZjMTUwZWM3YmMzMmRkYzFhOTAxM2Y5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oCkBAIC01OSw3ICs1OSw3
IEBAIGNsYXNzIE1lZGlhQ29udHJvbHMgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogCiAgICAg
Ly8gVGhpcyBmdW5jdGlvbiBpcyB0byBiZSBpbXBsZW1lbnRlZCBpbiB5b3VyIHBvcnQtc3BlY2lm
aWMgbWVkaWEKICAgICAvLyBjb250cm9scyBpbXBsZW1lbnRhdGlvbiBzaW5jZSBpdCB3aWxsIHJl
dHVybiBhIGNoaWxkIGluc3RhbmNlLgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJv
bHM+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFDb250cm9scz4g
bWF5YmVDcmVhdGUoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRNZWRpYUNvbnRy
b2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCmluZGV4IDM1NjlhZmFiY2VlZDA0
Y2Y2YWE2ZmY5ZGI3ZGMyNmEwNDAyM2UyY2MuLjA3NjNmNTc4YWJmNWFhMjMwODYzMTZiMzMxY2Jj
N2JmYzhjYWIxZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbHNBcHBsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sc0FwcGxlLmNwcApAQCAtNTUsNjMgKzU1LDYzIEBAIE1lZGlhQ29udHJvbHNBcHBsZTo6
TWVkaWFDb250cm9sc0FwcGxlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKIH0KIAotUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xzPiBNZWRpYUNvbnRyb2xzOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
KQorUmVmUHRyPE1lZGlhQ29udHJvbHM+IE1lZGlhQ29udHJvbHM6Om1heWJlQ3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gTWVkaWFDb250cm9sc0FwcGxlOjpjcmVhdGVD
b250cm9scyhkb2N1bWVudCk7CisgICAgcmV0dXJuIE1lZGlhQ29udHJvbHNBcHBsZTo6bWF5YmVD
cmVhdGVDb250cm9scyhkb2N1bWVudCk7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0Fw
cGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50JiBkb2N1bWVu
dCkKK1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1lZGlhQ29udHJvbHNBcHBsZTo6bWF5YmVD
cmVhdGVDb250cm9scyhEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFkb2N1bWVudC5w
YWdlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJv
bHNBcHBsZT4gY29udHJvbHMgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sc0FwcGxlKGRvY3Vt
ZW50KSk7CisgICAgYXV0byBjb250cm9scyA9IGFkb3B0UmVmKCpuZXcgTWVkaWFDb250cm9sc0Fw
cGxlKGRvY3VtZW50KSk7CiAKLSAgICBSZWY8TWVkaWFDb250cm9sUGFuZWxFbGVtZW50PiBwYW5l
bCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBhdXRv
IHBhbmVsID0gTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCiAg
ICAgRXhjZXB0aW9uQ29kZSBlYzsKIAotICAgIFJlZjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25F
bGVtZW50PiByZXdpbmRCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworICAgIGF1dG8gcmV3aW5kQnV0dG9uID0gTWVkaWFDb250cm9sUmV3
aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9yZXdp
bmRCdXR0b24gPSByZXdpbmRCdXR0b24ucHRyKCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdU
Rk1vdmUocmV3aW5kQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICBSZWY8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlCdXR0
b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAg
ICBhdXRvIHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9wbGF5QnV0dG9uID0gcGxheUJ1dHRvbi5wdHIo
KTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGTW92ZShwbGF5QnV0dG9uKSwgZWMpOwogICAg
IGlmIChlYykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWY8TWVkaWFDb250cm9s
UmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IHJldHVyblRvUmVhbHRpbWVCdXR0b24gPSBN
ZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKKyAgICBhdXRvIHJldHVyblRvUmVhbHRpbWVCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXR1cm5U
b1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+
bV9yZXR1cm5Ub1JlYWxUaW1lQnV0dG9uID0gcmV0dXJuVG9SZWFsdGltZUJ1dHRvbi5wdHIoKTsK
ICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGTW92ZShyZXR1cm5Ub1JlYWx0aW1lQnV0dG9uKSwg
ZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoZG9j
dW1lbnQucGFnZSgpLT50aGVtZSgpLnVzZXNNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5KCkpIHsK
LSAgICAgICAgUmVmPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBzdGF0dXNEaXNw
bGF5ID0gTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CisgICAgICAgIGF1dG8gc3RhdHVzRGlzcGxheSA9IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgICAgICBjb250cm9scy0+bV9zdGF0dXNEaXNw
bGF5ID0gc3RhdHVzRGlzcGxheS5wdHIoKTsKICAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdU
Rk1vdmUoc3RhdHVzRGlzcGxheSksIGVjKTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgUmVmPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29u
dGFpbmVyRWxlbWVudD4gdGltZWxpbmVDb250YWluZXIgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUNv
bnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgYXV0byB0aW1lbGluZUNvbnRh
aW5lciA9IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKIAotICAgIFJlZjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBj
dXJyZW50VGltZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGF1dG8gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFD
b250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBj
b250cm9scy0+bV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkucHRyKCk7
CiAgICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKFdURk1vdmUoY3VycmVudFRpbWVE
aXNwbGF5KSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAg
ICBSZWY8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1lZGlhQ29udHJv
bFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CisgICAg
YXV0byB0aW1lbGluZSA9IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50LCBjb250cm9scy5wdHIoKSk7CiAgICAgY29udHJvbHMtPm1fdGltZWxpbmUgPSB0aW1lbGlu
ZS5wdHIoKTsKICAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGTW92ZSh0aW1l
bGluZSksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
UmVmPE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudD4gdGltZVJlbWFpbmlu
Z0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CisgICAgYXV0byB0aW1lUmVtYWluaW5nRGlzcGxheSA9IE1lZGlhQ29udHJv
bFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250
cm9scy0+bV90aW1lUmVtYWluaW5nRGlzcGxheSA9IHRpbWVSZW1haW5pbmdEaXNwbGF5LnB0cigp
OwogICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEZNb3ZlKHRpbWVSZW1haW5p
bmdEaXNwbGF5KSwgZWMpOwogICAgIGlmIChlYykKQEAgLTEyMywyOSArMTIzLDI5IEBAIFBhc3NS
ZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRy
b2xzKERvY3VtZW50JiBkb2N1CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gRklY
TUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYzPgot
ICAgIFJlZjxNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ+IHNlZWtCYWNrQnV0dG9u
ID0gTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwor
ICAgIGF1dG8gc2Vla0JhY2tCdXR0b24gPSBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fc2Vla0JhY2tCdXR0b24gPSBz
ZWVrQmFja0J1dHRvbi5wdHIoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGTW92ZShzZWVr
QmFja0J1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgLy8gRklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0Lm9y
Zy9iLzU3MTYzPgotICAgIFJlZjxNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ+
IHNlZWtGb3J3YXJkQnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGF1dG8gc2Vla0ZvcndhcmRCdXR0b24gPSBNZWRpYUNv
bnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29u
dHJvbHMtPm1fc2Vla0ZvcndhcmRCdXR0b24gPSBzZWVrRm9yd2FyZEJ1dHRvbi5wdHIoKTsKICAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGTW92ZShzZWVrRm9yd2FyZEJ1dHRvbiksIGVjKTsKICAg
ICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKGRvY3VtZW50LnBh
Z2UoKS0+dGhlbWUoKS5zdXBwb3J0c0Nsb3NlZENhcHRpb25pbmcoKSkgewotICAgICAgICBSZWY8
TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50PiBjbG9zZWRDYXB0aW9u
c0NvbnRhaW5lciA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgYXV0byBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9
IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKIAotICAgICAgICBSZWY8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RF
bGVtZW50PiBjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRp
b25zVHJhY2tMaXN0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7Cisg
ICAgICAgIGF1dG8gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBNZWRpYUNvbnRyb2xDbG9zZWRD
YXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMucHRyKCkp
OwogICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IGNsb3NlZENh
cHRpb25zVHJhY2tMaXN0LnB0cigpOwogICAgICAgICBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+
YXBwZW5kQ2hpbGQoV1RGTW92ZShjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCksIGVjKTsKICAgICAg
ICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgUmVmPE1l
ZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gdG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOworICAgICAgICBhdXRvIHRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLnB0cigpKTsKICAgICAg
ICAgY29udHJvbHMtPm1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSB0b2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbi5wdHIoKTsKICAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURk1vdmUo
dG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24pLCBlYyk7CiAgICAgICAgIGlmIChlYykKQEAgLTE1
OCwxNyArMTU4LDE3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRy
b2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50JiBkb2N1CiAgICAgfQogCiAgICAgLy8g
RklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYz
PgotICAgIFJlZjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gZnVsbFNjcmVl
bkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOworICAgIGF1dG8gZnVsbFNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX2Z1bGxT
Y3JlZW5CdXR0b24gPSBmdWxsU2NyZWVuQnV0dG9uLnB0cigpOwogICAgIHBhbmVsLT5hcHBlbmRD
aGlsZChXVEZNb3ZlKGZ1bGxTY3JlZW5CdXR0b24pLCBlYyk7CiAKICAgICAvLyBUaGUgbXV0ZSBi
dXR0b24gYW5kIHRoZSBzbGlkZXIgZWxlbWVudCBzaG91bGQgYmUgaW4gdGhlIHNhbWUgZGl2Lgot
ICAgIFJlZjxIVE1MRGl2RWxlbWVudD4gcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgYXV0byBwYW5lbFZvbHVtZUNvbnRy
b2xDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIGlm
IChkb2N1bWVudC5wYWdlKCktPnRoZW1lKCkudXNlc01lZGlhQ29udHJvbFZvbHVtZVNsaWRlcigp
KSB7Ci0gICAgICAgIFJlZjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50
PiB2b2x1bWVTbGlkZXJDb250YWluZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWlu
ZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBhdXRvIHZvbHVtZVNsaWRlckNv
bnRhaW5lciA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CiAKLSAgICAgICAgUmVmPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVy
RWxlbWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworICAgICAgICBhdXRvIHNsaWRlciA9IE1lZGlhQ29udHJvbFBhbmVs
Vm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAgY29udHJvbHMt
Pm1fdm9sdW1lU2xpZGVyID0gc2xpZGVyLnB0cigpOwogICAgICAgICB2b2x1bWVTbGlkZXJDb250
YWluZXItPmFwcGVuZENoaWxkKFdURk1vdmUoc2xpZGVyKSwgZWMpOwogICAgICAgICBpZiAoZWMp
CkBAIC0xNzYsNyArMTc2LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1lZGlh
Q29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJvbHMoRG9jdW1lbnQmIGRvY3UKIAogICAgICAgICAv
LyBUaGlzIGlzIGEgZHVwbGljYXRlIG11dGUgYnV0dG9uLCB3aGljaCBpcyB2aXNpYmxlIGluIHNv
bWUgcG9ydHMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgdm9sdW1lIGJhci4KICAgICAgICAgLy8gSXQn
cyBpbXBvcnRhbnQgb25seSB3aGVuIHRoZSB2b2x1bWUgYmFyIGlzIGRpc3BsYXllZCBiZWxvdyB0
aGUgY29udHJvbHMuCi0gICAgICAgIFJlZjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0
dG9uRWxlbWVudD4gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlck11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgICAgICBhdXRvIHZv
bHVtZVNsaWRlck11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvbiA9IHZvbHVtZVNsaWRlck11dGVCdXR0b24ucHRyKCk7CiAgICAgICAgIHZv
bHVtZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGTW92ZSh2b2x1bWVTbGlkZXJNdXRl
QnV0dG9uKSwgZWMpOwogCkBAIC0xODksNyArMTg5LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRy
b2xzQXBwbGU+IE1lZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJvbHMoRG9jdW1lbnQmIGRv
Y3UKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIFJlZjxNZWRpYUNv
bnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRy
b2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgp
KTsKKyAgICBhdXRvIHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMucHRyKCkpOwogICAgIGNvbnRyb2xz
LT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5wdHIoKTsKICAgICBwYW5lbFZv
bHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKFdURk1vdmUocGFuZWxNdXRlQnV0dG9u
KSwgZWMpOwogICAgIGlmIChlYykKQEAgLTIwMCwxOSArMjAwLDE5IEBAIFBhc3NSZWZQdHI8TWVk
aWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3Vt
ZW50JiBkb2N1CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gRklYTUU6IE9ubHkg
Y3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYzPgotICAgIFJlZjxN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudD4gZnVsbFNjcmVlbk1p
blZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGF1dG8gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRv
biA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBm
dWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uLnB0cigpOwogICAgIHBhbmVsLT5hcHBlbmRDaGlsZChX
VEZNb3ZlKGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lU2xpZGVyRWxlbWVudD4gZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGF1dG8g
ZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlk
ZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5W
b2x1bWVTbGlkZXIgPSBmdWxsU2NyZWVuVm9sdW1lU2xpZGVyLnB0cigpOwogICAgIHBhbmVsLT5h
cHBlbmRDaGlsZChXVEZNb3ZlKGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIpLCBlYyk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZjxNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudD4gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9
IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOworICAgIGF1dG8gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAg
IGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVuTWF4Vm9s
dW1lQnV0dG9uLnB0cigpOwogICAgIHBhbmVsLT5hcHBlbmRDaGlsZChXVEZNb3ZlKGZ1bGxTY3Jl
ZW5NYXhWb2x1bWVCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQpAQCAtMjIzLDcgKzIyMyw3IEBA
IFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0
ZUNvbnRyb2xzKERvY3VtZW50JiBkb2N1CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAotICAgIHJldHVybiBjb250cm9scy5yZWxlYXNlKCk7CisgICAgcmV0dXJuIFdURk1v
dmUoY29udHJvbHMpOwogfQogCiB2b2lkIE1lZGlhQ29udHJvbHNBcHBsZTo6c2V0TWVkaWFDb250
cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjZSogY29udHJvbGxlcikKQEAgLTUwOCw3ICs1
MDgsNyBAQCB2b2lkIE1lZGlhQ29udHJvbHNBcHBsZTo6c2hvd0Nsb3NlZENhcHRpb25UcmFja0xp
c3QoKQogICAgIC8vIHRyYWNrIGxpc3QuCiAgICAgbV9wYW5lbC0+c2V0SW5saW5lU3R5bGVQcm9w
ZXJ0eShDU1NQcm9wZXJ0eVBvaW50ZXJFdmVudHMsIENTU1ZhbHVlTm9uZSk7CiAKLSAgICBSZWZQ
dHI8RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIgPSBldmVudExpc3RlbmVyKCk7CisgICAgUmVmPEV2
ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gZXZlbnRMaXN0ZW5lcigpOwogICAgIG1fY2xvc2VkQ2Fw
dGlvbnNDb250YWluZXItPmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLndoZWVsRXZlbnQs
IGxpc3RlbmVyLmNvcHlSZWYoKSwgdHJ1ZSk7CiAKICAgICAvLyBUcmFjayBjbGljayBldmVudHMg
aW4gdGhlIGNhcHR1cmUgcGhhc2UgYXQgdHdvIGxldmVscywgZmlyc3QgYXQgdGhlIGRvY3VtZW50
IGxldmVsCkBAIC01MzAsMTAgKzUzMCwxMCBAQCB2b2lkIE1lZGlhQ29udHJvbHNBcHBsZTo6aGlk
ZUNsb3NlZENhcHRpb25UcmFja0xpc3QoKQogICAgIC8vIEJ1dHRvbnMgaW4gdGhlIGNvbnRyb2xz
IHBhbmVsIG1heSBub3cgYmUgaW50ZXJhY3RpdmUuCiAgICAgbV9wYW5lbC0+cmVtb3ZlSW5saW5l
U3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVBvaW50ZXJFdmVudHMpOwogCi0gICAgRXZlbnRMaXN0
ZW5lciogbGlzdGVuZXIgPSBldmVudExpc3RlbmVyKCkuZ2V0KCk7Ci0gICAgbV9jbG9zZWRDYXB0
aW9uc0NvbnRhaW5lci0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkud2hlZWxFdmVu
dCwgbGlzdGVuZXIsIHRydWUpOwotICAgIGRvY3VtZW50KCkucmVtb3ZlRXZlbnRMaXN0ZW5lcihl
dmVudE5hbWVzKCkuY2xpY2tFdmVudCwgbGlzdGVuZXIsIHRydWUpOwotICAgIHJlbW92ZUV2ZW50
TGlzdGVuZXIoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIGxpc3RlbmVyLCB0cnVlKTsKKyAgICBF
dmVudExpc3RlbmVyJiBsaXN0ZW5lciA9IGV2ZW50TGlzdGVuZXIoKTsKKyAgICBtX2Nsb3NlZENh
cHRpb25zQ29udGFpbmVyLT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS53aGVlbEV2
ZW50LCAmbGlzdGVuZXIsIHRydWUpOworICAgIGRvY3VtZW50KCkucmVtb3ZlRXZlbnRMaXN0ZW5l
cihldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgJmxpc3RlbmVyLCB0cnVlKTsKKyAgICByZW1vdmVF
dmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCAmbGlzdGVuZXIsIHRydWUpOwog
fQogCiB2b2lkIE1lZGlhQ29udHJvbHNBcHBsZTo6c2V0RnVsbHNjcmVlblNsaWRlclZvbHVtZSgp
CkBAIC01NzUsMTEgKzU3NSwxMSBAQCB2b2lkIE1lZGlhQ29udHJvbHNBcHBsZTo6Y2xvc2VkQ2Fw
dGlvblRyYWNrc0NoYW5nZWQoKQogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xz
QXBwbGVFdmVudExpc3RlbmVyPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmV2ZW50TGlzdGVuZXIoKQor
TWVkaWFDb250cm9sc0FwcGxlRXZlbnRMaXN0ZW5lciYgTWVkaWFDb250cm9sc0FwcGxlOjpldmVu
dExpc3RlbmVyKCkKIHsKICAgICBpZiAoIW1fZXZlbnRMaXN0ZW5lcikKICAgICAgICAgbV9ldmVu
dExpc3RlbmVyID0gTWVkaWFDb250cm9sc0FwcGxlRXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKHRoaXMp
OwotICAgIHJldHVybiBtX2V2ZW50TGlzdGVuZXI7CisgICAgcmV0dXJuICptX2V2ZW50TGlzdGVu
ZXI7CiB9CiAKIC8vIC0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbHNBcHBsZS5oCmluZGV4IDFmZmNmZjA3YWEzYjIyN2U1NzA0NjI3NTBmYTdmYzNi
NWU0NzkyYmMuLmEzMGUwNTUyODJjZWIwNmRlYTgzNTQ4YzhjNDMxMGJhOTA5MWJkMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5oCkBAIC02
MSw3ICs2MSw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbHNBcHBsZSBmaW5hbCA6
IHB1YmxpYyBNZWRpYUNvbnRyb2xzIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xzQXBwbGU+IGNyZWF0ZUNvbnRyb2xzKERvY3VtZW50Jik7CisgICAgc3RhdGlj
IFJlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IG1heWJlQ3JlYXRlQ29udHJvbHMoRG9jdW1lbnQm
KTsKIAogICAgIC8vIE1lZGlhQ29udHJvbHMgaW1wbGVtZW50YXRpb24uCiAgICAgdm9pZCBzZXRN
ZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKikgb3ZlcnJpZGU7CkBAIC05
NSw3ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFDb250cm9sc0FwcGxlKERvY3VtZW50Jik7
CiAKICAgICB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKLSAgICBQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZUV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIo
KTsKKyAgICBNZWRpYUNvbnRyb2xzQXBwbGVFdmVudExpc3RlbmVyJiBldmVudExpc3RlbmVyKCk7
CiAKICAgICB2b2lkIHNob3dDbG9zZWRDYXB0aW9uVHJhY2tMaXN0KCk7CiAgICAgdm9pZCBoaWRl
Q2xvc2VkQ2FwdGlvblRyYWNrTGlzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAK
aW5kZXggMmMwNjQ2NzAwMWNmZWNiY2M5NTA2YTQzNTBlYTgyODFhOGEyNDQ2My4uNGNjNDAyMDE5
NzNiOWYyZGJlMjhhNjZjMGQxN2MzNjY5NTIyZWNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1l
bnRNYWMuY3BwCkBAIC04OSwxMiArODksMTIgQEAgSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRN
YWM6On5JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYygpCiB7CiB9CiAKLVBhc3NSZWZQdHI8
SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM+IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50
TWFjOjptYXliZUNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWZQdHI8SW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWM+IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjptYXliZUNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFkb2N1bWVudC5wYWdlKCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmUHRyPEltYWdlQ29udHJvbHNCdXR0b25F
bGVtZW50TWFjPiBidXR0b24gPSBhZG9wdFJlZihuZXcgSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1l
bnRNYWMoZG9jdW1lbnQpKTsKKyAgICBhdXRvIGJ1dHRvbiA9IGFkb3B0UmVmKCpuZXcgSW1hZ2VD
b250cm9sc0J1dHRvbkVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPnNldEF0dHJp
YnV0ZShIVE1MTmFtZXM6OmNsYXNzQXR0ciwgIngtd2Via2l0LWltYWdlLWNvbnRyb2xzLWJ1dHRv
biIpOwogCiAgICAgSW50U2l6ZSBwb3NpdGlvbk9mZnNldCA9IGRvY3VtZW50LnBhZ2UoKS0+dGhl
bWUoKS5pbWFnZUNvbnRyb2xzQnV0dG9uUG9zaXRpb25PZmZzZXQoKTsKQEAgLTEwMyw3ICsxMDMs
NyBAQCBQYXNzUmVmUHRyPEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjPiBJbWFnZUNvbnRy
b2xzQnV0dG9uRWxlbWVudE1hYzo6bWF5YmVDcgogICAgIC8vIEZJWE1FOiBXaHkgaXMgcmlnaHQ6
IDBweCBvZmYgdGhlIHJpZ2h0IGVkZ2Ugb2YgdGhlIHBhcmVudD8KICAgICBidXR0b24tPnNldElu
bGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlSaWdodCwgcG9zaXRpb25PZmZzZXQud2lkdGgo
KSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7CiAKLSAgICByZXR1cm4gYnV0dG9uLnJlbGVh
c2UoKTsKKyAgICByZXR1cm4gV1RGTW92ZShidXR0b24pOwogfQogCiB2b2lkIEltYWdlQ29udHJv
bHNCdXR0b25FbGVtZW50TWFjOjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0
dG9uRWxlbWVudE1hYy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjLmgKaW5kZXggNzQ3NWVmNjcwMWUzMWU5YmI5ZjFjZTA1ZWQ3
MzVhYWQ0NDY4MjE0Mi4uY2IyY2Y2NzU4NTMxNjBhY2VlYTkyZDZiM2VjZTJjMDc4MGU1Zjk2YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNC
dXR0b25FbGVtZW50TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0lt
YWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgSW1h
Z2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQg
ewogcHVibGljOgogICAgIHZpcnR1YWwgfkltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjKCk7
CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYz4g
bWF5YmVDcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmUHRyPEltYWdlQ29udHJvbHNC
dXR0b25FbGVtZW50TWFjPiBtYXliZUNyZWF0ZShEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAg
IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjKERvY3VtZW50Jik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274527</attachid>
            <date>2016-03-19 17:05:29 -0700</date>
            <delta_ts>2016-03-19 18:57:38 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-155681-20160320090520.patch</filename>
            <type>text/plain</type>
            <size>22594</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4NDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzA5ODI3ZGE2NzhlZGU1
NmY5MWRmYWMzNjc1MWYzZGZhNTUxZjg4ZS4uYzNhM2ZmYjA1OTBlN2Q5Yjc2N2Y1YzYxZmExMmU5
NDhjN2Y5ZDY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTAzLTE5ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBQdXJnZSBQYXNz
UmVmUHRyIGZyb20gV2ViQ29yZS9odG1sL3NoYWRvdworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBuZXcgYmVoYXZpb3Vycy4KKwor
ICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW1hZ2VFbGVtZW50Ojp1cGRhdGVJbWFnZUNvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJbWFnZUVsZW1lbnQ6OnRyeUNyZWF0ZUltYWdlQ29udHJvbHMpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlSW1hZ2VDb250cm9scyk6IERlbGV0ZWQuCisg
ICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cv
SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9scy5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzOjp0cnlDcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sc0FwcGxlOjp0cnlDcmVhdGVDb250cm9scyk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQXBwbGU6OnNob3dDbG9zZWRDYXB0aW9uVHJhY2tMaXN0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNBcHBsZTo6aGlkZUNsb3NlZENhcHRp
b25UcmFja0xpc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0FwcGxlOjpldmVu
dExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHM6OmNyZWF0ZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRy
b2xzKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUu
aDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRN
YWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM6
OnRyeUNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVu
dE1hYzo6bWF5YmVDcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvc2hhZG93L21hYy9J
bWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L21h
Yy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50Ojp0cnlDcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50OjptYXliZUNyZWF0ZSk6IERlbGV0ZWQuCisKIDIwMTYtMDMt
MTkgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIERhdGEgVVJM
IERlY29kZVRhc2sgbWF5IGdldCBkZWxldGVkIG91dHNpZGUgbWFpbiB0aHJlYWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDFjMDMwMDhjN2MwOTJjOGYwZjc2
MTZiMTJiY2E0YjliZGQ3MjFmYjAuLjFhODFmMmFjNTk3MzlmODYyNzlmNTEzZTUwM2I5YjljYTQ0
ZjM5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApAQCAtNTky
LDE1ICs1OTIsMTUgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50Ojp1cGRhdGVJbWFnZUNvbnRyb2xz
KCkKICAgICBpZiAoIW1fZXhwZXJpbWVudGFsSW1hZ2VNZW51RW5hYmxlZCAmJiBoYXNDb250cm9s
cykKICAgICAgICAgZGVzdHJveUltYWdlQ29udHJvbHMoKTsKICAgICBlbHNlIGlmIChtX2V4cGVy
aW1lbnRhbEltYWdlTWVudUVuYWJsZWQgJiYgIWhhc0NvbnRyb2xzKQotICAgICAgICBjcmVhdGVJ
bWFnZUNvbnRyb2xzKCk7CisgICAgICAgIHRyeUNyZWF0ZUltYWdlQ29udHJvbHMoKTsKIH0KIAot
dm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGVJbWFnZUNvbnRyb2xzKCkKK3ZvaWQgSFRNTElt
YWdlRWxlbWVudDo6dHJ5Q3JlYXRlSW1hZ2VDb250cm9scygpCiB7CiAgICAgQVNTRVJUKG1fZXhw
ZXJpbWVudGFsSW1hZ2VNZW51RW5hYmxlZCk7CiAgICAgQVNTRVJUKCFoYXNJbWFnZUNvbnRyb2xz
KCkpOwogCi0gICAgUmVmUHRyPEltYWdlQ29udHJvbHNSb290RWxlbWVudD4gaW1hZ2VDb250cm9s
cyA9IEltYWdlQ29udHJvbHNSb290RWxlbWVudDo6bWF5YmVDcmVhdGUoZG9jdW1lbnQoKSk7Cisg
ICAgYXV0byBpbWFnZUNvbnRyb2xzID0gSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50Ojp0cnlDcmVh
dGUoZG9jdW1lbnQoKSk7CiAgICAgaWYgKCFpbWFnZUNvbnRyb2xzKQogICAgICAgICByZXR1cm47
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggNWU5ZmViZTk3MWFi
M2I0NjQyYTk5Y2RlYzIxODY0ZTQzZDFlYTZkMS4uYWFlMzdiYTcyNjhlNGRhNTk3MDVmMTkzZjJj
N2Q0NmVjYWVhZDY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKQEAg
LTE0NCw3ICsxNDQsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMp
CiAgICAgdm9pZCB1cGRhdGVJbWFnZUNvbnRyb2xzKCk7Ci0gICAgdm9pZCBjcmVhdGVJbWFnZUNv
bnRyb2xzKCk7CisgICAgdm9pZCB0cnlDcmVhdGVJbWFnZUNvbnRyb2xzKCk7CiAgICAgdm9pZCBk
ZXN0cm95SW1hZ2VDb250cm9scygpOwogICAgIGJvb2wgaGFzSW1hZ2VDb250cm9scygpIGNvbnN0
OwogICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbWFnZUNv
bnRyb2xzUm9vdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0ltYWdlQ29u
dHJvbHNSb290RWxlbWVudC5oCmluZGV4IGZjYmI4OTY1MDNkZTFlZjRjMGJhODkxOWM0ZWU3NzA2
NjMxNzNmZmEuLjNjMDMxOTgyM2FhNWVhOGZkZDMwZjgxOWY5Y2RiM2YxNTQ0OGJiN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0ltYWdlQ29udHJvbHNSb290RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0ltYWdlQ29udHJvbHNSb290RWxl
bWVudC5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEltYWdlQ29udHJvbHNSb290RWxlbWVudCA6
IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW1hZ2VDb250
cm9sc1Jvb3RFbGVtZW50KCk7CiAKLSAgICBzdGF0aWMgUmVmUHRyPEltYWdlQ29udHJvbHNSb290
RWxlbWVudD4gbWF5YmVDcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmUHRyPEltYWdl
Q29udHJvbHNSb290RWxlbWVudD4gdHJ5Q3JlYXRlKERvY3VtZW50Jik7CiAKIHByb3RlY3RlZDoK
ICAgICBleHBsaWNpdCBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQoRG9jdW1lbnQmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaAppbmRleCA1M2Q2NWIxZjAwN2E4
OTM4NzVlNTAwMzY5ODBhODQzZWEyNmUwMjAxLi45YmU4Y2ZjYTljNzY2NjAzM2Y5OWJiNTE3MjEx
OTE0ZTBhZTAzMWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
cy5oCkBAIC01OSw3ICs1OSw3IEBAIGNsYXNzIE1lZGlhQ29udHJvbHMgOiBwdWJsaWMgSFRNTERp
dkVsZW1lbnQgewogCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyB0byBiZSBpbXBsZW1lbnRlZCBp
biB5b3VyIHBvcnQtc3BlY2lmaWMgbWVkaWEKICAgICAvLyBjb250cm9scyBpbXBsZW1lbnRhdGlv
biBzaW5jZSBpdCB3aWxsIHJldHVybiBhIGNoaWxkIGluc3RhbmNlLgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPE1lZGlhQ29udHJvbHM+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBSZWZQ
dHI8TWVkaWFDb250cm9scz4gdHJ5Q3JlYXRlKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgc2V0TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjZSopOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcAppbmRl
eCAzNTY5YWZhYmNlZWQwNGNmNmFhNmZmOWRiN2RjMjZhMDQwMjNlMmNjLi5lMDBiZDEwN2RmZjEz
OTg2ZmVkZjY2ZWE0ZTdkNTA0N2YyNzgyNTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAKQEAgLTU1LDYzICs1NSw2MyBAQCBNZWRp
YUNvbnRyb2xzQXBwbGU6Ok1lZGlhQ29udHJvbHNBcHBsZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7
CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9scz4gTWVkaWFDb250cm9sczo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKK1JlZlB0cjxNZWRpYUNvbnRyb2xzPiBNZWRpYUNvbnRyb2xzOjp0
cnlDcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBNZWRpYUNvbnRyb2xz
QXBwbGU6OmNyZWF0ZUNvbnRyb2xzKGRvY3VtZW50KTsKKyAgICByZXR1cm4gTWVkaWFDb250cm9s
c0FwcGxlOjp0cnlDcmVhdGVDb250cm9scyhkb2N1bWVudCk7CiB9CiAKLVBhc3NSZWZQdHI8TWVk
aWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3Vt
ZW50JiBkb2N1bWVudCkKK1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1lZGlhQ29udHJvbHNB
cHBsZTo6dHJ5Q3JlYXRlQ29udHJvbHMoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIGlmICgh
ZG9jdW1lbnQucGFnZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xzQXBwbGU+IGNvbnRyb2xzID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbHNB
cHBsZShkb2N1bWVudCkpOworICAgIGF1dG8gY29udHJvbHMgPSBhZG9wdFJlZigqbmV3IE1lZGlh
Q29udHJvbHNBcHBsZShkb2N1bWVudCkpOwogCi0gICAgUmVmPE1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudD4gcGFuZWwgPSBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CisgICAgYXV0byBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAKLSAgICBSZWY8TWVkaWFDb250cm9sUmV3
aW5kQnV0dG9uRWxlbWVudD4gcmV3aW5kQnV0dG9uID0gTWVkaWFDb250cm9sUmV3aW5kQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBhdXRvIHJld2luZEJ1dHRvbiA9IE1lZGlh
Q29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJv
bHMtPm1fcmV3aW5kQnV0dG9uID0gcmV3aW5kQnV0dG9uLnB0cigpOwogICAgIHBhbmVsLT5hcHBl
bmRDaGlsZChXVEZNb3ZlKHJld2luZEJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0gICAgUmVmPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50
PiBwbGF5QnV0dG9uID0gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CisgICAgYXV0byBwbGF5QnV0dG9uID0gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fcGxheUJ1dHRvbiA9IHBsYXlC
dXR0b24ucHRyKCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURk1vdmUocGxheUJ1dHRvbiks
IGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVmPE1l
ZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiByZXR1cm5Ub1JlYWx0aW1l
QnV0dG9uID0gTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CisgICAgYXV0byByZXR1cm5Ub1JlYWx0aW1lQnV0dG9uID0gTWVkaWFDb250
cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAg
Y29udHJvbHMtPm1fcmV0dXJuVG9SZWFsVGltZUJ1dHRvbiA9IHJldHVyblRvUmVhbHRpbWVCdXR0
b24ucHRyKCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURk1vdmUocmV0dXJuVG9SZWFsdGlt
ZUJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgaWYgKGRvY3VtZW50LnBhZ2UoKS0+dGhlbWUoKS51c2VzTWVkaWFDb250cm9sU3RhdHVzRGlz
cGxheSgpKSB7Ci0gICAgICAgIFJlZjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4g
c3RhdHVzRGlzcGxheSA9IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOworICAgICAgICBhdXRvIHN0YXR1c0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xTdGF0
dXNEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAgY29udHJvbHMtPm1f
c3RhdHVzRGlzcGxheSA9IHN0YXR1c0Rpc3BsYXkucHRyKCk7CiAgICAgICAgIHBhbmVsLT5hcHBl
bmRDaGlsZChXVEZNb3ZlKHN0YXR1c0Rpc3BsYXkpLCBlYyk7CiAgICAgICAgIGlmIChlYykKICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIFJlZjxNZWRpYUNvbnRyb2xU
aW1lbGluZUNvbnRhaW5lckVsZW1lbnQ+IHRpbWVsaW5lQ29udGFpbmVyID0gTWVkaWFDb250cm9s
VGltZWxpbmVDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGF1dG8gdGlt
ZWxpbmVDb250YWluZXIgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CiAKLSAgICBSZWY8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5
RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNw
bGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBhdXRvIGN1cnJlbnRUaW1lRGlzcGxh
eSA9IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CiAgICAgY29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNw
bGF5LnB0cigpOwogICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEZNb3ZlKGN1
cnJlbnRUaW1lRGlzcGxheSksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgUmVmPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGltZWxpbmUgPSBN
ZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0
KCkpOworICAgIGF1dG8gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCwgY29udHJvbHMucHRyKCkpOwogICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5l
ID0gdGltZWxpbmUucHRyKCk7CiAgICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKFdU
Rk1vdmUodGltZWxpbmUpLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAotICAgIFJlZjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IHRp
bWVSZW1haW5pbmdEaXNwbGF5ID0gTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGF1dG8gdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSBN
ZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAgICAgY29udHJvbHMtPm1fdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSB0aW1lUmVtYWluaW5nRGlz
cGxheS5wdHIoKTsKICAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoV1RGTW92ZSh0
aW1lUmVtYWluaW5nRGlzcGxheSksIGVjKTsKICAgICBpZiAoZWMpCkBAIC0xMjMsMjkgKzEyMywy
OSBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gTWVkaWFDb250cm9sc0FwcGxlOjpj
cmVhdGVDb250cm9scyhEb2N1bWVudCYgZG9jdQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAog
ICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcv
Yi81NzE2Mz4KLSAgICBSZWY8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBzZWVr
QmFja0J1dHRvbiA9IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKKyAgICBhdXRvIHNlZWtCYWNrQnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0JhY2tC
dXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3NlZWtCYWNr
QnV0dG9uID0gc2Vla0JhY2tCdXR0b24ucHRyKCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdU
Rk1vdmUoc2Vla0JhY2tCdXR0b24pLCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDov
L3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAgICBSZWY8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0
b25FbGVtZW50PiBzZWVrRm9yd2FyZEJ1dHRvbiA9IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0
dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBhdXRvIHNlZWtGb3J3YXJkQnV0dG9u
ID0gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwogICAgIGNvbnRyb2xzLT5tX3NlZWtGb3J3YXJkQnV0dG9uID0gc2Vla0ZvcndhcmRCdXR0b24u
cHRyKCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKFdURk1vdmUoc2Vla0ZvcndhcmRCdXR0b24p
LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChk
b2N1bWVudC5wYWdlKCktPnRoZW1lKCkuc3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5nKCkpIHsKLSAg
ICAgICAgUmVmPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gY2xv
c2VkQ2FwdGlvbnNDb250YWluZXIgPSBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5l
ckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIGF1dG8gY2xvc2VkQ2FwdGlvbnND
b250YWluZXIgPSBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CiAKLSAgICAgICAgUmVmPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25z
VHJhY2tMaXN0RWxlbWVudD4gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBNZWRpYUNvbnRyb2xD
bG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMu
Z2V0KCkpOworICAgICAgICBhdXRvIGNsb3NlZENhcHRpb25zVHJhY2tMaXN0ID0gTWVkaWFDb250
cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRy
b2xzLnB0cigpKTsKICAgICAgICAgY29udHJvbHMtPm1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3Qg
PSBjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdC5wdHIoKTsKICAgICAgICAgY2xvc2VkQ2FwdGlvbnND
b250YWluZXItPmFwcGVuZENoaWxkKFdURk1vdmUoY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QpLCBl
Yyk7CiAgICAgICAgIGlmIChlYykKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
ICAgIFJlZjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKKyAgICAg
ICAgYXV0byB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IE1lZGlhQ29udHJvbFRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5wdHIo
KSk7CiAgICAgICAgIGNvbnRyb2xzLT5tX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gdG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucHRyKCk7CiAgICAgICAgIHBhbmVsLT5hcHBlbmRDaGls
ZChXVEZNb3ZlKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uKSwgZWMpOwogICAgICAgICBpZiAo
ZWMpCkBAIC0xNTgsMTcgKzE1OCwxNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4g
TWVkaWFDb250cm9sc0FwcGxlOjpjcmVhdGVDb250cm9scyhEb2N1bWVudCYgZG9jdQogICAgIH0K
IAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5v
cmcvYi81NzE2Mz4KLSAgICBSZWY8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+
IGZ1bGxTY3JlZW5CdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBhdXRvIGZ1bGxTY3JlZW5CdXR0b24gPSBNZWRpYUNvbnRy
b2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9s
cy0+bV9mdWxsU2NyZWVuQnV0dG9uID0gZnVsbFNjcmVlbkJ1dHRvbi5wdHIoKTsKICAgICBwYW5l
bC0+YXBwZW5kQ2hpbGQoV1RGTW92ZShmdWxsU2NyZWVuQnV0dG9uKSwgZWMpOwogCiAgICAgLy8g
VGhlIG11dGUgYnV0dG9uIGFuZCB0aGUgc2xpZGVyIGVsZW1lbnQgc2hvdWxkIGJlIGluIHRoZSBz
YW1lIGRpdi4KLSAgICBSZWY8SFRNTERpdkVsZW1lbnQ+IHBhbmVsVm9sdW1lQ29udHJvbENvbnRh
aW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGF1dG8gcGFuZWxW
b2x1bWVDb250cm9sQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAKICAgICBpZiAoZG9jdW1lbnQucGFnZSgpLT50aGVtZSgpLnVzZXNNZWRpYUNvbnRyb2xWb2x1
bWVTbGlkZXIoKSkgewotICAgICAgICBSZWY8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFp
bmVyRWxlbWVudD4gdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgYXV0byB2b2x1
bWVTbGlkZXJDb250YWluZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCi0gICAgICAgIFJlZjxNZWRpYUNvbnRyb2xQYW5lbFZv
bHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVy
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgYXV0byBzbGlkZXIgPSBNZWRpYUNv
bnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgICAg
IGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5wdHIoKTsKICAgICAgICAgdm9sdW1l
U2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEZNb3ZlKHNsaWRlciksIGVjKTsKICAgICAg
ICAgaWYgKGVjKQpAQCAtMTc2LDcgKzE3Niw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0Fw
cGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50JiBkb2N1CiAK
ICAgICAgICAgLy8gVGhpcyBpcyBhIGR1cGxpY2F0ZSBtdXRlIGJ1dHRvbiwgd2hpY2ggaXMgdmlz
aWJsZSBpbiBzb21lIHBvcnRzIGF0IHRoZSBib3R0b20gb2YgdGhlIHZvbHVtZSBiYXIuCiAgICAg
ICAgIC8vIEl0J3MgaW1wb3J0YW50IG9ubHkgd2hlbiB0aGUgdm9sdW1lIGJhciBpcyBkaXNwbGF5
ZWQgYmVsb3cgdGhlIGNvbnRyb2xzLgotICAgICAgICBSZWY8TWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IHZvbHVtZVNsaWRlck11dGVCdXR0b24gPSBNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAg
ICAgYXV0byB2b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
TXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgICAgIGNvbnRyb2xzLT5t
X3ZvbHVtZVNsaWRlck11dGVCdXR0b24gPSB2b2x1bWVTbGlkZXJNdXRlQnV0dG9uLnB0cigpOwog
ICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKFdURk1vdmUodm9sdW1l
U2xpZGVyTXV0ZUJ1dHRvbiksIGVjKTsKIApAQCAtMTg5LDcgKzE4OSw3IEBAIFBhc3NSZWZQdHI8
TWVkaWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERv
Y3VtZW50JiBkb2N1CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBS
ZWY8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxNdXRlQnV0dG9uID0g
TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250
cm9scy5nZXQoKSk7CisgICAgYXV0byBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5l
bE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLnB0cigpKTsKICAg
ICBjb250cm9scy0+bV9wYW5lbE11dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0b24ucHRyKCk7CiAg
ICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZChXVEZNb3ZlKHBhbmVs
TXV0ZUJ1dHRvbiksIGVjKTsKICAgICBpZiAoZWMpCkBAIC0yMDAsMTkgKzIwMCwxOSBAQCBQYXNz
UmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gTWVkaWFDb250cm9sc0FwcGxlOjpjcmVhdGVDb250
cm9scyhEb2N1bWVudCYgZG9jdQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEZJ
WE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4K
LSAgICBSZWY8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+IGZ1
bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWlu
QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBhdXRvIGZ1bGxTY3JlZW5NaW5W
b2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuTWluVm9sdW1l
QnV0dG9uID0gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5wdHIoKTsKICAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQoV1RGTW92ZShmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uKSwgZWMpOwogICAgIGlm
IChlYykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWY8TWVkaWFDb250cm9sRnVs
bHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIgPSBNZWRp
YUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
KyAgICBhdXRvIGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIgPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVu
Vm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9m
dWxsU2NyZWVuVm9sdW1lU2xpZGVyID0gZnVsbFNjcmVlblZvbHVtZVNsaWRlci5wdHIoKTsKICAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGTW92ZShmdWxsU2NyZWVuVm9sdW1lU2xpZGVyKSwgZWMp
OwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWY8TWVkaWFD
b250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5NYXhWb2x1
bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBhdXRvIGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uID0gZnVsbFNj
cmVlbk1heFZvbHVtZUJ1dHRvbi5wdHIoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoV1RGTW92
ZShmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uKSwgZWMpOwogICAgIGlmIChlYykKQEAgLTIyMyw3
ICsyMjMsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gTWVkaWFDb250cm9sc0Fw
cGxlOjpjcmVhdGVDb250cm9scyhEb2N1bWVudCYgZG9jdQogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gY29udHJvbHMucmVsZWFzZSgpOworICAgIHJl
dHVybiBXVEZNb3ZlKGNvbnRyb2xzKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xzQXBwbGU6OnNl
dE1lZGlhQ29udHJvbGxlcihNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UqIGNvbnRyb2xsZXIpCkBA
IC01MDgsMTYgKzUwOCwxNiBAQCB2b2lkIE1lZGlhQ29udHJvbHNBcHBsZTo6c2hvd0Nsb3NlZENh
cHRpb25UcmFja0xpc3QoKQogICAgIC8vIHRyYWNrIGxpc3QuCiAgICAgbV9wYW5lbC0+c2V0SW5s
aW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVBvaW50ZXJFdmVudHMsIENTU1ZhbHVlTm9uZSk7
CiAKLSAgICBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIgPSBldmVudExpc3RlbmVyKCk7
Ci0gICAgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+YWRkRXZlbnRMaXN0ZW5lcihldmVudE5h
bWVzKCkud2hlZWxFdmVudCwgbGlzdGVuZXIuY29weVJlZigpLCB0cnVlKTsKKyAgICBFdmVudExp
c3RlbmVyJiBsaXN0ZW5lciA9IGV2ZW50TGlzdGVuZXIoKTsKKyAgICBtX2Nsb3NlZENhcHRpb25z
Q29udGFpbmVyLT5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS53aGVlbEV2ZW50LCAmbGlz
dGVuZXIsIHRydWUpOwogCiAgICAgLy8gVHJhY2sgY2xpY2sgZXZlbnRzIGluIHRoZSBjYXB0dXJl
IHBoYXNlIGF0IHR3byBsZXZlbHMsIGZpcnN0IGF0IHRoZSBkb2N1bWVudCBsZXZlbAogICAgIC8v
IHN1Y2ggdGhhdCBhIGNsaWNrIG91dHNpZGUgb2YgdGhlIDx2aWRlbz4gbWF5IGRpc21pc3MgdGhl
IHRyYWNrIGxpc3QsIHNlY29uZCBhdCB0aGUKICAgICAvLyBtZWRpYSBjb250cm9scyBsZXZlbCBz
dWNoIHRoYXQgYSBjbGljayBhbnl3aGVyZSBvdXRzaWRlIG9mIHRoZSB0cmFjayBsaXN0IGhpZGVz
IHRoZQogICAgIC8vIHRyYWNrIGxpc3QuIFRoZXNlIHR3byBsZXZlbHMgYXJlIG5lY2Vzc2FyeSBz
aW5jZSBpdCB3b3VsZCBub3QgYmUgcG9zc2libGUgdG8gZ2V0IGEKICAgICAvLyByZWZlcmVuY2Ug
dG8gdGhlIHRyYWNrIGxpc3Qgd2hlbiBoYW5kbGluZyB0aGUgZXZlbnQgb3V0c2lkZSBvZiB0aGUg
c2hhZG93IHRyZWUuCi0gICAgZG9jdW1lbnQoKS5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMo
KS5jbGlja0V2ZW50LCBsaXN0ZW5lci5jb3B5UmVmKCksIHRydWUpOwotICAgIGFkZEV2ZW50TGlz
dGVuZXIoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIFdURk1vdmUobGlzdGVuZXIpLCB0cnVlKTsK
KyAgICBkb2N1bWVudCgpLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQs
ICZsaXN0ZW5lciwgdHJ1ZSk7CisgICAgYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuY2xp
Y2tFdmVudCwgJmxpc3RlbmVyLCB0cnVlKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xzQXBwbGU6
OmhpZGVDbG9zZWRDYXB0aW9uVHJhY2tMaXN0KCkKQEAgLTUzMCwxMCArNTMwLDEwIEBAIHZvaWQg
TWVkaWFDb250cm9sc0FwcGxlOjpoaWRlQ2xvc2VkQ2FwdGlvblRyYWNrTGlzdCgpCiAgICAgLy8g
QnV0dG9ucyBpbiB0aGUgY29udHJvbHMgcGFuZWwgbWF5IG5vdyBiZSBpbnRlcmFjdGl2ZS4KICAg
ICBtX3BhbmVsLT5yZW1vdmVJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5UG9pbnRlckV2
ZW50cyk7CiAKLSAgICBFdmVudExpc3RlbmVyKiBsaXN0ZW5lciA9IGV2ZW50TGlzdGVuZXIoKS5n
ZXQoKTsKLSAgICBtX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyLT5yZW1vdmVFdmVudExpc3RlbmVy
KGV2ZW50TmFtZXMoKS53aGVlbEV2ZW50LCBsaXN0ZW5lciwgdHJ1ZSk7Ci0gICAgZG9jdW1lbnQo
KS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCBsaXN0ZW5lciwg
dHJ1ZSk7Ci0gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuY2xpY2tFdmVudCwg
bGlzdGVuZXIsIHRydWUpOworICAgIEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyID0gZXZlbnRMaXN0
ZW5lcigpOworICAgIG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXItPnJlbW92ZUV2ZW50TGlzdGVu
ZXIoZXZlbnROYW1lcygpLndoZWVsRXZlbnQsICZsaXN0ZW5lciwgdHJ1ZSk7CisgICAgZG9jdW1l
bnQoKS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCAmbGlzdGVu
ZXIsIHRydWUpOworICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmNsaWNrRXZl
bnQsICZsaXN0ZW5lciwgdHJ1ZSk7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sc0FwcGxlOjpzZXRG
dWxsc2NyZWVuU2xpZGVyVm9sdW1lKCkKQEAgLTU3NSwxMSArNTc1LDExIEBAIHZvaWQgTWVkaWFD
b250cm9sc0FwcGxlOjpjbG9zZWRDYXB0aW9uVHJhY2tzQ2hhbmdlZCgpCiAgICAgfQogfQogCi1Q
YXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZUV2ZW50TGlzdGVuZXI+IE1lZGlhQ29udHJvbHNB
cHBsZTo6ZXZlbnRMaXN0ZW5lcigpCitNZWRpYUNvbnRyb2xzQXBwbGVFdmVudExpc3RlbmVyJiBN
ZWRpYUNvbnRyb2xzQXBwbGU6OmV2ZW50TGlzdGVuZXIoKQogewogICAgIGlmICghbV9ldmVudExp
c3RlbmVyKQogICAgICAgICBtX2V2ZW50TGlzdGVuZXIgPSBNZWRpYUNvbnRyb2xzQXBwbGVFdmVu
dExpc3RlbmVyOjpjcmVhdGUodGhpcyk7Ci0gICAgcmV0dXJuIG1fZXZlbnRMaXN0ZW5lcjsKKyAg
ICByZXR1cm4gKm1fZXZlbnRMaXN0ZW5lcjsKIH0KIAogLy8gLS0tLS0tLS0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmgKaW5kZXggMWZmY2ZmMDdh
YTNiMjI3ZTU3MDQ2Mjc1MGZhN2ZjM2I1ZTQ3OTJiYy4uNjk4Y2MzODlkOWYyZDcyMDJiZjI0MWRj
YzFiYWY3M2YwM2JmMDQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sc0FwcGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sc0FwcGxlLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVk
aWFDb250cm9sc0FwcGxlIGZpbmFsIDogcHVibGljIE1lZGlhQ29udHJvbHMgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gY3JlYXRlQ29udHJvbHMo
RG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gdHJ5Q3Jl
YXRlQ29udHJvbHMoRG9jdW1lbnQmKTsKIAogICAgIC8vIE1lZGlhQ29udHJvbHMgaW1wbGVtZW50
YXRpb24uCiAgICAgdm9pZCBzZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJm
YWNlKikgb3ZlcnJpZGU7CkBAIC05NSw3ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFDb250
cm9sc0FwcGxlKERvY3VtZW50Jik7CiAKICAgICB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZl
bnQqKSBvdmVycmlkZTsKLSAgICBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZUV2ZW50TGlz
dGVuZXI+IGV2ZW50TGlzdGVuZXIoKTsKKyAgICBNZWRpYUNvbnRyb2xzQXBwbGVFdmVudExpc3Rl
bmVyJiBldmVudExpc3RlbmVyKCk7CiAKICAgICB2b2lkIHNob3dDbG9zZWRDYXB0aW9uVHJhY2tM
aXN0KCk7CiAgICAgdm9pZCBoaWRlQ2xvc2VkQ2FwdGlvblRyYWNrTGlzdCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVt
ZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xz
QnV0dG9uRWxlbWVudE1hYy5jcHAKaW5kZXggMmMwNjQ2NzAwMWNmZWNiY2M5NTA2YTQzNTBlYTgy
ODFhOGEyNDQ2My4uZDJjMDVlNmRhNzgyMTZmNDFlOGJiNmNmYTNhMTNhZDU5MGI0OGQyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0
b25FbGVtZW50TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1h
Z2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCkBAIC04OSwxMiArODksMTIgQEAgSW1hZ2VD
b250cm9sc0J1dHRvbkVsZW1lbnRNYWM6On5JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYygp
CiB7CiB9CiAKLVBhc3NSZWZQdHI8SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM+IEltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjOjptYXliZUNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CitSZWZQdHI8SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM+IEltYWdlQ29udHJvbHNCdXR0
b25FbGVtZW50TWFjOjp0cnlDcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIGlmICgh
ZG9jdW1lbnQucGFnZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxJ
bWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYz4gYnV0dG9uID0gYWRvcHRSZWYobmV3IEltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjKGRvY3VtZW50KSk7CisgICAgYXV0byBidXR0b24gPSBh
ZG9wdFJlZigqbmV3IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjKGRvY3VtZW50KSk7CiAg
ICAgYnV0dG9uLT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIsICJ4LXdlYmtpdC1p
bWFnZS1jb250cm9scy1idXR0b24iKTsKIAogICAgIEludFNpemUgcG9zaXRpb25PZmZzZXQgPSBk
b2N1bWVudC5wYWdlKCktPnRoZW1lKCkuaW1hZ2VDb250cm9sc0J1dHRvblBvc2l0aW9uT2Zmc2V0
KCk7CkBAIC0xMDMsNyArMTAzLDcgQEAgUGFzc1JlZlB0cjxJbWFnZUNvbnRyb2xzQnV0dG9uRWxl
bWVudE1hYz4gSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM6Om1heWJlQ3IKICAgICAvLyBG
SVhNRTogV2h5IGlzIHJpZ2h0OiAwcHggb2ZmIHRoZSByaWdodCBlZGdlIG9mIHRoZSBwYXJlbnQ/
CiAgICAgYnV0dG9uLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5UmlnaHQsIHBv
c2l0aW9uT2Zmc2V0LndpZHRoKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOwogCi0gICAg
cmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CisgICAgcmV0dXJuIFdURk1vdmUoYnV0dG9uKTsKIH0K
IAogdm9pZCBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6ZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudCogZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9t
YWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oCmluZGV4IDc0NzVlZjY3
MDFlMzFlOWJiOWYxY2UwNWVkNzM1YWFkNDQ2ODIxNDIuLmVjYjlmYjY0MDViNGYzN2M1NzViZmZk
MTFkN2YxZDI5YWZkYzI5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oCkBAIC0zNiw3
ICszNiw3IEBAIGNsYXNzIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjIGZpbmFsIDogcHVi
bGljIEhUTUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbWFnZUNvbnRyb2xz
QnV0dG9uRWxlbWVudE1hYygpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWM+IG1heWJlQ3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFJl
ZlB0cjxJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYz4gdHJ5Q3JlYXRlKERvY3VtZW50Jik7
CiAKIHByaXZhdGU6CiAgICAgSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMoRG9jdW1lbnQm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRy
b2xzUm9vdEVsZW1lbnRNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0lt
YWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKaW5kZXggMWMyMDQxMjhiMmNlMGZjODM3MjM3
MmIzNmU4ZTdiMjE3NzAxY2I4ZS4uMzU1MDMwODE2MjcyYzUxZDg4MGNlMjQ3Y2ZlNDU1MDljY2Rk
ZTE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29u
dHJvbHNSb290RWxlbWVudE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
bWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgdm9p
ZCBSZW5kZXJJbWFnZUNvbnRyb2xzOjpjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxv
Z2ljYWxIZWlnaHQsIExheW91dFUKICAgICBjb21wdXRlZFZhbHVlcy5tX2V4dGVudCA9IGRvd25j
YXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLmxvZ2ljYWxIZWlnaHQoKTsKIH0KIAotUmVmUHRy
PEltYWdlQ29udHJvbHNSb290RWxlbWVudD4gSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50OjptYXli
ZUNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWZQdHI8SW1hZ2VDb250cm9sc1Jvb3RFbGVt
ZW50PiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ6OnRyeUNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCiB7CiAgICAgaWYgKCFkb2N1bWVudC5wYWdlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwpAQCAtODgsNyArODgsNyBAQCBSZWZQdHI8SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50PiBJbWFn
ZUNvbnRyb2xzUm9vdEVsZW1lbnQ6Om1heWJlQ3JlYXRlKERvY3VtZW50JgogICAgIFJlZjxJbWFn
ZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM+IGNvbnRyb2xzID0gYWRvcHRSZWYoKm5ldyBJbWFnZUNv
bnRyb2xzUm9vdEVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKICAgICBjb250cm9scy0+c2V0QXR0cmli
dXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAieC13ZWJraXQtaW1hZ2UtY29udHJvbHMiKTsKIAot
ICAgIGlmIChSZWZQdHI8SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM+IGJ1dHRvbiA9IElt
YWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjptYXliZUNyZWF0ZShkb2N1bWVudCkpCisgICAg
aWYgKFJlZlB0cjxJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYz4gYnV0dG9uID0gSW1hZ2VD
b250cm9sc0J1dHRvbkVsZW1lbnRNYWM6OnRyeUNyZWF0ZShkb2N1bWVudCkpCiAgICAgICAgIGNv
bnRyb2xzLT5hcHBlbmRDaGlsZChidXR0b24ucmVsZWFzZU5vbk51bGwoKSk7CiAKICAgICByZXR1
cm4gV1RGTW92ZShjb250cm9scyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>