<?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>81120</bug_id>
          
          <creation_ts>2012-03-14 09:02:25 -0700</creation_ts>
          <short_desc>[BlackBerry] Syncing up left over bits in WebCoreSupport from our local branch to upstream</short_desc>
          <delta_ts>2012-03-16 13:00:43 -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>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nima Ghanavatian">nima.ghanavatian</reporter>
          <assigned_to name="Nima Ghanavatian">nima.ghanavatian</assigned_to>
          <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>578456</commentid>
    <comment_count>0</comment_count>
    <who name="Nima Ghanavatian">nima.ghanavatian</who>
    <bug_when>2012-03-14 09:02:25 -0700</bug_when>
    <thetext>This is a consolidation of various changes that are in our local dev branch but do not appear in our upstreamed port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578463</commentid>
    <comment_count>1</comment_count>
      <attachid>131868</attachid>
    <who name="Nima Ghanavatian">nima.ghanavatian</who>
    <bug_when>2012-03-14 09:06:32 -0700</bug_when>
    <thetext>Created attachment 131868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578551</commentid>
    <comment_count>2</comment_count>
      <attachid>131880</attachid>
    <who name="Nima Ghanavatian">nima.ghanavatian</who>
    <bug_when>2012-03-14 10:48:41 -0700</bug_when>
    <thetext>Created attachment 131880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578575</commentid>
    <comment_count>3</comment_count>
      <attachid>131880</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-14 11:15:28 -0700</bug_when>
    <thetext>Comment on attachment 131880
Patch

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

Some code needs to be stripped out.

&gt; Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp:551
&gt; +    }

This is the &quot;BrowserField2&quot; code, we do not want it in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580687</commentid>
    <comment_count>4</comment_count>
      <attachid>132320</attachid>
    <who name="Nima Ghanavatian">nima.ghanavatian</who>
    <bug_when>2012-03-16 11:03:00 -0700</bug_when>
    <thetext>Created attachment 132320
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580777</commentid>
    <comment_count>5</comment_count>
      <attachid>132320</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-16 12:15:02 -0700</bug_when>
    <thetext>Comment on attachment 132320
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580835</commentid>
    <comment_count>6</comment_count>
      <attachid>132320</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 13:00:38 -0700</bug_when>
    <thetext>Comment on attachment 132320
Patch

Clearing flags on attachment: 132320

Committed r111050: &lt;http://trac.webkit.org/changeset/111050&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580836</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 13:00:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131868</attachid>
            <date>2012-03-14 09:06:32 -0700</date>
            <delta_ts>2012-03-14 10:48:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81120-20120314120341.patch</filename>
            <type>text/plain</type>
            <size>31477</size>
            <attacher name="Nima Ghanavatian">nima.ghanavatian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCAxMGJkODkxOTQ1Nzk4Zjk5NWM1NzA3NGFlOGI0YjVkNzQwYmZjNTFiLi5kZDY2MDcwMDM5
