<?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>70194</bug_id>
          
          <creation_ts>2011-10-15 19:31:26 -0700</creation_ts>
          <short_desc>Rename ENABLE(TILED_BACKING_STORE) to USE(TILED_BACKING_STORE)</short_desc>
          <delta_ts>2011-10-15 21:34:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>68012</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>koivisto</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>484712</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-15 19:31:26 -0700</bug_when>
    <thetext>Rename ENABLE(TILED_BACKING_STORE) to USE(TILED_BACKING_STORE)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484715</commentid>
    <comment_count>1</comment_count>
      <attachid>111166</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-15 19:33:47 -0700</bug_when>
    <thetext>Created attachment 111166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484717</commentid>
    <comment_count>2</comment_count>
      <attachid>111166</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-10-15 19:47:34 -0700</bug_when>
    <thetext>Comment on attachment 111166
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        implementation strategy for WebKit htat&apos;s used by some ports

htat&apos;s =&gt; that&apos;s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484720</commentid>
    <comment_count>3</comment_count>
      <attachid>111169</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-15 20:07:58 -0700</bug_when>
    <thetext>Created attachment 111169
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484732</commentid>
    <comment_count>4</comment_count>
      <attachid>111169</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-15 21:34:30 -0700</bug_when>
    <thetext>Comment on attachment 111169
Patch for landing

Clearing flags on attachment: 111169

Committed r97571: &lt;http://trac.webkit.org/changeset/97571&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484733</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-15 21:34:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111166</attachid>
            <date>2011-10-15 19:33:47 -0700</date>
            <delta_ts>2011-10-15 20:07:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70194-20111015193349.patch</filename>
            <type>text/plain</type>
            <size>51573</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NTY4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMTAtMTUgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgRU5BQkxFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpIHRvIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxOTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUSUxFRF9CQUNLSU5HX1NUT1JFIGlzbid0
