<?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>111503</bug_id>
          
          <creation_ts>2013-03-05 17:41:31 -0800</creation_ts>
          <short_desc>Replace shouldLazyAttach bool with an enum for readability</short_desc>
          <delta_ts>2013-03-06 00:01:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>koivisto</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>philn</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>848307</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-05 17:41:31 -0800</bug_when>
    <thetext>Replace shouldLazyAttach bool with an enum for readabiliyt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848308</commentid>
    <comment_count>1</comment_count>
      <attachid>191619</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-05 17:42:04 -0800</bug_when>
    <thetext>Created attachment 191619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848309</commentid>
    <comment_count>2</comment_count>
      <attachid>191619</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-05 17:43:24 -0800</bug_when>
    <thetext>Comment on attachment 191619
Patch

Build error.  new patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848319</commentid>
    <comment_count>3</comment_count>
      <attachid>191621</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-05 17:50:32 -0800</bug_when>
    <thetext>Created attachment 191621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848321</commentid>
    <comment_count>4</comment_count>
      <attachid>191621</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-03-05 17:55:22 -0800</bug_when>
    <thetext>Comment on attachment 191621
Patch

wuv.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848368</commentid>
    <comment_count>5</comment_count>
      <attachid>191636</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-05 19:06:48 -0800</bug_when>
    <thetext>Created attachment 191636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848369</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-05 19:07:13 -0800</bug_when>
    <thetext>Sorry, I cleared your review.  HOpefully this fixes Gtk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848406</commentid>
    <comment_count>7</comment_count>
      <attachid>191636</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-03-05 19:56:39 -0800</bug_when>
    <thetext>Comment on attachment 191636
Patch

I got your back!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848409</commentid>
    <comment_count>8</comment_count>
      <attachid>191641</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-05 20:02:13 -0800</bug_when>
    <thetext>Created attachment 191641
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848411</commentid>
    <comment_count>9</comment_count>
      <attachid>191641</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-05 20:02:57 -0800</bug_when>
    <thetext>Comment on attachment 191641
Patch for landing

Waiting for gtk-ews to roll clean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848434</commentid>
    <comment_count>10</comment_count>
      <attachid>191641</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-05 21:22:26 -0800</bug_when>
    <thetext>Comment on attachment 191641
Patch for landing

Attachment 191641 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/16989147</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848503</commentid>
    <comment_count>11</comment_count>
      <attachid>191659</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-05 23:23:07 -0800</bug_when>
    <thetext>Created attachment 191659
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848528</commentid>
    <comment_count>12</comment_count>
      <attachid>191659</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-06 00:01:22 -0800</bug_when>
    <thetext>Comment on attachment 191659
Patch for landing

Clearing flags on attachment: 191659

Committed r144891: &lt;http://trac.webkit.org/changeset/144891&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848529</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-06 00:01:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191619</attachid>
            <date>2013-03-05 17:42:04 -0800</date>
            <delta_ts>2013-03-05 17:50:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111503-20130305173822.patch</filename>
            <type>text/plain</type>
            <size>44355</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI3ODYyNDhkNDk3ZDdi
Njg1OWYyYWFiOGYxZDcyOGM3ZmFhYmVhMC4uY2NlMGExMGUyYWRhM2M1NDBkZDY0ZjVlOTcyZGRi
YWQ5YWQ4MTMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTA1ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIHNob3VsZExhenlB
dHRhY2ggYm9vbCB3aXRoIGFuIGVudW0gZm9yIHJlYWRhYmlsaXR5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1MDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhhdmlvcmFsIGNoYW5nZS4KKwor
ICAgICAgICAqIGJpbmRpbmdzL2NwcC9XZWJET01Ob2RlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkRPTU5vZGU6Omluc2VydEJlZm9yZSk6CisgICAgICAgIChXZWJET01Ob2RlOjpyZXBsYWNlQ2hp
bGQpOgorICAgICAgICAoV2ViRE9NTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6Omluc2Vy
dEJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6OnJlcGxhY2VDaGlsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU05vZGU6OmFwcGVuZENoaWxkKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhOb2RlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6VjhOb2RlOjppbnNlcnRCZWZvcmVNZXRob2RDdXN0b20pOgorICAgICAgICAoV2Vi
Q29yZTo6VjhOb2RlOjpyZXBsYWNlQ2hpbGRNZXRob2RDdXN0b20pOgorICAgICAgICAoV2ViQ29y
ZTo6VjhOb2RlOjphcHBlbmRDaGlsZE1ldGhvZEN1c3RvbSk6CisgICAgICAgICogZG9tL0NvbnRh
aW5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250
YWluZXJOb2RlOjppbnNlcnRCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9k
ZTo6cmVwbGFjZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmFwcGVu
ZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVRyZWVBZnRlckluc2VydGlvbik6Cisg
ICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAgICAgKENvbnRhaW5lck5vZGUpOgor
ICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Omluc2VydEJl
Zm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAg
ICAgIChOb2RlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBl
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xzQXBwbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Fw
cGxlOjpjcmVhdGVDb250cm9scyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
c0JsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0JsYWNrQmVy
cnk6OmNyZWF0ZUNvbnRyb2xzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xz
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Nocm9taXVtOjpp
bml0aWFsaXplQ29udHJvbHMpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHND
aHJvbWl1bUFuZHJvaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Nocm9t
aXVtQW5kcm9pZDo6Y3JlYXRlQ29udHJvbHMpOgorCiAyMDEzLTAzLTA1ICBUb255IEdlbnRpbGNv
cmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ29tcGFjdEhUTUxUb2tlbiBkb2Vz
IG5vdCBuZWVkIGFuIFhTU0luZm8gcG9pbnRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvY3BwL1dlYkRPTU5vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvY3BwL1dlYkRPTU5vZGVDdXN0b20uY3BwCmluZGV4IDQxYWJiMGMyMWRmNmFiMGQ2MGUxYmRh
Y2RlZGIyMGVmM2JhODM2YjEuLjNjMmRkNTdmNDVhMGZjYWExNTkzMjdlMGVkZjJkODQ2YWFhZDdm
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2NwcC9XZWJET01Ob2RlQ3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9jcHAvV2ViRE9NTm9kZUN1c3Rv
bS5jcHAKQEAgLTMxLDcgKzMxLDcgQEAgV2ViRE9NTm9kZSBXZWJET01Ob2RlOjppbnNlcnRCZWZv
cmUoY29uc3QgV2ViRE9NTm9kZSYgbmV3Q2hpbGQsIGNvbnN0IFdlYkRPTU5vZGUKICAgICAgICAg
cmV0dXJuIFdlYkRPTU5vZGUoKTsKIAogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotICAgIGlmIChpbXBsKCktPmluc2VydEJlZm9yZSh0b1dlYkNvcmUobmV3Q2hpbGQpLCB0b1dl
YkNvcmUocmVmQ2hpbGQpLCBlYywgdHJ1ZSkpCisgICAgaWYgKGltcGwoKS0+aW5zZXJ0QmVmb3Jl
KHRvV2ViQ29yZShuZXdDaGlsZCksIHRvV2ViQ29yZShyZWZDaGlsZCksIGVjLCBBdHRhY2hMYXpp
bHkpKQogICAgICAgICByZXR1cm4gbmV3Q2hpbGQ7CiAKICAgICB3ZWJET01SYWlzZUVycm9yKHN0
YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVjKSk7CkBAIC00NCw3ICs0NCw3IEBAIFdl
YkRPTU5vZGUgV2ViRE9NTm9kZTo6cmVwbGFjZUNoaWxkKGNvbnN0IFdlYkRPTU5vZGUmIG5ld0No
aWxkLCBjb25zdCBXZWJET01Ob2RlCiAgICAgICAgIHJldHVybiBXZWJET01Ob2RlKCk7CiAKICAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpZiAoaW1wbCgpLT5yZXBsYWNl
Q2hpbGQodG9XZWJDb3JlKG5ld0NoaWxkKSwgdG9XZWJDb3JlKG9sZENoaWxkKSwgZWMsIHRydWUp
KQorICAgIGlmIChpbXBsKCktPnJlcGxhY2VDaGlsZCh0b1dlYkNvcmUobmV3Q2hpbGQpLCB0b1dl
YkNvcmUob2xkQ2hpbGQpLCBlYywgQXR0YWNoTGF6aWx5KSkKICAgICAgICAgcmV0dXJuIG9sZENo
aWxkOwogCiAgICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNlcHRpb25D
b2RlPihlYykpOwpAQCAtNzAsNyArNzAsNyBAQCBXZWJET01Ob2RlIFdlYkRPTU5vZGU6OmFwcGVu
ZENoaWxkKGNvbnN0IFdlYkRPTU5vZGUmIG5ld0NoaWxkKQogICAgICAgICByZXR1cm4gV2ViRE9N
Tm9kZSgpOwogCiAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaWYgKGlt
cGwoKS0+YXBwZW5kQ2hpbGQodG9XZWJDb3JlKG5ld0NoaWxkKSwgZWMsIHRydWUpKQorICAgIGlm
IChpbXBsKCktPmFwcGVuZENoaWxkKHRvV2ViQ29yZShuZXdDaGlsZCksIGVjLCBBdHRhY2hMYXpp
bHkpKQogICAgICAgICByZXR1cm4gbmV3Q2hpbGQ7CiAKICAgICB3ZWJET01SYWlzZUVycm9yKHN0
YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVjKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAppbmRleCAyYTkxN2Y1NTJiNjEwNTg5NTgwN2E2Y2Rh
MWIxNjliYzU5OGJhMmE2Li45OWYyZDU1MjJiY2Y5MGEwNDlkMDI0YjQ1MmI2ZjNlMGM5MDA1YjQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKQEAgLTE0
NSw3ICsxNDUsNyBAQCBKU1ZhbHVlIEpTTm9kZTo6aW5zZXJ0QmVmb3JlKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBOb2RlKiBpbXAgPSBzdGF0aWNfY2FzdDxOb2RlKj4oaW1wbCgpKTsKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wLT5pbnNlcnRCZWZvcmUodG9O
b2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgdG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMsIHRy
dWUpOworICAgIGJvb2wgb2sgPSBpbXAtPmluc2VydEJlZm9yZSh0b05vZGUoZXhlYy0+YXJndW1l
bnQoMCkpLCB0b05vZGUoZXhlYy0+YXJndW1lbnQoMSkpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJu
IGV4ZWMtPmFyZ3VtZW50KDApOwpAQCAtMTU2LDcgKzE1Niw3IEBAIEpTVmFsdWUgSlNOb2RlOjpy
ZXBsYWNlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIE5vZGUqIGltcCA9IHN0YXRpY19j
YXN0PE5vZGUqPihpbXBsKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wg
b2sgPSBpbXAtPnJlcGxhY2VDaGlsZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpLCB0b05vZGUo
ZXhlYy0+YXJndW1lbnQoMSkpLCBlYywgdHJ1ZSk7CisgICAgYm9vbCBvayA9IGltcC0+cmVwbGFj
ZUNoaWxkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSksIHRvTm9kZShleGVjLT5hcmd1bWVudCgx
KSksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAg
ICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMSk7CkBAIC0xNzgsNyAr
MTc4LDcgQEAgSlNWYWx1ZSBKU05vZGU6OmFwcGVuZENoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBOb2RlKiBpbXAgPSBzdGF0aWNfY2FzdDxOb2RlKj4oaW1wbCgpKTsKICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wLT5hcHBlbmRDaGlsZCh0b05vZGUoZXhl
Yy0+YXJndW1lbnQoMCkpLCBlYywgdHJ1ZSk7CisgICAgYm9vbCBvayA9IGltcC0+YXBwZW5kQ2hp
bGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICBpZiAob2spCiAgICAgICAgIHJldHVybiBleGVj
LT5hcmd1bWVudCgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOE5vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4Tm9kZUN1c3RvbS5jcHAKaW5kZXggZjNhOWNjNDkwMzlmMTQ5MmJjMDU1ZGQ3OGZkYzZkNzYy
MTc4MWRhMS4uMWM1MDA4MGNlNzI4ODNjNzFmM2NiMWQwMWFjMTgzNzYwM2Q2YjA1OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUN1c3RvbS5jcHAK
QEAgLTYwLDcgKzYwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBUaGlzIGZ1bmN0
aW9uIGlzIGN1c3RvbWl6ZWQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIG9wdGlvbmFsIDR0aCBh
cmd1bWVudDogc2hvdWxkTGF6eUF0dGFjaAorLy8gVGhpcyBmdW5jdGlvbiBpcyBjdXN0b21pemVk
IHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBvcHRpb25hbCA0dGggYXJndW1lbnQ6IEF0dGFjaEJl
aGF2aW9yCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhOb2RlOjppbnNlcnRCZWZvcmVNZXRob2RD
dXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IGhvbGRlciA9IGFyZ3MuSG9sZGVyKCk7CkBAIC02OCw3ICs2OCw3IEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOE5vZGU6Omluc2VydEJlZm9yZU1ldGhvZEN1c3RvbShjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgTm9kZSogbmV3
Q2hpbGQgPSBWOE5vZGU6Okhhc0luc3RhbmNlKGFyZ3NbMF0sIGFyZ3MuR2V0SXNvbGF0ZSgpKSA/
IFY4Tm9kZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKSkg
OiAwOwogICAgIE5vZGUqIHJlZkNoaWxkID0gVjhOb2RlOjpIYXNJbnN0YW5jZShhcmdzWzFdLCBh
cmdzLkdldElzb2xhdGUoKSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVj
dD46OkNhc3QoYXJnc1sxXSkpIDogMDsKLSAgICBib29sIHN1Y2Nlc3MgPSBpbXAtPmluc2VydEJl
Zm9yZShuZXdDaGlsZCwgcmVmQ2hpbGQsIGVjLCB0cnVlKTsKKyAgICBib29sIHN1Y2Nlc3MgPSBp
bXAtPmluc2VydEJlZm9yZShuZXdDaGlsZCwgcmVmQ2hpbGQsIGVjLCBBdHRhY2hMYXppbHkpOwog
ICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJ
c29sYXRlKCkpOwogICAgIGlmIChzdWNjZXNzKQpAQCAtNzYsNyArNzYsNyBAQCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhOb2RlOjppbnNlcnRCZWZvcmVNZXRob2RDdXN0b20oY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncwogICAgIHJldHVybiB2OE51bGwoYXJncy5HZXRJc29sYXRlKCkpOwogfQog
Ci0vLyBUaGlzIGZ1bmN0aW9uIGlzIGN1c3RvbWl6ZWQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhl
IG9wdGlvbmFsIDR0aCBhcmd1bWVudDogc2hvdWxkTGF6eUF0dGFjaAorLy8gVGhpcyBmdW5jdGlv
biBpcyBjdXN0b21pemVkIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBvcHRpb25hbCA0dGggYXJn
dW1lbnQ6IEF0dGFjaEJlaGF2aW9yCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhOb2RlOjpyZXBs
YWNlQ2hpbGRNZXRob2RDdXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGFyZ3MuSG9sZGVyKCk7CkBAIC04NCw3ICs4
NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE5vZGU6OnJlcGxhY2VDaGlsZE1ldGhvZEN1
c3RvbShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CiAgICAgTm9kZSogbmV3Q2hpbGQgPSBWOE5vZGU6Okhhc0luc3RhbmNlKGFyZ3NbMF0sIGFyZ3Mu
R2V0SXNvbGF0ZSgpKSA/IFY4Tm9kZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6
Q2FzdChhcmdzWzBdKSkgOiAwOwogICAgIE5vZGUqIG9sZENoaWxkID0gVjhOb2RlOjpIYXNJbnN0
YW5jZShhcmdzWzFdLCBhcmdzLkdldElzb2xhdGUoKSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1sxXSkpIDogMDsKLSAgICBib29sIHN1Y2Nlc3Mg
PSBpbXAtPnJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjLCB0cnVlKTsKKyAgICBi
b29sIHN1Y2Nlc3MgPSBpbXAtPnJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjLCBB
dHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlv
bihlYywgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIGlmIChzdWNjZXNzKQpAQCAtMTA2LDE0ICsx
MDYsMTQgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Tm9kZTo6cmVtb3ZlQ2hpbGRNZXRob2RD
dXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICByZXR1cm4gdjhOdWxsKGFyZ3Mu
R2V0SXNvbGF0ZSgpKTsKIH0KIAotLy8gVGhpcyBmdW5jdGlvbiBpcyBjdXN0b21pemVkIHRvIHRh
a2UgYWR2YW50YWdlIG9mIHRoZSBvcHRpb25hbCA0dGggYXJndW1lbnQ6IHNob3VsZExhenlBdHRh
Y2gKKy8vIFRoaXMgZnVuY3Rpb24gaXMgY3VzdG9taXplZCB0byB0YWtlIGFkdmFudGFnZSBvZiB0
aGUgb3B0aW9uYWwgNHRoIGFyZ3VtZW50OiBBdHRhY2hCZWhhdmlvcgogdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4Tm9kZTo6YXBwZW5kQ2hpbGRNZXRob2RDdXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKIHsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGFyZ3MuSG9s
ZGVyKCk7CiAgICAgTm9kZSogaW1wID0gVjhOb2RlOjp0b05hdGl2ZShob2xkZXIpOwogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIE5vZGUqIG5ld0NoaWxkID0gVjhOb2RlOjpIYXNJbnN0
YW5jZShhcmdzWzBdLCBhcmdzLkdldElzb2xhdGUoKSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkpIDogMDsKLSAgICBib29sIHN1Y2Nlc3Mg
PSBpbXAtPmFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYywgdHJ1ZSApOworICAgIGJvb2wgc3VjY2Vz
cyA9IGltcC0+YXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlm
IChlYykKICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJc29sYXRl
KCkpOwogICAgIGlmIChzdWNjZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmlu
ZGV4IGIyMjk4ODFmNmU3OWVmODA5YTVmZWJiMDI1Yjk4Y2FlMWZhMDVkMjYuLjdiMzgzMWI3ZTI2
ZTA4MTk3YmUzNWVmOGI0M2ExZDVmMTllZjdmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
dm9pZCBkaXNwYXRjaENoaWxkSW5zZXJ0aW9uRXZlbnRzKE5vZGUqKTsKIHN0YXRpYyB2b2lkIGRp
c3BhdGNoQ2hpbGRSZW1vdmFsRXZlbnRzKE5vZGUqKTsKLXN0YXRpYyB2b2lkIHVwZGF0ZVRyZWVB
ZnRlckluc2VydGlvbihDb250YWluZXJOb2RlKiwgTm9kZSosIGJvb2wgc2hvdWxkTGF6eUF0dGFj
aCk7CitzdGF0aWMgdm9pZCB1cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24oQ29udGFpbmVyTm9kZSos
IE5vZGUqLCBBdHRhY2hCZWhhdmlvcik7CiAKIHR5cGVkZWYgcGFpcjxSZWZQdHI8Tm9kZT4sIHVu
c2lnbmVkPiBDYWxsYmFja1BhcmFtZXRlcnM7CiB0eXBlZGVmIHBhaXI8Tm9kZUNhbGxiYWNrLCBD
YWxsYmFja1BhcmFtZXRlcnM+IENhbGxiYWNrSW5mbzsKQEAgLTI0Miw3ICsyNDIsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgY2hlY2tSZXBsYWNlQ2hpbGQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50
LCBOb2RlKiBuZXdDaGlsZCwgTgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIENvbnRhaW5l
ck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZD
aGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCkKK2Jvb2wgQ29u
dGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUq
IHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgQXR0YWNoQmVoYXZpb3IgYXR0YWNoQmVoYXZp
b3IpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlzIG5vZGUgaXMgbm90ICJmbG9hdGluZyIuCiAg
ICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBkZWxldGVkIGFzIGEgc2lkZSBlZmZlY3Qgb2Ygc2Vu
ZGluZyBtdXRhdGlvbiBldmVudHMuCkBAIC0yNTQsNyArMjU0LDcgQEAgYm9vbCBDb250YWluZXJO
b2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hp
bGQsIEV4Y2UKIAogICAgIC8vIGluc2VydEJlZm9yZShub2RlLCAwKSBpcyBlcXVpdmFsZW50IHRv
IGFwcGVuZENoaWxkKG5vZGUpCiAgICAgaWYgKCFyZWZDaGlsZCkKLSAgICAgICAgcmV0dXJuIGFw
cGVuZENoaWxkKG5ld0NoaWxkLCBlYywgc2hvdWxkTGF6eUF0dGFjaCk7CisgICAgICAgIHJldHVy
biBhcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMsIGF0dGFjaEJlaGF2aW9yKTsKIAogICAgIC8vIE1h
a2Ugc3VyZSBhZGRpbmcgdGhlIG5ldyBjaGlsZCBpcyBPSy4KICAgICBpZiAoIWNoZWNrQWRkQ2hp
bGQodGhpcywgbmV3Q2hpbGQuZ2V0KCksIGVjKSkKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIENv
bnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2Rl
KiByZWZDaGlsZCwgRXhjZQogCiAgICAgICAgIGluc2VydEJlZm9yZUNvbW1vbihuZXh0LmdldCgp
LCBjaGlsZCk7CiAKLSAgICAgICAgdXBkYXRlVHJlZUFmdGVySW5zZXJ0aW9uKHRoaXMsIGNoaWxk
LCBzaG91bGRMYXp5QXR0YWNoKTsKKyAgICAgICAgdXBkYXRlVHJlZUFmdGVySW5zZXJ0aW9uKHRo
aXMsIGNoaWxkLCBhdHRhY2hCZWhhdmlvcik7CiAgICAgfQogCiAgICAgZGlzcGF0Y2hTdWJ0cmVl
TW9kaWZpZWRFdmVudCgpOwpAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6
cGFyc2VySW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG5leHRD
aGlsCiAgICAgQ2hpbGROb2RlSW5zZXJ0aW9uTm90aWZpZXIodGhpcykubm90aWZ5KG5ld0NoaWxk
LmdldCgpKTsKIH0KIAotYm9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0
cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBib29s
IHNob3VsZExhenlBdHRhY2gpCitib29sIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNz
UmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMs
IEF0dGFjaEJlaGF2aW9yIGF0dGFjaEJlaGF2aW9yKQogewogICAgIC8vIENoZWNrIHRoYXQgdGhp
cyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVs
ZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRzLgpAQCAtNDQw
LDcgKzQ0MCw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8
Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlCiAgICAgICAgICAgICAgICAgYXBw
ZW5kQ2hpbGRUb0NvbnRhaW5lcihjaGlsZCwgdGhpcyk7CiAgICAgICAgIH0KIAotICAgICAgICB1
cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24odGhpcywgY2hpbGQsIHNob3VsZExhenlBdHRhY2gpOwor
ICAgICAgICB1cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24odGhpcywgY2hpbGQsIGF0dGFjaEJlaGF2
aW9yKTsKICAgICB9CiAKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7CkBAIC02
NTQsNyArNjU0LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGlsZHJlbigpCiAgICAg
ZGlzcGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOwogfQogCi1ib29sIENvbnRhaW5lck5vZGU6
OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVj
LCBib29sIHNob3VsZExhenlBdHRhY2gpCitib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxk
KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBBdHRhY2hCZWhh
dmlvciBhdHRhY2hCZWhhdmlvcikKIHsKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gcHJvdGVj
dCh0aGlzKTsKIApAQCAtNzA0LDcgKzcwNCw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5k
Q2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvCiAg
ICAgICAgICAgICBhcHBlbmRDaGlsZFRvQ29udGFpbmVyKGNoaWxkLCB0aGlzKTsKICAgICAgICAg
fQogCi0gICAgICAgIHVwZGF0ZVRyZWVBZnRlckluc2VydGlvbih0aGlzLCBjaGlsZCwgc2hvdWxk
TGF6eUF0dGFjaCk7CisgICAgICAgIHVwZGF0ZVRyZWVBZnRlckluc2VydGlvbih0aGlzLCBjaGls
ZCwgYXR0YWNoQmVoYXZpb3IpOwogICAgIH0KIAogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVk
RXZlbnQoKTsKQEAgLTExNDQsNyArMTE0NCw3IEBAIHN0YXRpYyB2b2lkIGRpc3BhdGNoQ2hpbGRS
ZW1vdmFsRXZlbnRzKE5vZGUqIGNoaWxkKQogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgdXBkYXRl
VHJlZUFmdGVySW5zZXJ0aW9uKENvbnRhaW5lck5vZGUqIHBhcmVudCwgTm9kZSogY2hpbGQsIGJv
b2wgc2hvdWxkTGF6eUF0dGFjaCkKK3N0YXRpYyB2b2lkIHVwZGF0ZVRyZWVBZnRlckluc2VydGlv
bihDb250YWluZXJOb2RlKiBwYXJlbnQsIE5vZGUqIGNoaWxkLCBBdHRhY2hCZWhhdmlvciBhdHRh
Y2hCZWhhdmlvcikKIHsKICAgICBBU1NFUlQocGFyZW50LT5yZWZDb3VudCgpKTsKICAgICBBU1NF
UlQoY2hpbGQtPnJlZkNvdW50KCkpOwpAQCAtMTE1OCw3ICsxMTU4LDcgQEAgc3RhdGljIHZvaWQg
dXBkYXRlVHJlZUFmdGVySW5zZXJ0aW9uKENvbnRhaW5lck5vZGUqIHBhcmVudCwgTm9kZSogY2hp
bGQsIGJvb2wgc2gKICAgICAvLyBGSVhNRTogQXR0YWNobWVudCBzaG91bGQgYmUgdGhlIGZpcnN0
IG9wZXJhdGlvbiBpbiB0aGlzIGZ1bmN0aW9uLCBidXQgc29tZSBjb2RlCiAgICAgLy8gKGZvciBl
eGFtcGxlLCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50J3MgYXV0b2ZvY3VzIHN1cHBvcnQpIHJlcXVp
cmVzIHRoaXMgb3JkZXJpbmcuCiAgICAgaWYgKHBhcmVudC0+YXR0YWNoZWQoKSAmJiAhY2hpbGQt
PmF0dGFjaGVkKCkgJiYgY2hpbGQtPnBhcmVudE5vZGUoKSA9PSBwYXJlbnQpIHsKLSAgICAgICAg
aWYgKHNob3VsZExhenlBdHRhY2gpCisgICAgICAgIGlmIChhdHRhY2hCZWhhdmlvciA9PSBBdHRh
Y2hMYXppbHkpCiAgICAgICAgICAgICBjaGlsZC0+bGF6eUF0dGFjaCgpOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBjaGlsZC0+YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
aAppbmRleCBmZTJlYzg1Zjg0YjdjOTI0NmE4YTkyZjllNjM5M2I2ODE1NGUyNWU4Li42ZDc3ZDA0
ZTVjYjkwMWJjYjA2N2UwOGQ2MjFmMjdjOGI5MWM0NTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ29udGFpbmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmgKQEAgLTg5LDEwICs4OSwxMCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgY2hpbGRO
b2RlQ291bnQoKSBjb25zdDsKICAgICBOb2RlKiBjaGlsZE5vZGUodW5zaWduZWQgaW5kZXgpIGNv
bnN0OwogCi0gICAgYm9vbCBpbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwg
Tm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTiwgYm9v
bCBzaG91bGRMYXp5QXR0YWNoID0gZmFsc2UpOwotICAgIGJvb2wgcmVwbGFjZUNoaWxkKFBhc3NS
ZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFT
U0VSVF9OT19FWENFUFRJT04sIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZhbHNlKTsKKyAgICBi
b29sIGluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGls
ZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hCZWhhdmlvciA9
IEF0dGFjaE5vdyk7CisgICAgYm9vbCByZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdD
aGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElP
TiwgQXR0YWNoQmVoYXZpb3IgPSBBdHRhY2hOb3cpOwogICAgIGJvb2wgcmVtb3ZlQ2hpbGQoTm9k
ZSogY2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgYm9v
bCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiA9
IEFTU0VSVF9OT19FWENFUFRJT04sIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZhbHNlKTsKKyAg
ICBib29sIGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTiwgQXR0YWNoQmVoYXZpb3IgPSBBdHRhY2hOb3cpOwog
CiAgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgb25seSB1c2VkIGR1cmluZyBwYXJzaW5nLgogICAg
IC8vIFRoZXkgZG9uJ3Qgc2VuZCBET00gbXV0YXRpb24gZXZlbnRzIG9yIGhhbmRsZSByZXBhcmVu
dGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBkYzExYzk3NmJjNzEzYTNjOGMzYmUzNDAxZWNmM2E4
MjlkMzI0YWRiLi4xNDZmMGFlMjYwMjA1M2JiZDYzMGY1ODZhZjJhMjQ3YzIwZTZjNDY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCkBAIC01NDAsMjIgKzU0MCwyMiBAQCBOb2RlKiBOb2RlOjpmaXJzdERlc2Nl
bmRhbnQoKSBjb25zdAogICAgIHJldHVybiBuOwogfQogCi1ib29sIE5vZGU6Omluc2VydEJlZm9y
ZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29k
ZSYgZWMsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCkKK2Jvb2wgTm9kZTo6aW5zZXJ0QmVmb3JlKFBh
c3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBl
YywgQXR0YWNoQmVoYXZpb3IgYXR0YWNoQmVoYXZpb3IpCiB7CiAgICAgaWYgKCFpc0NvbnRhaW5l
ck5vZGUoKSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gdG9Db250YWluZXJOb2RlKHRoaXMpLT5p
bnNlcnRCZWZvcmUobmV3Q2hpbGQsIHJlZkNoaWxkLCBlYywgc2hvdWxkTGF6eUF0dGFjaCk7Cisg
ICAgcmV0dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlzKS0+aW5zZXJ0QmVmb3JlKG5ld0NoaWxkLCBy
ZWZDaGlsZCwgZWMsIGF0dGFjaEJlaGF2aW9yKTsKIH0KIAotYm9vbCBOb2RlOjpyZXBsYWNlQ2hp
bGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmIGVjLCBib29sIHNob3VsZExhenlBdHRhY2gpCitib29sIE5vZGU6OnJlcGxhY2VDaGlsZChQ
YXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYg
ZWMsIEF0dGFjaEJlaGF2aW9yIGF0dGFjaEJlaGF2aW9yKQogewogICAgIGlmICghaXNDb250YWlu
ZXJOb2RlKCkpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlzKS0+
cmVwbGFjZUNoaWxkKG5ld0NoaWxkLCBvbGRDaGlsZCwgZWMsIHNob3VsZExhenlBdHRhY2gpOwor
ICAgIHJldHVybiB0b0NvbnRhaW5lck5vZGUodGhpcyktPnJlcGxhY2VDaGlsZChuZXdDaGlsZCwg
b2xkQ2hpbGQsIGVjLCBhdHRhY2hCZWhhdmlvcik7CiB9CiAKIGJvb2wgTm9kZTo6cmVtb3ZlQ2hp
bGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNTY3LDEzICs1NjcsMTMg
QEAgYm9vbCBOb2RlOjpyZW1vdmVDaGlsZChOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgcmV0dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlzKS0+cmVtb3ZlQ2hpbGQob2xkQ2hp
bGQsIGVjKTsKIH0KIAotYm9vbCBOb2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5l
d0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgYm9vbCBzaG91bGRMYXp5QXR0YWNoKQorYm9vbCBO
b2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2Rl
JiBlYywgQXR0YWNoQmVoYXZpb3IgYXR0YWNoQmVoYXZpb3IpCiB7CiAgICAgaWYgKCFpc0NvbnRh
aW5lck5vZGUoKSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gdG9Db250YWluZXJOb2RlKHRoaXMp
LT5hcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMsIHNob3VsZExhenlBdHRhY2gpOworICAgIHJldHVy
biB0b0NvbnRhaW5lck5vZGUodGhpcyktPmFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYywgYXR0YWNo
QmVoYXZpb3IpOwogfQogCiB2b2lkIE5vZGU6OnJlbW92ZShFeGNlcHRpb25Db2RlJiBlYykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCmluZGV4IDcxMGMxYzZmMzI3MWNjYjIzMmViMmUzZmQ1MzkxMGQ3YTc0MjlhYjcuLmY1
ZjczOTBkYTQ4ODk4OTdhYmUyYjVhMWM5MjM0ZWFmYjM5OTE0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAt
MTI1LDYgKzEyNSwxMSBAQCBwcml2YXRlOgogICAgIFJlbmRlck9iamVjdCogbV9yZW5kZXJlcjsK
IH07CiAKK2VudW0gQXR0YWNoQmVoYXZpb3IgeworICAgIEF0dGFjaE5vdywKKyAgICBBdHRhY2hM
YXppbHksCit9OworCiBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgU2Ny
aXB0V3JhcHBhYmxlLCBwdWJsaWMgVHJlZVNoYXJlZDxOb2RlPiB7CiAgICAgZnJpZW5kIGNsYXNz
IERvY3VtZW50OwogICAgIGZyaWVuZCBjbGFzcyBUcmVlU2NvcGU7CkBAIC0xOTMsMTAgKzE5OCwx
MCBAQCBwdWJsaWM6CiAgICAgLy8gVGhlc2Ugc2hvdWxkIGFsbCBhY3R1YWxseSByZXR1cm4gYSBu
b2RlLCBidXQgdGhpcyBpcyBvbmx5IGltcG9ydGFudCBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MsCiAg
ICAgLy8gd2hpY2ggd2lsbCBhbHJlYWR5IGtub3cgYW5kIGhvbGQgYSByZWYgb24gdGhlIHJpZ2h0
IG5vZGUgdG8gcmV0dXJuLiBSZXR1cm5pbmcgYm9vbCBhbGxvd3MKICAgICAvLyB0aGVzZSBtZXRo
b2RzIHRvIGJlIG1vcmUgZWZmaWNpZW50IHNpbmNlIHRoZXkgZG9uJ3QgbmVlZCB0byByZXR1cm4g
YSByZWYKLSAgICBib29sIGluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBO
b2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZh
bHNlKTsKLSAgICBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBO
b2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZh
bHNlKTsKKyAgICBib29sIGluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBO
b2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIEF0dGFjaEJlaGF2aW9yID0gQXR0YWNoTm93
KTsKKyAgICBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2Rl
KiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIEF0dGFjaEJlaGF2aW9yID0gQXR0YWNoTm93KTsK
ICAgICBib29sIHJlbW92ZUNoaWxkKE5vZGUqIGNoaWxkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAg
Ym9vbCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2Rl
JiwgYm9vbCBzaG91bGRMYXp5QXR0YWNoID0gZmFsc2UpOworICAgIGJvb2wgYXBwZW5kQ2hpbGQo
UGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIEF0dGFjaEJlaGF2aW9y
ID0gQXR0YWNoTm93KTsKIAogICAgIHZvaWQgcmVtb3ZlKEV4Y2VwdGlvbkNvZGUmKTsKICAgICBi
b29sIGhhc0NoaWxkTm9kZXMoKSBjb25zdCB7IHJldHVybiBmaXJzdENoaWxkKCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5kZXggNWYyMGY0ZTBj
ODRjYTNhMTQzODQ3ZjgwZWU5Y2UxYzZhYjc2OGVhNC4uNmQyY2YyM2Y3NzIxYTUwNjE3ZTNkN2Nk
ZWI3YzRhMzFjNzkxMjdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9B
cHBseSgpCiAgICAgaWYgKCFtX3BhcmVudC0+cmVuZGVyZXJJc0VkaXRhYmxlKCkgJiYgbV9wYXJl
bnQtPmF0dGFjaGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFyZW50LT5hcHBlbmRD
aGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04sIHRydWUgLyogbGF6eUF0dGFjaCAq
Lyk7CisgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQ
VElPTiwgQXR0YWNoTGF6aWx5KTsKIAogICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKQogICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFr
cyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXgg
NzZjZmE1NDdkNzA0MzQyZmY3N2JlOTMzNTc2OTBkNWI5YjY2MDc0Ny4uN2VkZTk5OTExZWZkMzM0
NWU5OTI4MWEyY2QyNDEzNTg3YWNmZDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICBB
U1NFUlQocGFyZW50LT5pc0NvbnRlbnRFZGl0YWJsZShOb2RlOjpVc2VyU2VsZWN0QWxsSXNBbHdh
eXNOb25FZGl0YWJsZSkpOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGls
ZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTiwgdHJ1ZSAvKiBsYXp5
QXR0YWNoICovKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgp
LCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOwogCiAg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIGRv
Y3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9p
bnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5z
ZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCmluZGV4IDljYTJkZTc1OTFlOTQ4MmE2OWE1ZDViMGMx
MDIzZTllNTczMjMxZGQuLjM5NmU0OWQyZDc5ZTU5NDZlNGNjNDEzMDRhY2I1N2E5MjFhZTVmMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBs
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxl
LmNwcApAQCAtODQsMjYgKzg0LDI2IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBN
ZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50KiBkb2N1CiAKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gcmV3aW5kQnV0dG9uID0gTWVk
aWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250
cm9scy0+bV9yZXdpbmRCdXR0b24gPSByZXdpbmRCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFw
cGVuZENoaWxkKHJld2luZEJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQocmV3aW5kQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAg
ICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQ
bGF5QnV0dG9uRWxlbWVudD4gcGxheUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3BsYXlCdXR0b24gPSBwbGF5
QnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2Uo
KSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2Uo
KSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAog
ICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudD4gcmV0
dXJuVG9SZWFsdGltZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25F
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3JldHVyblRvUmVhbFRp
bWVCdXR0b24gPSByZXR1cm5Ub1JlYWx0aW1lQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBl
bmRDaGlsZChyZXR1cm5Ub1JlYWx0aW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAg
IHBhbmVsLT5hcHBlbmRDaGlsZChyZXR1cm5Ub1JlYWx0aW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMs
IEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlm
IChkb2N1bWVudC0+cGFnZSgpLT50aGVtZSgpLT51c2VzTWVkaWFDb250cm9sU3RhdHVzRGlzcGxh
eSgpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4g
c3RhdHVzRGlzcGxheSA9IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgICAgICBjb250cm9scy0+bV9zdGF0dXNEaXNwbGF5ID0gc3RhdHVzRGlz
cGxheS5nZXQoKTsKLSAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHN0YXR1c0Rpc3BsYXkucmVs
ZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzdGF0dXNEaXNw
bGF5LnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgICAgIGlmIChlYykKICAgICAg
ICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTExMiwzOCArMTEyLDM4IEBAIFBhc3NSZWZQdHI8
TWVkaWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERv
Y3VtZW50KiBkb2N1CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5
RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNw
bGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9jdXJyZW50VGlt
ZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkuZ2V0KCk7Ci0gICAgdGltZWxpbmVDb250YWlu
ZXItPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsK
KyAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVEaXNwbGF5LnJl
bGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4g
MDsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0g
TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdl
dCgpKTsKICAgICBjb250cm9scy0+bV90aW1lbGluZSA9IHRpbWVsaW5lLmdldCgpOwotICAgIHRp
bWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGVjLCB0cnVl
KTsKKyAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgp
LCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAg
ICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudD4gdGltZVJl
bWFpbmluZ0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fdGltZVJlbWFpbmluZ0Rpc3BsYXkg
PSB0aW1lUmVtYWluaW5nRGlzcGxheS5nZXQoKTsKLSAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBw
ZW5kQ2hpbGQodGltZVJlbWFpbmluZ0Rpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAg
dGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVSZW1haW5pbmdEaXNwbGF5LnJlbGVh
c2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsK
IAogICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVyID0gdGltZWxpbmVDb250YWluZXIu
Z2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lQ29udGFpbmVyLnJlbGVhc2Uo
KSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZUNvbnRhaW5lci5y
ZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJu
IDA7CiAKICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJr
aXQub3JnL2IvNTcxNjM+CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxl
bWVudD4gc2Vla0JhY2tCdXR0b24gPSBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fc2Vla0JhY2tCdXR0b24gPSBzZWVr
QmFja0J1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2Vla0JhY2tCdXR0b24u
cmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHNlZWtCYWNrQnV0
dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDov
L3dlYmtpdC5vcmcvYi81NzE2Mz4KICAgICBSZWZQdHI8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRC
dXR0b25FbGVtZW50PiBzZWVrRm9yd2FyZEJ1dHRvbiA9IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJk
QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9zZWVrRm9y
d2FyZEJ1dHRvbiA9IHNlZWtGb3J3YXJkQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRD
aGlsZChzZWVrRm9yd2FyZEJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQoc2Vla0ZvcndhcmRCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0xNTIsMTggKzE1MiwxOCBA
QCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gTWVkaWFDb250cm9sc0FwcGxlOjpjcmVh
dGVDb250cm9scyhEb2N1bWVudCogZG9jdQogCiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xD
bG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0ID0g
TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICAgICAgY29udHJvbHMtPm1fY2xvc2VkQ2FwdGlvbnNU
cmFja0xpc3QgPSBjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdC5nZXQoKTsKLSAgICAgICAgY2xvc2Vk
Q2FwdGlvbnNDb250YWluZXItPmFwcGVuZENoaWxkKGNsb3NlZENhcHRpb25zVHJhY2tMaXN0LnJl
bGVhc2UoKSwgZWMsIHRydWUpOworICAgICAgICBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+YXBw
ZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6
aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAg
UmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gdG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9u
c0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgICAg
ICBjb250cm9scy0+bV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IHRvZ2dsZUNsb3NlZENh
cHRpb25zQnV0dG9uLmdldCgpOwotICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodG9nZ2xlQ2xv
c2VkQ2FwdGlvbnNCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIHBhbmVsLT5h
cHBlbmRDaGlsZCh0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRh
Y2hMYXppbHkpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAg
ICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IGNsb3NlZENhcHRpb25z
Q29udGFpbmVyLmdldCgpOwotICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlv
bnNDb250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIHBhbmVsLT5hcHBlbmRD
aGlsZChjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkp
OwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0xNzEs
NyArMTcxLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1lZGlhQ29udHJvbHNB
cHBsZTo6Y3JlYXRlQ29udHJvbHMoRG9jdW1lbnQqIGRvY3UKICAgICAvLyBGSVhNRTogT25seSBj
cmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+CiAgICAgUmVmUHRy
PE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuQnV0dG9uID0g
TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAg
ICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxTY3JlZW5CdXR0b24uZ2V0KCk7
Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYywg
dHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5CdXR0b24ucmVsZWFzZSgp
LCBlYywgQXR0YWNoTGF6aWx5KTsKIAogICAgIC8vIFRoZSBtdXRlIGJ1dHRvbiBhbmQgdGhlIHNs
aWRlciBlbGVtZW50IHNob3VsZCBiZSBpbiB0aGUgc2FtZSBkaXYuCiAgICAgUmVmUHRyPEhUTUxE
aXZFbGVtZW50PiBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKQEAgLTE4MSw3ICsxODEsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbHNBcHBsZT4gTWVkaWFDb250cm9sc0FwcGxlOjpjcmVhdGVDb250cm9scyhEb2N1bWVudCog
ZG9jdQogCiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1l
bnQ+IHNsaWRlciA9IE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKICAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyID0gc2xpZGVyLmdl
dCgpOwotICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHNsaWRlci5y
ZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBl
bmRDaGlsZChzbGlkZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYg
KGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTE4OSw0OCArMTg5LDQ4IEBAIFBhc3NS
ZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRy
b2xzKERvY3VtZW50KiBkb2N1CiAgICAgICAgIC8vIEl0J3MgaW1wb3J0YW50IG9ubHkgd2hlbiB0
aGUgdm9sdW1lIGJhciBpcyBkaXNwbGF5ZWQgYmVsb3cgdGhlIGNvbnRyb2xzLgogICAgICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IHZvbHVtZVNs
aWRlck11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyTXV0
ZUJ1dHRvbiA9IHZvbHVtZVNsaWRlck11dGVCdXR0b24uZ2V0KCk7Ci0gICAgICAgIHZvbHVtZVNs
aWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbi5yZWxlYXNl
KCksIGVjLCB0cnVlKTsKKyAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGls
ZCh2b2x1bWVTbGlkZXJNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAK
ICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgY29udHJv
bHMtPm1fdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVyLmdldCgp
OwotICAgICAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKHZvbHVt
ZVNsaWRlckNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICAgICAgcGFuZWxWb2x1
bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJDb250YWluZXIucmVs
ZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRv
bkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgIGNvbnRyb2xzLT5t
X3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbFZvbHVt
ZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCks
IGVjLCB0cnVlKTsKKyAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxk
KHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChl
YykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxWb2x1
bWVDb250cm9sQ29udGFpbmVyLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHBh
bmVsVm9sdW1lQ29udHJvbENvbnRhaW5lciwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5l
ZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KICAgICBSZWZQdHI8TWVkaWFDb250cm9s
RnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0
b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uID0g
ZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQo
ZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5l
bC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCBB
dHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IGZ1bGxTY3JlZW5W
b2x1bWVTbGlkZXIgPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuVm9sdW1lU2xpZGVy
ID0gZnVsbFNjcmVlblZvbHVtZVNsaWRlci5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQo
ZnVsbFNjcmVlblZvbHVtZVNsaWRlci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQoZnVsbFNjcmVlblZvbHVtZVNsaWRlci5yZWxlYXNlKCksIGVjLCBBdHRhY2hM
YXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8TWVk
aWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5NYXhW
b2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuTWF4Vm9sdW1l
QnV0dG9uID0gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQoZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsK
KyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5yZWxlYXNl
KCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAK
ICAgICBjb250cm9scy0+bV9wYW5lbCA9IHBhbmVsLmdldCgpOwotICAgIGNvbnRyb2xzLT5hcHBl
bmRDaGlsZChwYW5lbC5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBjb250cm9scy0+YXBwZW5k
Q2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xzQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xzQmxhY2tCZXJyeS5jcHAKaW5kZXggZmU3MTU4MzZjMDkwNzgxZjEyMmE1
M2Q3MjY3NDU0NmQ4MDM2Yzc5Yi4uYWZmMGRiZjcyYmJlYjU4N2U1Mzc0MmY2Mzk3YWY1NTdjZTEw
NzkxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
c0JsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbHNCbGFja0JlcnJ5LmNwcApAQCAtNjQ5LDcgKzY0OSw3IEBAIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sc0JsYWNrQmVycnk+IE1lZGlhQ29udHJvbHNCbGFja0JlcnJ5OjpjcmVhdGVDb250cm9s
cyhEb2N1CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlC
dXR0b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICBjb250cm9scy0+bV9wbGF5QnV0dG9uID0gcGxheUJ1dHRvbi5nZXQoKTsKLSAgICBlbWJl
ZFBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAg
IGVtYmVkUGFuZWwtPmFwcGVuZENoaWxkKHBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNo
TGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC02NTcsNyArNjU3
LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeT4gTWVkaWFDb250cm9sc0Js
YWNrQmVycnk6OmNyZWF0ZUNvbnRyb2xzKERvY3UKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xU
aW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICBjb250cm9scy0+bV90aW1lbGlu
ZSA9IHRpbWVsaW5lLmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0
aW1lbGluZS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBw
ZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAo
ZWMpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC02NjUsMjkgKzY2NSwyOSBAQCBQYXNzUmVmUHRy
PE1lZGlhQ29udHJvbHNCbGFja0JlcnJ5PiBNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeTo6Y3JlYXRl
Q29udHJvbHMoRG9jdQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxh
eUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlz
cGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fY3VycmVudFRp
bWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5LmdldCgpOwotICAgIHRpbWVEaXNwbGF5Q29u
dGFpbmVyLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1
ZSk7CisgICAgdGltZURpc3BsYXlDb250YWluZXItPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlz
cGxheS5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuIDA7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlF
bGVtZW50PiB0aW1lUmVtYWluaW5nRGlzcGxheSA9IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdE
aXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV90aW1lUmVt
YWluaW5nRGlzcGxheSA9IHRpbWVSZW1haW5pbmdEaXNwbGF5LmdldCgpOwotICAgIHRpbWVEaXNw
bGF5Q29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lUmVtYWluaW5nRGlzcGxheS5yZWxlYXNlKCks
IGVjLCB0cnVlKTsKKyAgICB0aW1lRGlzcGxheUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZVJl
bWFpbmluZ0Rpc3BsYXkucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMp
CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY29udHJvbHMtPm1fdGltZURpc3BsYXlDb250YWlu
ZXIgPSB0aW1lRGlzcGxheUNvbnRhaW5lci5nZXQoKTsKLSAgICB0aW1lbGluZUNvbnRhaW5lci0+
YXBwZW5kQ2hpbGQodGltZURpc3BsYXlDb250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7Cisg
ICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVEaXNwbGF5Q29udGFpbmVyLnJl
bGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4g
MDsKIAogICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVyID0gdGltZWxpbmVDb250YWlu
ZXIuZ2V0KCk7Ci0gICAgZW1iZWRQYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmVDb250YWluZXIu
cmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgZW1iZWRQYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxp
bmVDb250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0
b25FbGVtZW50PiBmdWxsU2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbkJ1
dHRvbiA9IGZ1bGxTY3JlZW5CdXR0b24uZ2V0KCk7Ci0gICAgZW1iZWRQYW5lbC0+YXBwZW5kQ2hp
bGQoZnVsbFNjcmVlbkJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBlbWJlZFBhbmVs
LT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemls
eSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtNjk5LDIxICs2OTksMjEg
QEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeT4gTWVkaWFDb250cm9sc0JsYWNr
QmVycnk6OmNyZWF0ZUNvbnRyb2xzKERvY3UKIAogICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9s
UGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBNZWRpYUNvbnRyb2xQYW5lbFZvbHVt
ZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgICAgIGNvbnRyb2xzLT5tX3Zv
bHVtZVNsaWRlciA9IHNsaWRlci5nZXQoKTsKLSAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVy
LT5hcHBlbmRDaGlsZChzbGlkZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIHZvbHVt
ZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoc2xpZGVyLnJlbGVhc2UoKSwgZWMsIEF0dGFj
aExhemlseSk7CiAgICAgICAgIGlmIChlYykKICAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAg
ICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlckNvbnRhaW5lciA9IHZvbHVtZVNsaWRlckNvbnRh
aW5lci5nZXQoKTsKLSAgICAgICAgdm9sdW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
dm9sdW1lU2xpZGVyQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgICAgICB2b2x1
bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJDb250YWluZXIucmVs
ZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xBdWRpb011dGVCdXR0b25FbGVt
ZW50PiBtdXRlQnV0dG9uID0gTWVkaWFDb250cm9sQXVkaW9NdXRlQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CiAgICAgICAgIGNvbnRyb2xzLT5tX211dGVC
dXR0b24gPSBtdXRlQnV0dG9uLmdldCgpOwotICAgICAgICB2b2x1bWVDb250cm9sQ29udGFpbmVy
LT5hcHBlbmRDaGlsZChtdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgICAgICB2
b2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZChtdXRlQnV0dG9uLnJlbGVhc2UoKSwg
ZWMsIEF0dGFjaExhemlseSk7CiAgICAgICAgIGlmIChlYykKICAgICAgICAgICAgIHJldHVybiAw
OwogCi0gICAgICAgIGVtYmVkUGFuZWwtPmFwcGVuZENoaWxkKHZvbHVtZUNvbnRyb2xDb250YWlu
ZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIGVtYmVkUGFuZWwtPmFwcGVuZENoaWxk
KHZvbHVtZUNvbnRyb2xDb250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAg
ICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtNzIyLDcgKzcy
Miw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0JsYWNrQmVycnk+IE1lZGlhQ29udHJvbHNC
bGFja0JlcnJ5OjpjcmVhdGVDb250cm9scyhEb2N1CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9s
RnVsbHNjcmVlblRpbWVsaW5lRWxlbWVudD4gZnVsbHNjcmVlblRpbWVsaW5lID0gTWVkaWFDb250
cm9sRnVsbHNjcmVlblRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5n
ZXQoKSk7CiAgICAgY29udHJvbHMtPm1fZnVsbHNjcmVlblRpbWVsaW5lID0gZnVsbHNjcmVlblRp
bWVsaW5lLmdldCgpOwotICAgIGZ1bGxzY3JlZW5UaW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hp
bGQoZnVsbHNjcmVlblRpbWVsaW5lLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGZ1bGxzY3Jl
ZW5UaW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlblRpbWVsaW5lLnJlbGVh
c2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsK
IApAQCAtNzMwLDIzICs3MzAsMjMgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQmxhY2tCZXJy
eT4gTWVkaWFDb250cm9sc0JsYWNrQmVycnk6OmNyZWF0ZUNvbnRyb2xzKERvY3UKIAogICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gZnVs
bHNjcmVlbkN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5DdXJyZW50
VGltZURpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX2Z1
bGxzY3JlZW5DdXJyZW50VGltZURpc3BsYXkgPSBmdWxsc2NyZWVuQ3VycmVudFRpbWVEaXNwbGF5
LmdldCgpOwotICAgIGZ1bGxzY3JlZW5UaW1lRGlzcGxheUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
ZnVsbHNjcmVlbkN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBm
dWxsc2NyZWVuVGltZURpc3BsYXlDb250YWluZXItPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5DdXJy
ZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMp
CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5U
aW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IGZ1bGxzY3JlZW5UaW1lUmVtYWluaW5nRGlzcGxh
eSA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5UaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fZnVsbHNjcmVlblRpbWVSZW1haW5pbmdE
aXNwbGF5ID0gZnVsbHNjcmVlblRpbWVSZW1haW5pbmdEaXNwbGF5LmdldCgpOwotICAgIGZ1bGxz
Y3JlZW5UaW1lRGlzcGxheUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlblRpbWVSZW1h
aW5pbmdEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGZ1bGxzY3JlZW5UaW1lRGlz
cGxheUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlblRpbWVSZW1haW5pbmdEaXNwbGF5
LnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIGNvbnRyb2xzLT5tX2Z1bGxzY3JlZW5UaW1lRGlzcGxheUNvbnRhaW5lciA9
IGZ1bGxzY3JlZW5UaW1lRGlzcGxheUNvbnRhaW5lci5nZXQoKTsKLSAgICBmdWxsc2NyZWVuVGlt
ZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5UaW1lRGlzcGxheUNvbnRhaW5l
ci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBmdWxsc2NyZWVuVGltZWxpbmVDb250YWluZXIt
PmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5UaW1lRGlzcGxheUNvbnRhaW5lci5yZWxlYXNlKCksIGVj
LCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBj
b250cm9scy0+bV9mdWxsc2NyZWVuVGltZWxpbmVDb250YWluZXIgPSBmdWxsc2NyZWVuVGltZWxp
bmVDb250YWluZXIuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5UaW1l
bGluZUNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hp
bGQoZnVsbHNjcmVlblRpbWVsaW5lQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemls
eSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtNzU3LDE1ICs3NTcsMTUg
QEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeT4gTWVkaWFDb250cm9sc0JsYWNr
QmVycnk6OmNyZWF0ZUNvbnRyb2xzKERvY3UKICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuQnV0
dG9uQ29udGFpbmVyID0gZnVsbFNjcmVlbkJ1dHRvbkNvbnRhaW5lci5nZXQoKTsKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBmdWxsc2Ny
ZWVuRnVsbFNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5GdWxsc2NyZWVuQnV0
dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxsc2NyZWVu
RnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxzY3JlZW5GdWxsU2NyZWVuQnV0dG9uLmdldCgpOwotICAg
IGZ1bGxTY3JlZW5CdXR0b25Db250YWluZXItPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5GdWxsU2Ny
ZWVuQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGZ1bGxTY3JlZW5CdXR0b25Db250
YWluZXItPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5GdWxsU2NyZWVuQnV0dG9uLnJlbGVhc2UoKSwg
ZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkRpdmlkZXJFbGVtZW50PiBmdWxsU2Ny
ZWVuRGl2aWRlciA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25EaXZpZGVyRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuRGl2aWRlciA9IGZ1
bGxTY3JlZW5EaXZpZGVyLmdldCgpOwotICAgIGZ1bGxTY3JlZW5CdXR0b25Db250YWluZXItPmFw
cGVuZENoaWxkKGZ1bGxTY3JlZW5EaXZpZGVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGZ1
bGxTY3JlZW5CdXR0b25Db250YWluZXItPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5EaXZpZGVyLnJl
bGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4g
MDsKLSAgICBidXR0b25Hcm91cENvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkJ1dHRv
bkNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBidXR0b25Hcm91cENvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkJ1dHRvbkNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCBB
dHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTc3Mywz
OSArNzczLDM5IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0JsYWNrQmVycnk+IE1lZGlhQ29u
dHJvbHNCbGFja0JlcnJ5OjpjcmVhdGVDb250cm9scyhEb2N1CiAgICAgY29udHJvbHMtPm1fcGxh
eUJ1dHRvbkNvbnRhaW5lciA9IHBsYXlCdXR0b25Db250YWluZXIuZ2V0KCk7CiAgICAgUmVmUHRy
PE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5QbGF5QnV0dG9uRWxlbWVudD4gZnVsbHNjcmVlblBsYXlC
dXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fZnVsbHNjcmVlblBsYXlCdXR0b24gPSBmdWxsc2Ny
ZWVuUGxheUJ1dHRvbi5nZXQoKTsKLSAgICBwbGF5QnV0dG9uQ29udGFpbmVyLT5hcHBlbmRDaGls
ZChmdWxsc2NyZWVuUGxheUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwbGF5QnV0
dG9uQ29udGFpbmVyLT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuUGxheUJ1dHRvbi5yZWxlYXNlKCks
IGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7Ci0gICAg
YnV0dG9uR3JvdXBDb250YWluZXItPmFwcGVuZENoaWxkKHBsYXlCdXR0b25Db250YWluZXIucmVs
ZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgYnV0dG9uR3JvdXBDb250YWluZXItPmFwcGVuZENoaWxk
KHBsYXlCdXR0b25Db250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBp
ZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBsYWNl
aG9sZGVyRWxlbWVudD4gcGxhY2Vob2xkZXIgPSBNZWRpYUNvbnRyb2xQbGFjZWhvbGRlckVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fcGxhY2Vob2xkZXIgPSBwbGFj
ZWhvbGRlci5nZXQoKTsKLSAgICBidXR0b25Hcm91cENvbnRhaW5lci0+YXBwZW5kQ2hpbGQocGxh
Y2Vob2xkZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgYnV0dG9uR3JvdXBDb250YWluZXIt
PmFwcGVuZENoaWxkKHBsYWNlaG9sZGVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAg
ICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbnRyb2xzLT5tX2J1dHRvbkNv
bnRhaW5lciA9IGJ1dHRvbkdyb3VwQ29udGFpbmVyLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRD
aGlsZChidXR0b25Hcm91cENvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5l
bC0+YXBwZW5kQ2hpbGQoYnV0dG9uR3JvdXBDb250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNo
TGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKGRvY3Vt
ZW50LT5wYWdlKCktPnRoZW1lKCktPnN1cHBvcnRzQ2xvc2VkQ2FwdGlvbmluZygpKSB7CiAgICAg
ICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+
IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAg
ICAgICAgY29udHJvbHMtPm1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSB0b2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbi5nZXQoKTsKLSAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgICAgICBwYW5l
bC0+YXBwZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucmVsZWFzZSgpLCBlYywg
QXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogCiAgICAgY29udHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKLSAgICBjb250cm9s
cy0+YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgY29udHJvbHMt
PmFwcGVuZENoaWxkKHBhbmVsLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbnRyb2xzLT5tX2VtYmVkZGVkUGFuZWwg
PSBlbWJlZFBhbmVsLmdldCgpOwotICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChlbWJlZFBhbmVs
LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChlbWJlZFBh
bmVsLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICBy
ZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sc0Nocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbHNDaHJvbWl1bS5jcHAKaW5kZXggNDY0MWI5ZDVkZWE2Yzk1ZTk3MDEyM2ZmNzE2Y2QyMmZl
YzEzYWU5Yi4uNDk0OTEwZDdiNjUwZTc2NDBkYzNlMTZlODQ3N2FlOWNiYjIwYWE3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQ2hyb21pdW0u
Y3BwCkBAIC03NCw2MyArNzQsNjMgQEAgYm9vbCBNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmluaXRp
YWxpemVDb250cm9scyhEb2N1bWVudCogZG9jdW1lbnQpCiAKICAgICBSZWZQdHI8TWVkaWFDb250
cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9u
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX3BsYXlCdXR0b24gPSBwbGF5QnV0dG9u
LmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMs
IHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMs
IEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1lZGlhQ29u
dHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCB0aGlzKTsKICAgICBtX3RpbWVs
aW5lID0gdGltZWxpbmUuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJl
bGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5yZWxl
YXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+
IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50
VGltZURpc3BsYXkuZ2V0KCk7CiAgICAgbV9jdXJyZW50VGltZURpc3BsYXktPmhpZGUoKTsKLSAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRy
dWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgp
LCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IGR1
cmF0aW9uRGlzcGxheSA9IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX2R1cmF0aW9uRGlzcGxheSA9IGR1cmF0aW9uRGlzcGxh
eS5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZHVyYXRpb25EaXNwbGF5LnJlbGVhc2Uo
KSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChkdXJhdGlvbkRpc3BsYXkucmVs
ZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBw
YW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQsIHRoaXMpOwogICAgIG1fcGFuZWxNdXRlQnV0dG9uID0gcGFuZWxNdXRlQnV0
dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwYW5lbE11dGVCdXR0b24ucmVsZWFz
ZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5y
ZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVu
dD4gc2xpZGVyID0gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIG1fdm9sdW1lU2xpZGVyID0gc2xpZGVyLmdldCgpOwogICAgIG1fdm9s
dW1lU2xpZGVyLT5zZXRDbGVhck11dGVkT25Vc2VySW50ZXJhY3Rpb24odHJ1ZSk7Ci0gICAgcGFu
ZWwtPmFwcGVuZENoaWxkKHNsaWRlci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQoc2xpZGVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoZG9jdW1lbnQtPnBhZ2UoKS0+
dGhlbWUoKS0+c3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5nKCkpIHsKICAgICAgICAgUmVmUHRyPE1l
ZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gdG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgdGhpcyk7CiAgICAgICAgIG1fdG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5nZXQoKTsKLSAgICAgICAg
cGFuZWwtPmFwcGVuZENoaWxkKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLnJlbGVhc2UoKSwg
ZWMsIHRydWUpOworICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYgKGVjKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gZnVsbHNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fZnVsbFNj
cmVlbkJ1dHRvbiA9IGZ1bGxzY3JlZW5CdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENo
aWxkKGZ1bGxzY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFw
cGVuZENoaWxkKGZ1bGxzY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsK
ICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fcGFuZWwgPSBwYW5l
bC5nZXQoKTsKLSAgICBlbmNsb3N1cmUtPmFwcGVuZENoaWxkKHBhbmVsLnJlbGVhc2UoKSwgZWMs
IHRydWUpOworICAgIGVuY2xvc3VyZS0+YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYywg
QXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IG1fZW5jbG9zdXJlID0gZW5jbG9zdXJlLmdldCgpOwotICAgIGFwcGVuZENoaWxkKGVuY2xvc3Vy
ZS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBhcHBlbmRDaGlsZChlbmNsb3N1cmUucmVsZWFz
ZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
c0Nocm9taXVtQW5kcm9pZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xzQ2hyb21pdW1BbmRyb2lkLmNwcAppbmRleCBlYTExYmIzOTljYzg3MWYxYzNkNDQzZjdi
MzI0NDA5MTI1ZDJhYWQzLi5mODYwOWQ4MWM5M2QzMjQxNjI1OTJlYjEyNDM1M2NhMzA5YTJhMDBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQ2hy
b21pdW1BbmRyb2lkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xzQ2hyb21pdW1BbmRyb2lkLmNwcApAQCAtNTQsMTIgKzU0LDEyIEBAIFBhc3NSZWZQdHI8
TWVkaWFDb250cm9sc0Nocm9taXVtQW5kcm9pZD4gTWVkaWFDb250cm9sc0Nocm9taXVtQW5kcm9p
ZDo6Y3JlYXRlQ29uCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVt
ZW50PiBvdmVybGF5RW5jbG9zdXJlID0gTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5
QnV0dG9uRWxlbWVudD4gb3ZlcmxheVBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xPdmVybGF5UGxh
eUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fb3Zlcmxh
eVBsYXlCdXR0b24gPSBvdmVybGF5UGxheUJ1dHRvbi5nZXQoKTsKLSAgICBvdmVybGF5RW5jbG9z
dXJlLT5hcHBlbmRDaGlsZChvdmVybGF5UGxheUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsK
KyAgICBvdmVybGF5RW5jbG9zdXJlLT5hcHBlbmRDaGlsZChvdmVybGF5UGxheUJ1dHRvbi5yZWxl
YXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBjb250cm9scy0+bV9vdmVybGF5RW5jbG9zdXJlID0gb3ZlcmxheUVuY2xvc3VyZS5n
ZXQoKTsKLSAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQob3ZlcmxheUVuY2xvc3VyZS5yZWxlYXNl
KCksIGVjLCB0cnVlKTsKKyAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQob3ZlcmxheUVuY2xvc3Vy
ZS5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuIDA7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191621</attachid>
            <date>2013-03-05 17:50:32 -0800</date>
            <delta_ts>2013-03-05 19:06:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111503-20130305174650.patch</filename>
            <type>text/plain</type>
            <size>49725</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI3ODYyNDhkNDk3ZDdi
Njg1OWYyYWFiOGYxZDcyOGM3ZmFhYmVhMC4uY2NlMGExMGUyYWRhM2M1NDBkZDY0ZjVlOTcyZGRi
YWQ5YWQ4MTMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTA1ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIHNob3VsZExhenlB
dHRhY2ggYm9vbCB3aXRoIGFuIGVudW0gZm9yIHJlYWRhYmlsaXR5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1MDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhhdmlvcmFsIGNoYW5nZS4KKwor
ICAgICAgICAqIGJpbmRpbmdzL2NwcC9XZWJET01Ob2RlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkRPTU5vZGU6Omluc2VydEJlZm9yZSk6CisgICAgICAgIChXZWJET01Ob2RlOjpyZXBsYWNlQ2hp
bGQpOgorICAgICAgICAoV2ViRE9NTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6Omluc2Vy
dEJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6OnJlcGxhY2VDaGlsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU05vZGU6OmFwcGVuZENoaWxkKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhOb2RlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6VjhOb2RlOjppbnNlcnRCZWZvcmVNZXRob2RDdXN0b20pOgorICAgICAgICAoV2Vi
Q29yZTo6VjhOb2RlOjpyZXBsYWNlQ2hpbGRNZXRob2RDdXN0b20pOgorICAgICAgICAoV2ViQ29y
ZTo6VjhOb2RlOjphcHBlbmRDaGlsZE1ldGhvZEN1c3RvbSk6CisgICAgICAgICogZG9tL0NvbnRh
aW5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250
YWluZXJOb2RlOjppbnNlcnRCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9k
ZTo6cmVwbGFjZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmFwcGVu
ZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVRyZWVBZnRlckluc2VydGlvbik6Cisg
ICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAgICAgKENvbnRhaW5lck5vZGUpOgor
ICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Omluc2VydEJl
Zm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAg
ICAgIChOb2RlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBl
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xzQXBwbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Fw
cGxlOjpjcmVhdGVDb250cm9scyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
c0JsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0JsYWNrQmVy
cnk6OmNyZWF0ZUNvbnRyb2xzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xz
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Nocm9taXVtOjpp
bml0aWFsaXplQ29udHJvbHMpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHND
aHJvbWl1bUFuZHJvaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Nocm9t
aXVtQW5kcm9pZDo6Y3JlYXRlQ29udHJvbHMpOgorCiAyMDEzLTAzLTA1ICBUb255IEdlbnRpbGNv
cmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ29tcGFjdEhUTUxUb2tlbiBkb2Vz
IG5vdCBuZWVkIGFuIFhTU0luZm8gcG9pbnRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvY3BwL1dlYkRPTU5vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvY3BwL1dlYkRPTU5vZGVDdXN0b20uY3BwCmluZGV4IDQxYWJiMGMyMWRmNmFiMGQ2MGUxYmRh
Y2RlZGIyMGVmM2JhODM2YjEuLjNjMmRkNTdmNDVhMGZjYWExNTkzMjdlMGVkZjJkODQ2YWFhZDdm
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2NwcC9XZWJET01Ob2RlQ3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9jcHAvV2ViRE9NTm9kZUN1c3Rv
bS5jcHAKQEAgLTMxLDcgKzMxLDcgQEAgV2ViRE9NTm9kZSBXZWJET01Ob2RlOjppbnNlcnRCZWZv
cmUoY29uc3QgV2ViRE9NTm9kZSYgbmV3Q2hpbGQsIGNvbnN0IFdlYkRPTU5vZGUKICAgICAgICAg
cmV0dXJuIFdlYkRPTU5vZGUoKTsKIAogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotICAgIGlmIChpbXBsKCktPmluc2VydEJlZm9yZSh0b1dlYkNvcmUobmV3Q2hpbGQpLCB0b1dl
YkNvcmUocmVmQ2hpbGQpLCBlYywgdHJ1ZSkpCisgICAgaWYgKGltcGwoKS0+aW5zZXJ0QmVmb3Jl
KHRvV2ViQ29yZShuZXdDaGlsZCksIHRvV2ViQ29yZShyZWZDaGlsZCksIGVjLCBBdHRhY2hMYXpp
bHkpKQogICAgICAgICByZXR1cm4gbmV3Q2hpbGQ7CiAKICAgICB3ZWJET01SYWlzZUVycm9yKHN0
YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVjKSk7CkBAIC00NCw3ICs0NCw3IEBAIFdl
YkRPTU5vZGUgV2ViRE9NTm9kZTo6cmVwbGFjZUNoaWxkKGNvbnN0IFdlYkRPTU5vZGUmIG5ld0No
aWxkLCBjb25zdCBXZWJET01Ob2RlCiAgICAgICAgIHJldHVybiBXZWJET01Ob2RlKCk7CiAKICAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpZiAoaW1wbCgpLT5yZXBsYWNl
Q2hpbGQodG9XZWJDb3JlKG5ld0NoaWxkKSwgdG9XZWJDb3JlKG9sZENoaWxkKSwgZWMsIHRydWUp
KQorICAgIGlmIChpbXBsKCktPnJlcGxhY2VDaGlsZCh0b1dlYkNvcmUobmV3Q2hpbGQpLCB0b1dl
YkNvcmUob2xkQ2hpbGQpLCBlYywgQXR0YWNoTGF6aWx5KSkKICAgICAgICAgcmV0dXJuIG9sZENo
aWxkOwogCiAgICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNlcHRpb25D
b2RlPihlYykpOwpAQCAtNzAsNyArNzAsNyBAQCBXZWJET01Ob2RlIFdlYkRPTU5vZGU6OmFwcGVu
ZENoaWxkKGNvbnN0IFdlYkRPTU5vZGUmIG5ld0NoaWxkKQogICAgICAgICByZXR1cm4gV2ViRE9N
Tm9kZSgpOwogCiAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaWYgKGlt
cGwoKS0+YXBwZW5kQ2hpbGQodG9XZWJDb3JlKG5ld0NoaWxkKSwgZWMsIHRydWUpKQorICAgIGlm
IChpbXBsKCktPmFwcGVuZENoaWxkKHRvV2ViQ29yZShuZXdDaGlsZCksIGVjLCBBdHRhY2hMYXpp
bHkpKQogICAgICAgICByZXR1cm4gbmV3Q2hpbGQ7CiAKICAgICB3ZWJET01SYWlzZUVycm9yKHN0
YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVjKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAppbmRleCAyYTkxN2Y1NTJiNjEwNTg5NTgwN2E2Y2Rh
MWIxNjliYzU5OGJhMmE2Li45OWYyZDU1MjJiY2Y5MGEwNDlkMDI0YjQ1MmI2ZjNlMGM5MDA1YjQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKQEAgLTE0
NSw3ICsxNDUsNyBAQCBKU1ZhbHVlIEpTTm9kZTo6aW5zZXJ0QmVmb3JlKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBOb2RlKiBpbXAgPSBzdGF0aWNfY2FzdDxOb2RlKj4oaW1wbCgpKTsKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wLT5pbnNlcnRCZWZvcmUodG9O
b2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgdG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMsIHRy
dWUpOworICAgIGJvb2wgb2sgPSBpbXAtPmluc2VydEJlZm9yZSh0b05vZGUoZXhlYy0+YXJndW1l
bnQoMCkpLCB0b05vZGUoZXhlYy0+YXJndW1lbnQoMSkpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJu
IGV4ZWMtPmFyZ3VtZW50KDApOwpAQCAtMTU2LDcgKzE1Niw3IEBAIEpTVmFsdWUgSlNOb2RlOjpy
ZXBsYWNlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIE5vZGUqIGltcCA9IHN0YXRpY19j
YXN0PE5vZGUqPihpbXBsKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wg
b2sgPSBpbXAtPnJlcGxhY2VDaGlsZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpLCB0b05vZGUo
ZXhlYy0+YXJndW1lbnQoMSkpLCBlYywgdHJ1ZSk7CisgICAgYm9vbCBvayA9IGltcC0+cmVwbGFj
ZUNoaWxkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSksIHRvTm9kZShleGVjLT5hcmd1bWVudCgx
KSksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAg
ICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMSk7CkBAIC0xNzgsNyAr
MTc4LDcgQEAgSlNWYWx1ZSBKU05vZGU6OmFwcGVuZENoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBOb2RlKiBpbXAgPSBzdGF0aWNfY2FzdDxOb2RlKj4oaW1wbCgpKTsKICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wLT5hcHBlbmRDaGlsZCh0b05vZGUoZXhl
Yy0+YXJndW1lbnQoMCkpLCBlYywgdHJ1ZSk7CisgICAgYm9vbCBvayA9IGltcC0+YXBwZW5kQ2hp
bGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICBpZiAob2spCiAgICAgICAgIHJldHVybiBleGVj
LT5hcmd1bWVudCgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOE5vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4Tm9kZUN1c3RvbS5jcHAKaW5kZXggZjNhOWNjNDkwMzlmMTQ5MmJjMDU1ZGQ3OGZkYzZkNzYy
MTc4MWRhMS4uMWM1MDA4MGNlNzI4ODNjNzFmM2NiMWQwMWFjMTgzNzYwM2Q2YjA1OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUN1c3RvbS5jcHAK
QEAgLTYwLDcgKzYwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBUaGlzIGZ1bmN0
aW9uIGlzIGN1c3RvbWl6ZWQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIG9wdGlvbmFsIDR0aCBh
cmd1bWVudDogc2hvdWxkTGF6eUF0dGFjaAorLy8gVGhpcyBmdW5jdGlvbiBpcyBjdXN0b21pemVk
IHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBvcHRpb25hbCA0dGggYXJndW1lbnQ6IEF0dGFjaEJl
aGF2aW9yCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhOb2RlOjppbnNlcnRCZWZvcmVNZXRob2RD
dXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IGhvbGRlciA9IGFyZ3MuSG9sZGVyKCk7CkBAIC02OCw3ICs2OCw3IEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOE5vZGU6Omluc2VydEJlZm9yZU1ldGhvZEN1c3RvbShjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgTm9kZSogbmV3
Q2hpbGQgPSBWOE5vZGU6Okhhc0luc3RhbmNlKGFyZ3NbMF0sIGFyZ3MuR2V0SXNvbGF0ZSgpKSA/
IFY4Tm9kZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKSkg
OiAwOwogICAgIE5vZGUqIHJlZkNoaWxkID0gVjhOb2RlOjpIYXNJbnN0YW5jZShhcmdzWzFdLCBh
cmdzLkdldElzb2xhdGUoKSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVj
dD46OkNhc3QoYXJnc1sxXSkpIDogMDsKLSAgICBib29sIHN1Y2Nlc3MgPSBpbXAtPmluc2VydEJl
Zm9yZShuZXdDaGlsZCwgcmVmQ2hpbGQsIGVjLCB0cnVlKTsKKyAgICBib29sIHN1Y2Nlc3MgPSBp
bXAtPmluc2VydEJlZm9yZShuZXdDaGlsZCwgcmVmQ2hpbGQsIGVjLCBBdHRhY2hMYXppbHkpOwog
ICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJ
c29sYXRlKCkpOwogICAgIGlmIChzdWNjZXNzKQpAQCAtNzYsNyArNzYsNyBAQCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhOb2RlOjppbnNlcnRCZWZvcmVNZXRob2RDdXN0b20oY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncwogICAgIHJldHVybiB2OE51bGwoYXJncy5HZXRJc29sYXRlKCkpOwogfQog
Ci0vLyBUaGlzIGZ1bmN0aW9uIGlzIGN1c3RvbWl6ZWQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhl
IG9wdGlvbmFsIDR0aCBhcmd1bWVudDogc2hvdWxkTGF6eUF0dGFjaAorLy8gVGhpcyBmdW5jdGlv
biBpcyBjdXN0b21pemVkIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBvcHRpb25hbCA0dGggYXJn
dW1lbnQ6IEF0dGFjaEJlaGF2aW9yCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhOb2RlOjpyZXBs
YWNlQ2hpbGRNZXRob2RDdXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGFyZ3MuSG9sZGVyKCk7CkBAIC04NCw3ICs4
NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE5vZGU6OnJlcGxhY2VDaGlsZE1ldGhvZEN1
c3RvbShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CiAgICAgTm9kZSogbmV3Q2hpbGQgPSBWOE5vZGU6Okhhc0luc3RhbmNlKGFyZ3NbMF0sIGFyZ3Mu
R2V0SXNvbGF0ZSgpKSA/IFY4Tm9kZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6
Q2FzdChhcmdzWzBdKSkgOiAwOwogICAgIE5vZGUqIG9sZENoaWxkID0gVjhOb2RlOjpIYXNJbnN0
YW5jZShhcmdzWzFdLCBhcmdzLkdldElzb2xhdGUoKSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1sxXSkpIDogMDsKLSAgICBib29sIHN1Y2Nlc3Mg
PSBpbXAtPnJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjLCB0cnVlKTsKKyAgICBi
b29sIHN1Y2Nlc3MgPSBpbXAtPnJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjLCBB
dHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlv
bihlYywgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIGlmIChzdWNjZXNzKQpAQCAtMTA2LDE0ICsx
MDYsMTQgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Tm9kZTo6cmVtb3ZlQ2hpbGRNZXRob2RD
dXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICByZXR1cm4gdjhOdWxsKGFyZ3Mu
R2V0SXNvbGF0ZSgpKTsKIH0KIAotLy8gVGhpcyBmdW5jdGlvbiBpcyBjdXN0b21pemVkIHRvIHRh
a2UgYWR2YW50YWdlIG9mIHRoZSBvcHRpb25hbCA0dGggYXJndW1lbnQ6IHNob3VsZExhenlBdHRh
Y2gKKy8vIFRoaXMgZnVuY3Rpb24gaXMgY3VzdG9taXplZCB0byB0YWtlIGFkdmFudGFnZSBvZiB0
aGUgb3B0aW9uYWwgNHRoIGFyZ3VtZW50OiBBdHRhY2hCZWhhdmlvcgogdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4Tm9kZTo6YXBwZW5kQ2hpbGRNZXRob2RDdXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKIHsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGFyZ3MuSG9s
ZGVyKCk7CiAgICAgTm9kZSogaW1wID0gVjhOb2RlOjp0b05hdGl2ZShob2xkZXIpOwogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIE5vZGUqIG5ld0NoaWxkID0gVjhOb2RlOjpIYXNJbnN0
YW5jZShhcmdzWzBdLCBhcmdzLkdldElzb2xhdGUoKSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkpIDogMDsKLSAgICBib29sIHN1Y2Nlc3Mg
PSBpbXAtPmFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYywgdHJ1ZSApOworICAgIGJvb2wgc3VjY2Vz
cyA9IGltcC0+YXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlm
IChlYykKICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJc29sYXRl
KCkpOwogICAgIGlmIChzdWNjZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmlu
ZGV4IGIyMjk4ODFmNmU3OWVmODA5YTVmZWJiMDI1Yjk4Y2FlMWZhMDVkMjYuLjdiMzgzMWI3ZTI2
ZTA4MTk3YmUzNWVmOGI0M2ExZDVmMTllZjdmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
dm9pZCBkaXNwYXRjaENoaWxkSW5zZXJ0aW9uRXZlbnRzKE5vZGUqKTsKIHN0YXRpYyB2b2lkIGRp
c3BhdGNoQ2hpbGRSZW1vdmFsRXZlbnRzKE5vZGUqKTsKLXN0YXRpYyB2b2lkIHVwZGF0ZVRyZWVB
ZnRlckluc2VydGlvbihDb250YWluZXJOb2RlKiwgTm9kZSosIGJvb2wgc2hvdWxkTGF6eUF0dGFj
aCk7CitzdGF0aWMgdm9pZCB1cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24oQ29udGFpbmVyTm9kZSos
IE5vZGUqLCBBdHRhY2hCZWhhdmlvcik7CiAKIHR5cGVkZWYgcGFpcjxSZWZQdHI8Tm9kZT4sIHVu
c2lnbmVkPiBDYWxsYmFja1BhcmFtZXRlcnM7CiB0eXBlZGVmIHBhaXI8Tm9kZUNhbGxiYWNrLCBD
YWxsYmFja1BhcmFtZXRlcnM+IENhbGxiYWNrSW5mbzsKQEAgLTI0Miw3ICsyNDIsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgY2hlY2tSZXBsYWNlQ2hpbGQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50
LCBOb2RlKiBuZXdDaGlsZCwgTgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIENvbnRhaW5l
ck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZD
aGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCkKK2Jvb2wgQ29u
dGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUq
IHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgQXR0YWNoQmVoYXZpb3IgYXR0YWNoQmVoYXZp
b3IpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlzIG5vZGUgaXMgbm90ICJmbG9hdGluZyIuCiAg
ICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBkZWxldGVkIGFzIGEgc2lkZSBlZmZlY3Qgb2Ygc2Vu
ZGluZyBtdXRhdGlvbiBldmVudHMuCkBAIC0yNTQsNyArMjU0LDcgQEAgYm9vbCBDb250YWluZXJO
b2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hp
bGQsIEV4Y2UKIAogICAgIC8vIGluc2VydEJlZm9yZShub2RlLCAwKSBpcyBlcXVpdmFsZW50IHRv
IGFwcGVuZENoaWxkKG5vZGUpCiAgICAgaWYgKCFyZWZDaGlsZCkKLSAgICAgICAgcmV0dXJuIGFw
cGVuZENoaWxkKG5ld0NoaWxkLCBlYywgc2hvdWxkTGF6eUF0dGFjaCk7CisgICAgICAgIHJldHVy
biBhcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMsIGF0dGFjaEJlaGF2aW9yKTsKIAogICAgIC8vIE1h
a2Ugc3VyZSBhZGRpbmcgdGhlIG5ldyBjaGlsZCBpcyBPSy4KICAgICBpZiAoIWNoZWNrQWRkQ2hp
bGQodGhpcywgbmV3Q2hpbGQuZ2V0KCksIGVjKSkKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIENv
bnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2Rl
KiByZWZDaGlsZCwgRXhjZQogCiAgICAgICAgIGluc2VydEJlZm9yZUNvbW1vbihuZXh0LmdldCgp
LCBjaGlsZCk7CiAKLSAgICAgICAgdXBkYXRlVHJlZUFmdGVySW5zZXJ0aW9uKHRoaXMsIGNoaWxk
LCBzaG91bGRMYXp5QXR0YWNoKTsKKyAgICAgICAgdXBkYXRlVHJlZUFmdGVySW5zZXJ0aW9uKHRo
aXMsIGNoaWxkLCBhdHRhY2hCZWhhdmlvcik7CiAgICAgfQogCiAgICAgZGlzcGF0Y2hTdWJ0cmVl
TW9kaWZpZWRFdmVudCgpOwpAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6
cGFyc2VySW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG5leHRD
aGlsCiAgICAgQ2hpbGROb2RlSW5zZXJ0aW9uTm90aWZpZXIodGhpcykubm90aWZ5KG5ld0NoaWxk
LmdldCgpKTsKIH0KIAotYm9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0
cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBib29s
IHNob3VsZExhenlBdHRhY2gpCitib29sIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNz
UmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMs
IEF0dGFjaEJlaGF2aW9yIGF0dGFjaEJlaGF2aW9yKQogewogICAgIC8vIENoZWNrIHRoYXQgdGhp
cyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVs
ZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRzLgpAQCAtNDQw
LDcgKzQ0MCw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8
Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlCiAgICAgICAgICAgICAgICAgYXBw
ZW5kQ2hpbGRUb0NvbnRhaW5lcihjaGlsZCwgdGhpcyk7CiAgICAgICAgIH0KIAotICAgICAgICB1
cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24odGhpcywgY2hpbGQsIHNob3VsZExhenlBdHRhY2gpOwor
ICAgICAgICB1cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24odGhpcywgY2hpbGQsIGF0dGFjaEJlaGF2
aW9yKTsKICAgICB9CiAKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7CkBAIC02
NTQsNyArNjU0LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGlsZHJlbigpCiAgICAg
ZGlzcGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOwogfQogCi1ib29sIENvbnRhaW5lck5vZGU6
OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVj
LCBib29sIHNob3VsZExhenlBdHRhY2gpCitib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxk
KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBBdHRhY2hCZWhh
dmlvciBhdHRhY2hCZWhhdmlvcikKIHsKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gcHJvdGVj
dCh0aGlzKTsKIApAQCAtNzA0LDcgKzcwNCw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5k
Q2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvCiAg
ICAgICAgICAgICBhcHBlbmRDaGlsZFRvQ29udGFpbmVyKGNoaWxkLCB0aGlzKTsKICAgICAgICAg
fQogCi0gICAgICAgIHVwZGF0ZVRyZWVBZnRlckluc2VydGlvbih0aGlzLCBjaGlsZCwgc2hvdWxk
TGF6eUF0dGFjaCk7CisgICAgICAgIHVwZGF0ZVRyZWVBZnRlckluc2VydGlvbih0aGlzLCBjaGls
ZCwgYXR0YWNoQmVoYXZpb3IpOwogICAgIH0KIAogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVk
RXZlbnQoKTsKQEAgLTExNDQsNyArMTE0NCw3IEBAIHN0YXRpYyB2b2lkIGRpc3BhdGNoQ2hpbGRS
ZW1vdmFsRXZlbnRzKE5vZGUqIGNoaWxkKQogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgdXBkYXRl
VHJlZUFmdGVySW5zZXJ0aW9uKENvbnRhaW5lck5vZGUqIHBhcmVudCwgTm9kZSogY2hpbGQsIGJv
b2wgc2hvdWxkTGF6eUF0dGFjaCkKK3N0YXRpYyB2b2lkIHVwZGF0ZVRyZWVBZnRlckluc2VydGlv
bihDb250YWluZXJOb2RlKiBwYXJlbnQsIE5vZGUqIGNoaWxkLCBBdHRhY2hCZWhhdmlvciBhdHRh
Y2hCZWhhdmlvcikKIHsKICAgICBBU1NFUlQocGFyZW50LT5yZWZDb3VudCgpKTsKICAgICBBU1NF
UlQoY2hpbGQtPnJlZkNvdW50KCkpOwpAQCAtMTE1OCw3ICsxMTU4LDcgQEAgc3RhdGljIHZvaWQg
dXBkYXRlVHJlZUFmdGVySW5zZXJ0aW9uKENvbnRhaW5lck5vZGUqIHBhcmVudCwgTm9kZSogY2hp
bGQsIGJvb2wgc2gKICAgICAvLyBGSVhNRTogQXR0YWNobWVudCBzaG91bGQgYmUgdGhlIGZpcnN0
IG9wZXJhdGlvbiBpbiB0aGlzIGZ1bmN0aW9uLCBidXQgc29tZSBjb2RlCiAgICAgLy8gKGZvciBl
eGFtcGxlLCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50J3MgYXV0b2ZvY3VzIHN1cHBvcnQpIHJlcXVp
cmVzIHRoaXMgb3JkZXJpbmcuCiAgICAgaWYgKHBhcmVudC0+YXR0YWNoZWQoKSAmJiAhY2hpbGQt
PmF0dGFjaGVkKCkgJiYgY2hpbGQtPnBhcmVudE5vZGUoKSA9PSBwYXJlbnQpIHsKLSAgICAgICAg
aWYgKHNob3VsZExhenlBdHRhY2gpCisgICAgICAgIGlmIChhdHRhY2hCZWhhdmlvciA9PSBBdHRh
Y2hMYXppbHkpCiAgICAgICAgICAgICBjaGlsZC0+bGF6eUF0dGFjaCgpOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBjaGlsZC0+YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
aAppbmRleCBmZTJlYzg1Zjg0YjdjOTI0NmE4YTkyZjllNjM5M2I2ODE1NGUyNWU4Li42ZDc3ZDA0
ZTVjYjkwMWJjYjA2N2UwOGQ2MjFmMjdjOGI5MWM0NTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ29udGFpbmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmgKQEAgLTg5LDEwICs4OSwxMCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgY2hpbGRO
b2RlQ291bnQoKSBjb25zdDsKICAgICBOb2RlKiBjaGlsZE5vZGUodW5zaWduZWQgaW5kZXgpIGNv
bnN0OwogCi0gICAgYm9vbCBpbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwg
Tm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTiwgYm9v
bCBzaG91bGRMYXp5QXR0YWNoID0gZmFsc2UpOwotICAgIGJvb2wgcmVwbGFjZUNoaWxkKFBhc3NS
ZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFT
U0VSVF9OT19FWENFUFRJT04sIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZhbHNlKTsKKyAgICBi
b29sIGluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGls
ZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hCZWhhdmlvciA9
IEF0dGFjaE5vdyk7CisgICAgYm9vbCByZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdD
aGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElP
TiwgQXR0YWNoQmVoYXZpb3IgPSBBdHRhY2hOb3cpOwogICAgIGJvb2wgcmVtb3ZlQ2hpbGQoTm9k
ZSogY2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgYm9v
bCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiA9
IEFTU0VSVF9OT19FWENFUFRJT04sIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZhbHNlKTsKKyAg
ICBib29sIGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTiwgQXR0YWNoQmVoYXZpb3IgPSBBdHRhY2hOb3cpOwog
CiAgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgb25seSB1c2VkIGR1cmluZyBwYXJzaW5nLgogICAg
IC8vIFRoZXkgZG9uJ3Qgc2VuZCBET00gbXV0YXRpb24gZXZlbnRzIG9yIGhhbmRsZSByZXBhcmVu
dGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBkYzExYzk3NmJjNzEzYTNjOGMzYmUzNDAxZWNmM2E4
MjlkMzI0YWRiLi4xNDZmMGFlMjYwMjA1M2JiZDYzMGY1ODZhZjJhMjQ3YzIwZTZjNDY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCkBAIC01NDAsMjIgKzU0MCwyMiBAQCBOb2RlKiBOb2RlOjpmaXJzdERlc2Nl
bmRhbnQoKSBjb25zdAogICAgIHJldHVybiBuOwogfQogCi1ib29sIE5vZGU6Omluc2VydEJlZm9y
ZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29k
ZSYgZWMsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCkKK2Jvb2wgTm9kZTo6aW5zZXJ0QmVmb3JlKFBh
c3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBl
YywgQXR0YWNoQmVoYXZpb3IgYXR0YWNoQmVoYXZpb3IpCiB7CiAgICAgaWYgKCFpc0NvbnRhaW5l
ck5vZGUoKSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gdG9Db250YWluZXJOb2RlKHRoaXMpLT5p
bnNlcnRCZWZvcmUobmV3Q2hpbGQsIHJlZkNoaWxkLCBlYywgc2hvdWxkTGF6eUF0dGFjaCk7Cisg
ICAgcmV0dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlzKS0+aW5zZXJ0QmVmb3JlKG5ld0NoaWxkLCBy
ZWZDaGlsZCwgZWMsIGF0dGFjaEJlaGF2aW9yKTsKIH0KIAotYm9vbCBOb2RlOjpyZXBsYWNlQ2hp
bGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmIGVjLCBib29sIHNob3VsZExhenlBdHRhY2gpCitib29sIE5vZGU6OnJlcGxhY2VDaGlsZChQ
YXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYg
ZWMsIEF0dGFjaEJlaGF2aW9yIGF0dGFjaEJlaGF2aW9yKQogewogICAgIGlmICghaXNDb250YWlu
ZXJOb2RlKCkpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlzKS0+
cmVwbGFjZUNoaWxkKG5ld0NoaWxkLCBvbGRDaGlsZCwgZWMsIHNob3VsZExhenlBdHRhY2gpOwor
ICAgIHJldHVybiB0b0NvbnRhaW5lck5vZGUodGhpcyktPnJlcGxhY2VDaGlsZChuZXdDaGlsZCwg
b2xkQ2hpbGQsIGVjLCBhdHRhY2hCZWhhdmlvcik7CiB9CiAKIGJvb2wgTm9kZTo6cmVtb3ZlQ2hp
bGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNTY3LDEzICs1NjcsMTMg
QEAgYm9vbCBOb2RlOjpyZW1vdmVDaGlsZChOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgcmV0dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlzKS0+cmVtb3ZlQ2hpbGQob2xkQ2hp
bGQsIGVjKTsKIH0KIAotYm9vbCBOb2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5l
d0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgYm9vbCBzaG91bGRMYXp5QXR0YWNoKQorYm9vbCBO
b2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2Rl
JiBlYywgQXR0YWNoQmVoYXZpb3IgYXR0YWNoQmVoYXZpb3IpCiB7CiAgICAgaWYgKCFpc0NvbnRh
aW5lck5vZGUoKSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gdG9Db250YWluZXJOb2RlKHRoaXMp
LT5hcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMsIHNob3VsZExhenlBdHRhY2gpOworICAgIHJldHVy
biB0b0NvbnRhaW5lck5vZGUodGhpcyktPmFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYywgYXR0YWNo
QmVoYXZpb3IpOwogfQogCiB2b2lkIE5vZGU6OnJlbW92ZShFeGNlcHRpb25Db2RlJiBlYykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCmluZGV4IDcxMGMxYzZmMzI3MWNjYjIzMmViMmUzZmQ1MzkxMGQ3YTc0MjlhYjcuLmY1
ZjczOTBkYTQ4ODk4OTdhYmUyYjVhMWM5MjM0ZWFmYjM5OTE0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAt
MTI1LDYgKzEyNSwxMSBAQCBwcml2YXRlOgogICAgIFJlbmRlck9iamVjdCogbV9yZW5kZXJlcjsK
IH07CiAKK2VudW0gQXR0YWNoQmVoYXZpb3IgeworICAgIEF0dGFjaE5vdywKKyAgICBBdHRhY2hM
YXppbHksCit9OworCiBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgU2Ny
aXB0V3JhcHBhYmxlLCBwdWJsaWMgVHJlZVNoYXJlZDxOb2RlPiB7CiAgICAgZnJpZW5kIGNsYXNz
IERvY3VtZW50OwogICAgIGZyaWVuZCBjbGFzcyBUcmVlU2NvcGU7CkBAIC0xOTMsMTAgKzE5OCwx
MCBAQCBwdWJsaWM6CiAgICAgLy8gVGhlc2Ugc2hvdWxkIGFsbCBhY3R1YWxseSByZXR1cm4gYSBu
b2RlLCBidXQgdGhpcyBpcyBvbmx5IGltcG9ydGFudCBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MsCiAg
ICAgLy8gd2hpY2ggd2lsbCBhbHJlYWR5IGtub3cgYW5kIGhvbGQgYSByZWYgb24gdGhlIHJpZ2h0
IG5vZGUgdG8gcmV0dXJuLiBSZXR1cm5pbmcgYm9vbCBhbGxvd3MKICAgICAvLyB0aGVzZSBtZXRo
b2RzIHRvIGJlIG1vcmUgZWZmaWNpZW50IHNpbmNlIHRoZXkgZG9uJ3QgbmVlZCB0byByZXR1cm4g
YSByZWYKLSAgICBib29sIGluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBO
b2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZh
bHNlKTsKLSAgICBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBO
b2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZh
bHNlKTsKKyAgICBib29sIGluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBO
b2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIEF0dGFjaEJlaGF2aW9yID0gQXR0YWNoTm93
KTsKKyAgICBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2Rl
KiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIEF0dGFjaEJlaGF2aW9yID0gQXR0YWNoTm93KTsK
ICAgICBib29sIHJlbW92ZUNoaWxkKE5vZGUqIGNoaWxkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAg
Ym9vbCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2Rl
JiwgYm9vbCBzaG91bGRMYXp5QXR0YWNoID0gZmFsc2UpOworICAgIGJvb2wgYXBwZW5kQ2hpbGQo
UGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIEF0dGFjaEJlaGF2aW9y
ID0gQXR0YWNoTm93KTsKIAogICAgIHZvaWQgcmVtb3ZlKEV4Y2VwdGlvbkNvZGUmKTsKICAgICBi
b29sIGhhc0NoaWxkTm9kZXMoKSBjb25zdCB7IHJldHVybiBmaXJzdENoaWxkKCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5kZXggNWYyMGY0ZTBj
ODRjYTNhMTQzODQ3ZjgwZWU5Y2UxYzZhYjc2OGVhNC4uNmQyY2YyM2Y3NzIxYTUwNjE3ZTNkN2Nk
ZWI3YzRhMzFjNzkxMjdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9B
cHBseSgpCiAgICAgaWYgKCFtX3BhcmVudC0+cmVuZGVyZXJJc0VkaXRhYmxlKCkgJiYgbV9wYXJl
bnQtPmF0dGFjaGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFyZW50LT5hcHBlbmRD
aGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04sIHRydWUgLyogbGF6eUF0dGFjaCAq
Lyk7CisgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQ
VElPTiwgQXR0YWNoTGF6aWx5KTsKIAogICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKQogICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFr
cyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXgg
NzZjZmE1NDdkNzA0MzQyZmY3N2JlOTMzNTc2OTBkNWI5YjY2MDc0Ny4uN2VkZTk5OTExZWZkMzM0
NWU5OTI4MWEyY2QyNDEzNTg3YWNmZDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICBB
U1NFUlQocGFyZW50LT5pc0NvbnRlbnRFZGl0YWJsZShOb2RlOjpVc2VyU2VsZWN0QWxsSXNBbHdh
eXNOb25FZGl0YWJsZSkpOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGls
ZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTiwgdHJ1ZSAvKiBsYXp5
QXR0YWNoICovKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgp
LCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOwogCiAg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIGRv
Y3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9p
bnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5z
ZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNF
bGVtZW50LmNwcAppbmRleCA1YzY3ZGJjNTgwYjVhNzNhNzA3MjE3YzExYTJkMTQ2ZDQzMjg1NTUx
Li5hMjEyNzg4NWY1YzlkNTc3YmNjMWQ4ZTg5OWVlMWFhNTNlN2VjY2Y3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0xMTIsOCArMTEyLDggQEAgUmVu
ZGVyT2JqZWN0KiBIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiBhcmVuYSwgUmVuZGVyU3R5bGUKIAogdm9pZCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmRpZEFkZFVz
ZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogcm9vdCkKIHsKLSAgICByb290LT5hcHBlbmRD
aGlsZChEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05P
X0VYQ0VQVElPTiwgdHJ1ZSk7Ci0gICAgcm9vdC0+YXBwZW5kQ2hpbGQoRGV0YWlsc0NvbnRlbnRF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOwor
ICAgIHJvb3QtPmFwcGVuZENoaWxkKERldGFpbHNTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOworICAgIHJvb3QtPmFw
cGVuZENoaWxkKERldGFpbHNDb250ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NF
UlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOwogfQogCiBFbGVtZW50KiBIVE1MRGV0YWls
c0VsZW1lbnQ6OmZpbmRNYWluU3VtbWFyeSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTdW1tYXJ5RWxlbWVudC5jcHAKaW5kZXggODAwYWUxYmYzMzM1OTc4ZGUyNjgzYWNiZWM3MTQ2
ZjIwOTIyZDU5My4uYjk3ODI3OWRiN2Q2NzBjYzlhMmYzNjlhZjAxOGVmMTczZDBhNTM2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcApAQCAtNzgsOCArNzgs
OCBAQCBib29sIEhUTUxTdW1tYXJ5RWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihj
b25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgYwogCiB2b2lkIEhUTUxTdW1tYXJ5RWxlbWVudDo6
ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290KiByb290KQogewotICAgIHJvb3Qt
PmFwcGVuZENoaWxkKERldGFpbHNNYXJrZXJDb250cm9sOjpjcmVhdGUoZG9jdW1lbnQoKSksIEFT
U0VSVF9OT19FWENFUFRJT04sIHRydWUpOwotICAgIHJvb3QtPmFwcGVuZENoaWxkKFN1bW1hcnlD
b250ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0
cnVlKTsKKyAgICByb290LT5hcHBlbmRDaGlsZChEZXRhaWxzTWFya2VyQ29udHJvbDo6Y3JlYXRl
KGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOworICAgIHJv
b3QtPmFwcGVuZENoaWxkKFN1bW1hcnlDb250ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOwogfQogCiBIVE1MRGV0YWlsc0Vs
ZW1lbnQqIEhUTUxTdW1tYXJ5RWxlbWVudDo6ZGV0YWlsc0VsZW1lbnQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmlu
ZGV4IDIyNGQ0MzU3YWI2YzQzYjg3YzkxY2ZhNTQ4MGQxNWU3MDNmNjU5MjEuLjc3NWMwNzc2ZGQ3
YTViM2E3NzRjYzIzOWYxNGNmZjA1ZmI1ZWE1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTExODUsNyArMTE4NSw3
IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlU3Vi
dHJlZXMoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIG1fY3VlQ29udGFpbmVyID0gSFRNTEVs
ZW1lbnQ6OmNyZWF0ZShzcGFuVGFnLCBkb2N1bWVudCk7CiAgICAgbV9jdWVDb250YWluZXItPnNl
dFBzZXVkbyhUZXh0VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkpOwotICAgIGFwcGVuZENo
aWxkKG1fY3VlQ29udGFpbmVyLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBmYWxzZSk7CisgICAgYXBw
ZW5kQ2hpbGQobV9jdWVDb250YWluZXIsIEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFjaE5vdyk7
CiB9CiAKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4g
TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBk
b2N1bWVudCkKQEAgLTEyNzMsNyArMTI3Myw3IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNr
Q29udGFpbmVyRWxlbWVudDo6dXBkYXRlRGlzcGxheSgpCiAgICAgICAgIFJlZlB0cjxUZXh0VHJh
Y2tDdWVCb3g+IGRpc3BsYXlCb3ggPSBjdWUtPmdldERpc3BsYXlUcmVlKG1fdmlkZW9EaXNwbGF5
U2l6ZS5zaXplKCkpOwogICAgICAgICBpZiAoZGlzcGxheUJveC0+aGFzQ2hpbGROb2RlcygpICYm
ICFjb250YWlucyhzdGF0aWNfY2FzdDxOb2RlKj4oZGlzcGxheUJveC5nZXQoKSkpKQogICAgICAg
ICAgICAgLy8gTm90ZTogdGhlIGRpc3BsYXkgdHJlZSBvZiBhIGN1ZSBpcyByZW1vdmVkIHdoZW4g
dGhlIGFjdGl2ZSBmbGFnIG9mIHRoZSBjdWUgaXMgdW5zZXQuCi0gICAgICAgICAgICBtX2N1ZUNv
bnRhaW5lci0+YXBwZW5kQ2hpbGQoZGlzcGxheUJveCwgQVNTRVJUX05PX0VYQ0VQVElPTiwgZmFs
c2UpOworICAgICAgICAgICAgbV9jdWVDb250YWluZXItPmFwcGVuZENoaWxkKGRpc3BsYXlCb3gs
IEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFjaE5vdyk7CiAgICAgfQogCiAgICAgLy8gMTEuIFJl
dHVybiBvdXRwdXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMu
Y3BwCmluZGV4IDM4MTRkZWQxNmIwZjAxNDdkMmMzZGNjM2M2YTdkNjg4ODg4ZjdiZWMuLmNlYzli
YzUzMTU3ZTI4NGQ1Y2I3M2MwMWRiZTE1YzM5YzA3N2E2NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCkBAIC0zODEsNyArMzgxLDcgQEAgdm9pZCBN
ZWRpYUNvbnRyb2xzOjpjcmVhdGVUZXh0VHJhY2tEaXNwbGF5KCkKICAgICAgICAgbV90ZXh0RGlz
cGxheUNvbnRhaW5lci0+c2V0TWVkaWFDb250cm9sbGVyKG1fbWVkaWFDb250cm9sbGVyKTsKIAog
ICAgIC8vIEluc2VydCBpdCBiZWZvcmUgdGhlIGZpcnN0IGNvbnRyb2xsZXIgZWxlbWVudCBzbyBp
dCBhbHdheXMgZGlzcGxheXMgYmVoaW5kIHRoZSBjb250cm9scy4KLSAgICBpbnNlcnRCZWZvcmUo
dGV4dERpc3BsYXlDb250YWluZXIsIG1fcGFuZWwsIElHTk9SRV9FWENFUFRJT04sIHRydWUpOwor
ICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lciwgbV9wYW5lbCwgSUdOT1JFX0VY
Q0VQVElPTiwgQXR0YWNoTGF6aWx5KTsKICAgICB0ZXh0RGlzcGxheUNvbnRhaW5lci0+Y3JlYXRl
U3VidHJlZXMoZG9jdW1lbnQoKSk7CiAgICAgdGV4dERpc3BsYXlDb250YWluZXIucmVsZWFzZSgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
c0FwcGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBs
ZS5jcHAKaW5kZXggOWNhMmRlNzU5MWU5NDgyYTY5YTVkNWIwYzEwMjNlOWU1NzMyMzFkZC4uMzk2
ZTQ5ZDJkNzllNTk0NmU0Y2M0MTMwNGFjYjU3YTkyMWFlNWYxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCkBAIC04NCwyNiArODQs
MjYgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1lZGlhQ29udHJvbHNBcHBsZTo6
Y3JlYXRlQ29udHJvbHMoRG9jdW1lbnQqIGRvY3UKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xS
ZXdpbmRCdXR0b25FbGVtZW50PiByZXdpbmRCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0
b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3Jld2luZEJ1dHRv
biA9IHJld2luZEJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocmV3aW5kQnV0
dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChyZXdpbmRC
dXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAg
IHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBw
bGF5QnV0dG9uID0gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CiAgICAgY29udHJvbHMtPm1fcGxheUJ1dHRvbiA9IHBsYXlCdXR0b24uZ2V0KCk7Ci0gICAg
cGFuZWwtPmFwcGVuZENoaWxkKHBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAg
cGFuZWwtPmFwcGVuZENoaWxkKHBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiByZXR1cm5Ub1JlYWx0aW1lQnV0dG9u
ID0gTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CiAgICAgY29udHJvbHMtPm1fcmV0dXJuVG9SZWFsVGltZUJ1dHRvbiA9IHJldHVyblRv
UmVhbHRpbWVCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHJldHVyblRvUmVh
bHRpbWVCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxk
KHJldHVyblRvUmVhbHRpbWVCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAg
ICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKGRvY3VtZW50LT5wYWdlKCkt
PnRoZW1lKCktPnVzZXNNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5KCkpIHsKICAgICAgICAgUmVm
UHRyPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBzdGF0dXNEaXNwbGF5ID0gTWVk
aWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgICAg
IGNvbnRyb2xzLT5tX3N0YXR1c0Rpc3BsYXkgPSBzdGF0dXNEaXNwbGF5LmdldCgpOwotICAgICAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQoc3RhdHVzRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsK
KyAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHN0YXR1c0Rpc3BsYXkucmVsZWFzZSgpLCBlYywg
QXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQpAQCAtMTEyLDM4ICsxMTIsMzggQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+
IE1lZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJvbHMoRG9jdW1lbnQqIGRvY3UKIAogICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBjdXJyZW50VGlt
ZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxheSA9IGN1cnJlbnRU
aW1lRGlzcGxheS5nZXQoKTsKLSAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY3Vy
cmVudFRpbWVEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHRpbWVsaW5lQ29udGFp
bmVyLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYywgQXR0YWNo
TGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1l
ZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGlu
ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgIGNvbnRyb2xz
LT5tX3RpbWVsaW5lID0gdGltZWxpbmUuZ2V0KCk7Ci0gICAgdGltZWxpbmVDb250YWluZXItPmFw
cGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHRpbWVsaW5lQ29u
dGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkp
OwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8TWVkaWFDb250
cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiB0aW1lUmVtYWluaW5nRGlzcGxheSA9IE1l
ZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICBjb250cm9scy0+bV90aW1lUmVtYWluaW5nRGlzcGxheSA9IHRpbWVSZW1haW5pbmdEaXNw
bGF5LmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lUmVtYWlu
aW5nRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICB0aW1lbGluZUNvbnRhaW5lci0+
YXBwZW5kQ2hpbGQodGltZVJlbWFpbmluZ0Rpc3BsYXkucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6
aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY29udHJvbHMtPm1f
dGltZWxpbmVDb250YWluZXIgPSB0aW1lbGluZUNvbnRhaW5lci5nZXQoKTsKLSAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQodGltZWxpbmVDb250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAg
cGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIEF0dGFj
aExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIEZJWE1F
OiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KICAg
ICBSZWZQdHI8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBzZWVrQmFja0J1dHRv
biA9IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICBjb250cm9scy0+bV9zZWVrQmFja0J1dHRvbiA9IHNlZWtCYWNrQnV0dG9uLmdldCgpOwot
ICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzZWVrQmFja0J1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVl
KTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2Vla0JhY2tCdXR0b24ucmVsZWFzZSgpLCBlYywg
QXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgLy8g
RklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYz
PgogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ+IHNlZWtG
b3J3YXJkQnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3NlZWtGb3J3YXJkQnV0dG9uID0gc2Vla0Zv
cndhcmRCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHNlZWtGb3J3YXJkQnV0
dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzZWVrRm9y
d2FyZEJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAg
ICAgICAgcmV0dXJuIDA7CiAKQEAgLTE1MiwxOCArMTUyLDE4IEBAIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50
KiBkb2N1CiAKICAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tM
aXN0RWxlbWVudD4gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBNZWRpYUNvbnRyb2xDbG9zZWRD
YXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkp
OwogICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IGNsb3NlZENh
cHRpb25zVHJhY2tMaXN0LmdldCgpOwotICAgICAgICBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+
YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QucmVsZWFzZSgpLCBlYywgdHJ1ZSk7
CisgICAgICAgIGNsb3NlZENhcHRpb25zQ29udGFpbmVyLT5hcHBlbmRDaGlsZChjbG9zZWRDYXB0
aW9uc1RyYWNrTGlzdC5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgICAgICBpZiAo
ZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9s
VG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbiA9IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CiAgICAgICAgIGNvbnRyb2xzLT5tX3RvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uID0gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24uZ2V0KCk7
Ci0gICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5y
ZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgICAg
IGlmIChlYykKICAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIGNvbnRyb2xzLT5tX2Ns
b3NlZENhcHRpb25zQ29udGFpbmVyID0gY2xvc2VkQ2FwdGlvbnNDb250YWluZXIuZ2V0KCk7Ci0g
ICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZChjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci5yZWxlYXNl
KCksIGVjLCB0cnVlKTsKKyAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKGNsb3NlZENhcHRpb25z
Q29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgICAgIGlmIChlYykK
ICAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTE3MSw3ICsxNzEsNyBAQCBQYXNzUmVm
UHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gTWVkaWFDb250cm9sc0FwcGxlOjpjcmVhdGVDb250cm9s
cyhEb2N1bWVudCogZG9jdQogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8
aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNj
cmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5CdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxs
U2NyZWVuQnV0dG9uID0gZnVsbFNjcmVlbkJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5k
Q2hpbGQoZnVsbFNjcmVlbkJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkp
OwogCiAgICAgLy8gVGhlIG11dGUgYnV0dG9uIGFuZCB0aGUgc2xpZGVyIGVsZW1lbnQgc2hvdWxk
IGJlIGluIHRoZSBzYW1lIGRpdi4KICAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHBhbmVsVm9s
dW1lQ29udHJvbENvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwpA
QCAtMTgxLDcgKzE4MSw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBNZWRpYUNv
bnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50KiBkb2N1CiAKICAgICAgICAgUmVm
UHRyPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFD
b250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgICAg
ICBjb250cm9scy0+bV92b2x1bWVTbGlkZXIgPSBzbGlkZXIuZ2V0KCk7Ci0gICAgICAgIHZvbHVt
ZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoc2xpZGVyLnJlbGVhc2UoKSwgZWMsIHRydWUp
OworICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHNsaWRlci5yZWxl
YXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICBy
ZXR1cm4gMDsKIApAQCAtMTg5LDQ4ICsxODksNDggQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xz
QXBwbGU+IE1lZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJvbHMoRG9jdW1lbnQqIGRvY3UK
ICAgICAgICAgLy8gSXQncyBpbXBvcnRhbnQgb25seSB3aGVuIHRoZSB2b2x1bWUgYmFyIGlzIGRp
c3BsYXllZCBiZWxvdyB0aGUgY29udHJvbHMuCiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudD4gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IE1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwogICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gdm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvbi5nZXQoKTsKLSAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBl
bmRDaGlsZCh2b2x1bWVTbGlkZXJNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAg
ICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlck11dGVC
dXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKIAogICAgICAgICBpZiAoZWMpCiAg
ICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXJD
b250YWluZXIgPSB2b2x1bWVTbGlkZXJDb250YWluZXIuZ2V0KCk7Ci0gICAgICAgIHBhbmVsVm9s
dW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQodm9sdW1lU2xpZGVyQ29udGFpbmVyLnJl
bGVhc2UoKSwgZWMsIHRydWUpOworICAgICAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIt
PmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlckNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCBBdHRhY2hM
YXppbHkpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICB9CiAK
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxNdXRl
QnV0dG9uID0gTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50LCBjb250cm9scy5nZXQoKSk7CiAgICAgY29udHJvbHMtPm1fcGFuZWxNdXRlQnV0dG9uID0g
cGFuZWxNdXRlQnV0dG9uLmdldCgpOwotICAgIHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lci0+
YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBh
bmVsVm9sdW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJl
bGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4g
MDsKIAotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIs
IGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxWb2x1bWVDb250cm9sQ29u
dGFpbmVyLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgLy8gRklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0
Lm9yZy9iLzU3MTYzPgogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWlu
QnV0dG9uRWxlbWVudD4gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNv
bnRyb2xzLT5tX2Z1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVuTWluVm9sdW1l
QnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuTWluVm9sdW1l
QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxs
U2NyZWVuTWluVm9sdW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAg
aWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5Wb2x1bWVTbGlkZXIgPSBmdWxsU2NyZWVuVm9sdW1l
U2xpZGVyLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuVm9sdW1lU2xp
ZGVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2Ny
ZWVuVm9sdW1lU2xpZGVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVu
Vm9sdW1lTWF4QnV0dG9uRWxlbWVudD4gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwogICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVu
TWF4Vm9sdW1lQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVu
TWF4Vm9sdW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRD
aGlsZChmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemls
eSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbnRyb2xzLT5tX3Bh
bmVsID0gcGFuZWwuZ2V0KCk7Ci0gICAgY29udHJvbHMtPmFwcGVuZENoaWxkKHBhbmVsLnJlbGVh
c2UoKSwgZWMsIHRydWUpOworICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChwYW5lbC5yZWxlYXNl
KCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNCbGFj
a0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNCbGFj
a0JlcnJ5LmNwcAppbmRleCBmZTcxNTgzNmMwOTA3ODFmMTIyYTUzZDcyNjc0NTQ2ZDgwMzZjNzli
Li5hZmYwZGJmNzJiYmViNTg3ZTUzNzQyZjYzOTdhZjU1N2NlMTA3OTEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQmxhY2tCZXJyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0JsYWNrQmVycnkuY3Bw
CkBAIC02NDksNyArNjQ5LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeT4g
TWVkaWFDb250cm9sc0JsYWNrQmVycnk6OmNyZWF0ZUNvbnRyb2xzKERvY3UKIAogICAgIFJlZlB0
cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4gcGxheUJ1dHRvbiA9IE1lZGlhQ29udHJv
bFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3Bs
YXlCdXR0b24gPSBwbGF5QnV0dG9uLmdldCgpOwotICAgIGVtYmVkUGFuZWwtPmFwcGVuZENoaWxk
KHBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgZW1iZWRQYW5lbC0+YXBwZW5k
Q2hpbGQocGxheUJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChl
YykKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTY1Nyw3ICs2NTcsNyBAQCBQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbHNCbGFja0JlcnJ5PiBNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeTo6Y3JlYXRlQ29u
dHJvbHMoRG9jdQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGlt
ZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29u
dHJvbHMuZ2V0KCkpOwogICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lID0gdGltZWxpbmUuZ2V0KCk7
Ci0gICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwg
ZWMsIHRydWUpOworICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5y
ZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJu
IDA7CiAKQEAgLTY2NSwyOSArNjY1LDI5IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0JsYWNr
QmVycnk+IE1lZGlhQ29udHJvbHNCbGFja0JlcnJ5OjpjcmVhdGVDb250cm9scyhEb2N1CiAKICAg
ICBSZWZQdHI8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRp
bWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50
VGltZURpc3BsYXkuZ2V0KCk7Ci0gICAgdGltZURpc3BsYXlDb250YWluZXItPmFwcGVuZENoaWxk
KGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICB0aW1lRGlzcGxh
eUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVEaXNwbGF5LnJlbGVhc2UoKSwgZWMs
IEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IHRpbWVSZW1haW5p
bmdEaXNwbGF5ID0gTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3RpbWVSZW1haW5pbmdEaXNwbGF5ID0gdGlt
ZVJlbWFpbmluZ0Rpc3BsYXkuZ2V0KCk7Ci0gICAgdGltZURpc3BsYXlDb250YWluZXItPmFwcGVu
ZENoaWxkKHRpbWVSZW1haW5pbmdEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHRp
bWVEaXNwbGF5Q29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lUmVtYWluaW5nRGlzcGxheS5yZWxl
YXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBjb250cm9scy0+bV90aW1lRGlzcGxheUNvbnRhaW5lciA9IHRpbWVEaXNwbGF5Q29u
dGFpbmVyLmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lRGlz
cGxheUNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICB0aW1lbGluZUNvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQodGltZURpc3BsYXlDb250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNo
TGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY29udHJvbHMt
Pm1fdGltZWxpbmVDb250YWluZXIgPSB0aW1lbGluZUNvbnRhaW5lci5nZXQoKTsKLSAgICBlbWJl
ZFBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZUNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVl
KTsKKyAgICBlbWJlZFBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZUNvbnRhaW5lci5yZWxlYXNl
KCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAK
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3Jl
ZW5CdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuQnV0dG9uID0gZnVsbFNjcmVlbkJ1
dHRvbi5nZXQoKTsKLSAgICBlbWJlZFBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuQnV0dG9u
LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGVtYmVkUGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxT
Y3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiAwOwogCkBAIC02OTksMjEgKzY5OSwyMSBAQCBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbHNCbGFja0JlcnJ5PiBNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeTo6Y3JlYXRlQ29udHJv
bHMoRG9jdQogCiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVs
ZW1lbnQ+IHNsaWRlciA9IE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKICAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyID0gc2xpZGVy
LmdldCgpOwotICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHNsaWRl
ci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5h
cHBlbmRDaGlsZChzbGlkZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICAgICAg
aWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgY29udHJvbHMtPm1fdm9s
dW1lU2xpZGVyQ29udGFpbmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVyLmdldCgpOwotICAgICAg
ICB2b2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJDb250YWlu
ZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIHZvbHVtZUNvbnRyb2xDb250YWluZXIt
PmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlckNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCBBdHRhY2hM
YXppbHkpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAg
UmVmUHRyPE1lZGlhQ29udHJvbEF1ZGlvTXV0ZUJ1dHRvbkVsZW1lbnQ+IG11dGVCdXR0b24gPSBN
ZWRpYUNvbnRyb2xBdWRpb011dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRy
b2xzLmdldCgpKTsKICAgICAgICAgY29udHJvbHMtPm1fbXV0ZUJ1dHRvbiA9IG11dGVCdXR0b24u
Z2V0KCk7Ci0gICAgICAgIHZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKG11dGVC
dXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIHZvbHVtZUNvbnRyb2xDb250YWlu
ZXItPmFwcGVuZENoaWxkKG11dGVCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsK
ICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgZW1iZWRQ
YW5lbC0+YXBwZW5kQ2hpbGQodm9sdW1lQ29udHJvbENvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0
cnVlKTsKKyAgICAgICAgZW1iZWRQYW5lbC0+YXBwZW5kQ2hpbGQodm9sdW1lQ29udHJvbENvbnRh
aW5lci5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgICAgICBpZiAoZWMpCiAgICAg
ICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC03MjIsNyArNzIyLDcgQEAgUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xzQmxhY2tCZXJyeT4gTWVkaWFDb250cm9sc0JsYWNrQmVycnk6OmNyZWF0ZUNv
bnRyb2xzKERvY3UKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVGltZWxpbmVF
bGVtZW50PiBmdWxsc2NyZWVuVGltZWxpbmUgPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVGltZWxp
bmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICBjb250cm9s
cy0+bV9mdWxsc2NyZWVuVGltZWxpbmUgPSBmdWxsc2NyZWVuVGltZWxpbmUuZ2V0KCk7Ci0gICAg
ZnVsbHNjcmVlblRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuVGltZWxp
bmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgZnVsbHNjcmVlblRpbWVsaW5lQ29udGFpbmVy
LT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuVGltZWxpbmUucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6
aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC03MzAsMjMgKzczMCwy
MyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNCbGFja0JlcnJ5PiBNZWRpYUNvbnRyb2xzQmxh
Y2tCZXJyeTo6Y3JlYXRlQ29udHJvbHMoRG9jdQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5DdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBmdWxsc2NyZWVuQ3VycmVudFRpbWVE
aXNwbGF5ID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fZnVsbHNjcmVlbkN1cnJlbnRUaW1l
RGlzcGxheSA9IGZ1bGxzY3JlZW5DdXJyZW50VGltZURpc3BsYXkuZ2V0KCk7Ci0gICAgZnVsbHNj
cmVlblRpbWVEaXNwbGF5Q29udGFpbmVyLT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuQ3VycmVudFRp
bWVEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGZ1bGxzY3JlZW5UaW1lRGlzcGxh
eUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlbkN1cnJlbnRUaW1lRGlzcGxheS5yZWxl
YXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblRpbWVSZW1haW5pbmdEaXNwbGF5
RWxlbWVudD4gZnVsbHNjcmVlblRpbWVSZW1haW5pbmdEaXNwbGF5ID0gTWVkaWFDb250cm9sRnVs
bHNjcmVlblRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAg
ICBjb250cm9scy0+bV9mdWxsc2NyZWVuVGltZVJlbWFpbmluZ0Rpc3BsYXkgPSBmdWxsc2NyZWVu
VGltZVJlbWFpbmluZ0Rpc3BsYXkuZ2V0KCk7Ci0gICAgZnVsbHNjcmVlblRpbWVEaXNwbGF5Q29u
dGFpbmVyLT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuVGltZVJlbWFpbmluZ0Rpc3BsYXkucmVsZWFz
ZSgpLCBlYywgdHJ1ZSk7CisgICAgZnVsbHNjcmVlblRpbWVEaXNwbGF5Q29udGFpbmVyLT5hcHBl
bmRDaGlsZChmdWxsc2NyZWVuVGltZVJlbWFpbmluZ0Rpc3BsYXkucmVsZWFzZSgpLCBlYywgQXR0
YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY29udHJv
bHMtPm1fZnVsbHNjcmVlblRpbWVEaXNwbGF5Q29udGFpbmVyID0gZnVsbHNjcmVlblRpbWVEaXNw
bGF5Q29udGFpbmVyLmdldCgpOwotICAgIGZ1bGxzY3JlZW5UaW1lbGluZUNvbnRhaW5lci0+YXBw
ZW5kQ2hpbGQoZnVsbHNjcmVlblRpbWVEaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIHRy
dWUpOworICAgIGZ1bGxzY3JlZW5UaW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNj
cmVlblRpbWVEaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAg
ICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbnRyb2xzLT5tX2Z1bGxzY3Jl
ZW5UaW1lbGluZUNvbnRhaW5lciA9IGZ1bGxzY3JlZW5UaW1lbGluZUNvbnRhaW5lci5nZXQoKTsK
LSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlblRpbWVsaW5lQ29udGFpbmVyLnJlbGVh
c2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuVGltZWxp
bmVDb250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiAwOwogCkBAIC03NTcsMTUgKzc1NywxNSBAQCBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbHNCbGFja0JlcnJ5PiBNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeTo6Y3JlYXRlQ29udHJv
bHMoRG9jdQogICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5CdXR0b25Db250YWluZXIgPSBmdWxs
U2NyZWVuQnV0dG9uQ29udGFpbmVyLmdldCgpOwogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxzY3JlZW5GdWxsU2NyZWVuQnV0dG9u
ID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX2Z1bGxzY3JlZW5GdWxsU2NyZWVuQnV0dG9uID0g
ZnVsbHNjcmVlbkZ1bGxTY3JlZW5CdXR0b24uZ2V0KCk7Ci0gICAgZnVsbFNjcmVlbkJ1dHRvbkNv
bnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlbkZ1bGxTY3JlZW5CdXR0b24ucmVsZWFzZSgp
LCBlYywgdHJ1ZSk7CisgICAgZnVsbFNjcmVlbkJ1dHRvbkNvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
ZnVsbHNjcmVlbkZ1bGxTY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsK
ICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuQnV0dG9uRGl2aWRlckVsZW1lbnQ+IGZ1bGxTY3JlZW5EaXZpZGVyID0gTWVkaWFD
b250cm9sRnVsbHNjcmVlbkJ1dHRvbkRpdmlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5EaXZpZGVyID0gZnVsbFNjcmVlbkRpdmlkZXIuZ2V0
KCk7Ci0gICAgZnVsbFNjcmVlbkJ1dHRvbkNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVl
bkRpdmlkZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgZnVsbFNjcmVlbkJ1dHRvbkNvbnRh
aW5lci0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkRpdmlkZXIucmVsZWFzZSgpLCBlYywgQXR0YWNo
TGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwotICAgIGJ1dHRvbkdyb3Vw
Q29udGFpbmVyLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuQnV0dG9uQ29udGFpbmVyLnJlbGVhc2Uo
KSwgZWMsIHRydWUpOworICAgIGJ1dHRvbkdyb3VwQ29udGFpbmVyLT5hcHBlbmRDaGlsZChmdWxs
U2NyZWVuQnV0dG9uQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAg
aWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtNzczLDM5ICs3NzMsMzkgQEAgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeT4gTWVkaWFDb250cm9sc0JsYWNrQmVycnk6OmNy
ZWF0ZUNvbnRyb2xzKERvY3UKICAgICBjb250cm9scy0+bV9wbGF5QnV0dG9uQ29udGFpbmVyID0g
cGxheUJ1dHRvbkNvbnRhaW5lci5nZXQoKTsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNj
cmVlblBsYXlCdXR0b25FbGVtZW50PiBmdWxsc2NyZWVuUGxheUJ1dHRvbiA9IE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5QbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250
cm9scy0+bV9mdWxsc2NyZWVuUGxheUJ1dHRvbiA9IGZ1bGxzY3JlZW5QbGF5QnV0dG9uLmdldCgp
OwotICAgIHBsYXlCdXR0b25Db250YWluZXItPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5QbGF5QnV0
dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBsYXlCdXR0b25Db250YWluZXItPmFwcGVu
ZENoaWxkKGZ1bGxzY3JlZW5QbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7
CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKLSAgICBidXR0b25Hcm91cENvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQocGxheUJ1dHRvbkNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsK
KyAgICBidXR0b25Hcm91cENvbnRhaW5lci0+YXBwZW5kQ2hpbGQocGxheUJ1dHRvbkNvbnRhaW5l
ci5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50PiBwbGFj
ZWhvbGRlciA9IE1lZGlhQ29udHJvbFBsYWNlaG9sZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICBjb250cm9scy0+bV9wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyLmdldCgpOwotICAg
IGJ1dHRvbkdyb3VwQ29udGFpbmVyLT5hcHBlbmRDaGlsZChwbGFjZWhvbGRlci5yZWxlYXNlKCks
IGVjLCB0cnVlKTsKKyAgICBidXR0b25Hcm91cENvbnRhaW5lci0+YXBwZW5kQ2hpbGQocGxhY2Vo
b2xkZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAg
IHJldHVybiAwOwogCiAgICAgY29udHJvbHMtPm1fYnV0dG9uQ29udGFpbmVyID0gYnV0dG9uR3Jv
dXBDb250YWluZXIuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGJ1dHRvbkdyb3VwQ29u
dGFpbmVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChidXR0
b25Hcm91cENvbnRhaW5lci5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChl
YykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoZG9jdW1lbnQtPnBhZ2UoKS0+dGhlbWUo
KS0+c3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5nKCkpIHsKICAgICAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gdG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgICAgICBjb250cm9scy0+bV90
b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLmdl
dCgpOwotICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0b2dn
bGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAg
ICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKICAgICBjb250cm9s
cy0+bV9wYW5lbCA9IHBhbmVsLmdldCgpOwotICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChwYW5l
bC5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQocGFuZWwu
cmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVy
biAwOwogCiAgICAgY29udHJvbHMtPm1fZW1iZWRkZWRQYW5lbCA9IGVtYmVkUGFuZWwuZ2V0KCk7
Ci0gICAgY29udHJvbHMtPmFwcGVuZENoaWxkKGVtYmVkUGFuZWwucmVsZWFzZSgpLCBlYywgdHJ1
ZSk7CisgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKGVtYmVkUGFuZWwucmVsZWFzZSgpLCBlYywg
QXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcApp
bmRleCA0NjQxYjlkNWRlYTZjOTVlOTcwMTIzZmY3MTZjZDIyZmVjMTNhZTliLi5iZGE1NTQ5ZDk4
NDg2ZjgyNTc5MzM2NWU4MmFkZGNlODIwZTIyZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKQEAgLTc0LDYzICs3NCw2
MyBAQCBib29sIE1lZGlhQ29udHJvbHNDaHJvbWl1bTo6aW5pdGlhbGl6ZUNvbnRyb2xzKERvY3Vt
ZW50KiBkb2N1bWVudCkKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVu
dD4gcGxheUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogICAgIG1fcGxheUJ1dHRvbiA9IHBsYXlCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwt
PmFwcGVuZENoaWxkKHBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwt
PmFwcGVuZENoaWxkKHBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAg
ICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOwogICAgIG1fdGltZWxpbmUgPSB0aW1lbGluZS5nZXQo
KTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7
CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExh
emlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8
TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5
ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheSA9IGN1cnJlbnRUaW1lRGlzcGxheS5nZXQoKTsK
ICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+aGlkZSgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGls
ZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFw
cGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkp
OwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPE1lZGlh
Q29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudD4gZHVyYXRpb25EaXNwbGF5ID0gTWVk
aWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgIG1fZHVyYXRpb25EaXNwbGF5ID0gZHVyYXRpb25EaXNwbGF5LmdldCgpOwotICAgIHBhbmVs
LT5hcHBlbmRDaGlsZChkdXJhdGlvbkRpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAg
cGFuZWwtPmFwcGVuZENoaWxkKGR1cmF0aW9uRGlzcGxheS5yZWxlYXNlKCksIGVjLCBBdHRhY2hM
YXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRy
PE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1l
ZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgdGhpcyk7
CiAgICAgbV9wYW5lbE11dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0b24uZ2V0KCk7Ci0gICAgcGFu
ZWwtPmFwcGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFj
aExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBNZWRpYUNv
bnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV92
b2x1bWVTbGlkZXIgPSBzbGlkZXIuZ2V0KCk7CiAgICAgbV92b2x1bWVTbGlkZXItPnNldENsZWFy
TXV0ZWRPblVzZXJJbnRlcmFjdGlvbih0cnVlKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2xp
ZGVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzbGlkZXIu
cmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGlmIChkb2N1bWVudC0+cGFnZSgpLT50aGVtZSgpLT5zdXBwb3J0c0Ns
b3NlZENhcHRpb25pbmcoKSkgewogICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xv
c2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IE1l
ZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50LCB0aGlzKTsKICAgICAgICAgbV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IHRvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uLmdldCgpOwotICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQo
dG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAg
IHBhbmVsLT5hcHBlbmRDaGlsZCh0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5yZWxlYXNlKCks
IGVjLCBBdHRhY2hMYXppbHkpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25F
bGVtZW50PiBmdWxsc2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV9mdWxsU2NyZWVuQnV0dG9uID0gZnVsbHNj
cmVlbkJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlbkJ1dHRv
bi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVl
bkJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbV9wYW5lbCA9IHBhbmVsLmdldCgpOwotICAgIGVuY2xv
c3VyZS0+YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgZW5jbG9z
dXJlLT5hcHBlbmRDaGlsZChwYW5lbC5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAg
IGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbV9lbmNsb3N1cmUgPSBlbmNs
b3N1cmUuZ2V0KCk7Ci0gICAgYXBwZW5kQ2hpbGQoZW5jbG9zdXJlLnJlbGVhc2UoKSwgZWMsIHRy
dWUpOworICAgIGFwcGVuZENoaWxkKGVuY2xvc3VyZS5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXpp
bHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0yMTUsNyArMjE1
LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXko
KQogCiAgICAgLy8gSW5zZXJ0IGl0IGJlZm9yZSB0aGUgZmlyc3QgY29udHJvbGxlciBlbGVtZW50
IHNvIGl0IGFsd2F5cyBkaXNwbGF5cyBiZWhpbmQgdGhlIGNvbnRyb2xzLgogICAgIC8vIEluIHRo
ZSBDaHJvbWl1bSBjYXNlLCB0aGF0J3MgdGhlIGVuY2xvc3VyZSBlbGVtZW50LgotICAgIGluc2Vy
dEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lciwgbV9lbmNsb3N1cmUsIEFTU0VSVF9OT19FWENF
UFRJT04sIHRydWUpOworICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lciwgbV9l
bmNsb3N1cmUsIEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFjaExhemlseSk7CiAgICAgdGV4dERp
c3BsYXlDb250YWluZXItPmNyZWF0ZVN1YnRyZWVzKGRvY3VtZW50KCkpOwogICAgIHRleHREaXNw
bGF5Q29udGFpbmVyLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVtQW5kcm9pZC5jcHAKaW5kZXggZWEx
MWJiMzk5Y2M4NzFmMWMzZDQ0M2Y3YjMyNDQwOTEyNWQyYWFkMy4uZjg2MDlkODFjOTNkMzI0MTYy
NTkyZWIxMjQzNTNjYTMwOWEyYTAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVtQW5kcm9pZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVtQW5kcm9pZC5jcHAKQEAgLTU0LDEy
ICs1NCwxMiBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQ+IE1lZGlh
Q29udHJvbHNDaHJvbWl1bUFuZHJvaWQ6OmNyZWF0ZUNvbgogICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudD4gb3ZlcmxheUVuY2xvc3VyZSA9IE1lZGlhQ29udHJv
bE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IG92ZXJsYXlQbGF5QnV0dG9uID0g
TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgIGNvbnRyb2xzLT5tX292ZXJsYXlQbGF5QnV0dG9uID0gb3ZlcmxheVBsYXlCdXR0b24uZ2V0
KCk7Ci0gICAgb3ZlcmxheUVuY2xvc3VyZS0+YXBwZW5kQ2hpbGQob3ZlcmxheVBsYXlCdXR0b24u
cmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgb3ZlcmxheUVuY2xvc3VyZS0+YXBwZW5kQ2hpbGQo
b3ZlcmxheVBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAo
ZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY29udHJvbHMtPm1fb3ZlcmxheUVuY2xvc3Vy
ZSA9IG92ZXJsYXlFbmNsb3N1cmUuZ2V0KCk7Ci0gICAgY29udHJvbHMtPmFwcGVuZENoaWxkKG92
ZXJsYXlFbmNsb3N1cmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgY29udHJvbHMtPmFwcGVu
ZENoaWxkKG92ZXJsYXlFbmNsb3N1cmUucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAg
ICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5jcHAKaW5kZXggMjJiMGI3YWYwZWNiZDhlNjU3ZGZlYzRlMTk1M2MwOTMw
MjYwZDZiNy4uM2IyYzY5OTBhOGIyYWNiMTRhZmU4YzZkZmJhMzhjMjg5NjdlZTUwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApAQCAtNzQ5LDcgKzc0OSw3
IEBAIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlQm94PiBUZXh0VHJhY2tDdWU6OmdldERpc3BsYXlU
cmVlKGNvbnN0IEludFNpemUmIHZpZGVvU2l6CiAKICAgICAvLyBOb3RlOiBUaGlzIGlzIGNvbnRh
aW5lZCBieSBkZWZhdWx0IGluIG1fYWxsRG9jdW1lbnROb2Rlcy4KICAgICBtX2FsbERvY3VtZW50
Tm9kZXMtPnNldFBzZXVkbyhhbGxOb2Rlc1NoYWRvd1BzZXVkb0lkKCkpOwotICAgIGRpc3BsYXlU
cmVlLT5hcHBlbmRDaGlsZChtX2FsbERvY3VtZW50Tm9kZXMsIEFTU0VSVF9OT19FWENFUFRJT04s
IHRydWUpOworICAgIGRpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZChtX2FsbERvY3VtZW50Tm9kZXMs
IEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFjaExhemlseSk7CiAKICAgICAvLyBGSVhNRShCVUcg
Nzk5MTYpOiBSdW5zIG9mIGNoaWxkcmVuIG9mIFdlYlZUVCBSdWJ5IE9iamVjdHMgdGhhdCBhcmUg
bm90CiAgICAgLy8gV2ViVlRUIFJ1YnkgVGV4dCBPYmplY3RzIG11c3QgYmUgd3JhcHBlZCBpbiBh
bm9ueW1vdXMgYm94ZXMgd2hvc2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191636</attachid>
            <date>2013-03-05 19:06:48 -0800</date>
            <delta_ts>2013-03-05 20:02:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111503-20130305190255.patch</filename>
            <type>text/plain</type>
            <size>54154</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI3ODYyNDhkNDk3ZDdi
Njg1OWYyYWFiOGYxZDcyOGM3ZmFhYmVhMC4uY2NlMGExMGUyYWRhM2M1NDBkZDY0ZjVlOTcyZGRi
YWQ5YWQ4MTMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTA1ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIHNob3VsZExhenlB
dHRhY2ggYm9vbCB3aXRoIGFuIGVudW0gZm9yIHJlYWRhYmlsaXR5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1MDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhhdmlvcmFsIGNoYW5nZS4KKwor
ICAgICAgICAqIGJpbmRpbmdzL2NwcC9XZWJET01Ob2RlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkRPTU5vZGU6Omluc2VydEJlZm9yZSk6CisgICAgICAgIChXZWJET01Ob2RlOjpyZXBsYWNlQ2hp
bGQpOgorICAgICAgICAoV2ViRE9NTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6Omluc2Vy
dEJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6OnJlcGxhY2VDaGlsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU05vZGU6OmFwcGVuZENoaWxkKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhOb2RlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6VjhOb2RlOjppbnNlcnRCZWZvcmVNZXRob2RDdXN0b20pOgorICAgICAgICAoV2Vi
Q29yZTo6VjhOb2RlOjpyZXBsYWNlQ2hpbGRNZXRob2RDdXN0b20pOgorICAgICAgICAoV2ViQ29y
ZTo6VjhOb2RlOjphcHBlbmRDaGlsZE1ldGhvZEN1c3RvbSk6CisgICAgICAgICogZG9tL0NvbnRh
aW5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250
YWluZXJOb2RlOjppbnNlcnRCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9k
ZTo6cmVwbGFjZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmFwcGVu
ZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVRyZWVBZnRlckluc2VydGlvbik6Cisg
ICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAgICAgKENvbnRhaW5lck5vZGUpOgor
ICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Omluc2VydEJl
Zm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAg
ICAgIChOb2RlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBl
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xzQXBwbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Fw
cGxlOjpjcmVhdGVDb250cm9scyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
c0JsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0JsYWNrQmVy
cnk6OmNyZWF0ZUNvbnRyb2xzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xz
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Nocm9taXVtOjpp
bml0aWFsaXplQ29udHJvbHMpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHND
aHJvbWl1bUFuZHJvaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Nocm9t
aXVtQW5kcm9pZDo6Y3JlYXRlQ29udHJvbHMpOgorCiAyMDEzLTAzLTA1ICBUb255IEdlbnRpbGNv
cmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ29tcGFjdEhUTUxUb2tlbiBkb2Vz
IG5vdCBuZWVkIGFuIFhTU0luZm8gcG9pbnRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvY3BwL1dlYkRPTU5vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvY3BwL1dlYkRPTU5vZGVDdXN0b20uY3BwCmluZGV4IDQxYWJiMGMyMWRmNmFiMGQ2MGUxYmRh
Y2RlZGIyMGVmM2JhODM2YjEuLjNjMmRkNTdmNDVhMGZjYWExNTkzMjdlMGVkZjJkODQ2YWFhZDdm
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2NwcC9XZWJET01Ob2RlQ3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9jcHAvV2ViRE9NTm9kZUN1c3Rv
bS5jcHAKQEAgLTMxLDcgKzMxLDcgQEAgV2ViRE9NTm9kZSBXZWJET01Ob2RlOjppbnNlcnRCZWZv
cmUoY29uc3QgV2ViRE9NTm9kZSYgbmV3Q2hpbGQsIGNvbnN0IFdlYkRPTU5vZGUKICAgICAgICAg
cmV0dXJuIFdlYkRPTU5vZGUoKTsKIAogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotICAgIGlmIChpbXBsKCktPmluc2VydEJlZm9yZSh0b1dlYkNvcmUobmV3Q2hpbGQpLCB0b1dl
YkNvcmUocmVmQ2hpbGQpLCBlYywgdHJ1ZSkpCisgICAgaWYgKGltcGwoKS0+aW5zZXJ0QmVmb3Jl
KHRvV2ViQ29yZShuZXdDaGlsZCksIHRvV2ViQ29yZShyZWZDaGlsZCksIGVjLCBBdHRhY2hMYXpp
bHkpKQogICAgICAgICByZXR1cm4gbmV3Q2hpbGQ7CiAKICAgICB3ZWJET01SYWlzZUVycm9yKHN0
YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVjKSk7CkBAIC00NCw3ICs0NCw3IEBAIFdl
YkRPTU5vZGUgV2ViRE9NTm9kZTo6cmVwbGFjZUNoaWxkKGNvbnN0IFdlYkRPTU5vZGUmIG5ld0No
aWxkLCBjb25zdCBXZWJET01Ob2RlCiAgICAgICAgIHJldHVybiBXZWJET01Ob2RlKCk7CiAKICAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpZiAoaW1wbCgpLT5yZXBsYWNl
Q2hpbGQodG9XZWJDb3JlKG5ld0NoaWxkKSwgdG9XZWJDb3JlKG9sZENoaWxkKSwgZWMsIHRydWUp
KQorICAgIGlmIChpbXBsKCktPnJlcGxhY2VDaGlsZCh0b1dlYkNvcmUobmV3Q2hpbGQpLCB0b1dl
YkNvcmUob2xkQ2hpbGQpLCBlYywgQXR0YWNoTGF6aWx5KSkKICAgICAgICAgcmV0dXJuIG9sZENo
aWxkOwogCiAgICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNlcHRpb25D
b2RlPihlYykpOwpAQCAtNzAsNyArNzAsNyBAQCBXZWJET01Ob2RlIFdlYkRPTU5vZGU6OmFwcGVu
ZENoaWxkKGNvbnN0IFdlYkRPTU5vZGUmIG5ld0NoaWxkKQogICAgICAgICByZXR1cm4gV2ViRE9N
Tm9kZSgpOwogCiAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaWYgKGlt
cGwoKS0+YXBwZW5kQ2hpbGQodG9XZWJDb3JlKG5ld0NoaWxkKSwgZWMsIHRydWUpKQorICAgIGlm
IChpbXBsKCktPmFwcGVuZENoaWxkKHRvV2ViQ29yZShuZXdDaGlsZCksIGVjLCBBdHRhY2hMYXpp
bHkpKQogICAgICAgICByZXR1cm4gbmV3Q2hpbGQ7CiAKICAgICB3ZWJET01SYWlzZUVycm9yKHN0
YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVjKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAppbmRleCAyYTkxN2Y1NTJiNjEwNTg5NTgwN2E2Y2Rh
MWIxNjliYzU5OGJhMmE2Li45OWYyZDU1MjJiY2Y5MGEwNDlkMDI0YjQ1MmI2ZjNlMGM5MDA1YjQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKQEAgLTE0
NSw3ICsxNDUsNyBAQCBKU1ZhbHVlIEpTTm9kZTo6aW5zZXJ0QmVmb3JlKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBOb2RlKiBpbXAgPSBzdGF0aWNfY2FzdDxOb2RlKj4oaW1wbCgpKTsKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wLT5pbnNlcnRCZWZvcmUodG9O
b2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgdG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMsIHRy
dWUpOworICAgIGJvb2wgb2sgPSBpbXAtPmluc2VydEJlZm9yZSh0b05vZGUoZXhlYy0+YXJndW1l
bnQoMCkpLCB0b05vZGUoZXhlYy0+YXJndW1lbnQoMSkpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJu
IGV4ZWMtPmFyZ3VtZW50KDApOwpAQCAtMTU2LDcgKzE1Niw3IEBAIEpTVmFsdWUgSlNOb2RlOjpy
ZXBsYWNlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIE5vZGUqIGltcCA9IHN0YXRpY19j
YXN0PE5vZGUqPihpbXBsKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wg
b2sgPSBpbXAtPnJlcGxhY2VDaGlsZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpLCB0b05vZGUo
ZXhlYy0+YXJndW1lbnQoMSkpLCBlYywgdHJ1ZSk7CisgICAgYm9vbCBvayA9IGltcC0+cmVwbGFj
ZUNoaWxkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSksIHRvTm9kZShleGVjLT5hcmd1bWVudCgx
KSksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAg
ICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMSk7CkBAIC0xNzgsNyAr
MTc4LDcgQEAgSlNWYWx1ZSBKU05vZGU6OmFwcGVuZENoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBOb2RlKiBpbXAgPSBzdGF0aWNfY2FzdDxOb2RlKj4oaW1wbCgpKTsKICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wLT5hcHBlbmRDaGlsZCh0b05vZGUoZXhl
Yy0+YXJndW1lbnQoMCkpLCBlYywgdHJ1ZSk7CisgICAgYm9vbCBvayA9IGltcC0+YXBwZW5kQ2hp
bGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICBpZiAob2spCiAgICAgICAgIHJldHVybiBleGVj
LT5hcmd1bWVudCgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOE5vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4Tm9kZUN1c3RvbS5jcHAKaW5kZXggZjNhOWNjNDkwMzlmMTQ5MmJjMDU1ZGQ3OGZkYzZkNzYy
MTc4MWRhMS4uMWM1MDA4MGNlNzI4ODNjNzFmM2NiMWQwMWFjMTgzNzYwM2Q2YjA1OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUN1c3RvbS5jcHAK
QEAgLTYwLDcgKzYwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBUaGlzIGZ1bmN0
aW9uIGlzIGN1c3RvbWl6ZWQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIG9wdGlvbmFsIDR0aCBh
cmd1bWVudDogc2hvdWxkTGF6eUF0dGFjaAorLy8gVGhpcyBmdW5jdGlvbiBpcyBjdXN0b21pemVk
IHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBvcHRpb25hbCA0dGggYXJndW1lbnQ6IEF0dGFjaEJl
aGF2aW9yCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhOb2RlOjppbnNlcnRCZWZvcmVNZXRob2RD
dXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IGhvbGRlciA9IGFyZ3MuSG9sZGVyKCk7CkBAIC02OCw3ICs2OCw3IEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOE5vZGU6Omluc2VydEJlZm9yZU1ldGhvZEN1c3RvbShjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgTm9kZSogbmV3
Q2hpbGQgPSBWOE5vZGU6Okhhc0luc3RhbmNlKGFyZ3NbMF0sIGFyZ3MuR2V0SXNvbGF0ZSgpKSA/
IFY4Tm9kZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKSkg
OiAwOwogICAgIE5vZGUqIHJlZkNoaWxkID0gVjhOb2RlOjpIYXNJbnN0YW5jZShhcmdzWzFdLCBh
cmdzLkdldElzb2xhdGUoKSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVj
dD46OkNhc3QoYXJnc1sxXSkpIDogMDsKLSAgICBib29sIHN1Y2Nlc3MgPSBpbXAtPmluc2VydEJl
Zm9yZShuZXdDaGlsZCwgcmVmQ2hpbGQsIGVjLCB0cnVlKTsKKyAgICBib29sIHN1Y2Nlc3MgPSBp
bXAtPmluc2VydEJlZm9yZShuZXdDaGlsZCwgcmVmQ2hpbGQsIGVjLCBBdHRhY2hMYXppbHkpOwog
ICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJ
c29sYXRlKCkpOwogICAgIGlmIChzdWNjZXNzKQpAQCAtNzYsNyArNzYsNyBAQCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhOb2RlOjppbnNlcnRCZWZvcmVNZXRob2RDdXN0b20oY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncwogICAgIHJldHVybiB2OE51bGwoYXJncy5HZXRJc29sYXRlKCkpOwogfQog
Ci0vLyBUaGlzIGZ1bmN0aW9uIGlzIGN1c3RvbWl6ZWQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhl
IG9wdGlvbmFsIDR0aCBhcmd1bWVudDogc2hvdWxkTGF6eUF0dGFjaAorLy8gVGhpcyBmdW5jdGlv
biBpcyBjdXN0b21pemVkIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBvcHRpb25hbCA0dGggYXJn
dW1lbnQ6IEF0dGFjaEJlaGF2aW9yCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhOb2RlOjpyZXBs
YWNlQ2hpbGRNZXRob2RDdXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGFyZ3MuSG9sZGVyKCk7CkBAIC04NCw3ICs4
NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE5vZGU6OnJlcGxhY2VDaGlsZE1ldGhvZEN1
c3RvbShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CiAgICAgTm9kZSogbmV3Q2hpbGQgPSBWOE5vZGU6Okhhc0luc3RhbmNlKGFyZ3NbMF0sIGFyZ3Mu
R2V0SXNvbGF0ZSgpKSA/IFY4Tm9kZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6
Q2FzdChhcmdzWzBdKSkgOiAwOwogICAgIE5vZGUqIG9sZENoaWxkID0gVjhOb2RlOjpIYXNJbnN0
YW5jZShhcmdzWzFdLCBhcmdzLkdldElzb2xhdGUoKSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1sxXSkpIDogMDsKLSAgICBib29sIHN1Y2Nlc3Mg
PSBpbXAtPnJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjLCB0cnVlKTsKKyAgICBi
b29sIHN1Y2Nlc3MgPSBpbXAtPnJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjLCBB
dHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlv
bihlYywgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIGlmIChzdWNjZXNzKQpAQCAtMTA2LDE0ICsx
MDYsMTQgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Tm9kZTo6cmVtb3ZlQ2hpbGRNZXRob2RD
dXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICByZXR1cm4gdjhOdWxsKGFyZ3Mu
R2V0SXNvbGF0ZSgpKTsKIH0KIAotLy8gVGhpcyBmdW5jdGlvbiBpcyBjdXN0b21pemVkIHRvIHRh
a2UgYWR2YW50YWdlIG9mIHRoZSBvcHRpb25hbCA0dGggYXJndW1lbnQ6IHNob3VsZExhenlBdHRh
Y2gKKy8vIFRoaXMgZnVuY3Rpb24gaXMgY3VzdG9taXplZCB0byB0YWtlIGFkdmFudGFnZSBvZiB0
aGUgb3B0aW9uYWwgNHRoIGFyZ3VtZW50OiBBdHRhY2hCZWhhdmlvcgogdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4Tm9kZTo6YXBwZW5kQ2hpbGRNZXRob2RDdXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKIHsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGFyZ3MuSG9s
ZGVyKCk7CiAgICAgTm9kZSogaW1wID0gVjhOb2RlOjp0b05hdGl2ZShob2xkZXIpOwogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIE5vZGUqIG5ld0NoaWxkID0gVjhOb2RlOjpIYXNJbnN0
YW5jZShhcmdzWzBdLCBhcmdzLkdldElzb2xhdGUoKSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkpIDogMDsKLSAgICBib29sIHN1Y2Nlc3Mg
PSBpbXAtPmFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYywgdHJ1ZSApOworICAgIGJvb2wgc3VjY2Vz
cyA9IGltcC0+YXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlm
IChlYykKICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJc29sYXRl
KCkpOwogICAgIGlmIChzdWNjZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmlu
ZGV4IGIyMjk4ODFmNmU3OWVmODA5YTVmZWJiMDI1Yjk4Y2FlMWZhMDVkMjYuLjdiMzgzMWI3ZTI2
ZTA4MTk3YmUzNWVmOGI0M2ExZDVmMTllZjdmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
dm9pZCBkaXNwYXRjaENoaWxkSW5zZXJ0aW9uRXZlbnRzKE5vZGUqKTsKIHN0YXRpYyB2b2lkIGRp
c3BhdGNoQ2hpbGRSZW1vdmFsRXZlbnRzKE5vZGUqKTsKLXN0YXRpYyB2b2lkIHVwZGF0ZVRyZWVB
ZnRlckluc2VydGlvbihDb250YWluZXJOb2RlKiwgTm9kZSosIGJvb2wgc2hvdWxkTGF6eUF0dGFj
aCk7CitzdGF0aWMgdm9pZCB1cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24oQ29udGFpbmVyTm9kZSos
IE5vZGUqLCBBdHRhY2hCZWhhdmlvcik7CiAKIHR5cGVkZWYgcGFpcjxSZWZQdHI8Tm9kZT4sIHVu
c2lnbmVkPiBDYWxsYmFja1BhcmFtZXRlcnM7CiB0eXBlZGVmIHBhaXI8Tm9kZUNhbGxiYWNrLCBD
YWxsYmFja1BhcmFtZXRlcnM+IENhbGxiYWNrSW5mbzsKQEAgLTI0Miw3ICsyNDIsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgY2hlY2tSZXBsYWNlQ2hpbGQoQ29udGFpbmVyTm9kZSogbmV3UGFyZW50
LCBOb2RlKiBuZXdDaGlsZCwgTgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIENvbnRhaW5l
ck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZD
aGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCkKK2Jvb2wgQ29u
dGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUq
IHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgQXR0YWNoQmVoYXZpb3IgYXR0YWNoQmVoYXZp
b3IpCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlzIG5vZGUgaXMgbm90ICJmbG9hdGluZyIuCiAg
ICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBkZWxldGVkIGFzIGEgc2lkZSBlZmZlY3Qgb2Ygc2Vu
ZGluZyBtdXRhdGlvbiBldmVudHMuCkBAIC0yNTQsNyArMjU0LDcgQEAgYm9vbCBDb250YWluZXJO
b2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hp
bGQsIEV4Y2UKIAogICAgIC8vIGluc2VydEJlZm9yZShub2RlLCAwKSBpcyBlcXVpdmFsZW50IHRv
IGFwcGVuZENoaWxkKG5vZGUpCiAgICAgaWYgKCFyZWZDaGlsZCkKLSAgICAgICAgcmV0dXJuIGFw
cGVuZENoaWxkKG5ld0NoaWxkLCBlYywgc2hvdWxkTGF6eUF0dGFjaCk7CisgICAgICAgIHJldHVy
biBhcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMsIGF0dGFjaEJlaGF2aW9yKTsKIAogICAgIC8vIE1h
a2Ugc3VyZSBhZGRpbmcgdGhlIG5ldyBjaGlsZCBpcyBPSy4KICAgICBpZiAoIWNoZWNrQWRkQ2hp
bGQodGhpcywgbmV3Q2hpbGQuZ2V0KCksIGVjKSkKQEAgLTMwMSw3ICszMDEsNyBAQCBib29sIENv
bnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2Rl
KiByZWZDaGlsZCwgRXhjZQogCiAgICAgICAgIGluc2VydEJlZm9yZUNvbW1vbihuZXh0LmdldCgp
LCBjaGlsZCk7CiAKLSAgICAgICAgdXBkYXRlVHJlZUFmdGVySW5zZXJ0aW9uKHRoaXMsIGNoaWxk
LCBzaG91bGRMYXp5QXR0YWNoKTsKKyAgICAgICAgdXBkYXRlVHJlZUFmdGVySW5zZXJ0aW9uKHRo
aXMsIGNoaWxkLCBhdHRhY2hCZWhhdmlvcik7CiAgICAgfQogCiAgICAgZGlzcGF0Y2hTdWJ0cmVl
TW9kaWZpZWRFdmVudCgpOwpAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6
cGFyc2VySW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG5leHRD
aGlsCiAgICAgQ2hpbGROb2RlSW5zZXJ0aW9uTm90aWZpZXIodGhpcykubm90aWZ5KG5ld0NoaWxk
LmdldCgpKTsKIH0KIAotYm9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0
cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBib29s
IHNob3VsZExhenlBdHRhY2gpCitib29sIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNz
UmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMs
IEF0dGFjaEJlaGF2aW9yIGF0dGFjaEJlaGF2aW9yKQogewogICAgIC8vIENoZWNrIHRoYXQgdGhp
cyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVs
ZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRzLgpAQCAtNDQw
LDcgKzQ0MCw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8
Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlCiAgICAgICAgICAgICAgICAgYXBw
ZW5kQ2hpbGRUb0NvbnRhaW5lcihjaGlsZCwgdGhpcyk7CiAgICAgICAgIH0KIAotICAgICAgICB1
cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24odGhpcywgY2hpbGQsIHNob3VsZExhenlBdHRhY2gpOwor
ICAgICAgICB1cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24odGhpcywgY2hpbGQsIGF0dGFjaEJlaGF2
aW9yKTsKICAgICB9CiAKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7CkBAIC02
NTQsNyArNjU0LDcgQEAgdm9pZCBDb250YWluZXJOb2RlOjpyZW1vdmVDaGlsZHJlbigpCiAgICAg
ZGlzcGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOwogfQogCi1ib29sIENvbnRhaW5lck5vZGU6
OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVj
LCBib29sIHNob3VsZExhenlBdHRhY2gpCitib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxk
KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBBdHRhY2hCZWhh
dmlvciBhdHRhY2hCZWhhdmlvcikKIHsKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gcHJvdGVj
dCh0aGlzKTsKIApAQCAtNzA0LDcgKzcwNCw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5k
Q2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvCiAg
ICAgICAgICAgICBhcHBlbmRDaGlsZFRvQ29udGFpbmVyKGNoaWxkLCB0aGlzKTsKICAgICAgICAg
fQogCi0gICAgICAgIHVwZGF0ZVRyZWVBZnRlckluc2VydGlvbih0aGlzLCBjaGlsZCwgc2hvdWxk
TGF6eUF0dGFjaCk7CisgICAgICAgIHVwZGF0ZVRyZWVBZnRlckluc2VydGlvbih0aGlzLCBjaGls
ZCwgYXR0YWNoQmVoYXZpb3IpOwogICAgIH0KIAogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVk
RXZlbnQoKTsKQEAgLTExNDQsNyArMTE0NCw3IEBAIHN0YXRpYyB2b2lkIGRpc3BhdGNoQ2hpbGRS
ZW1vdmFsRXZlbnRzKE5vZGUqIGNoaWxkKQogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgdXBkYXRl
VHJlZUFmdGVySW5zZXJ0aW9uKENvbnRhaW5lck5vZGUqIHBhcmVudCwgTm9kZSogY2hpbGQsIGJv
b2wgc2hvdWxkTGF6eUF0dGFjaCkKK3N0YXRpYyB2b2lkIHVwZGF0ZVRyZWVBZnRlckluc2VydGlv
bihDb250YWluZXJOb2RlKiBwYXJlbnQsIE5vZGUqIGNoaWxkLCBBdHRhY2hCZWhhdmlvciBhdHRh
Y2hCZWhhdmlvcikKIHsKICAgICBBU1NFUlQocGFyZW50LT5yZWZDb3VudCgpKTsKICAgICBBU1NF
UlQoY2hpbGQtPnJlZkNvdW50KCkpOwpAQCAtMTE1OCw3ICsxMTU4LDcgQEAgc3RhdGljIHZvaWQg
dXBkYXRlVHJlZUFmdGVySW5zZXJ0aW9uKENvbnRhaW5lck5vZGUqIHBhcmVudCwgTm9kZSogY2hp
bGQsIGJvb2wgc2gKICAgICAvLyBGSVhNRTogQXR0YWNobWVudCBzaG91bGQgYmUgdGhlIGZpcnN0
IG9wZXJhdGlvbiBpbiB0aGlzIGZ1bmN0aW9uLCBidXQgc29tZSBjb2RlCiAgICAgLy8gKGZvciBl
eGFtcGxlLCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50J3MgYXV0b2ZvY3VzIHN1cHBvcnQpIHJlcXVp
cmVzIHRoaXMgb3JkZXJpbmcuCiAgICAgaWYgKHBhcmVudC0+YXR0YWNoZWQoKSAmJiAhY2hpbGQt
PmF0dGFjaGVkKCkgJiYgY2hpbGQtPnBhcmVudE5vZGUoKSA9PSBwYXJlbnQpIHsKLSAgICAgICAg
aWYgKHNob3VsZExhenlBdHRhY2gpCisgICAgICAgIGlmIChhdHRhY2hCZWhhdmlvciA9PSBBdHRh
Y2hMYXppbHkpCiAgICAgICAgICAgICBjaGlsZC0+bGF6eUF0dGFjaCgpOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBjaGlsZC0+YXR0YWNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
aAppbmRleCBmZTJlYzg1Zjg0YjdjOTI0NmE4YTkyZjllNjM5M2I2ODE1NGUyNWU4Li42ZDc3ZDA0
ZTVjYjkwMWJjYjA2N2UwOGQ2MjFmMjdjOGI5MWM0NTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ29udGFpbmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmgKQEAgLTg5LDEwICs4OSwxMCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgY2hpbGRO
b2RlQ291bnQoKSBjb25zdDsKICAgICBOb2RlKiBjaGlsZE5vZGUodW5zaWduZWQgaW5kZXgpIGNv
bnN0OwogCi0gICAgYm9vbCBpbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwg
Tm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTiwgYm9v
bCBzaG91bGRMYXp5QXR0YWNoID0gZmFsc2UpOwotICAgIGJvb2wgcmVwbGFjZUNoaWxkKFBhc3NS
ZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFT
U0VSVF9OT19FWENFUFRJT04sIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZhbHNlKTsKKyAgICBi
b29sIGluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGls
ZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hCZWhhdmlvciA9
IEF0dGFjaE5vdyk7CisgICAgYm9vbCByZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdD
aGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElP
TiwgQXR0YWNoQmVoYXZpb3IgPSBBdHRhY2hOb3cpOwogICAgIGJvb2wgcmVtb3ZlQ2hpbGQoTm9k
ZSogY2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgYm9v
bCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiA9
IEFTU0VSVF9OT19FWENFUFRJT04sIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZhbHNlKTsKKyAg
ICBib29sIGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTiwgQXR0YWNoQmVoYXZpb3IgPSBBdHRhY2hOb3cpOwog
CiAgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgb25seSB1c2VkIGR1cmluZyBwYXJzaW5nLgogICAg
IC8vIFRoZXkgZG9uJ3Qgc2VuZCBET00gbXV0YXRpb24gZXZlbnRzIG9yIGhhbmRsZSByZXBhcmVu
dGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBkYzExYzk3NmJjNzEzYTNjOGMzYmUzNDAxZWNmM2E4
MjlkMzI0YWRiLi4xNDZmMGFlMjYwMjA1M2JiZDYzMGY1ODZhZjJhMjQ3YzIwZTZjNDY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCkBAIC01NDAsMjIgKzU0MCwyMiBAQCBOb2RlKiBOb2RlOjpmaXJzdERlc2Nl
bmRhbnQoKSBjb25zdAogICAgIHJldHVybiBuOwogfQogCi1ib29sIE5vZGU6Omluc2VydEJlZm9y
ZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29k
ZSYgZWMsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCkKK2Jvb2wgTm9kZTo6aW5zZXJ0QmVmb3JlKFBh
c3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiBl
YywgQXR0YWNoQmVoYXZpb3IgYXR0YWNoQmVoYXZpb3IpCiB7CiAgICAgaWYgKCFpc0NvbnRhaW5l
ck5vZGUoKSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gdG9Db250YWluZXJOb2RlKHRoaXMpLT5p
bnNlcnRCZWZvcmUobmV3Q2hpbGQsIHJlZkNoaWxkLCBlYywgc2hvdWxkTGF6eUF0dGFjaCk7Cisg
ICAgcmV0dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlzKS0+aW5zZXJ0QmVmb3JlKG5ld0NoaWxkLCBy
ZWZDaGlsZCwgZWMsIGF0dGFjaEJlaGF2aW9yKTsKIH0KIAotYm9vbCBOb2RlOjpyZXBsYWNlQ2hp
bGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmIGVjLCBib29sIHNob3VsZExhenlBdHRhY2gpCitib29sIE5vZGU6OnJlcGxhY2VDaGlsZChQ
YXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYg
ZWMsIEF0dGFjaEJlaGF2aW9yIGF0dGFjaEJlaGF2aW9yKQogewogICAgIGlmICghaXNDb250YWlu
ZXJOb2RlKCkpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlzKS0+
cmVwbGFjZUNoaWxkKG5ld0NoaWxkLCBvbGRDaGlsZCwgZWMsIHNob3VsZExhenlBdHRhY2gpOwor
ICAgIHJldHVybiB0b0NvbnRhaW5lck5vZGUodGhpcyktPnJlcGxhY2VDaGlsZChuZXdDaGlsZCwg
b2xkQ2hpbGQsIGVjLCBhdHRhY2hCZWhhdmlvcik7CiB9CiAKIGJvb2wgTm9kZTo6cmVtb3ZlQ2hp
bGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNTY3LDEzICs1NjcsMTMg
QEAgYm9vbCBOb2RlOjpyZW1vdmVDaGlsZChOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgcmV0dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlzKS0+cmVtb3ZlQ2hpbGQob2xkQ2hp
bGQsIGVjKTsKIH0KIAotYm9vbCBOb2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5l
d0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgYm9vbCBzaG91bGRMYXp5QXR0YWNoKQorYm9vbCBO
b2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2Rl
JiBlYywgQXR0YWNoQmVoYXZpb3IgYXR0YWNoQmVoYXZpb3IpCiB7CiAgICAgaWYgKCFpc0NvbnRh
aW5lck5vZGUoKSkgewogICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gdG9Db250YWluZXJOb2RlKHRoaXMp
LT5hcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMsIHNob3VsZExhenlBdHRhY2gpOworICAgIHJldHVy
biB0b0NvbnRhaW5lck5vZGUodGhpcyktPmFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYywgYXR0YWNo
QmVoYXZpb3IpOwogfQogCiB2b2lkIE5vZGU6OnJlbW92ZShFeGNlcHRpb25Db2RlJiBlYykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCmluZGV4IDcxMGMxYzZmMzI3MWNjYjIzMmViMmUzZmQ1MzkxMGQ3YTc0MjlhYjcuLmY1
ZjczOTBkYTQ4ODk4OTdhYmUyYjVhMWM5MjM0ZWFmYjM5OTE0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAt
MTI1LDYgKzEyNSwxMSBAQCBwcml2YXRlOgogICAgIFJlbmRlck9iamVjdCogbV9yZW5kZXJlcjsK
IH07CiAKK2VudW0gQXR0YWNoQmVoYXZpb3IgeworICAgIEF0dGFjaE5vdywKKyAgICBBdHRhY2hM
YXppbHksCit9OworCiBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgU2Ny
aXB0V3JhcHBhYmxlLCBwdWJsaWMgVHJlZVNoYXJlZDxOb2RlPiB7CiAgICAgZnJpZW5kIGNsYXNz
IERvY3VtZW50OwogICAgIGZyaWVuZCBjbGFzcyBUcmVlU2NvcGU7CkBAIC0xOTMsMTAgKzE5OCwx
MCBAQCBwdWJsaWM6CiAgICAgLy8gVGhlc2Ugc2hvdWxkIGFsbCBhY3R1YWxseSByZXR1cm4gYSBu
b2RlLCBidXQgdGhpcyBpcyBvbmx5IGltcG9ydGFudCBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MsCiAg
ICAgLy8gd2hpY2ggd2lsbCBhbHJlYWR5IGtub3cgYW5kIGhvbGQgYSByZWYgb24gdGhlIHJpZ2h0
IG5vZGUgdG8gcmV0dXJuLiBSZXR1cm5pbmcgYm9vbCBhbGxvd3MKICAgICAvLyB0aGVzZSBtZXRo
b2RzIHRvIGJlIG1vcmUgZWZmaWNpZW50IHNpbmNlIHRoZXkgZG9uJ3QgbmVlZCB0byByZXR1cm4g
YSByZWYKLSAgICBib29sIGluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBO
b2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZh
bHNlKTsKLSAgICBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBO
b2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZh
bHNlKTsKKyAgICBib29sIGluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBO
b2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIEF0dGFjaEJlaGF2aW9yID0gQXR0YWNoTm93
KTsKKyAgICBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2Rl
KiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIEF0dGFjaEJlaGF2aW9yID0gQXR0YWNoTm93KTsK
ICAgICBib29sIHJlbW92ZUNoaWxkKE5vZGUqIGNoaWxkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAg
Ym9vbCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2Rl
JiwgYm9vbCBzaG91bGRMYXp5QXR0YWNoID0gZmFsc2UpOworICAgIGJvb2wgYXBwZW5kQ2hpbGQo
UGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIEF0dGFjaEJlaGF2aW9y
ID0gQXR0YWNoTm93KTsKIAogICAgIHZvaWQgcmVtb3ZlKEV4Y2VwdGlvbkNvZGUmKTsKICAgICBi
b29sIGhhc0NoaWxkTm9kZXMoKSBjb25zdCB7IHJldHVybiBmaXJzdENoaWxkKCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5kZXggNWYyMGY0ZTBj
ODRjYTNhMTQzODQ3ZjgwZWU5Y2UxYzZhYjc2OGVhNC4uNmQyY2YyM2Y3NzIxYTUwNjE3ZTNkN2Nk
ZWI3YzRhMzFjNzkxMjdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9B
cHBseSgpCiAgICAgaWYgKCFtX3BhcmVudC0+cmVuZGVyZXJJc0VkaXRhYmxlKCkgJiYgbV9wYXJl
bnQtPmF0dGFjaGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFyZW50LT5hcHBlbmRD
aGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04sIHRydWUgLyogbGF6eUF0dGFjaCAq
Lyk7CisgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQ
VElPTiwgQXR0YWNoTGF6aWx5KTsKIAogICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKQogICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFr
cyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXgg
NzZjZmE1NDdkNzA0MzQyZmY3N2JlOTMzNTc2OTBkNWI5YjY2MDc0Ny4uN2VkZTk5OTExZWZkMzM0
NWU5OTI4MWEyY2QyNDEzNTg3YWNmZDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICBB
U1NFUlQocGFyZW50LT5pc0NvbnRlbnRFZGl0YWJsZShOb2RlOjpVc2VyU2VsZWN0QWxsSXNBbHdh
eXNOb25FZGl0YWJsZSkpOwogCi0gICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGls
ZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTiwgdHJ1ZSAvKiBsYXp5
QXR0YWNoICovKTsKKyAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgp
LCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOwogCiAg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIGRv
Y3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9p
bnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5z
ZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNF
bGVtZW50LmNwcAppbmRleCA1YzY3ZGJjNTgwYjVhNzNhNzA3MjE3YzExYTJkMTQ2ZDQzMjg1NTUx
Li5hMjEyNzg4NWY1YzlkNTc3YmNjMWQ4ZTg5OWVlMWFhNTNlN2VjY2Y3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0xMTIsOCArMTEyLDggQEAgUmVu
ZGVyT2JqZWN0KiBIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiBhcmVuYSwgUmVuZGVyU3R5bGUKIAogdm9pZCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmRpZEFkZFVz
ZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogcm9vdCkKIHsKLSAgICByb290LT5hcHBlbmRD
aGlsZChEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05P
X0VYQ0VQVElPTiwgdHJ1ZSk7Ci0gICAgcm9vdC0+YXBwZW5kQ2hpbGQoRGV0YWlsc0NvbnRlbnRF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOwor
ICAgIHJvb3QtPmFwcGVuZENoaWxkKERldGFpbHNTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOworICAgIHJvb3QtPmFw
cGVuZENoaWxkKERldGFpbHNDb250ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NF
UlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOwogfQogCiBFbGVtZW50KiBIVE1MRGV0YWls
c0VsZW1lbnQ6OmZpbmRNYWluU3VtbWFyeSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTdW1tYXJ5RWxlbWVudC5jcHAKaW5kZXggODAwYWUxYmYzMzM1OTc4ZGUyNjgzYWNiZWM3MTQ2
ZjIwOTIyZDU5My4uYjk3ODI3OWRiN2Q2NzBjYzlhMmYzNjlhZjAxOGVmMTczZDBhNTM2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcApAQCAtNzgsOCArNzgs
OCBAQCBib29sIEhUTUxTdW1tYXJ5RWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihj
b25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgYwogCiB2b2lkIEhUTUxTdW1tYXJ5RWxlbWVudDo6
ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290KiByb290KQogewotICAgIHJvb3Qt
PmFwcGVuZENoaWxkKERldGFpbHNNYXJrZXJDb250cm9sOjpjcmVhdGUoZG9jdW1lbnQoKSksIEFT
U0VSVF9OT19FWENFUFRJT04sIHRydWUpOwotICAgIHJvb3QtPmFwcGVuZENoaWxkKFN1bW1hcnlD
b250ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0
cnVlKTsKKyAgICByb290LT5hcHBlbmRDaGlsZChEZXRhaWxzTWFya2VyQ29udHJvbDo6Y3JlYXRl
KGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOworICAgIHJv
b3QtPmFwcGVuZENoaWxkKFN1bW1hcnlDb250ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOwogfQogCiBIVE1MRGV0YWlsc0Vs
ZW1lbnQqIEhUTUxTdW1tYXJ5RWxlbWVudDo6ZGV0YWlsc0VsZW1lbnQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmlu
ZGV4IDIyNGQ0MzU3YWI2YzQzYjg3YzkxY2ZhNTQ4MGQxNWU3MDNmNjU5MjEuLjc3NWMwNzc2ZGQ3
YTViM2E3NzRjYzIzOWYxNGNmZjA1ZmI1ZWE1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTExODUsNyArMTE4NSw3
IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlU3Vi
dHJlZXMoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIG1fY3VlQ29udGFpbmVyID0gSFRNTEVs
ZW1lbnQ6OmNyZWF0ZShzcGFuVGFnLCBkb2N1bWVudCk7CiAgICAgbV9jdWVDb250YWluZXItPnNl
dFBzZXVkbyhUZXh0VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkpOwotICAgIGFwcGVuZENo
aWxkKG1fY3VlQ29udGFpbmVyLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBmYWxzZSk7CisgICAgYXBw
ZW5kQ2hpbGQobV9jdWVDb250YWluZXIsIEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFjaE5vdyk7
CiB9CiAKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4g
TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBk
b2N1bWVudCkKQEAgLTEyNzMsNyArMTI3Myw3IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNr
Q29udGFpbmVyRWxlbWVudDo6dXBkYXRlRGlzcGxheSgpCiAgICAgICAgIFJlZlB0cjxUZXh0VHJh
Y2tDdWVCb3g+IGRpc3BsYXlCb3ggPSBjdWUtPmdldERpc3BsYXlUcmVlKG1fdmlkZW9EaXNwbGF5
U2l6ZS5zaXplKCkpOwogICAgICAgICBpZiAoZGlzcGxheUJveC0+aGFzQ2hpbGROb2RlcygpICYm
ICFjb250YWlucyhzdGF0aWNfY2FzdDxOb2RlKj4oZGlzcGxheUJveC5nZXQoKSkpKQogICAgICAg
ICAgICAgLy8gTm90ZTogdGhlIGRpc3BsYXkgdHJlZSBvZiBhIGN1ZSBpcyByZW1vdmVkIHdoZW4g
dGhlIGFjdGl2ZSBmbGFnIG9mIHRoZSBjdWUgaXMgdW5zZXQuCi0gICAgICAgICAgICBtX2N1ZUNv
bnRhaW5lci0+YXBwZW5kQ2hpbGQoZGlzcGxheUJveCwgQVNTRVJUX05PX0VYQ0VQVElPTiwgZmFs
c2UpOworICAgICAgICAgICAgbV9jdWVDb250YWluZXItPmFwcGVuZENoaWxkKGRpc3BsYXlCb3gs
IEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFjaE5vdyk7CiAgICAgfQogCiAgICAgLy8gMTEuIFJl
dHVybiBvdXRwdXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMu
Y3BwCmluZGV4IDM4MTRkZWQxNmIwZjAxNDdkMmMzZGNjM2M2YTdkNjg4ODg4ZjdiZWMuLmNlYzli
YzUzMTU3ZTI4NGQ1Y2I3M2MwMWRiZTE1YzM5YzA3N2E2NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCkBAIC0zODEsNyArMzgxLDcgQEAgdm9pZCBN
ZWRpYUNvbnRyb2xzOjpjcmVhdGVUZXh0VHJhY2tEaXNwbGF5KCkKICAgICAgICAgbV90ZXh0RGlz
cGxheUNvbnRhaW5lci0+c2V0TWVkaWFDb250cm9sbGVyKG1fbWVkaWFDb250cm9sbGVyKTsKIAog
ICAgIC8vIEluc2VydCBpdCBiZWZvcmUgdGhlIGZpcnN0IGNvbnRyb2xsZXIgZWxlbWVudCBzbyBp
dCBhbHdheXMgZGlzcGxheXMgYmVoaW5kIHRoZSBjb250cm9scy4KLSAgICBpbnNlcnRCZWZvcmUo
dGV4dERpc3BsYXlDb250YWluZXIsIG1fcGFuZWwsIElHTk9SRV9FWENFUFRJT04sIHRydWUpOwor
ICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lciwgbV9wYW5lbCwgSUdOT1JFX0VY
Q0VQVElPTiwgQXR0YWNoTGF6aWx5KTsKICAgICB0ZXh0RGlzcGxheUNvbnRhaW5lci0+Y3JlYXRl
U3VidHJlZXMoZG9jdW1lbnQoKSk7CiAgICAgdGV4dERpc3BsYXlDb250YWluZXIucmVsZWFzZSgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
c0FwcGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBs
ZS5jcHAKaW5kZXggOWNhMmRlNzU5MWU5NDgyYTY5YTVkNWIwYzEwMjNlOWU1NzMyMzFkZC4uMzk2
ZTQ5ZDJkNzllNTk0NmU0Y2M0MTMwNGFjYjU3YTkyMWFlNWYxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCkBAIC04NCwyNiArODQs
MjYgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1lZGlhQ29udHJvbHNBcHBsZTo6
Y3JlYXRlQ29udHJvbHMoRG9jdW1lbnQqIGRvY3UKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xS
ZXdpbmRCdXR0b25FbGVtZW50PiByZXdpbmRCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0
b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3Jld2luZEJ1dHRv
biA9IHJld2luZEJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocmV3aW5kQnV0
dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChyZXdpbmRC
dXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAg
IHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBw
bGF5QnV0dG9uID0gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CiAgICAgY29udHJvbHMtPm1fcGxheUJ1dHRvbiA9IHBsYXlCdXR0b24uZ2V0KCk7Ci0gICAg
cGFuZWwtPmFwcGVuZENoaWxkKHBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAg
cGFuZWwtPmFwcGVuZENoaWxkKHBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiByZXR1cm5Ub1JlYWx0aW1lQnV0dG9u
ID0gTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CiAgICAgY29udHJvbHMtPm1fcmV0dXJuVG9SZWFsVGltZUJ1dHRvbiA9IHJldHVyblRv
UmVhbHRpbWVCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHJldHVyblRvUmVh
bHRpbWVCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxk
KHJldHVyblRvUmVhbHRpbWVCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAg
ICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKGRvY3VtZW50LT5wYWdlKCkt
PnRoZW1lKCktPnVzZXNNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5KCkpIHsKICAgICAgICAgUmVm
UHRyPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBzdGF0dXNEaXNwbGF5ID0gTWVk
aWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgICAg
IGNvbnRyb2xzLT5tX3N0YXR1c0Rpc3BsYXkgPSBzdGF0dXNEaXNwbGF5LmdldCgpOwotICAgICAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQoc3RhdHVzRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsK
KyAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHN0YXR1c0Rpc3BsYXkucmVsZWFzZSgpLCBlYywg
QXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQpAQCAtMTEyLDM4ICsxMTIsMzggQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+
IE1lZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJvbHMoRG9jdW1lbnQqIGRvY3UKIAogICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBjdXJyZW50VGlt
ZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxheSA9IGN1cnJlbnRU
aW1lRGlzcGxheS5nZXQoKTsKLSAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY3Vy
cmVudFRpbWVEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHRpbWVsaW5lQ29udGFp
bmVyLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYywgQXR0YWNo
TGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1l
ZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGlu
ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgIGNvbnRyb2xz
LT5tX3RpbWVsaW5lID0gdGltZWxpbmUuZ2V0KCk7Ci0gICAgdGltZWxpbmVDb250YWluZXItPmFw
cGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHRpbWVsaW5lQ29u
dGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkp
OwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8TWVkaWFDb250
cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiB0aW1lUmVtYWluaW5nRGlzcGxheSA9IE1l
ZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICBjb250cm9scy0+bV90aW1lUmVtYWluaW5nRGlzcGxheSA9IHRpbWVSZW1haW5pbmdEaXNw
bGF5LmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lUmVtYWlu
aW5nRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICB0aW1lbGluZUNvbnRhaW5lci0+
YXBwZW5kQ2hpbGQodGltZVJlbWFpbmluZ0Rpc3BsYXkucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6
aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY29udHJvbHMtPm1f
dGltZWxpbmVDb250YWluZXIgPSB0aW1lbGluZUNvbnRhaW5lci5nZXQoKTsKLSAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQodGltZWxpbmVDb250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAg
cGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIEF0dGFj
aExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIEZJWE1F
OiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KICAg
ICBSZWZQdHI8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBzZWVrQmFja0J1dHRv
biA9IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICBjb250cm9scy0+bV9zZWVrQmFja0J1dHRvbiA9IHNlZWtCYWNrQnV0dG9uLmdldCgpOwot
ICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzZWVrQmFja0J1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVl
KTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2Vla0JhY2tCdXR0b24ucmVsZWFzZSgpLCBlYywg
QXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgLy8g
RklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYz
PgogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ+IHNlZWtG
b3J3YXJkQnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3NlZWtGb3J3YXJkQnV0dG9uID0gc2Vla0Zv
cndhcmRCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHNlZWtGb3J3YXJkQnV0
dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzZWVrRm9y
d2FyZEJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAg
ICAgICAgcmV0dXJuIDA7CiAKQEAgLTE1MiwxOCArMTUyLDE4IEBAIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50
KiBkb2N1CiAKICAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tM
aXN0RWxlbWVudD4gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBNZWRpYUNvbnRyb2xDbG9zZWRD
YXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkp
OwogICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IGNsb3NlZENh
cHRpb25zVHJhY2tMaXN0LmdldCgpOwotICAgICAgICBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+
YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QucmVsZWFzZSgpLCBlYywgdHJ1ZSk7
CisgICAgICAgIGNsb3NlZENhcHRpb25zQ29udGFpbmVyLT5hcHBlbmRDaGlsZChjbG9zZWRDYXB0
aW9uc1RyYWNrTGlzdC5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgICAgICBpZiAo
ZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9s
VG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbiA9IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CiAgICAgICAgIGNvbnRyb2xzLT5tX3RvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uID0gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24uZ2V0KCk7
Ci0gICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5y
ZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgICAg
IGlmIChlYykKICAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIGNvbnRyb2xzLT5tX2Ns
b3NlZENhcHRpb25zQ29udGFpbmVyID0gY2xvc2VkQ2FwdGlvbnNDb250YWluZXIuZ2V0KCk7Ci0g
ICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZChjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci5yZWxlYXNl
KCksIGVjLCB0cnVlKTsKKyAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKGNsb3NlZENhcHRpb25z
Q29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgICAgIGlmIChlYykK
ICAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTE3MSw3ICsxNzEsNyBAQCBQYXNzUmVm
UHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gTWVkaWFDb250cm9sc0FwcGxlOjpjcmVhdGVDb250cm9s
cyhEb2N1bWVudCogZG9jdQogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8
aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNj
cmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5CdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxs
U2NyZWVuQnV0dG9uID0gZnVsbFNjcmVlbkJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5k
Q2hpbGQoZnVsbFNjcmVlbkJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkp
OwogCiAgICAgLy8gVGhlIG11dGUgYnV0dG9uIGFuZCB0aGUgc2xpZGVyIGVsZW1lbnQgc2hvdWxk
IGJlIGluIHRoZSBzYW1lIGRpdi4KICAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHBhbmVsVm9s
dW1lQ29udHJvbENvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwpA
QCAtMTgxLDcgKzE4MSw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBNZWRpYUNv
bnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50KiBkb2N1CiAKICAgICAgICAgUmVm
UHRyPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFD
b250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgICAg
ICBjb250cm9scy0+bV92b2x1bWVTbGlkZXIgPSBzbGlkZXIuZ2V0KCk7Ci0gICAgICAgIHZvbHVt
ZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoc2xpZGVyLnJlbGVhc2UoKSwgZWMsIHRydWUp
OworICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHNsaWRlci5yZWxl
YXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICBy
ZXR1cm4gMDsKIApAQCAtMTg5LDQ4ICsxODksNDggQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xz
QXBwbGU+IE1lZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJvbHMoRG9jdW1lbnQqIGRvY3UK
ICAgICAgICAgLy8gSXQncyBpbXBvcnRhbnQgb25seSB3aGVuIHRoZSB2b2x1bWUgYmFyIGlzIGRp
c3BsYXllZCBiZWxvdyB0aGUgY29udHJvbHMuCiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudD4gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IE1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwogICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gdm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvbi5nZXQoKTsKLSAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBl
bmRDaGlsZCh2b2x1bWVTbGlkZXJNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAg
ICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlck11dGVC
dXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKIAogICAgICAgICBpZiAoZWMpCiAg
ICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXJD
b250YWluZXIgPSB2b2x1bWVTbGlkZXJDb250YWluZXIuZ2V0KCk7Ci0gICAgICAgIHBhbmVsVm9s
dW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQodm9sdW1lU2xpZGVyQ29udGFpbmVyLnJl
bGVhc2UoKSwgZWMsIHRydWUpOworICAgICAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIt
PmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlckNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCBBdHRhY2hM
YXppbHkpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICB9CiAK
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxNdXRl
QnV0dG9uID0gTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50LCBjb250cm9scy5nZXQoKSk7CiAgICAgY29udHJvbHMtPm1fcGFuZWxNdXRlQnV0dG9uID0g
cGFuZWxNdXRlQnV0dG9uLmdldCgpOwotICAgIHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lci0+
YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBh
bmVsVm9sdW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJl
bGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4g
MDsKIAotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIs
IGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxWb2x1bWVDb250cm9sQ29u
dGFpbmVyLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgLy8gRklYTUU6IE9ubHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0
Lm9yZy9iLzU3MTYzPgogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWlu
QnV0dG9uRWxlbWVudD4gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNv
bnRyb2xzLT5tX2Z1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVuTWluVm9sdW1l
QnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuTWluVm9sdW1l
QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxs
U2NyZWVuTWluVm9sdW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAg
aWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5Wb2x1bWVTbGlkZXIgPSBmdWxsU2NyZWVuVm9sdW1l
U2xpZGVyLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuVm9sdW1lU2xp
ZGVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2Ny
ZWVuVm9sdW1lU2xpZGVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVu
Vm9sdW1lTWF4QnV0dG9uRWxlbWVudD4gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwogICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVu
TWF4Vm9sdW1lQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVu
TWF4Vm9sdW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRD
aGlsZChmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemls
eSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbnRyb2xzLT5tX3Bh
bmVsID0gcGFuZWwuZ2V0KCk7Ci0gICAgY29udHJvbHMtPmFwcGVuZENoaWxkKHBhbmVsLnJlbGVh
c2UoKSwgZWMsIHRydWUpOworICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChwYW5lbC5yZWxlYXNl
KCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNCbGFj
a0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNCbGFj
a0JlcnJ5LmNwcAppbmRleCBmZTcxNTgzNmMwOTA3ODFmMTIyYTUzZDcyNjc0NTQ2ZDgwMzZjNzli
Li5hZmYwZGJmNzJiYmViNTg3ZTUzNzQyZjYzOTdhZjU1N2NlMTA3OTEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQmxhY2tCZXJyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0JsYWNrQmVycnkuY3Bw
CkBAIC02NDksNyArNjQ5LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeT4g
TWVkaWFDb250cm9sc0JsYWNrQmVycnk6OmNyZWF0ZUNvbnRyb2xzKERvY3UKIAogICAgIFJlZlB0
cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4gcGxheUJ1dHRvbiA9IE1lZGlhQ29udHJv
bFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3Bs
YXlCdXR0b24gPSBwbGF5QnV0dG9uLmdldCgpOwotICAgIGVtYmVkUGFuZWwtPmFwcGVuZENoaWxk
KHBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgZW1iZWRQYW5lbC0+YXBwZW5k
Q2hpbGQocGxheUJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChl
YykKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTY1Nyw3ICs2NTcsNyBAQCBQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbHNCbGFja0JlcnJ5PiBNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeTo6Y3JlYXRlQ29u
dHJvbHMoRG9jdQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGlt
ZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29u
dHJvbHMuZ2V0KCkpOwogICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lID0gdGltZWxpbmUuZ2V0KCk7
Ci0gICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwg
ZWMsIHRydWUpOworICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5y
ZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJu
IDA7CiAKQEAgLTY2NSwyOSArNjY1LDI5IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0JsYWNr
QmVycnk+IE1lZGlhQ29udHJvbHNCbGFja0JlcnJ5OjpjcmVhdGVDb250cm9scyhEb2N1CiAKICAg
ICBSZWZQdHI8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRp
bWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50
VGltZURpc3BsYXkuZ2V0KCk7Ci0gICAgdGltZURpc3BsYXlDb250YWluZXItPmFwcGVuZENoaWxk
KGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICB0aW1lRGlzcGxh
eUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVEaXNwbGF5LnJlbGVhc2UoKSwgZWMs
IEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IHRpbWVSZW1haW5p
bmdEaXNwbGF5ID0gTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3RpbWVSZW1haW5pbmdEaXNwbGF5ID0gdGlt
ZVJlbWFpbmluZ0Rpc3BsYXkuZ2V0KCk7Ci0gICAgdGltZURpc3BsYXlDb250YWluZXItPmFwcGVu
ZENoaWxkKHRpbWVSZW1haW5pbmdEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHRp
bWVEaXNwbGF5Q29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lUmVtYWluaW5nRGlzcGxheS5yZWxl
YXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBjb250cm9scy0+bV90aW1lRGlzcGxheUNvbnRhaW5lciA9IHRpbWVEaXNwbGF5Q29u
dGFpbmVyLmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lRGlz
cGxheUNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICB0aW1lbGluZUNvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQodGltZURpc3BsYXlDb250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNo
TGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY29udHJvbHMt
Pm1fdGltZWxpbmVDb250YWluZXIgPSB0aW1lbGluZUNvbnRhaW5lci5nZXQoKTsKLSAgICBlbWJl
ZFBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZUNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVl
KTsKKyAgICBlbWJlZFBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZUNvbnRhaW5lci5yZWxlYXNl
KCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAK
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3Jl
ZW5CdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuQnV0dG9uID0gZnVsbFNjcmVlbkJ1
dHRvbi5nZXQoKTsKLSAgICBlbWJlZFBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuQnV0dG9u
LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGVtYmVkUGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxT
Y3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiAwOwogCkBAIC02OTksMjEgKzY5OSwyMSBAQCBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbHNCbGFja0JlcnJ5PiBNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeTo6Y3JlYXRlQ29udHJv
bHMoRG9jdQogCiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVs
ZW1lbnQ+IHNsaWRlciA9IE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKICAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyID0gc2xpZGVy
LmdldCgpOwotICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHNsaWRl
ci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5h
cHBlbmRDaGlsZChzbGlkZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICAgICAg
aWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgY29udHJvbHMtPm1fdm9s
dW1lU2xpZGVyQ29udGFpbmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVyLmdldCgpOwotICAgICAg
ICB2b2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJDb250YWlu
ZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIHZvbHVtZUNvbnRyb2xDb250YWluZXIt
PmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlckNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCBBdHRhY2hM
YXppbHkpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAg
UmVmUHRyPE1lZGlhQ29udHJvbEF1ZGlvTXV0ZUJ1dHRvbkVsZW1lbnQ+IG11dGVCdXR0b24gPSBN
ZWRpYUNvbnRyb2xBdWRpb011dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRy
b2xzLmdldCgpKTsKICAgICAgICAgY29udHJvbHMtPm1fbXV0ZUJ1dHRvbiA9IG11dGVCdXR0b24u
Z2V0KCk7Ci0gICAgICAgIHZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKG11dGVC
dXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIHZvbHVtZUNvbnRyb2xDb250YWlu
ZXItPmFwcGVuZENoaWxkKG11dGVCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsK
ICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgZW1iZWRQ
YW5lbC0+YXBwZW5kQ2hpbGQodm9sdW1lQ29udHJvbENvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0
cnVlKTsKKyAgICAgICAgZW1iZWRQYW5lbC0+YXBwZW5kQ2hpbGQodm9sdW1lQ29udHJvbENvbnRh
aW5lci5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgICAgICBpZiAoZWMpCiAgICAg
ICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC03MjIsNyArNzIyLDcgQEAgUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xzQmxhY2tCZXJyeT4gTWVkaWFDb250cm9sc0JsYWNrQmVycnk6OmNyZWF0ZUNv
bnRyb2xzKERvY3UKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVGltZWxpbmVF
bGVtZW50PiBmdWxsc2NyZWVuVGltZWxpbmUgPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVGltZWxp
bmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICBjb250cm9s
cy0+bV9mdWxsc2NyZWVuVGltZWxpbmUgPSBmdWxsc2NyZWVuVGltZWxpbmUuZ2V0KCk7Ci0gICAg
ZnVsbHNjcmVlblRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuVGltZWxp
bmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgZnVsbHNjcmVlblRpbWVsaW5lQ29udGFpbmVy
LT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuVGltZWxpbmUucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6
aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC03MzAsMjMgKzczMCwy
MyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNCbGFja0JlcnJ5PiBNZWRpYUNvbnRyb2xzQmxh
Y2tCZXJyeTo6Y3JlYXRlQ29udHJvbHMoRG9jdQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5DdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBmdWxsc2NyZWVuQ3VycmVudFRpbWVE
aXNwbGF5ID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fZnVsbHNjcmVlbkN1cnJlbnRUaW1l
RGlzcGxheSA9IGZ1bGxzY3JlZW5DdXJyZW50VGltZURpc3BsYXkuZ2V0KCk7Ci0gICAgZnVsbHNj
cmVlblRpbWVEaXNwbGF5Q29udGFpbmVyLT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuQ3VycmVudFRp
bWVEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGZ1bGxzY3JlZW5UaW1lRGlzcGxh
eUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlbkN1cnJlbnRUaW1lRGlzcGxheS5yZWxl
YXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblRpbWVSZW1haW5pbmdEaXNwbGF5
RWxlbWVudD4gZnVsbHNjcmVlblRpbWVSZW1haW5pbmdEaXNwbGF5ID0gTWVkaWFDb250cm9sRnVs
bHNjcmVlblRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAg
ICBjb250cm9scy0+bV9mdWxsc2NyZWVuVGltZVJlbWFpbmluZ0Rpc3BsYXkgPSBmdWxsc2NyZWVu
VGltZVJlbWFpbmluZ0Rpc3BsYXkuZ2V0KCk7Ci0gICAgZnVsbHNjcmVlblRpbWVEaXNwbGF5Q29u
dGFpbmVyLT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuVGltZVJlbWFpbmluZ0Rpc3BsYXkucmVsZWFz
ZSgpLCBlYywgdHJ1ZSk7CisgICAgZnVsbHNjcmVlblRpbWVEaXNwbGF5Q29udGFpbmVyLT5hcHBl
bmRDaGlsZChmdWxsc2NyZWVuVGltZVJlbWFpbmluZ0Rpc3BsYXkucmVsZWFzZSgpLCBlYywgQXR0
YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY29udHJv
bHMtPm1fZnVsbHNjcmVlblRpbWVEaXNwbGF5Q29udGFpbmVyID0gZnVsbHNjcmVlblRpbWVEaXNw
bGF5Q29udGFpbmVyLmdldCgpOwotICAgIGZ1bGxzY3JlZW5UaW1lbGluZUNvbnRhaW5lci0+YXBw
ZW5kQ2hpbGQoZnVsbHNjcmVlblRpbWVEaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIHRy
dWUpOworICAgIGZ1bGxzY3JlZW5UaW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNj
cmVlblRpbWVEaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAg
ICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbnRyb2xzLT5tX2Z1bGxzY3Jl
ZW5UaW1lbGluZUNvbnRhaW5lciA9IGZ1bGxzY3JlZW5UaW1lbGluZUNvbnRhaW5lci5nZXQoKTsK
LSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlblRpbWVsaW5lQ29udGFpbmVyLnJlbGVh
c2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuVGltZWxp
bmVDb250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiAwOwogCkBAIC03NTcsMTUgKzc1NywxNSBAQCBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbHNCbGFja0JlcnJ5PiBNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeTo6Y3JlYXRlQ29udHJv
bHMoRG9jdQogICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5CdXR0b25Db250YWluZXIgPSBmdWxs
U2NyZWVuQnV0dG9uQ29udGFpbmVyLmdldCgpOwogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxzY3JlZW5GdWxsU2NyZWVuQnV0dG9u
ID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX2Z1bGxzY3JlZW5GdWxsU2NyZWVuQnV0dG9uID0g
ZnVsbHNjcmVlbkZ1bGxTY3JlZW5CdXR0b24uZ2V0KCk7Ci0gICAgZnVsbFNjcmVlbkJ1dHRvbkNv
bnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlbkZ1bGxTY3JlZW5CdXR0b24ucmVsZWFzZSgp
LCBlYywgdHJ1ZSk7CisgICAgZnVsbFNjcmVlbkJ1dHRvbkNvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
ZnVsbHNjcmVlbkZ1bGxTY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsK
ICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuQnV0dG9uRGl2aWRlckVsZW1lbnQ+IGZ1bGxTY3JlZW5EaXZpZGVyID0gTWVkaWFD
b250cm9sRnVsbHNjcmVlbkJ1dHRvbkRpdmlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5EaXZpZGVyID0gZnVsbFNjcmVlbkRpdmlkZXIuZ2V0
KCk7Ci0gICAgZnVsbFNjcmVlbkJ1dHRvbkNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVl
bkRpdmlkZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgZnVsbFNjcmVlbkJ1dHRvbkNvbnRh
aW5lci0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkRpdmlkZXIucmVsZWFzZSgpLCBlYywgQXR0YWNo
TGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwotICAgIGJ1dHRvbkdyb3Vw
Q29udGFpbmVyLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuQnV0dG9uQ29udGFpbmVyLnJlbGVhc2Uo
KSwgZWMsIHRydWUpOworICAgIGJ1dHRvbkdyb3VwQ29udGFpbmVyLT5hcHBlbmRDaGlsZChmdWxs
U2NyZWVuQnV0dG9uQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAg
aWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtNzczLDM5ICs3NzMsMzkgQEAgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeT4gTWVkaWFDb250cm9sc0JsYWNrQmVycnk6OmNy
ZWF0ZUNvbnRyb2xzKERvY3UKICAgICBjb250cm9scy0+bV9wbGF5QnV0dG9uQ29udGFpbmVyID0g
cGxheUJ1dHRvbkNvbnRhaW5lci5nZXQoKTsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNj
cmVlblBsYXlCdXR0b25FbGVtZW50PiBmdWxsc2NyZWVuUGxheUJ1dHRvbiA9IE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5QbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250
cm9scy0+bV9mdWxsc2NyZWVuUGxheUJ1dHRvbiA9IGZ1bGxzY3JlZW5QbGF5QnV0dG9uLmdldCgp
OwotICAgIHBsYXlCdXR0b25Db250YWluZXItPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5QbGF5QnV0
dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBsYXlCdXR0b25Db250YWluZXItPmFwcGVu
ZENoaWxkKGZ1bGxzY3JlZW5QbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7
CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKLSAgICBidXR0b25Hcm91cENvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQocGxheUJ1dHRvbkNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsK
KyAgICBidXR0b25Hcm91cENvbnRhaW5lci0+YXBwZW5kQ2hpbGQocGxheUJ1dHRvbkNvbnRhaW5l
ci5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50PiBwbGFj
ZWhvbGRlciA9IE1lZGlhQ29udHJvbFBsYWNlaG9sZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICBjb250cm9scy0+bV9wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyLmdldCgpOwotICAg
IGJ1dHRvbkdyb3VwQ29udGFpbmVyLT5hcHBlbmRDaGlsZChwbGFjZWhvbGRlci5yZWxlYXNlKCks
IGVjLCB0cnVlKTsKKyAgICBidXR0b25Hcm91cENvbnRhaW5lci0+YXBwZW5kQ2hpbGQocGxhY2Vo
b2xkZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAg
IHJldHVybiAwOwogCiAgICAgY29udHJvbHMtPm1fYnV0dG9uQ29udGFpbmVyID0gYnV0dG9uR3Jv
dXBDb250YWluZXIuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGJ1dHRvbkdyb3VwQ29u
dGFpbmVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChidXR0
b25Hcm91cENvbnRhaW5lci5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChl
YykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoZG9jdW1lbnQtPnBhZ2UoKS0+dGhlbWUo
KS0+c3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5nKCkpIHsKICAgICAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gdG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgICAgICBjb250cm9scy0+bV90
b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLmdl
dCgpOwotICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0b2dn
bGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAg
ICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKICAgICBjb250cm9s
cy0+bV9wYW5lbCA9IHBhbmVsLmdldCgpOwotICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChwYW5l
bC5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQocGFuZWwu
cmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVy
biAwOwogCiAgICAgY29udHJvbHMtPm1fZW1iZWRkZWRQYW5lbCA9IGVtYmVkUGFuZWwuZ2V0KCk7
Ci0gICAgY29udHJvbHMtPmFwcGVuZENoaWxkKGVtYmVkUGFuZWwucmVsZWFzZSgpLCBlYywgdHJ1
ZSk7CisgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKGVtYmVkUGFuZWwucmVsZWFzZSgpLCBlYywg
QXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcApp
bmRleCA0NjQxYjlkNWRlYTZjOTVlOTcwMTIzZmY3MTZjZDIyZmVjMTNhZTliLi5iZGE1NTQ5ZDk4
NDg2ZjgyNTc5MzM2NWU4MmFkZGNlODIwZTIyZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKQEAgLTc0LDYzICs3NCw2
MyBAQCBib29sIE1lZGlhQ29udHJvbHNDaHJvbWl1bTo6aW5pdGlhbGl6ZUNvbnRyb2xzKERvY3Vt
ZW50KiBkb2N1bWVudCkKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVu
dD4gcGxheUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogICAgIG1fcGxheUJ1dHRvbiA9IHBsYXlCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwt
PmFwcGVuZENoaWxkKHBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwt
PmFwcGVuZENoaWxkKHBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAg
ICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOwogICAgIG1fdGltZWxpbmUgPSB0aW1lbGluZS5nZXQo
KTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7
CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExh
emlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8
TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5
ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheSA9IGN1cnJlbnRUaW1lRGlzcGxheS5nZXQoKTsK
ICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+aGlkZSgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGls
ZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFw
cGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkp
OwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPE1lZGlh
Q29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudD4gZHVyYXRpb25EaXNwbGF5ID0gTWVk
aWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgIG1fZHVyYXRpb25EaXNwbGF5ID0gZHVyYXRpb25EaXNwbGF5LmdldCgpOwotICAgIHBhbmVs
LT5hcHBlbmRDaGlsZChkdXJhdGlvbkRpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAg
cGFuZWwtPmFwcGVuZENoaWxkKGR1cmF0aW9uRGlzcGxheS5yZWxlYXNlKCksIGVjLCBBdHRhY2hM
YXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRy
PE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1l
ZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgdGhpcyk7
CiAgICAgbV9wYW5lbE11dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0b24uZ2V0KCk7Ci0gICAgcGFu
ZWwtPmFwcGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFj
aExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBNZWRpYUNv
bnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV92
b2x1bWVTbGlkZXIgPSBzbGlkZXIuZ2V0KCk7CiAgICAgbV92b2x1bWVTbGlkZXItPnNldENsZWFy
TXV0ZWRPblVzZXJJbnRlcmFjdGlvbih0cnVlKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2xp
ZGVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzbGlkZXIu
cmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGlmIChkb2N1bWVudC0+cGFnZSgpLT50aGVtZSgpLT5zdXBwb3J0c0Ns
b3NlZENhcHRpb25pbmcoKSkgewogICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xv
c2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IE1l
ZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50LCB0aGlzKTsKICAgICAgICAgbV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IHRvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uLmdldCgpOwotICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQo
dG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAg
IHBhbmVsLT5hcHBlbmRDaGlsZCh0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5yZWxlYXNlKCks
IGVjLCBBdHRhY2hMYXppbHkpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25F
bGVtZW50PiBmdWxsc2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV9mdWxsU2NyZWVuQnV0dG9uID0gZnVsbHNj
cmVlbkJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlbkJ1dHRv
bi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVl
bkJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbV9wYW5lbCA9IHBhbmVsLmdldCgpOwotICAgIGVuY2xv
c3VyZS0+YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgZW5jbG9z
dXJlLT5hcHBlbmRDaGlsZChwYW5lbC5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAg
IGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbV9lbmNsb3N1cmUgPSBlbmNs
b3N1cmUuZ2V0KCk7Ci0gICAgYXBwZW5kQ2hpbGQoZW5jbG9zdXJlLnJlbGVhc2UoKSwgZWMsIHRy
dWUpOworICAgIGFwcGVuZENoaWxkKGVuY2xvc3VyZS5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXpp
bHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0yMTUsNyArMjE1
LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXko
KQogCiAgICAgLy8gSW5zZXJ0IGl0IGJlZm9yZSB0aGUgZmlyc3QgY29udHJvbGxlciBlbGVtZW50
IHNvIGl0IGFsd2F5cyBkaXNwbGF5cyBiZWhpbmQgdGhlIGNvbnRyb2xzLgogICAgIC8vIEluIHRo
ZSBDaHJvbWl1bSBjYXNlLCB0aGF0J3MgdGhlIGVuY2xvc3VyZSBlbGVtZW50LgotICAgIGluc2Vy
dEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lciwgbV9lbmNsb3N1cmUsIEFTU0VSVF9OT19FWENF
UFRJT04sIHRydWUpOworICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lciwgbV9l
bmNsb3N1cmUsIEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFjaExhemlseSk7CiAgICAgdGV4dERp
c3BsYXlDb250YWluZXItPmNyZWF0ZVN1YnRyZWVzKGRvY3VtZW50KCkpOwogICAgIHRleHREaXNw
bGF5Q29udGFpbmVyLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVtQW5kcm9pZC5jcHAKaW5kZXggZWEx
MWJiMzk5Y2M4NzFmMWMzZDQ0M2Y3YjMyNDQwOTEyNWQyYWFkMy4uZjg2MDlkODFjOTNkMzI0MTYy
NTkyZWIxMjQzNTNjYTMwOWEyYTAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVtQW5kcm9pZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVtQW5kcm9pZC5jcHAKQEAgLTU0LDEy
ICs1NCwxMiBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQ+IE1lZGlh
Q29udHJvbHNDaHJvbWl1bUFuZHJvaWQ6OmNyZWF0ZUNvbgogICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudD4gb3ZlcmxheUVuY2xvc3VyZSA9IE1lZGlhQ29udHJv
bE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IG92ZXJsYXlQbGF5QnV0dG9uID0g
TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgIGNvbnRyb2xzLT5tX292ZXJsYXlQbGF5QnV0dG9uID0gb3ZlcmxheVBsYXlCdXR0b24uZ2V0
KCk7Ci0gICAgb3ZlcmxheUVuY2xvc3VyZS0+YXBwZW5kQ2hpbGQob3ZlcmxheVBsYXlCdXR0b24u
cmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgb3ZlcmxheUVuY2xvc3VyZS0+YXBwZW5kQ2hpbGQo
b3ZlcmxheVBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAo
ZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY29udHJvbHMtPm1fb3ZlcmxheUVuY2xvc3Vy
ZSA9IG92ZXJsYXlFbmNsb3N1cmUuZ2V0KCk7Ci0gICAgY29udHJvbHMtPmFwcGVuZENoaWxkKG92
ZXJsYXlFbmNsb3N1cmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgY29udHJvbHMtPmFwcGVu
ZENoaWxkKG92ZXJsYXlFbmNsb3N1cmUucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAg
ICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbHNHdGsuY3BwCmluZGV4IGEzODYyOTM3MzQ0Nzc5NDQxMmRkZjll
YWIyMGNkNjg1ZDEzMTBkMTAuLjVlMWU2ODhlNzhmNWIzMmU3NGMzODU0MTQ3ZjMyYmFhN2JmY2E5
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNH
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNHdGsu
Y3BwCkBAIC02Nyw2OSArNjcsNjkgQEAgYm9vbCBNZWRpYUNvbnRyb2xzR3RrOjppbml0aWFsaXpl
Q29udHJvbHMoRG9jdW1lbnQqIGRvY3VtZW50KQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBs
YXlCdXR0b25FbGVtZW50PiBwbGF5QnV0dG9uID0gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV9wbGF5QnV0dG9uID0gcGxheUJ1dHRvbi5nZXQo
KTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGxheUJ1dHRvbi5yZWxlYXNlKCksIGV4Y2VwdGlv
bkNvZGUsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2Uo
KSwgZXhjZXB0aW9uQ29kZSwgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZXhjZXB0aW9uQ29kZSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5l
RWxlbWVudD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCwgdGhpcyk7CiAgICAgbV90aW1lbGluZSA9IHRpbWVsaW5lLmdldCgpOwotICAgIHBh
bmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIHRydWUp
OworICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGV4Y2VwdGlvbkNv
ZGUsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGV4Y2VwdGlvbkNvZGUpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVt
ZW50PiBjdXJyZW50VGltZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3Vy
cmVudFRpbWVEaXNwbGF5LmdldCgpOwogICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5oaWRlKCk7
Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGV4
Y2VwdGlvbkNvZGUsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURp
c3BsYXkucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChl
eGNlcHRpb25Db2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8TWVkaWFD
b250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiBkdXJhdGlvbkRpc3BsYXkgPSBNZWRp
YUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAg
ICAgbV9kdXJhdGlvbkRpc3BsYXkgPSBkdXJhdGlvbkRpc3BsYXkuZ2V0KCk7Ci0gICAgcGFuZWwt
PmFwcGVuZENoaWxkKGR1cmF0aW9uRGlzcGxheS5yZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIHRy
dWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChkdXJhdGlvbkRpc3BsYXkucmVsZWFzZSgpLCBl
eGNlcHRpb25Db2RlLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChleGNlcHRpb25Db2RlKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoZG9jdW1lbnQtPnBhZ2UoKS0+dGhlbWUoKS0+
c3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5nKCkpIHsKICAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJv
bFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNC
dXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCwgdGhpcyk7CiAgICAgICAgIG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5nZXQoKTsKLSAgICAgICAgcGFuZWwtPmFw
cGVuZENoaWxkKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLnJlbGVhc2UoKSwgZXhjZXB0aW9u
Q29kZSwgdHJ1ZSk7CisgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0b2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbi5yZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIEF0dGFjaExhemlseSk7CiAgICAg
ICAgIGlmIChleGNlcHRpb25Db2RlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gZnVsbHNj
cmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIG1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxzY3JlZW5CdXR0b24uZ2V0
KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBl
eGNlcHRpb25Db2RlLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlbkJ1
dHRvbi5yZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGV4
Y2VwdGlvbkNvZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRy
b2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOwogICAgIG1f
cGFuZWxNdXRlQnV0dG9uID0gcGFuZWxNdXRlQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBl
bmRDaGlsZChwYW5lbE11dGVCdXR0b24ucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCB0cnVlKTsK
KyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZXhjZXB0
aW9uQ29kZSwgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZXhjZXB0aW9uQ29kZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRh
aW5lckVsZW1lbnQ+IHNsaWRlckNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNv
bnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV92b2x1bWVTbGlkZXJDb250
YWluZXIgPSBzbGlkZXJDb250YWluZXIuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHNs
aWRlckNvbnRhaW5lci5yZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIHRydWUpOworICAgIHBhbmVs
LT5hcHBlbmRDaGlsZChzbGlkZXJDb250YWluZXIucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCBB
dHRhY2hMYXppbHkpOwogICAgIGlmIChleGNlcHRpb25Db2RlKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBz
bGlkZXIgPSBNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CiAgICAgbV92b2x1bWVTbGlkZXIgPSBzbGlkZXIuZ2V0KCk7CiAgICAgbV92b2x1bWVT
bGlkZXItPnNldENsZWFyTXV0ZWRPblVzZXJJbnRlcmFjdGlvbih0cnVlKTsKLSAgICBtX3ZvbHVt
ZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoc2xpZGVyLnJlbGVhc2UoKSwgZXhjZXB0aW9u
Q29kZSwgdHJ1ZSk7CisgICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHNs
aWRlci5yZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGV4
Y2VwdGlvbkNvZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fcGFuZWwgPSBwYW5l
bC5nZXQoKTsKLSAgICBlbmNsb3N1cmUtPmFwcGVuZENoaWxkKHBhbmVsLnJlbGVhc2UoKSwgZXhj
ZXB0aW9uQ29kZSwgdHJ1ZSk7CisgICAgZW5jbG9zdXJlLT5hcHBlbmRDaGlsZChwYW5lbC5yZWxl
YXNlKCksIGV4Y2VwdGlvbkNvZGUsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGV4Y2VwdGlvbkNv
ZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fZW5jbG9zdXJlID0gZW5jbG9zdXJl
LmdldCgpOwotICAgIGFwcGVuZENoaWxkKGVuY2xvc3VyZS5yZWxlYXNlKCksIGV4Y2VwdGlvbkNv
ZGUsIHRydWUpOworICAgIGFwcGVuZENoaWxkKGVuY2xvc3VyZS5yZWxlYXNlKCksIGV4Y2VwdGlv
bkNvZGUsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGV4Y2VwdGlvbkNvZGUpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3Bw
CmluZGV4IDIyYjBiN2FmMGVjYmQ4ZTY1N2RmZWM0ZTE5NTNjMDkzMDI2MGQ2YjcuLjNiMmM2OTkw
YThiMmFjYjE0YWZlOGM2ZGZiYTM4YzI4OTY3ZWU1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKQEAgLTc0OSw3ICs3NDksNyBAQCBQYXNzUmVmUHRyPFRl
eHRUcmFja0N1ZUJveD4gVGV4dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZShjb25zdCBJbnRTaXpl
JiB2aWRlb1NpegogCiAgICAgLy8gTm90ZTogVGhpcyBpcyBjb250YWluZWQgYnkgZGVmYXVsdCBp
biBtX2FsbERvY3VtZW50Tm9kZXMuCiAgICAgbV9hbGxEb2N1bWVudE5vZGVzLT5zZXRQc2V1ZG8o
YWxsTm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsKLSAgICBkaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQo
bV9hbGxEb2N1bWVudE5vZGVzLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKKyAgICBkaXNw
bGF5VHJlZS0+YXBwZW5kQ2hpbGQobV9hbGxEb2N1bWVudE5vZGVzLCBBU1NFUlRfTk9fRVhDRVBU
SU9OLCBBdHRhY2hMYXppbHkpOwogCiAgICAgLy8gRklYTUUoQlVHIDc5OTE2KTogUnVucyBvZiBj
aGlsZHJlbiBvZiBXZWJWVFQgUnVieSBPYmplY3RzIHRoYXQgYXJlIG5vdAogICAgIC8vIFdlYlZU
VCBSdWJ5IFRleHQgT2JqZWN0cyBtdXN0IGJlIHdyYXBwZWQgaW4gYW5vbnltb3VzIGJveGVzIHdo
b3NlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191641</attachid>
            <date>2013-03-05 20:02:13 -0800</date>
            <delta_ts>2013-03-05 23:23:02 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-111503-20130305195819.patch</filename>
            <type>text/plain</type>
            <size>54659</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI3ODYyNDhkNDk3ZDdi
Njg1OWYyYWFiOGYxZDcyOGM3ZmFhYmVhMC4uZWM4NjI4NDI3YTg0ZWY1ZjdhZDQ1ZmNjZWFjYjUy
Y2E5YmMwNTkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTA1ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIHNob3VsZExhenlB
dHRhY2ggYm9vbCB3aXRoIGFuIGVudW0gZm9yIHJlYWRhYmlsaXR5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1MDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgTm8gYmVoYXZpb3JhbCBjaGFuZ2UuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9jcHAvV2ViRE9NTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJET01Ob2RlOjppbnNlcnRCZWZvcmUpOgorICAgICAgICAoV2ViRE9NTm9kZTo6cmVwbGFjZUNo
aWxkKToKKyAgICAgICAgKFdlYkRPTU5vZGU6OmFwcGVuZENoaWxkKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU05vZGVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjppbnNl
cnRCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNOb2RlOjphcHBlbmRDaGlsZCk6CisgICAgICAgICogYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Tm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OlY4Tm9kZTo6aW5zZXJ0QmVmb3JlTWV0aG9kQ3VzdG9tKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4Tm9kZTo6cmVwbGFjZUNoaWxkTWV0aG9kQ3VzdG9tKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4Tm9kZTo6YXBwZW5kQ2hpbGRNZXRob2RDdXN0b20pOgorICAgICAgICAqIGRvbS9Db250
YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5v
ZGU6OnJlcGxhY2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjphcHBl
bmRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24pOgor
ICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmg6CisgICAgICAgIChDb250YWluZXJOb2RlKToK
KyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppbnNlcnRC
ZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwbGFjZUNoaWxkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OmFwcGVuZENoaWxkKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAg
ICAgICAoTm9kZSk6CisgICAgICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICogaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sc0FwcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNB
cHBsZTo6Y3JlYXRlQ29udHJvbHMpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJv
bHNCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNCbGFja0Jl
cnJ5OjpjcmVhdGVDb250cm9scyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
c0Nocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDaHJvbWl1bTo6
aW5pdGlhbGl6ZUNvbnRyb2xzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xz
Q2hyb21pdW1BbmRyb2lkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDaHJv
bWl1bUFuZHJvaWQ6OmNyZWF0ZUNvbnRyb2xzKToKKwogMjAxMy0wMy0wNSAgVG9ueSBHZW50aWxj
b3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENvbXBhY3RIVE1MVG9rZW4gZG9l
cyBub3QgbmVlZCBhbiBYU1NJbmZvIHBvaW50ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2NwcC9XZWJET01Ob2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2NwcC9XZWJET01Ob2RlQ3VzdG9tLmNwcAppbmRleCA0MWFiYjBjMjFkZjZhYjBkNjBlMWJk
YWNkZWRiMjBlZjNiYTgzNmIxLi4zYzJkZDU3ZjQ1YTBmY2FhMTU5MzI3ZTBlZGYyZDg0NmFhYWQ3
ZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9jcHAvV2ViRE9NTm9kZUN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvY3BwL1dlYkRPTU5vZGVDdXN0
b20uY3BwCkBAIC0zMSw3ICszMSw3IEBAIFdlYkRPTU5vZGUgV2ViRE9NTm9kZTo6aW5zZXJ0QmVm
b3JlKGNvbnN0IFdlYkRPTU5vZGUmIG5ld0NoaWxkLCBjb25zdCBXZWJET01Ob2RlCiAgICAgICAg
IHJldHVybiBXZWJET01Ob2RlKCk7CiAKICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0g
MDsKLSAgICBpZiAoaW1wbCgpLT5pbnNlcnRCZWZvcmUodG9XZWJDb3JlKG5ld0NoaWxkKSwgdG9X
ZWJDb3JlKHJlZkNoaWxkKSwgZWMsIHRydWUpKQorICAgIGlmIChpbXBsKCktPmluc2VydEJlZm9y
ZSh0b1dlYkNvcmUobmV3Q2hpbGQpLCB0b1dlYkNvcmUocmVmQ2hpbGQpLCBlYywgQXR0YWNoTGF6
aWx5KSkKICAgICAgICAgcmV0dXJuIG5ld0NoaWxkOwogCiAgICAgd2ViRE9NUmFpc2VFcnJvcihz
dGF0aWNfY2FzdDxXZWJET01FeGNlcHRpb25Db2RlPihlYykpOwpAQCAtNDQsNyArNDQsNyBAQCBX
ZWJET01Ob2RlIFdlYkRPTU5vZGU6OnJlcGxhY2VDaGlsZChjb25zdCBXZWJET01Ob2RlJiBuZXdD
aGlsZCwgY29uc3QgV2ViRE9NTm9kZQogICAgICAgICByZXR1cm4gV2ViRE9NTm9kZSgpOwogCiAg
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaWYgKGltcGwoKS0+cmVwbGFj
ZUNoaWxkKHRvV2ViQ29yZShuZXdDaGlsZCksIHRvV2ViQ29yZShvbGRDaGlsZCksIGVjLCB0cnVl
KSkKKyAgICBpZiAoaW1wbCgpLT5yZXBsYWNlQ2hpbGQodG9XZWJDb3JlKG5ld0NoaWxkKSwgdG9X
ZWJDb3JlKG9sZENoaWxkKSwgZWMsIEF0dGFjaExhemlseSkpCiAgICAgICAgIHJldHVybiBvbGRD
aGlsZDsKIAogICAgIHdlYkRPTVJhaXNlRXJyb3Ioc3RhdGljX2Nhc3Q8V2ViRE9NRXhjZXB0aW9u
Q29kZT4oZWMpKTsKQEAgLTcwLDcgKzcwLDcgQEAgV2ViRE9NTm9kZSBXZWJET01Ob2RlOjphcHBl
bmRDaGlsZChjb25zdCBXZWJET01Ob2RlJiBuZXdDaGlsZCkKICAgICAgICAgcmV0dXJuIFdlYkRP
TU5vZGUoKTsKIAogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGlmIChp
bXBsKCktPmFwcGVuZENoaWxkKHRvV2ViQ29yZShuZXdDaGlsZCksIGVjLCB0cnVlKSkKKyAgICBp
ZiAoaW1wbCgpLT5hcHBlbmRDaGlsZCh0b1dlYkNvcmUobmV3Q2hpbGQpLCBlYywgQXR0YWNoTGF6
aWx5KSkKICAgICAgICAgcmV0dXJuIG5ld0NoaWxkOwogCiAgICAgd2ViRE9NUmFpc2VFcnJvcihz
dGF0aWNfY2FzdDxXZWJET01FeGNlcHRpb25Db2RlPihlYykpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKaW5kZXggMmE5MTdmNTUyYjYxMDU4OTU4MDdhNmNk
YTFiMTY5YmM1OThiYTJhNi4uOTlmMmQ1NTIyYmNmOTBhMDQ5ZDAyNGI0NTJiNmYzZTBjOTAwNWI0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0x
NDUsNyArMTQ1LDcgQEAgSlNWYWx1ZSBKU05vZGU6Omluc2VydEJlZm9yZShFeGVjU3RhdGUqIGV4
ZWMpCiB7CiAgICAgTm9kZSogaW1wID0gc3RhdGljX2Nhc3Q8Tm9kZSo+KGltcGwoKSk7CiAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYm9vbCBvayA9IGltcC0+aW5zZXJ0QmVmb3JlKHRv
Tm9kZShleGVjLT5hcmd1bWVudCgwKSksIHRvTm9kZShleGVjLT5hcmd1bWVudCgxKSksIGVjLCB0
cnVlKTsKKyAgICBib29sIG9rID0gaW1wLT5pbnNlcnRCZWZvcmUodG9Ob2RlKGV4ZWMtPmFyZ3Vt
ZW50KDApKSwgdG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMsIEF0dGFjaExhemlseSk7CiAg
ICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICBpZiAob2spCiAgICAgICAgIHJldHVy
biBleGVjLT5hcmd1bWVudCgwKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBKU1ZhbHVlIEpTTm9kZTo6
cmVwbGFjZUNoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBOb2RlKiBpbXAgPSBzdGF0aWNf
Y2FzdDxOb2RlKj4oaW1wbCgpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29s
IG9rID0gaW1wLT5yZXBsYWNlQ2hpbGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgdG9Ob2Rl
KGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMsIHRydWUpOworICAgIGJvb2wgb2sgPSBpbXAtPnJlcGxh
Y2VDaGlsZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpLCB0b05vZGUoZXhlYy0+YXJndW1lbnQo
MSkpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwog
ICAgIGlmIChvaykKICAgICAgICAgcmV0dXJuIGV4ZWMtPmFyZ3VtZW50KDEpOwpAQCAtMTc4LDcg
KzE3OCw3IEBAIEpTVmFsdWUgSlNOb2RlOjphcHBlbmRDaGlsZChFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgTm9kZSogaW1wID0gc3RhdGljX2Nhc3Q8Tm9kZSo+KGltcGwoKSk7CiAgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7Ci0gICAgYm9vbCBvayA9IGltcC0+YXBwZW5kQ2hpbGQodG9Ob2RlKGV4
ZWMtPmFyZ3VtZW50KDApKSwgZWMsIHRydWUpOworICAgIGJvb2wgb2sgPSBpbXAtPmFwcGVuZENo
aWxkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIHNl
dERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhl
Yy0+YXJndW1lbnQoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE5vZGVDdXN0b20uY3BwCmluZGV4IGYzYTljYzQ5MDM5ZjE0OTJiYzA1NWRkNzhmZGM2ZDc2
MjE3ODFkYTEuLjFjNTAwODBjZTcyODgzYzcxZjNjYjFkMDFhYzE4Mzc2MDNkNmIwNTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVDdXN0b20uY3Bw
CkBAIC02MCw3ICs2MCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gVGhpcyBmdW5j
dGlvbiBpcyBjdXN0b21pemVkIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBvcHRpb25hbCA0dGgg
YXJndW1lbnQ6IHNob3VsZExhenlBdHRhY2gKKy8vIFRoaXMgZnVuY3Rpb24gaXMgY3VzdG9taXpl
ZCB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUgb3B0aW9uYWwgNHRoIGFyZ3VtZW50OiBBdHRhY2hC
ZWhhdmlvcgogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Tm9kZTo6aW5zZXJ0QmVmb3JlTWV0aG9k
Q3VzdG9tKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiBob2xkZXIgPSBhcmdzLkhvbGRlcigpOwpAQCAtNjgsNyArNjgsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhOb2RlOjppbnNlcnRCZWZvcmVNZXRob2RDdXN0b20oY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIE5vZGUqIG5l
d0NoaWxkID0gVjhOb2RlOjpIYXNJbnN0YW5jZShhcmdzWzBdLCBhcmdzLkdldElzb2xhdGUoKSkg
PyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkp
IDogMDsKICAgICBOb2RlKiByZWZDaGlsZCA9IFY4Tm9kZTo6SGFzSW5zdGFuY2UoYXJnc1sxXSwg
YXJncy5HZXRJc29sYXRlKCkpID8gVjhOb2RlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+OjpDYXN0KGFyZ3NbMV0pKSA6IDA7Ci0gICAgYm9vbCBzdWNjZXNzID0gaW1wLT5pbnNlcnRC
ZWZvcmUobmV3Q2hpbGQsIHJlZkNoaWxkLCBlYywgdHJ1ZSk7CisgICAgYm9vbCBzdWNjZXNzID0g
aW1wLT5pbnNlcnRCZWZvcmUobmV3Q2hpbGQsIHJlZkNoaWxkLCBlYywgQXR0YWNoTGF6aWx5KTsK
ICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBzZXRET01FeGNlcHRpb24oZWMsIGFyZ3MuR2V0
SXNvbGF0ZSgpKTsKICAgICBpZiAoc3VjY2VzcykKQEAgLTc2LDcgKzc2LDcgQEAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4Tm9kZTo6aW5zZXJ0QmVmb3JlTWV0aG9kQ3VzdG9tKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MKICAgICByZXR1cm4gdjhOdWxsKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0K
IAotLy8gVGhpcyBmdW5jdGlvbiBpcyBjdXN0b21pemVkIHRvIHRha2UgYWR2YW50YWdlIG9mIHRo
ZSBvcHRpb25hbCA0dGggYXJndW1lbnQ6IHNob3VsZExhenlBdHRhY2gKKy8vIFRoaXMgZnVuY3Rp
b24gaXMgY3VzdG9taXplZCB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUgb3B0aW9uYWwgNHRoIGFy
Z3VtZW50OiBBdHRhY2hCZWhhdmlvcgogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Tm9kZTo6cmVw
bGFjZUNoaWxkTWV0aG9kQ3VzdG9tKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBhcmdzLkhvbGRlcigpOwpAQCAtODQsNyAr
ODQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhOb2RlOjpyZXBsYWNlQ2hpbGRNZXRob2RD
dXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwogICAgIE5vZGUqIG5ld0NoaWxkID0gVjhOb2RlOjpIYXNJbnN0YW5jZShhcmdzWzBdLCBhcmdz
LkdldElzb2xhdGUoKSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46
OkNhc3QoYXJnc1swXSkpIDogMDsKICAgICBOb2RlKiBvbGRDaGlsZCA9IFY4Tm9kZTo6SGFzSW5z
dGFuY2UoYXJnc1sxXSwgYXJncy5HZXRJc29sYXRlKCkpID8gVjhOb2RlOjp0b05hdGl2ZSh2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMV0pKSA6IDA7Ci0gICAgYm9vbCBzdWNjZXNz
ID0gaW1wLT5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkLCBlYywgdHJ1ZSk7CisgICAg
Ym9vbCBzdWNjZXNzID0gaW1wLT5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkLCBlYywg
QXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBzZXRET01FeGNlcHRp
b24oZWMsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBpZiAoc3VjY2VzcykKQEAgLTEwNiwxNCAr
MTA2LDE0IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE5vZGU6OnJlbW92ZUNoaWxkTWV0aG9k
Q3VzdG9tKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgcmV0dXJuIHY4TnVsbChhcmdz
LkdldElzb2xhdGUoKSk7CiB9CiAKLS8vIFRoaXMgZnVuY3Rpb24gaXMgY3VzdG9taXplZCB0byB0
YWtlIGFkdmFudGFnZSBvZiB0aGUgb3B0aW9uYWwgNHRoIGFyZ3VtZW50OiBzaG91bGRMYXp5QXR0
YWNoCisvLyBUaGlzIGZ1bmN0aW9uIGlzIGN1c3RvbWl6ZWQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2Yg
dGhlIG9wdGlvbmFsIDR0aCBhcmd1bWVudDogQXR0YWNoQmVoYXZpb3IKIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOE5vZGU6OmFwcGVuZENoaWxkTWV0aG9kQ3VzdG9tKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCiB7CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBhcmdzLkhv
bGRlcigpOwogICAgIE5vZGUqIGltcCA9IFY4Tm9kZTo6dG9OYXRpdmUoaG9sZGVyKTsKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBOb2RlKiBuZXdDaGlsZCA9IFY4Tm9kZTo6SGFzSW5z
dGFuY2UoYXJnc1swXSwgYXJncy5HZXRJc29sYXRlKCkpID8gVjhOb2RlOjp0b05hdGl2ZSh2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKSA6IDA7Ci0gICAgYm9vbCBzdWNjZXNz
ID0gaW1wLT5hcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMsIHRydWUgKTsKKyAgICBib29sIHN1Y2Nl
c3MgPSBpbXAtPmFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBp
ZiAoZWMpCiAgICAgICAgIHJldHVybiBzZXRET01FeGNlcHRpb24oZWMsIGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKICAgICBpZiAoc3VjY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApp
bmRleCBiMjI5ODgxZjZlNzllZjgwOWE1ZmViYjAyNWI5OGNhZTFmYTA1ZDI2Li43YjM4MzFiN2Uy
NmUwODE5N2JlMzVlZjhiNDNhMWQ1ZjE5ZWY3ZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuY3BwCkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGlj
IHZvaWQgZGlzcGF0Y2hDaGlsZEluc2VydGlvbkV2ZW50cyhOb2RlKik7CiBzdGF0aWMgdm9pZCBk
aXNwYXRjaENoaWxkUmVtb3ZhbEV2ZW50cyhOb2RlKik7Ci1zdGF0aWMgdm9pZCB1cGRhdGVUcmVl
QWZ0ZXJJbnNlcnRpb24oQ29udGFpbmVyTm9kZSosIE5vZGUqLCBib29sIHNob3VsZExhenlBdHRh
Y2gpOworc3RhdGljIHZvaWQgdXBkYXRlVHJlZUFmdGVySW5zZXJ0aW9uKENvbnRhaW5lck5vZGUq
LCBOb2RlKiwgQXR0YWNoQmVoYXZpb3IpOwogCiB0eXBlZGVmIHBhaXI8UmVmUHRyPE5vZGU+LCB1
bnNpZ25lZD4gQ2FsbGJhY2tQYXJhbWV0ZXJzOwogdHlwZWRlZiBwYWlyPE5vZGVDYWxsYmFjaywg
Q2FsbGJhY2tQYXJhbWV0ZXJzPiBDYWxsYmFja0luZm87CkBAIC0yNDIsNyArMjQyLDcgQEAgc3Rh
dGljIGlubGluZSBib29sIGNoZWNrUmVwbGFjZUNoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVu
dCwgTm9kZSogbmV3Q2hpbGQsIE4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBDb250YWlu
ZXJOb2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVm
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBib29sIHNob3VsZExhenlBdHRhY2gpCitib29sIENv
bnRhaW5lck5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2Rl
KiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIEF0dGFjaEJlaGF2aW9yIGF0dGFjaEJlaGF2
aW9yKQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgog
ICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNl
bmRpbmcgbXV0YXRpb24gZXZlbnRzLgpAQCAtMjU0LDcgKzI1NCw3IEBAIGJvb2wgQ29udGFpbmVy
Tm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNo
aWxkLCBFeGNlCiAKICAgICAvLyBpbnNlcnRCZWZvcmUobm9kZSwgMCkgaXMgZXF1aXZhbGVudCB0
byBhcHBlbmRDaGlsZChub2RlKQogICAgIGlmICghcmVmQ2hpbGQpCi0gICAgICAgIHJldHVybiBh
cHBlbmRDaGlsZChuZXdDaGlsZCwgZWMsIHNob3VsZExhenlBdHRhY2gpOworICAgICAgICByZXR1
cm4gYXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjLCBhdHRhY2hCZWhhdmlvcik7CiAKICAgICAvLyBN
YWtlIHN1cmUgYWRkaW5nIHRoZSBuZXcgY2hpbGQgaXMgT0suCiAgICAgaWYgKCFjaGVja0FkZENo
aWxkKHRoaXMsIG5ld0NoaWxkLmdldCgpLCBlYykpCkBAIC0zMDEsNyArMzAxLDcgQEAgYm9vbCBD
b250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9k
ZSogcmVmQ2hpbGQsIEV4Y2UKIAogICAgICAgICBpbnNlcnRCZWZvcmVDb21tb24obmV4dC5nZXQo
KSwgY2hpbGQpOwogCi0gICAgICAgIHVwZGF0ZVRyZWVBZnRlckluc2VydGlvbih0aGlzLCBjaGls
ZCwgc2hvdWxkTGF6eUF0dGFjaCk7CisgICAgICAgIHVwZGF0ZVRyZWVBZnRlckluc2VydGlvbih0
aGlzLCBjaGlsZCwgYXR0YWNoQmVoYXZpb3IpOwogICAgIH0KIAogICAgIGRpc3BhdGNoU3VidHJl
ZU1vZGlmaWVkRXZlbnQoKTsKQEAgLTM2MCw3ICszNjAsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6
OnBhcnNlckluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBuZXh0
Q2hpbAogICAgIENoaWxkTm9kZUluc2VydGlvbk5vdGlmaWVyKHRoaXMpLm5vdGlmeShuZXdDaGls
ZC5nZXQoKSk7CiB9CiAKLWJvb2wgQ29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQ
dHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgYm9v
bCBzaG91bGRMYXp5QXR0YWNoKQorYm9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFz
c1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVj
LCBBdHRhY2hCZWhhdmlvciBhdHRhY2hCZWhhdmlvcikKIHsKICAgICAvLyBDaGVjayB0aGF0IHRo
aXMgbm9kZSBpcyBub3QgImZsb2F0aW5nIi4KICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJlIGRl
bGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBvZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KQEAgLTQ0
MCw3ICs0NDAsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRy
PE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZQogICAgICAgICAgICAgICAgIGFw
cGVuZENoaWxkVG9Db250YWluZXIoY2hpbGQsIHRoaXMpOwogICAgICAgICB9CiAKLSAgICAgICAg
dXBkYXRlVHJlZUFmdGVySW5zZXJ0aW9uKHRoaXMsIGNoaWxkLCBzaG91bGRMYXp5QXR0YWNoKTsK
KyAgICAgICAgdXBkYXRlVHJlZUFmdGVySW5zZXJ0aW9uKHRoaXMsIGNoaWxkLCBhdHRhY2hCZWhh
dmlvcik7CiAgICAgfQogCiAgICAgZGlzcGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOwpAQCAt
NjU0LDcgKzY1NCw3IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGRyZW4oKQogICAg
IGRpc3BhdGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsKIH0KIAotYm9vbCBDb250YWluZXJOb2Rl
OjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBl
YywgYm9vbCBzaG91bGRMYXp5QXR0YWNoKQorYm9vbCBDb250YWluZXJOb2RlOjphcHBlbmRDaGls
ZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgQXR0YWNoQmVo
YXZpb3IgYXR0YWNoQmVoYXZpb3IpCiB7CiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IHByb3Rl
Y3QodGhpcyk7CiAKQEAgLTcwNCw3ICs3MDQsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OmFwcGVu
ZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBibwog
ICAgICAgICAgICAgYXBwZW5kQ2hpbGRUb0NvbnRhaW5lcihjaGlsZCwgdGhpcyk7CiAgICAgICAg
IH0KIAotICAgICAgICB1cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24odGhpcywgY2hpbGQsIHNob3Vs
ZExhenlBdHRhY2gpOworICAgICAgICB1cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24odGhpcywgY2hp
bGQsIGF0dGFjaEJlaGF2aW9yKTsKICAgICB9CiAKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmll
ZEV2ZW50KCk7CkBAIC0xMTQ0LDcgKzExNDQsNyBAQCBzdGF0aWMgdm9pZCBkaXNwYXRjaENoaWxk
UmVtb3ZhbEV2ZW50cyhOb2RlKiBjaGlsZCkKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0
ZVRyZWVBZnRlckluc2VydGlvbihDb250YWluZXJOb2RlKiBwYXJlbnQsIE5vZGUqIGNoaWxkLCBi
b29sIHNob3VsZExhenlBdHRhY2gpCitzdGF0aWMgdm9pZCB1cGRhdGVUcmVlQWZ0ZXJJbnNlcnRp
b24oQ29udGFpbmVyTm9kZSogcGFyZW50LCBOb2RlKiBjaGlsZCwgQXR0YWNoQmVoYXZpb3IgYXR0
YWNoQmVoYXZpb3IpCiB7CiAgICAgQVNTRVJUKHBhcmVudC0+cmVmQ291bnQoKSk7CiAgICAgQVNT
RVJUKGNoaWxkLT5yZWZDb3VudCgpKTsKQEAgLTExNTgsNyArMTE1OCw3IEBAIHN0YXRpYyB2b2lk
IHVwZGF0ZVRyZWVBZnRlckluc2VydGlvbihDb250YWluZXJOb2RlKiBwYXJlbnQsIE5vZGUqIGNo
aWxkLCBib29sIHNoCiAgICAgLy8gRklYTUU6IEF0dGFjaG1lbnQgc2hvdWxkIGJlIHRoZSBmaXJz
dCBvcGVyYXRpb24gaW4gdGhpcyBmdW5jdGlvbiwgYnV0IHNvbWUgY29kZQogICAgIC8vIChmb3Ig
ZXhhbXBsZSwgSFRNTEZvcm1Db250cm9sRWxlbWVudCdzIGF1dG9mb2N1cyBzdXBwb3J0KSByZXF1
aXJlcyB0aGlzIG9yZGVyaW5nLgogICAgIGlmIChwYXJlbnQtPmF0dGFjaGVkKCkgJiYgIWNoaWxk
LT5hdHRhY2hlZCgpICYmIGNoaWxkLT5wYXJlbnROb2RlKCkgPT0gcGFyZW50KSB7Ci0gICAgICAg
IGlmIChzaG91bGRMYXp5QXR0YWNoKQorICAgICAgICBpZiAoYXR0YWNoQmVoYXZpb3IgPT0gQXR0
YWNoTGF6aWx5KQogICAgICAgICAgICAgY2hpbGQtPmxhenlBdHRhY2goKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgY2hpbGQtPmF0dGFjaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0NvbnRhaW5lck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
LmgKaW5kZXggZmUyZWM4NWY4NGI3YzkyNDZhOGE5MmY5ZTYzOTNiNjgxNTRlMjVlOC4uNmQ3N2Qw
NGU1Y2I5MDFiY2IwNjdlMDhkNjIxZjI3YzhiOTFjNDU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFp
bmVyTm9kZS5oCkBAIC04OSwxMCArODksMTAgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGNoaWxk
Tm9kZUNvdW50KCkgY29uc3Q7CiAgICAgTm9kZSogY2hpbGROb2RlKHVuc2lnbmVkIGluZGV4KSBj
b25zdDsKIAotICAgIGJvb2wgaW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQs
IE5vZGUqIHJlZkNoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04sIGJv
b2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZhbHNlKTsKLSAgICBib29sIHJlcGxhY2VDaGlsZChQYXNz
UmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBB
U1NFUlRfTk9fRVhDRVBUSU9OLCBib29sIHNob3VsZExhenlBdHRhY2ggPSBmYWxzZSk7CisgICAg
Ym9vbCBpbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hp
bGQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTiwgQXR0YWNoQmVoYXZpb3Ig
PSBBdHRhY2hOb3cpOworICAgIGJvb2wgcmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3
Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJ
T04sIEF0dGFjaEJlaGF2aW9yID0gQXR0YWNoTm93KTsKICAgICBib29sIHJlbW92ZUNoaWxkKE5v
ZGUqIGNoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIGJv
b2wgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYg
PSBBU1NFUlRfTk9fRVhDRVBUSU9OLCBib29sIHNob3VsZExhenlBdHRhY2ggPSBmYWxzZSk7Cisg
ICAgYm9vbCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25D
b2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFjaEJlaGF2aW9yID0gQXR0YWNoTm93KTsK
IAogICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIG9ubHkgdXNlZCBkdXJpbmcgcGFyc2luZy4KICAg
ICAvLyBUaGV5IGRvbid0IHNlbmQgRE9NIG11dGF0aW9uIGV2ZW50cyBvciBoYW5kbGUgcmVwYXJl
bnRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggZGMxMWM5NzZiYzcxM2EzYzhjM2JlMzQwMWVjZjNh
ODI5ZDMyNGFkYi4uMTQ2ZjBhZTI2MDIwNTNiYmQ2MzBmNTg2YWYyYTI0N2MyMGU2YzQ2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcApAQCAtNTQwLDIyICs1NDAsMjIgQEAgTm9kZSogTm9kZTo6Zmlyc3REZXNj
ZW5kYW50KCkgY29uc3QKICAgICByZXR1cm4gbjsKIH0KIAotYm9vbCBOb2RlOjppbnNlcnRCZWZv
cmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNv
ZGUmIGVjLCBib29sIHNob3VsZExhenlBdHRhY2gpCitib29sIE5vZGU6Omluc2VydEJlZm9yZShQ
YXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYg
ZWMsIEF0dGFjaEJlaGF2aW9yIGF0dGFjaEJlaGF2aW9yKQogewogICAgIGlmICghaXNDb250YWlu
ZXJOb2RlKCkpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlzKS0+
aW5zZXJ0QmVmb3JlKG5ld0NoaWxkLCByZWZDaGlsZCwgZWMsIHNob3VsZExhenlBdHRhY2gpOwor
ICAgIHJldHVybiB0b0NvbnRhaW5lck5vZGUodGhpcyktPmluc2VydEJlZm9yZShuZXdDaGlsZCwg
cmVmQ2hpbGQsIGVjLCBhdHRhY2hCZWhhdmlvcik7CiB9CiAKLWJvb2wgTm9kZTo6cmVwbGFjZUNo
aWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25D
b2RlJiBlYywgYm9vbCBzaG91bGRMYXp5QXR0YWNoKQorYm9vbCBOb2RlOjpyZXBsYWNlQ2hpbGQo
UGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUm
IGVjLCBBdHRhY2hCZWhhdmlvciBhdHRhY2hCZWhhdmlvcikKIHsKICAgICBpZiAoIWlzQ29udGFp
bmVyTm9kZSgpKSB7CiAgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiB0b0NvbnRhaW5lck5vZGUodGhpcykt
PnJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjLCBzaG91bGRMYXp5QXR0YWNoKTsK
KyAgICByZXR1cm4gdG9Db250YWluZXJOb2RlKHRoaXMpLT5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQs
IG9sZENoaWxkLCBlYywgYXR0YWNoQmVoYXZpb3IpOwogfQogCiBib29sIE5vZGU6OnJlbW92ZUNo
aWxkKE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTU2NywxMyArNTY3LDEz
IEBAIGJvb2wgTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgIHJldHVybiB0b0NvbnRhaW5lck5vZGUodGhpcyktPnJlbW92ZUNoaWxkKG9sZENo
aWxkLCBlYyk7CiB9CiAKLWJvb2wgTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBu
ZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCkKK2Jvb2wg
Tm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29k
ZSYgZWMsIEF0dGFjaEJlaGF2aW9yIGF0dGFjaEJlaGF2aW9yKQogewogICAgIGlmICghaXNDb250
YWluZXJOb2RlKCkpIHsKICAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlz
KS0+YXBwZW5kQ2hpbGQobmV3Q2hpbGQsIGVjLCBzaG91bGRMYXp5QXR0YWNoKTsKKyAgICByZXR1
cm4gdG9Db250YWluZXJOb2RlKHRoaXMpLT5hcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMsIGF0dGFj
aEJlaGF2aW9yKTsKIH0KIAogdm9pZCBOb2RlOjpyZW1vdmUoRXhjZXB0aW9uQ29kZSYgZWMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaAppbmRleCA3MTBjMWM2ZjMyNzFjY2IyMzJlYjJlM2ZkNTM5MTBkN2E3NDI5YWI3Li5m
NWY3MzkwZGE0ODg5ODk3YWJlMmI1YTFjOTIzNGVhZmIzOTkxNGRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAg
LTEyNSw2ICsxMjUsMTEgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJPYmplY3QqIG1fcmVuZGVyZXI7
CiB9OwogCitlbnVtIEF0dGFjaEJlaGF2aW9yIHsKKyAgICBBdHRhY2hOb3csCisgICAgQXR0YWNo
TGF6aWx5LAorfTsKKwogY2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIFNj
cmlwdFdyYXBwYWJsZSwgcHVibGljIFRyZWVTaGFyZWQ8Tm9kZT4gewogICAgIGZyaWVuZCBjbGFz
cyBEb2N1bWVudDsKICAgICBmcmllbmQgY2xhc3MgVHJlZVNjb3BlOwpAQCAtMTkzLDEwICsxOTgs
MTAgQEAgcHVibGljOgogICAgIC8vIFRoZXNlIHNob3VsZCBhbGwgYWN0dWFsbHkgcmV0dXJuIGEg
bm9kZSwgYnV0IHRoaXMgaXMgb25seSBpbXBvcnRhbnQgZm9yIGxhbmd1YWdlIGJpbmRpbmdzLAog
ICAgIC8vIHdoaWNoIHdpbGwgYWxyZWFkeSBrbm93IGFuZCBob2xkIGEgcmVmIG9uIHRoZSByaWdo
dCBub2RlIHRvIHJldHVybi4gUmV0dXJuaW5nIGJvb2wgYWxsb3dzCiAgICAgLy8gdGhlc2UgbWV0
aG9kcyB0byBiZSBtb3JlIGVmZmljaWVudCBzaW5jZSB0aGV5IGRvbid0IG5lZWQgdG8gcmV0dXJu
IGEgcmVmCi0gICAgYm9vbCBpbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwg
Tm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmLCBib29sIHNob3VsZExhenlBdHRhY2ggPSBm
YWxzZSk7Ci0gICAgYm9vbCByZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwg
Tm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmLCBib29sIHNob3VsZExhenlBdHRhY2ggPSBm
YWxzZSk7CisgICAgYm9vbCBpbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwg
Tm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmLCBBdHRhY2hCZWhhdmlvciA9IEF0dGFjaE5v
dyk7CisgICAgYm9vbCByZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9k
ZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmLCBBdHRhY2hCZWhhdmlvciA9IEF0dGFjaE5vdyk7
CiAgICAgYm9vbCByZW1vdmVDaGlsZChOb2RlKiBjaGlsZCwgRXhjZXB0aW9uQ29kZSYpOwotICAg
IGJvb2wgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29k
ZSYsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9IGZhbHNlKTsKKyAgICBib29sIGFwcGVuZENoaWxk
KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmLCBBdHRhY2hCZWhhdmlv
ciA9IEF0dGFjaE5vdyk7CiAKICAgICB2b2lkIHJlbW92ZShFeGNlcHRpb25Db2RlJik7CiAgICAg
Ym9vbCBoYXNDaGlsZE5vZGVzKCkgY29uc3QgeyByZXR1cm4gZmlyc3RDaGlsZCgpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDVmMjBmNGUw
Yzg0Y2EzYTE0Mzg0N2Y4MGVlOWNlMWM2YWI3NjhlYTQuLjZkMmNmMjNmNzcyMWE1MDYxN2UzZDdj
ZGViN2M0YTMxYzc5MTI3YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRv
QXBwbHkoKQogICAgIGlmICghbV9wYXJlbnQtPnJlbmRlcmVySXNFZGl0YWJsZSgpICYmIG1fcGFy
ZW50LT5hdHRhY2hlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhcmVudC0+YXBwZW5k
Q2hpbGQobV9ub2RlLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OLCB0cnVlIC8qIGxhenlBdHRhY2gg
Ki8pOworICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENF
UFRJT04sIEF0dGFjaExhemlseSk7CiAKICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKICAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVh
a3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4
IDc2Y2ZhNTQ3ZDcwNDM0MmZmNzdiZTkzMzU3NjkwZDViOWI2NjA3NDcuLjdlZGU5OTkxMWVmZDMz
NDVlOTkyODFhMmNkMjQxMzU4N2FjZmQyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQg
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAg
QVNTRVJUKHBhcmVudC0+aXNDb250ZW50RWRpdGFibGUoTm9kZTo6VXNlclNlbGVjdEFsbElzQWx3
YXlzTm9uRWRpdGFibGUpKTsKIAotICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1faW5zZXJ0Q2hp
bGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04sIHRydWUgLyogbGF6
eUF0dGFjaCAqLyk7CisgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQo
KSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTiwgQXR0YWNoTGF6aWx5KTsKIAog
ICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICBk
b2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1f
aW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCAwLCBtX2lu
c2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5jcHAKaW5kZXggNWM2N2RiYzU4MGI1YTczYTcwNzIxN2MxMWEyZDE0NmQ0MzI4NTU1
MS4uYTIxMjc4ODVmNWM5ZDU3N2JjYzFkOGU4OTllZTFhYTUzZTdlY2NmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMTEyLDggKzExMiw4IEBAIFJl
bmRlck9iamVjdCogSFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSogYXJlbmEsIFJlbmRlclN0eWxlCiAKIHZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpkaWRBZGRV
c2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqIHJvb3QpCiB7Ci0gICAgcm9vdC0+YXBwZW5k
Q2hpbGQoRGV0YWlsc1N1bW1hcnlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9O
T19FWENFUFRJT04sIHRydWUpOwotICAgIHJvb3QtPmFwcGVuZENoaWxkKERldGFpbHNDb250ZW50
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsK
KyAgICByb290LT5hcHBlbmRDaGlsZChEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgQXR0YWNoTGF6aWx5KTsKKyAgICByb290LT5h
cHBlbmRDaGlsZChEZXRhaWxzQ29udGVudEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNT
RVJUX05PX0VYQ0VQVElPTiwgQXR0YWNoTGF6aWx5KTsKIH0KIAogRWxlbWVudCogSFRNTERldGFp
bHNFbGVtZW50OjpmaW5kTWFpblN1bW1hcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU3VtbWFyeUVsZW1lbnQuY3BwCmluZGV4IDgwMGFlMWJmMzMzNTk3OGRlMjY4M2FjYmVjNzE0
NmYyMDkyMmQ1OTMuLmI5NzgyNzlkYjdkNjcwY2M5YTJmMzY5YWYwMThlZjE3M2QwYTUzNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKQEAgLTc4LDggKzc4
LDggQEAgYm9vbCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIo
Y29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGMKIAogdm9pZCBIVE1MU3VtbWFyeUVsZW1lbnQ6
OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogcm9vdCkKIHsKLSAgICByb290
LT5hcHBlbmRDaGlsZChEZXRhaWxzTWFya2VyQ29udHJvbDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKLSAgICByb290LT5hcHBlbmRDaGlsZChTdW1tYXJ5
Q29udGVudEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwg
dHJ1ZSk7CisgICAgcm9vdC0+YXBwZW5kQ2hpbGQoRGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0
ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgQXR0YWNoTGF6aWx5KTsKKyAgICBy
b290LT5hcHBlbmRDaGlsZChTdW1tYXJ5Q29udGVudEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgp
KSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgQXR0YWNoTGF6aWx5KTsKIH0KIAogSFRNTERldGFpbHNF
bGVtZW50KiBIVE1MU3VtbWFyeUVsZW1lbnQ6OmRldGFpbHNFbGVtZW50KCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApp
bmRleCAyMjRkNDM1N2FiNmM0M2I4N2M5MWNmYTU0ODBkMTVlNzAzZjY1OTIxLi43NzVjMDc3NmRk
N2E1YjNhNzc0Y2MyMzlmMTRjZmYwNWZiNWVhNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC0xMTg1LDcgKzExODUs
NyBAQCB2b2lkIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZVN1
YnRyZWVzKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBtX2N1ZUNvbnRhaW5lciA9IEhUTUxF
bGVtZW50OjpjcmVhdGUoc3BhblRhZywgZG9jdW1lbnQpOwogICAgIG1fY3VlQ29udGFpbmVyLT5z
ZXRQc2V1ZG8oVGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpKTsKLSAgICBhcHBlbmRD
aGlsZChtX2N1ZUNvbnRhaW5lciwgQVNTRVJUX05PX0VYQ0VQVElPTiwgZmFsc2UpOworICAgIGFw
cGVuZENoaWxkKG1fY3VlQ29udGFpbmVyLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hOb3cp
OwogfQogCiBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+
IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQpCkBAIC0xMjczLDcgKzEyNzMsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFRleHRUcmFj
a0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZURpc3BsYXkoKQogICAgICAgICBSZWZQdHI8VGV4dFRy
YWNrQ3VlQm94PiBkaXNwbGF5Qm94ID0gY3VlLT5nZXREaXNwbGF5VHJlZShtX3ZpZGVvRGlzcGxh
eVNpemUuc2l6ZSgpKTsKICAgICAgICAgaWYgKGRpc3BsYXlCb3gtPmhhc0NoaWxkTm9kZXMoKSAm
JiAhY29udGFpbnMoc3RhdGljX2Nhc3Q8Tm9kZSo+KGRpc3BsYXlCb3guZ2V0KCkpKSkKICAgICAg
ICAgICAgIC8vIE5vdGU6IHRoZSBkaXNwbGF5IHRyZWUgb2YgYSBjdWUgaXMgcmVtb3ZlZCB3aGVu
IHRoZSBhY3RpdmUgZmxhZyBvZiB0aGUgY3VlIGlzIHVuc2V0LgotICAgICAgICAgICAgbV9jdWVD
b250YWluZXItPmFwcGVuZENoaWxkKGRpc3BsYXlCb3gsIEFTU0VSVF9OT19FWENFUFRJT04sIGZh
bHNlKTsKKyAgICAgICAgICAgIG1fY3VlQ29udGFpbmVyLT5hcHBlbmRDaGlsZChkaXNwbGF5Qm94
LCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hOb3cpOwogICAgIH0KIAogICAgIC8vIDExLiBS
ZXR1cm4gb3V0cHV0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9scy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xz
LmNwcAppbmRleCAzODE0ZGVkMTZiMGYwMTQ3ZDJjM2RjYzNjNmE3ZDY4ODg4OGY3YmVjLi5jZWM5
YmM1MzE1N2UyODRkNWNiNzNjMDFkYmUxNWMzOWMwNzdhNjVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcApAQCAtMzgxLDcgKzM4MSw3IEBAIHZvaWQg
TWVkaWFDb250cm9sczo6Y3JlYXRlVGV4dFRyYWNrRGlzcGxheSgpCiAgICAgICAgIG1fdGV4dERp
c3BsYXlDb250YWluZXItPnNldE1lZGlhQ29udHJvbGxlcihtX21lZGlhQ29udHJvbGxlcik7CiAK
ICAgICAvLyBJbnNlcnQgaXQgYmVmb3JlIHRoZSBmaXJzdCBjb250cm9sbGVyIGVsZW1lbnQgc28g
aXQgYWx3YXlzIGRpc3BsYXlzIGJlaGluZCB0aGUgY29udHJvbHMuCi0gICAgaW5zZXJ0QmVmb3Jl
KHRleHREaXNwbGF5Q29udGFpbmVyLCBtX3BhbmVsLCBJR05PUkVfRVhDRVBUSU9OLCB0cnVlKTsK
KyAgICBpbnNlcnRCZWZvcmUodGV4dERpc3BsYXlDb250YWluZXIsIG1fcGFuZWwsIElHTk9SRV9F
WENFUFRJT04sIEF0dGFjaExhemlseSk7CiAgICAgdGV4dERpc3BsYXlDb250YWluZXItPmNyZWF0
ZVN1YnRyZWVzKGRvY3VtZW50KCkpOwogICAgIHRleHREaXNwbGF5Q29udGFpbmVyLnJlbGVhc2Uo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bHNBcHBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBw
bGUuY3BwCmluZGV4IDljYTJkZTc1OTFlOTQ4MmE2OWE1ZDViMGMxMDIzZTllNTczMjMxZGQuLjM5
NmU0OWQyZDc5ZTU5NDZlNGNjNDEzMDRhY2I1N2E5MjFhZTVmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcApAQCAtODQsMjYgKzg0
LDI2IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6
OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50KiBkb2N1CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9s
UmV3aW5kQnV0dG9uRWxlbWVudD4gcmV3aW5kQnV0dG9uID0gTWVkaWFDb250cm9sUmV3aW5kQnV0
dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9yZXdpbmRCdXR0
b24gPSByZXdpbmRCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHJld2luZEJ1
dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocmV3aW5k
QnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4g
cGxheUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOwogICAgIGNvbnRyb2xzLT5tX3BsYXlCdXR0b24gPSBwbGF5QnV0dG9uLmdldCgpOwotICAg
IHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAg
IHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemls
eSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudD4gcmV0dXJuVG9SZWFsdGltZUJ1dHRv
biA9IE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3JldHVyblRvUmVhbFRpbWVCdXR0b24gPSByZXR1cm5U
b1JlYWx0aW1lQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChyZXR1cm5Ub1Jl
YWx0aW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGls
ZChyZXR1cm5Ub1JlYWx0aW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAg
ICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmIChkb2N1bWVudC0+cGFnZSgp
LT50aGVtZSgpLT51c2VzTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheSgpKSB7CiAgICAgICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4gc3RhdHVzRGlzcGxheSA9IE1l
ZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgICAg
ICBjb250cm9scy0+bV9zdGF0dXNEaXNwbGF5ID0gc3RhdHVzRGlzcGxheS5nZXQoKTsKLSAgICAg
ICAgcGFuZWwtPmFwcGVuZENoaWxkKHN0YXR1c0Rpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7
CisgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzdGF0dXNEaXNwbGF5LnJlbGVhc2UoKSwgZWMs
IEF0dGFjaExhemlseSk7CiAgICAgICAgIGlmIChlYykKICAgICAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KQEAgLTExMiwzOCArMTEyLDM4IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxl
PiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50KiBkb2N1CiAKICAg
ICBSZWZQdHI8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRp
bWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50
VGltZURpc3BsYXkuZ2V0KCk7Ci0gICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKGN1
cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICB0aW1lbGluZUNvbnRh
aW5lci0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIEF0dGFj
aExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxp
bmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICBjb250cm9s
cy0+bV90aW1lbGluZSA9IHRpbWVsaW5lLmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5h
cHBlbmRDaGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICB0aW1lbGluZUNv
bnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudD4gdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSBN
ZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAgICAgY29udHJvbHMtPm1fdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSB0aW1lUmVtYWluaW5nRGlz
cGxheS5nZXQoKTsKLSAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZVJlbWFp
bmluZ0Rpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgdGltZWxpbmVDb250YWluZXIt
PmFwcGVuZENoaWxkKHRpbWVSZW1haW5pbmdEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIEF0dGFjaExh
emlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbnRyb2xzLT5t
X3RpbWVsaW5lQ29udGFpbmVyID0gdGltZWxpbmVDb250YWluZXIuZ2V0KCk7Ci0gICAgcGFuZWwt
PmFwcGVuZENoaWxkKHRpbWVsaW5lQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAg
IHBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZUNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCBBdHRh
Y2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBGSVhN
RTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+CiAg
ICAgUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gc2Vla0JhY2tCdXR0
b24gPSBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAgICAgY29udHJvbHMtPm1fc2Vla0JhY2tCdXR0b24gPSBzZWVrQmFja0J1dHRvbi5nZXQoKTsK
LSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2Vla0JhY2tCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1
ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHNlZWtCYWNrQnV0dG9uLnJlbGVhc2UoKSwgZWMs
IEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8v
IEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2
Mz4KICAgICBSZWZQdHI8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBzZWVr
Rm9yd2FyZEJ1dHRvbiA9IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9zZWVrRm9yd2FyZEJ1dHRvbiA9IHNlZWtG
b3J3YXJkQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzZWVrRm9yd2FyZEJ1
dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2Vla0Zv
cndhcmRCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiAwOwogCkBAIC0xNTIsMTggKzE1MiwxOCBAQCBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbHNBcHBsZT4gTWVkaWFDb250cm9sc0FwcGxlOjpjcmVhdGVDb250cm9scyhEb2N1bWVu
dCogZG9jdQogCiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNr
TGlzdEVsZW1lbnQ+IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0ID0gTWVkaWFDb250cm9sQ2xvc2Vk
Q2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgp
KTsKICAgICAgICAgY29udHJvbHMtPm1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBjbG9zZWRD
YXB0aW9uc1RyYWNrTGlzdC5nZXQoKTsKLSAgICAgICAgY2xvc2VkQ2FwdGlvbnNDb250YWluZXIt
PmFwcGVuZENoaWxkKGNsb3NlZENhcHRpb25zVHJhY2tMaXN0LnJlbGVhc2UoKSwgZWMsIHRydWUp
OworICAgICAgICBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2Fw
dGlvbnNUcmFja0xpc3QucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYg
KGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJv
bFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNC
dXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgICAgICBjb250cm9scy0+bV90b2dn
bGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLmdldCgp
OwotICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24u
cmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0b2dnbGVD
bG9zZWRDYXB0aW9uc0J1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgICAg
ICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICBjb250cm9scy0+bV9j
bG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IGNsb3NlZENhcHRpb25zQ29udGFpbmVyLmdldCgpOwot
ICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNDb250YWluZXIucmVsZWFz
ZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZChjbG9zZWRDYXB0aW9u
c0NvbnRhaW5lci5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgICAgICBpZiAoZWMp
CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0xNzEsNyArMTcxLDcgQEAgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1lZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJv
bHMoRG9jdW1lbnQqIGRvY3UKICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQg
PGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5CdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNj
cmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fZnVs
bFNjcmVlbkJ1dHRvbiA9IGZ1bGxTY3JlZW5CdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVu
ZENoaWxkKGZ1bGxTY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwt
PmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5
KTsKIAogICAgIC8vIFRoZSBtdXRlIGJ1dHRvbiBhbmQgdGhlIHNsaWRlciBlbGVtZW50IHNob3Vs
ZCBiZSBpbiB0aGUgc2FtZSBkaXYuCiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBwYW5lbFZv
bHVtZUNvbnRyb2xDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
QEAgLTE4MSw3ICsxODEsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gTWVkaWFD
b250cm9sc0FwcGxlOjpjcmVhdGVDb250cm9scyhEb2N1bWVudCogZG9jdQogCiAgICAgICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IE1lZGlh
Q29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAg
ICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyID0gc2xpZGVyLmdldCgpOwotICAgICAgICB2b2x1
bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHNsaWRlci5yZWxlYXNlKCksIGVjLCB0cnVl
KTsKKyAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChzbGlkZXIucmVs
ZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAg
cmV0dXJuIDA7CiAKQEAgLTE4OSw0OCArMTg5LDQ4IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9s
c0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50KiBkb2N1
CiAgICAgICAgIC8vIEl0J3MgaW1wb3J0YW50IG9ubHkgd2hlbiB0aGUgdm9sdW1lIGJhciBpcyBk
aXNwbGF5ZWQgYmVsb3cgdGhlIGNvbnRyb2xzLgogICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IHZvbHVtZVNsaWRlck11dGVCdXR0b24gPSBN
ZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IHZvbHVtZVNs
aWRlck11dGVCdXR0b24uZ2V0KCk7Ci0gICAgICAgIHZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXBw
ZW5kQ2hpbGQodm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAg
ICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJNdXRl
QnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAKICAgICAgICAgaWYgKGVjKQog
ICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVy
Q29udGFpbmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVyLmdldCgpOwotICAgICAgICBwYW5lbFZv
bHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlckNvbnRhaW5lci5y
ZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICAgICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVy
LT5hcHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJDb250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNo
TGF6aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQog
CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0
ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgIGNvbnRyb2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9
IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIt
PmFwcGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBw
YW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5y
ZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVy
LCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHBhbmVsVm9sdW1lQ29udHJvbENv
bnRhaW5lciwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4g
MDsKIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtp
dC5vcmcvYi81NzE2Mz4KICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1p
bkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBj
b250cm9scy0+bV9mdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uID0gZnVsbFNjcmVlbk1pblZvbHVt
ZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbk1pblZvbHVt
ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVs
bFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAg
IGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVs
bHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIgPSBNZWRp
YUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuVm9sdW1lU2xpZGVyID0gZnVsbFNjcmVlblZvbHVt
ZVNsaWRlci5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlblZvbHVtZVNs
aWRlci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNj
cmVlblZvbHVtZVNsaWRlci5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChl
YykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVl
blZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBNZWRp
YUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uID0gZnVsbFNjcmVl
bk1heFZvbHVtZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVl
bk1heFZvbHVtZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5k
Q2hpbGQoZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXpp
bHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBjb250cm9scy0+bV9w
YW5lbCA9IHBhbmVsLmdldCgpOwotICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChwYW5lbC5yZWxl
YXNlKCksIGVjLCB0cnVlKTsKKyAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFz
ZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQmxh
Y2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQmxh
Y2tCZXJyeS5jcHAKaW5kZXggZmU3MTU4MzZjMDkwNzgxZjEyMmE1M2Q3MjY3NDU0NmQ4MDM2Yzc5
Yi4uYWZmMGRiZjcyYmJlYjU4N2U1Mzc0MmY2Mzk3YWY1NTdjZTEwNzkxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0JsYWNrQmVycnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNCbGFja0JlcnJ5LmNw
cApAQCAtNjQ5LDcgKzY0OSw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0JsYWNrQmVycnk+
IE1lZGlhQ29udHJvbHNCbGFja0JlcnJ5OjpjcmVhdGVDb250cm9scyhEb2N1CiAKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRy
b2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9w
bGF5QnV0dG9uID0gcGxheUJ1dHRvbi5nZXQoKTsKLSAgICBlbWJlZFBhbmVsLT5hcHBlbmRDaGls
ZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGVtYmVkUGFuZWwtPmFwcGVu
ZENoaWxkKHBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAo
ZWMpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC02NTcsNyArNjU3LDcgQEAgUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xzQmxhY2tCZXJyeT4gTWVkaWFDb250cm9sc0JsYWNrQmVycnk6OmNyZWF0ZUNv
bnRyb2xzKERvY3UKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRp
bWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNv
bnRyb2xzLmdldCgpKTsKICAgICBjb250cm9scy0+bV90aW1lbGluZSA9IHRpbWVsaW5lLmdldCgp
OwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5yZWxlYXNlKCks
IGVjLCB0cnVlKTsKKyAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZWxpbmUu
cmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVy
biAwOwogCkBAIC02NjUsMjkgKzY2NSwyOSBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNCbGFj
a0JlcnJ5PiBNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeTo6Y3JlYXRlQ29udHJvbHMoRG9jdQogCiAg
ICAgUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJlbnRU
aW1lRGlzcGxheSA9IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVu
dFRpbWVEaXNwbGF5LmdldCgpOwotICAgIHRpbWVEaXNwbGF5Q29udGFpbmVyLT5hcHBlbmRDaGls
ZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgdGltZURpc3Bs
YXlDb250YWluZXItPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVj
LCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiB0aW1lUmVtYWlu
aW5nRGlzcGxheSA9IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV90aW1lUmVtYWluaW5nRGlzcGxheSA9IHRp
bWVSZW1haW5pbmdEaXNwbGF5LmdldCgpOwotICAgIHRpbWVEaXNwbGF5Q29udGFpbmVyLT5hcHBl
bmRDaGlsZCh0aW1lUmVtYWluaW5nRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICB0
aW1lRGlzcGxheUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZVJlbWFpbmluZ0Rpc3BsYXkucmVs
ZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgY29udHJvbHMtPm1fdGltZURpc3BsYXlDb250YWluZXIgPSB0aW1lRGlzcGxheUNv
bnRhaW5lci5nZXQoKTsKLSAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZURp
c3BsYXlDb250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgdGltZWxpbmVDb250YWlu
ZXItPmFwcGVuZENoaWxkKHRpbWVEaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIEF0dGFj
aExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbnRyb2xz
LT5tX3RpbWVsaW5lQ29udGFpbmVyID0gdGltZWxpbmVDb250YWluZXIuZ2V0KCk7Ci0gICAgZW1i
ZWRQYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmVDb250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1
ZSk7CisgICAgZW1iZWRQYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmVDb250YWluZXIucmVsZWFz
ZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwog
CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBmdWxsU2Ny
ZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxTY3JlZW5C
dXR0b24uZ2V0KCk7Ci0gICAgZW1iZWRQYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkJ1dHRv
bi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBlbWJlZFBhbmVsLT5hcHBlbmRDaGlsZChmdWxs
U2NyZWVuQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQog
ICAgICAgICByZXR1cm4gMDsKIApAQCAtNjk5LDIxICs2OTksMjEgQEAgUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xzQmxhY2tCZXJyeT4gTWVkaWFDb250cm9sc0JsYWNrQmVycnk6OmNyZWF0ZUNvbnRy
b2xzKERvY3UKIAogICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJF
bGVtZW50PiBzbGlkZXIgPSBNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CiAgICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRl
ci5nZXQoKTsKLSAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChzbGlk
ZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIHZvbHVtZVNsaWRlckNvbnRhaW5lci0+
YXBwZW5kQ2hpbGQoc2xpZGVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgICAg
IGlmIChlYykKICAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIGNvbnRyb2xzLT5tX3Zv
bHVtZVNsaWRlckNvbnRhaW5lciA9IHZvbHVtZVNsaWRlckNvbnRhaW5lci5nZXQoKTsKLSAgICAg
ICAgdm9sdW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQodm9sdW1lU2xpZGVyQ29udGFp
bmVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgICAgICB2b2x1bWVDb250cm9sQ29udGFpbmVy
LT5hcHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJDb250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNo
TGF6aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xBdWRpb011dGVCdXR0b25FbGVtZW50PiBtdXRlQnV0dG9uID0g
TWVkaWFDb250cm9sQXVkaW9NdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250
cm9scy5nZXQoKSk7CiAgICAgICAgIGNvbnRyb2xzLT5tX211dGVCdXR0b24gPSBtdXRlQnV0dG9u
LmdldCgpOwotICAgICAgICB2b2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZChtdXRl
QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgICAgICB2b2x1bWVDb250cm9sQ29udGFp
bmVyLT5hcHBlbmRDaGlsZChtdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7
CiAgICAgICAgIGlmIChlYykKICAgICAgICAgICAgIHJldHVybiAwOwogCi0gICAgICAgIGVtYmVk
UGFuZWwtPmFwcGVuZENoaWxkKHZvbHVtZUNvbnRyb2xDb250YWluZXIucmVsZWFzZSgpLCBlYywg
dHJ1ZSk7CisgICAgICAgIGVtYmVkUGFuZWwtPmFwcGVuZENoaWxkKHZvbHVtZUNvbnRyb2xDb250
YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAg
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtNzIyLDcgKzcyMiw3IEBAIFBhc3NSZWZQdHI8
TWVkaWFDb250cm9sc0JsYWNrQmVycnk+IE1lZGlhQ29udHJvbHNCbGFja0JlcnJ5OjpjcmVhdGVD
b250cm9scyhEb2N1CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblRpbWVsaW5l
RWxlbWVudD4gZnVsbHNjcmVlblRpbWVsaW5lID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblRpbWVs
aW5lRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CiAgICAgY29udHJv
bHMtPm1fZnVsbHNjcmVlblRpbWVsaW5lID0gZnVsbHNjcmVlblRpbWVsaW5lLmdldCgpOwotICAg
IGZ1bGxzY3JlZW5UaW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlblRpbWVs
aW5lLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGZ1bGxzY3JlZW5UaW1lbGluZUNvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlblRpbWVsaW5lLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExh
emlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtNzMwLDIzICs3MzAs
MjMgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeT4gTWVkaWFDb250cm9sc0Js
YWNrQmVycnk6OmNyZWF0ZUNvbnRyb2xzKERvY3UKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gZnVsbHNjcmVlbkN1cnJlbnRUaW1l
RGlzcGxheSA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5DdXJyZW50VGltZURpc3BsYXlFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX2Z1bGxzY3JlZW5DdXJyZW50VGlt
ZURpc3BsYXkgPSBmdWxsc2NyZWVuQ3VycmVudFRpbWVEaXNwbGF5LmdldCgpOwotICAgIGZ1bGxz
Y3JlZW5UaW1lRGlzcGxheUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlbkN1cnJlbnRU
aW1lRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBmdWxsc2NyZWVuVGltZURpc3Bs
YXlDb250YWluZXItPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5DdXJyZW50VGltZURpc3BsYXkucmVs
ZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5UaW1lUmVtYWluaW5nRGlzcGxh
eUVsZW1lbnQ+IGZ1bGxzY3JlZW5UaW1lUmVtYWluaW5nRGlzcGxheSA9IE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5UaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAg
ICAgY29udHJvbHMtPm1fZnVsbHNjcmVlblRpbWVSZW1haW5pbmdEaXNwbGF5ID0gZnVsbHNjcmVl
blRpbWVSZW1haW5pbmdEaXNwbGF5LmdldCgpOwotICAgIGZ1bGxzY3JlZW5UaW1lRGlzcGxheUNv
bnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlblRpbWVSZW1haW5pbmdEaXNwbGF5LnJlbGVh
c2UoKSwgZWMsIHRydWUpOworICAgIGZ1bGxzY3JlZW5UaW1lRGlzcGxheUNvbnRhaW5lci0+YXBw
ZW5kQ2hpbGQoZnVsbHNjcmVlblRpbWVSZW1haW5pbmdEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIEF0
dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbnRy
b2xzLT5tX2Z1bGxzY3JlZW5UaW1lRGlzcGxheUNvbnRhaW5lciA9IGZ1bGxzY3JlZW5UaW1lRGlz
cGxheUNvbnRhaW5lci5nZXQoKTsKLSAgICBmdWxsc2NyZWVuVGltZWxpbmVDb250YWluZXItPmFw
cGVuZENoaWxkKGZ1bGxzY3JlZW5UaW1lRGlzcGxheUNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0
cnVlKTsKKyAgICBmdWxsc2NyZWVuVGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKGZ1bGxz
Y3JlZW5UaW1lRGlzcGxheUNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwog
ICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBjb250cm9scy0+bV9mdWxsc2Ny
ZWVuVGltZWxpbmVDb250YWluZXIgPSBmdWxsc2NyZWVuVGltZWxpbmVDb250YWluZXIuZ2V0KCk7
Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5UaW1lbGluZUNvbnRhaW5lci5yZWxl
YXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlblRpbWVs
aW5lQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQog
ICAgICAgICByZXR1cm4gMDsKIApAQCAtNzU3LDE1ICs3NTcsMTUgQEAgUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xzQmxhY2tCZXJyeT4gTWVkaWFDb250cm9sc0JsYWNrQmVycnk6OmNyZWF0ZUNvbnRy
b2xzKERvY3UKICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuQnV0dG9uQ29udGFpbmVyID0gZnVs
bFNjcmVlbkJ1dHRvbkNvbnRhaW5lci5nZXQoKTsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVs
bHNjcmVlbkZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBmdWxsc2NyZWVuRnVsbFNjcmVlbkJ1dHRv
biA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5GdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxsc2NyZWVuRnVsbFNjcmVlbkJ1dHRvbiA9
IGZ1bGxzY3JlZW5GdWxsU2NyZWVuQnV0dG9uLmdldCgpOwotICAgIGZ1bGxTY3JlZW5CdXR0b25D
b250YWluZXItPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5GdWxsU2NyZWVuQnV0dG9uLnJlbGVhc2Uo
KSwgZWMsIHRydWUpOworICAgIGZ1bGxTY3JlZW5CdXR0b25Db250YWluZXItPmFwcGVuZENoaWxk
KGZ1bGxzY3JlZW5GdWxsU2NyZWVuQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7
CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKICAgICBSZWZQdHI8TWVkaWFDb250cm9s
RnVsbHNjcmVlbkJ1dHRvbkRpdmlkZXJFbGVtZW50PiBmdWxsU2NyZWVuRGl2aWRlciA9IE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5CdXR0b25EaXZpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuRGl2aWRlciA9IGZ1bGxTY3JlZW5EaXZpZGVyLmdl
dCgpOwotICAgIGZ1bGxTY3JlZW5CdXR0b25Db250YWluZXItPmFwcGVuZENoaWxkKGZ1bGxTY3Jl
ZW5EaXZpZGVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGZ1bGxTY3JlZW5CdXR0b25Db250
YWluZXItPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5EaXZpZGVyLnJlbGVhc2UoKSwgZWMsIEF0dGFj
aExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKLSAgICBidXR0b25Hcm91
cENvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkJ1dHRvbkNvbnRhaW5lci5yZWxlYXNl
KCksIGVjLCB0cnVlKTsKKyAgICBidXR0b25Hcm91cENvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVs
bFNjcmVlbkJ1dHRvbkNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAg
IGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTc3MywzOSArNzczLDM5IEBAIFBhc3NS
ZWZQdHI8TWVkaWFDb250cm9sc0JsYWNrQmVycnk+IE1lZGlhQ29udHJvbHNCbGFja0JlcnJ5Ojpj
cmVhdGVDb250cm9scyhEb2N1CiAgICAgY29udHJvbHMtPm1fcGxheUJ1dHRvbkNvbnRhaW5lciA9
IHBsYXlCdXR0b25Db250YWluZXIuZ2V0KCk7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5QbGF5QnV0dG9uRWxlbWVudD4gZnVsbHNjcmVlblBsYXlCdXR0b24gPSBNZWRpYUNvbnRy
b2xGdWxsc2NyZWVuUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29u
dHJvbHMtPm1fZnVsbHNjcmVlblBsYXlCdXR0b24gPSBmdWxsc2NyZWVuUGxheUJ1dHRvbi5nZXQo
KTsKLSAgICBwbGF5QnV0dG9uQ29udGFpbmVyLT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuUGxheUJ1
dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwbGF5QnV0dG9uQ29udGFpbmVyLT5hcHBl
bmRDaGlsZChmdWxsc2NyZWVuUGxheUJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkp
OwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgYnV0dG9uR3JvdXBDb250YWlu
ZXItPmFwcGVuZENoaWxkKHBsYXlCdXR0b25Db250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7
CisgICAgYnV0dG9uR3JvdXBDb250YWluZXItPmFwcGVuZENoaWxkKHBsYXlCdXR0b25Db250YWlu
ZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJl
dHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBsYWNlaG9sZGVyRWxlbWVudD4gcGxh
Y2Vob2xkZXIgPSBNZWRpYUNvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CiAgICAgY29udHJvbHMtPm1fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlci5nZXQoKTsKLSAg
ICBidXR0b25Hcm91cENvbnRhaW5lci0+YXBwZW5kQ2hpbGQocGxhY2Vob2xkZXIucmVsZWFzZSgp
LCBlYywgdHJ1ZSk7CisgICAgYnV0dG9uR3JvdXBDb250YWluZXItPmFwcGVuZENoaWxkKHBsYWNl
aG9sZGVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm4gMDsKIAogICAgIGNvbnRyb2xzLT5tX2J1dHRvbkNvbnRhaW5lciA9IGJ1dHRvbkdy
b3VwQ29udGFpbmVyLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChidXR0b25Hcm91cENv
bnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoYnV0
dG9uR3JvdXBDb250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAo
ZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKGRvY3VtZW50LT5wYWdlKCktPnRoZW1l
KCktPnN1cHBvcnRzQ2xvc2VkQ2FwdGlvbmluZygpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRp
b25zQnV0dG9uID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICAgICAgY29udHJvbHMtPm1f
dG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5n
ZXQoKTsKLSAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAg
ICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAgY29udHJv
bHMtPm1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKLSAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQocGFu
ZWwucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKHBhbmVs
LnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIGNvbnRyb2xzLT5tX2VtYmVkZGVkUGFuZWwgPSBlbWJlZFBhbmVsLmdldCgp
OwotICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChlbWJlZFBhbmVsLnJlbGVhc2UoKSwgZWMsIHRy
dWUpOworICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChlbWJlZFBhbmVsLnJlbGVhc2UoKSwgZWMs
IEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAK
aW5kZXggNDY0MWI5ZDVkZWE2Yzk1ZTk3MDEyM2ZmNzE2Y2QyMmZlYzEzYWU5Yi4uYmRhNTU0OWQ5
ODQ4NmY4MjU3OTMzNjVlODJhZGRjZTgyMGUyMmVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwCkBAIC03NCw2MyArNzQs
NjMgQEAgYm9vbCBNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmluaXRpYWxpemVDb250cm9scyhEb2N1
bWVudCogZG9jdW1lbnQpCiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1l
bnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKICAgICBtX3BsYXlCdXR0b24gPSBwbGF5QnV0dG9uLmdldCgpOwotICAgIHBhbmVs
LT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVs
LT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAg
ICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8TWVkaWFDb250
cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50LCB0aGlzKTsKICAgICBtX3RpbWVsaW5lID0gdGltZWxpbmUuZ2V0
KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwgZWMsIHRydWUp
OworICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGVjLCBBdHRhY2hM
YXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRy
PE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxh
eSA9IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CiAgICAgbV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkuZ2V0KCk7
CiAgICAgbV9jdXJyZW50VGltZURpc3BsYXktPmhpZGUoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hp
bGQoY3VycmVudFRpbWVEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5h
cHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IGR1cmF0aW9uRGlzcGxheSA9IE1l
ZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICBtX2R1cmF0aW9uRGlzcGxheSA9IGR1cmF0aW9uRGlzcGxheS5nZXQoKTsKLSAgICBwYW5l
bC0+YXBwZW5kQ2hpbGQoZHVyYXRpb25EaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAg
IHBhbmVsLT5hcHBlbmRDaGlsZChkdXJhdGlvbkRpc3BsYXkucmVsZWFzZSgpLCBlYywgQXR0YWNo
TGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0
cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5lbE11dGVCdXR0b24gPSBN
ZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMp
OwogICAgIG1fcGFuZWxNdXRlQnV0dG9uID0gcGFuZWxNdXRlQnV0dG9uLmdldCgpOwotICAgIHBh
bmVsLT5hcHBlbmRDaGlsZChwYW5lbE11dGVCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7Cisg
ICAgcGFuZWwtPmFwcGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRh
Y2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVm
UHRyPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFD
b250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1f
dm9sdW1lU2xpZGVyID0gc2xpZGVyLmdldCgpOwogICAgIG1fdm9sdW1lU2xpZGVyLT5zZXRDbGVh
ck11dGVkT25Vc2VySW50ZXJhY3Rpb24odHJ1ZSk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHNs
aWRlci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2xpZGVy
LnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBpZiAoZG9jdW1lbnQtPnBhZ2UoKS0+dGhlbWUoKS0+c3VwcG9ydHND
bG9zZWRDYXB0aW9uaW5nKCkpIHsKICAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSBN
ZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCwgdGhpcyk7CiAgICAgICAgIG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSB0b2dn
bGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5nZXQoKTsKLSAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxk
KHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgICAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucmVsZWFzZSgp
LCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9u
RWxlbWVudD4gZnVsbHNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25F
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxz
Y3JlZW5CdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5CdXR0
b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxzY3Jl
ZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKLSAgICBlbmNs
b3N1cmUtPmFwcGVuZENoaWxkKHBhbmVsLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGVuY2xv
c3VyZS0+YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAg
ICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fZW5jbG9zdXJlID0gZW5j
bG9zdXJlLmdldCgpOwotICAgIGFwcGVuZENoaWxkKGVuY2xvc3VyZS5yZWxlYXNlKCksIGVjLCB0
cnVlKTsKKyAgICBhcHBlbmRDaGlsZChlbmNsb3N1cmUucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6
aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjE1LDcgKzIx
NSw3IEBAIHZvaWQgTWVkaWFDb250cm9sc0Nocm9taXVtOjpjcmVhdGVUZXh0VHJhY2tEaXNwbGF5
KCkKIAogICAgIC8vIEluc2VydCBpdCBiZWZvcmUgdGhlIGZpcnN0IGNvbnRyb2xsZXIgZWxlbWVu
dCBzbyBpdCBhbHdheXMgZGlzcGxheXMgYmVoaW5kIHRoZSBjb250cm9scy4KICAgICAvLyBJbiB0
aGUgQ2hyb21pdW0gY2FzZSwgdGhhdCdzIHRoZSBlbmNsb3N1cmUgZWxlbWVudC4KLSAgICBpbnNl
cnRCZWZvcmUodGV4dERpc3BsYXlDb250YWluZXIsIG1fZW5jbG9zdXJlLCBBU1NFUlRfTk9fRVhD
RVBUSU9OLCB0cnVlKTsKKyAgICBpbnNlcnRCZWZvcmUodGV4dERpc3BsYXlDb250YWluZXIsIG1f
ZW5jbG9zdXJlLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOwogICAgIHRleHRE
aXNwbGF5Q29udGFpbmVyLT5jcmVhdGVTdWJ0cmVlcyhkb2N1bWVudCgpKTsKICAgICB0ZXh0RGlz
cGxheUNvbnRhaW5lci5yZWxlYXNlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQ2hyb21pdW1BbmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3BwCmluZGV4IGVh
MTFiYjM5OWNjODcxZjFjM2Q0NDNmN2IzMjQ0MDkxMjVkMmFhZDMuLmY4NjA5ZDgxYzkzZDMyNDE2
MjU5MmViMTI0MzUzY2EzMDlhMmEwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3BwCkBAIC01NCwx
MiArNTQsMTIgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQ2hyb21pdW1BbmRyb2lkPiBNZWRp
YUNvbnRyb2xzQ2hyb21pdW1BbmRyb2lkOjpjcmVhdGVDb24KICAgICBSZWZQdHI8TWVkaWFDb250
cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ+IG92ZXJsYXlFbmNsb3N1cmUgPSBNZWRpYUNvbnRy
b2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBSZWZQdHI8
TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50PiBvdmVybGF5UGxheUJ1dHRvbiA9
IE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ICAgICBjb250cm9scy0+bV9vdmVybGF5UGxheUJ1dHRvbiA9IG92ZXJsYXlQbGF5QnV0dG9uLmdl
dCgpOwotICAgIG92ZXJsYXlFbmNsb3N1cmUtPmFwcGVuZENoaWxkKG92ZXJsYXlQbGF5QnV0dG9u
LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIG92ZXJsYXlFbmNsb3N1cmUtPmFwcGVuZENoaWxk
KG92ZXJsYXlQbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbnRyb2xzLT5tX292ZXJsYXlFbmNsb3N1
cmUgPSBvdmVybGF5RW5jbG9zdXJlLmdldCgpOwotICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChv
dmVybGF5RW5jbG9zdXJlLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGNvbnRyb2xzLT5hcHBl
bmRDaGlsZChvdmVybGF5RW5jbG9zdXJlLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAg
ICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xzR3RrLmNwcAppbmRleCBhMzg2MjkzNzM0NDc3OTQ0MTJkZGY5
ZWFiMjBjZDY4NWQxMzEwZDEwLi5lODk1YmM2YzI2MjkxYmNjOGUzYTYyY2YxMTBkNWY2YmI4ZTU2
ODdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xz
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzR3Rr
LmNwcApAQCAtNjcsNjkgKzY3LDY5IEBAIGJvb2wgTWVkaWFDb250cm9sc0d0azo6aW5pdGlhbGl6
ZUNvbnRyb2xzKERvY3VtZW50KiBkb2N1bWVudCkKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQ
bGF5QnV0dG9uRWxlbWVudD4gcGxheUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fcGxheUJ1dHRvbiA9IHBsYXlCdXR0b24uZ2V0
KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHBsYXlCdXR0b24ucmVsZWFzZSgpLCBleGNlcHRp
b25Db2RlLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGxheUJ1dHRvbi5yZWxlYXNl
KCksIGV4Y2VwdGlvbkNvZGUsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGV4Y2VwdGlvbkNvZGUp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGlu
ZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQsIHRoaXMpOwogICAgIG1fdGltZWxpbmUgPSB0aW1lbGluZS5nZXQoKTsKLSAgICBw
YW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCB0cnVl
KTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBleGNlcHRpb25D
b2RlLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChleGNlcHRpb25Db2RlKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxl
bWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheSA9IGN1
cnJlbnRUaW1lRGlzcGxheS5nZXQoKTsKICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+aGlkZSgp
OwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBl
eGNlcHRpb25Db2RlLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVE
aXNwbGF5LnJlbGVhc2UoKSwgZXhjZXB0aW9uQ29kZSwgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAo
ZXhjZXB0aW9uQ29kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPE1lZGlh
Q29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudD4gZHVyYXRpb25EaXNwbGF5ID0gTWVk
aWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgIG1fZHVyYXRpb25EaXNwbGF5ID0gZHVyYXRpb25EaXNwbGF5LmdldCgpOwotICAgIHBhbmVs
LT5hcHBlbmRDaGlsZChkdXJhdGlvbkRpc3BsYXkucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCB0
cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZHVyYXRpb25EaXNwbGF5LnJlbGVhc2UoKSwg
ZXhjZXB0aW9uQ29kZSwgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZXhjZXB0aW9uQ29kZSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGRvY3VtZW50LT5wYWdlKCktPnRoZW1lKCkt
PnN1cHBvcnRzQ2xvc2VkQ2FwdGlvbmluZygpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25z
QnV0dG9uID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQsIHRoaXMpOwogICAgICAgICBtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uID0gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24uZ2V0KCk7Ci0gICAgICAgIHBhbmVsLT5h
cHBlbmRDaGlsZCh0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5yZWxlYXNlKCksIGV4Y2VwdGlv
bkNvZGUsIHRydWUpOworICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b24ucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCBBdHRhY2hMYXppbHkpOwogICAg
ICAgICBpZiAoZXhjZXB0aW9uQ29kZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxz
Y3JlZW5CdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKICAgICBtX2Z1bGxTY3JlZW5CdXR0b24gPSBmdWxsc2NyZWVuQnV0dG9uLmdl
dCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuQnV0dG9uLnJlbGVhc2UoKSwg
ZXhjZXB0aW9uQ29kZSwgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5C
dXR0b24ucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChl
eGNlcHRpb25Db2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8TWVkaWFD
b250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxNdXRlQnV0dG9uID0gTWVkaWFDb250
cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCB0aGlzKTsKICAgICBt
X3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZXhjZXB0aW9uQ29kZSwgdHJ1ZSk7
CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGV4Y2Vw
dGlvbkNvZGUsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGV4Y2VwdGlvbkNvZGUpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250
YWluZXJFbGVtZW50PiBzbGlkZXJDb250YWluZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJD
b250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fdm9sdW1lU2xpZGVyQ29u
dGFpbmVyID0gc2xpZGVyQ29udGFpbmVyLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChz
bGlkZXJDb250YWluZXIucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCB0cnVlKTsKKyAgICBwYW5l
bC0+YXBwZW5kQ2hpbGQoc2xpZGVyQ29udGFpbmVyLnJlbGVhc2UoKSwgZXhjZXB0aW9uQ29kZSwg
QXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZXhjZXB0aW9uQ29kZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudD4g
c2xpZGVyID0gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogICAgIG1fdm9sdW1lU2xpZGVyID0gc2xpZGVyLmdldCgpOwogICAgIG1fdm9sdW1l
U2xpZGVyLT5zZXRDbGVhck11dGVkT25Vc2VySW50ZXJhY3Rpb24odHJ1ZSk7Ci0gICAgbV92b2x1
bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHNsaWRlci5yZWxlYXNlKCksIGV4Y2VwdGlv
bkNvZGUsIHRydWUpOworICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChz
bGlkZXIucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChl
eGNlcHRpb25Db2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBtX3BhbmVsID0gcGFu
ZWwuZ2V0KCk7Ci0gICAgZW5jbG9zdXJlLT5hcHBlbmRDaGlsZChwYW5lbC5yZWxlYXNlKCksIGV4
Y2VwdGlvbkNvZGUsIHRydWUpOworICAgIGVuY2xvc3VyZS0+YXBwZW5kQ2hpbGQocGFuZWwucmVs
ZWFzZSgpLCBleGNlcHRpb25Db2RlLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChleGNlcHRpb25D
b2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBtX2VuY2xvc3VyZSA9IGVuY2xvc3Vy
ZS5nZXQoKTsKLSAgICBhcHBlbmRDaGlsZChlbmNsb3N1cmUucmVsZWFzZSgpLCBleGNlcHRpb25D
b2RlLCB0cnVlKTsKKyAgICBhcHBlbmRDaGlsZChlbmNsb3N1cmUucmVsZWFzZSgpLCBleGNlcHRp
b25Db2RlLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChleGNlcHRpb25Db2RlKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKQEAgLTIyMyw3ICsyMjMsNyBAQCB2b2lkIE1lZGlhQ29udHJvbHNHdGs6
OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXkoKQogICAgICAgICBtX3RleHREaXNwbGF5Q29udGFpbmVy
LT5zZXRNZWRpYUNvbnRyb2xsZXIobV9tZWRpYUNvbnRyb2xsZXIpOwogCiAgICAgLy8gSW5zZXJ0
IGl0IGJlZm9yZSB0aGUgZmlyc3QgY29udHJvbGxlciBlbGVtZW50IHNvIGl0IGFsd2F5cyBkaXNw
bGF5cyBiZWhpbmQgdGhlIGNvbnRyb2xzLgotICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNv
bnRhaW5lciwgbV9lbmNsb3N1cmUsIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOworICAgIGlu
c2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lciwgbV9lbmNsb3N1cmUsIEFTU0VSVF9OT19F
WENFUFRJT04sIEF0dGFjaExhemlseSk7CiAgICAgdGV4dERpc3BsYXlDb250YWluZXItPmNyZWF0
ZVN1YnRyZWVzKGRvY3VtZW50KCkpOwogICAgIHRleHREaXNwbGF5Q29udGFpbmVyLnJlbGVhc2Uo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAppbmRleCAy
MmIwYjdhZjBlY2JkOGU2NTdkZmVjNGUxOTUzYzA5MzAyNjBkNmI3Li4zYjJjNjk5MGE4YjJhY2Ix
NGFmZThjNmRmYmEzOGMyODk2N2VlNTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWUuY3BwCkBAIC03NDksNyArNzQ5LDcgQEAgUGFzc1JlZlB0cjxUZXh0VHJhY2tD
dWVCb3g+IFRleHRUcmFja0N1ZTo6Z2V0RGlzcGxheVRyZWUoY29uc3QgSW50U2l6ZSYgdmlkZW9T
aXoKIAogICAgIC8vIE5vdGU6IFRoaXMgaXMgY29udGFpbmVkIGJ5IGRlZmF1bHQgaW4gbV9hbGxE
b2N1bWVudE5vZGVzLgogICAgIG1fYWxsRG9jdW1lbnROb2Rlcy0+c2V0UHNldWRvKGFsbE5vZGVz
U2hhZG93UHNldWRvSWQoKSk7Ci0gICAgZGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKG1fYWxsRG9j
dW1lbnROb2RlcywgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CisgICAgZGlzcGxheVRyZWUt
PmFwcGVuZENoaWxkKG1fYWxsRG9jdW1lbnROb2RlcywgQVNTRVJUX05PX0VYQ0VQVElPTiwgQXR0
YWNoTGF6aWx5KTsKIAogICAgIC8vIEZJWE1FKEJVRyA3OTkxNik6IFJ1bnMgb2YgY2hpbGRyZW4g
b2YgV2ViVlRUIFJ1YnkgT2JqZWN0cyB0aGF0IGFyZSBub3QKICAgICAvLyBXZWJWVFQgUnVieSBU
ZXh0IE9iamVjdHMgbXVzdCBiZSB3cmFwcGVkIGluIGFub255bW91cyBib3hlcyB3aG9zZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191659</attachid>
            <date>2013-03-05 23:23:07 -0800</date>
            <delta_ts>2013-03-06 00:01:22 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-111503-20130305231917.patch</filename>
            <type>text/plain</type>
            <size>56405</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI3ODYyNDhkNDk3ZDdi
Njg1OWYyYWFiOGYxZDcyOGM3ZmFhYmVhMC4uZWM4NjI4NDI3YTg0ZWY1ZjdhZDQ1ZmNjZWFjYjUy
Y2E5YmMwNTkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTA1ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIHNob3VsZExhenlB
dHRhY2ggYm9vbCB3aXRoIGFuIGVudW0gZm9yIHJlYWRhYmlsaXR5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1MDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgTm8gYmVoYXZpb3JhbCBjaGFuZ2UuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9jcHAvV2ViRE9NTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJET01Ob2RlOjppbnNlcnRCZWZvcmUpOgorICAgICAgICAoV2ViRE9NTm9kZTo6cmVwbGFjZUNo
aWxkKToKKyAgICAgICAgKFdlYkRPTU5vZGU6OmFwcGVuZENoaWxkKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU05vZGVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjppbnNl
cnRCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNOb2RlOjphcHBlbmRDaGlsZCk6CisgICAgICAgICogYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Tm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OlY4Tm9kZTo6aW5zZXJ0QmVmb3JlTWV0aG9kQ3VzdG9tKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4Tm9kZTo6cmVwbGFjZUNoaWxkTWV0aG9kQ3VzdG9tKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4Tm9kZTo6YXBwZW5kQ2hpbGRNZXRob2RDdXN0b20pOgorICAgICAgICAqIGRvbS9Db250
YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5v
ZGU6OnJlcGxhY2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjphcHBl
bmRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24pOgor
ICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmg6CisgICAgICAgIChDb250YWluZXJOb2RlKToK
KyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppbnNlcnRC
ZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwbGFjZUNoaWxkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OmFwcGVuZENoaWxkKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAg
ICAgICAoTm9kZSk6CisgICAgICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICogaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sc0FwcGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNB
cHBsZTo6Y3JlYXRlQ29udHJvbHMpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJv
bHNCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNCbGFja0Jl
cnJ5OjpjcmVhdGVDb250cm9scyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
c0Nocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDaHJvbWl1bTo6
aW5pdGlhbGl6ZUNvbnRyb2xzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xz
Q2hyb21pdW1BbmRyb2lkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDaHJv
bWl1bUFuZHJvaWQ6OmNyZWF0ZUNvbnRyb2xzKToKKwogMjAxMy0wMy0wNSAgVG9ueSBHZW50aWxj
b3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENvbXBhY3RIVE1MVG9rZW4gZG9l
cyBub3QgbmVlZCBhbiBYU1NJbmZvIHBvaW50ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggODZl
ZDcyMTNlZGVkN2U1ZWE4YTc2NzIzZTI4ZGJmOTE4ZmM2Mzc1Mi4uYjU1MWY2YmE3MDY4MGU2YmIz
NmQyODRjN2FlMzA2NzBhNTgzODRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTI0Myw3ICsy
NDMsNyBAQCBfX1pON1dlYkNvcmUxM0FYT2JqZWN0Q2FjaGUyMWdBY2Nlc3NpYmlsaXR5RW5hYmxl
ZEUKIF9fWk43V2ViQ29yZTEzQVhPYmplY3RDYWNoZTIzZm9jdXNlZFVJRWxlbWVudEZvclBhZ2VF
UEtOU180UGFnZUUKIF9fWk43V2ViQ29yZTEzQVhPYmplY3RDYWNoZTQyZ0FjY2Vzc2liaWxpdHlF
bmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkRQogX19aTjdXZWJDb3JlMTNDaGFyYWN0ZXJEYXRh
N3NldERhdGFFUktOM1dURjZTdHJpbmdFUmkKLV9fWk43V2ViQ29yZTEzQ29udGFpbmVyTm9kZTEx
YXBwZW5kQ2hpbGRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVFRUVSaWIKK19fWk43V2ViQ29y
ZTEzQ29udGFpbmVyTm9kZTExYXBwZW5kQ2hpbGRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVF
RUVSaU5TXzE0QXR0YWNoQmVoYXZpb3JFCiBfX1pON1dlYkNvcmUxM0NvbnRhaW5lck5vZGUxMXJl
bW92ZUNoaWxkRVBOU180Tm9kZUVSaQogX19aTjdXZWJDb3JlMTNIVFRQSGVhZGVyTWFwQzFFdgog
X19aTjdXZWJDb3JlMTNIVFRQSGVhZGVyTWFwRDFFdgpAQCAtNzY1LDggKzc2NSw5IEBAIF9fWk43
V2ViQ29yZTRLVVJMQzFFTlNfMThQYXJzZWRVUkxTdHJpbmdUYWdFUktOM1dURjZTdHJpbmdFCiBf
X1pON1dlYkNvcmU0S1VSTEMxRVA1TlNVUkwKIF9fWk43V2ViQ29yZTRLVVJMQzFFUEs3X19DRlVS
TAogX19aTjdXZWJDb3JlNEtVUkxDMUVSS1MwX1JLTjNXVEY2U3RyaW5nRQorX19aTjdXZWJDb3Jl
NE5vZGUxMWFwcGVuZENoaWxkRU4zV1RGMTBQYXNzUmVmUHRySVMwX0VFUmlOU18xNEF0dGFjaEJl
aGF2aW9yRQorX19aTjdXZWJDb3JlNE5vZGUxMmluc2VydEJlZm9yZUVOM1dURjEwUGFzc1JlZlB0
cklTMF9FRVBTMF9SaU5TXzE0QXR0YWNoQmVoYXZpb3JFCiBfX1pON1dlYkNvcmU0Tm9kZTEwcmVu
ZGVyUmVjdEVQYgotX19aTjdXZWJDb3JlNE5vZGUxMWFwcGVuZENoaWxkRU4zV1RGMTBQYXNzUmVm
UHRySVMwX0VFUmliCiBfX1pON1dlYkNvcmU0Tm9kZTExcmVtb3ZlQ2hpbGRFUFMwX1JpCiBfX1pO
N1dlYkNvcmU0Tm9kZTE0cmVtb3ZlZExhc3RSZWZFdgogX19aTjdXZWJDb3JlNE5vZGUxNHNldFRl
eHRDb250ZW50RVJLTjNXVEY2U3RyaW5nRVJpCkBAIC0xNDIwLDcgKzE0MjEsNiBAQCBfX1pOSzdX
ZWJDb3JlNEtVUkw1cXVlcnlFdgogX19aTks3V2ViQ29yZTRLVVJMOHByb3RvY29sRXYKIF9fWk5L
N1dlYkNvcmU0S1VSTGN2UDVOU1VSTEV2CiBfX1pOSzdXZWJDb3JlNE5vZGUxMXRleHRDb250ZW50
RWIKLV9fWk43V2ViQ29yZTROb2RlMTJpbnNlcnRCZWZvcmVFTjNXVEYxMFBhc3NSZWZQdHJJUzBf
RUVQUzBfUmliCiBfX1pOSzdXZWJDb3JlNE5vZGUxM293bmVyRG9jdW1lbnRFdgogX19aTks3V2Vi
Q29yZTROb2RlMTRpc0Rlc2NlbmRhbnRPZkVQS1MwXwogX19aTks3V2ViQ29yZTROb2RlMThnZXRT
dWJyZXNvdXJjZVVSTHNFUk4zV1RGMTFMaXN0SGFzaFNldElOU180S1VSTEVMbTI1NkVOU184S1VS
TEhhc2hFRUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2NwcC9XZWJET01O
b2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2NwcC9XZWJET01Ob2RlQ3Vz
dG9tLmNwcAppbmRleCA0MWFiYjBjMjFkZjZhYjBkNjBlMWJkYWNkZWRiMjBlZjNiYTgzNmIxLi4z
YzJkZDU3ZjQ1YTBmY2FhMTU5MzI3ZTBlZGYyZDg0NmFhYWQ3ZmE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9jcHAvV2ViRE9NTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvY3BwL1dlYkRPTU5vZGVDdXN0b20uY3BwCkBAIC0zMSw3ICszMSw3
IEBAIFdlYkRPTU5vZGUgV2ViRE9NTm9kZTo6aW5zZXJ0QmVmb3JlKGNvbnN0IFdlYkRPTU5vZGUm
IG5ld0NoaWxkLCBjb25zdCBXZWJET01Ob2RlCiAgICAgICAgIHJldHVybiBXZWJET01Ob2RlKCk7
CiAKICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpZiAoaW1wbCgpLT5p
bnNlcnRCZWZvcmUodG9XZWJDb3JlKG5ld0NoaWxkKSwgdG9XZWJDb3JlKHJlZkNoaWxkKSwgZWMs
IHRydWUpKQorICAgIGlmIChpbXBsKCktPmluc2VydEJlZm9yZSh0b1dlYkNvcmUobmV3Q2hpbGQp
LCB0b1dlYkNvcmUocmVmQ2hpbGQpLCBlYywgQXR0YWNoTGF6aWx5KSkKICAgICAgICAgcmV0dXJu
IG5ld0NoaWxkOwogCiAgICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNl
cHRpb25Db2RlPihlYykpOwpAQCAtNDQsNyArNDQsNyBAQCBXZWJET01Ob2RlIFdlYkRPTU5vZGU6
OnJlcGxhY2VDaGlsZChjb25zdCBXZWJET01Ob2RlJiBuZXdDaGlsZCwgY29uc3QgV2ViRE9NTm9k
ZQogICAgICAgICByZXR1cm4gV2ViRE9NTm9kZSgpOwogCiAgICAgV2ViQ29yZTo6RXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgaWYgKGltcGwoKS0+cmVwbGFjZUNoaWxkKHRvV2ViQ29yZShuZXdD
aGlsZCksIHRvV2ViQ29yZShvbGRDaGlsZCksIGVjLCB0cnVlKSkKKyAgICBpZiAoaW1wbCgpLT5y
ZXBsYWNlQ2hpbGQodG9XZWJDb3JlKG5ld0NoaWxkKSwgdG9XZWJDb3JlKG9sZENoaWxkKSwgZWMs
IEF0dGFjaExhemlseSkpCiAgICAgICAgIHJldHVybiBvbGRDaGlsZDsKIAogICAgIHdlYkRPTVJh
aXNlRXJyb3Ioc3RhdGljX2Nhc3Q8V2ViRE9NRXhjZXB0aW9uQ29kZT4oZWMpKTsKQEAgLTcwLDcg
KzcwLDcgQEAgV2ViRE9NTm9kZSBXZWJET01Ob2RlOjphcHBlbmRDaGlsZChjb25zdCBXZWJET01O
b2RlJiBuZXdDaGlsZCkKICAgICAgICAgcmV0dXJuIFdlYkRPTU5vZGUoKTsKIAogICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGlmIChpbXBsKCktPmFwcGVuZENoaWxkKHRv
V2ViQ29yZShuZXdDaGlsZCksIGVjLCB0cnVlKSkKKyAgICBpZiAoaW1wbCgpLT5hcHBlbmRDaGls
ZCh0b1dlYkNvcmUobmV3Q2hpbGQpLCBlYywgQXR0YWNoTGF6aWx5KSkKICAgICAgICAgcmV0dXJu
IG5ld0NoaWxkOwogCiAgICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNl
cHRpb25Db2RlPihlYykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3Rv
bS5jcHAKaW5kZXggMmE5MTdmNTUyYjYxMDU4OTU4MDdhNmNkYTFiMTY5YmM1OThiYTJhNi4uOTlm
MmQ1NTIyYmNmOTBhMDQ5ZDAyNGI0NTJiNmYzZTBjOTAwNWI0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAgSlNWYWx1
ZSBKU05vZGU6Omluc2VydEJlZm9yZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgTm9kZSogaW1w
ID0gc3RhdGljX2Nhc3Q8Tm9kZSo+KGltcGwoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgYm9vbCBvayA9IGltcC0+aW5zZXJ0QmVmb3JlKHRvTm9kZShleGVjLT5hcmd1bWVudCgw
KSksIHRvTm9kZShleGVjLT5hcmd1bWVudCgxKSksIGVjLCB0cnVlKTsKKyAgICBib29sIG9rID0g
aW1wLT5pbnNlcnRCZWZvcmUodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgdG9Ob2RlKGV4ZWMt
PmFyZ3VtZW50KDEpKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIGVjKTsKICAgICBpZiAob2spCiAgICAgICAgIHJldHVybiBleGVjLT5hcmd1bWVudCgwKTsK
QEAgLTE1Niw3ICsxNTYsNyBAQCBKU1ZhbHVlIEpTTm9kZTo6cmVwbGFjZUNoaWxkKEV4ZWNTdGF0
ZSogZXhlYykKIHsKICAgICBOb2RlKiBpbXAgPSBzdGF0aWNfY2FzdDxOb2RlKj4oaW1wbCgpKTsK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wLT5yZXBsYWNlQ2hp
bGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgdG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDEpKSwg
ZWMsIHRydWUpOworICAgIGJvb2wgb2sgPSBpbXAtPnJlcGxhY2VDaGlsZCh0b05vZGUoZXhlYy0+
YXJndW1lbnQoMCkpLCB0b05vZGUoZXhlYy0+YXJndW1lbnQoMSkpLCBlYywgQXR0YWNoTGF6aWx5
KTsKICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAg
cmV0dXJuIGV4ZWMtPmFyZ3VtZW50KDEpOwpAQCAtMTc4LDcgKzE3OCw3IEBAIEpTVmFsdWUgSlNO
b2RlOjphcHBlbmRDaGlsZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgTm9kZSogaW1wID0gc3Rh
dGljX2Nhc3Q8Tm9kZSo+KGltcGwoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAg
Ym9vbCBvayA9IGltcC0+YXBwZW5kQ2hpbGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMs
IHRydWUpOworICAgIGJvb2wgb2sgPSBpbXAtPmFwcGVuZENoaWxkKHRvTm9kZShleGVjLT5hcmd1
bWVudCgwKSksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBl
Yyk7CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlQ3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVDdXN0b20uY3BwCmlu
ZGV4IGYzYTljYzQ5MDM5ZjE0OTJiYzA1NWRkNzhmZGM2ZDc2MjE3ODFkYTEuLjFjNTAwODBjZTcy
ODgzYzcxZjNjYjFkMDFhYzE4Mzc2MDNkNmIwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVDdXN0b20uY3BwCkBAIC02MCw3ICs2MCw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gVGhpcyBmdW5jdGlvbiBpcyBjdXN0b21pemVkIHRv
IHRha2UgYWR2YW50YWdlIG9mIHRoZSBvcHRpb25hbCA0dGggYXJndW1lbnQ6IHNob3VsZExhenlB
dHRhY2gKKy8vIFRoaXMgZnVuY3Rpb24gaXMgY3VzdG9taXplZCB0byB0YWtlIGFkdmFudGFnZSBv
ZiB0aGUgb3B0aW9uYWwgNHRoIGFyZ3VtZW50OiBBdHRhY2hCZWhhdmlvcgogdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4Tm9kZTo6aW5zZXJ0QmVmb3JlTWV0aG9kQ3VzdG9tKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiB7CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBhcmdz
LkhvbGRlcigpOwpAQCAtNjgsNyArNjgsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhOb2Rl
OjppbnNlcnRCZWZvcmVNZXRob2RDdXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIE5vZGUqIG5ld0NoaWxkID0gVjhOb2RlOjpIYXNJ
bnN0YW5jZShhcmdzWzBdLCBhcmdzLkdldElzb2xhdGUoKSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4
OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkpIDogMDsKICAgICBOb2RlKiByZWZD
aGlsZCA9IFY4Tm9kZTo6SGFzSW5zdGFuY2UoYXJnc1sxXSwgYXJncy5HZXRJc29sYXRlKCkpID8g
VjhOb2RlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMV0pKSA6
IDA7Ci0gICAgYm9vbCBzdWNjZXNzID0gaW1wLT5pbnNlcnRCZWZvcmUobmV3Q2hpbGQsIHJlZkNo
aWxkLCBlYywgdHJ1ZSk7CisgICAgYm9vbCBzdWNjZXNzID0gaW1wLT5pbnNlcnRCZWZvcmUobmV3
Q2hpbGQsIHJlZkNoaWxkLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAg
IHJldHVybiBzZXRET01FeGNlcHRpb24oZWMsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBpZiAo
c3VjY2VzcykKQEAgLTc2LDcgKzc2LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Tm9kZTo6
aW5zZXJ0QmVmb3JlTWV0aG9kQ3VzdG9tKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKICAgICBy
ZXR1cm4gdjhOdWxsKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAotLy8gVGhpcyBmdW5jdGlvbiBp
cyBjdXN0b21pemVkIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBvcHRpb25hbCA0dGggYXJndW1l
bnQ6IHNob3VsZExhenlBdHRhY2gKKy8vIFRoaXMgZnVuY3Rpb24gaXMgY3VzdG9taXplZCB0byB0
YWtlIGFkdmFudGFnZSBvZiB0aGUgb3B0aW9uYWwgNHRoIGFyZ3VtZW50OiBBdHRhY2hCZWhhdmlv
cgogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Tm9kZTo6cmVwbGFjZUNoaWxkTWV0aG9kQ3VzdG9t
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiBob2xkZXIgPSBhcmdzLkhvbGRlcigpOwpAQCAtODQsNyArODQsNyBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhOb2RlOjpyZXBsYWNlQ2hpbGRNZXRob2RDdXN0b20oY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIE5vZGUqIG5ld0NoaWxk
ID0gVjhOb2RlOjpIYXNJbnN0YW5jZShhcmdzWzBdLCBhcmdzLkdldElzb2xhdGUoKSkgPyBWOE5v
ZGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkpIDogMDsK
ICAgICBOb2RlKiBvbGRDaGlsZCA9IFY4Tm9kZTo6SGFzSW5zdGFuY2UoYXJnc1sxXSwgYXJncy5H
ZXRJc29sYXRlKCkpID8gVjhOb2RlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpD
YXN0KGFyZ3NbMV0pKSA6IDA7Ci0gICAgYm9vbCBzdWNjZXNzID0gaW1wLT5yZXBsYWNlQ2hpbGQo
bmV3Q2hpbGQsIG9sZENoaWxkLCBlYywgdHJ1ZSk7CisgICAgYm9vbCBzdWNjZXNzID0gaW1wLT5y
ZXBsYWNlQ2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBp
ZiAoZWMpCiAgICAgICAgIHJldHVybiBzZXRET01FeGNlcHRpb24oZWMsIGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKICAgICBpZiAoc3VjY2VzcykKQEAgLTEwNiwxNCArMTA2LDE0IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOE5vZGU6OnJlbW92ZUNoaWxkTWV0aG9kQ3VzdG9tKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiAgICAgcmV0dXJuIHY4TnVsbChhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAK
LS8vIFRoaXMgZnVuY3Rpb24gaXMgY3VzdG9taXplZCB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUg
b3B0aW9uYWwgNHRoIGFyZ3VtZW50OiBzaG91bGRMYXp5QXR0YWNoCisvLyBUaGlzIGZ1bmN0aW9u
IGlzIGN1c3RvbWl6ZWQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIG9wdGlvbmFsIDR0aCBhcmd1
bWVudDogQXR0YWNoQmVoYXZpb3IKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE5vZGU6OmFwcGVu
ZENoaWxkTWV0aG9kQ3VzdG9tKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBhcmdzLkhvbGRlcigpOwogICAgIE5vZGUqIGlt
cCA9IFY4Tm9kZTo6dG9OYXRpdmUoaG9sZGVyKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
ICAgICBOb2RlKiBuZXdDaGlsZCA9IFY4Tm9kZTo6SGFzSW5zdGFuY2UoYXJnc1swXSwgYXJncy5H
ZXRJc29sYXRlKCkpID8gVjhOb2RlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpD
YXN0KGFyZ3NbMF0pKSA6IDA7Ci0gICAgYm9vbCBzdWNjZXNzID0gaW1wLT5hcHBlbmRDaGlsZChu
ZXdDaGlsZCwgZWMsIHRydWUgKTsKKyAgICBib29sIHN1Y2Nlc3MgPSBpbXAtPmFwcGVuZENoaWxk
KG5ld0NoaWxkLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVy
biBzZXRET01FeGNlcHRpb24oZWMsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBpZiAoc3VjY2Vz
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCBiMjI5ODgxZjZlNzllZjgw
OWE1ZmViYjAyNWI5OGNhZTFmYTA1ZDI2Li43YjM4MzFiN2UyNmUwODE5N2JlMzVlZjhiNDNhMWQ1
ZjE5ZWY3ZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC02Niw3ICs2
Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIHZvaWQgZGlzcGF0Y2hDaGlsZElu
c2VydGlvbkV2ZW50cyhOb2RlKik7CiBzdGF0aWMgdm9pZCBkaXNwYXRjaENoaWxkUmVtb3ZhbEV2
ZW50cyhOb2RlKik7Ci1zdGF0aWMgdm9pZCB1cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24oQ29udGFp
bmVyTm9kZSosIE5vZGUqLCBib29sIHNob3VsZExhenlBdHRhY2gpOworc3RhdGljIHZvaWQgdXBk
YXRlVHJlZUFmdGVySW5zZXJ0aW9uKENvbnRhaW5lck5vZGUqLCBOb2RlKiwgQXR0YWNoQmVoYXZp
b3IpOwogCiB0eXBlZGVmIHBhaXI8UmVmUHRyPE5vZGU+LCB1bnNpZ25lZD4gQ2FsbGJhY2tQYXJh
bWV0ZXJzOwogdHlwZWRlZiBwYWlyPE5vZGVDYWxsYmFjaywgQ2FsbGJhY2tQYXJhbWV0ZXJzPiBD
YWxsYmFja0luZm87CkBAIC0yNDIsNyArMjQyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGNoZWNr
UmVwbGFjZUNoaWxkKENvbnRhaW5lck5vZGUqIG5ld1BhcmVudCwgTm9kZSogbmV3Q2hpbGQsIE4K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUo
UGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUm
IGVjLCBib29sIHNob3VsZExhenlBdHRhY2gpCitib29sIENvbnRhaW5lck5vZGU6Omluc2VydEJl
Zm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9u
Q29kZSYgZWMsIEF0dGFjaEJlaGF2aW9yIGF0dGFjaEJlaGF2aW9yKQogewogICAgIC8vIENoZWNr
IHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBj
YW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRz
LgpAQCAtMjU0LDcgKzI1NCw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBh
c3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNlCiAKICAgICAvLyBp
bnNlcnRCZWZvcmUobm9kZSwgMCkgaXMgZXF1aXZhbGVudCB0byBhcHBlbmRDaGlsZChub2RlKQog
ICAgIGlmICghcmVmQ2hpbGQpCi0gICAgICAgIHJldHVybiBhcHBlbmRDaGlsZChuZXdDaGlsZCwg
ZWMsIHNob3VsZExhenlBdHRhY2gpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2hpbGQobmV3Q2hp
bGQsIGVjLCBhdHRhY2hCZWhhdmlvcik7CiAKICAgICAvLyBNYWtlIHN1cmUgYWRkaW5nIHRoZSBu
ZXcgY2hpbGQgaXMgT0suCiAgICAgaWYgKCFjaGVja0FkZENoaWxkKHRoaXMsIG5ld0NoaWxkLmdl
dCgpLCBlYykpCkBAIC0zMDEsNyArMzAxLDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRC
ZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2UKIAog
ICAgICAgICBpbnNlcnRCZWZvcmVDb21tb24obmV4dC5nZXQoKSwgY2hpbGQpOwogCi0gICAgICAg
IHVwZGF0ZVRyZWVBZnRlckluc2VydGlvbih0aGlzLCBjaGlsZCwgc2hvdWxkTGF6eUF0dGFjaCk7
CisgICAgICAgIHVwZGF0ZVRyZWVBZnRlckluc2VydGlvbih0aGlzLCBjaGlsZCwgYXR0YWNoQmVo
YXZpb3IpOwogICAgIH0KIAogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVkRXZlbnQoKTsKQEAg
LTM2MCw3ICszNjAsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnBhcnNlckluc2VydEJlZm9yZShQ
YXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBuZXh0Q2hpbAogICAgIENoaWxkTm9kZUlu
c2VydGlvbk5vdGlmaWVyKHRoaXMpLm5vdGlmeShuZXdDaGlsZC5nZXQoKSk7CiB9CiAKLWJvb2wg
Q29udGFpbmVyTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5v
ZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgYm9vbCBzaG91bGRMYXp5QXR0YWNoKQor
Ym9vbCBDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGls
ZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBBdHRhY2hCZWhhdmlvciBhdHRh
Y2hCZWhhdmlvcikKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0
aW5nIi4KICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRlIGVmZmVj
dCBvZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KQEAgLTQ0MCw3ICs0NDAsNyBAQCBib29sIENv
bnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2Rl
KiBvbGRDaGlsZCwgRXhjZQogICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkVG9Db250YWluZXIo
Y2hpbGQsIHRoaXMpOwogICAgICAgICB9CiAKLSAgICAgICAgdXBkYXRlVHJlZUFmdGVySW5zZXJ0
aW9uKHRoaXMsIGNoaWxkLCBzaG91bGRMYXp5QXR0YWNoKTsKKyAgICAgICAgdXBkYXRlVHJlZUFm
dGVySW5zZXJ0aW9uKHRoaXMsIGNoaWxkLCBhdHRhY2hCZWhhdmlvcik7CiAgICAgfQogCiAgICAg
ZGlzcGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOwpAQCAtNjU0LDcgKzY1NCw3IEBAIHZvaWQg
Q29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGRyZW4oKQogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlm
aWVkRXZlbnQoKTsKIH0KIAotYm9vbCBDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZChQYXNzUmVm
UHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgYm9vbCBzaG91bGRMYXp5QXR0
YWNoKQorYm9vbCBDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5l
d0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgQXR0YWNoQmVoYXZpb3IgYXR0YWNoQmVoYXZpb3Ip
CiB7CiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IHByb3RlY3QodGhpcyk7CiAKQEAgLTcwNCw3
ICs3MDQsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9k
ZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBibwogICAgICAgICAgICAgYXBwZW5kQ2hp
bGRUb0NvbnRhaW5lcihjaGlsZCwgdGhpcyk7CiAgICAgICAgIH0KIAotICAgICAgICB1cGRhdGVU
cmVlQWZ0ZXJJbnNlcnRpb24odGhpcywgY2hpbGQsIHNob3VsZExhenlBdHRhY2gpOworICAgICAg
ICB1cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24odGhpcywgY2hpbGQsIGF0dGFjaEJlaGF2aW9yKTsK
ICAgICB9CiAKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50KCk7CkBAIC0xMTQ0LDcg
KzExNDQsNyBAQCBzdGF0aWMgdm9pZCBkaXNwYXRjaENoaWxkUmVtb3ZhbEV2ZW50cyhOb2RlKiBj
aGlsZCkKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZVRyZWVBZnRlckluc2VydGlvbihD
b250YWluZXJOb2RlKiBwYXJlbnQsIE5vZGUqIGNoaWxkLCBib29sIHNob3VsZExhenlBdHRhY2gp
CitzdGF0aWMgdm9pZCB1cGRhdGVUcmVlQWZ0ZXJJbnNlcnRpb24oQ29udGFpbmVyTm9kZSogcGFy
ZW50LCBOb2RlKiBjaGlsZCwgQXR0YWNoQmVoYXZpb3IgYXR0YWNoQmVoYXZpb3IpCiB7CiAgICAg
QVNTRVJUKHBhcmVudC0+cmVmQ291bnQoKSk7CiAgICAgQVNTRVJUKGNoaWxkLT5yZWZDb3VudCgp
KTsKQEAgLTExNTgsNyArMTE1OCw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZVRyZWVBZnRlckluc2Vy
dGlvbihDb250YWluZXJOb2RlKiBwYXJlbnQsIE5vZGUqIGNoaWxkLCBib29sIHNoCiAgICAgLy8g
RklYTUU6IEF0dGFjaG1lbnQgc2hvdWxkIGJlIHRoZSBmaXJzdCBvcGVyYXRpb24gaW4gdGhpcyBm
dW5jdGlvbiwgYnV0IHNvbWUgY29kZQogICAgIC8vIChmb3IgZXhhbXBsZSwgSFRNTEZvcm1Db250
cm9sRWxlbWVudCdzIGF1dG9mb2N1cyBzdXBwb3J0KSByZXF1aXJlcyB0aGlzIG9yZGVyaW5nLgog
ICAgIGlmIChwYXJlbnQtPmF0dGFjaGVkKCkgJiYgIWNoaWxkLT5hdHRhY2hlZCgpICYmIGNoaWxk
LT5wYXJlbnROb2RlKCkgPT0gcGFyZW50KSB7Ci0gICAgICAgIGlmIChzaG91bGRMYXp5QXR0YWNo
KQorICAgICAgICBpZiAoYXR0YWNoQmVoYXZpb3IgPT0gQXR0YWNoTGF6aWx5KQogICAgICAgICAg
ICAgY2hpbGQtPmxhenlBdHRhY2goKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY2hpbGQt
PmF0dGFjaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKaW5kZXggZmUyZWM4NWY4NGI3
YzkyNDZhOGE5MmY5ZTYzOTNiNjgxNTRlMjVlOC4uNmQ3N2QwNGU1Y2I5MDFiY2IwNjdlMDhkNjIx
ZjI3YzhiOTFjNDU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5v
ZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCkBAIC04OSwxMCAr
ODksMTAgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGNoaWxkTm9kZUNvdW50KCkgY29uc3Q7CiAg
ICAgTm9kZSogY2hpbGROb2RlKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKIAotICAgIGJvb2wgaW5z
ZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNl
cHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04sIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCA9
IGZhbHNlKTsKLSAgICBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxk
LCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OLCBi
b29sIHNob3VsZExhenlBdHRhY2ggPSBmYWxzZSk7CisgICAgYm9vbCBpbnNlcnRCZWZvcmUoUGFz
c1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmID0g
QVNTRVJUX05PX0VYQ0VQVElPTiwgQXR0YWNoQmVoYXZpb3IgPSBBdHRhY2hOb3cpOworICAgIGJv
b2wgcmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxk
LCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFjaEJlaGF2aW9yID0g
QXR0YWNoTm93KTsKICAgICBib29sIHJlbW92ZUNoaWxkKE5vZGUqIGNoaWxkLCBFeGNlcHRpb25D
b2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgIGJvb2wgYXBwZW5kQ2hpbGQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9O
LCBib29sIHNob3VsZExhenlBdHRhY2ggPSBmYWxzZSk7CisgICAgYm9vbCBhcHBlbmRDaGlsZChQ
YXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENF
UFRJT04sIEF0dGFjaEJlaGF2aW9yID0gQXR0YWNoTm93KTsKIAogICAgIC8vIFRoZXNlIG1ldGhv
ZHMgYXJlIG9ubHkgdXNlZCBkdXJpbmcgcGFyc2luZy4KICAgICAvLyBUaGV5IGRvbid0IHNlbmQg
RE9NIG11dGF0aW9uIGV2ZW50cyBvciBoYW5kbGUgcmVwYXJlbnRpbmcuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
aW5kZXggZGMxMWM5NzZiYzcxM2EzYzhjM2JlMzQwMWVjZjNhODI5ZDMyNGFkYi4uMTQ2ZjBhZTI2
MDIwNTNiYmQ2MzBmNTg2YWYyYTI0N2MyMGU2YzQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNTQw
LDIyICs1NDAsMjIgQEAgTm9kZSogTm9kZTo6Zmlyc3REZXNjZW5kYW50KCkgY29uc3QKICAgICBy
ZXR1cm4gbjsKIH0KIAotYm9vbCBOb2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBu
ZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBib29sIHNob3VsZExh
enlBdHRhY2gpCitib29sIE5vZGU6Omluc2VydEJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0No
aWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIEF0dGFjaEJlaGF2aW9yIGF0
dGFjaEJlaGF2aW9yKQogewogICAgIGlmICghaXNDb250YWluZXJOb2RlKCkpIHsKICAgICAgICAg
ZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
Ci0gICAgcmV0dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlzKS0+aW5zZXJ0QmVmb3JlKG5ld0NoaWxk
LCByZWZDaGlsZCwgZWMsIHNob3VsZExhenlBdHRhY2gpOworICAgIHJldHVybiB0b0NvbnRhaW5l
ck5vZGUodGhpcyktPmluc2VydEJlZm9yZShuZXdDaGlsZCwgcmVmQ2hpbGQsIGVjLCBhdHRhY2hC
ZWhhdmlvcik7CiB9CiAKLWJvb2wgTm9kZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4g
bmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgYm9vbCBzaG91bGRM
YXp5QXR0YWNoKQorYm9vbCBOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdD
aGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBBdHRhY2hCZWhhdmlvciBh
dHRhY2hCZWhhdmlvcikKIHsKICAgICBpZiAoIWlzQ29udGFpbmVyTm9kZSgpKSB7CiAgICAgICAg
IGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQotICAgIHJldHVybiB0b0NvbnRhaW5lck5vZGUodGhpcyktPnJlcGxhY2VDaGlsZChuZXdDaGls
ZCwgb2xkQ2hpbGQsIGVjLCBzaG91bGRMYXp5QXR0YWNoKTsKKyAgICByZXR1cm4gdG9Db250YWlu
ZXJOb2RlKHRoaXMpLT5yZXBsYWNlQ2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkLCBlYywgYXR0YWNo
QmVoYXZpb3IpOwogfQogCiBib29sIE5vZGU6OnJlbW92ZUNoaWxkKE5vZGUqIG9sZENoaWxkLCBF
eGNlcHRpb25Db2RlJiBlYykKQEAgLTU2NywxMyArNTY3LDEzIEBAIGJvb2wgTm9kZTo6cmVtb3Zl
Q2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHJldHVybiB0b0Nv
bnRhaW5lck5vZGUodGhpcyktPnJlbW92ZUNoaWxkKG9sZENoaWxkLCBlYyk7CiB9CiAKLWJvb2wg
Tm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29k
ZSYgZWMsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCkKK2Jvb2wgTm9kZTo6YXBwZW5kQ2hpbGQoUGFz
c1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIEF0dGFjaEJlaGF2aW9y
IGF0dGFjaEJlaGF2aW9yKQogewogICAgIGlmICghaXNDb250YWluZXJOb2RlKCkpIHsKICAgICAg
ICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9Ci0gICAgcmV0dXJuIHRvQ29udGFpbmVyTm9kZSh0aGlzKS0+YXBwZW5kQ2hpbGQobmV3Q2hp
bGQsIGVjLCBzaG91bGRMYXp5QXR0YWNoKTsKKyAgICByZXR1cm4gdG9Db250YWluZXJOb2RlKHRo
aXMpLT5hcHBlbmRDaGlsZChuZXdDaGlsZCwgZWMsIGF0dGFjaEJlaGF2aW9yKTsKIH0KIAogdm9p
ZCBOb2RlOjpyZW1vdmUoRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA3MTBjMWM2
ZjMyNzFjY2IyMzJlYjJlM2ZkNTM5MTBkN2E3NDI5YWI3Li5mNWY3MzkwZGE0ODg5ODk3YWJlMmI1
YTFjOTIzNGVhZmIzOTkxNGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTEyNSw2ICsxMjUsMTEgQEAgcHJp
dmF0ZToKICAgICBSZW5kZXJPYmplY3QqIG1fcmVuZGVyZXI7CiB9OwogCitlbnVtIEF0dGFjaEJl
aGF2aW9yIHsKKyAgICBBdHRhY2hOb3csCisgICAgQXR0YWNoTGF6aWx5LAorfTsKKwogY2xhc3Mg
Tm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGlj
IFRyZWVTaGFyZWQ8Tm9kZT4gewogICAgIGZyaWVuZCBjbGFzcyBEb2N1bWVudDsKICAgICBmcmll
bmQgY2xhc3MgVHJlZVNjb3BlOwpAQCAtMTkzLDEwICsxOTgsMTAgQEAgcHVibGljOgogICAgIC8v
IFRoZXNlIHNob3VsZCBhbGwgYWN0dWFsbHkgcmV0dXJuIGEgbm9kZSwgYnV0IHRoaXMgaXMgb25s
eSBpbXBvcnRhbnQgZm9yIGxhbmd1YWdlIGJpbmRpbmdzLAogICAgIC8vIHdoaWNoIHdpbGwgYWxy
ZWFkeSBrbm93IGFuZCBob2xkIGEgcmVmIG9uIHRoZSByaWdodCBub2RlIHRvIHJldHVybi4gUmV0
dXJuaW5nIGJvb2wgYWxsb3dzCiAgICAgLy8gdGhlc2UgbWV0aG9kcyB0byBiZSBtb3JlIGVmZmlj
aWVudCBzaW5jZSB0aGV5IGRvbid0IG5lZWQgdG8gcmV0dXJuIGEgcmVmCi0gICAgYm9vbCBpbnNl
cnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2Vw
dGlvbkNvZGUmLCBib29sIHNob3VsZExhenlBdHRhY2ggPSBmYWxzZSk7Ci0gICAgYm9vbCByZXBs
YWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2Vw
dGlvbkNvZGUmLCBib29sIHNob3VsZExhenlBdHRhY2ggPSBmYWxzZSk7CisgICAgYm9vbCBpbnNl
cnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2Vw
dGlvbkNvZGUmLCBBdHRhY2hCZWhhdmlvciA9IEF0dGFjaE5vdyk7CisgICAgYm9vbCByZXBsYWNl
Q2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlv
bkNvZGUmLCBBdHRhY2hCZWhhdmlvciA9IEF0dGFjaE5vdyk7CiAgICAgYm9vbCByZW1vdmVDaGls
ZChOb2RlKiBjaGlsZCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIGJvb2wgYXBwZW5kQ2hpbGQoUGFz
c1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIGJvb2wgc2hvdWxkTGF6eUF0
dGFjaCA9IGZhbHNlKTsKKyAgICBib29sIGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmLCBBdHRhY2hCZWhhdmlvciA9IEF0dGFjaE5vdyk7CiAKICAg
ICB2b2lkIHJlbW92ZShFeGNlcHRpb25Db2RlJik7CiAgICAgYm9vbCBoYXNDaGlsZE5vZGVzKCkg
Y29uc3QgeyByZXR1cm4gZmlyc3RDaGlsZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDVmMjBmNGUwYzg0Y2EzYTE0Mzg0N2Y4MGVlOWNl
MWM2YWI3NjhlYTQuLjZkMmNmMjNmNzcyMWE1MDYxN2UzZDdjZGViN2M0YTMxYzc5MTI3YTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC02MCw3
ICs2MCw3IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIGlmICghbV9w
YXJlbnQtPnJlbmRlcmVySXNFZGl0YWJsZSgpICYmIG1fcGFyZW50LT5hdHRhY2hlZCgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdldCgpLCBJ
R05PUkVfRVhDRVBUSU9OLCB0cnVlIC8qIGxhenlBdHRhY2ggKi8pOworICAgIG1fcGFyZW50LT5h
cHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04sIEF0dGFjaExhemlseSk7
CiAKICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAg
ICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9i
amVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4IDc2Y2ZhNTQ3ZDcwNDM0MmZmNzdi
ZTkzMzU3NjkwZDViOWI2NjA3NDcuLjdlZGU5OTkxMWVmZDMzNDVlOTkyODFhMmNkMjQxMzU4N2Fj
ZmQyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmRvQXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKHBhcmVudC0+aXNDb250
ZW50RWRpdGFibGUoTm9kZTo6VXNlclNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFibGUpKTsKIAot
ICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQu
Z2V0KCksIElHTk9SRV9FWENFUFRJT04sIHRydWUgLyogbGF6eUF0dGFjaCAqLyk7CisgICAgcGFy
ZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwg
SUdOT1JFX0VYQ0VQVElPTiwgQXR0YWNoTGF6aWx5KTsKIAogICAgIGlmIChBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICBkb2N1bWVudCgpLT5heE9iamVjdENh
Y2hlKCktPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggNWM2
N2RiYzU4MGI1YTczYTcwNzIxN2MxMWEyZDE0NmQ0MzI4NTU1MS4uYTIxMjc4ODVmNWM5ZDU3N2Jj
YzFkOGU4OTllZTFhYTUzZTdlY2NmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFp
bHNFbGVtZW50LmNwcApAQCAtMTEyLDggKzExMiw4IEBAIFJlbmRlck9iamVjdCogSFRNTERldGFp
bHNFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxl
CiAKIHZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNo
YWRvd1Jvb3QqIHJvb3QpCiB7Ci0gICAgcm9vdC0+YXBwZW5kQ2hpbGQoRGV0YWlsc1N1bW1hcnlF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOwot
ICAgIHJvb3QtPmFwcGVuZENoaWxkKERldGFpbHNDb250ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKKyAgICByb290LT5hcHBlbmRDaGls
ZChEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VY
Q0VQVElPTiwgQXR0YWNoTGF6aWx5KTsKKyAgICByb290LT5hcHBlbmRDaGlsZChEZXRhaWxzQ29u
dGVudEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgQXR0
YWNoTGF6aWx5KTsKIH0KIAogRWxlbWVudCogSFRNTERldGFpbHNFbGVtZW50OjpmaW5kTWFpblN1
bW1hcnkoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFy
eUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3Bw
CmluZGV4IDgwMGFlMWJmMzMzNTk3OGRlMjY4M2FjYmVjNzE0NmYyMDkyMmQ1OTMuLmI5NzgyNzlk
YjdkNjcwY2M5YTJmMzY5YWYwMThlZjE3M2QwYTUzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKQEAgLTc4LDggKzc4LDggQEAgYm9vbCBIVE1MU3VtbWFy
eUVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZVJlbmRlcmluZ0Nv
bnRleHQmIGMKIAogdm9pZCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRv
d1Jvb3QoU2hhZG93Um9vdCogcm9vdCkKIHsKLSAgICByb290LT5hcHBlbmRDaGlsZChEZXRhaWxz
TWFya2VyQ29udHJvbDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0
cnVlKTsKLSAgICByb290LT5hcHBlbmRDaGlsZChTdW1tYXJ5Q29udGVudEVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CisgICAgcm9vdC0+YXBw
ZW5kQ2hpbGQoRGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJU
X05PX0VYQ0VQVElPTiwgQXR0YWNoTGF6aWx5KTsKKyAgICByb290LT5hcHBlbmRDaGlsZChTdW1t
YXJ5Q29udGVudEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElP
TiwgQXR0YWNoTGF6aWx5KTsKIH0KIAogSFRNTERldGFpbHNFbGVtZW50KiBIVE1MU3VtbWFyeUVs
ZW1lbnQ6OmRldGFpbHNFbGVtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCAyMjRkNDM1N2FiNmM0M2I4
N2M5MWNmYTU0ODBkMTVlNzAzZjY1OTIxLi43NzVjMDc3NmRkN2E1YjNhNzc0Y2MyMzlmMTRjZmYw
NWZiNWVhNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwCkBAIC0xMTg1LDcgKzExODUsNyBAQCB2b2lkIE1lZGlhQ29udHJv
bFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZVN1YnRyZWVzKERvY3VtZW50KiBkb2N1
bWVudCkKIHsKICAgICBtX2N1ZUNvbnRhaW5lciA9IEhUTUxFbGVtZW50OjpjcmVhdGUoc3BhblRh
ZywgZG9jdW1lbnQpOwogICAgIG1fY3VlQ29udGFpbmVyLT5zZXRQc2V1ZG8oVGV4dFRyYWNrQ3Vl
OjpjdWVTaGFkb3dQc2V1ZG9JZCgpKTsKLSAgICBhcHBlbmRDaGlsZChtX2N1ZUNvbnRhaW5lciwg
QVNTRVJUX05PX0VYQ0VQVElPTiwgZmFsc2UpOworICAgIGFwcGVuZENoaWxkKG1fY3VlQ29udGFp
bmVyLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hOb3cpOwogfQogCiBQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFj
a0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCkBAIC0xMjczLDcg
KzEyNzMsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVw
ZGF0ZURpc3BsYXkoKQogICAgICAgICBSZWZQdHI8VGV4dFRyYWNrQ3VlQm94PiBkaXNwbGF5Qm94
ID0gY3VlLT5nZXREaXNwbGF5VHJlZShtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpKTsKICAgICAg
ICAgaWYgKGRpc3BsYXlCb3gtPmhhc0NoaWxkTm9kZXMoKSAmJiAhY29udGFpbnMoc3RhdGljX2Nh
c3Q8Tm9kZSo+KGRpc3BsYXlCb3guZ2V0KCkpKSkKICAgICAgICAgICAgIC8vIE5vdGU6IHRoZSBk
aXNwbGF5IHRyZWUgb2YgYSBjdWUgaXMgcmVtb3ZlZCB3aGVuIHRoZSBhY3RpdmUgZmxhZyBvZiB0
aGUgY3VlIGlzIHVuc2V0LgotICAgICAgICAgICAgbV9jdWVDb250YWluZXItPmFwcGVuZENoaWxk
KGRpc3BsYXlCb3gsIEFTU0VSVF9OT19FWENFUFRJT04sIGZhbHNlKTsKKyAgICAgICAgICAgIG1f
Y3VlQ29udGFpbmVyLT5hcHBlbmRDaGlsZChkaXNwbGF5Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9O
LCBBdHRhY2hOb3cpOwogICAgIH0KIAogICAgIC8vIDExLiBSZXR1cm4gb3V0cHV0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAppbmRleCAzODE0ZGVkMTZi
MGYwMTQ3ZDJjM2RjYzNjNmE3ZDY4ODg4OGY3YmVjLi5jZWM5YmM1MzE1N2UyODRkNWNiNzNjMDFk
YmUxNWMzOWMwNzdhNjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xzLmNwcApAQCAtMzgxLDcgKzM4MSw3IEBAIHZvaWQgTWVkaWFDb250cm9sczo6Y3JlYXRl
VGV4dFRyYWNrRGlzcGxheSgpCiAgICAgICAgIG1fdGV4dERpc3BsYXlDb250YWluZXItPnNldE1l
ZGlhQ29udHJvbGxlcihtX21lZGlhQ29udHJvbGxlcik7CiAKICAgICAvLyBJbnNlcnQgaXQgYmVm
b3JlIHRoZSBmaXJzdCBjb250cm9sbGVyIGVsZW1lbnQgc28gaXQgYWx3YXlzIGRpc3BsYXlzIGJl
aGluZCB0aGUgY29udHJvbHMuCi0gICAgaW5zZXJ0QmVmb3JlKHRleHREaXNwbGF5Q29udGFpbmVy
LCBtX3BhbmVsLCBJR05PUkVfRVhDRVBUSU9OLCB0cnVlKTsKKyAgICBpbnNlcnRCZWZvcmUodGV4
dERpc3BsYXlDb250YWluZXIsIG1fcGFuZWwsIElHTk9SRV9FWENFUFRJT04sIEF0dGFjaExhemls
eSk7CiAgICAgdGV4dERpc3BsYXlDb250YWluZXItPmNyZWF0ZVN1YnRyZWVzKGRvY3VtZW50KCkp
OwogICAgIHRleHREaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCmluZGV4IDljYTJkZTc1
OTFlOTQ4MmE2OWE1ZDViMGMxMDIzZTllNTczMjMxZGQuLjM5NmU0OWQyZDc5ZTU5NDZlNGNjNDEz
MDRhY2I1N2E5MjFhZTVmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbHNBcHBsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sc0FwcGxlLmNwcApAQCAtODQsMjYgKzg0LDI2IEBAIFBhc3NSZWZQdHI8TWVk
aWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3Vt
ZW50KiBkb2N1CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4g
cmV3aW5kQnV0dG9uID0gTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKICAgICBjb250cm9scy0+bV9yZXdpbmRCdXR0b24gPSByZXdpbmRCdXR0b24uZ2V0
KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHJld2luZEJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0
cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocmV3aW5kQnV0dG9uLnJlbGVhc2UoKSwgZWMs
IEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4gcGxheUJ1dHRvbiA9IE1lZGlhQ29u
dHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5t
X3BsYXlCdXR0b24gPSBwbGF5QnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChw
bGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChw
bGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAg
ICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1l
QnV0dG9uRWxlbWVudD4gcmV0dXJuVG9SZWFsdGltZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFJldHVy
blRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xz
LT5tX3JldHVyblRvUmVhbFRpbWVCdXR0b24gPSByZXR1cm5Ub1JlYWx0aW1lQnV0dG9uLmdldCgp
OwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChyZXR1cm5Ub1JlYWx0aW1lQnV0dG9uLnJlbGVhc2Uo
KSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChyZXR1cm5Ub1JlYWx0aW1lQnV0
dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIGlmIChkb2N1bWVudC0+cGFnZSgpLT50aGVtZSgpLT51c2VzTWVkaWFD
b250cm9sU3RhdHVzRGlzcGxheSgpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTdGF0
dXNEaXNwbGF5RWxlbWVudD4gc3RhdHVzRGlzcGxheSA9IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3Bs
YXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgICAgICBjb250cm9scy0+bV9zdGF0dXNE
aXNwbGF5ID0gc3RhdHVzRGlzcGxheS5nZXQoKTsKLSAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxk
KHN0YXR1c0Rpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIHBhbmVsLT5hcHBl
bmRDaGlsZChzdGF0dXNEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAg
ICAgIGlmIChlYykKICAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTExMiwzOCArMTEy
LDM4IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xzQXBwbGU6
OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50KiBkb2N1CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9s
Q3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250
cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250
cm9scy0+bV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkuZ2V0KCk7Ci0g
ICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxl
YXNlKCksIGVjLCB0cnVlKTsKKyAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY3Vy
cmVudFRpbWVEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVs
ZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICBjb250cm9scy0+bV90aW1lbGluZSA9IHRpbWVs
aW5lLmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5y
ZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
dGltZWxpbmUucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAg
ICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNw
bGF5RWxlbWVudD4gdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVtYWlu
aW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fdGlt
ZVJlbWFpbmluZ0Rpc3BsYXkgPSB0aW1lUmVtYWluaW5nRGlzcGxheS5nZXQoKTsKLSAgICB0aW1l
bGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZVJlbWFpbmluZ0Rpc3BsYXkucmVsZWFzZSgp
LCBlYywgdHJ1ZSk7CisgICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVSZW1h
aW5pbmdEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQog
ICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVyID0g
dGltZWxpbmVDb250YWluZXIuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5l
Q29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0
aW1lbGluZUNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChl
YykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBu
ZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+CiAgICAgUmVmUHRyPE1lZGlhQ29udHJv
bFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gc2Vla0JhY2tCdXR0b24gPSBNZWRpYUNvbnRyb2xTZWVr
QmFja0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fc2Vl
a0JhY2tCdXR0b24gPSBzZWVrQmFja0J1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hp
bGQoc2Vla0JhY2tCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVu
ZENoaWxkKHNlZWtCYWNrQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAg
aWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3
aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KICAgICBSZWZQdHI8TWVkaWFD
b250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBzZWVrRm9yd2FyZEJ1dHRvbiA9IE1lZGlh
Q29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBj
b250cm9scy0+bV9zZWVrRm9yd2FyZEJ1dHRvbiA9IHNlZWtGb3J3YXJkQnV0dG9uLmdldCgpOwot
ICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzZWVrRm9yd2FyZEJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0
cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2Vla0ZvcndhcmRCdXR0b24ucmVsZWFzZSgp
LCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCkBA
IC0xNTIsMTggKzE1MiwxOCBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gTWVkaWFD
b250cm9sc0FwcGxlOjpjcmVhdGVDb250cm9scyhEb2N1bWVudCogZG9jdQogCiAgICAgICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IGNsb3NlZENh
cHRpb25zVHJhY2tMaXN0ID0gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICAgICAgY29udHJvbHMt
Pm1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBjbG9zZWRDYXB0aW9uc1RyYWNrTGlzdC5nZXQo
KTsKLSAgICAgICAgY2xvc2VkQ2FwdGlvbnNDb250YWluZXItPmFwcGVuZENoaWxkKGNsb3NlZENh
cHRpb25zVHJhY2tMaXN0LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgICAgICBjbG9zZWRDYXB0
aW9uc0NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QucmVsZWFz
ZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25z
QnV0dG9uRWxlbWVudD4gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSBNZWRpYUNvbnRyb2xU
b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJv
bHMuZ2V0KCkpOwogICAgICAgICBjb250cm9scy0+bV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRv
biA9IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLmdldCgpOwotICAgICAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7
CisgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5y
ZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAg
ICByZXR1cm4gMDsKIAogICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5l
ciA9IGNsb3NlZENhcHRpb25zQ29udGFpbmVyLmdldCgpOwotICAgICAgICBwYW5lbC0+YXBwZW5k
Q2hpbGQoY2xvc2VkQ2FwdGlvbnNDb250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAg
ICAgIHBhbmVsLT5hcHBlbmRDaGlsZChjbG9zZWRDYXB0aW9uc0NvbnRhaW5lci5yZWxlYXNlKCks
IGVjLCBBdHRhY2hMYXppbHkpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4g
MDsKICAgICB9CkBAIC0xNzEsNyArMTcxLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBw
bGU+IE1lZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJvbHMoRG9jdW1lbnQqIGRvY3UKICAg
ICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2Iv
NTcxNjM+CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBm
dWxsU2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxT
Y3JlZW5CdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5CdXR0
b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3Jl
ZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKIAogICAgIC8vIFRoZSBtdXRl
IGJ1dHRvbiBhbmQgdGhlIHNsaWRlciBlbGVtZW50IHNob3VsZCBiZSBpbiB0aGUgc2FtZSBkaXYu
CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIg
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKQEAgLTE4MSw3ICsxODEsNyBAQCBQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gTWVkaWFDb250cm9sc0FwcGxlOjpjcmVhdGVD
b250cm9scyhEb2N1bWVudCogZG9jdQogCiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5l
bFZvbHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xp
ZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAgY29udHJvbHMtPm1fdm9sdW1l
U2xpZGVyID0gc2xpZGVyLmdldCgpOwotICAgICAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFw
cGVuZENoaWxkKHNsaWRlci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICAgICAgdm9sdW1lU2xp
ZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChzbGlkZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6
aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTE4OSw0
OCArMTg5LDQ4IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBNZWRpYUNvbnRyb2xz
QXBwbGU6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50KiBkb2N1CiAgICAgICAgIC8vIEl0J3MgaW1w
b3J0YW50IG9ubHkgd2hlbiB0aGUgdm9sdW1lIGJhciBpcyBkaXNwbGF5ZWQgYmVsb3cgdGhlIGNv
bnRyb2xzLgogICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRv
bkVsZW1lbnQ+IHZvbHVtZVNsaWRlck11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAgY29udHJvbHMt
Pm1fdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IHZvbHVtZVNsaWRlck11dGVCdXR0b24uZ2V0KCk7
Ci0gICAgICAgIHZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodm9sdW1lU2xpZGVy
TXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICAgICAgdm9sdW1lU2xpZGVyQ29u
dGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMs
IEF0dGFjaExhemlseSk7CiAKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gdm9sdW1lU2xp
ZGVyQ29udGFpbmVyLmdldCgpOwotICAgICAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIt
PmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlckNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsK
KyAgICAgICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVT
bGlkZXJDb250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYg
KGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJv
bFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkp
OwogICAgIGNvbnRyb2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQo
KTsKLSAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKHBhbmVsTXV0
ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbFZvbHVtZUNvbnRyb2xDb250
YWluZXItPmFwcGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hM
YXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQocGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLCBlYywgdHJ1ZSk7CisgICAgcGFu
ZWwtPmFwcGVuZENoaWxkKHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lciwgZWMsIEF0dGFjaExh
emlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIEZJWE1FOiBP
bmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxT
Y3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0
dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVu
TWluVm9sdW1lQnV0dG9uID0gZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5nZXQoKTsKLSAgICBw
YW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbi5yZWxlYXNlKCksIGVj
LCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRv
bi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVs
ZW1lbnQ+IGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIgPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxs
U2NyZWVuVm9sdW1lU2xpZGVyID0gZnVsbFNjcmVlblZvbHVtZVNsaWRlci5nZXQoKTsKLSAgICBw
YW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlblZvbHVtZVNsaWRlci5yZWxlYXNlKCksIGVjLCB0
cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlblZvbHVtZVNsaWRlci5yZWxl
YXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1l
bnQ+IGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lTWF4QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9m
dWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uID0gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5nZXQo
KTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5yZWxl
YXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbk1heFZv
bHVtZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAg
ICAgICAgcmV0dXJuIDA7CiAKICAgICBjb250cm9scy0+bV9wYW5lbCA9IHBhbmVsLmdldCgpOwot
ICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChwYW5lbC5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAg
ICBjb250cm9scy0+YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQmxhY2tCZXJyeS5jcHAKaW5kZXggZmU3
MTU4MzZjMDkwNzgxZjEyMmE1M2Q3MjY3NDU0NmQ4MDM2Yzc5Yi4uYWZmMGRiZjcyYmJlYjU4N2U1
Mzc0MmY2Mzk3YWY1NTdjZTEwNzkxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sc0JsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbHNCbGFja0JlcnJ5LmNwcApAQCAtNjQ5LDcgKzY0OSw3IEBA
IFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0JsYWNrQmVycnk+IE1lZGlhQ29udHJvbHNCbGFja0Jl
cnJ5OjpjcmVhdGVDb250cm9scyhEb2N1CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1
dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9wbGF5QnV0dG9uID0gcGxheUJ1dHRv
bi5nZXQoKTsKLSAgICBlbWJlZFBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2Uo
KSwgZWMsIHRydWUpOworICAgIGVtYmVkUGFuZWwtPmFwcGVuZENoaWxkKHBsYXlCdXR0b24ucmVs
ZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAw
OwogCkBAIC02NTcsNyArNjU3LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQmxhY2tCZXJy
eT4gTWVkaWFDb250cm9sc0JsYWNrQmVycnk6OmNyZWF0ZUNvbnRyb2xzKERvY3UKIAogICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9s
VGltZWxpbmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICBj
b250cm9scy0+bV90aW1lbGluZSA9IHRpbWVsaW5lLmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFp
bmVyLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICB0aW1l
bGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBlYywgQXR0YWNo
TGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC02NjUsMjkgKzY2
NSwyOSBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNCbGFja0JlcnJ5PiBNZWRpYUNvbnRyb2xz
QmxhY2tCZXJyeTo6Y3JlYXRlQ29udHJvbHMoRG9jdQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJv
bEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29u
dHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29u
dHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5LmdldCgpOwot
ICAgIHRpbWVEaXNwbGF5Q29udGFpbmVyLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXku
cmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgdGltZURpc3BsYXlDb250YWluZXItPmFwcGVuZENo
aWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAg
IGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGlt
ZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiB0aW1lUmVtYWluaW5nRGlzcGxheSA9IE1lZGlhQ29u
dHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBj
b250cm9scy0+bV90aW1lUmVtYWluaW5nRGlzcGxheSA9IHRpbWVSZW1haW5pbmdEaXNwbGF5Lmdl
dCgpOwotICAgIHRpbWVEaXNwbGF5Q29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lUmVtYWluaW5n
RGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICB0aW1lRGlzcGxheUNvbnRhaW5lci0+
YXBwZW5kQ2hpbGQodGltZVJlbWFpbmluZ0Rpc3BsYXkucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6
aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY29udHJvbHMtPm1f
dGltZURpc3BsYXlDb250YWluZXIgPSB0aW1lRGlzcGxheUNvbnRhaW5lci5nZXQoKTsKLSAgICB0
aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZURpc3BsYXlDb250YWluZXIucmVsZWFz
ZSgpLCBlYywgdHJ1ZSk7CisgICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVE
aXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVy
ID0gdGltZWxpbmVDb250YWluZXIuZ2V0KCk7Ci0gICAgZW1iZWRQYW5lbC0+YXBwZW5kQ2hpbGQo
dGltZWxpbmVDb250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgZW1iZWRQYW5lbC0+
YXBwZW5kQ2hpbGQodGltZWxpbmVDb250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBmdWxsU2NyZWVuQnV0dG9uID0gTWVkaWFDb250
cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJv
bHMtPm1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxTY3JlZW5CdXR0b24uZ2V0KCk7Ci0gICAgZW1i
ZWRQYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVl
KTsKKyAgICBlbWJlZFBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuQnV0dG9uLnJlbGVhc2Uo
KSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIApA
QCAtNjk5LDIxICs2OTksMjEgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeT4g
TWVkaWFDb250cm9sc0JsYWNrQmVycnk6OmNyZWF0ZUNvbnRyb2xzKERvY3UKIAogICAgICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBNZWRp
YUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAg
ICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5nZXQoKTsKLSAgICAgICAgdm9s
dW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChzbGlkZXIucmVsZWFzZSgpLCBlYywgdHJ1
ZSk7CisgICAgICAgIHZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoc2xpZGVyLnJl
bGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgICAgIGlmIChlYykKICAgICAgICAgICAg
IHJldHVybiAwOwogCiAgICAgICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlckNvbnRhaW5lciA9
IHZvbHVtZVNsaWRlckNvbnRhaW5lci5nZXQoKTsKLSAgICAgICAgdm9sdW1lQ29udHJvbENvbnRh
aW5lci0+YXBwZW5kQ2hpbGQodm9sdW1lU2xpZGVyQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIHRy
dWUpOworICAgICAgICB2b2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVT
bGlkZXJDb250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYg
KGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xB
dWRpb011dGVCdXR0b25FbGVtZW50PiBtdXRlQnV0dG9uID0gTWVkaWFDb250cm9sQXVkaW9NdXRl
QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CiAgICAgICAg
IGNvbnRyb2xzLT5tX211dGVCdXR0b24gPSBtdXRlQnV0dG9uLmdldCgpOwotICAgICAgICB2b2x1
bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZChtdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMs
IHRydWUpOworICAgICAgICB2b2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZChtdXRl
QnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgICAgIGlmIChlYykKICAg
ICAgICAgICAgIHJldHVybiAwOwogCi0gICAgICAgIGVtYmVkUGFuZWwtPmFwcGVuZENoaWxkKHZv
bHVtZUNvbnRyb2xDb250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgICAgIGVtYmVk
UGFuZWwtPmFwcGVuZENoaWxkKHZvbHVtZUNvbnRyb2xDb250YWluZXIucmVsZWFzZSgpLCBlYywg
QXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQpAQCAtNzIyLDcgKzcyMiw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0JsYWNrQmVy
cnk+IE1lZGlhQ29udHJvbHNCbGFja0JlcnJ5OjpjcmVhdGVDb250cm9scyhEb2N1CiAKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblRpbWVsaW5lRWxlbWVudD4gZnVsbHNjcmVlblRp
bWVsaW5lID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50LCBjb250cm9scy5nZXQoKSk7CiAgICAgY29udHJvbHMtPm1fZnVsbHNjcmVlblRpbWVs
aW5lID0gZnVsbHNjcmVlblRpbWVsaW5lLmdldCgpOwotICAgIGZ1bGxzY3JlZW5UaW1lbGluZUNv
bnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlblRpbWVsaW5lLnJlbGVhc2UoKSwgZWMsIHRy
dWUpOworICAgIGZ1bGxzY3JlZW5UaW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNj
cmVlblRpbWVsaW5lLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQog
ICAgICAgICByZXR1cm4gMDsKIApAQCAtNzMwLDIzICs3MzAsMjMgQEAgUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xzQmxhY2tCZXJyeT4gTWVkaWFDb250cm9sc0JsYWNrQmVycnk6OmNyZWF0ZUNvbnRy
b2xzKERvY3UKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQ3VycmVudFRpbWVE
aXNwbGF5RWxlbWVudD4gZnVsbHNjcmVlbkN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5DdXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgIGNvbnRyb2xzLT5tX2Z1bGxzY3JlZW5DdXJyZW50VGltZURpc3BsYXkgPSBmdWxsc2NyZWVu
Q3VycmVudFRpbWVEaXNwbGF5LmdldCgpOwotICAgIGZ1bGxzY3JlZW5UaW1lRGlzcGxheUNvbnRh
aW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlbkN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCks
IGVjLCB0cnVlKTsKKyAgICBmdWxsc2NyZWVuVGltZURpc3BsYXlDb250YWluZXItPmFwcGVuZENo
aWxkKGZ1bGxzY3JlZW5DdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6
aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5UaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IGZ1bGxzY3JlZW5U
aW1lUmVtYWluaW5nRGlzcGxheSA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5UaW1lUmVtYWluaW5n
RGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fZnVsbHNj
cmVlblRpbWVSZW1haW5pbmdEaXNwbGF5ID0gZnVsbHNjcmVlblRpbWVSZW1haW5pbmdEaXNwbGF5
LmdldCgpOwotICAgIGZ1bGxzY3JlZW5UaW1lRGlzcGxheUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
ZnVsbHNjcmVlblRpbWVSZW1haW5pbmdEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAg
IGZ1bGxzY3JlZW5UaW1lRGlzcGxheUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlblRp
bWVSZW1haW5pbmdEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbnRyb2xzLT5tX2Z1bGxzY3JlZW5UaW1l
RGlzcGxheUNvbnRhaW5lciA9IGZ1bGxzY3JlZW5UaW1lRGlzcGxheUNvbnRhaW5lci5nZXQoKTsK
LSAgICBmdWxsc2NyZWVuVGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5U
aW1lRGlzcGxheUNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBmdWxsc2NyZWVu
VGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5UaW1lRGlzcGxheUNvbnRh
aW5lci5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuIDA7CiAKICAgICBjb250cm9scy0+bV9mdWxsc2NyZWVuVGltZWxpbmVDb250YWluZXIg
PSBmdWxsc2NyZWVuVGltZWxpbmVDb250YWluZXIuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENo
aWxkKGZ1bGxzY3JlZW5UaW1lbGluZUNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbHNjcmVlblRpbWVsaW5lQ29udGFpbmVyLnJlbGVhc2Uo
KSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIApA
QCAtNzU3LDE1ICs3NTcsMTUgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQmxhY2tCZXJyeT4g
TWVkaWFDb250cm9sc0JsYWNrQmVycnk6OmNyZWF0ZUNvbnRyb2xzKERvY3UKICAgICBjb250cm9s
cy0+bV9mdWxsU2NyZWVuQnV0dG9uQ29udGFpbmVyID0gZnVsbFNjcmVlbkJ1dHRvbkNvbnRhaW5l
ci5nZXQoKTsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkZ1bGxzY3JlZW5CdXR0
b25FbGVtZW50PiBmdWxsc2NyZWVuRnVsbFNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5GdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250
cm9scy0+bV9mdWxsc2NyZWVuRnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxzY3JlZW5GdWxsU2NyZWVu
QnV0dG9uLmdldCgpOwotICAgIGZ1bGxTY3JlZW5CdXR0b25Db250YWluZXItPmFwcGVuZENoaWxk
KGZ1bGxzY3JlZW5GdWxsU2NyZWVuQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGZ1
bGxTY3JlZW5CdXR0b25Db250YWluZXItPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5GdWxsU2NyZWVu
QnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm4gMDsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkRpdmlk
ZXJFbGVtZW50PiBmdWxsU2NyZWVuRGl2aWRlciA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0
b25EaXZpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxs
U2NyZWVuRGl2aWRlciA9IGZ1bGxTY3JlZW5EaXZpZGVyLmdldCgpOwotICAgIGZ1bGxTY3JlZW5C
dXR0b25Db250YWluZXItPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5EaXZpZGVyLnJlbGVhc2UoKSwg
ZWMsIHRydWUpOworICAgIGZ1bGxTY3JlZW5CdXR0b25Db250YWluZXItPmFwcGVuZENoaWxkKGZ1
bGxTY3JlZW5EaXZpZGVyLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gMDsKLSAgICBidXR0b25Hcm91cENvbnRhaW5lci0+YXBwZW5kQ2hp
bGQoZnVsbFNjcmVlbkJ1dHRvbkNvbnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBi
dXR0b25Hcm91cENvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkJ1dHRvbkNvbnRhaW5l
ci5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuIDA7CiAKQEAgLTc3MywzOSArNzczLDM5IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0Js
YWNrQmVycnk+IE1lZGlhQ29udHJvbHNCbGFja0JlcnJ5OjpjcmVhdGVDb250cm9scyhEb2N1CiAg
ICAgY29udHJvbHMtPm1fcGxheUJ1dHRvbkNvbnRhaW5lciA9IHBsYXlCdXR0b25Db250YWluZXIu
Z2V0KCk7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5QbGF5QnV0dG9uRWxlbWVu
dD4gZnVsbHNjcmVlblBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuUGxheUJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fZnVsbHNjcmVlblBs
YXlCdXR0b24gPSBmdWxsc2NyZWVuUGxheUJ1dHRvbi5nZXQoKTsKLSAgICBwbGF5QnV0dG9uQ29u
dGFpbmVyLT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuUGxheUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0
cnVlKTsKKyAgICBwbGF5QnV0dG9uQ29udGFpbmVyLT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuUGxh
eUJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykKICAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgYnV0dG9uR3JvdXBDb250YWluZXItPmFwcGVuZENoaWxkKHBsYXlC
dXR0b25Db250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgYnV0dG9uR3JvdXBDb250
YWluZXItPmFwcGVuZENoaWxkKHBsYXlCdXR0b25Db250YWluZXIucmVsZWFzZSgpLCBlYywgQXR0
YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRy
PE1lZGlhQ29udHJvbFBsYWNlaG9sZGVyRWxlbWVudD4gcGxhY2Vob2xkZXIgPSBNZWRpYUNvbnRy
b2xQbGFjZWhvbGRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1f
cGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlci5nZXQoKTsKLSAgICBidXR0b25Hcm91cENvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQocGxhY2Vob2xkZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgYnV0
dG9uR3JvdXBDb250YWluZXItPmFwcGVuZENoaWxkKHBsYWNlaG9sZGVyLnJlbGVhc2UoKSwgZWMs
IEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNv
bnRyb2xzLT5tX2J1dHRvbkNvbnRhaW5lciA9IGJ1dHRvbkdyb3VwQ29udGFpbmVyLmdldCgpOwot
ICAgIHBhbmVsLT5hcHBlbmRDaGlsZChidXR0b25Hcm91cENvbnRhaW5lci5yZWxlYXNlKCksIGVj
LCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoYnV0dG9uR3JvdXBDb250YWluZXIucmVs
ZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgaWYgKGRvY3VtZW50LT5wYWdlKCktPnRoZW1lKCktPnN1cHBvcnRzQ2xvc2VkQ2Fw
dGlvbmluZygpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250
cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNv
bnRyb2xzLmdldCgpKTsKICAgICAgICAgY29udHJvbHMtPm1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNC
dXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi5nZXQoKTsKLSAgICAgICAgcGFuZWwt
PmFwcGVuZENoaWxkKHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRy
dWUpOworICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICAgICAgaWYgKGVjKQogICAgICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAgY29udHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5n
ZXQoKTsKLSAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYywgdHJ1
ZSk7CisgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKHBhbmVsLnJlbGVhc2UoKSwgZWMsIEF0dGFj
aExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGNvbnRyb2xz
LT5tX2VtYmVkZGVkUGFuZWwgPSBlbWJlZFBhbmVsLmdldCgpOwotICAgIGNvbnRyb2xzLT5hcHBl
bmRDaGlsZChlbWJlZFBhbmVsLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGNvbnRyb2xzLT5h
cHBlbmRDaGlsZChlbWJlZFBhbmVsLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAg
aWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKaW5kZXggNDY0MWI5ZDVkZWE2Yzk1
ZTk3MDEyM2ZmNzE2Y2QyMmZlYzEzYWU5Yi4uYmRhNTU0OWQ5ODQ4NmY4MjU3OTMzNjVlODJhZGRj
ZTgyMGUyMmVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sc0Nocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xzQ2hyb21pdW0uY3BwCkBAIC03NCw2MyArNzQsNjMgQEAgYm9vbCBNZWRpYUNvbnRy
b2xzQ2hyb21pdW06OmluaXRpYWxpemVDb250cm9scyhEb2N1bWVudCogZG9jdW1lbnQpCiAKICAg
ICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24gPSBNZWRp
YUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX3BsYXlC
dXR0b24gPSBwbGF5QnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0
dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0
dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiB0
aW1lbGluZSA9IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCB0
aGlzKTsKICAgICBtX3RpbWVsaW5lID0gdGltZWxpbmUuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVu
ZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRD
aGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChlYykK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRU
aW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJvbEN1cnJl
bnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV9jdXJyZW50VGlt
ZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkuZ2V0KCk7CiAgICAgbV9jdXJyZW50VGltZURp
c3BsYXktPmhpZGUoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVEaXNwbGF5
LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChjdXJyZW50VGlt
ZURpc3BsYXkucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5n
RGlzcGxheUVsZW1lbnQ+IGR1cmF0aW9uRGlzcGxheSA9IE1lZGlhQ29udHJvbFRpbWVSZW1haW5p
bmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX2R1cmF0aW9uRGlzcGxh
eSA9IGR1cmF0aW9uRGlzcGxheS5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZHVyYXRp
b25EaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChk
dXJhdGlvbkRpc3BsYXkucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11
dGVCdXR0b25FbGVtZW50PiBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5lbE11dGVC
dXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOwogICAgIG1fcGFuZWxNdXRlQnV0
dG9uID0gcGFuZWxNdXRlQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwYW5l
bE11dGVCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxk
KHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChl
YykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVs
Vm9sdW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlk
ZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fdm9sdW1lU2xpZGVyID0gc2xpZGVy
LmdldCgpOwogICAgIG1fdm9sdW1lU2xpZGVyLT5zZXRDbGVhck11dGVkT25Vc2VySW50ZXJhY3Rp
b24odHJ1ZSk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHNsaWRlci5yZWxlYXNlKCksIGVjLCB0
cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2xpZGVyLnJlbGVhc2UoKSwgZWMsIEF0dGFj
aExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAo
ZG9jdW1lbnQtPnBhZ2UoKS0+dGhlbWUoKS0+c3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5nKCkpIHsK
ICAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxl
bWVudD4gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgdGhpcyk7CiAgICAgICAg
IG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRv
bi5nZXQoKTsKLSAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRvZ2dsZUNsb3NlZENhcHRpb25z
QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQo
dG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsK
ICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gZnVsbHNjcmVlbkJ1
dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOwogICAgIG1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxzY3JlZW5CdXR0b24uZ2V0KCk7Ci0g
ICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1
ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBl
YywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIG1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKLSAgICBlbmNsb3N1cmUtPmFwcGVuZENoaWxkKHBh
bmVsLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGVuY2xvc3VyZS0+YXBwZW5kQ2hpbGQocGFu
ZWwucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIG1fZW5jbG9zdXJlID0gZW5jbG9zdXJlLmdldCgpOwotICAgIGFw
cGVuZENoaWxkKGVuY2xvc3VyZS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBhcHBlbmRDaGls
ZChlbmNsb3N1cmUucmVsZWFzZSgpLCBlYywgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjE1LDcgKzIxNSw3IEBAIHZvaWQgTWVkaWFDb250
cm9sc0Nocm9taXVtOjpjcmVhdGVUZXh0VHJhY2tEaXNwbGF5KCkKIAogICAgIC8vIEluc2VydCBp
dCBiZWZvcmUgdGhlIGZpcnN0IGNvbnRyb2xsZXIgZWxlbWVudCBzbyBpdCBhbHdheXMgZGlzcGxh
eXMgYmVoaW5kIHRoZSBjb250cm9scy4KICAgICAvLyBJbiB0aGUgQ2hyb21pdW0gY2FzZSwgdGhh
dCdzIHRoZSBlbmNsb3N1cmUgZWxlbWVudC4KLSAgICBpbnNlcnRCZWZvcmUodGV4dERpc3BsYXlD
b250YWluZXIsIG1fZW5jbG9zdXJlLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKKyAgICBp
bnNlcnRCZWZvcmUodGV4dERpc3BsYXlDb250YWluZXIsIG1fZW5jbG9zdXJlLCBBU1NFUlRfTk9f
RVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOwogICAgIHRleHREaXNwbGF5Q29udGFpbmVyLT5jcmVh
dGVTdWJ0cmVlcyhkb2N1bWVudCgpKTsKICAgICB0ZXh0RGlzcGxheUNvbnRhaW5lci5yZWxlYXNl
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xzQ2hyb21pdW1BbmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3BwCmluZGV4IGVhMTFiYjM5OWNjODcxZjFjM2Q0NDNm
N2IzMjQ0MDkxMjVkMmFhZDMuLmY4NjA5ZDgxYzkzZDMyNDE2MjU5MmViMTI0MzUzY2EzMDlhMmEw
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHND
aHJvbWl1bUFuZHJvaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3BwCkBAIC01NCwxMiArNTQsMTIgQEAgUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xzQ2hyb21pdW1BbmRyb2lkPiBNZWRpYUNvbnRyb2xzQ2hyb21pdW1BbmRy
b2lkOjpjcmVhdGVDb24KICAgICBSZWZQdHI8TWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVs
ZW1lbnQ+IG92ZXJsYXlFbmNsb3N1cmUgPSBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sT3ZlcmxheVBs
YXlCdXR0b25FbGVtZW50PiBvdmVybGF5UGxheUJ1dHRvbiA9IE1lZGlhQ29udHJvbE92ZXJsYXlQ
bGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9vdmVy
bGF5UGxheUJ1dHRvbiA9IG92ZXJsYXlQbGF5QnV0dG9uLmdldCgpOwotICAgIG92ZXJsYXlFbmNs
b3N1cmUtPmFwcGVuZENoaWxkKG92ZXJsYXlQbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUp
OworICAgIG92ZXJsYXlFbmNsb3N1cmUtPmFwcGVuZENoaWxkKG92ZXJsYXlQbGF5QnV0dG9uLnJl
bGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4g
MDsKIAogICAgIGNvbnRyb2xzLT5tX292ZXJsYXlFbmNsb3N1cmUgPSBvdmVybGF5RW5jbG9zdXJl
LmdldCgpOwotICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChvdmVybGF5RW5jbG9zdXJlLnJlbGVh
c2UoKSwgZWMsIHRydWUpOworICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChvdmVybGF5RW5jbG9z
dXJlLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExhemlseSk7CiAgICAgaWYgKGVjKQogICAgICAgICBy
ZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xz
R3RrLmNwcAppbmRleCBhMzg2MjkzNzM0NDc3OTQ0MTJkZGY5ZWFiMjBjZDY4NWQxMzEwZDEwLi5l
ODk1YmM2YzI2MjkxYmNjOGUzYTYyY2YxMTBkNWY2YmI4ZTU2ODdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzR3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzR3RrLmNwcApAQCAtNjcsNjkgKzY3LDY5
IEBAIGJvb2wgTWVkaWFDb250cm9sc0d0azo6aW5pdGlhbGl6ZUNvbnRyb2xzKERvY3VtZW50KiBk
b2N1bWVudCkKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4gcGxh
eUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwogICAgIG1fcGxheUJ1dHRvbiA9IHBsYXlCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVu
ZENoaWxkKHBsYXlCdXR0b24ucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCB0cnVlKTsKKyAgICBw
YW5lbC0+YXBwZW5kQ2hpbGQocGxheUJ1dHRvbi5yZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIEF0
dGFjaExhemlseSk7CiAgICAgaWYgKGV4Y2VwdGlvbkNvZGUpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0g
TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOwogICAg
IG1fdGltZWxpbmUgPSB0aW1lbGluZS5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGlt
ZWxpbmUucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5k
Q2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCBBdHRhY2hMYXppbHkpOwog
ICAgIGlmIChleGNlcHRpb25Db2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNw
bGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheSA9IGN1cnJlbnRUaW1lRGlzcGxheS5nZXQo
KTsKICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+aGlkZSgpOwotICAgIHBhbmVsLT5hcHBlbmRD
aGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCB0cnVlKTsK
KyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVEaXNwbGF5LnJlbGVhc2UoKSwgZXhj
ZXB0aW9uQ29kZSwgQXR0YWNoTGF6aWx5KTsKICAgICBpZiAoZXhjZXB0aW9uQ29kZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdE
aXNwbGF5RWxlbWVudD4gZHVyYXRpb25EaXNwbGF5ID0gTWVkaWFDb250cm9sVGltZVJlbWFpbmlu
Z0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fZHVyYXRpb25EaXNwbGF5
ID0gZHVyYXRpb25EaXNwbGF5LmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChkdXJhdGlv
bkRpc3BsYXkucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQoZHVyYXRpb25EaXNwbGF5LnJlbGVhc2UoKSwgZXhjZXB0aW9uQ29kZSwgQXR0YWNo
TGF6aWx5KTsKICAgICBpZiAoZXhjZXB0aW9uQ29kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgaWYgKGRvY3VtZW50LT5wYWdlKCktPnRoZW1lKCktPnN1cHBvcnRzQ2xvc2VkQ2FwdGlv
bmluZygpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9u
c0J1dHRvbkVsZW1lbnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250cm9s
VG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMp
OwogICAgICAgICBtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gdG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b24uZ2V0KCk7Ci0gICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0b2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbi5yZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIHRydWUpOworICAgICAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQodG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24ucmVsZWFzZSgp
LCBleGNlcHRpb25Db2RlLCBBdHRhY2hMYXppbHkpOwogICAgICAgICBpZiAoZXhjZXB0aW9uQ29k
ZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBSZWZQdHI8TWVkaWFD
b250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxzY3JlZW5CdXR0b24gPSBNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX2Z1
bGxTY3JlZW5CdXR0b24gPSBmdWxsc2NyZWVuQnV0dG9uLmdldCgpOwotICAgIHBhbmVsLT5hcHBl
bmRDaGlsZChmdWxsc2NyZWVuQnV0dG9uLnJlbGVhc2UoKSwgZXhjZXB0aW9uQ29kZSwgdHJ1ZSk7
CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBleGNl
cHRpb25Db2RlLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChleGNlcHRpb25Db2RlKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9u
RWxlbWVudD4gcGFuZWxNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50LCB0aGlzKTsKICAgICBtX3BhbmVsTXV0ZUJ1dHRvbiA9IHBh
bmVsTXV0ZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0
dG9uLnJlbGVhc2UoKSwgZXhjZXB0aW9uQ29kZSwgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENo
aWxkKHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIEF0dGFjaExhemls
eSk7CiAgICAgaWYgKGV4Y2VwdGlvbkNvZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50PiBzbGlkZXJD
b250YWluZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gc2xpZGVyQ29udGFp
bmVyLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzbGlkZXJDb250YWluZXIucmVsZWFz
ZSgpLCBleGNlcHRpb25Db2RlLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2xpZGVy
Q29udGFpbmVyLnJlbGVhc2UoKSwgZXhjZXB0aW9uQ29kZSwgQXR0YWNoTGF6aWx5KTsKICAgICBp
ZiAoZXhjZXB0aW9uQ29kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPE1l
ZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9s
UGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1fdm9sdW1l
U2xpZGVyID0gc2xpZGVyLmdldCgpOwogICAgIG1fdm9sdW1lU2xpZGVyLT5zZXRDbGVhck11dGVk
T25Vc2VySW50ZXJhY3Rpb24odHJ1ZSk7Ci0gICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPmFw
cGVuZENoaWxkKHNsaWRlci5yZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIHRydWUpOworICAgIG1f
dm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChzbGlkZXIucmVsZWFzZSgpLCBleGNl
cHRpb25Db2RlLCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChleGNlcHRpb25Db2RlKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBtX3BhbmVsID0gcGFuZWwuZ2V0KCk7Ci0gICAgZW5jbG9z
dXJlLT5hcHBlbmRDaGlsZChwYW5lbC5yZWxlYXNlKCksIGV4Y2VwdGlvbkNvZGUsIHRydWUpOwor
ICAgIGVuY2xvc3VyZS0+YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBleGNlcHRpb25Db2Rl
LCBBdHRhY2hMYXppbHkpOwogICAgIGlmIChleGNlcHRpb25Db2RlKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBtX2VuY2xvc3VyZSA9IGVuY2xvc3VyZS5nZXQoKTsKLSAgICBhcHBlbmRD
aGlsZChlbmNsb3N1cmUucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCB0cnVlKTsKKyAgICBhcHBl
bmRDaGlsZChlbmNsb3N1cmUucmVsZWFzZSgpLCBleGNlcHRpb25Db2RlLCBBdHRhY2hMYXppbHkp
OwogICAgIGlmIChleGNlcHRpb25Db2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTIy
Myw3ICsyMjMsNyBAQCB2b2lkIE1lZGlhQ29udHJvbHNHdGs6OmNyZWF0ZVRleHRUcmFja0Rpc3Bs
YXkoKQogICAgICAgICBtX3RleHREaXNwbGF5Q29udGFpbmVyLT5zZXRNZWRpYUNvbnRyb2xsZXIo
bV9tZWRpYUNvbnRyb2xsZXIpOwogCiAgICAgLy8gSW5zZXJ0IGl0IGJlZm9yZSB0aGUgZmlyc3Qg
Y29udHJvbGxlciBlbGVtZW50IHNvIGl0IGFsd2F5cyBkaXNwbGF5cyBiZWhpbmQgdGhlIGNvbnRy
b2xzLgotICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lciwgbV9lbmNsb3N1cmUs
IEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOworICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxh
eUNvbnRhaW5lciwgbV9lbmNsb3N1cmUsIEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFjaExhemls
eSk7CiAgICAgdGV4dERpc3BsYXlDb250YWluZXItPmNyZWF0ZVN1YnRyZWVzKGRvY3VtZW50KCkp
OwogICAgIHRleHREaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAppbmRleCAyMmIwYjdhZjBlY2JkOGU2NTdkZmVj
NGUxOTUzYzA5MzAyNjBkNmI3Li4zYjJjNjk5MGE4YjJhY2IxNGFmZThjNmRmYmEzOGMyODk2N2Vl
NTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCkBAIC03
NDksNyArNzQ5LDcgQEAgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVCb3g+IFRleHRUcmFja0N1ZTo6
Z2V0RGlzcGxheVRyZWUoY29uc3QgSW50U2l6ZSYgdmlkZW9TaXoKIAogICAgIC8vIE5vdGU6IFRo
aXMgaXMgY29udGFpbmVkIGJ5IGRlZmF1bHQgaW4gbV9hbGxEb2N1bWVudE5vZGVzLgogICAgIG1f
YWxsRG9jdW1lbnROb2Rlcy0+c2V0UHNldWRvKGFsbE5vZGVzU2hhZG93UHNldWRvSWQoKSk7Ci0g
ICAgZGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKG1fYWxsRG9jdW1lbnROb2RlcywgQVNTRVJUX05P
X0VYQ0VQVElPTiwgdHJ1ZSk7CisgICAgZGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKG1fYWxsRG9j
dW1lbnROb2RlcywgQVNTRVJUX05PX0VYQ0VQVElPTiwgQXR0YWNoTGF6aWx5KTsKIAogICAgIC8v
IEZJWE1FKEJVRyA3OTkxNik6IFJ1bnMgb2YgY2hpbGRyZW4gb2YgV2ViVlRUIFJ1YnkgT2JqZWN0
cyB0aGF0IGFyZSBub3QKICAgICAvLyBXZWJWVFQgUnVieSBUZXh0IE9iamVjdHMgbXVzdCBiZSB3
cmFwcGVkIGluIGFub255bW91cyBib3hlcyB3aG9zZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>