OGY1NWYyMWI2OTc5ZTAwMDdlMmYxMzliM2ZjNTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsNSArMSw1OSBAQAogMjAxMi0wMy0xMyAgTmltYSBHaGFuYXZhdGlhbiAgPG5n
aGFuYXZhdGlhbkByaW0uY29tPgogCisgICAgICAgIFtCbGFja0JlcnJ5XSBTeW5jaW5nIHVwIGxl
ZnQgb3ZlciBiaXRzIGluIFdlYkNvcmVTdXBwb3J0IGZyb20gb3VyIGxvY2FsIGJyYW5jaCB0byB1
cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODExMjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZlYXR1cmVzLmluOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Fib3V0RGF0YUhhdmVGZWF0dXJlcy5pbjoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9BYm91dERhdGFVc2VGZWF0dXJlcy5pbjoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJs
YWNrQmVycnk6Omhhc09wZW5lZFBvcHVwKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6c2NyZWVuVG9Sb290Vmlldyk6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojpyb290Vmlld1RvU2NyZWVuKToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OmludmFsaWRhdGVSb290
Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjppbnZhbGlk
YXRlQ29udGVudHNBbmRSb290Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRC
bGFja0JlcnJ5OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OnNjcm9sbGFibGVBcmVhc0RpZENoYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpjcmVhdGVDb2xvckNo
b29zZXIpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnku
aDoKKyAgICAgICAgKENocm9tZUNsaWVudEJsYWNrQmVycnkpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6bnVtVG91Y2hFdmVudEhhbmRsZXJzQ2hhbmdlZCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZWdpc3RlclVuZG9TdGVwKToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6OnJlZ2lzdGVyUmVkb1N0
ZXApOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6dW5kbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZWRvKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChFZGl0
b3JDbGllbnRCbGFja0JlcnJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5OjpkaXNwYXRjaERpZENvbW1pdExvYWQpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRvd25sb2FkKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hE
aWRSZWNlaXZlSWNvbik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNr
QmVycnkuY3BwOgorICAgICAgICAoR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50QmxhY2tCZXJy
eTo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAoR2VvbG9jYXRpb25Db250cm9sbGVyQ2xp
ZW50QmxhY2tCZXJyeTo6Y2FuY2VsUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEJsYWNrQmVycnk6OmNsb3NlSW5zcGVjdG9yRnJv
bnRlbmQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
bGllbnRCbGFja0JlcnJ5OjpicmluZ0Zyb250ZW5kVG9Gcm9udCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAoSW5zcGVjdG9y
Q2xpZW50QmxhY2tCZXJyeSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9u
UHJlc2VudGVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50
ZXJJbXBsOjppbnN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50
ZXJJbXBsOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlcklt
cGw6OmNoZWNrUGVybWlzc2lvbik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0
aW9uUHJlc2VudGVySW1wbC5oOgorICAgICAgICAoTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbCk6
CisKKzIwMTItMDMtMTMgIE5pbWEgR2hhbmF2YXRpYW4gIDxuZ2hhbmF2YXRpYW5AcmltLmNvbT4K
KwogICAgICAgICBbQmxhY2tCZXJyeV0gU3luY2luZyB1cCBsZWZ0IG92ZXIgYml0cyBpbiBXZWJL
aXRTdXBwb3J0IGZyb20gb3VyIGxvY2FsIGJyYW5jaCB0byB1cHMgICAgdHJlYW0gCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTExOAogICAgICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9BYm91
dERhdGFFbmFibGVGZWF0dXJlcy5pbiBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9BYm91dERhdGFFbmFibGVGZWF0dXJlcy5pbgppbmRleCA5MzI2ZDgwZDg3YWE4OGNl
YTVjODkwODQyYWI2MWY4M2Q2MTQ1ZTc3Li5hMDVhYzY4MjJjYTE1ODkzZGRkMjdlOWRlYmZjNzQy
ODE3OTliOTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvQWJvdXREYXRhRW5hYmxlRmVhdHVyZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZlYXR1cmVzLmluCkBAIC0xLDI3
ICsxLDI1IEBACiszRF9DQU5WQVMKIDNEX1BMVUdJTgogM0RfUkVOREVSSU5HCiBBQ0NFTEVSQVRF
RF8yRF9DQU5WQVMKIEFTU0VNQkxFUgogQVNTRU1CTEVSX1dYX0VYQ0xVU0lWRQogQkxBQ0tCRVJS
WV9DUkVERU5USUFMX1BFUlNJU1QKK0JMQUNLQkVSUllfREVCVUdfTUVNT1JZCiBCTE9CCiBCUkFO
Q0hfQ09NUEFDVElPTgogQ0hBTk5FTF9NRVNTQUdJTkcKIENPREVCTE9DS19TQU1QTElORwogQ09N
UEFSRV9BTkRfU1dBUAogQ09NUFVURURfR09UT19JTlRFUlBSRVRFUgotQ09OU0lTVEVOQ1lfQ0hF
Q0sKIENPTlRFWFRfTUVOVVMKIENTU19GSUxURVJTCi1DU1NfR1JJRF9MQVlPVVQKLUNTU19MQVlP
VVRfR1JJRAogQ1NTX1NIQURFUlMKIERBU0hCT0FSRF9TVVBQT1JUCitEQVRBR1JJRAogREFUQUxJ
U1QKIERBVEFfVFJBTlNGRVJfSVRFTVMKIERFQlVHX01BVEhfTEFZT1VUCi1ERUJVR19QUk9QQUdB
VElPTl9WRVJCT1NFCi1ERUJVR19WRVJCT1NFCiBERUJVR19XSVRIX0JSRUFLUE9JTlQKIERFVEFJ
TFMKIERFVklDRV9PUklFTlRBVElPTgpAQCAtMzAsMTIgKzI4LDE1IEBAIERJUkVDVE9SWV9VUExP
QUQKIERPVUJMRV9UQVBfQ0VOVEVSUwogRE9XTkxPQURfQVRUUklCVVRFCiBEUkFHX1NVUFBPUlQK
K0VWRU5UX01PREVfTUVUQVRBR1MKIEVYRUNVVEFCTEVfQUxMT0NBVE9SX0RFTUFORAogRVhFQ1VU
QUJMRV9BTExPQ0FUT1JfRklYRUQKK0VYUEVSSU1FTlRBTF9GRUFUVVJFCiBGQVNUX01BTExPQ19N
QVRDSF9WQUxJREFUSU9OCiBGQVNUX01PQklMRV9TQ1JPTExJTkcKIEZJTEVfU1lTVEVNCiBGSUxU
RVJTCitGSVhFRF9SRVBPUlRFRF9TSVpFCiBGVFBESVIKIEZVTExTQ1JFRU5fQVBJCiBHQU1FUEFE
CkBAIC00Myw2ICs0NCw3IEBAIEdDX0xPR0dJTkcKIEdDX1ZBTElEQVRJT04KIEdFT0xPQ0FUSU9O
CiBHRVNUVVJFX0VWRU5UUworR0VTVFVSRV9SRUNPR05JWkVSCiBHR0MKIEdMSUJfU1VQUE9SVAog
R0xPQkFMX0ZBU1RNQUxMT0NfTkVXCkBAIC01OSwxNSArNjEsMTEgQEAgSU5QVVRfVFlQRV9USU1F
CiBJTlBVVF9UWVBFX1dFRUsKIElOU1BFQ1RPUgogSU5URVJQUkVURVIKLUpBVkFfQlJJREdFCiBK
QVZBU0NSSVBUX0RFQlVHR0VSCiBKQVZBU0NSSVBUX0kxOE5fQVBJCitKQVZBX0JSSURHRQogSklU
Ci1KSVRfQVNTRVJUCi1KSVRfQlJFQUtfT05fRVZFUllfQkxPQ0sKLUpJVF9CUkVBS19PTl9FVkVS
WV9GVU5DVElPTgotSklUX0JSRUFLX09OX0VWRVJZX05PREUKLUpJVF9CUkVBS19PTl9TUEVDVUxB
VElPTl9GQUlMVVJFCitKSVRfT1BUSU1JWkVfUFJPUEVSVFlfQUNDRVNTCiBKSVRfVVNFX1NPRlRf
TU9EVUxPCiBKSVRfVkVSQk9TRQogSklUX1ZFUkJPU0VfT1NSCkBAIC04NywxNyArODUsMTcgQEAg
TVVUQVRJT05fT0JTRVJWRVJTCiBORVRTQ0FQRV9QTFVHSU5fQVBJCiBORVRTQ0FQRV9QTFVHSU5f
TUVUQURBVEFfQ0FDSEUKIE5FV19YTUwKLU5PX0xJU1RCT1hfUkVOREVSSU5HCiBOT1RJRklDQVRJ
T05TCitOT19MSVNUQk9YX1JFTkRFUklORwogT1BDT0RFX1NBTVBMSU5HCiBPUENPREVfU1RBVFMK
K09QRU5UWVBFX1NBTklUSVpFUgogT1JJRU5UQVRJT05fRVZFTlRTCi1PU1JfRU5UUlkKLVBBR0Vf
Q0FDSEUKIFBBR0VfVklTSUJJTElUWV9BUEkKIFBBTl9TQ1JPTExJTkcKIFBBUkFMTEVMX0dDCiBQ
QVJBTExFTF9KT0JTCitQQVNTV09SRF9FQ0hPCiBQTFVHSU5fUEFDS0FHRV9TSU1QTEVfSEFTSAog
UExVR0lOX1BST0NFU1MKIFBMVUdJTl9QUk9YWV9GT1JfVklERU8KQEAgLTEwOSwyMCArMTA3LDIy
IEBAIFJFR0VYUF9UUkFDSU5HCiBSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSCiBSRVBBSU5UX1RI
Uk9UVExJTkcKIFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FCi1SRVNUUklDVElPTlMKIFJVQkJFUl9C
QU5ESU5HCiBSVU5fVElNRV9IRVVSSVNUSUNTCitSWElfSU1BR0VfRk9STUFUCiBTQU1QTElOR19D
T1VOVEVSUwogU0FNUExJTkdfRkxBR1MKIFNBTVBMSU5HX1JFR0lPTlMKIFNBTVBMSU5HX1RIUkVB
RAogU0hBUkVEX1dPUktFUlMKIFNJTVBMRV9IRUFQX1BST0ZJTElORworU0lOR0xFX1RIUkVBREVE
CitTS0lBX0dQVV9DQU5WQVMKK1NLSUFfVEVYVAogU01PT1RIX1NDUk9MTElORwogU1BFRUNIX0lO
UFVUCiBTUEVMTENIRUNLCiBTUUxfREFUQUJBU0UKLVNVQ0NFU1NfU1RBVFMKIFNWRwogU1ZHX0RP
TV9PQkpDX0JJTkRJTkdTCiBTVkdfRk9OVFMKQEAgLTEzMiwxNiArMTMyLDE2IEBAIFRIUkVBRElO
R19MSUJESVNQQVRDSAogVEhSRUFESU5HX09QRU5NUAogVE9VQ0hfRVZFTlRTCiBUT1VDSF9JQ09O
X0xPQURJTkcKLVZfMDI4RDEwX0ZPUkNFX0RJU0FCTEUKIFZBTFVFX1BST0ZJTEVSCi1WRVJCT1NF
X1NQRUNVTEFUSU9OX0ZBSUxVUkUKIFZFUkJPU0VfVkFMVUVfUFJPRklMRQotVkVSQk9TRV9WQUxV
RV9SRUNPVkVSSUVTCiBWSURFTwogVklERU9fVFJBQ0sKK1ZJRVdQT1JUX1JFRkxPVworV0VCRE9N
CitXRUJHTAorV0VCS0lUMgogV0VCX0FSQ0hJVkUKIFdFQl9BVURJTwotV0VCR0wKIFdFQl9QUk9D
RVNTX1NBTkRCT1gKIFdFQl9TT0NLRVRTCiBXRUJfVElNSU5HCkBAIC0xNDksNyArMTQ5LDcgQEAg
V09SS0VSUwogV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcKIFdURl9NQUxMT0NfVkFMSURBVElPTgog
WEhSX1JFU1BPTlNFX0JMT0IKLVhPUl9ERUJVR19BSUQKK1hIVE1MTVAKIFhTTFQKIFlBUlJfSklU
CiBZQVJSX0pJVF9ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0Fib3V0RGF0YUhhdmVGZWF0dXJlcy5pbiBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9BYm91dERhdGFIYXZlRmVhdHVyZXMuaW4KaW5kZXggMTUy
NTlkOTljMTM0NzM4ZGYyYmMzN2YzMjk1YjU4OTlkZDNlNWZiMy4uMjFmM2M2ZGNjNDI2ZDkzOGEy
NDUyMzhlMjg1ZTgxOGQ1MGMxYmQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUhhdmVGZWF0dXJlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhSGF2ZUZlYXR1cmVzLmlu
CkBAIC0xLDQgKzEsNSBAQAogQUNDRVNTSUJJTElUWQorQVNTRU1CTEVSCiBBVkNGCiBDR19JTlRF
UlBPTEFUSU9OX01FRElVTQogQ09NUFVURURfR09UTwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YVVzZUZlYXR1cmVzLmluIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YVVzZUZlYXR1cmVz
LmluCmluZGV4IGI3NDRkOTA0YzBkNjY5ZTkzYjU1NGIyMGU0NGYxZTBiYTg4NzI0NDIuLmUxYTdj
ZWQxNTg3Y2Q3NDU5YWEyYjc3NDEyZGQwZDhlZWNlMDk5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9BYm91dERhdGFVc2VGZWF0dXJlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhVXNl
RmVhdHVyZXMuaW4KQEAgLTEzLDEzICsxMywxNiBAQCBDRlVSTENBQ0hFCiBDRlVSTFNUT1JBR0VT
RVNTSU9OUwogQ0cKIENHX0lOVEVSUE9MQVRJT05fTUVESVVNCitDSFJPTUVfTkVUV09SS19TVEFD
SwogQ09SRUFVRElPCiBDT1JFX1RFWFQKIENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMKIENV
UkwKIERZTkFNSUNfQU5OT1RBVElPTlMKIERZTkFNSUNfQU5OT1RBVElPTlNfTk9JTVBMCitFR0wK
IEVYUE9SVF9NQUNST1MKK0VYVEVSTkFMX0NSQVNICiBGUkVFVFlQRQogR0NDX0NPTVBVVEVEX0dP
VE9fV09SS0FST1VORAogR0xJQl9VTklDT0RFCkBAIC00MCwxNCArNDMsMTYgQEAgTUFSS0VSX1JF
TU9WQUxfVVBPTl9FRElUSU5HCiBNRVJTRU5ORV9UV0lTVEVSXzE5OTM3CiBORVdfVEhFTUUKIE9Q
RU5UWVBFX1NBTklUSVpFUgorT1BFTlZHCitPUEVOVkdfQkxVUgogT1NfUkFORE9NTkVTUwogUEFO
R08KIFBMQVRGT1JNX1NUUkFURUdJRVMKIFBMVUdJTl9IT1NUX1BST0NFU1MKIFBSRUVNUFRfR0VP
TE9DQVRJT05fUEVSTUlTU0lPTgogUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLCi1QVEhS
RUFEX0dFVFNQRUNJRklDX0RJUkVDVAogUFRIUkVBRFMKK1BUSFJFQURfR0VUU1BFQ0lGSUNfRElS
RUNUCiBRVDRfVU5JQ09ERQogUVRLSVQKIFFUX01PQklMSVRZX1NZU1RFTUlORk8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRC
bGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCA1Yjk3NGQwZTgxNTkwMTYwZDVkYTMxNDQx
ZTIzZjgzMjBhZWIwMzNhLi4yZjI0MTQ2ZjQwMzQ5ZTJiZDg1NzY0YTliNTgwMjk5ODgzNDNhOGEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0yNCw2ICsyNCw3IEBA
CiAjaW5jbHVkZSAiQmFja2luZ1N0b3JlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQmFja2luZ1N0b3Jl
X3AuaCIKICNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyLmgiCiAj
aW5jbHVkZSAiRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJEdW1wUmVuZGVyVHJlZUNsaWVudC5oIgpAQCAtNDMsNiArNDQsNyBAQAogI2luY2x1ZGUg
IktVUkwuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
KyNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cExvYWREZWZlcnJl
ci5oIgpAQCAtMjczLDYgKzI3NSwxMiBAQCBib29sIENocm9tZUNsaWVudEJsYWNrQmVycnk6OnNl
bGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKQogICAgIHJldHVy
biB0cnVlOwogfQogCitib29sIENocm9tZUNsaWVudEJsYWNrQmVycnk6Omhhc09wZW5lZFBvcHVw
KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KwogUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZUNsaWVudEJsYWNrQmVycnk6OmNyZWF0ZVBv
cHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFBvcHVwTWVudUJsYWNrQmVycnkoY2xpZW50KSk7CkBAIC0zNzEsMTQgKzM3OSwx
NCBAQCBJbnRSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OndpbmRvd1Jlc2l6ZXJSZWN0KCkg
Y29uc3QKICAgICByZXR1cm4gSW50UmVjdCgpOwogfQogCi1JbnRQb2ludCBDaHJvbWVDbGllbnRC
bGFja0JlcnJ5OjpzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYgc2NyZWVuUG9zKSBjb25z
dAorSW50UG9pbnQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6c2NyZWVuVG9Sb290Vmlldyhjb25z
dCBJbnRQb2ludCYgc2NyZWVuUG9zKSBjb25zdAogewogICAgIEludFBvaW50IHdpbmRvd1BvaW50
ID0gbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPndpbmRvdygpLT53aW5kb3dMb2NhdGlvbigp
OwogICAgIHdpbmRvd1BvaW50Lm1vdmUoLXNjcmVlblBvcy54KCksIC1zY3JlZW5Qb3MueSgpKTsK
ICAgICByZXR1cm4gd2luZG93UG9pbnQ7CiB9CiAKLUludFJlY3QgQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeTo6d2luZG93VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCkgY29uc3QKK0lu
dFJlY3QgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRS
ZWN0JiB3aW5kb3dSZWN0KSBjb25zdAogewogICAgIEludFJlY3Qgd2luZG93UG9pbnQod2luZG93
UmVjdCk7CiAgICAgSW50UG9pbnQgbG9jYXRpb24obV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQt
PndpbmRvdygpLT53aW5kb3dMb2NhdGlvbigpKTsKQEAgLTUxMywxMiArNTIxLDEyIEBAIHZvaWQg
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUs
IGNvbnN0IEludFNpemUmIHNpCiAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+Y29udGVudHNTaXplQ2hh
bmdlZChzaXplKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjppbnZhbGlkYXRl
V2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBD
aHJvbWVDbGllbnRCbGFja0JlcnJ5OjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYg
dXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCiB7CiAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9i
YWNraW5nU3RvcmUtPmQtPnJlcGFpbnQodXBkYXRlUmVjdCwgZmFsc2UgLypjb250ZW50Q2hhbmdl
ZCovLCBpbW1lZGlhdGUpOwogfQogCi12b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmludmFs
aWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGlt
bWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6aW52YWxpZGF0ZUNvbnRlbnRz
QW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCiB7
CiAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9iYWNraW5nU3RvcmUtPmQtPnJlcGFpbnQodXBkYXRl
UmVjdCwgdHJ1ZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIGltbWVkaWF0ZSk7CiB9CkBAIC01MjYsNyAr
NTM0LDcgQEAgdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjppbnZhbGlkYXRlQ29udGVudHNB
bmRXaW5kb3coY29uc3QgSW50UmVjdCYgdXBkYXRlUmUKIHZvaWQgQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeTo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRTaXplJiBkZWx0
YSwgY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUsIGNvbnN0IFNjcm9s
bFZpZXcqIHNjcm9sbFZpZXcpCiB7CiAgICAgaWYgKHNjcm9sbFZpZXcgIT0gbV93ZWJQYWdlUHJp
dmF0ZS0+bV9tYWluRnJhbWUtPnZpZXcoKSkKLSAgICAgICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5k
V2luZG93KHVwZGF0ZVJlY3QsIHRydWUgLyppbW1lZGlhdGUqLyk7CisgICAgICAgIGludmFsaWRh
dGVDb250ZW50c0FuZFJvb3RWaWV3KHVwZGF0ZVJlY3QsIHRydWUgLyppbW1lZGlhdGUqLyk7CiAg
ICAgZWxzZSB7CiAgICAgICAgIEJhY2tpbmdTdG9yZUNsaWVudCogYmFja2luZ1N0b3JlQ2xpZW50
Rm9yRnJhbWUgPSBtX3dlYlBhZ2VQcml2YXRlLT5iYWNraW5nU3RvcmVDbGllbnRGb3JGcmFtZSht
X3dlYlBhZ2VQcml2YXRlLT5tX21haW5GcmFtZSk7CiAgICAgICAgIEFTU0VSVChiYWNraW5nU3Rv
cmVDbGllbnRGb3JGcmFtZSk7CkBAIC01NTQsNyArNTYyLDcgQEAgdm9pZCBDaHJvbWVDbGllbnRC
bGFja0JlcnJ5OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgZGVsdGEsIGNvbnN0IEludFJlY3QmIHNj
cm9sbFYKIHZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6c2Nyb2xsYWJsZUFyZWFzRGlkQ2hh
bmdlKCkKIHsKICAgICB0eXBlZGVmIEhhc2hTZXQ8U2Nyb2xsYWJsZUFyZWEqPiBTY3JvbGxhYmxl
QXJlYVNldDsKLSAgICBjb25zdCBTY3JvbGxhYmxlQXJlYVNldCogc2Nyb2xsYWJsZUFyZWFzID0g
bV93ZWJQYWdlUHJpdmF0ZS0+bV9wYWdlLT5zY3JvbGxhYmxlQXJlYVNldCgpOworICAgIGNvbnN0
IFNjcm9sbGFibGVBcmVhU2V0KiBzY3JvbGxhYmxlQXJlYXMgPSBtX3dlYlBhZ2VQcml2YXRlLT5t
X21haW5GcmFtZS0+dmlldygpLT5zY3JvbGxhYmxlQXJlYXMoKTsKIAogICAgIGJvb2wgaGFzQXRM
ZWFzdE9uZUluUmVnaW9uU2Nyb2xsYWJsZUFyZWEgPSBmYWxzZTsKICAgICBTY3JvbGxhYmxlQXJl
YVNldDo6aXRlcmF0b3IgZW5kID0gc2Nyb2xsYWJsZUFyZWFzLT5lbmQoKTsKQEAgLTcyOCw0ICs3
MzYsMTAgQEAgYm9vbCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjphbGxvd3NBY2NlbGVyYXRlZENv
bXBvc2l0aW5nKCkgY29uc3QKIH0KICNlbmRpZgogCitQYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4g
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNs
aWVudCosIGNvbnN0IENvbG9yJikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaAppbmRleCBm
NDcwZjc4ZmJjNTI0NTA4MTg1M2Q2MThhNzdmZDJkODMwMjZjNzJlLi44OTM1MGQyOTFkZDIzODNl
MjVjNmNmZDU4YjlhYWNkM2MyZTE1OWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5
LmgKQEAgLTcwLDEzICs3MCwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZElu
dGVycnVwdEphdmFTY3JpcHQoKTsKICAgICB2aXJ0dWFsIEtleWJvYXJkVUlNb2RlIGtleWJvYXJk
VUlNb2RlKCk7CiAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7
Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wp
OwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50
UmVjdCYsIGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3Qg
SW50UmVjdCYsIGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRS
b290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBi
b29sLCBjb25zdCBTY3JvbGxWaWV3Kik7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJ
bnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsYWJsZUFyZWFzRGlkQ2hhbmdlKCk7Ci0gICAgdmlydHVhbCBJbnRQb2ludCBzY3Jl
ZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwotICAgIHZpcnR1YWwgSW50UmVjdCB3
aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Q7CisgICAgdmlydHVhbCBJbnRQb2lu
dCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JikgY29uc3Q7CisgICAgdmlydHVhbCBJ
bnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50UmVjdCYpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYsIGNv
bnN0IFNjcm9sbFZpZXcqKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIGludCk7CkBAIC04OCw2ICs4
OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRp
ZXNEaWRDaGFuZ2UoY29uc3QgVmlld3BvcnRBcmd1bWVudHMmKSBjb25zdDsKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnND
aGFuZ2VkKHVuc2lnbmVkKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbnVtVG91Y2hFdmVudEhhbmRs
ZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lKik7
CiAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0
cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRy
PEZpbGVDaG9vc2VyPik7CkBAIC0xMDMsNiArMTA0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoSU5QVVRfQ09MT1IpCisgICAgdmlydHVhbCBQYXNzT3duUHRyPENvbG9yQ2hvb3Nl
cj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJik7
CiAgICAgdm9pZCBvcGVuQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciosIGNvbnN0IENvbG9yJikg
eyB9CiAgICAgdm9pZCBjbGVhbnVwQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciopIHsgfQogICAg
IHZvaWQgc2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciosIGNvbnN0
IENvbG9yJikgeyB9CkBAIC0xMzEsNiArMTMzLDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgdmly
dHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CiAgICAgdmly
dHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24o
KTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kikg
Y29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJy
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggZmY5MmJkOTFiNGM4NzI2ZmExYjdiYWI2YmEyOWU1OGRm
OWI0ZjRhYS4uODVmMzQ5MzExYjhiZWU1ZTEzMDZjNDUxM2EyNDU4NzJkMzI3OTVmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQg
RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6ZGlkU2V0U2VsZWN0aW9uVHlwZXNGb3JQYXN0ZWJvYXJk
KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEVkaXRvckNsaWVudEJsYWNrQmVy
cnk6OnJlZ2lzdGVyQ29tbWFuZEZvclVuZG8oUGFzc1JlZlB0cjxFZGl0Q29tbWFuZD4gY29tbWFu
ZCkKK3ZvaWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6cmVnaXN0ZXJVbmRvU3RlcChQYXNzUmVm
UHRyPFVuZG9TdGVwPiBzdGVwKQogewogICAgIC8vIFJlbW92ZSB0aGUgb2xkZXN0IGl0ZW0gaWYg
d2UndmUgcmVhY2hlZCB0aGUgbWF4aW11bSBjYXBhY2l0eSBmb3IgdGhlIHN0YWNrLgogICAgIGlm
IChtX3VuZG9TdGFjay5zaXplKCkgPT0gbWF4aW11bVVuZG9TdGFja0RlcHRoKQpAQCAtMjY2LDEy
ICsyNjYsMTIgQEAgdm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZWdpc3RlckNvbW1hbmRG
b3JVbmRvKFBhc3NSZWZQdHI8RWRpdENvbW1hbmQ+IGNvbW0KICAgICBpZiAoIW1faW5SZWRvKQog
ICAgICAgICBtX3JlZG9TdGFjay5jbGVhcigpOwogCi0gICAgbV91bmRvU3RhY2suYXBwZW5kKGNv
bW1hbmQpOworICAgIG1fdW5kb1N0YWNrLmFwcGVuZChzdGVwKTsKIH0KIAotdm9pZCBFZGl0b3JD
bGllbnRCbGFja0JlcnJ5OjpyZWdpc3RlckNvbW1hbmRGb3JSZWRvKFBhc3NSZWZQdHI8RWRpdENv
bW1hbmQ+IGNvbW1hbmQpCit2b2lkIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnJlZ2lzdGVyUmVk
b1N0ZXAoUGFzc1JlZlB0cjxVbmRvU3RlcD4gc3RlcCkKIHsKLSAgICBtX3JlZG9TdGFjay5hcHBl
bmQoY29tbWFuZCk7CisgICAgbV9yZWRvU3RhY2suYXBwZW5kKHN0ZXApOwogfQogCiB2b2lkIEVk
aXRvckNsaWVudEJsYWNrQmVycnk6OmNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkKQEAgLTMwNCw3
ICszMDQsNyBAQCB2b2lkIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnVuZG8oKQogewogICAgIGlm
IChjYW5VbmRvKCkpIHsKICAgICAgICAgRWRpdENvbW1hbmRTdGFjazo6aXRlcmF0b3IgYmFjayA9
IC0tbV91bmRvU3RhY2suZW5kKCk7Ci0gICAgICAgIFJlZlB0cjxFZGl0Q29tbWFuZD4gY29tbWFu
ZCgqYmFjayk7CisgICAgICAgIFJlZlB0cjxVbmRvU3RlcD4gY29tbWFuZCgqYmFjayk7CiAgICAg
ICAgIG1fdW5kb1N0YWNrLnJlbW92ZShiYWNrKTsKIAogICAgICAgICAvLyBVbmFwcGx5IHdpbGwg
Y2FsbCB1cyBiYWNrIHRvIHB1c2ggdGhpcyBjb21tYW5kIG9udG8gdGhlIHJlZG8gc3RhY2suCkBA
IC0zMTYsNyArMzE2LDcgQEAgdm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZWRvKCkKIHsK
ICAgICBpZiAoY2FuUmVkbygpKSB7CiAgICAgICAgIEVkaXRDb21tYW5kU3RhY2s6Oml0ZXJhdG9y
IGJhY2sgPSAtLW1fcmVkb1N0YWNrLmVuZCgpOwotICAgICAgICBSZWZQdHI8RWRpdENvbW1hbmQ+
IGNvbW1hbmQoKmJhY2spOworICAgICAgICBSZWZQdHI8VW5kb1N0ZXA+IGNvbW1hbmQoKmJhY2sp
OwogICAgICAgICBtX3JlZG9TdGFjay5yZW1vdmUoYmFjayk7CiAKICAgICAgICAgQVNTRVJUKCFt
X2luUmVkbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaAppbmRleCA1NGEzMTAwOTAw
MDI5OGU4OTFmMDczZGQ3NTdjMDJlZjUxZTAxN2U4Li40ODYxNzZiMGQxODU4MzU5YmM1YWUxNDIz
NDQxNmE0MzMxM2IyMGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTYw
LDggKzYwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRFZGl0aW5nKCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgdmly
dHVhbCB2b2lkIGRpZFNldFNlbGVjdGlvblR5cGVzRm9yUGFzdGVib2FyZCgpOwotICAgIHZpcnR1
YWwgdm9pZCByZWdpc3RlckNvbW1hbmRGb3JVbmRvKFBhc3NSZWZQdHI8RWRpdENvbW1hbmQ+KTsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJDb21tYW5kRm9yUmVkbyhQYXNzUmVmUHRyPEVkaXRD
b21tYW5kPik7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoUGFzc1JlZlB0cjxV
bmRvU3RlcD4pOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclJlZG9TdGVwKFBhc3NSZWZQdHI8
VW5kb1N0ZXA+KTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKTsK
ICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29weUN1dChGcmFtZSosIGJvb2wpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCBjYW5QYXN0ZShGcmFtZSosIGJvb2wpIGNvbnN0OwpAQCAtMTA4LDcgKzEwOCw3
IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faW5SZWRvOwogCi0gICAgdHlwZWRlZiBEZXF1ZTxS
ZWZQdHI8V2ViQ29yZTo6RWRpdENvbW1hbmQ+ID4gRWRpdENvbW1hbmRTdGFjazsKKyAgICB0eXBl
ZGVmIERlcXVlPFJlZlB0cjxXZWJDb3JlOjpVbmRvU3RlcD4gPiBFZGl0Q29tbWFuZFN0YWNrOwog
ICAgIEVkaXRDb21tYW5kU3RhY2sgbV91bmRvU3RhY2s7CiAgICAgRWRpdENvbW1hbmRTdGFjayBt
X3JlZG9TdGFjazsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnku
Y3BwCmluZGV4IDBlZWYxZjNkYWY3OGVjMmZiZTliZWI3YmY4NjU3MzQ1N2Q4MjE4MzEuLjhlZmEx
MGFjYmI5ZTQ2Y2FjOTZhNzBiNWE4MTFiMDk0MjYzNjg0ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVy
cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAi
UGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgIlNj
b3BlUG9pbnRlci5oIgorI2luY2x1ZGUgIlNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSAiVG91Y2hF
dmVudEhhbmRsZXIuaCIKQEAgLTUyNSw2ICs1MjYsMzAgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVu
dEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCgpCiB7CiAgICAgLy8gRklYTUU6IERv
IHdlIG5lZWQgdG8gZmluZCBhIHJlcGxhY2VtZW50IGZvciBtX2ZyYW1lLT5kb2N1bWVudCgpLT5z
ZXRFeHRyYUxheW91dERlbGF5KDI1MCk7PwogCisgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5
T3JpZ2luID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICBXZWJT
ZXR0aW5ncyogd2ViU2V0dGluZ3MgPSBtX3dlYlBhZ2VQcml2YXRlLT5tX3dlYlNldHRpbmdzOwor
CisgICAgLy8gV2hpdGVsaXN0IGFsbCBrbm93biBwcm90b2NvbHMgaWYgQnJvd3NlckZpZWxkMiBy
ZXF1aXJlcyB1bnJlc3RyaWN0ZWQgcmVxdWVzdHMuCisgICAgaWYgKHdlYlNldHRpbmdzLT5hbGxv
d0Nyb3NzU2l0ZVJlcXVlc3RzKCkgJiYgIXNlY3VyaXR5T3JpZ2luLT5wcm90b2NvbCgpLmlzRW1w
dHkoKSkgeworICAgICAgICBTZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoKnNlY3VyaXR5T3JpZ2luLCBTdHJpbmcoImFib3V0IiksIGVtcHR5U3RyaW5nKCksIHRy
dWUpOworICAgICAgICBTZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50
cnkoKnNlY3VyaXR5T3JpZ2luLCBTdHJpbmcoImRhdGEiKSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7
CisgICAgICAgIFNlY3VyaXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgq
c2VjdXJpdHlPcmlnaW4sIFN0cmluZygiZmlsZSIpLCBlbXB0eVN0cmluZygpLCB0cnVlKTsKKyAg
ICAgICAgU2VjdXJpdHlQb2xpY3k6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCpzZWN1
cml0eU9yaWdpbiwgU3RyaW5nKCJodHRwIiksIGVtcHR5U3RyaW5nKCksIHRydWUpOworICAgICAg
ICBTZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoKnNlY3VyaXR5
T3JpZ2luLCBTdHJpbmcoImh0dHBzIiksIGVtcHR5U3RyaW5nKCksIHRydWUpOworICAgICAgICBT
ZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoKnNlY3VyaXR5T3Jp
Z2luLCBTdHJpbmcoImphdmFzY3JpcHQiKSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7CisgICAgICAg
IFNlY3VyaXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgqc2VjdXJpdHlP
cmlnaW4sIFN0cmluZygibG9jYWwiKSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7CisgICAgICAgIFNl
Y3VyaXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgqc2VjdXJpdHlPcmln
aW4sIFN0cmluZygibWFpbHRvIiksIGVtcHR5U3RyaW5nKCksIHRydWUpOworICAgICAgICBTZWN1
cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoKnNlY3VyaXR5T3JpZ2lu
LCBTdHJpbmcoInBhdHRlcm4iKSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7CisgICAgICAgIFNlY3Vy
aXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgqc2VjdXJpdHlPcmlnaW4s
IFN0cmluZygicnRjcCIpLCBlbXB0eVN0cmluZygpLCB0cnVlKTsKKyAgICAgICAgU2VjdXJpdHlQ
b2xpY3k6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCpzZWN1cml0eU9yaWdpbiwgU3Ry
aW5nKCJydHAiKSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7CisgICAgICAgIFNlY3VyaXR5UG9saWN5
OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgqc2VjdXJpdHlPcmlnaW4sIFN0cmluZygi
cnRzcCIpLCBlbXB0eVN0cmluZygpLCB0cnVlKTsKKyAgICAgICAgU2VjdXJpdHlQb2xpY3k6OmFk
ZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCpzZWN1cml0eU9yaWdpbiwgU3RyaW5nKCJzbXMi
KSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7CisgICAgICAgIFNlY3VyaXR5UG9saWN5OjphZGRPcmln
aW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgqc2VjdXJpdHlPcmlnaW4sIFN0cmluZygidGVsIiksIGVt
cHR5U3RyaW5nKCksIHRydWUpOworCisgICAgICAgIC8vIFdlIGFsc28gd2FudCB0byBiZSBhYmxl
IHRvIGhhbmRsZSB1bmtub3duIHByb3RvY29scyBpbiB0aGUgY2xpZW50LgorICAgICAgICBzZWN1
cml0eU9yaWdpbi0+Z3JhbnRVbml2ZXJzYWxBY2Nlc3MoKTsKKyAgICB9CisKICAgICBpZiAoaXNN
YWluRnJhbWUoKSkgewogICAgICAgICBtX3dlYlBhZ2VQcml2YXRlLT5zZXRMb2FkU3RhdGUoV2Vi
UGFnZVByaXZhdGU6OkNvbW1pdHRlZCk7CiAKQEAgLTk2OSw2ICs5OTQsMTIgQEAgdm9pZCBGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50
TG9hZGVyKiBkb2NMb2EKICAgICAgICAgICAgIGZpbmFsVXJsLmNoYXJhY3RlcnMoKSwgZmluYWxV
cmwubGVuZ3RoKCkpOwogICAgIH0KIAorICAgIC8vIEZJWE1FOiBVcGRhdGUgdGhlIHJlcXVlc3Qg
dHlwZS4gU2VlIFBSICMxMTk3OTIuCisgICAgaWYgKGRvY0xvYWRlci0+ZnJhbWVMb2FkZXIoKS0+
aXNMb2FkaW5nTWFpbkZyYW1lKCkpCisgICAgICAgIHJlcXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNv
dXJjZVJlcXVlc3Q6OlRhcmdldElzTWFpbkZyYW1lKTsKKyAgICBlbHNlCisgICAgICAgIHJlcXVl
c3Quc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU3ViZnJhbWUpOworCiAg
ICAgRnJhbWVMb2FkZXIqIGxvYWRlciA9IG1fZnJhbWUtPmxvYWRlcigpOwogICAgIEFTU0VSVChs
b2FkZXIpOwogICAgIGlmIChpc0JhY2tGb3J3YXJkTG9hZFR5cGUobG9hZGVyLT5sb2FkVHlwZSgp
KSkgewpAQCAtMTE3Miw3ICsxMjAzLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVy
cnk6OnN0YXJ0RG93bmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAogICAgIG1f
d2ViUGFnZVByaXZhdGUtPmxvYWQocmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCAwLCAiR0VUIiwgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpVc2VQcm90
b2NvbENhY2hlUG9saWN5LCAwLCAwLCAwLCAwLCBmYWxzZSwgZmFsc2UsIHRydWUsICIiKTsKIH0K
IAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRvd25sb2FkKFJlc291cmNlSGFu
ZGxlKiBoYW5kbGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeTo6ZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKIHsKICAgICBCbGFja0JlcnJ5OjpQ
bGF0Zm9ybTo6RmlsdGVyU3RyZWFtKiBzdHJlYW0gPSBOZXR3b3JrTWFuYWdlcjo6aW5zdGFuY2Uo
KS0+c3RyZWFtRm9ySGFuZGxlKGhhbmRsZSk7CiAgICAgQVNTRVJUKHN0cmVhbSk7CkBAIC0xMTkw
LDEwICsxMjIxLDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRj
aERpZFJlY2VpdmVJY29uKCkKICAgICBOYXRpdmVJbWFnZVNraWEqIGJpdG1hcCA9IGltZy0+bmF0
aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKICAgICBpZiAoIWJpdG1hcCkKICAgICAgICAgcmV0
dXJuOwotICAgIGJpdG1hcC0+bG9ja1BpeGVscygpOworICAgIGJpdG1hcC0+Yml0bWFwKCkubG9j
a1BpeGVscygpOwogICAgIFN0cmluZyBpY29uVXJsID0gaWNvbkRhdGFiYXNlKCkuc3luY2hyb25v
dXNJY29uVVJMRm9yUGFnZVVSTCh1cmwpOwotICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50
LT5zZXRGYXZpY29uKGltZy0+d2lkdGgoKSwgaW1nLT5oZWlnaHQoKSwgKHVuc2lnbmVkIGNoYXIq
KWJpdG1hcC0+Z2V0UGl4ZWxzKCksIGljb25VcmwudXRmOCgpLmRhdGEoKSk7Ci0gICAgYml0bWFw
LT51bmxvY2tQaXhlbHMoKTsKKyAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+c2V0RmF2
aWNvbihpbWctPndpZHRoKCksIGltZy0+aGVpZ2h0KCksICh1bnNpZ25lZCBjaGFyKiliaXRtYXAt
PmJpdG1hcCgpLmdldFBpeGVscygpLCBpY29uVXJsLnV0ZjgoKS5kYXRhKCkpOworICAgIGJpdG1h
cC0+Yml0bWFwKCkudW5sb2NrUGl4ZWxzKCk7CiB9CiAKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRC
bGFja0JlcnJ5OjpjYW5DYWNoZVBhZ2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5o
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50QmxhY2tCZXJyeS5oCmluZGV4IDI5ODNkMDFlZTg4YTU4Mzc1NjhjMDBmZWViNTg0NDhiNGEy
ZWMwNDMuLjBhM2FmNDFlM2NhOGQwNGJjODZjM2IwMjJkZDAxNzk3ODc2ZDM0MzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTE0Niw3ICsxNDYsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFNhdmVUb1BhZ2VDYWNoZSgpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkb3dubG9h
ZChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZG93
bmxvYWQoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7CisKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWU+IGNyZWF0ZUZy
YW1lKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqLCBj
b25zdCBTdHJpbmcmLCBib29sLCBpbnQsIGludCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5z
ZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFnZSopOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQq
LCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYsIGNvbnN0IFN0cmluZyYsIGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNrQmVy
cnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0
aW9uQ29udHJvbGxlckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGZkNTlmMmU0MWRlZDczY2Uz
NjkxNWQzMmY2MWNjOTVjZjRkNmRmYmQuLmJhMjIwNDNlOWY3MGQxMDVmZjA2YWM3YjBjYjA0YWRk
ZDRlMzQ0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25Db250cm9sbGVy
Q2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNv
bnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiog
bG9jYXQKICAgICBGcmFtZSogZnJhbWUgPSBsb2NhdGlvbi0+ZnJhbWUoKTsKICAgICBpZiAoIWZy
YW1lKQogICAgICAgICByZXR1cm47Ci0gICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9wYWdlLT5jaHJv
bWUoKS0+cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKGZyYW1lLCBsb2NhdGlv
bik7CisgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnJl
cXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShmcmFtZSwgbG9jYXRpb24pOwogfQog
CiB2b2lkIEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNrQmVycnk6OmNhbmNlbFBlcm1p
c3Npb25SZXF1ZXN0KEdlb2xvY2F0aW9uKiBsb2NhdGlvbikKQEAgLTc0LDcgKzc0LDcgQEAgdm9p
ZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5OjpjYW5jZWxQZXJtaXNzaW9u
UmVxdWVzdChHZW9sb2NhdGlvbioKICAgICBGcmFtZSogZnJhbWUgPSBsb2NhdGlvbi0+ZnJhbWUo
KTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47Ci0gICAgbV93ZWJQYWdlUHJpdmF0
ZS0+bV9wYWdlLT5jaHJvbWUoKS0+Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZv
ckZyYW1lKGZyYW1lLCBsb2NhdGlvbik7CisgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9wYWdlLT5j
aHJvbWUoKS0+Y2xpZW50KCktPmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JG
cmFtZShmcmFtZSwgbG9jYXRpb24pOwogfQogCiB2b2lkIEdlb2xvY2F0aW9uQ29udHJvbGxlckNs
aWVudEJsYWNrQmVycnk6Om9uTG9jYXRpb25VcGRhdGUoZG91YmxlIHRpbWVzdGFtcCwgZG91Ymxl
IGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGRvdWJsZSBhbHRp
dHVkZSwgYm9vbCBhbHRpdHVkZVZhbGlkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNrQmVy
cnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggZWE2MzRiYjk3ZWJmNDUwMGZhM2I4
N2JhYTc0ZjdiNTljNWNkMDlmMC4uYzMyNDQ5YWVlZmFjYzhiNmY2ZTg3MTA5NTBjZWQ1ZWQwNzQx
MWM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50
QmxhY2tCZXJyeS5oCkBAIC0yMiw3ICsyMiw3IEBACiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRm
b3JtR2VvVHJhY2tlci5oPgogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUdlb1RyYWNrZXJM
aXN0ZW5lci5oPgogI2luY2x1ZGUgPEdlb2xvY2F0aW9uQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8R2Vv
bG9jYXRpb25Qb3NpdGlvbi5oPgorI2luY2x1ZGUgPFJlZlB0ci5oPgogCiBuYW1lc3BhY2UgQmxh
Y2tCZXJyeSB7CiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRC
bGFja0JlcnJ5LmNwcAppbmRleCA3M2Y4ODdmMzBhMmU1N2RiOGU1Mjg3MjU0NDMwYTU0ZjNlYjcy
M2Q0Li4wZDVjZGY0ZDFmZjUwZmM3ODFmOGFiZDlkOTVmODNjNjE5MDFmYzdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50
QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0xMjQsNiArMTI0LDE2IEBAIHZv
aWQgSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeTo6b3Blbkluc3BlY3RvckZyb250ZW5kKEluc3Bl
Y3RvckNvbnRyb2xsZXIqKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgSW5zcGVj
dG9yQ2xpZW50QmxhY2tCZXJyeTo6Y2xvc2VJbnNwZWN0b3JGcm9udGVuZCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBJbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5Ojpicmlu
Z0Zyb250ZW5kVG9Gcm9udCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogYm9vbCBJ
bnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQogewogICAgIENTdHJpbmcgdXRmOE1lc3NhZ2UgPSBtZXNzYWdlLnV0Zjgo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IGY1Y2NhMWU4N2E5
MThmYTAxZmJiMDcyZmI0ZTY0ZThiYjY2ZTQ3YWUuLjljYTIzOTFmODU3MzA3YTY0MTA2NzY0ZWM0
ODcyMjE2N2MyMjBjMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuaApA
QCAtNTEsNiArNTEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN0b3JlU2V0dGluZyhj
b25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgdmlydHVhbCB2b2lk
IGluc3BlY3RvcldpbmRvd09iamVjdENsZWFyZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgb3Blbklu
c3BlY3RvckZyb250ZW5kKEluc3BlY3RvckNvbnRyb2xsZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2xvc2VJbnNwZWN0b3JGcm9udGVuZCgpOworICAgIHZpcnR1YWwgdm9pZCBicmluZ0Zyb250ZW5k
VG9Gcm9udCgpOwogICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3Qg
U3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQnJvd3NlckNhY2hlKCk7CiAgICAgdmly
dHVhbCB2b2lkIGNsZWFyQnJvd3NlckNvb2tpZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25Q
cmVzZW50ZXJJbXBsLmNwcAppbmRleCAxNmM0NTFlYzM2NGY0Y2Y0NTgxNjg5OTM0NmYzMDdhMDRh
ODgyNGI5Li41YjMyNDY5ZDAyNzhkNDMyNTQ4YWE0ZDgwOGYyYWJlYjQ0MzE3ZWZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9u
UHJlc2VudGVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTm90aWZpY2F0aW9uQ2xpZW50KiBOb3RpZmljYXRpb25Q
cmVzZW50ZXJJbXBsOjppbnN0YW5jZSgpCitOb3RpZmljYXRpb25QcmVzZW50ZXIqIE5vdGlmaWNh
dGlvblByZXNlbnRlckltcGw6Omluc3RhbmNlKCkKIHsKICAgICBzdGF0aWMgTm90aWZpY2F0aW9u
UHJlc2VudGVySW1wbCogc19pbnN0YW5jZSA9IDA7CiAgICAgaWYgKCFzX2luc3RhbmNlKQpAQCAt
NTQsNyArNTQsNyBAQCBib29sIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6OnNob3coTm90aWZp
Y2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgaWYgKG1fbm90aWZpY2F0aW9ucy5jb250YWlucyhu
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNoZWNrUGVybWlzc2lvbihub3Rp
ZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgIT0gTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uQWxsb3dlZCkKKyAgICBpZiAoY2hlY2tQZXJtaXNzaW9uKG5vdGlmaWNhdGlv
bi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSAhPSBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBl
cm1pc3Npb25BbGxvd2VkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBTdHJpbmcgdXVp
ZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKTsKQEAgLTY1LDcgKzY1LDcgQEAgYm9vbCBO
b3RpZmljYXRpb25QcmVzZW50ZXJJbXBsOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9u
KQogICAgICAgICBtZXNzYWdlID0gbi0+dXJsKCkuc3RyaW5nKCk7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgLy8gRklYTUU6IFN0cmlwIHRoZSBjb250ZW50IGludG8gb25lIGxpbmUuCi0gICAgICAg
IG1lc3NhZ2UgPSBuLT5jb250ZW50cygpLnRpdGxlKCkgKyAiOiAiICsgbi0+Y29udGVudHMoKS5i
b2R5KCk7CisgICAgICAgIG1lc3NhZ2UgPSBuLT5jb250ZW50cygpLnRpdGxlICsgIjogIiArIG4t
PmNvbnRlbnRzKCkuYm9keTsKICAgICB9CiAKICAgICBtX3BsYXRmb3JtUHJlc2VudGVyLT5zaG93
KHN0ZDo6c3RyaW5nKHV1aWQudXRmOCgpLmRhdGEoKSksIHN0ZDo6c3RyaW5nKG1lc3NhZ2UudXRm
OCgpLmRhdGEoKSkpOwpAQCAtMTI3LDE0ICsxMjcsMTQgQEAgdm9pZCBOb3RpZmljYXRpb25QcmVz
ZW50ZXJJbXBsOjpjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGUKICAgICAvLyBCZWNhdXNlIHdlIGFyZSB1c2luZyBtb2RhbCBkaWFsb2dzIHRvIHJlcXVlc3Qg
cGVybWlzc2lvbiwgaXQncyBpbXBvc3NpYmxlIHRvIGNhbmNlbCB0aGVtLgogfQogCi1Ob3RpZmlj
YXRpb25DbGllbnQ6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6Y2hlY2tQ
ZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCitOb3RpZmljYXRpb25Q
cmVzZW50ZXI6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6Y2hlY2tQZXJt
aXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgQVNTRVJUKGNv
bnRleHQpOwogICAgIC8vIEZJWE1FOiBTaG91bGQgc3RvcmUgdGhlIHBlcm1pc3Npb24gaW5mb3Jt
YXRpb24gaW50byBmaWxlIHBlcm1hbmVudGx5IGluc3RlYWQgb2YgaW4gbV9hbGxvd2VkRG9tYWlu
cy4KICAgICAvLyBUaGUgc3VnZ2VzdGVkIHBsYWNlIHRvIGRvIHRoaXMgaXMgaW4gbV9wbGF0Zm9y
bVByZXNlbnRlci0+Y2hlY2tQZXJtaXNzaW9uKCkuCiAgICAgaWYgKG1fYWxsb3dlZERvbWFpbnMu
Y29udGFpbnMoY29udGV4dC0+dXJsKCkuaG9zdCgpKSkKLSAgICAgICAgcmV0dXJuIE5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQ7Ci0gICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNs
aWVudDo6UGVybWlzc2lvbk5vdEFsbG93ZWQ7CisgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25Q
cmVzZW50ZXI6OlBlcm1pc3Npb25BbGxvd2VkOworICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVz
ZW50ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOwogfQogCiAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCBpbiBwbGF0Zm9ybSBzaWRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBs
LmgKaW5kZXggYjcwOGUwMDJlOTgxNmU4YWUyZWU4Nzk3MzU5OTEwZjEyMTYwYjIzYy4uZGE4NGE1
ZWVjOWE1YjliYTQ3YWI0MDg2YmU0YmQ2ODMzNGY1NDQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0
aW9uUHJlc2VudGVySW1wbC5oCkBAIC0yMSw3ICsyMSw3IEBACiAKICNpZiBFTkFCTEUoTk9USUZJ
Q0FUSU9OUykKICNpbmNsdWRlIDxOb3RpZmljYXRpb25BY2tMaXN0ZW5lci5oPgotI2luY2x1ZGUg
PE5vdGlmaWNhdGlvbkNsaWVudC5oPgorI2luY2x1ZGUgPE5vdGlmaWNhdGlvblByZXNlbnRlci5o
PgogI2luY2x1ZGUgPE5vdGlmaWNhdGlvblByZXNlbnRlckJsYWNrQmVycnkuaD4KICNpbmNsdWRl
IDxzdHJpbmc+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTMxLDkgKzMxLDkgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsIDog
cHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCwgcHVibGljIEJsYWNrQmVycnk6OlBs
YXRmb3JtOjpOb3RpZmljYXRpb25BY2tMaXN0ZW5lciB7CitjbGFzcyBOb3RpZmljYXRpb25QcmVz
ZW50ZXJJbXBsIDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciwgcHVibGlj
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOb3RpZmljYXRpb25BY2tMaXN0ZW5lciB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIE5vdGlmaWNhdGlvbkNsaWVudCogaW5zdGFuY2UoKTsKKyAgICBzdGF0aWMg
Tm90aWZpY2F0aW9uUHJlc2VudGVyKiBpbnN0YW5jZSgpOwogICAgIHZpcnR1YWwgfk5vdGlmaWNh
dGlvblByZXNlbnRlckltcGwoKTsKIAogICAgIC8vIFJlcXVlc3RzIHRoYXQgYSBub3RpZmljYXRp
b24gYmUgc2hvd24uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131880</attachid>
            <date>2012-03-14 10:48:41 -0700</date>
            <delta_ts>2012-03-16 11:02:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81120-20120314134550.patch</filename>
            <type>text/plain</type>
            <size>31480</size>
            <attacher name="Nima Ghanavatian">nima.ghanavatian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCAzMDMxODk2MmFlOTdhYjkyNWNiMDRhN2ViZjUyMGU1YjM5ZWZiYzMyLi5mMGMyOGU5OTQx