IGEgd2ViIHBsYXRmb3JtIGZlYXR1cmUuICBJdCdzIGFuCisgICAgICAgIGltcGxlbWVudGF0aW9u
IHN0cmF0ZWd5IGZvciBXZWJLaXQgaHRhdCdzIHVzZWQgYnkgc29tZSBwb3J0cworICAgICAgICBh
bmQgbm90IGJ5IG90aGVycy4KKworICAgICAgICAqIGZlYXR1cmVzLnByaToKKyAgICAgICAgKiBs
b2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAg
ICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpGcmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2V0Vmlldyk6CisgICAgICAgICogcGFnZS9GcmFtZS5o
OgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6cmVwYWludENvbnRlbnRSZWN0YW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3Ojpkb0RlZmVycmVkUmVwYWludHMpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNldFRpbGVkQmFja2luZ1N0b3JlRW5hYmxlZCk6
CisgICAgICAgICogcGxhdGZvcm0vSG9zdFdpbmRvdy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Nj
cm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9z
aXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RpbGUuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9UaWxlZEJhY2tpbmdTdG9yZUJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9UaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUXRJbXBsOjpHcmFwaGljc0xheWVyUXRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJRdEltcGw6On5HcmFwaGljc0xheWVyUXRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJRdEltcGw6OnJlY2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllclF0SW1wbDo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1Rp
bGVRdC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGlsZVF0Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpjb21wdXRlVGlsZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6OnJlbmRlckNvbnRlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dHVyZU1hcHBlck5vZGU6OnBhaW50U2VsZik6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyTm9kZTo6c3luY0NvbXBvc2l0aW5nU3RhdGVTZWxmKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpTdGF0ZTo6U3RhdGUpOgorCiAyMDExLTEwLTE1
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHI5
NzUzMyk6IGZhc3QvZm9ybXMvc2VsZWN0LXNjcmlwdC1vbmNoYW5nZS5odG1sIGZhaWxlZCBhZnRl
cgpJbmRleDogU291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQkocmV2aXNpb24gOTc1NjUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9mZWF0dXJlcy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDcgQEAgaXNFbXB0eShI
QVZFX1FSQVdGT05UKSB7CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RBVEFMSVNUPS4pOiBE
RUZJTkVTICs9IEVOQUJMRV9EQVRBTElTVD0xCiAKICMgVGlsZWQgQmFja2luZyBTdG9yZSBzdXBw
b3J0Ci0hY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9Lik6IERF
RklORVMgKz0gRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9MQorIWNvbnRhaW5zKERFRklORVMs
IFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRT0uKTogREVGSU5FUyArPSBXVEZfVVNFX1RJTEVE
X0JBQ0tJTkdfU1RPUkU9MQogCiAjIE5lc2NhcGUgcGx1Z2lucyBzdXBwb3J0IChOUEFQSSkKICFj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQST0uKSB7CkBAIC0yMDEs
NyArMjAxLDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0dBTUVQQUQ9MSk6IEZFQQogY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX1dFQl9TT0NLRVRTPTEpOiBGRUFUVVJFX0RFRklORVNfSkFW
QVNDUklQVCArPSBFTkFCTEVfV0VCX1NPQ0tFVFM9MQogY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X1dFQl9USU1JTkc9MSk6IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9XRUJf
VElNSU5HPTEKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9UT1VDSF9FVkVOVFM9MSk6IEZFQVRV
UkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9UT1VDSF9FVkVOVFM9MQotY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9MSk6IEZFQVRVUkVfREVGSU5FU19K
QVZBU0NSSVBUICs9IEVOQUJMRV9USUxFRF9CQUNLSU5HX1NUT1JFPTEKK2NvbnRhaW5zKERFRklO
RVMsIFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRT0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFT
Q1JJUFQgKz0gV1RGX1VTRV9USUxFRF9CQUNLSU5HX1NUT1JFPTEKIGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9OT1RJRklDQVRJT05TPTEpOiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBF
TkFCTEVfTk9USUZJQ0FUSU9OUz0xCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfREVUQUlMUz0x
KTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0RFVEFJTFM9MQogY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX01FVEVSX1RBRz0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJ
UFQgKz0gRU5BQkxFX01FVEVSX1RBRz0xCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCShyZXZpc2lvbiA5NzU2NSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMTYxLDcgKzE2MSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmLCBi
b29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9s
bChjb25zdCBJbnRSZWN0JiwgYm9vbCkge307CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25z
dCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSB7IH0KLSNpZiBFTkFC
TEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAg
ICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50Jikg
eyB9CiAjZW5kaWYKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICYmICFVU0Uo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3Bw
CShyZXZpc2lvbiA5NzU2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBAQCB2b2lkIENocm9tZTo6c2Nyb2xsKGNvbnN0IElu
dFNpemUmIHNjcm9sCiAgICAgbV9jbGllbnQtPnNjcm9sbChzY3JvbGxEZWx0YSwgcmVjdFRvU2Ny
b2xsLCBjbGlwUmVjdCk7CiB9CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNp
ZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKIHZvaWQgQ2hyb21lOjpkZWxlZ2F0ZWRTY3JvbGxS
ZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvaW50KQogewogICAgIG1fY2xpZW50LT5k
ZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoc2Nyb2xsUG9pbnQpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5oCShyZXZpc2lvbiA5NzU2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgJKHdv
cmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3Qm
LCBib29sKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dT
Y3JvbGwoY29uc3QgSW50UmVjdCYsIGJvb2wpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xs
KGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpOwotI2lmIEVO
QUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBv
aW50JiBzY3JvbGxQb2ludCk7CiAjZW5kaWYKICAgICAgICAgdmlydHVhbCBJbnRQb2ludCBzY3Jl
ZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCShyZXZpc2lvbiA5NzU2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1MCw3ICsxNTAsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5k
b3coY29uc3QgSW50UmVjdCYsIGJvb2wpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGludmFs
aWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYsIGJvb2wpID0gMDsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYs
IGNvbnN0IEludFJlY3QmKSA9IDA7Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisj
aWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0
ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmKSA9IDA7CiAjZW5kaWYKICAgICAgICAg
dmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0g
MDsKQEAgLTI4OCw3ICsyODgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBzZXRSb290RnVsbFNjcmVlbkxheWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KICNlbmRp
ZgogICAgICAgICAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElM
RURfQkFDS0lOR19TVE9SRSkKICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVSZWN0Rm9y
VGlsZWRCYWNraW5nU3RvcmUoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0KCk7IH0KICNlbmRpZgog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24gOTc1NjUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDcgKzExMiw3IEBACiAj
aW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShU
SUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogI2luY2x1
ZGUgIlRpbGVkQmFja2luZ1N0b3JlLmgiCiAjZW5kaWYKIApAQCAtMTgzLDcgKzE4Myw3IEBAIGlu
bGluZSBGcmFtZTo6RnJhbWUoUGFnZSogcGFnZSwgSFRNTEZyYW0KICAgICBXZWJLaXRGb250RmFt
aWx5TmFtZXM6OmluaXQoKTsKIAogICAgIGlmICghb3duZXJFbGVtZW50KSB7Ci0jaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAg
ICAgIC8vIFRvcCBsZXZlbCBmcmFtZSBvbmx5IGZvciBub3cuCiAgICAgICAgIHNldFRpbGVkQmFj
a2luZ1N0b3JlRW5hYmxlZChwYWdlLT5zZXR0aW5ncygpLT50aWxlZEJhY2tpbmdTdG9yZUVuYWJs
ZWQoKSk7CiAjZW5kaWYKQEAgLTI4Miw3ICsyODIsNyBAQCB2b2lkIEZyYW1lOjpzZXRWaWV3KFBh
c3NSZWZQdHI8RnJhbWVWaWV3CiAgICAgLy8gcHVsbGVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBj
YWNoZSwgcmVzZXQgdGhpcyBmbGFnLgogICAgIGxvYWRlcigpLT5yZXNldE11bHRpcGxlRm9ybVN1
Ym1pc3Npb25Qcm90ZWN0aW9uKCk7CiAgICAgCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgaWYgKG1fdmlldyAmJiB0aWxl
ZEJhY2tpbmdTdG9yZSgpKQogICAgICAgICBtX3ZpZXctPnNldFBhaW50c0VudGlyZUNvbnRlbnRz
KHRydWUpOwogI2VuZGlmCkBAIC04ODYsNyArODg2LDcgQEAgdm9pZCBGcmFtZTo6Y3JlYXRlVmll
dyhjb25zdCBJbnRTaXplJiB2aQogICAgICAgICB2aWV3KCktPnNldENhbkhhdmVTY3JvbGxiYXJz
KG93bmVyLT5zY3JvbGxpbmdNb2RlKCkgIT0gU2Nyb2xsYmFyQWx3YXlzT2ZmKTsKIH0KIAotI2lm
IEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQogdm9pZCBGcmFtZTo6c2V0VGlsZWRCYWNraW5nU3RvcmVFbmFibGVkKGJvb2wgZW5hYmxlZCkK
IHsKICAgICBpZiAoIWVuYWJsZWQpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgJKHJldmlzaW9uIDk3
NTY1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
NCw3ICs0NCw3IEBACiAjaW5jbHVkZSAiRnJhbWVXaW4uaCIKICNlbmRpZgogCi0jaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAjaW5j
bHVkZSAiVGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaCIKICNlbmRpZgogCkBAIC03MCw3ICs3MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBSZW5kZXJQYXJ0OwogICAgIGNsYXNz
IFRpbGVkQmFja2luZ1N0b3JlOwogCi0jaWYgIUVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQor
I2lmICFVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBjbGFzcyBUaWxlZEJhY2tpbmdTdG9y
ZUNsaWVudCB7IH07CiAjZW5kaWYKIApAQCAtMjQ2LDcgKzI0Niw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgYm9vbCBtX2lzRGlzY29ubmVjdGVkOwogICAgICAgICBib29sIG1fZXhj
bHVkZUZyb21UZXh0U2VhcmNoOwogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisj
aWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgLy8gRklYTUU6IFRoZSB0aWxlZCBiYWNr
aW5nIHN0b3JlIGJlbG9uZ3MgaW4gRnJhbWVWaWV3LCBub3QgRnJhbWUuCiAKICAgICBwdWJsaWM6
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShyZXZpc2lvbiA5NzU2NSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNyAr
NzgsNyBAQAogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNlbmRpZgogCi0jaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAjaW5j
bHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIKICNlbmRpZgogCkBAIC0xNzY1LDcgKzE3NjUsNyBA
QCB2b2lkIEZyYW1lVmlldzo6cmVwYWludENvbnRlbnRSZWN0YW5nbGUoCiAgICAgaWYgKCFzaG91
bGRVcGRhdGUoaW1tZWRpYXRlKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgRU5BQkxFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgaWYgKGZy
YW1lKCktPnRpbGVkQmFja2luZ1N0b3JlKCkpIHsKICAgICAgICAgZnJhbWUoKS0+dGlsZWRCYWNr
aW5nU3RvcmUoKS0+aW52YWxpZGF0ZShyKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTg1Niw3ICsx
ODU2LDcgQEAgdm9pZCBGcmFtZVZpZXc6OmRvRGVmZXJyZWRSZXBhaW50cygpCiAgICAgfQogICAg
IHVuc2lnbmVkIHNpemUgPSBtX3JlcGFpbnRSZWN0cy5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHNpemU7IGkrKykgewotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgICAgICBpZiAoZnJhbWUoKS0+dGls
ZWRCYWNraW5nU3RvcmUoKSkgewogICAgICAgICAgICAgZnJhbWUoKS0+dGlsZWRCYWNraW5nU3Rv
cmUoKS0+aW52YWxpZGF0ZShtX3JlcGFpbnRSZWN0c1tpXSk7CiAgICAgICAgICAgICBjb250aW51
ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCShyZXZpc2lvbiA5NzU2NSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MDksNyAr
ODA5LDcgQEAgdm9pZCBTZXR0aW5nczo6c2V0TG9hZERlZmVycmluZ0VuYWJsZWQoYgogdm9pZCBT
ZXR0aW5nczo6c2V0VGlsZWRCYWNraW5nU3RvcmVFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAg
ICBtX3RpbGVkQmFja2luZ1N0b3JlRW5hYmxlZCA9IGVuYWJsZWQ7Ci0jaWYgRU5BQkxFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgaWYgKG1f
cGFnZS0+bWFpbkZyYW1lKCkpCiAgICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPnNldFRpbGVk
QmFja2luZ1N0b3JlRW5hYmxlZChlbmFibGVkKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0hvc3RXaW5kb3cuaAkocmV2aXNpb24gOTc1NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Ib3N0V2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAgcHVi
bGljOgogICAgIC8vIFJlcXVlc3RzIHRoZSBob3N0IGludmFsaWRhdGUgdGhlIGNvbnRlbnRzLCBu
b3QgdGhlIHdpbmRvdy4gIFRoaXMgaXMgdGhlIHNsb3cgcGF0aCBmb3Igc2Nyb2xsaW5nLgogICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJl
Y3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKSA9IDA7CiAKLSNpZiBFTkFCTEUoVElMRURf
QkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICAvLyBSZXF1
ZXN0cyB0aGUgaG9zdCB0byBkbyB0aGUgYWN0dWFsIHNjcm9sbGluZy4gVGhpcyBpcyBvbmx5IHVz
ZWQgaW4gY29tYmluYXRpb24gd2l0aCBhIHRpbGVkIGJhY2tpbmcgc3RvcmUuCiAgICAgdmlydHVh
bCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9p
bnQpID0gMDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5j
cHAJKHJldmlzaW9uIDk3NTY1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3Niw3ICszNzYsNyBAQCB2b2lkIFNjcm9sbFZpZXc6
OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZiBF
TkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkK
ICAgICBpZiAoZGVsZWdhdGVzU2Nyb2xsaW5nKCkpIHsKICAgICAgICAgaG9zdFdpbmRvdygpLT5k
ZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoc2Nyb2xsUG9pbnQpOwogICAgICAgICByZXR1cm47Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZS5oCShyZXZpc2lvbiA5NzU2
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMjAsNyArMjAsNyBAQAogI2lmbmRlZiBUaWxlX2gKICNkZWZpbmUgVGlsZV9oCiAK
LSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19T
VE9SRSkKIAogI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAiSW50UG9pbnRIYXNoLmgi
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9y
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGls
ZWRCYWNraW5nU3RvcmUuY3BwCShyZXZpc2lvbiA5NzU2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjAsNyArMjAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2lu
Z1N0b3JlLmgiCiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElM
RURfQkFDS0lOR19TVE9SRSkKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1
ZGUgIlRpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgJKHJldmlzaW9uIDk3
NTY1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3Rv
cmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjAsNyArMjAsNyBAQAogI2lmbmRlZiBUaWxlZEJhY2tp
bmdTdG9yZV9oCiAjZGVmaW5lIFRpbGVkQmFja2luZ1N0b3JlX2gKIAotI2lmIEVOQUJMRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogCiAjaW5jbHVk
ZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZUJhY2tlbmQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9y
ZUJhY2tlbmQuaAkocmV2aXNpb24gOTc1NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZUJhY2tlbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMjAs
NyArMjAsNyBAQAogI2lmbmRlZiBUaWxlZEJhY2tpbmdTdG9yZUJhY2tlbmRfaAogI2RlZmluZSBU
aWxlZEJhY2tpbmdTdG9yZUJhY2tlbmRfaAogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAKICNpbmNsdWRlICJQYXNzT3duUHRy
LmgiCiAjaW5jbHVkZSAiVGlsZS5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oCShyZXZpc2lv
biA5NzU2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2lu
Z1N0b3JlQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisKIGNsYXNzIENvbG9yOwogY2xhc3MgR3JhcGhpY3NDb250
ZXh0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGlj
c0xheWVyUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAJKHJldmlzaW9uIDk3NTY1KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDYsNyArNDYsNyBAQAogI2luY2x1ZGUgPFF0R3VpL3FwaXhtYXAuaD4KICNpbmNs
dWRlIDxRdEd1aS9xcGl4bWFwY2FjaGUuaD4KIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NU
T1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogI2luY2x1ZGUgIlRpbGVkQmFja2lu
Z1N0b3JlLmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaCIKIApAQCAtMTI1
LDggKzEyNSw4IEBAIHB1YmxpYzoKICNlbmRpZiAvLyBRVF9OT19HUkFQSElDU0VGRkVDVAogCiBj
bGFzcyBHcmFwaGljc0xheWVyUXRJbXBsIDogcHVibGljIFFHcmFwaGljc09iamVjdAotI2lmIEVO
QUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotLCBwdWJsaWMgdmlydHVhbCBUaWxlZEJhY2tpbmdT
dG9yZUNsaWVudAorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAsIHB1YmxpYyB2aXJ0dWFsIFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50CiAjZW5k
aWYKIHsKICAgICBRX09CSkVDVApAQCAtMTk4LDcgKzE5OCw3IEBAIHB1YmxpYzoKICAgICAvLyBD
aHJvbWVDbGllbnRRdDo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3luYyAobWVhbmluZyB0aGUg
c3luYyB3aWxsIGhhcHBlbiBBU0FQKQogICAgIHZvaWQgZmx1c2hDaGFuZ2VzKGJvb2wgcmVjdXJz
aXZlID0gdHJ1ZSwgYm9vbCBmb3JjZVRyYW5zZm9ybVVwZGF0ZSA9IGZhbHNlKTsKIAotI2lmIEVO
QUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQog
ICAgIC8vIHJlaW1wbGVtZW50YXRpb25zIGZyb20gVGlsZWRCYWNraW5nU3RvcmVDbGllbnQKICAg
ICB2aXJ0dWFsIHZvaWQgdGlsZWRCYWNraW5nU3RvcmVQYWludEJlZ2luKCk7CiAgICAgdmlydHVh
bCB2b2lkIHRpbGVkQmFja2luZ1N0b3JlUGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50
UmVjdCYpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIHB1YmxpYzoKIAogICAgIGludCBtX2NoYW5nZU1h
c2s7CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFD
S0lOR19TVE9SRSkKICAgICBUaWxlZEJhY2tpbmdTdG9yZSogbV90aWxlZEJhY2tpbmdTdG9yZTsK
ICNlbmRpZgogCkBAIC0zMzQsNyArMzM0LDcgQEAgR3JhcGhpY3NMYXllclF0SW1wbDo6R3JhcGhp
Y3NMYXllclF0SW1wbAogICAgICwgbV9vcGFjaXR5QW5pbWF0aW9uUnVubmluZyhmYWxzZSkKICAg
ICAsIG1fYmxvY2tOb3RpZnlTeW5jUmVxdWlyZWQoZmFsc2UpCiAgICAgLCBtX2NoYW5nZU1hc2so
Tm9DaGFuZ2VzKQotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQogICAgICwgbV90aWxlZEJhY2tpbmdTdG9yZSgwKQogI2VuZGlmCiB7
CkBAIC0zNjEsNyArMzYxLDcgQEAgR3JhcGhpY3NMYXllclF0SW1wbDo6fkdyYXBoaWNzTGF5ZXJR
dEltcAogICAgICAgICAgICAgaXRlbS0+c2V0UGFyZW50SXRlbSgwKTsKICAgICAgICAgfQogICAg
IH0KLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lO
R19TVE9SRSkKICAgICBkZWxldGUgbV90aWxlZEJhY2tpbmdTdG9yZTsKICNlbmRpZgogI2lmbmRl
ZiBRVF9OT19BTklNQVRJT04KQEAgLTM5NCw3ICszOTQsNyBAQCBRUGl4bWFwIEdyYXBoaWNzTGF5
ZXJRdEltcGw6OnJlY2FjaGUoY29uCiAgICAgaWYgKCFtX2xheWVyLT5kcmF3c0NvbnRlbnQoKSB8
fCBtX3NpemUuaXNFbXB0eSgpIHx8ICFtX3NpemUuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4g
UVBpeG1hcCgpOwogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgY29uc3QgYm9vbCByZXF1aXJlc1RpbGluZyA9IChtX3N0
YXRlLmRyYXdzQ29udGVudCAmJiBtX2N1cnJlbnRDb250ZW50LmNvbnRlbnRUeXBlID09IEhUTUxD
b250ZW50VHlwZSkgJiYgKG1fc2l6ZS53aWR0aCgpID4gR1JBUEhJQ1NfTEFZRVJfVElMSU5HX1RI
UkVTSE9MRCB8fCBtX3NpemUuaGVpZ2h0KCkgPiBHUkFQSElDU19MQVlFUl9USUxJTkdfVEhSRVNI
T0xEKTsKICAgICBpZiAocmVxdWlyZXNUaWxpbmcgJiYgIW1fdGlsZWRCYWNraW5nU3RvcmUpIHsK
ICAgICAgICAgbV90aWxlZEJhY2tpbmdTdG9yZSA9IG5ldyBUaWxlZEJhY2tpbmdTdG9yZSh0aGlz
KTsKQEAgLTYyNSw3ICs2MjUsNyBAQCBRUmVjdEYgR3JhcGhpY3NMYXllclF0SW1wbDo6Ym91bmRp
bmdSZWN0CiAKIHZvaWQgR3JhcGhpY3NMYXllclF0SW1wbDo6cGFpbnQoUVBhaW50ZXIqIHBhaW50
ZXIsIGNvbnN0IFFTdHlsZU9wdGlvbkdyYXBoaWNzSXRlbSogb3B0aW9uLCBRV2lkZ2V0KiB3aWRn
ZXQpCiB7Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCiAgICAgLy8gRklYTUU6IFRoZXJlJ3MgY3VycmVudGx5IG5vIFF0IEFQSSB0
byBrbm93IGlmIGEgbmV3IHJlZ2lvbiBvZiBhbiBpdGVtIGlzIGV4cG9zZWQgb3V0c2lkZSBvZiB0
aGUgcGFpbnQgZXZlbnQuCiAgICAgLy8gU3VnZ2VzdGVkIGZvciBRdDogaHR0cDovL2J1Z3JlcG9y
dHMucXQubm9raWEuY29tL2Jyb3dzZS9RVEJVRy0xNDg3Ny4KICAgICBpZiAobV90aWxlZEJhY2tp
bmdTdG9yZSkKQEAgLTg4Niw3ICs4ODYsNyBAQCBhZnRlckxheWVyQ2hhbmdlczoKICAgICB9CiB9
CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lO
R19TVE9SRSkKIC8qIFxyZWltcCAoVGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaCkKICovCiB2b2lk
IEdyYXBoaWNzTGF5ZXJRdEltcGw6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnRCZWdpbigpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9UaWxlUXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RpbGVRdC5jcHAJKHJl
dmlzaW9uIDk3NTY1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGls
ZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAsNyArMjAsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlRpbGVRdC5oIgogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9yZS5oIgpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGlsZVF0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGlsZVF0LmgJKHJldmlzaW9uIDk3NTY1KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGlsZVF0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIwLDcgKzIwLDcgQEAKICNpZm5kZWYgVGlsZVF0X2gKICNkZWZpbmUgVGlsZVF0
X2gKIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQogCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNsdWRlICJJbnRSZWN0Lmgi
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlck5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAJKHJldmlzaW9uIDk3NTY1KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTczLDcgKzE3Myw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlck5v
ZGU6OmNvbXB1dGVBbGxUcmFuc2YKIAogdm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6Y29tcHV0ZVRp
bGVzKCkKIHsKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURf
QkFDS0lOR19TVE9SRSkKICAgICBpZiAobV9zdGF0ZS50aWxlT3duZXJzaGlwID09IEV4dGVybmFs
bHlNYW5hZ2VkVGlsZXMpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgpAQCAtMjM1LDcgKzIzNSw3
IEBAIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OmNvbXB1dGVUaWxlcygpCiAgICAgICAgIG1fb3du
ZWRUaWxlcy5yZW1vdmUodGlsZXNUb1JlbW92ZVtpXSk7CiB9CiAKLSNpZiBFTkFCTEUoVElMRURf
QkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKIHN0YXRpYyB2b2lk
IGNsYW1wUmVjdChJbnRSZWN0JiByZWN0LCBpbnQgZGltZW5zaW9uKQogewogICAgIHJlY3Quc2hp
ZnRYRWRnZVRvKHJlY3QueCgpIC0gcmVjdC54KCkgJSBkaW1lbnNpb24pOwpAQCAtMjgzLDcgKzI4
Myw3IEBAIGJvb2wgVGV4dHVyZU1hcHBlck5vZGU6OmNvbGxlY3RWaXNpYmxlQ28KIAogdm9pZCBU
ZXh0dXJlTWFwcGVyTm9kZTo6cmVuZGVyQ29udGVudChUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFw
cGVyLCBHcmFwaGljc0xheWVyKiBsYXllcikKIHsKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19T
VE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBpZiAobV9zdGF0ZS50aWxl
T3duZXJzaGlwID09IEV4dGVybmFsbHlNYW5hZ2VkVGlsZXMpCiAgICAgICAgIHJldHVybjsKICNl
bmRpZgpAQCAtMzkzLDcgKzM5Myw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OnBhaW50U2Vs
Zihjb25zdCAKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIEVOQUJMRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIFZlY3RvcjxFeHRl
cm5hbGx5TWFuYWdlZFRpbGU+IHRpbGVzVG9QYWludDsKIAogICAgIGlmIChtX3N0YXRlLnRpbGVP
d25lcnNoaXAgPT0gRXh0ZXJuYWxseU1hbmFnZWRUaWxlcykgewpAQCAtNjA0LDcgKzYwNCw3IEBA
IFRleHR1cmVNYXBwZXJOb2RlOjp+VGV4dHVyZU1hcHBlck5vZGUoKQogICAgICAgICBtX3BhcmVu
dC0+bV9jaGlsZHJlbi5yZW1vdmUobV9wYXJlbnQtPm1fY2hpbGRyZW4uZmluZCh0aGlzKSk7CiB9
CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lO
R19TVE9SRSkKIGludCBUZXh0dXJlTWFwcGVyTm9kZTo6Y3JlYXRlQ29udGVudHNUaWxlKGZsb2F0
IHNjYWxlKQogewogICAgIHN0YXRpYyBpbnQgbmV4dElEID0gMDsKQEAgLTY4OCw3ICs2ODgsNyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpzeW5jQ29tcG9zaXRpbmdTCiB7CiAgICAgaW50IGNo
YW5nZU1hc2sgPSBncmFwaGljc0xheWVyLT5jaGFuZ2VNYXNrKCk7CiAgICAgY29uc3QgVGV4dHVy
ZU1hcHBlck5vZGU6OkNvbnRlbnREYXRhJiBwZW5kaW5nQ29udGVudCA9IGdyYXBoaWNzTGF5ZXIt
PnBlbmRpbmdDb250ZW50KCk7Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYg
VVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgc3dhcENvbnRlbnRzQnVmZmVycygpOwogI2Vu
ZGlmCiAgICAgaWYgKGNoYW5nZU1hc2sgPT0gTm9DaGFuZ2VzICYmIGdyYXBoaWNzTGF5ZXItPm1f
YW5pbWF0aW9ucy5pc0VtcHR5KCkgJiYgcGVuZGluZ0NvbnRlbnQubmVlZHNEaXNwbGF5UmVjdC5p
c0VtcHR5KCkgJiYgIXBlbmRpbmdDb250ZW50Lm5lZWRzRGlzcGxheSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTm9kZS5oCShyZXZpc2lvbiA5NzU2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDksNyArMTQ5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBwYWludCgpOwogCi0jaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAg
dm9pZCBzZXRUaWxlT3duZXJzaGlwKFRpbGVPd25lcnNoaXAgb3duZXJzaGlwKSB7IG1fc3RhdGUu
dGlsZU93bmVyc2hpcCA9IG93bmVyc2hpcDsgfQogICAgIGludCBjcmVhdGVDb250ZW50c1RpbGUo
ZmxvYXQgc2NhbGUpOwogICAgIHZvaWQgcmVtb3ZlQ29udGVudHNUaWxlKGludCBpZCk7CkBAIC0y
MzMsNyArMjMzLDcgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxPd25lZFRpbGU+IG1fb3duZWRU
aWxlczsKIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9C
QUNLSU5HX1NUT1JFKQogICAgIHN0cnVjdCBFeHRlcm5hbGx5TWFuYWdlZFRpbGVCdWZmZXIgewog
ICAgICAgICBGbG9hdFJlY3Qgc291cmNlUmVjdDsKICAgICAgICAgRmxvYXRSZWN0IHRhcmdldFJl
Y3Q7CkBAIC0yOTAsNyArMjkwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBuZWVkc1JlcGFp
bnQ7CiAgICAgICAgIEludFJlY3QgdmlzaWJsZVJlY3Q7CiAgICAgICAgIGZsb2F0IGNvbnRlbnRT
Y2FsZTsKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFD
S0lOR19TVE9SRSkKICAgICAgICAgVGlsZU93bmVyc2hpcCB0aWxlT3duZXJzaGlwOwogI2VuZGlm
CiAgICAgICAgIFN0YXRlKCkKQEAgLTMwNyw3ICszMDcsNyBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgLCBtaWdodEhhdmVPdmVybGFwcyhmYWxzZSkKICAgICAgICAgICAgICwgbmVlZHNSZXBhaW50
KGZhbHNlKQogICAgICAgICAgICAgLCBjb250ZW50U2NhbGUoMS4wZikKLSNpZiBFTkFCTEUoVElM
RURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICAgICAg
ICAgICwgdGlsZU93bmVyc2hpcChPd25lZFRpbGVzKQogI2VuZGlmCiAgICAgICAgIHsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cJKHJldmlzaW9uIDk3NTY4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMTAtMTUgIEFkYW0gQmFydGggIDxh
YmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgRU5BQkxFKFRJTEVEX0JBQ0tJTkdf
U1RPUkUpIHRvIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxOTQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9EcmF3aW5nQXJlYUluZm8uaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9EcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdl
Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5jcHA6
CisgICAgICAgICogVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRv
Q29tbWl0dGVkRm9yTmV3UGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmNyZWF0ZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWREcmF3aW5nQXJlYS5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1RpbGVkRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFNpemUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTEtMTAtMTUgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI5NzU1OS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3
aW5nQXJlYUluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2lu
Z0FyZWFJbmZvLmgJKHJldmlzaW9uIDk3NTY1KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0Ry
YXdpbmdBcmVhSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBlbnVtIERyYXdpbmdBcmVhVHlwZSB7CiAgICAgRHJhd2luZ0FyZWFUeXBl
SW1wbCwKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFD
S0lOR19TVE9SRSkKICAgICBEcmF3aW5nQXJlYVR5cGVUaWxlZCwKICNlbmRpZgogfTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAkocmV2aXNpb24g
OTc1NjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCSh3
b3JraW5nIGNvcHkpCkBAIC05Nyw3ICs5Nyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3Rh
dGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBleGl0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwg
Y29uc3QgVXBkYXRlSW5mbyYpIHsgfQogI2VuZGlmCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdf
U1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2b2lkIHNu
YXBzaG90VGFrZW4oY29uc3QgVXBkYXRlSW5mbyYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjcmVh
dGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pIHsgfQogICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKGludCB0aWxlSUQsIGNvbnN0IFVwZGF0ZUluZm8mIHVw
ZGF0ZUluZm8pIHsgfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVh
UHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDk3NTY1KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDcgKzI3LDcgQEAgbWVzc2FnZXMgLT4gRHJhd2luZ0FyZWFQcm94eSB7CiAg
ICAgRW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVT
dGF0ZUlELCBXZWJLaXQ6OkxheWVyVHJlZUNvbnRleHQgY29udGV4dCkKICAgICBFeGl0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgV2ViS2l0
OjpVcGRhdGVJbmZvIHVwZGF0ZUluZm8pCiAjZW5kaWYKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lO
R19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBDcmVhdGVUaWxlKGlu
dCB0aWxlSUQsIFdlYktpdDo6VXBkYXRlSW5mbyB1cGRhdGVJbmZvKQogICAgIFVwZGF0ZVRpbGUo
aW50IHRpbGVJRCwgV2ViS2l0OjpVcGRhdGVJbmZvIHVwZGF0ZUluZm8pCiAgICAgRGlkUmVuZGVy
RnJhbWUoKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCShyZXZpc2lv
biA5NzU2NSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTk3LDcgKzk3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHRv
b2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpID0gMDsKIAotI2lmIEVO
QUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQog
ICAgIHZpcnR1YWwgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYpID0gMDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5jcHAJKHJldmlzaW9u
IDk3NTY1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJUaWxlZERyYXdpbmdBcmVhUHJveHkuaCIKIAotI2lmIEVOQUJMRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogI2luY2x1ZGUg
IkRyYXdpbmdBcmVhTWVzc2FnZXMuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJNZXNzYWdlSUQuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmgJKHJldmlzaW9uIDk3NTY1KQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFRpbGVkRHJhd2luZ0FyZWFQcm94eV9o
CiAjZGVmaW5lIFRpbGVkRHJhd2luZ0FyZWFQcm94eV9oCiAKLSNpZiBFTkFCTEUoVElMRURfQkFD
S0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKIAogI2luY2x1ZGUgIkRy
YXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgpA
QCAtMTA4LDYgKzEwOCw2IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0j
ZW5kaWYgLy8gVElMRURfQkFDS0lOR19TVE9SRQorI2VuZGlmIC8vIFVTRShUSUxFRF9CQUNLSU5H
X1NUT1JFKQogCiAjZW5kaWYgLy8gVGlsZWREcmF3aW5nQXJlYVByb3h5X2gKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiA5NzU2NSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03NTIsNyArNzUyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmV4ZWN1dGVFZGl0Q29tbWFu
ZChjbwogICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RXhlY3V0ZUVkaXRD
b21tYW5kKGNvbW1hbmROYW1lKSwgbV9wYWdlSUQpOwogfQogICAgIAotI2lmIEVOQUJMRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogdm9pZCBXZWJQ
YWdlUHJveHk6OnNldEZpeGVkVmlzaWJsZUNvbnRlbnRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3Qp
CiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCkBAIC0xMzkxLDcgKzEzOTEsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoCiAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZShwYWdlR3JvdXAoKS0+cHJlZmVyZW5j
ZXMoKS0+c3RvcmUoKSksIG1fcGFnZUlELCBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9u
ID8gQ29yZUlQQzo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5IDog
MCk7CiB9CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURf
QkFDS0lOR19TVE9SRSkKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRSZXNpemVzVG9Db250ZW50c1Vz
aW5nTGF5b3V0U2l6ZShjb25zdCBJbnRTaXplJiB0YXJnZXRMYXlvdXRTaXplKQogewogICAgIHBy
b2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0UmVzaXplc1RvQ29udGVudHNVc2lu
Z0xheW91dFNpemUodGFyZ2V0TGF5b3V0U2l6ZSksIG1fcGFnZUlEKTsKQEAgLTIxMzUsNyArMjEz
NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5CZWZvcmVVbmxvYWRDb25maXIKICAgICBzaG91
bGRDbG9zZSA9IG1fdWlDbGllbnQucnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHRoaXMsIG1l
c3NhZ2UsIGZyYW1lKTsKIH0KIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogdm9pZCBXZWJQYWdlUHJveHk6OnBhZ2VEaWRSZXF1
ZXN0U2Nyb2xsKGNvbnN0IEludFBvaW50JiBwb2ludCkKIHsKICAgICBtX3BhZ2VDbGllbnQtPnBh
Z2VEaWRSZXF1ZXN0U2Nyb2xsKHBvaW50KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDk3NTY1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNDAsNyArMzQwLDcgQEAgcHVi
bGljOgogI2lmIFBMQVRGT1JNKEVGTCkKICAgICBFdmFzX09iamVjdCogdmlld09iamVjdCgpOwog
I2VuZGlmCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCiAgICAgdm9pZCBzZXRGaXhlZFZpc2libGVDb250ZW50UmVjdChjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0Jik7CiAjZW5kaWYKIApAQCAtNTA1LDcgKzUwNSw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKIAotI2lmIEVOQUJMRShUSUxFRF9C
QUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZvaWQgc2V0
UmVzaXplc1RvQ29udGVudHNVc2luZ0xheW91dFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
OwogI2VuZGlmCiAKQEAgLTY2MSw3ICs2NjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVhdHRh
Y2hUb1dlYlByb2Nlc3MoKTsKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0o
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSopOwogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdm9pZCBwYWdlRGlkUmVxdWVz
dFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkocmV2
aXNpb24gOTc1NjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2VQcm94eSB7CiAgICAgRGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbihXVEY6OlN0cmluZyBt
aW1lVHlwZSkKICAgICBOdW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkIGNvdW50
KQogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpCiAgICAgUGFnZURpZFJlcXVlc3RTY3JvbGwoV2ViQ29yZTo6SW50UG9pbnQgcG9p
bnQpCiAjZW5kaWYKICNpZiBQTEFURk9STShRVCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAJKHJldmlzaW9uIDk3NTY1KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDEsNyArNDAx
LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjcm9sbChjb25zdCBJbnRTaQogICAgIG1fcGFn
ZS0+ZHJhd2luZ0FyZWEoKS0+c2Nyb2xsKGludGVyc2VjdGlvbihzY3JvbGxSZWN0LCBjbGlwUmVj
dCksIHNjcm9sbE9mZnNldCk7CiB9CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkK
KyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkZWxl
Z2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmIHNjcm9sbE9mZnNldCkKIHsKICAg
ICBtX3BhZ2UtPnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKHNjcm9sbE9mZnNldCk7CkBAIC00MjcsNyAr
NDI3LDcgQEAgUGxhdGZvcm1QYWdlQ2xpZW50IFdlYkNocm9tZUNsaWVudDo6cGxhdAogdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBJ
bnRTaXplJiBzaXplKSBjb25zdAogewogI2lmIFBMQVRGT1JNKFFUKQotI2lmIEVOQUJMRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlmIChm
cmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKSA9PSBmcmFtZSkKICAgICAgICAgbV9wYWdlLT5yZXNp
emVUb0NvbnRlbnRzSWZOZWVkZWQoKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CShyZXZpc2lvbiA5NzU2NSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMiw3ICsxMTIsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3co
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBib29sKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIHNjcm9sbE9mZnNldCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpIE9WRVJSSURFOwotI2lmIEVOQUJM
RShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAg
IHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHNjcm9sbE9mZnNldCkgT1ZFUlJJREU7CiAjZW5kaWYKICAgICB2aXJ0dWFsIFdlYkNv
cmU6OkludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29u
c3QgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkocmV2
aXNpb24gOTc1NjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExNiw3ICsxMTE2
LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQwogCiAgICAgYm9v
bCBpc01haW5GcmFtZSA9IHdlYlBhZ2UtPm1haW5XZWJGcmFtZSgpID09IG1fZnJhbWU7CiAKLSNp
ZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9S
RSkKICAgICBJbnRTaXplIGN1cnJlbnRWaXNpYmxlQ29udGVudFNpemU7CiAgICAgSW50U2l6ZSBm
aXhlZExheW91dFNpemU7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAkocmV2aXNpb24gOTc1NjUpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw3ICsyOSw3IEBACiAvLyBTdWJjbGFzc2VzCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFJbXBs
LmgiCiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFD
S0lOR19TVE9SRSkKICNpbmNsdWRlICJUaWxlZERyYXdpbmdBcmVhLmgiCiAjZW5kaWYKIApAQCAt
NDIsNyArNDIsNyBAQCBQYXNzT3duUHRyPERyYXdpbmdBcmVhPiBEcmF3aW5nQXJlYTo6Y3JlCiAg
ICAgc3dpdGNoIChwYXJhbWV0ZXJzLmRyYXdpbmdBcmVhVHlwZSkgewogICAgIGNhc2UgRHJhd2lu
Z0FyZWFUeXBlSW1wbDoKICAgICAgICAgcmV0dXJuIERyYXdpbmdBcmVhSW1wbDo6Y3JlYXRlKHdl
YlBhZ2UsIHBhcmFtZXRlcnMpOwotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlVGlsZWQ6
CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGlsZWREcmF3aW5nQXJlYSh3ZWJQYWdlKSk7
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5oCShyZXZpc2lvbiA5NzU2NSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRQYWludGluZygpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCByZXN1bWVQYWludGluZygpIHsgfQogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2b2lk
IHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdmlld1NpemUpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgZmxvYXQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudFJlY3RU
cmFqZWN0b3J5VmVjdG9yKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKSB7IH0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWEubWVzc2FnZXMuaW4JKHJldmlzaW9uIDk3NTY1KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw3ICsyNiw3IEBAIG1lc3NhZ2VzIC0+IERyYXdpbmdBcmVhIHsKICAgICBTdXNwZW5kUGFpbnRp
bmcoKQogICAgIFJlc3VtZVBhaW50aW5nKCkKIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NU
T1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIFNldFNpemUoV2ViQ29yZTo6
SW50U2l6ZSB2aWV3U2l6ZSkKICAgICBTZXRWaXNpYmxlQ29udGVudFJlY3RBbmRTY2FsZShXZWJD
b3JlOjpJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdCwgZmxvYXQgc2NhbGUpCiAgICAgU2V0Vmlz
aWJsZUNvbnRlbnRSZWN0VHJhamVjdG9yeVZlY3RvcihXZWJDb3JlOjpGbG9hdFBvaW50IHRyYWpl
Y3RvcnlWZWN0b3IpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGls
ZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlLmNwcAkocmV2
aXNpb24gOTc1NjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRC
YWNraW5nU3RvcmVSZW1vdGVUaWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2luZ1N0b3JlUmVtb3Rl
VGlsZS5oIgogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRl
ICJJbWFnZUJ1ZmZlci5oIgpAQCAtMTQxLDQgKzE0MSw0IEBAIHZvaWQgVGlsZWRCYWNraW5nU3Rv
cmVSZW1vdGVUaWxlQmFja2VuZDoKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAv
LyBUSUxFRF9CQUNLSU5HX1NUT1JFCisjZW5kaWYgLy8gVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNraW5nU3Rv
cmVSZW1vdGVUaWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1RpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZS5oCShyZXZpc2lvbiA5NzU2NSkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90
ZVRpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBUaWxlZEJh
Y2tpbmdTdG9yZVJlbW90ZVRpbGVfaAogI2RlZmluZSBUaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRp
bGVfaAogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCiAKICNpbmNsdWRlICJUaWxlLmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5n
U3RvcmUuaCIKQEAgLTk0LDYgKzk0LDYgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKLSNlbmRpZiAvLyBUSUxFRF9CQUNLSU5HX1NUT1JFCisjZW5kaWYgLy8gVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCiAKICNlbmRpZiAvLyBUaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZERyYXdpbmdBcmVh
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGls
ZWREcmF3aW5nQXJlYS5jcHAJKHJldmlzaW9uIDk3NTY1KQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1RpbGVkRHJhd2luZ0FyZWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGlsZWREcmF3aW5n
QXJlYS5oIgogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCiAKICNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJNZXNzYWdlSUQuaCIKQEAgLTE3OSw0ICsxNzksNCBAQCB2b2lkIFRpbGVkRHJh
d2luZ0FyZWE6OnJlbW92ZVRpbGUoaW50IHRpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0j
ZW5kaWYgLy8gVElMRURfQkFDS0lOR19TVE9SRQorI2VuZGlmIC8vIFVTRShUSUxFRF9CQUNLSU5H
X1NUT1JFKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVkRHJh
d2luZ0FyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvVGlsZWREcmF3aW5nQXJlYS5oCShyZXZpc2lvbiA5NzU2NSkKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZERyYXdpbmdBcmVhLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgVGlsZWREcmF3aW5nQXJlYV9oCiAjZGVmaW5lIFRpbGVk
RHJhd2luZ0FyZWFfaAogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAKICNpbmNsdWRlICJEcmF3aW5nQXJlYS5oIgogI2luY2x1
ZGUgIlRpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgiCkBAIC04NSw2ICs4NSw2IEBAIHByaXZhdGU6
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gVElMRURfQkFDS0lOR19TVE9S
RQorI2VuZGlmIC8vIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogCiAjZW5kaWYgLy8gVGlsZWRE
cmF3aW5nQXJlYV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCShyZXZpc2lvbiA5NzU2NSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjY3LDcgKzY2Nyw3IEBA
IHZvaWQgV2ViUGFnZTo6c2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnQKIHsKICAgICBGcmFtZVZp
ZXcqIHZpZXcgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCk7CiAKLSNpZiBFTkFCTEUoVElM
RURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICAvLyBJ
ZiB3ZSBhcmUgcmVzaXppbmcgdG8gY29udGVudCBpZ25vcmUgZXh0ZXJuYWwgYXR0ZW1wdHMuCiAg
ICAgaWYgKHZpZXctPnVzZUZpeGVkTGF5b3V0KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTY4Myw3
ICs2ODMsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50CiAgICAg
bV92aWV3U2l6ZSA9IHZpZXdTaXplOwogfQogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiB2b2lkIFdlYlBhZ2U6OnNldEZpeGVk
VmlzaWJsZUNvbnRlbnRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgRnJhbWUqIGZy
YW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsKQEAgLTk4Niw3ICs5ODYsNyBAQCB2b2lkIFdlYlBh
Z2U6OnBhZ2VEaWRTY3JvbGwoKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UGFn
ZURpZFNjcm9sbCgpKTsKIH0KIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogdm9pZCBXZWJQYWdlOjpwYWdlRGlkUmVxdWVzdFNj
cm9sbChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpQYWdlRGlkUmVxdWVzdFNjcm9sbChwb2ludCkpOwpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiA5NzU2NSkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwNSw3ICszMDUsNyBAQCBwdWJsaWM6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXImIGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgeyByZXR1
cm4gbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsgfQogCiAgICAgdm9pZCBw
YWdlRGlkU2Nyb2xsKCk7Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYpOwogICAgIHZvaWQgc2V0Rml4ZWRWaXNpYmxlQ29udGVudFJl
Y3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZvaWQgc2V0UmVzaXplc1RvQ29udGVu
dHNVc2luZ0xheW91dFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdGFyZ2V0TGF5b3V0U2l6
ZSk7CkBAIC02NTYsNyArNjU2LDcgQEAgcHJpdmF0ZToKICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VG
dWxsU2NyZWVuQ2xpZW50IG1fZnVsbFNjcmVlbkNsaWVudDsKICNlbmRpZgogCi0jaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAg
V2ViQ29yZTo6SW50U2l6ZSBtX3Jlc2l6ZXNUb0NvbnRlbnRzTGF5b3V0U2l6ZTsKICNlbmRpZgog
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgkocmV2aXNpb24gOTc1NjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtOTUs
NyArOTUsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIHsKICAgICBTZXRVc2VyQWdlbnQoV1RGOjpT
dHJpbmcgdXNlckFnZW50KQogICAgIFNldEN1c3RvbVRleHRFbmNvZGluZ05hbWUoV1RGOjpTdHJp
bmcgZW5jb2RpbmdOYW1lKQogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYg
VVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgU2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3Qo
V2ViQ29yZTo6SW50UmVjdCByZWN0KQogICAgIFNldFJlc2l6ZXNUb0NvbnRlbnRzVXNpbmdMYXlv
dXRTaXplKFdlYkNvcmU6OkludFNpemUgc2l6ZSkKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDk3NTY4KQorKysgU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0xMC0xNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgorCisgICAgICAgIFJlbmFtZSBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkg
dG8gVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MDE5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwOgorICAgICAgICAo
UUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6Ol9xX3NjYWxlQ2hhbmdlZCk6CisgICAgICAgIChRR3Jh
cGhpY3NXZWJWaWV3OjpRR3JhcGhpY3NXZWJWaWV3KToKKyAgICAgICAgKFFHcmFwaGljc1dlYlZp
ZXc6OnBhaW50KToKKyAgICAgICAgKFFHcmFwaGljc1dlYlZpZXc6OmlzVGlsZWRCYWNraW5nU3Rv
cmVGcm96ZW4pOgorICAgICAgICAoUUdyYXBoaWNzV2ViVmlldzo6c2V0VGlsZWRCYWNraW5nU3Rv
cmVGcm96ZW4pOgorICAgICAgICAqIEFwaS9xd2ViZnJhbWUuY3BwOgorICAgICAgICAqIEFwaS9x
d2ViZnJhbWVfcC5oOgorICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChRV2Vi
UGFnZVByaXZhdGU6OmR5bmFtaWNQcm9wZXJ0eUNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBBcGkv
cXdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKFFXZWJTZXR0aW5nc1ByaXZhdGU6OmFwcGx5KToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Q
YWdlQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNsaWVudFFHcmFwaGljc1dp
ZGdldDo6Y3JlYXRlT3JEZWxldGVPdmVybGF5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Q
YWdlQ2xpZW50UXQuaDoKKyAgICAgICAgKiB0ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3RzdF9xZ3Jh
cGhpY3N3ZWJ2aWV3LmNwcDoKKwogMjAxMS0xMC0xNSAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4x
LmdvbWJvc0Bub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBbU3ltYmlhbl0gUmVtb3ZlIHN1cHBv
cnQgZm9yIHRoZSBTeW1iaWFuIHBsYXRmb3JtIGZvciB0aGUgUXRXZWJLaXQgcG9ydApJbmRleDog
U291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAJKHJldmlzaW9uIDk3NTY1
KQorKysgU291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFFHcmFwaGljc1dlYlZpZXdQcml2YXRlOjpf
cV9jb250ZW50CiAKIHZvaWQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6Ol9xX3NjYWxlQ2hhbmdl
ZCgpCiB7Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAgICAgcGFnZUNs
aWVudCgpLT51cGRhdGVUaWxlZEJhY2tpbmdTdG9yZVNjYWxlKCk7CkBAIC0yNDQsNyArMjQ0LDcg
QEAgUUdyYXBoaWNzV2ViVmlldzo6UUdyYXBoaWNzV2ViVmlldyhRR3JhcAogICAgIHNldEFjY2Vw
dFRvdWNoRXZlbnRzKHRydWUpOwogICAgIHNldEZvY3VzUG9saWN5KFF0OjpTdHJvbmdGb2N1cyk7
CiAgICAgc2V0RmxhZyhRR3JhcGhpY3NJdGVtOjpJdGVtQ2xpcHNDaGlsZHJlblRvU2hhcGUsIHRy
dWUpOwotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQogICAgIFFPYmplY3Q6OmNvbm5lY3QodGhpcywgU0lHTkFMKHNjYWxlQ2hhbmdl
ZCgpKSwgdGhpcywgU0xPVChfcV9zY2FsZUNoYW5nZWQoKSkpOwogI2VuZGlmCiB9CkBAIC0yODYs
NyArMjg2LDcgQEAgdm9pZCBRR3JhcGhpY3NXZWJWaWV3OjpwYWludChRUGFpbnRlciogcAogewog
ICAgIFFQYWludGVyOjpSZW5kZXJIaW50cyBvbGRIaW50cyA9IHBhaW50ZXItPnJlbmRlckhpbnRz
KCk7CiAgICAgcGFpbnRlci0+c2V0UmVuZGVySGludHMob2xkSGludHMgfCBkLT5yZW5kZXJIaW50
cyk7Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpCiAgICAgaWYgKFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0b3JlKiBiYWNraW5nU3Rv
cmUgPSBRV2ViRnJhbWVQcml2YXRlOjpjb3JlKHBhZ2UoKS0+bWFpbkZyYW1lKCkpLT50aWxlZEJh
Y2tpbmdTdG9yZSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc2V0IHRoZSBiYWNr
aW5nIHN0b3JlIHZpZXdwb3J0IGVhcmxpZXIgdGhhbiBpbiBwYWludAogICAgICAgICBiYWNraW5n
U3RvcmUtPmFkanVzdFZpc2libGVSZWN0KCk7CkBAIC05MDksNyArOTA5LDcgQEAgYm9vbCBRR3Jh
cGhpY3NXZWJWaWV3OjpyZXNpemVzVG9Db250ZW50cwogKi8KIGJvb2wgUUdyYXBoaWNzV2ViVmll
dzo6aXNUaWxlZEJhY2tpbmdTdG9yZUZyb3plbigpIGNvbnN0CiB7Ci0jaWYgRU5BQkxFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgV2ViQ29y
ZTo6VGlsZWRCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSA9IFFXZWJGcmFtZVByaXZhdGU6OmNv
cmUocGFnZSgpLT5tYWluRnJhbWUoKSktPnRpbGVkQmFja2luZ1N0b3JlKCk7CiAgICAgaWYgKCFi
YWNraW5nU3RvcmUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTkyMSw3ICs5MjEsNyBAQCBi
b29sIFFHcmFwaGljc1dlYlZpZXc6OmlzVGlsZWRCYWNraW5nU3RvCiAKIHZvaWQgUUdyYXBoaWNz
V2ViVmlldzo6c2V0VGlsZWRCYWNraW5nU3RvcmVGcm96ZW4oYm9vbCBmcm96ZW4pCiB7Ci0jaWYg
RU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
CiAgICAgV2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSA9IFFXZWJGcmFt
ZVByaXZhdGU6OmNvcmUocGFnZSgpLT5tYWluRnJhbWUoKSktPnRpbGVkQmFja2luZ1N0b3JlKCk7
CiAgICAgaWYgKCFiYWNraW5nU3RvcmUpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9x
dC9BcGkvcXdlYmZyYW1lLmNwcAkocmV2aXNpb24gOTc1NjUpCisrKyBTb3VyY2UvV2ViS2l0L3F0
L0FwaS9xd2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODIsNyArMjgyLDcgQEAgV2Vi
Q29yZTo6U2Nyb2xsYmFyKiBRV2ViRnJhbWVQcml2YXRlOjp2ZQogICAgIHJldHVybiBmcmFtZS0+
dmlldygpLT52ZXJ0aWNhbFNjcm9sbGJhcigpOwogfQogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiB2b2lkIFFXZWJGcmFtZVBy
aXZhdGU6OnJlbmRlckZyb21UaWxlZEJhY2tpbmdTdG9yZShHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFFSZWdpb24mIGNsaXApCiB7CiAgICAgQVNTRVJUKGZyYW1lLT50aWxlZEJhY2tp
bmdTdG9yZSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZV9wLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lX3AuaAkocmV2aXNpb24g
OTc1NjUpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWVfcC5oCSh3b3JraW5nIGNv
cHkpCkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUVdlYkZyYW1lKiBraXQo
Y29uc3QgV2ViQ29yZTo6RnJhbWUqKTsKIAogICAgIHZvaWQgcmVuZGVyUmVsYXRpdmVDb29yZHMo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgUUZsYWdzPFFXZWJGcmFtZTo6UmVuZGVyTGF5ZXI+
LCBjb25zdCBRUmVnaW9uJiBjbGlwKTsKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkK
KyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICB2b2lkIHJlbmRlckZyb21UaWxlZEJh
Y2tpbmdTdG9yZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBRUmVnaW9uJiBjbGlw
KTsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCShyZXZpc2lvbiA5
NzU2NSkKKysrIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTIwMSw3ICsxMjAxLDcgQEAgdm9pZCBRV2ViUGFnZVByaXZhdGU6OmR5bmFtaWNQcm9w
ZXJ0eUNoYQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotI2lmIEVOQUJMRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGVsc2Ug
aWYgKGV2ZW50LT5wcm9wZXJ0eU5hbWUoKSA9PSAiX3FfVGlsZWRCYWNraW5nU3RvcmVUaWxlU2l6
ZSIpIHsKICAgICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gUVdlYkZyYW1lUHJpdmF0ZTo6
Y29yZShxLT5tYWluRnJhbWUoKSk7CiAgICAgICAgIGlmICghZnJhbWUtPnRpbGVkQmFja2luZ1N0
b3JlKCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAJKHJldmlzaW9u
IDk3NTY1KQorKysgU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgUVdlYlNldHRpbmdzUHJpdmF0ZTo6YXBw
bHkoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwtPmF0dHJp
YnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpYU1NBdWRpdGluZ0VuYWJsZWQpKTsKICAgICAgICAg
c2V0dGluZ3MtPnNldFhTU0F1ZGl0b3JFbmFibGVkKHZhbHVlKTsKIAotI2lmIEVOQUJMRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgICAgICB2
YWx1ZSA9IGF0dHJpYnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpUaWxlZEJhY2tpbmdTdG9yZUVu
YWJsZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0
cmlidXRlcy52YWx1ZShRV2ViU2V0dGluZ3M6OlRpbGVkQmFja2luZ1N0b3JlRW5hYmxlZCkpOwog
ICAgICAgICBzZXR0aW5ncy0+c2V0VGlsZWRCYWNraW5nU3RvcmVFbmFibGVkKHZhbHVlKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuY3BwCShyZXZpc2lvbiA5NzU2NSkKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDQsNyArNDA0LDcgQEAg
SW50UmVjdCBDaHJvbWVDbGllbnRRdDo6d2luZG93UmVzaXplclJlYwogCiB2b2lkIENocm9tZUNs
aWVudFF0OjppbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wp
CiB7Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpCiAgICAgaWYgKHBsYXRmb3JtUGFnZUNsaWVudCgpKSB7CiAgICAgICAgIFdlYkNv
cmU6OlRpbGVkQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUgPSBRV2ViRnJhbWVQcml2YXRlOjpj
b3JlKG1fd2ViUGFnZS0+bWFpbkZyYW1lKCkpLT50aWxlZEJhY2tpbmdTdG9yZSgpOwogICAgICAg
ICBpZiAoIWJhY2tpbmdTdG9yZSkKQEAgLTQ0Myw3ICs0NDMsNyBAQCB2b2lkIENocm9tZUNsaWVu
dFF0OjpzY3JvbGwoY29uc3QgSW50U2l6CiAgICAgZW1pdCBtX3dlYlBhZ2UtPnNjcm9sbFJlcXVl
c3RlZChkZWx0YS53aWR0aCgpLCBkZWx0YS5oZWlnaHQoKSwgc2Nyb2xsVmlld1JlY3QpOwogfQog
Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdf
U1RPUkUpCiB2b2lkIENocm9tZUNsaWVudFF0OjpkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29u
c3QgSW50UG9pbnQmIHBvaW50KQogewogICAgIFFQb2ludCBjdXJyZW50UG9zaXRpb24obV93ZWJQ
YWdlLT5tYWluRnJhbWUoKS0+c2Nyb2xsUG9zaXRpb24oKSk7CkBAIC02NDksNyArNjQ5LDcgQEAg
Q2hyb21lQ2xpZW50OjpDb21wb3NpdGluZ1RyaWdnZXJGbGFncyBDaAogCiAjZW5kaWYKIAotI2lm
IEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQogSW50UmVjdCBDaHJvbWVDbGllbnRRdDo6dmlzaWJsZVJlY3RGb3JUaWxlZEJhY2tpbmdTdG9y
ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFwbGF0Zm9ybVBhZ2VDbGllbnQoKSB8fCAhbV93ZWJQYWdl
KQpJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuaAkocmV2aXNpb24gOTc1NjUpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25z
dCBJbnRSZWN0JiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0Zv
clNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYsIGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9s
bCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpOwotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NU
T1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZpcnR1YWwgdm9pZCBkZWxl
Z2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvaW50KTsKICNlbmRp
ZgogCkBAIC0xNTUsNyArMTU1LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgdmlydHVhbCBib29s
IGFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdDsKIAotI2lmIEVOQUJMRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZpcnR1
YWwgSW50UmVjdCB2aXNpYmxlUmVjdEZvclRpbGVkQmFja2luZ1N0b3JlKCkgY29uc3Q7CiAjZW5k
aWYKIApJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNs
aWVudFF0LmNwcAkocmV2aXNpb24gOTc1NjUpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L1BhZ2VDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxOSw3ICsyMTksNyBA
QCB2b2lkIFBhZ2VDbGllbnRRR3JhcGhpY3NXaWRnZXQ6OmNyZWF0ZU9yCiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICB1c2VPdmVybGF5ID0gdXNlT3ZlcmxheSB8fCBy
b290R3JhcGhpY3NMYXllcjsKICNlbmRpZgotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgICAgICB1c2VPdmVybGF5ID0gdXNl
T3ZlcmxheSB8fCBRV2ViRnJhbWVQcml2YXRlOjpjb3JlKHBhZ2UtPm1haW5GcmFtZSgpKS0+dGls
ZWRCYWNraW5nU3RvcmUoKTsKICNlbmRpZgogICAgIH0KQEAgLTMwNCw3ICszMDQsNyBAQCB2b2lk
IFBhZ2VDbGllbnRRR3JhcGhpY3NXaWRnZXQ6Om1hcmtGb3JTCiAKICNlbmRpZgogCi0jaWYgRU5B
QkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiB2
b2lkIFBhZ2VDbGllbnRRR3JhcGhpY3NXaWRnZXQ6OnVwZGF0ZVRpbGVkQmFja2luZ1N0b3JlU2Nh
bGUoKQogewogICAgIFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUgPSBR
V2ViRnJhbWVQcml2YXRlOjpjb3JlKHBhZ2UtPm1haW5GcmFtZSgpKS0+dGlsZWRCYWNraW5nU3Rv
cmUoKTsKQEAgLTM4Miw3ICszODIsNyBAQCBRUmVjdCBQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0
OjpnZW9tZXRyCiAgICAgcmV0dXJuIGdyYXBoaWNzVmlldy0+bWFwRnJvbVNjZW5lKHZpZXctPmJv
dW5kaW5nUmVjdCgpKS5ib3VuZGluZ1JlY3QoKTsKIH0KIAotI2lmIEVOQUJMRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogUVJlY3RGIFBhZ2VDbGll
bnRRR3JhcGhpY3NXaWRnZXQ6OmdyYXBoaWNzSXRlbVZpc2libGVSZWN0KCkgY29uc3QKIHsKICAg
ICBpZiAoIXZpZXctPnNjZW5lKCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1BhZ2VDbGllbnRRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvUGFnZUNsaWVudFF0LmgJKHJldmlzaW9uIDk3NTY1KQorKysgU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpAQCAtMjAx
LDcgKzIwMSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY3JlYXRlT3JEZWxldGVPdmVybGF5KCk7
CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lO
R19TVE9SRSkKICAgICB2b2lkIHVwZGF0ZVRpbGVkQmFja2luZ1N0b3JlU2NhbGUoKTsKICAgICB2
aXJ0dWFsIFFSZWN0RiBncmFwaGljc0l0ZW1WaXNpYmxlUmVjdCgpIGNvbnN0OwogI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFwaGlj
c3dlYnZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWdyYXBo
aWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vidmlldy5jcHAJKHJldmlzaW9uIDk3NTY1KQorKysg
U291cmNlL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3RzdF9xZ3JhcGhpY3N3ZWJ2
aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlIHNsb3RzOgog
ICAgIHZvaWQgc2V0UGFsZXR0ZSgpOwogI2VuZGlmCiAgICAgdm9pZCByZW5kZXJIaW50cygpOwot
I2lmIGRlZmluZWQoRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkUpICYmIEVOQUJMRV9USUxFRF9C
QUNLSU5HX1NUT1JFCisjaWYgZGVmaW5lZChXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUpICYm
IFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRQogICAgIHZvaWQgYnVnNTY5MjkoKTsKICNlbmRp
ZgogI2lmIGRlZmluZWQoRU5BQkxFX1dFQkdMKSAmJiBFTkFCTEVfV0VCR0wKQEAgLTIwMCw3ICsy
MDAsNyBAQCB2b2lkIHRzdF9RR3JhcGhpY3NXZWJWaWV3Ojp3aWRnZXRzUmVuZGVyCiAgICAgUUNP
TVBBUkUocmVmZXJlbmNlUGl4bWFwLnRvSW1hZ2UoKSwgdmlld1dpdGhUaWxpbmcudG9JbWFnZSgp
KTsKIH0KIAotI2lmIGRlZmluZWQoRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkUpICYmIEVOQUJM
RV9USUxFRF9CQUNLSU5HX1NUT1JFCisjaWYgZGVmaW5lZChXVEZfVVNFX1RJTEVEX0JBQ0tJTkdf
U1RPUkUpICYmIFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRQogdm9pZCB0c3RfUUdyYXBoaWNz
V2ViVmlldzo6YnVnNTY5MjkoKQogewogICAgIC8vIFdoZW4gcmVuZGVyaW5nIGZyb20gdGlsZXMg
c3ljaHJvbm91cyBsYXlvdXQgc2hvdWxkIG5vdCBiZSB0cmlnZ2VyZWQKSW5kZXg6IFRvb2xzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NTY4KQor
KysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEt
MTAtMTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUg
RU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpIHRvIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxOTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
YnVpbGQtd2Via2l0OgorCiAyMDExLTEwLTE1ICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgcnVuLXdlYmtpdC10ZXN0cyBzaG91bGQgYWNjZXB0IC0tY2hpbGQtcHJv
Y2Vzc2VzCkluZGV4OiBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkocmV2aXNpb24gOTc1NjUpCisrKyBUb29scy9TY3Jp
cHRzL2J1aWxkLXdlYmtpdAkod29ya2luZyBjb3B5KQpAQCAtMzAzLDcgKzMwMyw3IEBAIG15IEBm
ZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1NWR19GT05UUyIsIGRlZmF1bHQg
PT4gMSwgdmFsdWUgPT4gXCRzdmdGb250c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ0
aWxlZC1iYWNraW5nLXN0b3JlIiwgZGVzYyA9PiAiVG9nZ2xlIFRpbGVkIEJhY2tpbmcgU3RvcmUg
c3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9USUxFRF9CQUNLSU5HX1NUT1JFIiwg
ZGVmYXVsdCA9PiBpc1F0KCksIHZhbHVlID0+IFwkdGlsZWRCYWNraW5nU3RvcmVTdXBwb3J0IH0s
CisgICAgICBkZWZpbmUgPT4gIldURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRSIsIGRlZmF1bHQg
PT4gaXNRdCgpLCB2YWx1ZSA9PiBcJHRpbGVkQmFja2luZ1N0b3JlU3VwcG9ydCB9LAogCiAgICAg
eyBvcHRpb24gPT4gInRvdWNoLWV2ZW50cyIsIGRlc2MgPT4gIlRvZ2dsZSBUb3VjaCBFdmVudHMg
c3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9UT1VDSF9FVkVOVFMiLCBkZWZhdWx0
ID0+IGlzUXQoKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111169</attachid>
            <date>2011-10-15 20:07:58 -0700</date>
            <delta_ts>2011-10-15 21:34:30 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-70194-20111015200801.patch</filename>
            <type>text/plain</type>
            <size>51565</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NTY4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMTAtMTUgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgRU5BQkxFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpIHRvIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxOTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBEYW5pZWwgQmF0ZXMuCisKKyAgICAgICAgVElMRURfQkFDS0lOR19TVE9SRSBpc24ndCBh