NzNmNjA0YTRiMTUwNTY5MWRjYzI1YzZiMzRiYjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsNSArMSw1OSBAQAogMjAxMi0wMy0xMyAgTmltYSBHaGFuYXZhdGlhbiAgPG5n
aGFuYXZhdGlhbkByaW0uY29tPgogCisgICAgICAgIFtCbGFja0JlcnJ5XSBTeW5jaW5nIHVwIGxl
ZnQgb3ZlciBiaXRzIGluIFdlYkNvcmVTdXBwb3J0IGZyb20gb3VyIGxvY2FsIGJyYW5jaCB0byB1
cHN0cmVhbS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgxMTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9BYm91dERhdGFFbmFibGVGZWF0dXJlcy5pbjoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9BYm91dERhdGFIYXZlRmVhdHVyZXMuaW46CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQWJvdXREYXRhVXNlRmVhdHVyZXMuaW46CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRCbGFja0JlcnJ5OjpoYXNPcGVuZWRQb3B1cCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OnNjcmVlblRvUm9vdFZpZXcp
OgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cm9vdFZpZXdUb1Nj
cmVlbik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjppbnZhbGlk
YXRlUm9vdFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6
aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50QmxhY2tCZXJyeTo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCk6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpzY3JvbGxhYmxlQXJlYXNEaWRD
aGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6Y3JlYXRl
Q29sb3JDaG9vc2VyKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFj
a0JlcnJ5Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnRCbGFja0JlcnJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6Om51bVRvdWNoRXZlbnRIYW5kbGVyc0NoYW5n
ZWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6cmVnaXN0ZXJVbmRv
U3RlcCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZWdpc3Rl
clJlZG9TdGVwKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6OnVu
ZG8pOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6cmVkbyk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAg
ICAoRWRpdG9yQ2xpZW50QmxhY2tCZXJyeSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojpkb3du
bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRp
c3BhdGNoRGlkUmVjZWl2ZUljb24pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnRCbGFja0Jl
cnJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGll
bnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJs
YWNrQmVycnk6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKEdlb2xvY2F0aW9uQ29udHJv
bGxlckNsaWVudEJsYWNrQmVycnk6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5Lmg6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5OjpjbG9zZUluc3Bl
Y3RvckZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ2xpZW50QmxhY2tCZXJyeTo6YnJpbmdGcm9udGVuZFRvRnJvbnQpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAgICAgKElu
c3BlY3RvckNsaWVudEJsYWNrQmVycnkpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L05vdGlm
aWNhdGlvblByZXNlbnRlckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9u
UHJlc2VudGVySW1wbDo6aW5zdGFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9u
UHJlc2VudGVySW1wbDo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVz
ZW50ZXJJbXBsOjpjaGVja1Blcm1pc3Npb24pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L05v
dGlmaWNhdGlvblByZXNlbnRlckltcGwuaDoKKyAgICAgICAgKE5vdGlmaWNhdGlvblByZXNlbnRl
ckltcGwpOgorCisyMDEyLTAzLTEzICBOaW1hIEdoYW5hdmF0aWFuICA8bmdoYW5hdmF0aWFuQHJp
bS5jb20+CisKICAgICAgICAgW0JsYWNrQmVycnldIFN5bmNpbmcgdXAgbGVmdCBvdmVyIGJpdHMg
aW4gV2ViS2l0U3VwcG9ydCBmcm9tIG91ciBsb2NhbCBicmFuY2ggdG8gdXBzdHJlYW0uCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTExOAogICAgICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9B
Ym91dERhdGFFbmFibGVGZWF0dXJlcy5pbiBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9BYm91dERhdGFFbmFibGVGZWF0dXJlcy5pbgppbmRleCA5MzI2ZDgwZDg3YWE4
OGNlYTVjODkwODQyYWI2MWY4M2Q2MTQ1ZTc3Li5hMDVhYzY4MjJjYTE1ODkzZGRkMjdlOWRlYmZj
NzQyODE3OTliOTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvQWJvdXREYXRhRW5hYmxlRmVhdHVyZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZlYXR1cmVzLmluCkBAIC0x
LDI3ICsxLDI1IEBACiszRF9DQU5WQVMKIDNEX1BMVUdJTgogM0RfUkVOREVSSU5HCiBBQ0NFTEVS
QVRFRF8yRF9DQU5WQVMKIEFTU0VNQkxFUgogQVNTRU1CTEVSX1dYX0VYQ0xVU0lWRQogQkxBQ0tC
RVJSWV9DUkVERU5USUFMX1BFUlNJU1QKK0JMQUNLQkVSUllfREVCVUdfTUVNT1JZCiBCTE9CCiBC
UkFOQ0hfQ09NUEFDVElPTgogQ0hBTk5FTF9NRVNTQUdJTkcKIENPREVCTE9DS19TQU1QTElORwog
Q09NUEFSRV9BTkRfU1dBUAogQ09NUFVURURfR09UT19JTlRFUlBSRVRFUgotQ09OU0lTVEVOQ1lf
Q0hFQ0sKIENPTlRFWFRfTUVOVVMKIENTU19GSUxURVJTCi1DU1NfR1JJRF9MQVlPVVQKLUNTU19M
QVlPVVRfR1JJRAogQ1NTX1NIQURFUlMKIERBU0hCT0FSRF9TVVBQT1JUCitEQVRBR1JJRAogREFU
QUxJU1QKIERBVEFfVFJBTlNGRVJfSVRFTVMKIERFQlVHX01BVEhfTEFZT1VUCi1ERUJVR19QUk9Q
QUdBVElPTl9WRVJCT1NFCi1ERUJVR19WRVJCT1NFCiBERUJVR19XSVRIX0JSRUFLUE9JTlQKIERF
VEFJTFMKIERFVklDRV9PUklFTlRBVElPTgpAQCAtMzAsMTIgKzI4LDE1IEBAIERJUkVDVE9SWV9V
UExPQUQKIERPVUJMRV9UQVBfQ0VOVEVSUwogRE9XTkxPQURfQVRUUklCVVRFCiBEUkFHX1NVUFBP
UlQKK0VWRU5UX01PREVfTUVUQVRBR1MKIEVYRUNVVEFCTEVfQUxMT0NBVE9SX0RFTUFORAogRVhF
Q1VUQUJMRV9BTExPQ0FUT1JfRklYRUQKK0VYUEVSSU1FTlRBTF9GRUFUVVJFCiBGQVNUX01BTExP
Q19NQVRDSF9WQUxJREFUSU9OCiBGQVNUX01PQklMRV9TQ1JPTExJTkcKIEZJTEVfU1lTVEVNCiBG
SUxURVJTCitGSVhFRF9SRVBPUlRFRF9TSVpFCiBGVFBESVIKIEZVTExTQ1JFRU5fQVBJCiBHQU1F
UEFECkBAIC00Myw2ICs0NCw3IEBAIEdDX0xPR0dJTkcKIEdDX1ZBTElEQVRJT04KIEdFT0xPQ0FU
SU9OCiBHRVNUVVJFX0VWRU5UUworR0VTVFVSRV9SRUNPR05JWkVSCiBHR0MKIEdMSUJfU1VQUE9S
VAogR0xPQkFMX0ZBU1RNQUxMT0NfTkVXCkBAIC01OSwxNSArNjEsMTEgQEAgSU5QVVRfVFlQRV9U
SU1FCiBJTlBVVF9UWVBFX1dFRUsKIElOU1BFQ1RPUgogSU5URVJQUkVURVIKLUpBVkFfQlJJREdF
CiBKQVZBU0NSSVBUX0RFQlVHR0VSCiBKQVZBU0NSSVBUX0kxOE5fQVBJCitKQVZBX0JSSURHRQog
SklUCi1KSVRfQVNTRVJUCi1KSVRfQlJFQUtfT05fRVZFUllfQkxPQ0sKLUpJVF9CUkVBS19PTl9F
VkVSWV9GVU5DVElPTgotSklUX0JSRUFLX09OX0VWRVJZX05PREUKLUpJVF9CUkVBS19PTl9TUEVD
VUxBVElPTl9GQUlMVVJFCitKSVRfT1BUSU1JWkVfUFJPUEVSVFlfQUNDRVNTCiBKSVRfVVNFX1NP
RlRfTU9EVUxPCiBKSVRfVkVSQk9TRQogSklUX1ZFUkJPU0VfT1NSCkBAIC04NywxNyArODUsMTcg
QEAgTVVUQVRJT05fT0JTRVJWRVJTCiBORVRTQ0FQRV9QTFVHSU5fQVBJCiBORVRTQ0FQRV9QTFVH
SU5fTUVUQURBVEFfQ0FDSEUKIE5FV19YTUwKLU5PX0xJU1RCT1hfUkVOREVSSU5HCiBOT1RJRklD
QVRJT05TCitOT19MSVNUQk9YX1JFTkRFUklORwogT1BDT0RFX1NBTVBMSU5HCiBPUENPREVfU1RB
VFMKK09QRU5UWVBFX1NBTklUSVpFUgogT1JJRU5UQVRJT05fRVZFTlRTCi1PU1JfRU5UUlkKLVBB
R0VfQ0FDSEUKIFBBR0VfVklTSUJJTElUWV9BUEkKIFBBTl9TQ1JPTExJTkcKIFBBUkFMTEVMX0dD
CiBQQVJBTExFTF9KT0JTCitQQVNTV09SRF9FQ0hPCiBQTFVHSU5fUEFDS0FHRV9TSU1QTEVfSEFT
SAogUExVR0lOX1BST0NFU1MKIFBMVUdJTl9QUk9YWV9GT1JfVklERU8KQEAgLTEwOSwyMCArMTA3
LDIyIEBAIFJFR0VYUF9UUkFDSU5HCiBSRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSCiBSRVBBSU5U
X1RIUk9UVExJTkcKIFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FCi1SRVNUUklDVElPTlMKIFJVQkJF
Ul9CQU5ESU5HCiBSVU5fVElNRV9IRVVSSVNUSUNTCitSWElfSU1BR0VfRk9STUFUCiBTQU1QTElO
R19DT1VOVEVSUwogU0FNUExJTkdfRkxBR1MKIFNBTVBMSU5HX1JFR0lPTlMKIFNBTVBMSU5HX1RI
UkVBRAogU0hBUkVEX1dPUktFUlMKIFNJTVBMRV9IRUFQX1BST0ZJTElORworU0lOR0xFX1RIUkVB
REVECitTS0lBX0dQVV9DQU5WQVMKK1NLSUFfVEVYVAogU01PT1RIX1NDUk9MTElORwogU1BFRUNI
X0lOUFVUCiBTUEVMTENIRUNLCiBTUUxfREFUQUJBU0UKLVNVQ0NFU1NfU1RBVFMKIFNWRwogU1ZH
X0RPTV9PQkpDX0JJTkRJTkdTCiBTVkdfRk9OVFMKQEAgLTEzMiwxNiArMTMyLDE2IEBAIFRIUkVB
RElOR19MSUJESVNQQVRDSAogVEhSRUFESU5HX09QRU5NUAogVE9VQ0hfRVZFTlRTCiBUT1VDSF9J
Q09OX0xPQURJTkcKLVZfMDI4RDEwX0ZPUkNFX0RJU0FCTEUKIFZBTFVFX1BST0ZJTEVSCi1WRVJC
T1NFX1NQRUNVTEFUSU9OX0ZBSUxVUkUKIFZFUkJPU0VfVkFMVUVfUFJPRklMRQotVkVSQk9TRV9W
QUxVRV9SRUNPVkVSSUVTCiBWSURFTwogVklERU9fVFJBQ0sKK1ZJRVdQT1JUX1JFRkxPVworV0VC
RE9NCitXRUJHTAorV0VCS0lUMgogV0VCX0FSQ0hJVkUKIFdFQl9BVURJTwotV0VCR0wKIFdFQl9Q
Uk9DRVNTX1NBTkRCT1gKIFdFQl9TT0NLRVRTCiBXRUJfVElNSU5HCkBAIC0xNDksNyArMTQ5LDcg
QEAgV09SS0VSUwogV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcKIFdURl9NQUxMT0NfVkFMSURBVElP
TgogWEhSX1JFU1BPTlNFX0JMT0IKLVhPUl9ERUJVR19BSUQKK1hIVE1MTVAKIFhTTFQKIFlBUlJf
SklUCiBZQVJSX0pJVF9ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUhhdmVGZWF0dXJlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9BYm91dERhdGFIYXZlRmVhdHVyZXMuaW4KaW5kZXgg
MTUyNTlkOTljMTM0NzM4ZGYyYmMzN2YzMjk1YjU4OTlkZDNlNWZiMy4uMjFmM2M2ZGNjNDI2ZDkz
OGEyNDUyMzhlMjg1ZTgxOGQ1MGMxYmQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUhhdmVGZWF0dXJlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhSGF2ZUZlYXR1cmVz
LmluCkBAIC0xLDQgKzEsNSBAQAogQUNDRVNTSUJJTElUWQorQVNTRU1CTEVSCiBBVkNGCiBDR19J
TlRFUlBPTEFUSU9OX01FRElVTQogQ09NUFVURURfR09UTwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YVVzZUZlYXR1cmVzLmluIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YVVzZUZlYXR1
cmVzLmluCmluZGV4IGI3NDRkOTA0YzBkNjY5ZTkzYjU1NGIyMGU0NGYxZTBiYTg4NzI0NDIuLmUx
YTdjZWQxNTg3Y2Q3NDU5YWEyYjc3NDEyZGQwZDhlZWNlMDk5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9BYm91dERhdGFVc2VGZWF0dXJlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRh
VXNlRmVhdHVyZXMuaW4KQEAgLTEzLDEzICsxMywxNiBAQCBDRlVSTENBQ0hFCiBDRlVSTFNUT1JB
R0VTRVNTSU9OUwogQ0cKIENHX0lOVEVSUE9MQVRJT05fTUVESVVNCitDSFJPTUVfTkVUV09SS19T
VEFDSwogQ09SRUFVRElPCiBDT1JFX1RFWFQKIENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMK
IENVUkwKIERZTkFNSUNfQU5OT1RBVElPTlMKIERZTkFNSUNfQU5OT1RBVElPTlNfTk9JTVBMCitF
R0wKIEVYUE9SVF9NQUNST1MKK0VYVEVSTkFMX0NSQVNICiBGUkVFVFlQRQogR0NDX0NPTVBVVEVE
X0dPVE9fV09SS0FST1VORAogR0xJQl9VTklDT0RFCkBAIC00MCwxNCArNDMsMTYgQEAgTUFSS0VS
X1JFTU9WQUxfVVBPTl9FRElUSU5HCiBNRVJTRU5ORV9UV0lTVEVSXzE5OTM3CiBORVdfVEhFTUUK
IE9QRU5UWVBFX1NBTklUSVpFUgorT1BFTlZHCitPUEVOVkdfQkxVUgogT1NfUkFORE9NTkVTUwog
UEFOR08KIFBMQVRGT1JNX1NUUkFURUdJRVMKIFBMVUdJTl9IT1NUX1BST0NFU1MKIFBSRUVNUFRf
R0VPTE9DQVRJT05fUEVSTUlTU0lPTgogUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLCi1Q
VEhSRUFEX0dFVFNQRUNJRklDX0RJUkVDVAogUFRIUkVBRFMKK1BUSFJFQURfR0VUU1BFQ0lGSUNf
RElSRUNUCiBRVDRfVU5JQ09ERQogUVRLSVQKIFFUX01PQklMSVRZX1NZU1RFTUlORk8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCA1Yjk3NGQwZTgxNTkwMTYwZDVkYTMx
NDQxZTIzZjgzMjBhZWIwMzNhLi4yZjI0MTQ2ZjQwMzQ5ZTJiZDg1NzY0YTliNTgwMjk5ODgzNDNh
OGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0yNCw2ICsyNCw3
IEBACiAjaW5jbHVkZSAiQmFja2luZ1N0b3JlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQmFja2luZ1N0
b3JlX3AuaCIKICNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyLmgi
CiAjaW5jbHVkZSAiRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJEdW1wUmVuZGVyVHJlZUNsaWVudC5oIgpAQCAtNDMsNiArNDQsNyBAQAogI2luY2x1
ZGUgIktVUkwuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cExvYWREZWZl
cnJlci5oIgpAQCAtMjczLDYgKzI3NSwxMiBAQCBib29sIENocm9tZUNsaWVudEJsYWNrQmVycnk6
OnNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKQogICAgIHJl
dHVybiB0cnVlOwogfQogCitib29sIENocm9tZUNsaWVudEJsYWNrQmVycnk6Omhhc09wZW5lZFBv
cHVwKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKwogUGFzc1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZUNsaWVudEJsYWNrQmVycnk6OmNyZWF0
ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKIHsKICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFBvcHVwTWVudUJsYWNrQmVycnkoY2xpZW50KSk7CkBAIC0zNzEsMTQgKzM3
OSwxNCBAQCBJbnRSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OndpbmRvd1Jlc2l6ZXJSZWN0
KCkgY29uc3QKICAgICByZXR1cm4gSW50UmVjdCgpOwogfQogCi1JbnRQb2ludCBDaHJvbWVDbGll
bnRCbGFja0JlcnJ5OjpzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYgc2NyZWVuUG9zKSBj
b25zdAorSW50UG9pbnQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6c2NyZWVuVG9Sb290Vmlldyhj
b25zdCBJbnRQb2ludCYgc2NyZWVuUG9zKSBjb25zdAogewogICAgIEludFBvaW50IHdpbmRvd1Bv
aW50ID0gbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPndpbmRvdygpLT53aW5kb3dMb2NhdGlv
bigpOwogICAgIHdpbmRvd1BvaW50Lm1vdmUoLXNjcmVlblBvcy54KCksIC1zY3JlZW5Qb3MueSgp
KTsKICAgICByZXR1cm4gd2luZG93UG9pbnQ7CiB9CiAKLUludFJlY3QgQ2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeTo6d2luZG93VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCkgY29uc3QK
K0ludFJlY3QgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cm9vdFZpZXdUb1NjcmVlbihjb25zdCBJ
bnRSZWN0JiB3aW5kb3dSZWN0KSBjb25zdAogewogICAgIEludFJlY3Qgd2luZG93UG9pbnQod2lu
ZG93UmVjdCk7CiAgICAgSW50UG9pbnQgbG9jYXRpb24obV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGll
bnQtPndpbmRvdygpLT53aW5kb3dMb2NhdGlvbigpKTsKQEAgLTUxMywxMiArNTIxLDEyIEBAIHZv
aWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJh
bWUsIGNvbnN0IEludFNpemUmIHNpCiAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+Y29udGVudHNTaXpl
Q2hhbmdlZChzaXplKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjppbnZhbGlk
YXRlV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9p
ZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVj
dCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCiB7CiAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+
bV9iYWNraW5nU3RvcmUtPmQtPnJlcGFpbnQodXBkYXRlUmVjdCwgZmFsc2UgLypjb250ZW50Q2hh
bmdlZCovLCBpbW1lZGlhdGUpOwogfQogCi12b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6Omlu
dmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29s
IGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6aW52YWxpZGF0ZUNvbnRl
bnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUp
CiB7CiAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9iYWNraW5nU3RvcmUtPmQtPnJlcGFpbnQodXBk
YXRlUmVjdCwgdHJ1ZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIGltbWVkaWF0ZSk7CiB9CkBAIC01MjYs
NyArNTM0LDcgQEAgdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjppbnZhbGlkYXRlQ29udGVu
dHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYgdXBkYXRlUmUKIHZvaWQgQ2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeTo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRTaXplJiBk
ZWx0YSwgY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUsIGNvbnN0IFNj
cm9sbFZpZXcqIHNjcm9sbFZpZXcpCiB7CiAgICAgaWYgKHNjcm9sbFZpZXcgIT0gbV93ZWJQYWdl
UHJpdmF0ZS0+bV9tYWluRnJhbWUtPnZpZXcoKSkKLSAgICAgICAgaW52YWxpZGF0ZUNvbnRlbnRz
QW5kV2luZG93KHVwZGF0ZVJlY3QsIHRydWUgLyppbW1lZGlhdGUqLyk7CisgICAgICAgIGludmFs
aWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHVwZGF0ZVJlY3QsIHRydWUgLyppbW1lZGlhdGUqLyk7
CiAgICAgZWxzZSB7CiAgICAgICAgIEJhY2tpbmdTdG9yZUNsaWVudCogYmFja2luZ1N0b3JlQ2xp
ZW50Rm9yRnJhbWUgPSBtX3dlYlBhZ2VQcml2YXRlLT5iYWNraW5nU3RvcmVDbGllbnRGb3JGcmFt
ZShtX3dlYlBhZ2VQcml2YXRlLT5tX21haW5GcmFtZSk7CiAgICAgICAgIEFTU0VSVChiYWNraW5n
U3RvcmVDbGllbnRGb3JGcmFtZSk7CkBAIC01NTQsNyArNTYyLDcgQEAgdm9pZCBDaHJvbWVDbGll
bnRCbGFja0JlcnJ5OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgZGVsdGEsIGNvbnN0IEludFJlY3Qm
IHNjcm9sbFYKIHZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6c2Nyb2xsYWJsZUFyZWFzRGlk
Q2hhbmdlKCkKIHsKICAgICB0eXBlZGVmIEhhc2hTZXQ8U2Nyb2xsYWJsZUFyZWEqPiBTY3JvbGxh
YmxlQXJlYVNldDsKLSAgICBjb25zdCBTY3JvbGxhYmxlQXJlYVNldCogc2Nyb2xsYWJsZUFyZWFz
ID0gbV93ZWJQYWdlUHJpdmF0ZS0+bV9wYWdlLT5zY3JvbGxhYmxlQXJlYVNldCgpOworICAgIGNv
bnN0IFNjcm9sbGFibGVBcmVhU2V0KiBzY3JvbGxhYmxlQXJlYXMgPSBtX3dlYlBhZ2VQcml2YXRl
LT5tX21haW5GcmFtZS0+dmlldygpLT5zY3JvbGxhYmxlQXJlYXMoKTsKIAogICAgIGJvb2wgaGFz
QXRMZWFzdE9uZUluUmVnaW9uU2Nyb2xsYWJsZUFyZWEgPSBmYWxzZTsKICAgICBTY3JvbGxhYmxl
QXJlYVNldDo6aXRlcmF0b3IgZW5kID0gc2Nyb2xsYWJsZUFyZWFzLT5lbmQoKTsKQEAgLTcyOCw0
ICs3MzYsMTAgQEAgYm9vbCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjphbGxvd3NBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nKCkgY29uc3QKIH0KICNlbmRpZgogCitQYXNzT3duUHRyPENvbG9yQ2hvb3Nl
cj4gQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3Nl
ckNsaWVudCosIGNvbnN0IENvbG9yJikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaAppbmRl
eCBmNDcwZjc4ZmJjNTI0NTA4MTg1M2Q2MThhNzdmZDJkODMwMjZjNzJlLi44OTM1MGQyOTFkZDIz
ODNlMjVjNmNmZDU4YjlhYWNkM2MyZTE1OWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0Jl
cnJ5LmgKQEAgLTcwLDEzICs3MCwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZEludGVycnVwdEphdmFTY3JpcHQoKTsKICAgICB2aXJ0dWFsIEtleWJvYXJkVUlNb2RlIGtleWJv
YXJkVUlNb2RlKCk7CiAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29u
c3Q7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJv
b2wpOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3Qg
SW50UmVjdCYsIGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29u
c3QgSW50UmVjdCYsIGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNB
bmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIGludmFs
aWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3Qm
LCBib29sLCBjb25zdCBTY3JvbGxWaWV3Kik7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25z
dCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsYWJsZUFyZWFzRGlkQ2hhbmdlKCk7Ci0gICAgdmlydHVhbCBJbnRQb2ludCBz
Y3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwotICAgIHZpcnR1YWwgSW50UmVj
dCB3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Q7CisgICAgdmlydHVhbCBJbnRQ
b2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JikgY29uc3Q7CisgICAgdmlydHVh
bCBJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50UmVjdCYpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYs
IGNvbnN0IFNjcm9sbFZpZXcqKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIGludCk7CkBAIC04OCw2
ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9ydFByb3Bl
cnRpZXNEaWRDaGFuZ2UoY29uc3QgVmlld3BvcnRBcmd1bWVudHMmKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxl
cnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbnVtVG91Y2hFdmVudEhh
bmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1l
Kik7CiAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0
IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVm
UHRyPEZpbGVDaG9vc2VyPik7CkBAIC0xMDMsNiArMTA0LDcgQEAgcHVibGljOgogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCisgICAgdmlydHVhbCBQYXNzT3duUHRyPENvbG9yQ2hv
b3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9y
Jik7CiAgICAgdm9pZCBvcGVuQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciosIGNvbnN0IENvbG9y
JikgeyB9CiAgICAgdm9pZCBjbGVhbnVwQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciopIHsgfQog
ICAgIHZvaWQgc2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciosIGNv
bnN0IENvbG9yJikgeyB9CkBAIC0xMzEsNiArMTMzLDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAg
dmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CiAgICAg
dmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rp
b24oKTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsKICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRl
U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggZmY5MmJkOTFiNGM4NzI2ZmExYjdiYWI2YmEyOWU1
OGRmOWI0ZjRhYS4uODVmMzQ5MzExYjhiZWU1ZTEzMDZjNDUxM2EyNDU4NzJkMzI3OTVmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMjU3LDcgKzI1Nyw3IEBAIHZv
aWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6ZGlkU2V0U2VsZWN0aW9uVHlwZXNGb3JQYXN0ZWJv
YXJkKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEVkaXRvckNsaWVudEJsYWNr
QmVycnk6OnJlZ2lzdGVyQ29tbWFuZEZvclVuZG8oUGFzc1JlZlB0cjxFZGl0Q29tbWFuZD4gY29t
bWFuZCkKK3ZvaWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6cmVnaXN0ZXJVbmRvU3RlcChQYXNz
UmVmUHRyPFVuZG9TdGVwPiBzdGVwKQogewogICAgIC8vIFJlbW92ZSB0aGUgb2xkZXN0IGl0ZW0g
aWYgd2UndmUgcmVhY2hlZCB0aGUgbWF4aW11bSBjYXBhY2l0eSBmb3IgdGhlIHN0YWNrLgogICAg
IGlmIChtX3VuZG9TdGFjay5zaXplKCkgPT0gbWF4aW11bVVuZG9TdGFja0RlcHRoKQpAQCAtMjY2
LDEyICsyNjYsMTIgQEAgdm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZWdpc3RlckNvbW1h
bmRGb3JVbmRvKFBhc3NSZWZQdHI8RWRpdENvbW1hbmQ+IGNvbW0KICAgICBpZiAoIW1faW5SZWRv
KQogICAgICAgICBtX3JlZG9TdGFjay5jbGVhcigpOwogCi0gICAgbV91bmRvU3RhY2suYXBwZW5k
KGNvbW1hbmQpOworICAgIG1fdW5kb1N0YWNrLmFwcGVuZChzdGVwKTsKIH0KIAotdm9pZCBFZGl0
b3JDbGllbnRCbGFja0JlcnJ5OjpyZWdpc3RlckNvbW1hbmRGb3JSZWRvKFBhc3NSZWZQdHI8RWRp
dENvbW1hbmQ+IGNvbW1hbmQpCit2b2lkIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnJlZ2lzdGVy
UmVkb1N0ZXAoUGFzc1JlZlB0cjxVbmRvU3RlcD4gc3RlcCkKIHsKLSAgICBtX3JlZG9TdGFjay5h
cHBlbmQoY29tbWFuZCk7CisgICAgbV9yZWRvU3RhY2suYXBwZW5kKHN0ZXApOwogfQogCiB2b2lk
IEVkaXRvckNsaWVudEJsYWNrQmVycnk6OmNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkKQEAgLTMw
NCw3ICszMDQsNyBAQCB2b2lkIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnVuZG8oKQogewogICAg
IGlmIChjYW5VbmRvKCkpIHsKICAgICAgICAgRWRpdENvbW1hbmRTdGFjazo6aXRlcmF0b3IgYmFj
ayA9IC0tbV91bmRvU3RhY2suZW5kKCk7Ci0gICAgICAgIFJlZlB0cjxFZGl0Q29tbWFuZD4gY29t
bWFuZCgqYmFjayk7CisgICAgICAgIFJlZlB0cjxVbmRvU3RlcD4gY29tbWFuZCgqYmFjayk7CiAg
ICAgICAgIG1fdW5kb1N0YWNrLnJlbW92ZShiYWNrKTsKIAogICAgICAgICAvLyBVbmFwcGx5IHdp
bGwgY2FsbCB1cyBiYWNrIHRvIHB1c2ggdGhpcyBjb21tYW5kIG9udG8gdGhlIHJlZG8gc3RhY2su
CkBAIC0zMTYsNyArMzE2LDcgQEAgdm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZWRvKCkK
IHsKICAgICBpZiAoY2FuUmVkbygpKSB7CiAgICAgICAgIEVkaXRDb21tYW5kU3RhY2s6Oml0ZXJh
dG9yIGJhY2sgPSAtLW1fcmVkb1N0YWNrLmVuZCgpOwotICAgICAgICBSZWZQdHI8RWRpdENvbW1h
bmQ+IGNvbW1hbmQoKmJhY2spOworICAgICAgICBSZWZQdHI8VW5kb1N0ZXA+IGNvbW1hbmQoKmJh
Y2spOwogICAgICAgICBtX3JlZG9TdGFjay5yZW1vdmUoYmFjayk7CiAKICAgICAgICAgQVNTRVJU
KCFtX2luUmVkbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaAppbmRleCA1NGEzMTAw
OTAwMDI5OGU4OTFmMDczZGQ3NTdjMDJlZjUxZTAxN2U4Li40ODYxNzZiMGQxODU4MzU5YmM1YWUx
NDIzNDQxNmE0MzMxM2IyMGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmgKQEAg
LTYwLDggKzYwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRFZGl0aW5nKCk7
CiAgICAgdmlydHVhbCB2b2lkIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAg
dmlydHVhbCB2b2lkIGRpZFNldFNlbGVjdGlvblR5cGVzRm9yUGFzdGVib2FyZCgpOwotICAgIHZp
cnR1YWwgdm9pZCByZWdpc3RlckNvbW1hbmRGb3JVbmRvKFBhc3NSZWZQdHI8RWRpdENvbW1hbmQ+
KTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJDb21tYW5kRm9yUmVkbyhQYXNzUmVmUHRyPEVk
aXRDb21tYW5kPik7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoUGFzc1JlZlB0
cjxVbmRvU3RlcD4pOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclJlZG9TdGVwKFBhc3NSZWZQ
dHI8VW5kb1N0ZXA+KTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJVbmRvUmVkb09wZXJhdGlvbnMo
KTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29weUN1dChGcmFtZSosIGJvb2wpIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBjYW5QYXN0ZShGcmFtZSosIGJvb2wpIGNvbnN0OwpAQCAtMTA4LDcgKzEw
OCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faW5SZWRvOwogCi0gICAgdHlwZWRlZiBEZXF1
ZTxSZWZQdHI8V2ViQ29yZTo6RWRpdENvbW1hbmQ+ID4gRWRpdENvbW1hbmRTdGFjazsKKyAgICB0
eXBlZGVmIERlcXVlPFJlZlB0cjxXZWJDb3JlOjpVbmRvU3RlcD4gPiBFZGl0Q29tbWFuZFN0YWNr
OwogICAgIEVkaXRDb21tYW5kU3RhY2sgbV91bmRvU3RhY2s7CiAgICAgRWRpdENvbW1hbmRTdGFj
ayBtX3JlZG9TdGFjazsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVy
cnkuY3BwCmluZGV4IDBlZWYxZjNkYWY3OGVjMmZiZTliZWI3YmY4NjU3MzQ1N2Q4MjE4MzEuLjhl
ZmExMGFjYmI5ZTQ2Y2FjOTZhNzBiNWE4MTFiMDk0MjYzNjg0ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNr
QmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVk
ZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUg
IlNjb3BlUG9pbnRlci5oIgorI2luY2x1ZGUgIlNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAi
U2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSAiVG91
Y2hFdmVudEhhbmRsZXIuaCIKQEAgLTUyNSw2ICs1MjYsMzAgQEAgdm9pZCBGcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCgpCiB7CiAgICAgLy8gRklYTUU6
IERvIHdlIG5lZWQgdG8gZmluZCBhIHJlcGxhY2VtZW50IGZvciBtX2ZyYW1lLT5kb2N1bWVudCgp
LT5zZXRFeHRyYUxheW91dERlbGF5KDI1MCk7PwogCisgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3Vy
aXR5T3JpZ2luID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICBX
ZWJTZXR0aW5ncyogd2ViU2V0dGluZ3MgPSBtX3dlYlBhZ2VQcml2YXRlLT5tX3dlYlNldHRpbmdz
OworCisgICAgLy8gV2hpdGVsaXN0IGFsbCBrbm93biBwcm90b2NvbHMgaWYgQnJvd3NlckZpZWxk
MiByZXF1aXJlcyB1bnJlc3RyaWN0ZWQgcmVxdWVzdHMuCisgICAgaWYgKHdlYlNldHRpbmdzLT5h
bGxvd0Nyb3NzU2l0ZVJlcXVlc3RzKCkgJiYgIXNlY3VyaXR5T3JpZ2luLT5wcm90b2NvbCgpLmlz
RW1wdHkoKSkgeworICAgICAgICBTZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkoKnNlY3VyaXR5T3JpZ2luLCBTdHJpbmcoImFib3V0IiksIGVtcHR5U3RyaW5nKCks
IHRydWUpOworICAgICAgICBTZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoKnNlY3VyaXR5T3JpZ2luLCBTdHJpbmcoImRhdGEiKSwgZW1wdHlTdHJpbmcoKSwgdHJ1
ZSk7CisgICAgICAgIFNlY3VyaXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eSgqc2VjdXJpdHlPcmlnaW4sIFN0cmluZygiZmlsZSIpLCBlbXB0eVN0cmluZygpLCB0cnVlKTsK
KyAgICAgICAgU2VjdXJpdHlQb2xpY3k6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCpz
ZWN1cml0eU9yaWdpbiwgU3RyaW5nKCJodHRwIiksIGVtcHR5U3RyaW5nKCksIHRydWUpOworICAg
ICAgICBTZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoKnNlY3Vy
aXR5T3JpZ2luLCBTdHJpbmcoImh0dHBzIiksIGVtcHR5U3RyaW5nKCksIHRydWUpOworICAgICAg
ICBTZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoKnNlY3VyaXR5
T3JpZ2luLCBTdHJpbmcoImphdmFzY3JpcHQiKSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7CisgICAg
ICAgIFNlY3VyaXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgqc2VjdXJp
dHlPcmlnaW4sIFN0cmluZygibG9jYWwiKSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7CisgICAgICAg
IFNlY3VyaXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgqc2VjdXJpdHlP
cmlnaW4sIFN0cmluZygibWFpbHRvIiksIGVtcHR5U3RyaW5nKCksIHRydWUpOworICAgICAgICBT
ZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoKnNlY3VyaXR5T3Jp
Z2luLCBTdHJpbmcoInBhdHRlcm4iKSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7CisgICAgICAgIFNl
Y3VyaXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgqc2VjdXJpdHlPcmln
aW4sIFN0cmluZygicnRjcCIpLCBlbXB0eVN0cmluZygpLCB0cnVlKTsKKyAgICAgICAgU2VjdXJp
dHlQb2xpY3k6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCpzZWN1cml0eU9yaWdpbiwg
U3RyaW5nKCJydHAiKSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7CisgICAgICAgIFNlY3VyaXR5UG9s
aWN5OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgqc2VjdXJpdHlPcmlnaW4sIFN0cmlu
ZygicnRzcCIpLCBlbXB0eVN0cmluZygpLCB0cnVlKTsKKyAgICAgICAgU2VjdXJpdHlQb2xpY3k6
OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCpzZWN1cml0eU9yaWdpbiwgU3RyaW5nKCJz
bXMiKSwgZW1wdHlTdHJpbmcoKSwgdHJ1ZSk7CisgICAgICAgIFNlY3VyaXR5UG9saWN5OjphZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgqc2VjdXJpdHlPcmlnaW4sIFN0cmluZygidGVsIiks
IGVtcHR5U3RyaW5nKCksIHRydWUpOworCisgICAgICAgIC8vIFdlIGFsc28gd2FudCB0byBiZSBh
YmxlIHRvIGhhbmRsZSB1bmtub3duIHByb3RvY29scyBpbiB0aGUgY2xpZW50LgorICAgICAgICBz
ZWN1cml0eU9yaWdpbi0+Z3JhbnRVbml2ZXJzYWxBY2Nlc3MoKTsKKyAgICB9CisKICAgICBpZiAo
aXNNYWluRnJhbWUoKSkgewogICAgICAgICBtX3dlYlBhZ2VQcml2YXRlLT5zZXRMb2FkU3RhdGUo
V2ViUGFnZVByaXZhdGU6OkNvbW1pdHRlZCk7CiAKQEAgLTk2OSw2ICs5OTQsMTIgQEAgdm9pZCBG
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KERvY3Vt
ZW50TG9hZGVyKiBkb2NMb2EKICAgICAgICAgICAgIGZpbmFsVXJsLmNoYXJhY3RlcnMoKSwgZmlu
YWxVcmwubGVuZ3RoKCkpOwogICAgIH0KIAorICAgIC8vIEZJWE1FOiBVcGRhdGUgdGhlIHJlcXVl
c3QgdHlwZS4gU2VlIFBSICMxMTk3OTIuCisgICAgaWYgKGRvY0xvYWRlci0+ZnJhbWVMb2FkZXIo
KS0+aXNMb2FkaW5nTWFpbkZyYW1lKCkpCisgICAgICAgIHJlcXVlc3Quc2V0VGFyZ2V0VHlwZShS
ZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzTWFpbkZyYW1lKTsKKyAgICBlbHNlCisgICAgICAgIHJl
cXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzU3ViZnJhbWUpOwor
CiAgICAgRnJhbWVMb2FkZXIqIGxvYWRlciA9IG1fZnJhbWUtPmxvYWRlcigpOwogICAgIEFTU0VS
VChsb2FkZXIpOwogICAgIGlmIChpc0JhY2tGb3J3YXJkTG9hZFR5cGUobG9hZGVyLT5sb2FkVHlw
ZSgpKSkgewpAQCAtMTE3Miw3ICsxMjAzLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNr
QmVycnk6OnN0YXJ0RG93bmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAogICAg
IG1fd2ViUGFnZVByaXZhdGUtPmxvYWQocmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpLCAwLCAiR0VUIiwgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0OjpVc2VQ
cm90b2NvbENhY2hlUG9saWN5LCAwLCAwLCAwLCAwLCBmYWxzZSwgZmFsc2UsIHRydWUsICIiKTsK
IH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRvd25sb2FkKFJlc291cmNl
SGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
QmxhY2tCZXJyeTo6ZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKIHsKICAgICBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6RmlsdGVyU3RyZWFtKiBzdHJlYW0gPSBOZXR3b3JrTWFuYWdlcjo6aW5zdGFu
Y2UoKS0+c3RyZWFtRm9ySGFuZGxlKGhhbmRsZSk7CiAgICAgQVNTRVJUKHN0cmVhbSk7CkBAIC0x
MTkwLDEwICsxMjIxLDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNw
YXRjaERpZFJlY2VpdmVJY29uKCkKICAgICBOYXRpdmVJbWFnZVNraWEqIGJpdG1hcCA9IGltZy0+
bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKICAgICBpZiAoIWJpdG1hcCkKICAgICAgICAg
cmV0dXJuOwotICAgIGJpdG1hcC0+bG9ja1BpeGVscygpOworICAgIGJpdG1hcC0+Yml0bWFwKCku
bG9ja1BpeGVscygpOwogICAgIFN0cmluZyBpY29uVXJsID0gaWNvbkRhdGFiYXNlKCkuc3luY2hy
b25vdXNJY29uVVJMRm9yUGFnZVVSTCh1cmwpOwotICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xp
ZW50LT5zZXRGYXZpY29uKGltZy0+d2lkdGgoKSwgaW1nLT5oZWlnaHQoKSwgKHVuc2lnbmVkIGNo
YXIqKWJpdG1hcC0+Z2V0UGl4ZWxzKCksIGljb25VcmwudXRmOCgpLmRhdGEoKSk7Ci0gICAgYml0
bWFwLT51bmxvY2tQaXhlbHMoKTsKKyAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+c2V0
RmF2aWNvbihpbWctPndpZHRoKCksIGltZy0+aGVpZ2h0KCksICh1bnNpZ25lZCBjaGFyKiliaXRt
YXAtPmJpdG1hcCgpLmdldFBpeGVscygpLCBpY29uVXJsLnV0ZjgoKS5kYXRhKCkpOworICAgIGJp
dG1hcC0+Yml0bWFwKCkudW5sb2NrUGl4ZWxzKCk7CiB9CiAKIGJvb2wgRnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5OjpjYW5DYWNoZVBhZ2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJy
eS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IDI5ODNkMDFlZTg4YTU4Mzc1NjhjMDBmZWViNTg0NDhi
NGEyZWMwNDMuLjBhM2FmNDFlM2NhOGQwNGJjODZjM2IwMjJkZDAxNzk3ODc2ZDM0MzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTE0Niw3ICsxNDYsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFNhdmVUb1BhZ2VDYWNoZSgpOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpOwogICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkb3du
bG9hZChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJik7CisKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWU+IGNyZWF0
ZUZyYW1lKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBIVE1MRnJhbWVPd25lckVsZW1lbnQq
LCBjb25zdCBTdHJpbmcmLCBib29sLCBpbnQsIGludCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFRy
YW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoUGFnZSopOwogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1l
bnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNr
QmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0dlb2xv
Y2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGZkNTlmMmU0MWRlZDcz
Y2UzNjkxNWQzMmY2MWNjOTVjZjRkNmRmYmQuLmJhMjIwNDNlOWY3MGQxMDVmZjA2YWM3YjBjYjA0
YWRkZDRlMzQ0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBHZW9sb2NhdGlv
bkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlv
biogbG9jYXQKICAgICBGcmFtZSogZnJhbWUgPSBsb2NhdGlvbi0+ZnJhbWUoKTsKICAgICBpZiAo
IWZyYW1lKQogICAgICAgICByZXR1cm47Ci0gICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9wYWdlLT5j
aHJvbWUoKS0+cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKGZyYW1lLCBsb2Nh
dGlvbik7CisgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCkt
PnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShmcmFtZSwgbG9jYXRpb24pOwog
fQogCiB2b2lkIEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNrQmVycnk6OmNhbmNlbFBl
cm1pc3Npb25SZXF1ZXN0KEdlb2xvY2F0aW9uKiBsb2NhdGlvbikKQEAgLTc0LDcgKzc0LDcgQEAg
dm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5OjpjYW5jZWxQZXJtaXNz
aW9uUmVxdWVzdChHZW9sb2NhdGlvbioKICAgICBGcmFtZSogZnJhbWUgPSBsb2NhdGlvbi0+ZnJh
bWUoKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47Ci0gICAgbV93ZWJQYWdlUHJp
dmF0ZS0+bV9wYWdlLT5jaHJvbWUoKS0+Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dEZvckZyYW1lKGZyYW1lLCBsb2NhdGlvbik7CisgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9wYWdl
LT5jaHJvbWUoKS0+Y2xpZW50KCktPmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RG
b3JGcmFtZShmcmFtZSwgbG9jYXRpb24pOwogfQogCiB2b2lkIEdlb2xvY2F0aW9uQ29udHJvbGxl
ckNsaWVudEJsYWNrQmVycnk6Om9uTG9jYXRpb25VcGRhdGUoZG91YmxlIHRpbWVzdGFtcCwgZG91
YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGRvdWJsZSBh
bHRpdHVkZSwgYm9vbCBhbHRpdHVkZVZhbGlkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNr
QmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9HZW9sb2Nh
dGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggZWE2MzRiYjk3ZWJmNDUwMGZh
M2I4N2JhYTc0ZjdiNTljNWNkMDlmMC4uYzMyNDQ5YWVlZmFjYzhiNmY2ZTg3MTA5NTBjZWQ1ZWQw
NzQxMWM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25Db250cm9sbGVyQ2xp
ZW50QmxhY2tCZXJyeS5oCkBAIC0yMiw3ICsyMiw3IEBACiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBs
YXRmb3JtR2VvVHJhY2tlci5oPgogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUdlb1RyYWNr
ZXJMaXN0ZW5lci5oPgogI2luY2x1ZGUgPEdlb2xvY2F0aW9uQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8
R2VvbG9jYXRpb25Qb3NpdGlvbi5oPgorI2luY2x1ZGUgPFJlZlB0ci5oPgogCiBuYW1lc3BhY2Ug
QmxhY2tCZXJyeSB7CiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRCbGFja0JlcnJ5LmNwcAppbmRleCA3M2Y4ODdmMzBhMmU1N2RiOGU1Mjg3MjU0NDMwYTU0ZjNl
YjcyM2Q0Li4wZDVjZGY0ZDFmZjUwZmM3ODFmOGFiZDlkOTVmODNjNjE5MDFmYzdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xp
ZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0xMjQsNiArMTI0LDE2IEBA
IHZvaWQgSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeTo6b3Blbkluc3BlY3RvckZyb250ZW5kKElu
c3BlY3RvckNvbnRyb2xsZXIqKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgSW5z
cGVjdG9yQ2xpZW50QmxhY2tCZXJyeTo6Y2xvc2VJbnNwZWN0b3JGcm9udGVuZCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBJbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5Ojpi
cmluZ0Zyb250ZW5kVG9Gcm9udCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogYm9v
bCBJbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogewogICAgIENTdHJpbmcgdXRmOE1lc3NhZ2UgPSBtZXNzYWdlLnV0
ZjgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IGY1Y2NhMWU4
N2E5MThmYTAxZmJiMDcyZmI0ZTY0ZThiYjY2ZTQ3YWUuLjljYTIzOTFmODU3MzA3YTY0MTA2NzY0
ZWM0ODcyMjE2N2MyMjBjMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnku
aApAQCAtNTEsNiArNTEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN0b3JlU2V0dGlu
Zyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgdmlydHVhbCB2
b2lkIGluc3BlY3RvcldpbmRvd09iamVjdENsZWFyZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgb3Bl
bkluc3BlY3RvckZyb250ZW5kKEluc3BlY3RvckNvbnRyb2xsZXIqKTsKKyAgICB2aXJ0dWFsIHZv
aWQgY2xvc2VJbnNwZWN0b3JGcm9udGVuZCgpOworICAgIHZpcnR1YWwgdm9pZCBicmluZ0Zyb250
ZW5kVG9Gcm9udCgpOwogICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29u
c3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQnJvd3NlckNhY2hlKCk7CiAgICAg
dmlydHVhbCB2b2lkIGNsZWFyQnJvd3NlckNvb2tpZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRp
b25QcmVzZW50ZXJJbXBsLmNwcAppbmRleCAxNmM0NTFlYzM2NGY0Y2Y0NTgxNjg5OTM0NmYzMDdh
MDRhODgyNGI5Li41YjMyNDY5ZDAyNzhkNDMyNTQ4YWE0ZDgwOGYyYWJlYjQ0MzE3ZWZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0
aW9uUHJlc2VudGVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuY3BwCkBAIC0yOSw3ICsyOSw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTm90aWZpY2F0aW9uQ2xpZW50KiBOb3RpZmljYXRp
b25QcmVzZW50ZXJJbXBsOjppbnN0YW5jZSgpCitOb3RpZmljYXRpb25QcmVzZW50ZXIqIE5vdGlm
aWNhdGlvblByZXNlbnRlckltcGw6Omluc3RhbmNlKCkKIHsKICAgICBzdGF0aWMgTm90aWZpY2F0
aW9uUHJlc2VudGVySW1wbCogc19pbnN0YW5jZSA9IDA7CiAgICAgaWYgKCFzX2luc3RhbmNlKQpA
QCAtNTQsNyArNTQsNyBAQCBib29sIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6OnNob3coTm90
aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgaWYgKG1fbm90aWZpY2F0aW9ucy5jb250YWlu
cyhuKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNoZWNrUGVybWlzc2lvbihu
b3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgIT0gTm90aWZpY2F0aW9uQ2xp
ZW50OjpQZXJtaXNzaW9uQWxsb3dlZCkKKyAgICBpZiAoY2hlY2tQZXJtaXNzaW9uKG5vdGlmaWNh
dGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSAhPSBOb3RpZmljYXRpb25QcmVzZW50ZXI6
OlBlcm1pc3Npb25BbGxvd2VkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBTdHJpbmcg
dXVpZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKTsKQEAgLTY1LDcgKzY1LDcgQEAgYm9v
bCBOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0
aW9uKQogICAgICAgICBtZXNzYWdlID0gbi0+dXJsKCkuc3RyaW5nKCk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgLy8gRklYTUU6IFN0cmlwIHRoZSBjb250ZW50IGludG8gb25lIGxpbmUuCi0gICAg
ICAgIG1lc3NhZ2UgPSBuLT5jb250ZW50cygpLnRpdGxlKCkgKyAiOiAiICsgbi0+Y29udGVudHMo
KS5ib2R5KCk7CisgICAgICAgIG1lc3NhZ2UgPSBuLT5jb250ZW50cygpLnRpdGxlICsgIjogIiAr
IG4tPmNvbnRlbnRzKCkuYm9keTsKICAgICB9CiAKICAgICBtX3BsYXRmb3JtUHJlc2VudGVyLT5z
aG93KHN0ZDo6c3RyaW5nKHV1aWQudXRmOCgpLmRhdGEoKSksIHN0ZDo6c3RyaW5nKG1lc3NhZ2Uu
dXRmOCgpLmRhdGEoKSkpOwpAQCAtMTI3LDE0ICsxMjcsMTQgQEAgdm9pZCBOb3RpZmljYXRpb25Q
cmVzZW50ZXJJbXBsOjpjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9u
Q29udGUKICAgICAvLyBCZWNhdXNlIHdlIGFyZSB1c2luZyBtb2RhbCBkaWFsb2dzIHRvIHJlcXVl
c3QgcGVybWlzc2lvbiwgaXQncyBpbXBvc3NpYmxlIHRvIGNhbmNlbCB0aGVtLgogfQogCi1Ob3Rp
ZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6Y2hl
Y2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCitOb3RpZmljYXRp
b25QcmVzZW50ZXI6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6Y2hlY2tQ
ZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgQVNTRVJU
KGNvbnRleHQpOwogICAgIC8vIEZJWE1FOiBTaG91bGQgc3RvcmUgdGhlIHBlcm1pc3Npb24gaW5m
b3JtYXRpb24gaW50byBmaWxlIHBlcm1hbmVudGx5IGluc3RlYWQgb2YgaW4gbV9hbGxvd2VkRG9t
YWlucy4KICAgICAvLyBUaGUgc3VnZ2VzdGVkIHBsYWNlIHRvIGRvIHRoaXMgaXMgaW4gbV9wbGF0
Zm9ybVByZXNlbnRlci0+Y2hlY2tQZXJtaXNzaW9uKCkuCiAgICAgaWYgKG1fYWxsb3dlZERvbWFp
bnMuY29udGFpbnMoY29udGV4dC0+dXJsKCkuaG9zdCgpKSkKLSAgICAgICAgcmV0dXJuIE5vdGlm
aWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQ7Ci0gICAgcmV0dXJuIE5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbk5vdEFsbG93ZWQ7CisgICAgICAgIHJldHVybiBOb3RpZmljYXRp
b25QcmVzZW50ZXI6OlBlcm1pc3Npb25BbGxvd2VkOworICAgIHJldHVybiBOb3RpZmljYXRpb25Q
cmVzZW50ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOwogfQogCiAvLyBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBpbiBwbGF0Zm9ybSBzaWRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJ
bXBsLmgKaW5kZXggYjcwOGUwMDJlOTgxNmU4YWUyZWU4Nzk3MzU5OTEwZjEyMTYwYjIzYy4uZGE4
NGE1ZWVjOWE1YjliYTQ3YWI0MDg2YmU0YmQ2ODMzNGY1NDQyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlcklt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTm90aWZp
Y2F0aW9uUHJlc2VudGVySW1wbC5oCkBAIC0yMSw3ICsyMSw3IEBACiAKICNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykKICNpbmNsdWRlIDxOb3RpZmljYXRpb25BY2tMaXN0ZW5lci5oPgotI2luY2x1
ZGUgPE5vdGlmaWNhdGlvbkNsaWVudC5oPgorI2luY2x1ZGUgPE5vdGlmaWNhdGlvblByZXNlbnRl
ci5oPgogI2luY2x1ZGUgPE5vdGlmaWNhdGlvblByZXNlbnRlckJsYWNrQmVycnkuaD4KICNpbmNs
dWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTMxLDkgKzMxLDkgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBs
IDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCwgcHVibGljIEJsYWNrQmVycnk6
OlBsYXRmb3JtOjpOb3RpZmljYXRpb25BY2tMaXN0ZW5lciB7CitjbGFzcyBOb3RpZmljYXRpb25Q
cmVzZW50ZXJJbXBsIDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciwgcHVi
bGljIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOb3RpZmljYXRpb25BY2tMaXN0ZW5lciB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIE5vdGlmaWNhdGlvbkNsaWVudCogaW5zdGFuY2UoKTsKKyAgICBzdGF0
aWMgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBpbnN0YW5jZSgpOwogICAgIHZpcnR1YWwgfk5vdGlm
aWNhdGlvblByZXNlbnRlckltcGwoKTsKIAogICAgIC8vIFJlcXVlc3RzIHRoYXQgYSBub3RpZmlj
YXRpb24gYmUgc2hvd24uCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132320</attachid>
            <date>2012-03-16 11:03:00 -0700</date>
            <delta_ts>2012-03-16 13:00:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81120-20120316140007.patch</filename>
            <type>text/plain</type>
            <size>21958</size>
            <attacher name="Nima Ghanavatian">nima.ghanavatian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCBkNGRiMTNjNWZjMzE0Mjc3YmZmZDQ4MWEzMDM0NTc1MTAzZGI3NDVhLi4zNDE1YjQ5MDNj