IHdlYiBwbGF0Zm9ybSBmZWF0dXJlLiAgSXQncyBhbgorICAgICAgICBpbXBsZW1lbnRhdGlvbiBz
dHJhdGVneSBmb3IgV2ViS2l0IHRoYXQncyB1c2VkIGJ5IHNvbWUgcG9ydHMKKyAgICAgICAgYW5k
IG5vdCBieSBvdGhlcnMuCisKKyAgICAgICAgKiBmZWF0dXJlcy5wcmk6CisgICAgICAgICogbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAg
KiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAg
ICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6RnJhbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWU6OnNldFZpZXcpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6ZG9EZWZlcnJlZFJlcGFpbnRzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRUaWxlZEJhY2tpbmdTdG9yZUVuYWJsZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL0hvc3RXaW5kb3cuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0
aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UaWxlLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvVGlsZWRCYWNraW5nU3RvcmVCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvVGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9HcmFwaGljc0xheWVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
clF0SW1wbDo6R3JhcGhpY3NMYXllclF0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyUXRJbXBsOjp+R3JhcGhpY3NMYXllclF0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyUXRJbXBsOjpyZWNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJRdEltcGw6OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9UaWxl
UXQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1RpbGVRdC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTm9kZTo6Y29tcHV0ZVRpbGVzKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpyZW5kZXJDb250ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlRleHR1cmVNYXBwZXJOb2RlOjpwYWludFNlbGYpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dHVyZU1hcHBlck5vZGU6OnN5bmNDb21wb3NpdGluZ1N0YXRlU2VsZik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyTm9kZTo6U3RhdGU6OlN0YXRlKToKKwogMjAxMS0xMC0xNSAg
RGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyOTc1
MzMpOiBmYXN0L2Zvcm1zL3NlbGVjdC1zY3JpcHQtb25jaGFuZ2UuaHRtbCBmYWlsZWQgYWZ0ZXIK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9mZWF0dXJlcy5wcmkJKHJldmlzaW9uIDk3NTY4KQorKysgU291cmNlL1dlYkNvcmUv
ZmVhdHVyZXMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC04NSw3ICs4NSw3IEBAIGlzRW1wdHkoSEFW
RV9RUkFXRk9OVCkgewogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9EQVRBTElTVD0uKTogREVG
SU5FUyArPSBFTkFCTEVfREFUQUxJU1Q9MQogCiAjIFRpbGVkIEJhY2tpbmcgU3RvcmUgc3VwcG9y
dAotIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9USUxFRF9CQUNLSU5HX1NUT1JFPS4pOiBERUZJ
TkVTICs9IEVOQUJMRV9USUxFRF9CQUNLSU5HX1NUT1JFPTEKKyFjb250YWlucyhERUZJTkVTLCBX
VEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9Lik6IERFRklORVMgKz0gV1RGX1VTRV9USUxFRF9C
QUNLSU5HX1NUT1JFPTEKIAogIyBOZXNjYXBlIHBsdWdpbnMgc3VwcG9ydCAoTlBBUEkpCiAhY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEk9LikgewpAQCAtMjAxLDcg
KzIwMSw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9HQU1FUEFEPTEpOiBGRUEKIGNvbnRh
aW5zKERFRklORVMsIEVOQUJMRV9XRUJfU09DS0VUUz0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFT
Q1JJUFQgKz0gRU5BQkxFX1dFQl9TT0NLRVRTPTEKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9X
RUJfVElNSU5HPTEpOiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfV0VCX1RJ
TUlORz0xCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfVE9VQ0hfRVZFTlRTPTEpOiBGRUFUVVJF
X0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfVE9VQ0hfRVZFTlRTPTEKLWNvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9USUxFRF9CQUNLSU5HX1NUT1JFPTEpOiBGRUFUVVJFX0RFRklORVNfSkFW
QVNDUklQVCArPSBFTkFCTEVfVElMRURfQkFDS0lOR19TVE9SRT0xCitjb250YWlucyhERUZJTkVT
LCBXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9MSk6IEZFQVRVUkVfREVGSU5FU19KQVZBU0NS
SVBUICs9IFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRT0xCiBjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfTk9USUZJQ0FUSU9OUz0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5B
QkxFX05PVElGSUNBVElPTlM9MQogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RFVEFJTFM9MSk6
IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9ERVRBSUxTPTEKIGNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9NRVRFUl9UQUc9MSk6IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBU
ICs9IEVOQUJMRV9NRVRFUl9UQUc9MQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaAkocmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2MSw3ICsxNjEsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9v
bCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwo
Y29uc3QgSW50UmVjdCYsIGJvb2wpIHt9OwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3Qg
SW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikgeyB9Ci0jaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAg
dmlydHVhbCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRQb2ludCYpIHsg
fQogI2VuZGlmCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAmJiAhVVNFKFJF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAko
cmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBDaHJvbWU6OnNjcm9sbChjb25zdCBJbnRT
aXplJiBzY3JvbAogICAgIG1fY2xpZW50LT5zY3JvbGwoc2Nyb2xsRGVsdGEsIHJlY3RUb1Njcm9s
bCwgY2xpcFJlY3QpOwogfQogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYg
VVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiB2b2lkIENocm9tZTo6ZGVsZWdhdGVkU2Nyb2xsUmVx
dWVzdGVkKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb2ludCkKIHsKICAgICBtX2NsaWVudC0+ZGVs
ZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKHNjcm9sbFBvaW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aAkocmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0Jiwg
Ym9vbCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Ny
b2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChj
b25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKTsKLSNpZiBFTkFC
TEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAg
ICAgICAgdmlydHVhbCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRQb2lu
dCYgc2Nyb2xsUG9pbnQpOwogI2VuZGlmCiAgICAgICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVu
VG9XaW5kb3coY29uc3QgSW50UG9pbnQmKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAkocmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTAsNyArMTUwLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93
KGNvbnN0IEludFJlY3QmLCBib29sKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlk
YXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKSA9IDA7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBj
b25zdCBJbnRSZWN0JikgPSAwOwotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVk
U2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50JikgPSAwOwogI2VuZGlmCiAgICAgICAgIHZp
cnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7
CkBAIC0yODgsNyArMjg4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFs
IHZvaWQgc2V0Um9vdEZ1bGxTY3JlZW5MYXllcihHcmFwaGljc0xheWVyKikgeyB9CiAjZW5kaWYK
ICAgICAgICAgCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCiAgICAgICAgIHZpcnR1YWwgSW50UmVjdCB2aXNpYmxlUmVjdEZvclRp
bGVkQmFja2luZ1N0b3JlKCkgY29uc3QgeyByZXR1cm4gSW50UmVjdCgpOyB9CiAjZW5kaWYKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHJldmlzaW9uIDk3NTY4KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMiw3ICsxMTIsNyBAQAogI2lu
Y2x1ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoVElM
RURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICNpbmNsdWRl
ICJUaWxlZEJhY2tpbmdTdG9yZS5oIgogI2VuZGlmCiAKQEAgLTE4Myw3ICsxODMsNyBAQCBpbmxp
bmUgRnJhbWU6OkZyYW1lKFBhZ2UqIHBhZ2UsIEhUTUxGcmFtCiAgICAgV2ViS2l0Rm9udEZhbWls
eU5hbWVzOjppbml0KCk7CiAKICAgICBpZiAoIW93bmVyRWxlbWVudCkgewotI2lmIEVOQUJMRShU
SUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgICAg
ICAvLyBUb3AgbGV2ZWwgZnJhbWUgb25seSBmb3Igbm93LgogICAgICAgICBzZXRUaWxlZEJhY2tp
bmdTdG9yZUVuYWJsZWQocGFnZS0+c2V0dGluZ3MoKS0+dGlsZWRCYWNraW5nU3RvcmVFbmFibGVk
KCkpOwogI2VuZGlmCkBAIC0yODIsNyArMjgyLDcgQEAgdm9pZCBGcmFtZTo6c2V0VmlldyhQYXNz
UmVmUHRyPEZyYW1lVmlldwogICAgIC8vIHB1bGxlZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUsIHJlc2V0IHRoaXMgZmxhZy4KICAgICBsb2FkZXIoKS0+cmVzZXRNdWx0aXBsZUZvcm1TdWJt
aXNzaW9uUHJvdGVjdGlvbigpOwogICAgIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlmIChtX3ZpZXcgJiYgdGlsZWRC
YWNraW5nU3RvcmUoKSkKICAgICAgICAgbV92aWV3LT5zZXRQYWludHNFbnRpcmVDb250ZW50cyh0
cnVlKTsKICNlbmRpZgpAQCAtODg2LDcgKzg4Niw3IEBAIHZvaWQgRnJhbWU6OmNyZWF0ZVZpZXco
Y29uc3QgSW50U2l6ZSYgdmkKICAgICAgICAgdmlldygpLT5zZXRDYW5IYXZlU2Nyb2xsYmFycyhv
d25lci0+c2Nyb2xsaW5nTW9kZSgpICE9IFNjcm9sbGJhckFsd2F5c09mZik7CiB9CiAKLSNpZiBF
TkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkK
IHZvaWQgRnJhbWU6OnNldFRpbGVkQmFja2luZ1N0b3JlRW5hYmxlZChib29sIGVuYWJsZWQpCiB7
CiAgICAgaWYgKCFlbmFibGVkKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCShyZXZpc2lvbiA5NzU2
OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDQs
NyArNDQsNyBAQAogI2luY2x1ZGUgIkZyYW1lV2luLmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShU
SUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogI2luY2x1
ZGUgIlRpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgiCiAjZW5kaWYKIApAQCAtNzAsNyArNzAsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUmVuZGVyUGFydDsKICAgICBjbGFzcyBU
aWxlZEJhY2tpbmdTdG9yZTsKIAotI2lmICFFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNp
ZiAhVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgY2xhc3MgVGlsZWRCYWNraW5nU3RvcmVD
bGllbnQgeyB9OwogI2VuZGlmCiAKQEAgLTI0Niw3ICsyNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIGJvb2wgbV9pc0Rpc2Nvbm5lY3RlZDsKICAgICAgICAgYm9vbCBtX2V4Y2x1
ZGVGcm9tVGV4dFNlYXJjaDsKIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIC8vIEZJWE1FOiBUaGUgdGlsZWQgYmFja2lu
ZyBzdG9yZSBiZWxvbmdzIGluIEZyYW1lVmlldywgbm90IEZyYW1lLgogCiAgICAgcHVibGljOgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gOTc1NjgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4
LDcgQEAKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShU
SUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogI2luY2x1
ZGUgIlRpbGVkQmFja2luZ1N0b3JlLmgiCiAjZW5kaWYKIApAQCAtMTc2NSw3ICsxNzY1LDcgQEAg
dm9pZCBGcmFtZVZpZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKAogICAgIGlmICghc2hvdWxk
VXBkYXRlKGltbWVkaWF0ZSkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIEVOQUJMRShUSUxFRF9C
QUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlmIChmcmFt
ZSgpLT50aWxlZEJhY2tpbmdTdG9yZSgpKSB7CiAgICAgICAgIGZyYW1lKCktPnRpbGVkQmFja2lu
Z1N0b3JlKCktPmludmFsaWRhdGUocik7CiAgICAgICAgIHJldHVybjsKQEAgLTE4NTYsNyArMTg1
Niw3IEBAIHZvaWQgRnJhbWVWaWV3Ojpkb0RlZmVycmVkUmVwYWludHMoKQogICAgIH0KICAgICB1
bnNpZ25lZCBzaXplID0gbV9yZXBhaW50UmVjdHMuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkK
KyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICAgICAgaWYgKGZyYW1lKCktPnRpbGVk
QmFja2luZ1N0b3JlKCkpIHsKICAgICAgICAgICAgIGZyYW1lKCktPnRpbGVkQmFja2luZ1N0b3Jl
KCktPmludmFsaWRhdGUobV9yZXBhaW50UmVjdHNbaV0pOwogICAgICAgICAgICAgY29udGludWU7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkocmV2aXNpb24gOTc1NjgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODA5LDcgKzgw
OSw3IEBAIHZvaWQgU2V0dGluZ3M6OnNldExvYWREZWZlcnJpbmdFbmFibGVkKGIKIHZvaWQgU2V0
dGluZ3M6OnNldFRpbGVkQmFja2luZ1N0b3JlRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAg
bV90aWxlZEJhY2tpbmdTdG9yZUVuYWJsZWQgPSBlbmFibGVkOwotI2lmIEVOQUJMRShUSUxFRF9C
QUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlmIChtX3Bh
Z2UtPm1haW5GcmFtZSgpKQogICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5zZXRUaWxlZEJh
Y2tpbmdTdG9yZUVuYWJsZWQoZW5hYmxlZCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0hvc3RXaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Ib3N0V2luZG93LmgJKHJldmlzaW9uIDk3NTY4KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vSG9zdFdpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIHB1Ymxp
YzoKICAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlkYXRlIHRoZSBjb250ZW50cywgbm90
IHRoZSB3aW5kb3cuICBUaGlzIGlzIHRoZSBzbG93IHBhdGggZm9yIHNjcm9sbGluZy4KICAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0
JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkgPSAwOwogCi0jaWYgRU5BQkxFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgLy8gUmVxdWVz
dHMgdGhlIGhvc3QgdG8gZG8gdGhlIGFjdHVhbCBzY3JvbGxpbmcuIFRoaXMgaXMgb25seSB1c2Vk
IGluIGNvbWJpbmF0aW9uIHdpdGggYSB0aWxlZCBiYWNraW5nIHN0b3JlLgogICAgIHZpcnR1YWwg
dm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvaW50
KSA9IDA7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
CShyZXZpc2lvbiA5NzU2OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzYsNyArMzc2LDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojpz
ZXRTY3JvbGxQb3NpdGlvbihjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgRU5B
QkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAg
ICAgaWYgKGRlbGVnYXRlc1Njcm9sbGluZygpKSB7CiAgICAgICAgIGhvc3RXaW5kb3coKS0+ZGVs
ZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKHNjcm9sbFBvaW50KTsKICAgICAgICAgcmV0dXJuOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGUuaAkocmV2aXNpb24gOTc1Njgp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIwLDcgKzIwLDcgQEAKICNpZm5kZWYgVGlsZV9oCiAjZGVmaW5lIFRpbGVfaAogCi0j
aWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCiAKICNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1ZGUgIkludFBvaW50SGFzaC5oIgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVk
QmFja2luZ1N0b3JlLmNwcAkocmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIw
LDcgKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmdT
dG9yZS5oIgogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRl
ICJUaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5oCShyZXZpc2lvbiA5NzU2
OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3Jl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDcgKzIwLDcgQEAKICNpZm5kZWYgVGlsZWRCYWNraW5n
U3RvcmVfaAogI2RlZmluZSBUaWxlZEJhY2tpbmdTdG9yZV9oCiAKLSNpZiBFTkFCTEUoVElMRURf
QkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKIAogI2luY2x1ZGUg
IkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJJbnRQb2ludC5oIgpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmVCYWNrZW5kLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmVC
YWNrZW5kLmgJKHJldmlzaW9uIDk3NTY4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVGlsZWRCYWNraW5nU3RvcmVCYWNrZW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDcg
KzIwLDcgQEAKICNpZm5kZWYgVGlsZWRCYWNraW5nU3RvcmVCYWNrZW5kX2gKICNkZWZpbmUgVGls
ZWRCYWNraW5nU3RvcmVCYWNrZW5kX2gKIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogCiAjaW5jbHVkZSAiUGFzc093blB0ci5o
IgogI2luY2x1ZGUgIlRpbGUuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1RpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaAkocmV2aXNpb24g
OTc1NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdT
dG9yZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw4IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShU
SUxFRF9CQUNLSU5HX1NUT1JFKQorCiBjbGFzcyBDb2xvcjsKIGNsYXNzIEdyYXBoaWNzQ29udGV4
dDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NM
YXllclF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCShyZXZpc2lvbiA5NzU2OCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2LDcgKzQ2LDcgQEAKICNpbmNsdWRlIDxRdEd1aS9xcGl4bWFwLmg+CiAjaW5jbHVk
ZSA8UXRHdWkvcXBpeG1hcGNhY2hlLmg+CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9S
RSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICNpbmNsdWRlICJUaWxlZEJhY2tpbmdT
dG9yZS5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgiCiAKQEAgLTEyNSw4
ICsxMjUsOCBAQCBwdWJsaWM6CiAjZW5kaWYgLy8gUVRfTk9fR1JBUEhJQ1NFRkZFQ1QKIAogY2xh
c3MgR3JhcGhpY3NMYXllclF0SW1wbCA6IHB1YmxpYyBRR3JhcGhpY3NPYmplY3QKLSNpZiBFTkFC
TEUoVElMRURfQkFDS0lOR19TVE9SRSkKLSwgcHVibGljIHZpcnR1YWwgVGlsZWRCYWNraW5nU3Rv
cmVDbGllbnQKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgLCBwdWJsaWMgdmlydHVhbCBUaWxlZEJhY2tpbmdTdG9yZUNsaWVudAogI2VuZGlm
CiB7CiAgICAgUV9PQkpFQ1QKQEAgLTE5OCw3ICsxOTgsNyBAQCBwdWJsaWM6CiAgICAgLy8gQ2hy
b21lQ2xpZW50UXQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMgKG1lYW5pbmcgdGhlIHN5
bmMgd2lsbCBoYXBwZW4gQVNBUCkKICAgICB2b2lkIGZsdXNoQ2hhbmdlcyhib29sIHJlY3Vyc2l2
ZSA9IHRydWUsIGJvb2wgZm9yY2VUcmFuc2Zvcm1VcGRhdGUgPSBmYWxzZSk7CiAKLSNpZiBFTkFC
TEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAg
ICAvLyByZWltcGxlbWVudGF0aW9ucyBmcm9tIFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50CiAgICAg
dmlydHVhbCB2b2lkIHRpbGVkQmFja2luZ1N0b3JlUGFpbnRCZWdpbigpOwogICAgIHZpcnR1YWwg
dm9pZCB0aWxlZEJhY2tpbmdTdG9yZVBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJl
Y3QmKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBwdWJsaWM6CiAKICAgICBpbnQgbV9jaGFuZ2VNYXNr
OwogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpCiAgICAgVGlsZWRCYWNraW5nU3RvcmUqIG1fdGlsZWRCYWNraW5nU3RvcmU7CiAj
ZW5kaWYKIApAQCAtMzM0LDcgKzMzNCw3IEBAIEdyYXBoaWNzTGF5ZXJRdEltcGw6OkdyYXBoaWNz
TGF5ZXJRdEltcGwKICAgICAsIG1fb3BhY2l0eUFuaW1hdGlvblJ1bm5pbmcoZmFsc2UpCiAgICAg
LCBtX2Jsb2NrTm90aWZ5U3luY1JlcXVpcmVkKGZhbHNlKQogICAgICwgbV9jaGFuZ2VNYXNrKE5v
Q2hhbmdlcykKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURf
QkFDS0lOR19TVE9SRSkKICAgICAsIG1fdGlsZWRCYWNraW5nU3RvcmUoMCkKICNlbmRpZgogewpA
QCAtMzYxLDcgKzM2MSw3IEBAIEdyYXBoaWNzTGF5ZXJRdEltcGw6On5HcmFwaGljc0xheWVyUXRJ
bXAKICAgICAgICAgICAgIGl0ZW0tPnNldFBhcmVudEl0ZW0oMCk7CiAgICAgICAgIH0KICAgICB9
Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdf
U1RPUkUpCiAgICAgZGVsZXRlIG1fdGlsZWRCYWNraW5nU3RvcmU7CiAjZW5kaWYKICNpZm5kZWYg
UVRfTk9fQU5JTUFUSU9OCkBAIC0zOTQsNyArMzk0LDcgQEAgUVBpeG1hcCBHcmFwaGljc0xheWVy
UXRJbXBsOjpyZWNhY2hlKGNvbgogICAgIGlmICghbV9sYXllci0+ZHJhd3NDb250ZW50KCkgfHwg
bV9zaXplLmlzRW1wdHkoKSB8fCAhbV9zaXplLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIFFQ
aXhtYXAoKTsKIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQogICAgIGNvbnN0IGJvb2wgcmVxdWlyZXNUaWxpbmcgPSAobV9zdGF0
ZS5kcmF3c0NvbnRlbnQgJiYgbV9jdXJyZW50Q29udGVudC5jb250ZW50VHlwZSA9PSBIVE1MQ29u
dGVudFR5cGUpICYmIChtX3NpemUud2lkdGgoKSA+IEdSQVBISUNTX0xBWUVSX1RJTElOR19USFJF
U0hPTEQgfHwgbV9zaXplLmhlaWdodCgpID4gR1JBUEhJQ1NfTEFZRVJfVElMSU5HX1RIUkVTSE9M
RCk7CiAgICAgaWYgKHJlcXVpcmVzVGlsaW5nICYmICFtX3RpbGVkQmFja2luZ1N0b3JlKSB7CiAg
ICAgICAgIG1fdGlsZWRCYWNraW5nU3RvcmUgPSBuZXcgVGlsZWRCYWNraW5nU3RvcmUodGhpcyk7
CkBAIC02MjUsNyArNjI1LDcgQEAgUVJlY3RGIEdyYXBoaWNzTGF5ZXJRdEltcGw6OmJvdW5kaW5n
UmVjdAogCiB2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnBhaW50KFFQYWludGVyKiBwYWludGVy
LCBjb25zdCBRU3R5bGVPcHRpb25HcmFwaGljc0l0ZW0qIG9wdGlvbiwgUVdpZGdldCogd2lkZ2V0
KQogewotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQogICAgIC8vIEZJWE1FOiBUaGVyZSdzIGN1cnJlbnRseSBubyBRdCBBUEkgdG8g
a25vdyBpZiBhIG5ldyByZWdpb24gb2YgYW4gaXRlbSBpcyBleHBvc2VkIG91dHNpZGUgb2YgdGhl
IHBhaW50IGV2ZW50LgogICAgIC8vIFN1Z2dlc3RlZCBmb3IgUXQ6IGh0dHA6Ly9idWdyZXBvcnRz
LnF0Lm5va2lhLmNvbS9icm93c2UvUVRCVUctMTQ4NzcuCiAgICAgaWYgKG1fdGlsZWRCYWNraW5n
U3RvcmUpCkBAIC04ODYsNyArODg2LDcgQEAgYWZ0ZXJMYXllckNoYW5nZXM6CiAgICAgfQogfQog
Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdf
U1RPUkUpCiAvKiBccmVpbXAgKFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgpCiAqLwogdm9pZCBH
cmFwaGljc0xheWVyUXRJbXBsOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50QmVnaW4oKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGlsZVF0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9UaWxlUXQuY3BwCShyZXZp
c2lvbiA5NzU2OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RpbGVR
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwLDcgKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJUaWxlUXQuaCIKIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RpbGVRdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RpbGVRdC5oCShyZXZpc2lvbiA5NzU2OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1RpbGVRdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMCw3ICsyMCw3IEBACiAjaWZuZGVmIFRpbGVRdF9oCiAjZGVmaW5lIFRpbGVRdF9o
CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lO
R19TVE9SRSkKIAogI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJOb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuY3BwCShyZXZpc2lvbiA5NzU2OCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTm9kZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE3Myw3ICsxNzMsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2Rl
Ojpjb21wdXRlQWxsVHJhbnNmCiAKIHZvaWQgVGV4dHVyZU1hcHBlck5vZGU6OmNvbXB1dGVUaWxl
cygpCiB7Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCiAgICAgaWYgKG1fc3RhdGUudGlsZU93bmVyc2hpcCA9PSBFeHRlcm5hbGx5
TWFuYWdlZFRpbGVzKQogICAgICAgICByZXR1cm47CiAjZW5kaWYKQEAgLTIzNSw3ICsyMzUsNyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpjb21wdXRlVGlsZXMoKQogICAgICAgICBtX293bmVk
VGlsZXMucmVtb3ZlKHRpbGVzVG9SZW1vdmVbaV0pOwogfQogCi0jaWYgRU5BQkxFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiBzdGF0aWMgdm9pZCBj
bGFtcFJlY3QoSW50UmVjdCYgcmVjdCwgaW50IGRpbWVuc2lvbikKIHsKICAgICByZWN0LnNoaWZ0
WEVkZ2VUbyhyZWN0LngoKSAtIHJlY3QueCgpICUgZGltZW5zaW9uKTsKQEAgLTI4Myw3ICsyODMs
NyBAQCBib29sIFRleHR1cmVNYXBwZXJOb2RlOjpjb2xsZWN0VmlzaWJsZUNvCiAKIHZvaWQgVGV4
dHVyZU1hcHBlck5vZGU6OnJlbmRlckNvbnRlbnQoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBl
ciwgR3JhcGhpY3NMYXllciogbGF5ZXIpCiB7Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgaWYgKG1fc3RhdGUudGlsZU93
bmVyc2hpcCA9PSBFeHRlcm5hbGx5TWFuYWdlZFRpbGVzKQogICAgICAgICByZXR1cm47CiAjZW5k
aWYKQEAgLTM5Myw3ICszOTMsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJOb2RlOjpwYWludFNlbGYo
Y29uc3QgCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lO
R19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBWZWN0b3I8RXh0ZXJu
YWxseU1hbmFnZWRUaWxlPiB0aWxlc1RvUGFpbnQ7CiAKICAgICBpZiAobV9zdGF0ZS50aWxlT3du
ZXJzaGlwID09IEV4dGVybmFsbHlNYW5hZ2VkVGlsZXMpIHsKQEAgLTYwNCw3ICs2MDQsNyBAQCBU
ZXh0dXJlTWFwcGVyTm9kZTo6flRleHR1cmVNYXBwZXJOb2RlKCkKICAgICAgICAgbV9wYXJlbnQt
Pm1fY2hpbGRyZW4ucmVtb3ZlKG1fcGFyZW50LT5tX2NoaWxkcmVuLmZpbmQodGhpcykpOwogfQog
Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdf
U1RPUkUpCiBpbnQgVGV4dHVyZU1hcHBlck5vZGU6OmNyZWF0ZUNvbnRlbnRzVGlsZShmbG9hdCBz
Y2FsZSkKIHsKICAgICBzdGF0aWMgaW50IG5leHRJRCA9IDA7CkBAIC02ODgsNyArNjg4LDcgQEAg
dm9pZCBUZXh0dXJlTWFwcGVyTm9kZTo6c3luY0NvbXBvc2l0aW5nUwogewogICAgIGludCBjaGFu
Z2VNYXNrID0gZ3JhcGhpY3NMYXllci0+Y2hhbmdlTWFzaygpOwogICAgIGNvbnN0IFRleHR1cmVN
YXBwZXJOb2RlOjpDb250ZW50RGF0YSYgcGVuZGluZ0NvbnRlbnQgPSBncmFwaGljc0xheWVyLT5w
ZW5kaW5nQ29udGVudCgpOwotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVT
RShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHN3YXBDb250ZW50c0J1ZmZlcnMoKTsKICNlbmRp
ZgogICAgIGlmIChjaGFuZ2VNYXNrID09IE5vQ2hhbmdlcyAmJiBncmFwaGljc0xheWVyLT5tX2Fu
aW1hdGlvbnMuaXNFbXB0eSgpICYmIHBlbmRpbmdDb250ZW50Lm5lZWRzRGlzcGxheVJlY3QuaXNF
bXB0eSgpICYmICFwZW5kaW5nQ29udGVudC5uZWVkc0Rpc3BsYXkpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlck5vZGUuaAkocmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlck5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ5
LDcgKzE0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcGFpbnQoKTsKIAotI2lmIEVOQUJMRShU
SUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZv
aWQgc2V0VGlsZU93bmVyc2hpcChUaWxlT3duZXJzaGlwIG93bmVyc2hpcCkgeyBtX3N0YXRlLnRp
bGVPd25lcnNoaXAgPSBvd25lcnNoaXA7IH0KICAgICBpbnQgY3JlYXRlQ29udGVudHNUaWxlKGZs
b2F0IHNjYWxlKTsKICAgICB2b2lkIHJlbW92ZUNvbnRlbnRzVGlsZShpbnQgaWQpOwpAQCAtMjMz
LDcgKzIzMyw3IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8T3duZWRUaWxlPiBtX293bmVkVGls
ZXM7CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFD
S0lOR19TVE9SRSkKICAgICBzdHJ1Y3QgRXh0ZXJuYWxseU1hbmFnZWRUaWxlQnVmZmVyIHsKICAg
ICAgICAgRmxvYXRSZWN0IHNvdXJjZVJlY3Q7CiAgICAgICAgIEZsb2F0UmVjdCB0YXJnZXRSZWN0
OwpAQCAtMjkwLDcgKzI5MCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgbmVlZHNSZXBhaW50
OwogICAgICAgICBJbnRSZWN0IHZpc2libGVSZWN0OwogICAgICAgICBmbG9hdCBjb250ZW50U2Nh
bGU7Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpCiAgICAgICAgIFRpbGVPd25lcnNoaXAgdGlsZU93bmVyc2hpcDsKICNlbmRpZgog
ICAgICAgICBTdGF0ZSgpCkBAIC0zMDcsNyArMzA3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICwgbWlnaHRIYXZlT3ZlcmxhcHMoZmFsc2UpCiAgICAgICAgICAgICAsIG5lZWRzUmVwYWludChm
YWxzZSkKICAgICAgICAgICAgICwgY29udGVudFNjYWxlKDEuMGYpCi0jaWYgRU5BQkxFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgICAgICAg
ICAsIHRpbGVPd25lcnNoaXAoT3duZWRUaWxlcykKICNlbmRpZgogICAgICAgICB7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCShyZXZpc2lvbiA5NzU2OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDExLTEwLTE1ICBBZGFtIEJhcnRoICA8YWJh
cnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuYW1lIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NU
T1JFKSB0byBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFu
aWVsIEJhdGVzLgorCisgICAgICAgICogU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmNwcDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21t
aXR0ZWRGb3JOZXdQYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWEuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6Y3JlYXRlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1RpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZS5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1RpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9UaWxlZERyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvVGlsZWREcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0U2l6ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxMS0xMC0xNSAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjk3NTU5LgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdB
cmVhSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJl
YUluZm8uaAkocmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2lu
Z0FyZWFJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGVudW0gRHJhd2luZ0FyZWFUeXBlIHsKICAgICBEcmF3aW5nQXJlYVR5cGVJbXBs
LAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5H
X1NUT1JFKQogICAgIERyYXdpbmdBcmVhVHlwZVRpbGVkLAogI2VuZGlmCiB9OwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCShyZXZpc2lvbiA5NzU2
OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZW50
ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlE
LCBjb25zdCBMYXllclRyZWVDb250ZXh0JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGV4aXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25z
dCBVcGRhdGVJbmZvJikgeyB9CiAjZW5kaWYKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9S
RSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICB2aXJ0dWFsIHZvaWQgc25hcHNo
b3RUYWtlbihjb25zdCBVcGRhdGVJbmZvJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRp
bGUoaW50IHRpbGVJRCwgY29uc3QgVXBkYXRlSW5mbyYgdXBkYXRlSW5mbykgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVRpbGUoaW50IHRpbGVJRCwgY29uc3QgVXBkYXRlSW5mbyYgdXBkYXRl
SW5mbykgeyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5
KQpAQCAtMjcsNyArMjcsNyBAQCBtZXNzYWdlcyAtPiBEcmF3aW5nQXJlYVByb3h5IHsKICAgICBF
bnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRl
SUQsIFdlYktpdDo6TGF5ZXJUcmVlQ29udGV4dCBjb250ZXh0KQogICAgIEV4aXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBXZWJLaXQ6OlVw
ZGF0ZUluZm8gdXBkYXRlSW5mbykKICNlbmRpZgotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NU
T1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIENyZWF0ZVRpbGUoaW50IHRp
bGVJRCwgV2ViS2l0OjpVcGRhdGVJbmZvIHVwZGF0ZUluZm8pCiAgICAgVXBkYXRlVGlsZShpbnQg
dGlsZUlELCBXZWJLaXQ6OlVwZGF0ZUluZm8gdXBkYXRlSW5mbykKICAgICBEaWRSZW5kZXJGcmFt
ZSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDk3
NTY4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtOTcsNyArOTcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgdG9vbFRp
cENoYW5nZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgPSAwOwogCi0jaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAg
dmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JikgPSAwOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmNwcAkocmV2aXNpb24gOTc1
NjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlRpbGVkRHJhd2luZ0FyZWFQcm94eS5oIgogCi0jaWYgRU5BQkxFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAjaW5jbHVkZSAiRHJh
d2luZ0FyZWFNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuaAkocmV2aXNpb24gOTc1NjgpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgVGlsZWREcmF3aW5nQXJlYVByb3h5X2gKICNk
ZWZpbmUgVGlsZWREcmF3aW5nQXJlYVByb3h5X2gKIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5H
X1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogCiAjaW5jbHVkZSAiRHJhd2lu
Z0FyZWFQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CkBAIC0x
MDgsNiArMTA4LDYgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRp
ZiAvLyBUSUxFRF9CQUNLSU5HX1NUT1JFCisjZW5kaWYgLy8gVVNFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCiAKICNlbmRpZiAvLyBUaWxlZERyYXdpbmdBcmVhUHJveHlfaApJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDk3NTY4KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTc1Miw3ICs3NTIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZXhlY3V0ZUVkaXRDb21tYW5kKGNv
CiAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpFeGVjdXRlRWRpdENvbW1h
bmQoY29tbWFuZE5hbWUpLCBtX3BhZ2VJRCk7CiB9CiAgICAgCi0jaWYgRU5BQkxFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6c2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsK
ICAgICBpZiAoIWlzVmFsaWQoKSkKQEAgLTEzOTEsNyArMTM5MSw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpwcmVmZXJlbmNlc0RpZENoYW5nZSgKICAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlByZWZlcmVuY2VzRGlkQ2hhbmdlKHBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygp
LT5zdG9yZSgpKSwgbV9wYWdlSUQsIG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gPyBD
b3JlSVBDOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgOiAwKTsK
IH0KIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQogdm9pZCBXZWJQYWdlUHJveHk6OnNldFJlc2l6ZXNUb0NvbnRlbnRzVXNpbmdM
YXlvdXRTaXplKGNvbnN0IEludFNpemUmIHRhcmdldExheW91dFNpemUpCiB7CiAgICAgcHJvY2Vz
cygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRSZXNpemVzVG9Db250ZW50c1VzaW5nTGF5
b3V0U2l6ZSh0YXJnZXRMYXlvdXRTaXplKSwgbV9wYWdlSUQpOwpAQCAtMjEzNSw3ICsyMTM1LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZpcgogICAgIHNob3VsZENs
b3NlID0gbV91aUNsaWVudC5ydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodGhpcywgbWVzc2Fn
ZSwgZnJhbWUpOwogfQogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiB2b2lkIFdlYlBhZ2VQcm94eTo6cGFnZURpZFJlcXVlc3RT
Y3JvbGwoY29uc3QgSW50UG9pbnQmIHBvaW50KQogewogICAgIG1fcGFnZUNsaWVudC0+cGFnZURp
ZFJlcXVlc3RTY3JvbGwocG9pbnQpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAkocmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0MCw3ICszNDAsNyBAQCBwdWJsaWM6
CiAjaWYgUExBVEZPUk0oRUZMKQogICAgIEV2YXNfT2JqZWN0KiB2aWV3T2JqZWN0KCk7CiAjZW5k
aWYKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lO
R19TVE9SRSkKICAgICB2b2lkIHNldEZpeGVkVmlzaWJsZUNvbnRlbnRSZWN0KGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKTsKICNlbmRpZgogCkBAIC01MDUsNyArNTA1LDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBwcmVmZXJlbmNlc0RpZENoYW5nZSgpOwogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdm9pZCBzZXRSZXNp
emVzVG9Db250ZW50c1VzaW5nTGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAj
ZW5kaWYKIApAQCAtNjYxLDcgKzY2MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWF0dGFjaFRv
V2ViUHJvY2VzcygpOwogICAgIHZvaWQgcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShXZWJC
YWNrRm9yd2FyZExpc3RJdGVtKik7CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkK
KyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Ny
b2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lv
biA5NzU2OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKICAgICBEaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luKFdURjo6U3RyaW5nIG1pbWVU
eXBlKQogICAgIE51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQgY291bnQpCiAK
LSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19T
VE9SRSkKICAgICBQYWdlRGlkUmVxdWVzdFNjcm9sbChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkK
ICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAko
cmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMSw3ICs0MDEsNyBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2Nyb2xsKGNvbnN0IEludFNpCiAgICAgbV9wYWdlLT5k
cmF3aW5nQXJlYSgpLT5zY3JvbGwoaW50ZXJzZWN0aW9uKHNjcm9sbFJlY3QsIGNsaXBSZWN0KSwg
c2Nyb2xsT2Zmc2V0KTsKIH0KIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRlbGVnYXRl
ZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRQb2ludCYgc2Nyb2xsT2Zmc2V0KQogewogICAgIG1f
cGFnZS0+cGFnZURpZFJlcXVlc3RTY3JvbGwoc2Nyb2xsT2Zmc2V0KTsKQEAgLTQyNyw3ICs0Mjcs
NyBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgV2ViQ2hyb21lQ2xpZW50OjpwbGF0CiB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNp
emUmIHNpemUpIGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oUVQpCi0jaWYgRU5BQkxFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgaWYgKGZyYW1l
LT5wYWdlKCktPm1haW5GcmFtZSgpID09IGZyYW1lKQogICAgICAgICBtX3BhZ2UtPnJlc2l6ZVRv
Q29udGVudHNJZk5lZWRlZCgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHJl
dmlzaW9uIDk3NTY4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDcgKzExMiw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJv
b2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2Nyb2xsT2Zmc2V0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCkgT1ZFUlJJREU7Ci0jaWYgRU5BQkxFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmly
dHVhbCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgc2Nyb2xsT2Zmc2V0KSBPVkVSUklERTsKICNlbmRpZgogICAgIHZpcnR1YWwgV2ViQ29yZTo6
SW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25zdCBP
VkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lv
biA5NzU2OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTE2LDcgKzExMTYsNyBA
QCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9DCiAKICAgICBib29sIGlz
TWFpbkZyYW1lID0gd2ViUGFnZS0+bWFpbldlYkZyYW1lKCkgPT0gbV9mcmFtZTsKIAotI2lmIEVO
QUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQog
ICAgIEludFNpemUgY3VycmVudFZpc2libGVDb250ZW50U2l6ZTsKICAgICBJbnRTaXplIGZpeGVk
TGF5b3V0U2l6ZTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWEuY3BwCShyZXZpc2lvbiA5NzU2OCkKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDcgKzI5LDcgQEAKIC8vIFN1YmNsYXNzZXMKICNpbmNsdWRlICJEcmF3aW5nQXJlYUltcGwuaCIK
IAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5H
X1NUT1JFKQogI2luY2x1ZGUgIlRpbGVkRHJhd2luZ0FyZWEuaCIKICNlbmRpZgogCkBAIC00Miw3
ICs0Miw3IEBAIFBhc3NPd25QdHI8RHJhd2luZ0FyZWE+IERyYXdpbmdBcmVhOjpjcmUKICAgICBz
d2l0Y2ggKHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFUeXBlKSB7CiAgICAgY2FzZSBEcmF3aW5nQXJl
YVR5cGVJbXBsOgogICAgICAgICByZXR1cm4gRHJhd2luZ0FyZWFJbXBsOjpjcmVhdGUod2ViUGFn
ZSwgcGFyYW1ldGVycyk7Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVUaWxlZDoKICAg
ICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUaWxlZERyYXdpbmdBcmVhKHdlYlBhZ2UpKTsKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLmgJKHJldmlzaW9uIDk3NTY4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLmgJKHdvcmtpbmcgY29weSkKQEAgLTk4LDcgKzk4LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZFBhaW50aW5nKCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHJlc3VtZVBhaW50aW5nKCkgeyB9CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19T
VE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICB2aXJ0dWFsIHZvaWQgc2V0
U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB2aWV3U2l6ZSkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldFZpc2libGVDb250ZW50UmVjdEFuZFNjYWxlKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBmbG9hdCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVDb250ZW50UmVjdFRyYWpl
Y3RvcnlWZWN0b3IoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpIHsgfQpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5t
ZXNzYWdlcy5pbgkocmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI2LDcg
KzI2LDcgQEAgbWVzc2FnZXMgLT4gRHJhd2luZ0FyZWEgewogICAgIFN1c3BlbmRQYWludGluZygp
CiAgICAgUmVzdW1lUGFpbnRpbmcoKQogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
CisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgU2V0U2l6ZShXZWJDb3JlOjpJbnRT
aXplIHZpZXdTaXplKQogICAgIFNldFZpc2libGVDb250ZW50UmVjdEFuZFNjYWxlKFdlYkNvcmU6
OkludFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0LCBmbG9hdCBzY2FsZSkKICAgICBTZXRWaXNpYmxl
Q29udGVudFJlY3RUcmFqZWN0b3J5VmVjdG9yKFdlYkNvcmU6OkZsb2F0UG9pbnQgdHJhamVjdG9y
eVZlY3RvcikKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJh
Y2tpbmdTdG9yZVJlbW90ZVRpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUuY3BwCShyZXZpc2lv
biA5NzU2OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tp
bmdTdG9yZVJlbW90ZVRpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxl
LmgiCiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFD
S0lOR19TVE9SRSkKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIklt
YWdlQnVmZmVyLmgiCkBAIC0xNDEsNCArMTQxLDQgQEAgdm9pZCBUaWxlZEJhY2tpbmdTdG9yZVJl
bW90ZVRpbGVCYWNrZW5kOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIFRJ
TEVEX0JBQ0tJTkdfU1RPUkUKKyNlbmRpZiAvLyBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJl
bW90ZVRpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlLmgJKHJldmlzaW9uIDk3NTY4KQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGls
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFRpbGVkQmFja2lu
Z1N0b3JlUmVtb3RlVGlsZV9oCiAjZGVmaW5lIFRpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZV9o
CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lO
R19TVE9SRSkKIAogI2luY2x1ZGUgIlRpbGUuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9y
ZS5oIgpAQCAtOTQsNiArOTQsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAotI2VuZGlmIC8vIFRJTEVEX0JBQ0tJTkdfU1RPUkUKKyNlbmRpZiAvLyBVU0UoVElMRURfQkFD
S0lOR19TVE9SRSkKIAogI2VuZGlmIC8vIFRpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZQpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVkRHJhd2luZ0FyZWEuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZERy
YXdpbmdBcmVhLmNwcAkocmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvVGlsZWREcmF3aW5nQXJlYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcg
KzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUaWxlZERyYXdpbmdBcmVh
LmgiCiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFD
S0lOR19TVE9SRSkKIAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VJRC5oIgpAQCAtMTc5LDQgKzE3OSw0IEBAIHZvaWQgVGlsZWREcmF3aW5n
QXJlYTo6cmVtb3ZlVGlsZShpbnQgdGkKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRp
ZiAvLyBUSUxFRF9CQUNLSU5HX1NUT1JFCisjZW5kaWYgLy8gVVNFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWREcmF3aW5n
QXJlYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9U
aWxlZERyYXdpbmdBcmVhLmgJKHJldmlzaW9uIDk3NTY4KQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1RpbGVkRHJhd2luZ0FyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtMjYs
NyArMjYsNyBAQAogI2lmbmRlZiBUaWxlZERyYXdpbmdBcmVhX2gKICNkZWZpbmUgVGlsZWREcmF3
aW5nQXJlYV9oCiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElM
RURfQkFDS0lOR19TVE9SRSkKIAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAi
VGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaCIKQEAgLTg1LDYgKzg1LDYgQEAgcHJpdmF0ZToKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBUSUxFRF9CQUNLSU5HX1NUT1JFCisj
ZW5kaWYgLy8gVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAKICNlbmRpZiAvLyBUaWxlZERyYXdp
bmdBcmVhX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAJKHJldmlzaW9uIDk3NTY4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NjcsNyArNjY3LDcgQEAgdm9p
ZCBXZWJQYWdlOjpzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludAogewogICAgIEZyYW1lVmlldyog
dmlldyA9IG1fcGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKTsKIAotI2lmIEVOQUJMRShUSUxFRF9C
QUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIC8vIElmIHdl
IGFyZSByZXNpemluZyB0byBjb250ZW50IGlnbm9yZSBleHRlcm5hbCBhdHRlbXB0cy4KICAgICBp
ZiAodmlldy0+dXNlRml4ZWRMYXlvdXQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjgzLDcgKzY4
Myw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnQKICAgICBtX3Zp
ZXdTaXplID0gdmlld1NpemU7CiB9CiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkK
KyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKIHZvaWQgV2ViUGFnZTo6c2V0Rml4ZWRWaXNp
YmxlQ29udGVudFJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBGcmFtZSogZnJhbWUg
PSBtX3BhZ2UtPm1haW5GcmFtZSgpOwpAQCAtOTg2LDcgKzk4Niw3IEBAIHZvaWQgV2ViUGFnZTo6
cGFnZURpZFNjcm9sbCgpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQYWdlRGlk
U2Nyb2xsKCkpOwogfQogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiB2b2lkIFdlYlBhZ2U6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xs
KGNvbnN0IEludFBvaW50JiBwb2ludCkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKHBvaW50KSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDk3NTY4KQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAt
MzA1LDcgKzMwNSw3IEBAIHB1YmxpYzoKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlciYgZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBt
X2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CiAKICAgICB2b2lkIHBhZ2VE
aWRTY3JvbGwoKTsKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElM
RURfQkFDS0lOR19TVE9SRSkKICAgICB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkludFBvaW50Jik7CiAgICAgdm9pZCBzZXRGaXhlZFZpc2libGVDb250ZW50UmVjdChj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdm9pZCBzZXRSZXNpemVzVG9Db250ZW50c1Vz
aW5nTGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0YXJnZXRMYXlvdXRTaXplKTsK
QEAgLTY1Niw3ICs2NTYsNyBAQCBwcml2YXRlOgogICAgIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxT
Y3JlZW5DbGllbnQgbV9mdWxsU2NyZWVuQ2xpZW50OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoVElM
RURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBXZWJD
b3JlOjpJbnRTaXplIG1fcmVzaXplc1RvQ29udGVudHNMYXlvdXRTaXplOwogI2VuZGlmCiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA5NzU2OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC05NSw3ICs5
NSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgewogICAgIFNldFVzZXJBZ2VudChXVEY6OlN0cmlu
ZyB1c2VyQWdlbnQpCiAgICAgU2V0Q3VzdG9tVGV4dEVuY29kaW5nTmFtZShXVEY6OlN0cmluZyBl
bmNvZGluZ05hbWUpCiAKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0Uo
VElMRURfQkFDS0lOR19TVE9SRSkKICAgICBTZXRGaXhlZFZpc2libGVDb250ZW50UmVjdChXZWJD
b3JlOjpJbnRSZWN0IHJlY3QpCiAgICAgU2V0UmVzaXplc1RvQ29udGVudHNVc2luZ0xheW91dFNp
emUoV2ViQ29yZTo6SW50U2l6ZSBzaXplKQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2
aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDMwIEBACisyMDExLTEwLTE1ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmVuYW1lIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKSB0byBV
U0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcwMTk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVz
LgorCisgICAgICAgICogQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwOgorICAgICAgICAoUUdyYXBo
aWNzV2ViVmlld1ByaXZhdGU6Ol9xX3NjYWxlQ2hhbmdlZCk6CisgICAgICAgIChRR3JhcGhpY3NX
ZWJWaWV3OjpRR3JhcGhpY3NXZWJWaWV3KToKKyAgICAgICAgKFFHcmFwaGljc1dlYlZpZXc6OnBh
aW50KToKKyAgICAgICAgKFFHcmFwaGljc1dlYlZpZXc6OmlzVGlsZWRCYWNraW5nU3RvcmVGcm96
ZW4pOgorICAgICAgICAoUUdyYXBoaWNzV2ViVmlldzo6c2V0VGlsZWRCYWNraW5nU3RvcmVGcm96
ZW4pOgorICAgICAgICAqIEFwaS9xd2ViZnJhbWUuY3BwOgorICAgICAgICAqIEFwaS9xd2ViZnJh
bWVfcC5oOgorICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChRV2ViUGFnZVBy
aXZhdGU6OmR5bmFtaWNQcm9wZXJ0eUNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBBcGkvcXdlYnNl
dHRpbmdzLmNwcDoKKyAgICAgICAgKFFXZWJTZXR0aW5nc1ByaXZhdGU6OmFwcGx5KToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnRRdDo6aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QYWdlQ2xp
ZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNsaWVudFFHcmFwaGljc1dpZGdldDo6
Y3JlYXRlT3JEZWxldGVPdmVybGF5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QYWdlQ2xp
ZW50UXQuaDoKKyAgICAgICAgKiB0ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3RzdF9xZ3JhcGhpY3N3
ZWJ2aWV3LmNwcDoKKwogMjAxMS0xMC0xNSAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJv
c0Bub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBbU3ltYmlhbl0gUmVtb3ZlIHN1cHBvcnQgZm9y
IHRoZSBTeW1iaWFuIHBsYXRmb3JtIGZvciB0aGUgUXRXZWJLaXQgcG9ydApJbmRleDogU291cmNl
L1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAJKHJldmlzaW9uIDk3NTY4KQorKysg
U291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFFHcmFwaGljc1dlYlZpZXdQcml2YXRlOjpfcV9jb250
ZW50CiAKIHZvaWQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6Ol9xX3NjYWxlQ2hhbmdlZCgpCiB7
Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdf
U1RPUkUpCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAgICAgcGFnZUNsaWVudCgp
LT51cGRhdGVUaWxlZEJhY2tpbmdTdG9yZVNjYWxlKCk7CkBAIC0yNDQsNyArMjQ0LDcgQEAgUUdy
YXBoaWNzV2ViVmlldzo6UUdyYXBoaWNzV2ViVmlldyhRR3JhcAogICAgIHNldEFjY2VwdFRvdWNo
RXZlbnRzKHRydWUpOwogICAgIHNldEZvY3VzUG9saWN5KFF0OjpTdHJvbmdGb2N1cyk7CiAgICAg
c2V0RmxhZyhRR3JhcGhpY3NJdGVtOjpJdGVtQ2xpcHNDaGlsZHJlblRvU2hhcGUsIHRydWUpOwot
I2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NU
T1JFKQogICAgIFFPYmplY3Q6OmNvbm5lY3QodGhpcywgU0lHTkFMKHNjYWxlQ2hhbmdlZCgpKSwg
dGhpcywgU0xPVChfcV9zY2FsZUNoYW5nZWQoKSkpOwogI2VuZGlmCiB9CkBAIC0yODYsNyArMjg2
LDcgQEAgdm9pZCBRR3JhcGhpY3NXZWJWaWV3OjpwYWludChRUGFpbnRlciogcAogewogICAgIFFQ
YWludGVyOjpSZW5kZXJIaW50cyBvbGRIaW50cyA9IHBhaW50ZXItPnJlbmRlckhpbnRzKCk7CiAg
ICAgcGFpbnRlci0+c2V0UmVuZGVySGludHMob2xkSGludHMgfCBkLT5yZW5kZXJIaW50cyk7Ci0j
aWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCiAgICAgaWYgKFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUgPSBR
V2ViRnJhbWVQcml2YXRlOjpjb3JlKHBhZ2UoKS0+bWFpbkZyYW1lKCkpLT50aWxlZEJhY2tpbmdT
dG9yZSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc2V0IHRoZSBiYWNraW5nIHN0
b3JlIHZpZXdwb3J0IGVhcmxpZXIgdGhhbiBpbiBwYWludAogICAgICAgICBiYWNraW5nU3RvcmUt
PmFkanVzdFZpc2libGVSZWN0KCk7CkBAIC05MDksNyArOTA5LDcgQEAgYm9vbCBRR3JhcGhpY3NX
ZWJWaWV3OjpyZXNpemVzVG9Db250ZW50cwogKi8KIGJvb2wgUUdyYXBoaWNzV2ViVmlldzo6aXNU
aWxlZEJhY2tpbmdTdG9yZUZyb3plbigpIGNvbnN0CiB7Ci0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgV2ViQ29yZTo6VGls
ZWRCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSA9IFFXZWJGcmFtZVByaXZhdGU6OmNvcmUocGFn
ZSgpLT5tYWluRnJhbWUoKSktPnRpbGVkQmFja2luZ1N0b3JlKCk7CiAgICAgaWYgKCFiYWNraW5n
U3RvcmUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTkyMSw3ICs5MjEsNyBAQCBib29sIFFH
cmFwaGljc1dlYlZpZXc6OmlzVGlsZWRCYWNraW5nU3RvCiAKIHZvaWQgUUdyYXBoaWNzV2ViVmll
dzo6c2V0VGlsZWRCYWNraW5nU3RvcmVGcm96ZW4oYm9vbCBmcm96ZW4pCiB7Ci0jaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAg
V2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSA9IFFXZWJGcmFtZVByaXZh
dGU6OmNvcmUocGFnZSgpLT5tYWluRnJhbWUoKSktPnRpbGVkQmFja2luZ1N0b3JlKCk7CiAgICAg
aWYgKCFiYWNraW5nU3RvcmUpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
cXQvQXBpL3F3ZWJmcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9BcGkv
cXdlYmZyYW1lLmNwcAkocmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODIsNyArMjgyLDcgQEAgV2ViQ29yZTo6
U2Nyb2xsYmFyKiBRV2ViRnJhbWVQcml2YXRlOjp2ZQogICAgIHJldHVybiBmcmFtZS0+dmlldygp
LT52ZXJ0aWNhbFNjcm9sbGJhcigpOwogfQogCi0jaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiB2b2lkIFFXZWJGcmFtZVByaXZhdGU6
OnJlbmRlckZyb21UaWxlZEJhY2tpbmdTdG9yZShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFFSZWdpb24mIGNsaXApCiB7CiAgICAgQVNTRVJUKGZyYW1lLT50aWxlZEJhY2tpbmdTdG9y
ZSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZV9wLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lX3AuaAkocmV2aXNpb24gOTc1Njgp
CisrKyBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWVfcC5oCSh3b3JraW5nIGNvcHkpCkBA
IC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUVdlYkZyYW1lKiBraXQoY29uc3Qg
V2ViQ29yZTo6RnJhbWUqKTsKIAogICAgIHZvaWQgcmVuZGVyUmVsYXRpdmVDb29yZHMoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0KiwgUUZsYWdzPFFXZWJGcmFtZTo6UmVuZGVyTGF5ZXI+LCBjb25z
dCBRUmVnaW9uJiBjbGlwKTsKLSNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBV
U0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICB2b2lkIHJlbmRlckZyb21UaWxlZEJhY2tpbmdT
dG9yZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBRUmVnaW9uJiBjbGlwKTsKICNl
bmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCShyZXZpc2lvbiA5NzU2OCkK
KysrIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTIwMSw3ICsxMjAxLDcgQEAgdm9pZCBRV2ViUGFnZVByaXZhdGU6OmR5bmFtaWNQcm9wZXJ0eUNo
YQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotI2lmIEVOQUJMRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGVsc2UgaWYgKGV2
ZW50LT5wcm9wZXJ0eU5hbWUoKSA9PSAiX3FfVGlsZWRCYWNraW5nU3RvcmVUaWxlU2l6ZSIpIHsK
ICAgICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShx
LT5tYWluRnJhbWUoKSk7CiAgICAgICAgIGlmICghZnJhbWUtPnRpbGVkQmFja2luZ1N0b3JlKCkp
CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAJKHJldmlzaW9uIDk3NTY4
KQorKysgU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgUVdlYlNldHRpbmdzUHJpdmF0ZTo6YXBwbHkoKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwtPmF0dHJpYnV0ZXMu
dmFsdWUoUVdlYlNldHRpbmdzOjpYU1NBdWRpdGluZ0VuYWJsZWQpKTsKICAgICAgICAgc2V0dGlu
Z3MtPnNldFhTU0F1ZGl0b3JFbmFibGVkKHZhbHVlKTsKIAotI2lmIEVOQUJMRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgICAgICB2YWx1ZSA9
IGF0dHJpYnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpUaWxlZEJhY2tpbmdTdG9yZUVuYWJsZWQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmlidXRl
cy52YWx1ZShRV2ViU2V0dGluZ3M6OlRpbGVkQmFja2luZ1N0b3JlRW5hYmxlZCkpOwogICAgICAg
ICBzZXR0aW5ncy0+c2V0VGlsZWRCYWNraW5nU3RvcmVFbmFibGVkKHZhbHVlKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3Bw
CShyZXZpc2lvbiA5NzU2OCkKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDQsNyArNDA0LDcgQEAgSW50UmVj
dCBDaHJvbWVDbGllbnRRdDo6d2luZG93UmVzaXplclJlYwogCiB2b2lkIENocm9tZUNsaWVudFF0
OjppbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wpCiB7Ci0j
aWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCiAgICAgaWYgKHBsYXRmb3JtUGFnZUNsaWVudCgpKSB7CiAgICAgICAgIFdlYkNvcmU6OlRp
bGVkQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUgPSBRV2ViRnJhbWVQcml2YXRlOjpjb3JlKG1f
d2ViUGFnZS0+bWFpbkZyYW1lKCkpLT50aWxlZEJhY2tpbmdTdG9yZSgpOwogICAgICAgICBpZiAo
IWJhY2tpbmdTdG9yZSkKQEAgLTQ0Myw3ICs0NDMsNyBAQCB2b2lkIENocm9tZUNsaWVudFF0Ojpz
Y3JvbGwoY29uc3QgSW50U2l6CiAgICAgZW1pdCBtX3dlYlBhZ2UtPnNjcm9sbFJlcXVlc3RlZChk
ZWx0YS53aWR0aCgpLCBkZWx0YS5oZWlnaHQoKSwgc2Nyb2xsVmlld1JlY3QpOwogfQogCi0jaWYg
RU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
CiB2b2lkIENocm9tZUNsaWVudFF0OjpkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50
UG9pbnQmIHBvaW50KQogewogICAgIFFQb2ludCBjdXJyZW50UG9zaXRpb24obV93ZWJQYWdlLT5t
YWluRnJhbWUoKS0+c2Nyb2xsUG9zaXRpb24oKSk7CkBAIC02NDksNyArNjQ5LDcgQEAgQ2hyb21l
Q2xpZW50OjpDb21wb3NpdGluZ1RyaWdnZXJGbGFncyBDaAogCiAjZW5kaWYKIAotI2lmIEVOQUJM
RShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogSW50
UmVjdCBDaHJvbWVDbGllbnRRdDo6dmlzaWJsZVJlY3RGb3JUaWxlZEJhY2tpbmdTdG9yZSgpIGNv
bnN0CiB7CiAgICAgaWYgKCFwbGF0Zm9ybVBhZ2VDbGllbnQoKSB8fCAhbV93ZWJQYWdlKQpJbmRl
eDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
aAkocmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRS
ZWN0JiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dT
Y3JvbGwoY29uc3QgSW50UmVjdCYsIGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29u
c3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29u
c3QgSW50UmVjdCYgY2xpcFJlY3QpOwotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQor
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRT
Y3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvaW50KTsKICNlbmRpZgogCkBA
IC0xNTUsNyArMTU1LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgdmlydHVhbCBib29sIGFsbG93
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdDsKIAotI2lmIEVOQUJMRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZpcnR1YWwgSW50
UmVjdCB2aXNpYmxlUmVjdEZvclRpbGVkQmFja2luZ1N0b3JlKCkgY29uc3Q7CiAjZW5kaWYKIApJ
bmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0
LmNwcAkocmV2aXNpb24gOTc1NjgpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L1BhZ2VDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxOSw3ICsyMTksNyBAQCB2b2lk
IFBhZ2VDbGllbnRRR3JhcGhpY3NXaWRnZXQ6OmNyZWF0ZU9yCiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgICAgICB1c2VPdmVybGF5ID0gdXNlT3ZlcmxheSB8fCByb290R3Jh
cGhpY3NMYXllcjsKICNlbmRpZgotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgICAgICB1c2VPdmVybGF5ID0gdXNlT3Zlcmxh
eSB8fCBRV2ViRnJhbWVQcml2YXRlOjpjb3JlKHBhZ2UtPm1haW5GcmFtZSgpKS0+dGlsZWRCYWNr
aW5nU3RvcmUoKTsKICNlbmRpZgogICAgIH0KQEAgLTMwNCw3ICszMDQsNyBAQCB2b2lkIFBhZ2VD
bGllbnRRR3JhcGhpY3NXaWRnZXQ6Om1hcmtGb3JTCiAKICNlbmRpZgogCi0jaWYgRU5BQkxFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiB2b2lkIFBh
Z2VDbGllbnRRR3JhcGhpY3NXaWRnZXQ6OnVwZGF0ZVRpbGVkQmFja2luZ1N0b3JlU2NhbGUoKQog
ewogICAgIFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0b3JlKiBiYWNraW5nU3RvcmUgPSBRV2ViRnJh
bWVQcml2YXRlOjpjb3JlKHBhZ2UtPm1haW5GcmFtZSgpKS0+dGlsZWRCYWNraW5nU3RvcmUoKTsK
QEAgLTM4Miw3ICszODIsNyBAQCBRUmVjdCBQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0OjpnZW9t
ZXRyCiAgICAgcmV0dXJuIGdyYXBoaWNzVmlldy0+bWFwRnJvbVNjZW5lKHZpZXctPmJvdW5kaW5n
UmVjdCgpKS5ib3VuZGluZ1JlY3QoKTsKIH0KIAotI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NU
T1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogUVJlY3RGIFBhZ2VDbGllbnRRR3Jh
cGhpY3NXaWRnZXQ6OmdyYXBoaWNzSXRlbVZpc2libGVSZWN0KCkgY29uc3QKIHsKICAgICBpZiAo
IXZpZXctPnNjZW5lKCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1Bh
Z2VDbGllbnRRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvUGFnZUNsaWVudFF0LmgJKHJldmlzaW9uIDk3NTY4KQorKysgU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDcgKzIw
MSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY3JlYXRlT3JEZWxldGVPdmVybGF5KCk7CiAKLSNp
ZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9S
RSkKICAgICB2b2lkIHVwZGF0ZVRpbGVkQmFja2luZ1N0b3JlU2NhbGUoKTsKICAgICB2aXJ0dWFs
IFFSZWN0RiBncmFwaGljc0l0ZW1WaXNpYmxlUmVjdCgpIGNvbnN0OwogI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFwaGljc3dlYnZp
ZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vi
dmlldy90c3RfcWdyYXBoaWNzd2Vidmlldy5jcHAJKHJldmlzaW9uIDk3NTY4KQorKysgU291cmNl
L1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3RzdF9xZ3JhcGhpY3N3ZWJ2aWV3LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZv
aWQgc2V0UGFsZXR0ZSgpOwogI2VuZGlmCiAgICAgdm9pZCByZW5kZXJIaW50cygpOwotI2lmIGRl
ZmluZWQoRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkUpICYmIEVOQUJMRV9USUxFRF9CQUNLSU5H
X1NUT1JFCisjaWYgZGVmaW5lZChXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUpICYmIFdURl9V
U0VfVElMRURfQkFDS0lOR19TVE9SRQogICAgIHZvaWQgYnVnNTY5MjkoKTsKICNlbmRpZgogI2lm
IGRlZmluZWQoRU5BQkxFX1dFQkdMKSAmJiBFTkFCTEVfV0VCR0wKQEAgLTIwMCw3ICsyMDAsNyBA
QCB2b2lkIHRzdF9RR3JhcGhpY3NXZWJWaWV3Ojp3aWRnZXRzUmVuZGVyCiAgICAgUUNPTVBBUkUo
cmVmZXJlbmNlUGl4bWFwLnRvSW1hZ2UoKSwgdmlld1dpdGhUaWxpbmcudG9JbWFnZSgpKTsKIH0K
IAotI2lmIGRlZmluZWQoRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkUpICYmIEVOQUJMRV9USUxF
RF9CQUNLSU5HX1NUT1JFCisjaWYgZGVmaW5lZChXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUp
ICYmIFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRQogdm9pZCB0c3RfUUdyYXBoaWNzV2ViVmll
dzo6YnVnNTY5MjkoKQogewogICAgIC8vIFdoZW4gcmVuZGVyaW5nIGZyb20gdGlsZXMgc3ljaHJv
bm91cyBsYXlvdXQgc2hvdWxkIG5vdCBiZSB0cmlnZ2VyZWQKSW5kZXg6IFRvb2xzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NTY4KQorKysgVG9v
bHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMTAtMTUg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpIHRvIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxOTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYW5pZWwgQmF0ZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdl
YmtpdDoKKwogMjAxMS0xMC0xNSAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIHJ1bi13ZWJraXQtdGVzdHMgc2hvdWxkIGFjY2VwdCAtLWNoaWxkLXByb2Nlc3NlcwpJ
bmRleDogVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy9idWlsZC13ZWJraXQJKHJldmlzaW9uIDk3NTY4KQorKysgVG9vbHMvU2NyaXB0cy9idWls
ZC13ZWJraXQJKHdvcmtpbmcgY29weSkKQEAgLTMwMyw3ICszMDMsNyBAQCBteSBAZmVhdHVyZXMg
PSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9TVkdfRk9OVFMiLCBkZWZhdWx0ID0+IDEsIHZh
bHVlID0+IFwkc3ZnRm9udHNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidGlsZWQtYmFj
a2luZy1zdG9yZSIsIGRlc2MgPT4gIlRvZ2dsZSBUaWxlZCBCYWNraW5nIFN0b3JlIHN1cHBvcnQi
LAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVElMRURfQkFDS0lOR19TVE9SRSIsIGRlZmF1bHQg
PT4gaXNRdCgpLCB2YWx1ZSA9PiBcJHRpbGVkQmFja2luZ1N0b3JlU3VwcG9ydCB9LAorICAgICAg
ZGVmaW5lID0+ICJXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUiLCBkZWZhdWx0ID0+IGlzUXQo
KSwgdmFsdWUgPT4gXCR0aWxlZEJhY2tpbmdTdG9yZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJ0b3VjaC1ldmVudHMiLCBkZXNjID0+ICJUb2dnbGUgVG91Y2ggRXZlbnRzIHN1cHBvcnQi
LAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwgZGVmYXVsdCA9PiBpc1F0
KCksIHZhbHVlID0+IFwkdG91Y2hFdmVudHNTdXBwb3J0IH0sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>