YzZhMDkzZjg3YjhjYjAyNDk4MDJmZTQxMmI3ZTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsNSArMSw1MSBAQAogMjAxMi0wMy0xNiAgTmltYSBHaGFuYXZhdGlhbiAgPG5n
aGFuYXZhdGlhbkByaW0uY29tPgogCisgICAgICAgIFtCbGFja0JlcnJ5XSBTeW5jaW5nIHVwIGxl
ZnQgb3ZlciBiaXRzIGluIFdlYkNvcmVTdXBwb3J0IGZyb20gb3VyIGxvY2FsIGJyYW5jaCB0byB1
cHN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODExMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIGlzIGEgY29uc29saWRhdGlvbiBvZiB2YXJpb3VzIGNoYW5nZXMgdGhhdCBhcmUgaW4gb3Vy
IGxvY2FsIGRldiBicmFuY2gKKyAgICAgICAgYnV0IGRvIG5vdCBhcHBlYXIgaW4gb3VyIHVwc3Ry
ZWFtZWQgcG9ydC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZl
YXR1cmVzLmluOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUhhdmVGZWF0dXJl
cy5pbjoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BYm91dERhdGFVc2VGZWF0dXJlcy5pbjoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6Omhhc09wZW5lZFBvcHVwKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tC
ZXJyeTo6c2NyZWVuVG9Sb290Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRC
bGFja0JlcnJ5Ojpyb290Vmlld1RvU2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNs
aWVudEJsYWNrQmVycnk6OmludmFsaWRhdGVSb290Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWVDbGllbnRCbGFja0JlcnJ5OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjppbnZhbGlkYXRlQ29udGVu
dHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVy
cnk6OnNjcm9sbGFibGVBcmVhc0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRCbGFja0JlcnJ5OjpjcmVhdGVDb2xvckNob29zZXIpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAgICAgKENocm9tZUNsaWVudEJs
YWNrQmVycnkpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6bnVt
VG91Y2hFdmVudEhhbmRsZXJzQ2hhbmdlZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRC
bGFja0JlcnJ5OjpyZWdpc3RlclVuZG9TdGVwKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNs
aWVudEJsYWNrQmVycnk6OnJlZ2lzdGVyUmVkb1N0ZXApOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50QmxhY2tCZXJyeTo6dW5kbyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGll
bnRCbGFja0JlcnJ5OjpyZWRvKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChFZGl0b3JDbGllbnRCbGFja0JlcnJ5KToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5
LmNwcDoKKyAgICAgICAgKEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNrQmVycnk6OnJl
cXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJs
YWNrQmVycnk6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5OjpjbG9zZUluc3BlY3RvckZyb250ZW5k
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50
QmxhY2tCZXJyeTo6YnJpbmdGcm9udGVuZFRvRnJvbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAgICAgKEluc3BlY3RvckNsaWVu
dEJsYWNrQmVycnkpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNl
bnRlckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVySW1w
bDo6c2hvdyk6CisKKzIwMTItMDMtMTYgIE5pbWEgR2hhbmF2YXRpYW4gIDxuZ2hhbmF2YXRpYW5A
cmltLmNvbT4KKwogICAgICAgICBbQmxhY2tCZXJyeV0gU3luY2luZyB1cCBsZWZ0IG92ZXIgYml0
cyBpbiBBcGkgZnJvbSBvdXIgbG9jYWwgYnJhbmNoIHRvIHVwc3RyZWFtCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTEwNQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhRW5hYmxlRmVh
dHVyZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJvdXRE
YXRhRW5hYmxlRmVhdHVyZXMuaW4KaW5kZXggOTMyNmQ4MGQ4N2FhODhjZWE1Yzg5MDg0MmFiNjFm
ODNkNjE0NWU3Ny4uYTA1YWM2ODIyY2ExNTg5M2RkZDI3ZTlkZWJmYzc0MjgxNzk5Yjk2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0
YUVuYWJsZUZlYXR1cmVzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9BYm91dERhdGFFbmFibGVGZWF0dXJlcy5pbgpAQCAtMSwyNyArMSwyNSBAQAorM0Rf
Q0FOVkFTCiAzRF9QTFVHSU4KIDNEX1JFTkRFUklORwogQUNDRUxFUkFURURfMkRfQ0FOVkFTCiBB
U1NFTUJMRVIKIEFTU0VNQkxFUl9XWF9FWENMVVNJVkUKIEJMQUNLQkVSUllfQ1JFREVOVElBTF9Q
RVJTSVNUCitCTEFDS0JFUlJZX0RFQlVHX01FTU9SWQogQkxPQgogQlJBTkNIX0NPTVBBQ1RJT04K
IENIQU5ORUxfTUVTU0FHSU5HCiBDT0RFQkxPQ0tfU0FNUExJTkcKIENPTVBBUkVfQU5EX1NXQVAK
IENPTVBVVEVEX0dPVE9fSU5URVJQUkVURVIKLUNPTlNJU1RFTkNZX0NIRUNLCiBDT05URVhUX01F
TlVTCiBDU1NfRklMVEVSUwotQ1NTX0dSSURfTEFZT1VUCi1DU1NfTEFZT1VUX0dSSUQKIENTU19T
SEFERVJTCiBEQVNIQk9BUkRfU1VQUE9SVAorREFUQUdSSUQKIERBVEFMSVNUCiBEQVRBX1RSQU5T
RkVSX0lURU1TCiBERUJVR19NQVRIX0xBWU9VVAotREVCVUdfUFJPUEFHQVRJT05fVkVSQk9TRQot
REVCVUdfVkVSQk9TRQogREVCVUdfV0lUSF9CUkVBS1BPSU5UCiBERVRBSUxTCiBERVZJQ0VfT1JJ
RU5UQVRJT04KQEAgLTMwLDEyICsyOCwxNSBAQCBESVJFQ1RPUllfVVBMT0FECiBET1VCTEVfVEFQ
X0NFTlRFUlMKIERPV05MT0FEX0FUVFJJQlVURQogRFJBR19TVVBQT1JUCitFVkVOVF9NT0RFX01F
VEFUQUdTCiBFWEVDVVRBQkxFX0FMTE9DQVRPUl9ERU1BTkQKIEVYRUNVVEFCTEVfQUxMT0NBVE9S
X0ZJWEVECitFWFBFUklNRU5UQUxfRkVBVFVSRQogRkFTVF9NQUxMT0NfTUFUQ0hfVkFMSURBVElP
TgogRkFTVF9NT0JJTEVfU0NST0xMSU5HCiBGSUxFX1NZU1RFTQogRklMVEVSUworRklYRURfUkVQ
T1JURURfU0laRQogRlRQRElSCiBGVUxMU0NSRUVOX0FQSQogR0FNRVBBRApAQCAtNDMsNiArNDQs
NyBAQCBHQ19MT0dHSU5HCiBHQ19WQUxJREFUSU9OCiBHRU9MT0NBVElPTgogR0VTVFVSRV9FVkVO
VFMKK0dFU1RVUkVfUkVDT0dOSVpFUgogR0dDCiBHTElCX1NVUFBPUlQKIEdMT0JBTF9GQVNUTUFM
TE9DX05FVwpAQCAtNTksMTUgKzYxLDExIEBAIElOUFVUX1RZUEVfVElNRQogSU5QVVRfVFlQRV9X
RUVLCiBJTlNQRUNUT1IKIElOVEVSUFJFVEVSCi1KQVZBX0JSSURHRQogSkFWQVNDUklQVF9ERUJV
R0dFUgogSkFWQVNDUklQVF9JMThOX0FQSQorSkFWQV9CUklER0UKIEpJVAotSklUX0FTU0VSVAot
SklUX0JSRUFLX09OX0VWRVJZX0JMT0NLCi1KSVRfQlJFQUtfT05fRVZFUllfRlVOQ1RJT04KLUpJ
VF9CUkVBS19PTl9FVkVSWV9OT0RFCi1KSVRfQlJFQUtfT05fU1BFQ1VMQVRJT05fRkFJTFVSRQor
SklUX09QVElNSVpFX1BST1BFUlRZX0FDQ0VTUwogSklUX1VTRV9TT0ZUX01PRFVMTwogSklUX1ZF
UkJPU0UKIEpJVF9WRVJCT1NFX09TUgpAQCAtODcsMTcgKzg1LDE3IEBAIE1VVEFUSU9OX09CU0VS
VkVSUwogTkVUU0NBUEVfUExVR0lOX0FQSQogTkVUU0NBUEVfUExVR0lOX01FVEFEQVRBX0NBQ0hF
CiBORVdfWE1MCi1OT19MSVNUQk9YX1JFTkRFUklORwogTk9USUZJQ0FUSU9OUworTk9fTElTVEJP
WF9SRU5ERVJJTkcKIE9QQ09ERV9TQU1QTElORwogT1BDT0RFX1NUQVRTCitPUEVOVFlQRV9TQU5J
VElaRVIKIE9SSUVOVEFUSU9OX0VWRU5UUwotT1NSX0VOVFJZCi1QQUdFX0NBQ0hFCiBQQUdFX1ZJ
U0lCSUxJVFlfQVBJCiBQQU5fU0NST0xMSU5HCiBQQVJBTExFTF9HQwogUEFSQUxMRUxfSk9CUwor
UEFTU1dPUkRfRUNITwogUExVR0lOX1BBQ0tBR0VfU0lNUExFX0hBU0gKIFBMVUdJTl9QUk9DRVNT
CiBQTFVHSU5fUFJPWFlfRk9SX1ZJREVPCkBAIC0xMDksMjAgKzEwNywyMiBAQCBSRUdFWFBfVFJB
Q0lORwogUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUgogUkVQQUlOVF9USFJPVFRMSU5HCiBSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRQotUkVTVFJJQ1RJT05TCiBSVUJCRVJfQkFORElORwogUlVOX1RJ
TUVfSEVVUklTVElDUworUlhJX0lNQUdFX0ZPUk1BVAogU0FNUExJTkdfQ09VTlRFUlMKIFNBTVBM
SU5HX0ZMQUdTCiBTQU1QTElOR19SRUdJT05TCiBTQU1QTElOR19USFJFQUQKIFNIQVJFRF9XT1JL
RVJTCiBTSU1QTEVfSEVBUF9QUk9GSUxJTkcKK1NJTkdMRV9USFJFQURFRAorU0tJQV9HUFVfQ0FO
VkFTCitTS0lBX1RFWFQKIFNNT09USF9TQ1JPTExJTkcKIFNQRUVDSF9JTlBVVAogU1BFTExDSEVD
SwogU1FMX0RBVEFCQVNFCi1TVUNDRVNTX1NUQVRTCiBTVkcKIFNWR19ET01fT0JKQ19CSU5ESU5H
UwogU1ZHX0ZPTlRTCkBAIC0xMzIsMTYgKzEzMiwxNiBAQCBUSFJFQURJTkdfTElCRElTUEFUQ0gK
IFRIUkVBRElOR19PUEVOTVAKIFRPVUNIX0VWRU5UUwogVE9VQ0hfSUNPTl9MT0FESU5HCi1WXzAy
OEQxMF9GT1JDRV9ESVNBQkxFCiBWQUxVRV9QUk9GSUxFUgotVkVSQk9TRV9TUEVDVUxBVElPTl9G
QUlMVVJFCiBWRVJCT1NFX1ZBTFVFX1BST0ZJTEUKLVZFUkJPU0VfVkFMVUVfUkVDT1ZFUklFUwog
VklERU8KIFZJREVPX1RSQUNLCitWSUVXUE9SVF9SRUZMT1cKK1dFQkRPTQorV0VCR0wKK1dFQktJ
VDIKIFdFQl9BUkNISVZFCiBXRUJfQVVESU8KLVdFQkdMCiBXRUJfUFJPQ0VTU19TQU5EQk9YCiBX
RUJfU09DS0VUUwogV0VCX1RJTUlORwpAQCAtMTQ5LDcgKzE0OSw3IEBAIFdPUktFUlMKIFdSSVRF
X0JBUlJJRVJfUFJPRklMSU5HCiBXVEZfTUFMTE9DX1ZBTElEQVRJT04KIFhIUl9SRVNQT05TRV9C
TE9CCi1YT1JfREVCVUdfQUlECitYSFRNTE1QCiBYU0xUCiBZQVJSX0pJVAogWUFSUl9KSVRfREVC
VUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9B
Ym91dERhdGFIYXZlRmVhdHVyZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvQWJvdXREYXRhSGF2ZUZlYXR1cmVzLmluCmluZGV4IDE1MjU5ZDk5YzEzNDczOGRm
MmJjMzdmMzI5NWI1ODk5ZGQzZTVmYjMuLjIxZjNjNmRjYzQyNmQ5MzhhMjQ1MjM4ZTI4NWU4MThk
NTBjMWJkNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9BYm91dERhdGFIYXZlRmVhdHVyZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUhhdmVGZWF0dXJlcy5pbgpAQCAtMSw0ICsxLDUg
QEAKIEFDQ0VTU0lCSUxJVFkKK0FTU0VNQkxFUgogQVZDRgogQ0dfSU5URVJQT0xBVElPTl9NRURJ
VU0KIENPTVBVVEVEX0dPVE8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9BYm91dERhdGFVc2VGZWF0dXJlcy5pbiBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9BYm91dERhdGFVc2VGZWF0dXJlcy5pbgppbmRleCBiNzQ0
ZDkwNGMwZDY2OWU5M2I1NTRiMjBlNDRmMWUwYmE4ODcyNDQyLi5lMWE3Y2VkMTU4N2NkNzQ1OWFh
MmI3NzQxMmRkMGQ4ZWVjZTA5OTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhVXNlRmVhdHVyZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YVVzZUZlYXR1cmVzLmluCkBA
IC0xMywxMyArMTMsMTYgQEAgQ0ZVUkxDQUNIRQogQ0ZVUkxTVE9SQUdFU0VTU0lPTlMKIENHCiBD
R19JTlRFUlBPTEFUSU9OX01FRElVTQorQ0hST01FX05FVFdPUktfU1RBQ0sKIENPUkVBVURJTwog
Q09SRV9URVhUCiBDUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCiBDVVJMCiBEWU5BTUlDX0FO
Tk9UQVRJT05TCiBEWU5BTUlDX0FOTk9UQVRJT05TX05PSU1QTAorRUdMCiBFWFBPUlRfTUFDUk9T
CitFWFRFUk5BTF9DUkFTSAogRlJFRVRZUEUKIEdDQ19DT01QVVRFRF9HT1RPX1dPUktBUk9VTkQK
IEdMSUJfVU5JQ09ERQpAQCAtNDAsMTQgKzQzLDE2IEBAIE1BUktFUl9SRU1PVkFMX1VQT05fRURJ
VElORwogTUVSU0VOTkVfVFdJU1RFUl8xOTkzNwogTkVXX1RIRU1FCiBPUEVOVFlQRV9TQU5JVEla
RVIKK09QRU5WRworT1BFTlZHX0JMVVIKIE9TX1JBTkRPTU5FU1MKIFBBTkdPCiBQTEFURk9STV9T
VFJBVEVHSUVTCiBQTFVHSU5fSE9TVF9QUk9DRVNTCiBQUkVFTVBUX0dFT0xPQ0FUSU9OX1BFUk1J
U1NJT04KIFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSwotUFRIUkVBRF9HRVRTUEVDSUZJ
Q19ESVJFQ1QKIFBUSFJFQURTCitQVEhSRUFEX0dFVFNQRUNJRklDX0RJUkVDVAogUVQ0X1VOSUNP
REUKIFFUS0lUCiBRVF9NT0JJTElUWV9TWVNURU1JTkZPCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAKaW5kZXggY2Y3ODcyOTU5OWM1ZjQyOGE4MDQ1ZGNiMWFkMzUyOGY4NmM4NzMx
OC4uMjMzNjhkNWJmZTVmMDY1M2NmZGFkZDU1NTdmZTk3ZmIwNjQzMmRkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNr
QmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkJh
Y2tpbmdTdG9yZUNsaWVudC5oIgogI2luY2x1ZGUgIkJhY2tpbmdTdG9yZV9wLmgiCiAjaW5jbHVk
ZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgogI2luY2x1ZGUgIkRhdGFi
YXNlVHJhY2tlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRHVtcFJlbmRl
clRyZWVDbGllbnQuaCIKQEAgLTI3OSw2ICsyODAsMTIgQEAgYm9vbCBDaHJvbWVDbGllbnRCbGFj
a0JlcnJ5OjpzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpoYXNP
cGVuZWRQb3B1cCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWVDbGllbnRCbGFja0JlcnJ5
OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVCbGFja0JlcnJ5KGNsaWVudCkpOwpAQCAtMzc3
LDcgKzM4NCw3IEBAIEludFJlY3QgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6d2luZG93UmVzaXpl
clJlY3QoKSBjb25zdAogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CiAKLUludFBvaW50IENocm9t
ZUNsaWVudEJsYWNrQmVycnk6OnNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JiBzY3JlZW5Q
b3MpIGNvbnN0CitJbnRQb2ludCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpzY3JlZW5Ub1Jvb3RW
aWV3KGNvbnN0IEludFBvaW50JiBzY3JlZW5Qb3MpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQgd2lu
ZG93UG9pbnQ7CiAgICAgaWYgKFdpbmRvdyogd2luZG93ID0gbV93ZWJQYWdlUHJpdmF0ZS0+bV9j
bGllbnQtPndpbmRvdygpKQpAQCAtMzg3LDcgKzM5NCw3IEBAIEludFBvaW50IENocm9tZUNsaWVu
dEJsYWNrQmVycnk6OnNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JiBzY3JlZW5Qb3MpIGNv
bnN0CiAgICAgcmV0dXJuIHdpbmRvd1BvaW50OwogfQogCi1JbnRSZWN0IENocm9tZUNsaWVudEJs
YWNrQmVycnk6OndpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QpIGNvbnN0
CitJbnRSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OnJvb3RWaWV3VG9TY3JlZW4oY29uc3Qg
SW50UmVjdCYgd2luZG93UmVjdCkgY29uc3QKIHsKICAgICBJbnRSZWN0IHdpbmRvd1BvaW50KHdp
bmRvd1JlY3QpOwogICAgIEludFBvaW50IGxvY2F0aW9uOwpAQCAtNTI1LDEyICs1MzIsMTIgQEAg
dm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBm
cmFtZSwgY29uc3QgSW50U2l6ZSYgc2kKICAgICBtX3dlYlBhZ2VQcml2YXRlLT5jb250ZW50c1Np
emVDaGFuZ2VkKHNpemUpOwogfQogCi12b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmludmFs
aWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2
b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRS
ZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKIHsKICAgICBtX3dlYlBhZ2VQcml2YXRl
LT5tX2JhY2tpbmdTdG9yZS0+ZC0+cmVwYWludCh1cGRhdGVSZWN0LCBmYWxzZSAvKmNvbnRlbnRD
aGFuZ2VkKi8sIGltbWVkaWF0ZSk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6
aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJv
b2wgaW1tZWRpYXRlKQordm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjppbnZhbGlkYXRlQ29u
dGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0
ZSkKIHsKICAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2JhY2tpbmdTdG9yZS0+ZC0+cmVwYWludCh1
cGRhdGVSZWN0LCB0cnVlIC8qY29udGVudENoYW5nZWQqLywgaW1tZWRpYXRlKTsKIH0KQEAgLTUz
OCw3ICs1NDUsNyBAQCB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmludmFsaWRhdGVDb250
ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZQogdm9pZCBDaHJvbWVDbGllbnRC
bGFja0JlcnJ5OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFNpemUm
IGRlbHRhLCBjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSwgY29uc3Qg
U2Nyb2xsVmlldyogc2Nyb2xsVmlldykKIHsKICAgICBpZiAoc2Nyb2xsVmlldyAhPSBtX3dlYlBh
Z2VQcml2YXRlLT5tX21haW5GcmFtZS0+dmlldygpKQotICAgICAgICBpbnZhbGlkYXRlQ29udGVu
dHNBbmRXaW5kb3codXBkYXRlUmVjdCwgdHJ1ZSAvKmltbWVkaWF0ZSovKTsKKyAgICAgICAgaW52
YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcodXBkYXRlUmVjdCwgdHJ1ZSAvKmltbWVkaWF0ZSov
KTsKICAgICBlbHNlIHsKICAgICAgICAgQmFja2luZ1N0b3JlQ2xpZW50KiBiYWNraW5nU3RvcmVD
bGllbnRGb3JGcmFtZSA9IG1fd2ViUGFnZVByaXZhdGUtPmJhY2tpbmdTdG9yZUNsaWVudEZvckZy
YW1lKG1fd2ViUGFnZVByaXZhdGUtPm1fbWFpbkZyYW1lKTsKICAgICAgICAgQVNTRVJUKGJhY2tp
bmdTdG9yZUNsaWVudEZvckZyYW1lKTsKQEAgLTU2Niw3ICs1NzMsNyBAQCB2b2lkIENocm9tZUNs
aWVudEJsYWNrQmVycnk6OnNjcm9sbChjb25zdCBJbnRTaXplJiBkZWx0YSwgY29uc3QgSW50UmVj
dCYgc2Nyb2xsVgogdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpzY3JvbGxhYmxlQXJlYXNE
aWRDaGFuZ2UoKQogewogICAgIHR5cGVkZWYgSGFzaFNldDxTY3JvbGxhYmxlQXJlYSo+IFNjcm9s
bGFibGVBcmVhU2V0OwotICAgIGNvbnN0IFNjcm9sbGFibGVBcmVhU2V0KiBzY3JvbGxhYmxlQXJl
YXMgPSBtX3dlYlBhZ2VQcml2YXRlLT5tX3BhZ2UtPnNjcm9sbGFibGVBcmVhU2V0KCk7CisgICAg
Y29uc3QgU2Nyb2xsYWJsZUFyZWFTZXQqIHNjcm9sbGFibGVBcmVhcyA9IG1fd2ViUGFnZVByaXZh
dGUtPm1fbWFpbkZyYW1lLT52aWV3KCktPnNjcm9sbGFibGVBcmVhcygpOwogCiAgICAgYm9vbCBo
YXNBdExlYXN0T25lSW5SZWdpb25TY3JvbGxhYmxlQXJlYSA9IGZhbHNlOwogICAgIFNjcm9sbGFi
bGVBcmVhU2V0OjppdGVyYXRvciBlbmQgPSBzY3JvbGxhYmxlQXJlYXMtPmVuZCgpOwpAQCAtNzQw
LDQgKzc0NywxMCBAQCBib29sIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmFsbG93c0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmcoKSBjb25zdAogfQogI2VuZGlmCiAKK1Bhc3NPd25QdHI8Q29sb3JDaG9v
c2VyPiBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9v
c2VyQ2xpZW50KiwgY29uc3QgQ29sb3ImKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCmlu
ZGV4IGY0NzBmNzhmYmM1MjQ1MDgxODUzZDYxOGE3N2ZkMmQ4MzAyNmM3MmUuLjg5MzUwZDI5MWRk
MjM4M2UyNWM2Y2ZkNThiOWFhY2QzYzJlMTU5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKKysrIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNr
QmVycnkuaApAQCAtNzAsMTMgKzcwLDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpOwogICAgIHZpcnR1YWwgS2V5Ym9hcmRVSU1vZGUga2V5
Ym9hcmRVSU1vZGUoKTsKICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0Jiwg
Ym9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25z
dCBJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhj
b25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50
c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVj
dCYsIGJvb2wsIGNvbnN0IFNjcm9sbFZpZXcqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNv
bnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1
YWwgdm9pZCBzY3JvbGxhYmxlQXJlYXNEaWRDaGFuZ2UoKTsKLSAgICB2aXJ0dWFsIEludFBvaW50
IHNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JikgY29uc3Q7Ci0gICAgdmlydHVhbCBJbnRS
ZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdDsKKyAgICB2aXJ0dWFsIElu
dFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKKyAgICB2aXJ0
dWFsIEludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0
JiwgY29uc3QgU2Nyb2xsVmlldyopIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgaW50KTsKQEAgLTg4
LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFZpZXdwb3J0UHJv
cGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5k
bGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBudW1Ub3VjaEV2ZW50
SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJh
bWUqKTsKICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29u
c3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NS
ZWZQdHI8RmlsZUNob29zZXI+KTsKQEAgLTEwMyw2ICsxMDQsNyBAQCBwdWJsaWM6CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8Q29sb3JD
aG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29s
b3ImKTsKICAgICB2b2lkIG9wZW5Db2xvckNob29zZXIoQ29sb3JDaG9vc2VyKiwgY29uc3QgQ29s
b3ImKSB7IH0KICAgICB2b2lkIGNsZWFudXBDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyKikgeyB9
CiAgICAgdm9pZCBzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIoQ29sb3JDaG9vc2VyKiwg
Y29uc3QgQ29sb3ImKSB7IH0KQEAgLTEzMSw2ICsxMzMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAg
ICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVj
dGlvbigpOworICAgIHZpcnR1YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVh
dGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFj
a0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCBjMTAwMjM2MWRlMzJmNGUzMGI2YzQzMzY3Yzlk
NTFkZTE0YWEzNmM5Li4xNDhiZTE2NjM2MWEyOWQxYjNlYTc3MzVhYWY1ZjM3ZDNhZjA0OWNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAg
dm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpkaWRTZXRTZWxlY3Rpb25UeXBlc0ZvclBhc3Rl
Ym9hcmQoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50Qmxh
Y2tCZXJyeTo6cmVnaXN0ZXJDb21tYW5kRm9yVW5kbyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kPiBj
b21tYW5kKQordm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpyZWdpc3RlclVuZG9TdGVwKFBh
c3NSZWZQdHI8VW5kb1N0ZXA+IHN0ZXApCiB7CiAgICAgLy8gUmVtb3ZlIHRoZSBvbGRlc3QgaXRl
bSBpZiB3ZSd2ZSByZWFjaGVkIHRoZSBtYXhpbXVtIGNhcGFjaXR5IGZvciB0aGUgc3RhY2suCiAg
ICAgaWYgKG1fdW5kb1N0YWNrLnNpemUoKSA9PSBtYXhpbXVtVW5kb1N0YWNrRGVwdGgpCkBAIC0y
NjYsMTIgKzI2NiwxMiBAQCB2b2lkIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnJlZ2lzdGVyQ29t
bWFuZEZvclVuZG8oUGFzc1JlZlB0cjxFZGl0Q29tbWFuZD4gY29tbQogICAgIGlmICghbV9pblJl
ZG8pCiAgICAgICAgIG1fcmVkb1N0YWNrLmNsZWFyKCk7CiAKLSAgICBtX3VuZG9TdGFjay5hcHBl
bmQoY29tbWFuZCk7CisgICAgbV91bmRvU3RhY2suYXBwZW5kKHN0ZXApOwogfQogCi12b2lkIEVk
aXRvckNsaWVudEJsYWNrQmVycnk6OnJlZ2lzdGVyQ29tbWFuZEZvclJlZG8oUGFzc1JlZlB0cjxF
ZGl0Q29tbWFuZD4gY29tbWFuZCkKK3ZvaWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6cmVnaXN0
ZXJSZWRvU3RlcChQYXNzUmVmUHRyPFVuZG9TdGVwPiBzdGVwKQogewotICAgIG1fcmVkb1N0YWNr
LmFwcGVuZChjb21tYW5kKTsKKyAgICBtX3JlZG9TdGFjay5hcHBlbmQoc3RlcCk7CiB9CiAKIHZv
aWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6Y2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKQpAQCAt
MzA0LDcgKzMwNCw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6dW5kbygpCiB7CiAg
ICAgaWYgKGNhblVuZG8oKSkgewogICAgICAgICBFZGl0Q29tbWFuZFN0YWNrOjppdGVyYXRvciBi
YWNrID0gLS1tX3VuZG9TdGFjay5lbmQoKTsKLSAgICAgICAgUmVmUHRyPEVkaXRDb21tYW5kPiBj
b21tYW5kKCpiYWNrKTsKKyAgICAgICAgUmVmUHRyPFVuZG9TdGVwPiBjb21tYW5kKCpiYWNrKTsK
ICAgICAgICAgbV91bmRvU3RhY2sucmVtb3ZlKGJhY2spOwogCiAgICAgICAgIC8vIFVuYXBwbHkg
d2lsbCBjYWxsIHVzIGJhY2sgdG8gcHVzaCB0aGlzIGNvbW1hbmQgb250byB0aGUgcmVkbyBzdGFj
ay4KQEAgLTMxNiw3ICszMTYsNyBAQCB2b2lkIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnJlZG8o
KQogewogICAgIGlmIChjYW5SZWRvKCkpIHsKICAgICAgICAgRWRpdENvbW1hbmRTdGFjazo6aXRl
cmF0b3IgYmFjayA9IC0tbV9yZWRvU3RhY2suZW5kKCk7Ci0gICAgICAgIFJlZlB0cjxFZGl0Q29t
bWFuZD4gY29tbWFuZCgqYmFjayk7CisgICAgICAgIFJlZlB0cjxVbmRvU3RlcD4gY29tbWFuZCgq
YmFjayk7CiAgICAgICAgIG1fcmVkb1N0YWNrLnJlbW92ZShiYWNrKTsKIAogICAgICAgICBBU1NF
UlQoIW1faW5SZWRvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IDU0YTMx
MDA5MDAwMjk4ZTg5MWYwNzNkZDc1N2MwMmVmNTFlMDE3ZTguLjQ4NjE3NmIwZDE4NTgzNTliYzVh
ZTE0MjM0NDE2YTQzMzEzYjIwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuaApA
QCAtNjAsOCArNjAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEVuZEVkaXRpbmco
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkU2V0U2VsZWN0aW9uVHlwZXNGb3JQYXN0ZWJvYXJkKCk7Ci0gICAg
dmlydHVhbCB2b2lkIHJlZ2lzdGVyQ29tbWFuZEZvclVuZG8oUGFzc1JlZlB0cjxFZGl0Q29tbWFu
ZD4pOwotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckNvbW1hbmRGb3JSZWRvKFBhc3NSZWZQdHI8
RWRpdENvbW1hbmQ+KTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJVbmRvU3RlcChQYXNzUmVm
UHRyPFVuZG9TdGVwPik7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUGFzc1Jl
ZlB0cjxVbmRvU3RlcD4pOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhclVuZG9SZWRvT3BlcmF0aW9u
cygpOwogICAgIHZpcnR1YWwgYm9vbCBjYW5Db3B5Q3V0KEZyYW1lKiwgYm9vbCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIGNhblBhc3RlKEZyYW1lKiwgYm9vbCkgY29uc3Q7CkBAIC0xMDgsNyAr
MTA4LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9pblJlZG87CiAKLSAgICB0eXBlZGVmIERl
cXVlPFJlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4gPiBFZGl0Q29tbWFuZFN0YWNrOworICAg
IHR5cGVkZWYgRGVxdWU8UmVmUHRyPFdlYkNvcmU6OlVuZG9TdGVwPiA+IEVkaXRDb21tYW5kU3Rh
Y2s7CiAgICAgRWRpdENvbW1hbmRTdGFjayBtX3VuZG9TdGFjazsKICAgICBFZGl0Q29tbWFuZFN0
YWNrIG1fcmVkb1N0YWNrOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNv
bnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCBmZDU5ZjJlNDFkZWQ3M2NlMzY5MTVk
MzJmNjFjYzk1Y2Y0ZDZkZmJkLi5iYTIyMDQzZTlmNzBkMTA1ZmYwNmFjN2IwY2IwNGFkZGQ0ZTM0
NDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVu
dEJsYWNrQmVycnkuY3BwCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50QmxhY2tCZXJyeTo6cmVxdWVzdFBlcm1pc3Npb24oR2VvbG9jYXRpb24qIGxvY2F0
CiAgICAgRnJhbWUqIGZyYW1lID0gbG9jYXRpb24tPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkK
ICAgICAgICAgcmV0dXJuOwotICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fcGFnZS0+Y2hyb21lKCkt
PnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShmcmFtZSwgbG9jYXRpb24pOwor
ICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5yZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoZnJhbWUsIGxvY2F0aW9uKTsKIH0KIAogdm9p
ZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5OjpjYW5jZWxQZXJtaXNzaW9u
UmVxdWVzdChHZW9sb2NhdGlvbiogbG9jYXRpb24pCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgR2Vv
bG9jYXRpb25Db250cm9sbGVyQ2xpZW50QmxhY2tCZXJyeTo6Y2FuY2VsUGVybWlzc2lvblJlcXVl
c3QoR2VvbG9jYXRpb24qCiAgICAgRnJhbWUqIGZyYW1lID0gbG9jYXRpb24tPmZyYW1lKCk7CiAg
ICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fd2ViUGFnZVByaXZhdGUtPm1f
cGFnZS0+Y2hyb21lKCktPmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFt
ZShmcmFtZSwgbG9jYXRpb24pOworICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fcGFnZS0+Y2hyb21l
KCktPmNsaWVudCgpLT5jYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUo
ZnJhbWUsIGxvY2F0aW9uKTsKIH0KIAogdm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRC
bGFja0JlcnJ5OjpvbkxvY2F0aW9uVXBkYXRlKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRp
dHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGUs
IGJvb2wgYWx0aXR1ZGVWYWxpZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25Db250
cm9sbGVyQ2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IGVhNjM0YmI5N2ViZjQ1MDBmYTNiODdiYWE3
NGY3YjU5YzVjZDA5ZjAuLmMzMjQ0OWFlZWZhY2M4YjZmNmU4NzEwOTUwY2VkNWVkMDc0MTFjNmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9HZW9s
b2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNr
QmVycnkuaApAQCAtMjIsNyArMjIsNyBAQAogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUdl
b1RyYWNrZXIuaD4KICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1HZW9UcmFja2VyTGlzdGVu
ZXIuaD4KICNpbmNsdWRlIDxHZW9sb2NhdGlvbkNsaWVudC5oPgotI2luY2x1ZGUgPEdlb2xvY2F0
aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxSZWZQdHIuaD4KIAogbmFtZXNwYWNlIEJsYWNrQmVy
cnkgewogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tC
ZXJyeS5jcHAKaW5kZXggNzNmODg3ZjMwYTJlNTdkYjhlNTI4NzI1NDQzMGE1NGYzZWI3MjNkNC4u
MGQ1Y2RmNGQxZmY1MGZjNzgxZjhhYmQ5ZDk1ZjgzYzYxOTAxZmM3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNr
QmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMTI0LDYgKzEyNCwxNiBAQCB2b2lkIElu
c3BlY3RvckNsaWVudEJsYWNrQmVycnk6Om9wZW5JbnNwZWN0b3JGcm9udGVuZChJbnNwZWN0b3JD
b250cm9sbGVyKikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIEluc3BlY3RvckNs
aWVudEJsYWNrQmVycnk6OmNsb3NlSW5zcGVjdG9yRnJvbnRlbmQoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeTo6YnJpbmdGcm9u
dGVuZFRvRnJvbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGJvb2wgSW5zcGVj
dG9yQ2xpZW50QmxhY2tCZXJyeTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKIHsKICAgICBDU3RyaW5nIHV0ZjhNZXNzYWdlID0gbWVzc2FnZS51dGY4KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuaAppbmRleCBmNWNjYTFlODdhOTE4ZmEw
MWZiYjA3MmZiNGU2NGU4YmI2NmU0N2FlLi45Y2EyMzkxZjg1NzMwN2E2NDEwNjc2NGVjNDg3MjIx
NjdjMjIwYzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTUx
LDYgKzUxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdG9yZVNldHRpbmcoY29uc3Qg
U3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogICAgIHZpcnR1YWwgdm9pZCBpbnNw
ZWN0b3JXaW5kb3dPYmplY3RDbGVhcmVkKCk7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5JbnNwZWN0
b3JGcm9udGVuZChJbnNwZWN0b3JDb250cm9sbGVyKik7CisgICAgdmlydHVhbCB2b2lkIGNsb3Nl
SW5zcGVjdG9yRnJvbnRlbmQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYnJpbmdGcm9udGVuZFRvRnJv
bnQoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckJyb3dzZXJDYWNoZSgpOwogICAgIHZpcnR1YWwg
dm9pZCBjbGVhckJyb3dzZXJDb29raWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2Vu
dGVySW1wbC5jcHAKaW5kZXggNDU3MGY2Yjc4Y2UzMzg5ZmM1MDI5NjQ3YmQzNjRhZmIwNDRjYzQz
Yi4uNmIyOTIxMDI5NDYyNzdkYTI4ZTc5OGQ3ZWVkZjhiOTM5YzUzMTljNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNl
bnRlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmNwcApAQCAtNjUsNyArNjUsNyBAQCBib29sIE5v
dGlmaWNhdGlvblByZXNlbnRlckltcGw6OnNob3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24p
CiAgICAgICAgIG1lc3NhZ2UgPSBuLT51cmwoKS5zdHJpbmcoKTsKICAgICB9IGVsc2UgewogICAg
ICAgICAvLyBGSVhNRTogU3RyaXAgdGhlIGNvbnRlbnQgaW50byBvbmUgbGluZS4KLSAgICAgICAg
bWVzc2FnZSA9IG4tPmNvbnRlbnRzKCkudGl0bGUoKSArICI6ICIgKyBuLT5jb250ZW50cygpLmJv
ZHkoKTsKKyAgICAgICAgbWVzc2FnZSA9IG4tPmNvbnRlbnRzKCkudGl0bGUgKyAiOiAiICsgbi0+
Y29udGVudHMoKS5ib2R5OwogICAgIH0KIAogICAgIG1fcGxhdGZvcm1QcmVzZW50ZXItPnNob3co
c3RkOjpzdHJpbmcodXVpZC51dGY4KCkuZGF0YSgpKSwgc3RkOjpzdHJpbmcobWVzc2FnZS51dGY4
KCkuZGF0YSgpKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>