<?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>55648</bug_id>
          
          <creation_ts>2011-03-02 22:14:10 -0800</creation_ts>
          <short_desc>REGRESSION(r80201): &quot;caused tests to crash on several bots&quot; (Requested by rniwa on #webkit).</short_desc>
          <delta_ts>2011-03-02 22:19:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>48719</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>aestes</cc>
    
    <cc>eric</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>361355</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-02 22:14:10 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/80201 broke the build:
&quot;caused tests to crash on several bots&quot; (Requested by rniwa on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361356</commentid>
    <comment_count>1</comment_count>
      <attachid>84518</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-02 22:14:32 -0800</bug_when>
    <thetext>Created attachment 84518
ROLLOUT of r80201

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361359</commentid>
    <comment_count>2</comment_count>
      <attachid>84518</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-02 22:19:07 -0800</bug_when>
    <thetext>Comment on attachment 84518
ROLLOUT of r80201

Clearing flags on attachment: 84518

Committed r80209: &lt;http://trac.webkit.org/changeset/80209&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361360</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-02 22:19:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84518</attachid>
            <date>2011-03-02 22:14:32 -0800</date>
            <delta_ts>2011-03-02 22:19:07 -0800</delta_ts>
            <desc>ROLLOUT of r80201</desc>
            <filename>bug-55648-20110303061322.patch</filename>
            <type>text/plain</type>
            <size>47943</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAyMDgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NDE0ZmRhMzY1ZWQ0OTdm
MmI5ZWQ5YjJlOGQ3NTA4MWVmYzY0MjM4Li43ZDA0YWIwY2FlNjdhZWU0MDhhYThmZjFhMGFiMWY3
Mjk2MWNhMTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzggQEAKKzIwMTEtMDMtMDIgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI4MDIwMS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvODAyMDEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU1NjQ4CisKKyAgICAgICAgImNhdXNlZCB0ZXN0cyB0byBjcmFzaCBvbiBzZXZlcmFs
IGJvdHMiIChSZXF1ZXN0ZWQgYnkgcm5pd2Egb24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAg
ICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aGFzVGFnTmFtZSk6
CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MQ29uc3Ry
dWN0aW9uU2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTmFtZXM6Omhhc0ltcGxpZWRF
bmRUYWcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydEhU
TUxIdG1sU3RhcnRUYWdJbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlv
blNpdGU6Omluc2VydENvbW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlv
blNpdGU6Omluc2VydENvbW1lbnRPbkhUTUxIdG1sRWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6YXR0YWNoVG9DdXJyZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRTY3JpcHRFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlSFRNTEVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6OmdlbmVyYXRlSW1wbGllZEVuZFRh
Z3NXaXRoRXhjbHVzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRl
OjpnZW5lcmF0ZUltcGxpZWRFbmRUYWdzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpmaW5kRm9zdGVyU2l0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3Ry
dWN0aW9uU2l0ZTo6c2hvdWxkRm9zdGVyUGFyZW50KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9I
VE1MQ29uc3RydWN0aW9uU2l0ZS5oOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxFbGVtZW50
U3RhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE5hbWVzOjppc051bWJlcmVkSGVhZGVy
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTmFtZXM6OmlzU2NvcGVNYXJrZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE5hbWVzOjppc0xpc3RJdGVtU2NvcGVNYXJrZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE5hbWVzOjppc1RhYmxlU2NvcGVNYXJrZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE5hbWVzOjppc1RhYmxlQm9keVNjb3BlTWFya2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxOYW1lczo6aXNUYWJsZVJvd1Njb3BlTWFya2VyKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxOYW1lczo6aXNCdXR0b25TY29wZU1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTmFtZXM6OmlzU2VsZWN0U2NvcGVNYXJrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVs
ZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZDo6RWxlbWVudFJlY29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkOjpyZXBsYWNlRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudFN0YWNrOjpIVE1MRWxlbWVudFN0YWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50U3RhY2s6OnNlY29uZEVsZW1lbnRJc0hUTUxCb2R5
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudFN0YWNrOjpwb3BBbGwpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6cG9wVW50aWxUYWJsZVNjb3BlTWFy
a2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50U3RhY2s6OnBvcFVudGlsVGFibGVC
b2R5U2NvcGVNYXJrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6cG9w
VW50aWxUYWJsZVJvd1Njb3BlTWFya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50
U3RhY2s6OnBvcFVudGlsRm9yZWlnbkNvbnRlbnRTY29wZU1hcmtlcik6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MRWxlbWVudFN0YWNrOjpwdXNoSFRNTEh0bWxFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxFbGVtZW50U3RhY2s6OnB1c2gpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVs
ZW1lbnRTdGFjazo6aW5zZXJ0QWJvdmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRT
dGFjazo6ZmluZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudFN0YWNrOjp0b3Btb3N0
KToKKyAgICAgICAgKFdlYkNvcmU6OmluU2NvcGVDb21tb24pOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEVsZW1lbnRTdGFjazo6aGFzTnVtYmVyZWRIZWFkZXJFbGVtZW50SW5TY29wZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudFN0YWNrOjpodG1sRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRWxlbWVudFN0YWNrOjpib2R5RWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRWxlbWVudFN0YWNrOjpwdXNoQ29tbW9uKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9I
VE1MRWxlbWVudFN0YWNrLmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudFN0YWNrOjpF
bGVtZW50UmVjb3JkOjplbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50U3Rh
Y2s6OnRvcCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dDo6Zmlu
aXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ2xvc2VX
aGVuTmVzdGVkVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c1N0YXJ0VGFnRm9ySW5Cb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0NvbGdyb3VwRW5kVGFnRm9ySW5Db2x1bW5Hcm91cCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NBbnlPdGhlckVuZFRhZ0ZvckluQm9keSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OmNhbGxUaGVBZG9wdGlvbkFnZW5jeSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJp
YXRlbHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFn
Rm9ySW5DZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZFRhZ0ZvckluQm9keSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NFbmRUYWcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5k
T2ZGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6ZmluaXNoZWQpOgor
ICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorCiAyMDExLTAzLTAyICBZ
dXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA4MTgyOGVhYzkyNTZjNjJj
NTZlYzk3NmJiYzY4YWQwY2ViMjM0ZWU3Li43NTFlN2U5MzYyMmM0OTA2NzIzMTM1OWQ0MmQzZTdh
OWZjZjc5NjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTQyNywxMSArNDI3LDYgQEAgaW5saW5l
IGJvb2wgTm9kZTo6aGFzVGFnTmFtZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAog
ewogICAgIHJldHVybiBpc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KHRoaXMpLT5oYXNUYWdO
YW1lKG5hbWUpOwogfQotICAgIAotaW5saW5lIGJvb2wgTm9kZTo6aGFzTG9jYWxOYW1lKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNFbGVtZW50Tm9kZSgp
ICYmIHRvRWxlbWVudCh0aGlzKS0+aGFzTG9jYWxOYW1lKG5hbWUpOwotfQogCiBpbmxpbmUgYm9v
bCBOb2RlOjpoYXNBdHRyaWJ1dGVzKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDAxY2FiN2Ew
MzcwNmIzZDAzNjRkMDRhNjRmYTA5OTcwODVkY2E2MWYuLjM1Y2U3MThjMGZkNTg1YzU2ZjAxMzkz
Y2JlZWE3ZGY1MzhjNmMyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHly
aWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChD
KSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChD
KSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0x
MzQsNyArMTM0LDYgQEAgcHVibGljOgogICAgIC8vIERPTSBtZXRob2RzICYgYXR0cmlidXRlcyBm
b3IgTm9kZQogCiAgICAgYm9vbCBoYXNUYWdOYW1lKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25z
dDsKLSAgICBib29sIGhhc0xvY2FsTmFtZShjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmlu
ZyBub2RlVmFsdWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9kZVZhbHVlKGNvbnN0
IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCA2NGQzMTllNGFkNWYyNzQ4MmI4
YzcwNmFhYWFmZTRhMDI3NzAzNTk4Li5hMDI2ZWY5MjhlMzNlMDFhYWVmYWJhOWFjYmU0NjAyZjY1
OTMwMDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3Ry
dWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0
cnVjdGlvblNpdGUuY3BwCkBAIC0xLDYgKzEsNSBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTU5LDE2ICs1OCwxNiBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
CiBuYW1lc3BhY2UgewogCi1ib29sIGhhc0ltcGxpZWRFbmRUYWcoQ29udGFpbmVyTm9kZSogbm9k
ZSkKK2Jvb2wgaGFzSW1wbGllZEVuZFRhZyhFbGVtZW50KiBlbGVtZW50KQogewotICAgIHJldHVy
biBub2RlLT5oYXNUYWdOYW1lKGRkVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKGR0
VGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKGxpVGFnKQotICAgICAgICB8fCBub2Rl
LT5oYXNUYWdOYW1lKG9wdGlvblRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShvcHRn
cm91cFRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShwVGFnKQotICAgICAgICB8fCBu
b2RlLT5oYXNUYWdOYW1lKHJwVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKHJ0VGFn
KTsKKyAgICByZXR1cm4gZWxlbWVudC0+aGFzVGFnTmFtZShkZFRhZykKKyAgICAgICAgfHwgZWxl
bWVudC0+aGFzVGFnTmFtZShkdFRhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShs
aVRhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShvcHRpb25UYWcpCisgICAgICAg
IHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0Z3JvdXBUYWcpCisgICAgICAgIHx8IGVsZW1lbnQt
Pmhhc1RhZ05hbWUocFRhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShycFRhZykK
KyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShydFRhZyk7CiB9CiAKIGJvb2wgY2F1c2Vz
Rm9zdGVyUGFyZW50aW5nKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCkBAIC0yMDUsMTIg
KzIwNCw2IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Om1lcmdlQXR0cmlidXRlc0Zyb21U
b2tlbkludG9FbGVtZW50KEF0b21pY0hUTUxUb2tlbiYKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNp
dGU6Omluc2VydEhUTUxIdG1sU3RhcnRUYWdJbkJvZHkoQXRvbWljSFRNTFRva2VuJiB0b2tlbikK
IHsKICAgICAvLyBGSVhNRTogcGFyc2UgZXJyb3IKLSAgICAKLSAgICAvLyBGcmFnbWVudHMgZG8g
bm90IGhhdmUgYSByb290IEhUTUwgZWxlbWVudCwgc28gYW55IGFkZGl0aW9uYWwgSFRNTCBlbGVt
ZW50cwotICAgIC8vIGVuY291bnRlcmVkIGR1cmluZyBmcmFnbWVudCBwYXJzaW5nIHNob3VsZCBi
ZSBpZ25vcmVkLgotICAgIGlmIChtX2lzUGFyc2luZ0ZyYWdtZW50KQotICAgICAgICByZXR1cm47
Ci0KICAgICBtZXJnZUF0dHJpYnV0ZXNGcm9tVG9rZW5JbnRvRWxlbWVudCh0b2tlbiwgbV9vcGVu
RWxlbWVudHMuaHRtbEVsZW1lbnQoKSk7CiB9CiAKQEAgLTI0Myw3ICsyMzYsNyBAQCB2b2lkIEhU
TUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnREb2N0eXBlKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4p
CiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KEF0b21pY0hUTUxUb2tl
biYgdG9rZW4pCiB7CiAgICAgQVNTRVJUKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW46OkNvbW1l
bnQpOwotICAgIGF0dGFjaChjdXJyZW50Tm9kZSgpLCBDb21tZW50OjpjcmVhdGUoY3VycmVudE5v
ZGUoKS0+ZG9jdW1lbnQoKSwgdG9rZW4uY29tbWVudCgpKSk7CisgICAgYXR0YWNoKGN1cnJlbnRF
bGVtZW50KCksIENvbW1lbnQ6OmNyZWF0ZShjdXJyZW50RWxlbWVudCgpLT5kb2N1bWVudCgpLCB0
b2tlbi5jb21tZW50KCkpKTsKIH0KIAogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0
Q29tbWVudE9uRG9jdW1lbnQoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKQEAgLTI1NSwxMyArMjQ4
LDEzIEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydENvbW1lbnRPbkRvY3VtZW50
KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNl
cnRDb21tZW50T25IVE1MSHRtbEVsZW1lbnQoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKIHsKICAg
ICBBU1NFUlQodG9rZW4udHlwZSgpID09IEhUTUxUb2tlbjo6Q29tbWVudCk7Ci0gICAgQ29udGFp
bmVyTm9kZSogcGFyZW50ID0gbV9vcGVuRWxlbWVudHMucm9vdE5vZGUoKTsKKyAgICBFbGVtZW50
KiBwYXJlbnQgPSBtX29wZW5FbGVtZW50cy5odG1sRWxlbWVudCgpOwogICAgIGF0dGFjaChwYXJl
bnQsIENvbW1lbnQ6OmNyZWF0ZShwYXJlbnQtPmRvY3VtZW50KCksIHRva2VuLmNvbW1lbnQoKSkp
OwogfQogCiBQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjphdHRhY2hU
b0N1cnJlbnQoUGFzc1JlZlB0cjxFbGVtZW50PiBjaGlsZCkKIHsKLSAgICByZXR1cm4gYXR0YWNo
KGN1cnJlbnROb2RlKCksIGNoaWxkKTsKKyAgICByZXR1cm4gYXR0YWNoKGN1cnJlbnRFbGVtZW50
KCksIGNoaWxkKTsKIH0KIAogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0SFRNTEhl
YWRFbGVtZW50KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCkBAIC0zMTcsNyArMzEwLDcgQEAgdm9p
ZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0Rm9ybWF0dGluZ0VsZW1lbnQoQXRvbWljSFRN
TFRva2VuJiB0b2tlbikKIAogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0U2NyaXB0
RWxlbWVudChBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogewotICAgIFJlZlB0cjxIVE1MU2NyaXB0
RWxlbWVudD4gZWxlbWVudCA9IEhUTUxTY3JpcHRFbGVtZW50OjpjcmVhdGUoc2NyaXB0VGFnLCBj
dXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLCB0cnVlKTsKKyAgICBSZWZQdHI8SFRNTFNjcmlwdEVs
ZW1lbnQ+IGVsZW1lbnQgPSBIVE1MU2NyaXB0RWxlbWVudDo6Y3JlYXRlKHNjcmlwdFRhZywgY3Vy
cmVudEVsZW1lbnQoKS0+ZG9jdW1lbnQoKSwgdHJ1ZSk7CiAgICAgaWYgKG1fZnJhZ21lbnRTY3Jp
cHRpbmdQZXJtaXNzaW9uID09IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCkKICAgICAgICAgZWxl
bWVudC0+c2V0QXR0cmlidXRlTWFwKHRva2VuLnRha2VBdHJpYnV0ZXMoKSwgbV9mcmFnbWVudFNj
cmlwdGluZ1Blcm1pc3Npb24pOwogICAgIG1fb3BlbkVsZW1lbnRzLnB1c2goYXR0YWNoVG9DdXJy
ZW50KGVsZW1lbnQucmVsZWFzZSgpKSk7CkBAIC0zMzYsNyArMzI5LDcgQEAgdm9pZCBIVE1MQ29u
c3RydWN0aW9uU2l0ZTo6aW5zZXJ0Rm9yZWlnbkVsZW1lbnQoQXRvbWljSFRNTFRva2VuJiB0b2tl
biwgY29uc3QgQXQKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKGNv
bnN0IFN0cmluZyYgY2hhcmFjdGVycykKIHsKICAgICBBdHRhY2htZW50U2l0ZSBzaXRlOwotICAg
IHNpdGUucGFyZW50ID0gY3VycmVudE5vZGUoKTsKKyAgICBzaXRlLnBhcmVudCA9IGN1cnJlbnRF
bGVtZW50KCk7CiAgICAgc2l0ZS5uZXh0Q2hpbGQgPSAwOwogICAgIGlmIChzaG91bGRGb3N0ZXJQ
YXJlbnQoKSkKICAgICAgICAgZmluZEZvc3RlclNpdGUoc2l0ZSk7CkBAIC0zNTYsNyArMzQ5LDcg
QEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0VGV4dE5vZGUoY29uc3QgU3RyaW5n
JiBjaGFyYWN0ZXJzKQogUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6
Y3JlYXRlRWxlbWVudChBdG9taWNIVE1MVG9rZW4mIHRva2VuLCBjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWVzcGFjZVVSSSkKIHsKICAgICBRdWFsaWZpZWROYW1lIHRhZ05hbWUobnVsbEF0b20sIHRv
a2VuLm5hbWUoKSwgbmFtZXNwYWNlVVJJKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9
IGN1cnJlbnROb2RlKCktPmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGFnTmFtZSwgdHJ1ZSk7
CisgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBjdXJyZW50RWxlbWVudCgpLT5kb2N1bWVu
dCgpLT5jcmVhdGVFbGVtZW50KHRhZ05hbWUsIHRydWUpOwogICAgIGVsZW1lbnQtPnNldEF0dHJp
YnV0ZU1hcCh0b2tlbi50YWtlQXRyaWJ1dGVzKCksIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNz
aW9uKTsKICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CiB9CkBAIC0zNjcsNyArMzYwLDcg
QEAgUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlSFRNTEVs
ZW1lbnQoQXRvbWljSFRNTFRva2VuJiB0b2sKICAgICAvLyBGSVhNRTogVGhpcyBjYW4ndCB1c2Ug
SFRNTENvbnN0cnVjdGlvblNpdGU6OmNyZWF0ZUVsZW1lbnQgYmVjYXVzZSB3ZQogICAgIC8vIGhh
dmUgdG8gcGFzcyB0aGUgY3VycmVudCBmb3JtIGVsZW1lbnQuICBXZSBzaG91bGQgcmV3b3JrIGZv
cm0gYXNzb2NpYXRpb24KICAgICAvLyB0byBvY2N1ciBhZnRlciBjb25zdHJ1Y3Rpb24gdG8gYWxs
b3cgYmV0dGVyIGNvZGUgc2hhcmluZyBoZXJlLgotICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50
ID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudCh0YWdOYW1lLCBjdXJyZW50
Tm9kZSgpLT5kb2N1bWVudCgpLCBmb3JtKCksIHRydWUpOworICAgIFJlZlB0cjxFbGVtZW50PiBl
bGVtZW50ID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudCh0YWdOYW1lLCBj
dXJyZW50RWxlbWVudCgpLT5kb2N1bWVudCgpLCBmb3JtKCksIHRydWUpOwogICAgIGVsZW1lbnQt
PnNldEF0dHJpYnV0ZU1hcCh0b2tlbi50YWtlQXRyaWJ1dGVzKCksIG1fZnJhZ21lbnRTY3JpcHRp
bmdQZXJtaXNzaW9uKTsKICAgICBBU1NFUlQoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKTsKICAg
ICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CkBAIC00NDYsMTMgKzQzOSwxMyBAQCB2b2lkIEhU
TUxDb25zdHJ1Y3Rpb25TaXRlOjpyZWNvbnN0cnVjdFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50
cygpCiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NX
aXRoRXhjbHVzaW9uKGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFtZSkKIHsKLSAgICB3aGlsZSAo
aGFzSW1wbGllZEVuZFRhZyhjdXJyZW50Tm9kZSgpKSAmJiAhY3VycmVudE5vZGUoKS0+aGFzTG9j
YWxOYW1lKHRhZ05hbWUpKQorICAgIHdoaWxlIChoYXNJbXBsaWVkRW5kVGFnKGN1cnJlbnRFbGVt
ZW50KCkpICYmICFjdXJyZW50RWxlbWVudCgpLT5oYXNMb2NhbE5hbWUodGFnTmFtZSkpCiAgICAg
ICAgIG1fb3BlbkVsZW1lbnRzLnBvcCgpOwogfQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRl
OjpnZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCkKIHsKLSAgICB3aGlsZSAoaGFzSW1wbGllZEVuZFRh
ZyhjdXJyZW50Tm9kZSgpKSkKKyAgICB3aGlsZSAoaGFzSW1wbGllZEVuZFRhZyhjdXJyZW50RWxl
bWVudCgpKSkKICAgICAgICAgbV9vcGVuRWxlbWVudHMucG9wKCk7CiB9CiAKQEAgLTQ3MSwxNCAr
NDY0LDEzIEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmZpbmRGb3N0ZXJTaXRlKEF0dGFj
aG1lbnRTaXRlJiBzaXRlKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIC8vIEZyYWdtZW50
IGNhc2UKLSAgICBzaXRlLnBhcmVudCA9IG1fb3BlbkVsZW1lbnRzLnJvb3ROb2RlKCk7IC8vIERv
Y3VtZW50RnJhZ21lbnQKKyAgICBzaXRlLnBhcmVudCA9IG1fb3BlbkVsZW1lbnRzLmJvdHRvbSgp
OyAvLyA8aHRtbD4gZWxlbWVudAogICAgIHNpdGUubmV4dENoaWxkID0gMDsKIH0KIAogYm9vbCBI
VE1MQ29uc3RydWN0aW9uU2l0ZTo6c2hvdWxkRm9zdGVyUGFyZW50KCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9yZWRpcmVjdEF0dGFjaFRvRm9zdGVyUGFyZW50Ci0gICAgICAgICYmIGN1cnJlbnRO
b2RlKCktPmlzRWxlbWVudE5vZGUoKQogICAgICAgICAmJiBjYXVzZXNGb3N0ZXJQYXJlbnRpbmco
Y3VycmVudEVsZW1lbnQoKS0+dGFnUU5hbWUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCmluZGV4IDM4MGU0ODc1ODgwMGJm
MWJjZTRlNmUyYTBmZGE1ZTVmOTAwMDFmNjkuLjAyOTg1MDM3YzAxZjBhYzY2NTM3ZTRiYTM4MmY2
OTg5ZTdlN2ViNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxD
b25zdHJ1Y3Rpb25TaXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuaApAQCAtMSw2ICsxLDUgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC04MSw3ICs4MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGdlbmVyYXRlSW1w
bGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFtZSk7CiAK
ICAgICBFbGVtZW50KiBjdXJyZW50RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbkVsZW1l
bnRzLnRvcCgpOyB9Ci0gICAgQ29udGFpbmVyTm9kZSogY3VycmVudE5vZGUoKSBjb25zdCB7IHJl
dHVybiBtX29wZW5FbGVtZW50cy50b3BOb2RlKCk7IH0KICAgICBFbGVtZW50KiBvbmVCZWxvd1Rv
cCgpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRzLm9uZUJlbG93VG9wKCk7IH0KIAogICAg
IEhUTUxFbGVtZW50U3RhY2sqIG9wZW5FbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuICZtX29wZW5F
bGVtZW50czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVs
ZW1lbnRTdGFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0
YWNrLmNwcAppbmRleCAwODIwMTI1YjdmMWVkMjI1MGZkZWE5ODQ5YTE2MzUzZjUzY2QyNmFhLi42
YWFiMGY3YzM3ZmJiZmM3M2ZlNGIyODY0ZTIwYmQ2MzFlZjljMjBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcApAQCAtMSw2ICsxLDUgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw3ICsyNiw2IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnRTdGFjay5oIgogCi0jaW5jbHVk
ZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJNYXRoTUxOYW1lcy5oIgpAQCAtNDksNTkgKzQ3LDUzIEBA
IGlubGluZSBib29sIGlzTnVtYmVyZWRIZWFkZXJFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCiAg
ICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoaDVUYWcpCiAgICAgICAgIHx8IGVsZW1lbnQt
Pmhhc1RhZ05hbWUoaDZUYWcpOwogfQotICAgIAotaW5saW5lIGJvb2wgaXNSb290Tm9kZShDb250
YWluZXJOb2RlKiBub2RlKQotewotICAgIHJldHVybiBub2RlLT5ub2RlVHlwZSgpID09IE5vZGU6
OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShodG1s
VGFnKTsKLX0KIAotaW5saW5lIGJvb2wgaXNTY29wZU1hcmtlcihDb250YWluZXJOb2RlKiBub2Rl
KQoraW5saW5lIGJvb2wgaXNTY29wZU1hcmtlcihFbGVtZW50KiBlbGVtZW50KQogewotICAgIHJl
dHVybiBub2RlLT5oYXNUYWdOYW1lKGFwcGxldFRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFn
TmFtZShjYXB0aW9uVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKG1hcnF1ZWVUYWcp
Ci0gICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUob2JqZWN0VGFnKQotICAgICAgICB8fCBub2Rl
LT5oYXNUYWdOYW1lKHRhYmxlVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKHRkVGFn
KQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKHRoVGFnKQotICAgICAgICB8fCBub2RlLT5o
YXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptaVRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFt
ZShNYXRoTUxOYW1lczo6bW9UYWcpCi0gICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoTWF0aE1M
TmFtZXM6Om1uVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjpt
c1RhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bXRleHRUYWcp
Ci0gICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6OmFubm90YXRpb25feG1s
VGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0
VGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpkZXNjVGFnKQotICAg
ICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZykKLSAgICAgICAgfHwg
aXNSb290Tm9kZShub2RlKTsKKyAgICByZXR1cm4gZWxlbWVudC0+aGFzVGFnTmFtZShhcHBsZXRU
YWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoY2FwdGlvblRhZykKKyAgICAgICAg
fHwgZWxlbWVudC0+aGFzVGFnTmFtZShodG1sVGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNU
YWdOYW1lKG1hcnF1ZWVUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUob2JqZWN0
VGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKHRhYmxlVGFnKQorICAgICAgICB8
fCBlbGVtZW50LT5oYXNUYWdOYW1lKHRkVGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdO
YW1lKHRoVGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjpt
aVRhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bW9UYWcp
CisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1uVGFnKQorICAg
ICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptc1RhZykKKyAgICAgICAg
fHwgZWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bXRleHRUYWcpCisgICAgICAgIHx8
IGVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6OmFubm90YXRpb25feG1sVGFnKQorICAg
ICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnKQor
ICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpkZXNjVGFnKQorICAgICAg
ICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZyk7CiB9CiAKLWlubGlu
ZSBib29sIGlzTGlzdEl0ZW1TY29wZU1hcmtlcihDb250YWluZXJOb2RlKiBub2RlKQoraW5saW5l
IGJvb2wgaXNMaXN0SXRlbVNjb3BlTWFya2VyKEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgcmV0
dXJuIGlzU2NvcGVNYXJrZXIobm9kZSkKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShvbFRh
ZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZSh1bFRhZyk7CisgICAgcmV0dXJuIGlzU2Nv
cGVNYXJrZXIoZWxlbWVudCkKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShvbFRhZykK
KyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZSh1bFRhZyk7CiB9CiAKLWlubGluZSBib29s
IGlzVGFibGVTY29wZU1hcmtlcihDb250YWluZXJOb2RlKiBub2RlKQoraW5saW5lIGJvb2wgaXNU
YWJsZVNjb3BlTWFya2VyKEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmhh
c1RhZ05hbWUodGFibGVUYWcpCi0gICAgICAgIHx8IGlzUm9vdE5vZGUobm9kZSk7CisgICAgcmV0
dXJuIGVsZW1lbnQtPmhhc1RhZ05hbWUodGFibGVUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhh
c1RhZ05hbWUoaHRtbFRhZyk7CiB9CiAKLWlubGluZSBib29sIGlzVGFibGVCb2R5U2NvcGVNYXJr
ZXIoQ29udGFpbmVyTm9kZSogbm9kZSkKK2lubGluZSBib29sIGlzVGFibGVCb2R5U2NvcGVNYXJr
ZXIoRWxlbWVudCogZWxlbWVudCkKIHsKLSAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZSh0Ym9k
eVRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZSh0Zm9vdFRhZykKLSAgICAgICAgfHwg
bm9kZS0+aGFzVGFnTmFtZSh0aGVhZFRhZykKLSAgICAgICAgfHwgaXNSb290Tm9kZShub2RlKTsK
KyAgICByZXR1cm4gZWxlbWVudC0+aGFzVGFnTmFtZSh0Ym9keVRhZykKKyAgICAgICAgfHwgZWxl
bWVudC0+aGFzVGFnTmFtZSh0Zm9vdFRhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFt
ZSh0aGVhZFRhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShodG1sVGFnKTsKIH0K
IAotaW5saW5lIGJvb2wgaXNUYWJsZVJvd1Njb3BlTWFya2VyKENvbnRhaW5lck5vZGUqIG5vZGUp
CitpbmxpbmUgYm9vbCBpc1RhYmxlUm93U2NvcGVNYXJrZXIoRWxlbWVudCogZWxlbWVudCkKIHsK
LSAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZSh0clRhZykKLSAgICAgICAgfHwgaXNSb290Tm9k
ZShub2RlKTsKKyAgICByZXR1cm4gZWxlbWVudC0+aGFzVGFnTmFtZSh0clRhZykKKyAgICAgICAg
fHwgZWxlbWVudC0+aGFzVGFnTmFtZShodG1sVGFnKTsKIH0KIAogaW5saW5lIGJvb2wgaXNGb3Jl
aWduQ29udGVudFNjb3BlTWFya2VyKEVsZW1lbnQqIGVsZW1lbnQpCkBAIC0xMTcsMjUgKzEwOSwy
NSBAQCBpbmxpbmUgYm9vbCBpc0ZvcmVpZ25Db250ZW50U2NvcGVNYXJrZXIoRWxlbWVudCogZWxl
bWVudCkKICAgICAgICAgfHwgZWxlbWVudC0+bmFtZXNwYWNlVVJJKCkgPT0gSFRNTE5hbWVzOjp4
aHRtbE5hbWVzcGFjZVVSSTsKIH0KIAotaW5saW5lIGJvb2wgaXNCdXR0b25TY29wZU1hcmtlcihD
b250YWluZXJOb2RlKiBub2RlKQoraW5saW5lIGJvb2wgaXNCdXR0b25TY29wZU1hcmtlcihFbGVt
ZW50KiBlbGVtZW50KQogewotICAgIHJldHVybiBpc1Njb3BlTWFya2VyKG5vZGUpCi0gICAgICAg
IHx8IG5vZGUtPmhhc1RhZ05hbWUoYnV0dG9uVGFnKTsKKyAgICByZXR1cm4gaXNTY29wZU1hcmtl
cihlbGVtZW50KQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGJ1dHRvblRhZyk7CiB9
CiAKLWlubGluZSBib29sIGlzU2VsZWN0U2NvcGVNYXJrZXIoQ29udGFpbmVyTm9kZSogbm9kZSkK
K2lubGluZSBib29sIGlzU2VsZWN0U2NvcGVNYXJrZXIoRWxlbWVudCogZWxlbWVudCkKIHsKLSAg
ICByZXR1cm4gIW5vZGUtPmhhc1RhZ05hbWUob3B0Z3JvdXBUYWcpCi0gICAgICAgICYmICFub2Rl
LT5oYXNUYWdOYW1lKG9wdGlvblRhZyk7CisgICAgcmV0dXJuICFlbGVtZW50LT5oYXNUYWdOYW1l
KG9wdGdyb3VwVGFnKQorICAgICAgICAmJiAhZWxlbWVudC0+aGFzVGFnTmFtZShvcHRpb25UYWcp
OwogfQogCiB9CiAKLUhUTUxFbGVtZW50U3RhY2s6OkVsZW1lbnRSZWNvcmQ6OkVsZW1lbnRSZWNv
cmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBub2RlLCBQYXNzT3duUHRyPEVsZW1lbnRSZWNv
cmQ+IG5leHQpCi0gICAgOiBtX25vZGUobm9kZSkKK0hUTUxFbGVtZW50U3RhY2s6OkVsZW1lbnRS
ZWNvcmQ6OkVsZW1lbnRSZWNvcmQoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBQYXNzT3du
UHRyPEVsZW1lbnRSZWNvcmQ+IG5leHQpCisgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKICAgICAs
IG1fbmV4dChuZXh0KQogewotICAgIEFTU0VSVChtX25vZGUpOworICAgIEFTU0VSVChtX2VsZW1l
bnQpOwogfQogCiBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkOjp+RWxlbWVudFJlY29y
ZCgpCkBAIC0xNDUsOSArMTM3LDggQEAgSFRNTEVsZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZDo6
fkVsZW1lbnRSZWNvcmQoKQogdm9pZCBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkOjpy
ZXBsYWNlRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQpCiB7CiAgICAgQVNTRVJU
KGVsZW1lbnQpOwotICAgIEFTU0VSVCghbV9ub2RlIHx8IG1fbm9kZS0+aXNFbGVtZW50Tm9kZSgp
KTsKICAgICAvLyBGSVhNRTogU2hvdWxkIHRoaXMgY2FsbCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4/
Ci0gICAgbV9ub2RlID0gZWxlbWVudDsKKyAgICBtX2VsZW1lbnQgPSBlbGVtZW50OwogfQogCiBi
b29sIEhUTUxFbGVtZW50U3RhY2s6OkVsZW1lbnRSZWNvcmQ6OmlzQWJvdmUoRWxlbWVudFJlY29y
ZCogb3RoZXIpIGNvbnN0CkBAIC0xNjAsNyArMTUxLDcgQEAgYm9vbCBIVE1MRWxlbWVudFN0YWNr
OjpFbGVtZW50UmVjb3JkOjppc0Fib3ZlKEVsZW1lbnRSZWNvcmQqIG90aGVyKSBjb25zdAogfQog
CiBIVE1MRWxlbWVudFN0YWNrOjpIVE1MRWxlbWVudFN0YWNrKCkKLSAgICA6IG1fcm9vdE5vZGUo
MCkKKyAgICA6IG1faHRtbEVsZW1lbnQoMCkKICAgICAsIG1faGVhZEVsZW1lbnQoMCkKICAgICAs
IG1fYm9keUVsZW1lbnQoMCkKIHsKQEAgLTE4MCw3ICsxNzEsNyBAQCBib29sIEhUTUxFbGVtZW50
U3RhY2s6OnNlY29uZEVsZW1lbnRJc0hUTUxCb2R5RWxlbWVudCgpIGNvbnN0CiAgICAgLy8gVGhp
cyBpcyB1c2VkIHRoZSBmcmFnbWVudCBjYXNlIG9mIDxib2R5PiBhbmQgPGZyYW1lc2V0PiBpbiB0
aGUgImluIGJvZHkiCiAgICAgLy8gaW5zZXJ0aW9uIG1vZGUuCiAgICAgLy8gaHR0cDovL3d3dy53
aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdG9rZW5pemF0
aW9uLmh0bWwjcGFyc2luZy1tYWluLWluYm9keQotICAgIEFTU0VSVChtX3Jvb3ROb2RlKTsKKyAg
ICBBU1NFUlQobV9odG1sRWxlbWVudCk7CiAgICAgLy8gSWYgd2UgaGF2ZSBhIGJvZHkgZWxlbWVu
dCwgaXQgbXVzdCBhbHdheXMgYmUgdGhlIHNlY29uZCBlbGVtZW50IG9uIHRoZQogICAgIC8vIHN0
YWNrLCBhcyB3ZSBhbHdheXMgc3RhcnQgd2l0aCBhbiBodG1sIGVsZW1lbnQsIGFuZCBhbnkgb3Ro
ZXIgZWxlbWVudAogICAgIC8vIHdvdWxkIGNhdXNlIHRoZSBpbXBsaWNpdCBjcmVhdGlvbiBvZiBh
IGJvZHkgZWxlbWVudC4KQEAgLTIwMywxMSArMTk0LDExIEBAIHZvaWQgSFRNTEVsZW1lbnRTdGFj
azo6cG9wSFRNTEJvZHlFbGVtZW50KCkKIAogdm9pZCBIVE1MRWxlbWVudFN0YWNrOjpwb3BBbGwo
KQogewotICAgIG1fcm9vdE5vZGUgPSAwOworICAgIG1faHRtbEVsZW1lbnQgPSAwOwogICAgIG1f
aGVhZEVsZW1lbnQgPSAwOwogICAgIG1fYm9keUVsZW1lbnQgPSAwOwogICAgIHdoaWxlIChtX3Rv
cCkgewotICAgICAgICB0b3BOb2RlKCktPmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOworICAgICAg
ICB0b3AoKS0+ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCk7CiAgICAgICAgIG1fdG9wID0gbV90b3At
PnJlbGVhc2VOZXh0KCk7CiAgICAgfQogfQpAQCAtMjU1LDIxICsyNDYsMjEgQEAgdm9pZCBIVE1M
RWxlbWVudFN0YWNrOjpwb3BVbnRpbFBvcHBlZChFbGVtZW50KiBlbGVtZW50KQogdm9pZCBIVE1M
RWxlbWVudFN0YWNrOjpwb3BVbnRpbFRhYmxlU2NvcGVNYXJrZXIoKQogewogICAgIC8vIGh0dHA6
Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3Rv
a2VuaXphdGlvbi5odG1sI2NsZWFyLXRoZS1zdGFjay1iYWNrLXRvLWEtdGFibGUtY29udGV4dAot
ICAgIHdoaWxlICghaXNUYWJsZVNjb3BlTWFya2VyKHRvcE5vZGUoKSkpCisgICAgd2hpbGUgKCFp
c1RhYmxlU2NvcGVNYXJrZXIodG9wKCkpKQogICAgICAgICBwb3AoKTsKIH0KIAogdm9pZCBIVE1M
RWxlbWVudFN0YWNrOjpwb3BVbnRpbFRhYmxlQm9keVNjb3BlTWFya2VyKCkKIHsKICAgICAvLyBo
dHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFn
ZS90b2tlbml6YXRpb24uaHRtbCNjbGVhci10aGUtc3RhY2stYmFjay10by1hLXRhYmxlLWJvZHkt
Y29udGV4dAotICAgIHdoaWxlICghaXNUYWJsZUJvZHlTY29wZU1hcmtlcih0b3BOb2RlKCkpKQor
ICAgIHdoaWxlICghaXNUYWJsZUJvZHlTY29wZU1hcmtlcih0b3AoKSkpCiAgICAgICAgIHBvcCgp
OwogfQogCiB2b2lkIEhUTUxFbGVtZW50U3RhY2s6OnBvcFVudGlsVGFibGVSb3dTY29wZU1hcmtl
cigpCiB7CiAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJl
bnQtd29yay9tdWx0aXBhZ2UvdG9rZW5pemF0aW9uLmh0bWwjY2xlYXItdGhlLXN0YWNrLWJhY2st
dG8tYS10YWJsZS1yb3ctY29udGV4dAotICAgIHdoaWxlICghaXNUYWJsZVJvd1Njb3BlTWFya2Vy
KHRvcE5vZGUoKSkpCisgICAgd2hpbGUgKCFpc1RhYmxlUm93U2NvcGVNYXJrZXIodG9wKCkpKQog
ICAgICAgICBwb3AoKTsKIH0KIApAQCAtMjc4LDI1ICsyNjksMTQgQEAgdm9pZCBIVE1MRWxlbWVu
dFN0YWNrOjpwb3BVbnRpbEZvcmVpZ25Db250ZW50U2NvcGVNYXJrZXIoKQogICAgIHdoaWxlICgh
aXNGb3JlaWduQ29udGVudFNjb3BlTWFya2VyKHRvcCgpKSkKICAgICAgICAgcG9wKCk7CiB9Ci0g
ICAgCi12b2lkIEhUTUxFbGVtZW50U3RhY2s6OnB1c2hSb290Tm9kZShQYXNzUmVmUHRyPENvbnRh
aW5lck5vZGU+IHJvb3ROb2RlKQotewotICAgIEFTU0VSVChyb290Tm9kZS0+bm9kZVR5cGUoKSA9
PSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFKTsKLSAgICBwdXNoUm9vdE5vZGVDb21tb24o
cm9vdE5vZGUpOwotfQogCiB2b2lkIEhUTUxFbGVtZW50U3RhY2s6OnB1c2hIVE1MSHRtbEVsZW1l
bnQoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50KQogeworICAgIEFTU0VSVCghbV90b3ApOyAv
LyA8aHRtbD4gc2hvdWxkIGFsd2F5cyBiZSB0aGUgYm90dG9tIG9mIHRoZSBzdGFjay4KICAgICBB
U1NFUlQoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Omh0bWxUYWcpKTsKLSAgICBwdXNo
Um9vdE5vZGVDb21tb24oZWxlbWVudCk7Ci19Ci0gICAgCi12b2lkIEhUTUxFbGVtZW50U3RhY2s6
OnB1c2hSb290Tm9kZUNvbW1vbihQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHJvb3ROb2RlKQot
ewotICAgIEFTU0VSVCghbV90b3ApOwotICAgIEFTU0VSVCghbV9yb290Tm9kZSk7Ci0gICAgbV9y
b290Tm9kZSA9IHJvb3ROb2RlLmdldCgpOwotICAgIHB1c2hDb21tb24ocm9vdE5vZGUpOworICAg
IEFTU0VSVCghbV9odG1sRWxlbWVudCk7CisgICAgbV9odG1sRWxlbWVudCA9IGVsZW1lbnQuZ2V0
KCk7CisgICAgcHVzaENvbW1vbihlbGVtZW50KTsKIH0KIAogdm9pZCBIVE1MRWxlbWVudFN0YWNr
OjpwdXNoSFRNTEhlYWRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKQEAgLTMy
MCw3ICszMDAsNyBAQCB2b2lkIEhUTUxFbGVtZW50U3RhY2s6OnB1c2goUGFzc1JlZlB0cjxFbGVt
ZW50PiBlbGVtZW50KQogICAgIEFTU0VSVCghZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6
Omh0bWxUYWcpKTsKICAgICBBU1NFUlQoIWVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpo
ZWFkVGFnKSk7CiAgICAgQVNTRVJUKCFlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6Ym9k
eVRhZykpOwotICAgIEFTU0VSVChtX3Jvb3ROb2RlKTsKKyAgICBBU1NFUlQobV9odG1sRWxlbWVu
dCk7CiAgICAgcHVzaENvbW1vbihlbGVtZW50KTsKIH0KIApAQCAtMzMyLDcgKzMxMiw3IEBAIHZv
aWQgSFRNTEVsZW1lbnRTdGFjazo6aW5zZXJ0QWJvdmUoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVt
ZW50LCBFbGVtZW50UmVjb3JkKiByCiAgICAgQVNTRVJUKCFlbGVtZW50LT5oYXNUYWdOYW1lKEhU
TUxOYW1lczo6aHRtbFRhZykpOwogICAgIEFTU0VSVCghZWxlbWVudC0+aGFzVGFnTmFtZShIVE1M
TmFtZXM6OmhlYWRUYWcpKTsKICAgICBBU1NFUlQoIWVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5h
bWVzOjpib2R5VGFnKSk7Ci0gICAgQVNTRVJUKG1fcm9vdE5vZGUpOworICAgIEFTU0VSVChtX2h0
bWxFbGVtZW50KTsKICAgICBpZiAocmVjb3JkQmVsb3cgPT0gbV90b3ApIHsKICAgICAgICAgcHVz
aChlbGVtZW50KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzkyLDcgKzM3Miw3IEBAIHZvaWQgSFRN
TEVsZW1lbnRTdGFjazo6cmVtb3ZlKEVsZW1lbnQqIGVsZW1lbnQpCiBIVE1MRWxlbWVudFN0YWNr
OjpFbGVtZW50UmVjb3JkKiBIVE1MRWxlbWVudFN0YWNrOjpmaW5kKEVsZW1lbnQqIGVsZW1lbnQp
IGNvbnN0CiB7CiAgICAgZm9yIChFbGVtZW50UmVjb3JkKiBwb3MgPSBtX3RvcC5nZXQoKTsgcG9z
OyBwb3MgPSBwb3MtPm5leHQoKSkgewotICAgICAgICBpZiAocG9zLT5ub2RlKCkgPT0gZWxlbWVu
dCkKKyAgICAgICAgaWYgKHBvcy0+ZWxlbWVudCgpID09IGVsZW1lbnQpCiAgICAgICAgICAgICBy
ZXR1cm4gcG9zOwogICAgIH0KICAgICByZXR1cm4gMDsKQEAgLTQwMSw3ICszODEsNyBAQCBIVE1M
RWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBIVE1MRWxlbWVudFN0YWNrOjpmaW5kKEVsZW1l
bnQqIGVsZW1lbnQpIGNvbnN0CiBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBIVE1M
RWxlbWVudFN0YWNrOjp0b3Btb3N0KGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFtZSkgY29uc3QK
IHsKICAgICBmb3IgKEVsZW1lbnRSZWNvcmQqIHBvcyA9IG1fdG9wLmdldCgpOyBwb3M7IHBvcyA9
IHBvcy0+bmV4dCgpKSB7Ci0gICAgICAgIGlmIChwb3MtPm5vZGUoKS0+aGFzTG9jYWxOYW1lKHRh
Z05hbWUpKQorICAgICAgICBpZiAocG9zLT5lbGVtZW50KCktPmhhc0xvY2FsTmFtZSh0YWdOYW1l
KSkKICAgICAgICAgICAgIHJldHVybiBwb3M7CiAgICAgfQogICAgIHJldHVybiAwOwpAQCAtNDE3
LDE0ICszOTcsMTQgQEAgYm9vbCBIVE1MRWxlbWVudFN0YWNrOjpjb250YWlucyhjb25zdCBBdG9t
aWNTdHJpbmcmIHRhZ05hbWUpIGNvbnN0CiAgICAgcmV0dXJuICEhdG9wbW9zdCh0YWdOYW1lKTsK
IH0KIAotdGVtcGxhdGUgPGJvb2wgaXNNYXJrZXIoQ29udGFpbmVyTm9kZSopPgordGVtcGxhdGUg
PGJvb2wgaXNNYXJrZXIoRWxlbWVudCopPgogYm9vbCBpblNjb3BlQ29tbW9uKEhUTUxFbGVtZW50
U3RhY2s6OkVsZW1lbnRSZWNvcmQqIHRvcCwgY29uc3QgQXRvbWljU3RyaW5nJiB0YXJnZXRUYWcp
CiB7CiAgICAgZm9yIChIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBwb3MgPSB0b3A7
IHBvczsgcG9zID0gcG9zLT5uZXh0KCkpIHsKLSAgICAgICAgQ29udGFpbmVyTm9kZSogbm9kZSA9
IHBvcy0+bm9kZSgpOwotICAgICAgICBpZiAobm9kZS0+aGFzTG9jYWxOYW1lKHRhcmdldFRhZykp
CisgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBwb3MtPmVsZW1lbnQoKTsKKyAgICAgICAgaWYg
KGVsZW1lbnQtPmhhc0xvY2FsTmFtZSh0YXJnZXRUYWcpKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIGlmIChpc01hcmtlcihub2RlKSkKKyAgICAgICAgaWYgKGlzTWFya2VyKGVs
ZW1lbnQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsgLy8gPGh0bWw+IGlzIGFsd2F5cyBvbiB0aGUgc3RhY2sgYW5kIGlzIGEgc2Nv
cGUgbWFya2VyLgpAQCAtNDQ3LDEwICs0MjcsMTEgQEAgYm9vbCBIVE1MRWxlbWVudFN0YWNrOjpo
YXNPbmx5SFRNTEVsZW1lbnRzSW5TY29wZSgpIGNvbnN0CiBib29sIEhUTUxFbGVtZW50U3RhY2s6
Omhhc051bWJlcmVkSGVhZGVyRWxlbWVudEluU2NvcGUoKSBjb25zdAogewogICAgIGZvciAoRWxl
bWVudFJlY29yZCogcmVjb3JkID0gbV90b3AuZ2V0KCk7IHJlY29yZDsgcmVjb3JkID0gcmVjb3Jk
LT5uZXh0KCkpIHsKLSAgICAgICAgaWYgKGlzU2NvcGVNYXJrZXIocmVjb3JkLT5ub2RlKCkpKQot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoaXNOdW1iZXJlZEhlYWRlckVs
ZW1lbnQocmVjb3JkLT5lbGVtZW50KCkpKQorICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0gcmVj
b3JkLT5lbGVtZW50KCk7CisgICAgICAgIGlmIChpc051bWJlcmVkSGVhZGVyRWxlbWVudChlbGVt
ZW50KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoaXNTY29wZU1hcmtl
cihlbGVtZW50KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IC8vIDxodG1sPiBpcyBhbHdheXMgb24gdGhlIHN0YWNrIGFuZCBpcyBh
IHNjb3BlIG1hcmtlci4KICAgICByZXR1cm4gZmFsc2U7CkBAIC01MjYsOCArNTA3LDggQEAgYm9v
bCBIVE1MRWxlbWVudFN0YWNrOjppblNlbGVjdFNjb3BlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUpIGNvbnN0CiAKIEVsZW1lbnQqIEhUTUxFbGVtZW50U3RhY2s6Omh0bWxFbGVtZW50KCkg
Y29uc3QKIHsKLSAgICBBU1NFUlQobV9yb290Tm9kZSk7Ci0gICAgcmV0dXJuIHRvRWxlbWVudCht
X3Jvb3ROb2RlKTsKKyAgICBBU1NFUlQobV9odG1sRWxlbWVudCk7CisgICAgcmV0dXJuIG1faHRt
bEVsZW1lbnQ7CiB9CiAKIEVsZW1lbnQqIEhUTUxFbGVtZW50U3RhY2s6OmhlYWRFbGVtZW50KCkg
Y29uc3QKQEAgLTU0MSwxOCArNTIyLDEyIEBAIEVsZW1lbnQqIEhUTUxFbGVtZW50U3RhY2s6OmJv
ZHlFbGVtZW50KCkgY29uc3QKICAgICBBU1NFUlQobV9ib2R5RWxlbWVudCk7CiAgICAgcmV0dXJu
IG1fYm9keUVsZW1lbnQ7CiB9Ci0gICAgCi1Db250YWluZXJOb2RlKiBIVE1MRWxlbWVudFN0YWNr
Ojpyb290Tm9kZSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fcm9vdE5vZGUpOwotICAgIHJldHVy
biBtX3Jvb3ROb2RlOwotfQogCi12b2lkIEhUTUxFbGVtZW50U3RhY2s6OnB1c2hDb21tb24oUGFz
c1JlZlB0cjxDb250YWluZXJOb2RlPiBub2RlKQordm9pZCBIVE1MRWxlbWVudFN0YWNrOjpwdXNo
Q29tbW9uKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKIHsKLSAgICBBU1NFUlQobV9yb290
Tm9kZSk7Ci0gICAgbV90b3AgPSBhZG9wdFB0cihuZXcgRWxlbWVudFJlY29yZChub2RlLCBtX3Rv
cC5yZWxlYXNlKCkpKTsKLSAgICB0b3BOb2RlKCktPmJlZ2luUGFyc2luZ0NoaWxkcmVuKCk7Cisg
ICAgQVNTRVJUKG1faHRtbEVsZW1lbnQpOworICAgIG1fdG9wID0gYWRvcHRQdHIobmV3IEVsZW1l
bnRSZWNvcmQoZWxlbWVudCwgbV90b3AucmVsZWFzZSgpKSk7CisgICAgdG9wKCktPmJlZ2luUGFy
c2luZ0NoaWxkcmVuKCk7CiB9CiAKIHZvaWQgSFRNTEVsZW1lbnRTdGFjazo6cG9wQ29tbW9uKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2su
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaAppbmRleCBh
NzEwOTMyMzg1NTJiY2UwZTdlNmRmZjFiYmNiOGZiMmYwYzlmZDE1Li5hZDhiOTQxOTRjZjA1YzM2
ZDU1MTIzYWE3Mzg1MWRiMDQxYWYyMTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTEVsZW1lbnRTdGFjay5oCkBAIC0xLDYgKzEsNSBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDcgKzI2LDYgQEAKICNpZm5kZWYgSFRNTEVsZW1lbnRTdGFj
a19oCiAjZGVmaW5lIEhUTUxFbGVtZW50U3RhY2tfaAogCi0jaW5jbHVkZSAiRWxlbWVudC5oIgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMzYsOCArMzQsNiBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIENvbnRhaW5lck5vZGU7Ci1jbGFzcyBEb2N1bWVudEZyYWdtZW50Owog
Y2xhc3MgRWxlbWVudDsKIGNsYXNzIFF1YWxpZmllZE5hbWU7CiAKQEAgLTU0LDggKzUwLDcgQEAg
cHVibGljOgogICAgIHB1YmxpYzoKICAgICAgICAgfkVsZW1lbnRSZWNvcmQoKTsgLy8gUHVibGlj
IGZvciB+UGFzc093blB0cigpCiAgICAgCi0gICAgICAgIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25z
dCB7IHJldHVybiB0b0VsZW1lbnQobV9ub2RlLmdldCgpKTsgfQotICAgICAgICBDb250YWluZXJO
b2RlKiBub2RlKCkgY29uc3QgeyByZXR1cm4gbV9ub2RlLmdldCgpOyB9CisgICAgICAgIEVsZW1l
bnQqIGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KICAgICAgICAg
dm9pZCByZXBsYWNlRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKIAogICAgICAgICBib29s
IGlzQWJvdmUoRWxlbWVudFJlY29yZCopIGNvbnN0OwpAQCAtNjUsMTIgKzYwLDEyIEBAIHB1Ymxp
YzoKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgSFRNTEVsZW1lbnRTdGFjazsK
IAotICAgICAgICBFbGVtZW50UmVjb3JkKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4sIFBhc3NP
d25QdHI8RWxlbWVudFJlY29yZD4pOworICAgICAgICBFbGVtZW50UmVjb3JkKFBhc3NSZWZQdHI8
RWxlbWVudD4sIFBhc3NPd25QdHI8RWxlbWVudFJlY29yZD4pOwogCiAgICAgICAgIFBhc3NPd25Q
dHI8RWxlbWVudFJlY29yZD4gcmVsZWFzZU5leHQoKSB7IHJldHVybiBtX25leHQucmVsZWFzZSgp
OyB9CiAgICAgICAgIHZvaWQgc2V0TmV4dChQYXNzT3duUHRyPEVsZW1lbnRSZWNvcmQ+IG5leHQp
IHsgbV9uZXh0ID0gbmV4dDsgfQogCi0gICAgICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX25v
ZGU7CisgICAgICAgIFJlZlB0cjxFbGVtZW50PiBtX2VsZW1lbnQ7CiAgICAgICAgIE93blB0cjxF
bGVtZW50UmVjb3JkPiBtX25leHQ7CiAgICAgfTsKIApAQCAtODEsMTIgKzc2LDYgQEAgcHVibGlj
OgogICAgICAgICBBU1NFUlQobV90b3AtPmVsZW1lbnQoKSk7CiAgICAgICAgIHJldHVybiBtX3Rv
cC0+ZWxlbWVudCgpOwogICAgIH0KLSAgICAKLSAgICBDb250YWluZXJOb2RlKiB0b3BOb2RlKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3RvcC0+bm9kZSgpKTsKLSAgICAgICAgcmV0
dXJuIG1fdG9wLT5ub2RlKCk7Ci0gICAgfQogCiAgICAgRWxlbWVudCogb25lQmVsb3dUb3AoKSBj
b25zdDsKICAgICBFbGVtZW50UmVjb3JkKiB0b3BSZWNvcmQoKSBjb25zdDsKQEAgLTk3LDcgKzg2
LDYgQEAgcHVibGljOgogICAgIHZvaWQgaW5zZXJ0QWJvdmUoUGFzc1JlZlB0cjxFbGVtZW50Piwg
RWxlbWVudFJlY29yZCopOwogCiAgICAgdm9pZCBwdXNoKFBhc3NSZWZQdHI8RWxlbWVudD4pOwot
ICAgIHZvaWQgcHVzaFJvb3ROb2RlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4pOwogICAgIHZv
aWQgcHVzaEhUTUxIdG1sRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2b2lkIHB1
c2hIVE1MSGVhZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCBwdXNoSFRN
TEJvZHlFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4pOwpAQCAtMTQzLDI3ICsxMzEsMjQgQEAg
cHVibGljOgogICAgIEVsZW1lbnQqIGh0bWxFbGVtZW50KCkgY29uc3Q7CiAgICAgRWxlbWVudCog
aGVhZEVsZW1lbnQoKSBjb25zdDsKICAgICBFbGVtZW50KiBib2R5RWxlbWVudCgpIGNvbnN0Owot
ICAgIAotICAgIENvbnRhaW5lck5vZGUqIHJvb3ROb2RlKCkgY29uc3Q7CiAKICNpZm5kZWYgTkRF
QlVHCiAgICAgdm9pZCBzaG93KCk7CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2b2lkIHB1c2hD
b21tb24oUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPik7Ci0gICAgdm9pZCBwdXNoUm9vdE5vZGVD
b21tb24oUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPik7CisgICAgdm9pZCBwdXNoQ29tbW9uKFBh
c3NSZWZQdHI8RWxlbWVudD4pOwogICAgIHZvaWQgcG9wQ29tbW9uKCk7CiAgICAgdm9pZCByZW1v
dmVOb25Ub3BDb21tb24oRWxlbWVudCopOwogCiAgICAgT3duUHRyPEVsZW1lbnRSZWNvcmQ+IG1f
dG9wOwogCi0gICAgLy8gV2UgcmVtZW1iZXIgdGhlIHJvb3Qgbm9kZSwgPGhlYWQ+IGFuZCA8Ym9k
eT4gYXMgdGhleSBhcmUgcHVzaGVkLiBUaGVpcgotICAgIC8vIEVsZW1lbnRSZWNvcmRzIGtlZXAg
dGhlbSBhbGl2ZS4gVGhlIHJvb3Qgbm9kZSBpcyBuZXZlciBwb3BwZWQuCisgICAgLy8gV2UgcmVt
ZW1iZXIgPGh0bWw+LCA8aGVhZD4gYW5kIDxib2R5PiBhcyB0aGV5IGFyZSBwdXNoZWQuICBUaGVp
cgorICAgIC8vIEVsZW1lbnRSZWNvcmRzIGtlZXAgdGhlbSBhbGl2ZS4gIDxodG1sPiBpcyBuZXZl
ciBwb3BwZWQuCiAgICAgLy8gRklYTUU6IFdlIGRvbid0IGN1cnJlbnRseSByZXF1aXJlIHR5cGUt
c3BlY2lmaWMgaW5mb3JtYXRpb24gYWJvdXQKICAgICAvLyB0aGVzZSBlbGVtZW50cyBzbyB3ZSBo
YXZlbid0IHlldCBib3RoZXJlZCB0byBwbHVtYiB0aGUgdHlwZXMgYWxsIHRoZQogICAgIC8vIHdh
eSBkb3duIHRocm91Z2ggY3JlYXRlRWxlbWVudCwgZXRjLgotICAgIENvbnRhaW5lck5vZGUqIG1f
cm9vdE5vZGU7CisgICAgRWxlbWVudCogbV9odG1sRWxlbWVudDsKICAgICBFbGVtZW50KiBtX2hl
YWRFbGVtZW50OwogICAgIEVsZW1lbnQqIG1fYm9keUVsZW1lbnQ7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggNjcyOTc5ZDhlOTM3
NTY4NDU3Nzg3ZTMwMzU5MzYxYzFkZDk4YTAxZC4uZjBiMTk2YWI5MmZiZGU5ZjE5N2NlYmU5NDgx
ODdmMTg2YzhmZDIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuY3BwCkBAIC0xLDYgKzEsNSBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTEyMyw4ICsxMjIsNiBAQCBib29sIGlzU3BlY2lhbE5vZGUoTm9kZSogbm9kZSkK
ICAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZGVzY1RhZykKICAgICAgICAg
fHwgbm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6dGl0bGVUYWcpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICBpZiAobm9kZS0+bm9kZVR5cGUoKSA9PSBOb2RlOjpET0NVTUVOVF9GUkFHTUVO
VF9OT0RFKQotICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAobm9kZS0+bmFtZXNwYWNlVVJJ
KCkgIT0geGh0bWxOYW1lc3BhY2VVUkkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIHRhZ05hbWUgPSBub2RlLT5sb2NhbE5hbWUoKTsKQEAgLTM3OCw5ICsz
NzUsNyBAQCBIVE1MVHJlZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcihIVE1MRG9jdW1lbnRQYXJz
ZXIqIHBhcnNlciwgRG9jdW1lbnRGcmFnbWVudCogZgogICAgIGlmIChjb250ZXh0RWxlbWVudCkg
ewogICAgICAgICAvLyBTdGVwcyA0LjItNC42IG9mIHRoZSBIVE1MNSBGcmFnbWVudCBDYXNlIHBh
cnNpbmcgYWxnb3JpdGhtOgogICAgICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mv
d2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90aGUtZW5kLmh0bWwjZnJhZ21lbnQtY2Fz
ZQotICAgICAgICAvLyBGb3IgZWZmaWNpZW5jeSwgd2Ugc2tpcCBzdGVwIDQuMiAoIkxldCByb290
IGJlIGEgbmV3IGh0bWwgZWxlbWVudCB3aXRoIG5vIGF0dHJpYnV0ZXMiKQotICAgICAgICAvLyBh
bmQgaW5zdGVhZCB1c2UgdGhlIERvY3VtZW50RnJhZ21lbnQgYXMgYSByb290IG5vZGUuCi0gICAg
ICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cHVzaFJvb3ROb2RlKGZyYWdtZW50KTsKKyAgICAg
ICAgcHJvY2Vzc0Zha2VTdGFydFRhZyhodG1sVGFnKTsKICAgICAgICAgcmVzZXRJbnNlcnRpb25N
b2RlQXBwcm9wcmlhdGVseSgpOwogICAgICAgICBtX3RyZWUuc2V0Rm9ybShjbG9zZXN0Rm9ybUFu
Y2VzdG9yKGNvbnRleHRFbGVtZW50KSk7CiAgICAgfQpAQCAtNDE1LDYgKzQxMCwxOSBAQCBIVE1M
VHJlZUJ1aWxkZXI6OkZyYWdtZW50UGFyc2luZ0NvbnRleHQ6OkZyYWdtZW50UGFyc2luZ0NvbnRl
eHQoRG9jdW1lbnRGcmFnbWVudAogICAgIEFTU0VSVCghZnJhZ21lbnQtPmhhc0NoaWxkTm9kZXMo
KSk7CiB9CiAKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpGcmFnbWVudFBhcnNpbmdDb250ZXh0Ojpm
aW5pc2hlZCgpCit7CisgICAgaWYgKCFtX2NvbnRleHRFbGVtZW50KQorICAgICAgICByZXR1cm47
CisgICAgCisgICAgLy8gVGhlIEhUTUw1IHNwZWMgc2F5cyB0byByZXR1cm4gdGhlIGNoaWxkcmVu
IG9mIHRoZSBmcmFnbWVudCdzIGRvY3VtZW50CisgICAgLy8gZWxlbWVudCB3aGVuIHRoZXJlIGlz
IGEgY29udGV4dCBlbGVtZW50ICgxMC40LjcpLgorICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBk
b2N1bWVudEVsZW1lbnQgPSBmaXJzdEVsZW1lbnRDaGlsZChtX2ZyYWdtZW50KTsKKyAgICBtX2Zy
YWdtZW50LT5yZW1vdmVDaGlsZHJlbigpOworICAgIEFTU0VSVChkb2N1bWVudEVsZW1lbnQpOwor
ICAgIG1fZnJhZ21lbnQtPnRha2VBbGxDaGlsZHJlbkZyb20oZG9jdW1lbnRFbGVtZW50LmdldCgp
KTsKK30KKwogSFRNTFRyZWVCdWlsZGVyOjpGcmFnbWVudFBhcnNpbmdDb250ZXh0Ojp+RnJhZ21l
bnRQYXJzaW5nQ29udGV4dCgpCiB7CiB9CkBAIC01NjYsMTIgKzU3NCwxMiBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0lzaW5kZXhTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9r
ZW4mIHRva2VuKQogCiBuYW1lc3BhY2UgewogCi1ib29sIGlzTGkoY29uc3QgQ29udGFpbmVyTm9k
ZSogZWxlbWVudCkKK2Jvb2wgaXNMaShjb25zdCBFbGVtZW50KiBlbGVtZW50KQogewogICAgIHJl
dHVybiBlbGVtZW50LT5oYXNUYWdOYW1lKGxpVGFnKTsKIH0KIAotYm9vbCBpc0RkT3JEdChjb25z
dCBDb250YWluZXJOb2RlKiBlbGVtZW50KQorYm9vbCBpc0RkT3JEdChjb25zdCBFbGVtZW50KiBl
bGVtZW50KQogewogICAgIHJldHVybiBlbGVtZW50LT5oYXNUYWdOYW1lKGRkVGFnKQogICAgICAg
ICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGR0VGFnKTsKQEAgLTU3OSwxNiArNTg3LDE1IEBAIGJv
b2wgaXNEZE9yRHQoY29uc3QgQ29udGFpbmVyTm9kZSogZWxlbWVudCkKIAogfQogCi10ZW1wbGF0
ZSA8Ym9vbCBzaG91bGRDbG9zZShjb25zdCBDb250YWluZXJOb2RlKik+Cit0ZW1wbGF0ZSA8Ym9v
bCBzaG91bGRDbG9zZShjb25zdCBFbGVtZW50Kik+CiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc0Nsb3NlV2hlbk5lc3RlZFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogewogICAgIG1f
ZnJhbWVzZXRPayA9IGZhbHNlOwogICAgIEhUTUxFbGVtZW50U3RhY2s6OkVsZW1lbnRSZWNvcmQq
IG5vZGVSZWNvcmQgPSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnRvcFJlY29yZCgpOwogICAgIHdo
aWxlICgxKSB7Ci0gICAgICAgIENvbnRhaW5lck5vZGUqIG5vZGUgPSBub2RlUmVjb3JkLT5ub2Rl
KCk7CisgICAgICAgIEVsZW1lbnQqIG5vZGUgPSBub2RlUmVjb3JkLT5lbGVtZW50KCk7CiAgICAg
ICAgIGlmIChzaG91bGRDbG9zZShub2RlKSkgewotICAgICAgICAgICAgQVNTRVJUKG5vZGUtPmlz
RWxlbWVudE5vZGUoKSk7Ci0gICAgICAgICAgICBwcm9jZXNzRmFrZUVuZFRhZyh0b0VsZW1lbnQo
bm9kZSktPnRhZ1FOYW1lKCkpOworICAgICAgICAgICAgcHJvY2Vzc0Zha2VFbmRUYWcobm9kZS0+
dGFnUU5hbWUoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBpZiAo
aXNTcGVjaWFsTm9kZShub2RlKSAmJiAhbm9kZS0+aGFzVGFnTmFtZShhZGRyZXNzVGFnKSAmJiAh
bm9kZS0+aGFzVGFnTmFtZShkaXZUYWcpICYmICFub2RlLT5oYXNUYWdOYW1lKHBUYWcpKQpAQCAt
Nzc5LDcgKzc4Niw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJ
bkJvZHkoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICB9CiAgICAgaWYgKGlzTnVtYmVyZWRI
ZWFkZXJUYWcodG9rZW4ubmFtZSgpKSkgewogICAgICAgICBwcm9jZXNzRmFrZVBFbmRUYWdJZlBJ
bkJ1dHRvblNjb3BlKCk7Ci0gICAgICAgIGlmIChpc051bWJlcmVkSGVhZGVyVGFnKG1fdHJlZS5j
dXJyZW50Tm9kZSgpLT5sb2NhbE5hbWUoKSkpIHsKKyAgICAgICAgaWYgKGlzTnVtYmVyZWRIZWFk
ZXJUYWcobV90cmVlLmN1cnJlbnRFbGVtZW50KCktPmxvY2FsTmFtZSgpKSkgewogICAgICAgICAg
ICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCkt
PnBvcCgpOwogICAgICAgICB9CkBAIC05NzEsNyArOTc4LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAg
IGlmICh0b2tlbi5uYW1lKCkgPT0gcnBUYWcgfHwgdG9rZW4ubmFtZSgpID09IHJ0VGFnKSB7CiAg
ICAgICAgIGlmIChtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluU2NvcGUocnVieVRhZy5sb2NhbE5h
bWUoKSkpIHsKICAgICAgICAgICAgIG1fdHJlZS5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7Ci0g
ICAgICAgICAgICBpZiAoIW1fdHJlZS5jdXJyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKHJ1YnlUYWcp
KSB7CisgICAgICAgICAgICBpZiAoIW1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT5oYXNUYWdOYW1l
KHJ1YnlUYWcpKSB7CiAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAg
ICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbChydWJ5VGFnLmxvY2FsTmFt
ZSgpKTsKICAgICAgICAgICAgIH0KQEAgLTEwMTIsNyArMTAxOSw3IEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2VuJiB0b2tlbikK
IAogYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NDb2xncm91cEVuZFRhZ0ZvckluQ29sdW1u
R3JvdXAoKQogewotICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSA9PSBtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPnJvb3ROb2RlKCkpIHsKKyAgICBpZiAobV90cmVlLmN1cnJlbnRFbGVtZW50KCkg
PT0gbV90cmVlLm9wZW5FbGVtZW50cygpLT5odG1sRWxlbWVudCgpKSB7CiAgICAgICAgIEFTU0VS
VChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgLy8gRklYTUU6IHBhcnNlIGVycm9yCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTExMDgsNyArMTExNSw3IEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJblRhYmxlKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4p
CiAKIG5hbWVzcGFjZSB7CiAKLWJvb2wgc2hvdWxkUHJvY2Vzc0ZvcmVpZ25Db250ZW50VXNpbmdJ
bkJvZHlJbnNlcnRpb25Nb2RlKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4sIENvbnRhaW5lck5vZGUq
IGN1cnJlbnRFbGVtZW50KQorYm9vbCBzaG91bGRQcm9jZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0lu
Qm9keUluc2VydGlvbk1vZGUoQXRvbWljSFRNTFRva2VuJiB0b2tlbiwgRWxlbWVudCogY3VycmVu
dEVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW46OlN0YXJ0
VGFnKTsKICAgICBpZiAoY3VycmVudEVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1p
VGFnKQpAQCAtMTQwMiw3ICsxNDA5LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gb3B0aW9uVGFnKSB7Ci0gICAgICAg
ICAgICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCktPmhhc1RhZ05hbWUob3B0aW9uVGFnKSkgewor
ICAgICAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT5oYXNUYWdOYW1lKG9wdGlv
blRhZykpIHsKICAgICAgICAgICAgICAgICBBdG9taWNIVE1MVG9rZW4gZW5kT3B0aW9uKEhUTUxU
b2tlbjo6RW5kVGFnLCBvcHRpb25UYWcubG9jYWxOYW1lKCkpOwogICAgICAgICAgICAgICAgIHBy
b2Nlc3NFbmRUYWcoZW5kT3B0aW9uKTsKICAgICAgICAgICAgIH0KQEAgLTE0MTAsMTEgKzE0MTcs
MTEgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9r
ZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmICh0
b2tlbi5uYW1lKCkgPT0gb3B0Z3JvdXBUYWcpIHsKLSAgICAgICAgICAgIGlmIChtX3RyZWUuY3Vy
cmVudE5vZGUoKS0+aGFzVGFnTmFtZShvcHRpb25UYWcpKSB7CisgICAgICAgICAgICBpZiAobV90
cmVlLmN1cnJlbnRFbGVtZW50KCktPmhhc1RhZ05hbWUob3B0aW9uVGFnKSkgewogICAgICAgICAg
ICAgICAgIEF0b21pY0hUTUxUb2tlbiBlbmRPcHRpb24oSFRNTFRva2VuOjpFbmRUYWcsIG9wdGlv
blRhZy5sb2NhbE5hbWUoKSk7CiAgICAgICAgICAgICAgICAgcHJvY2Vzc0VuZFRhZyhlbmRPcHRp
b24pOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgp
LT5oYXNUYWdOYW1lKG9wdGdyb3VwVGFnKSkgeworICAgICAgICAgICAgaWYgKG1fdHJlZS5jdXJy
ZW50RWxlbWVudCgpLT5oYXNUYWdOYW1lKG9wdGdyb3VwVGFnKSkgewogICAgICAgICAgICAgICAg
IEF0b21pY0hUTUxUb2tlbiBlbmRPcHRncm91cChIVE1MVG9rZW46OkVuZFRhZywgb3B0Z3JvdXBU
YWcubG9jYWxOYW1lKCkpOwogICAgICAgICAgICAgICAgIHByb2Nlc3NFbmRUYWcoZW5kT3B0Z3Jv
dXApOwogICAgICAgICAgICAgfQpAQCAtMTUzNiwyMCArMTU0MywyMCBAQCB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc0FueU90aGVyRW5kVGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiYg
dG9rZW4pCiAgICAgQVNTRVJUKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW46OkVuZFRhZyk7CiAg
ICAgSFRNTEVsZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZCogcmVjb3JkID0gbV90cmVlLm9wZW5F
bGVtZW50cygpLT50b3BSZWNvcmQoKTsKICAgICB3aGlsZSAoMSkgewotICAgICAgICBDb250YWlu
ZXJOb2RlKiBub2RlID0gcmVjb3JkLT5ub2RlKCk7CisgICAgICAgIEVsZW1lbnQqIG5vZGUgPSBy
ZWNvcmQtPmVsZW1lbnQoKTsKICAgICAgICAgaWYgKG5vZGUtPmhhc0xvY2FsTmFtZSh0b2tlbi5u
YW1lKCkpKSB7CiAgICAgICAgICAgICBtX3RyZWUuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpOwot
ICAgICAgICAgICAgaWYgKCFtX3RyZWUuY3VycmVudE5vZGUoKS0+aGFzTG9jYWxOYW1lKHRva2Vu
Lm5hbWUoKSkpIHsKKyAgICAgICAgICAgIGlmICghbV90cmVlLmN1cnJlbnRFbGVtZW50KCktPmhh
c0xvY2FsTmFtZSh0b2tlbi5uYW1lKCkpKSB7CiAgICAgICAgICAgICAgICAgcGFyc2VFcnJvcih0
b2tlbik7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgZWl0aGVyIGEgYnVnIGlu
IHRoZSBzcGVjLCBvciBhIGJ1ZyBpbiBvdXIKICAgICAgICAgICAgICAgICAvLyBpbXBsZW1lbnRh
dGlvbi4gIEZpbGVkIGEgYnVnIHdpdGggSFRNTDU6CiAgICAgICAgICAgICAgICAgLy8gaHR0cDov
L3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTEwMDgwCiAgICAgICAgICAg
ICAgICAgLy8gV2UgbWlnaHQgaGF2ZSBhbHJlYWR5IHBvcHBlZCB0aGUgbm9kZSBmb3IgdGhlIHRv
a2VuIGluCiAgICAgICAgICAgICAgICAgLy8gZ2VuZXJhdGVJbXBsaWVkRW5kVGFncywganVzdCBh
Ym9ydC4KLSAgICAgICAgICAgICAgICBpZiAoIW1fdHJlZS5vcGVuRWxlbWVudHMoKS0+Y29udGFp
bnMocmVjb3JkLT5lbGVtZW50KCkpKQorICAgICAgICAgICAgICAgIGlmICghbV90cmVlLm9wZW5F
bGVtZW50cygpLT5jb250YWlucyhub2RlKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRp
bFBvcHBlZChyZWNvcmQtPmVsZW1lbnQoKSk7CisgICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1l
bnRzKCktPnBvcFVudGlsUG9wcGVkKG5vZGUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIGlmIChpc1NwZWNpYWxOb2RlKG5vZGUpKSB7CkBAIC0xNjA5LDcgKzE2MTYs
NyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6Y2FsbFRoZUFkb3B0aW9uQWdlbmN5KEF0b21pY0hU
TUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0KICAgICAgICAgLy8gNC4KICAgICAgICAgQVNTRVJU
KGZ1cnRoZXN0QmxvY2stPmlzQWJvdmUoZm9ybWF0dGluZ0VsZW1lbnRSZWNvcmQpKTsKLSAgICAg
ICAgQ29udGFpbmVyTm9kZSogY29tbW9uQW5jZXN0b3IgPSBmb3JtYXR0aW5nRWxlbWVudFJlY29y
ZC0+bmV4dCgpLT5ub2RlKCk7CisgICAgICAgIEVsZW1lbnQqIGNvbW1vbkFuY2VzdG9yID0gZm9y
bWF0dGluZ0VsZW1lbnRSZWNvcmQtPm5leHQoKS0+ZWxlbWVudCgpOwogICAgICAgICAvLyA1Lgog
ICAgICAgICBIVE1MRm9ybWF0dGluZ0VsZW1lbnRMaXN0OjpCb29rbWFyayBib29rbWFyayA9IG1f
dHJlZS5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKS0+Ym9va21hcmtGb3IoZm9ybWF0dGluZ0Vs
ZW1lbnQpOwogICAgICAgICAvLyA2LgpAQCAtMTY2MSw5ICsxNjY4LDcgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OmNhbGxUaGVBZG9wdGlvbkFnZW5jeShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQog
ICAgICAgICAgICAgbV90cmVlLmZvc3RlclBhcmVudChsYXN0Tm9kZS0+ZWxlbWVudCgpKTsKICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICBjb21tb25BbmNlc3Rvci0+cGFyc2VyQWRkQ2hpbGQo
bGFzdE5vZGUtPmVsZW1lbnQoKSk7Ci0gICAgICAgICAgICBBU1NFUlQobGFzdE5vZGUtPm5vZGUo
KS0+aXNFbGVtZW50Tm9kZSgpKTsKLSAgICAgICAgICAgIEFTU0VSVChsYXN0Tm9kZS0+ZWxlbWVu
dCgpLT5wYXJlbnROb2RlKCkpOwotICAgICAgICAgICAgaWYgKGxhc3ROb2RlLT5lbGVtZW50KCkt
PnBhcmVudE5vZGUoKS0+YXR0YWNoZWQoKSAmJiAhbGFzdE5vZGUtPmVsZW1lbnQoKS0+YXR0YWNo
ZWQoKSkKKyAgICAgICAgICAgIGlmIChsYXN0Tm9kZS0+ZWxlbWVudCgpLT5wYXJlbnRFbGVtZW50
KCktPmF0dGFjaGVkKCkgJiYgIWxhc3ROb2RlLT5lbGVtZW50KCktPmF0dGFjaGVkKCkpCiAgICAg
ICAgICAgICAgICAgbGFzdE5vZGUtPmVsZW1lbnQoKS0+bGF6eUF0dGFjaCgpOwogICAgICAgICB9
CiAgICAgICAgIC8vIDgKQEAgLTE2OTUsOCArMTcwMCw4IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
OjpyZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCkKICAgICBib29sIGxhc3QgPSBmYWxz
ZTsKICAgICBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBub2RlUmVjb3JkID0gbV90
cmVlLm9wZW5FbGVtZW50cygpLT50b3BSZWNvcmQoKTsKICAgICB3aGlsZSAoMSkgewotICAgICAg
ICBDb250YWluZXJOb2RlKiBub2RlID0gbm9kZVJlY29yZC0+bm9kZSgpOwotICAgICAgICBpZiAo
bm9kZSA9PSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnJvb3ROb2RlKCkpIHsKKyAgICAgICAgRWxl
bWVudCogbm9kZSA9IG5vZGVSZWNvcmQtPmVsZW1lbnQoKTsKKyAgICAgICAgaWYgKG5vZGUgPT0g
bV90cmVlLm9wZW5FbGVtZW50cygpLT5ib3R0b20oKSkgewogICAgICAgICAgICAgQVNTRVJUKGlz
UGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgbGFzdCA9IHRydWU7CiAgICAgICAgICAg
ICBub2RlID0gbV9mcmFnbWVudENvbnRleHQuY29udGV4dEVsZW1lbnQoKTsKQEAgLTE4MjYsNyAr
MTgzMSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW5DZWxsKEF0
b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgbV90cmVlLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKLSAgICAgICAgaWYgKCFtX3Ry
ZWUuY3VycmVudE5vZGUoKS0+aGFzTG9jYWxOYW1lKHRva2VuLm5hbWUoKSkpCisgICAgICAgIGlm
ICghbV90cmVlLmN1cnJlbnRFbGVtZW50KCktPmhhc0xvY2FsTmFtZSh0b2tlbi5uYW1lKCkpKQog
ICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS0+cG9wVW50aWxQb3BwZWQodG9rZW4ubmFtZSgpKTsKICAgICAgICAgbV90cmVlLmFjdGl2
ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5jbGVhclRvTGFzdE1hcmtlcigpOwpAQCAtMTg5Niw3ICsx
OTAxLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbkJvZHkoQXRv
bWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
ICAgICBtX3RyZWUuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpOwotICAgICAgICBpZiAoIW1fdHJl
ZS5jdXJyZW50Tm9kZSgpLT5oYXNMb2NhbE5hbWUodG9rZW4ubmFtZSgpKSkKKyAgICAgICAgaWYg
KCFtX3RyZWUuY3VycmVudEVsZW1lbnQoKS0+aGFzTG9jYWxOYW1lKHRva2VuLm5hbWUoKSkpCiAg
ICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50
cygpLT5wb3BVbnRpbFBvcHBlZCh0b2tlbi5uYW1lKCkpOwogICAgICAgICByZXR1cm47CkBAIC0x
OTIxLDcgKzE5MjYsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0Zvcklu
Qm9keShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIG1fdHJlZS5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbih0
b2tlbi5uYW1lKCkpOwotICAgICAgICBpZiAoIW1fdHJlZS5jdXJyZW50Tm9kZSgpLT5oYXNMb2Nh
bE5hbWUodG9rZW4ubmFtZSgpKSkKKyAgICAgICAgaWYgKCFtX3RyZWUuY3VycmVudEVsZW1lbnQo
KS0+aGFzTG9jYWxOYW1lKHRva2VuLm5hbWUoKSkpCiAgICAgICAgICAgICBwYXJzZUVycm9yKHRv
a2VuKTsKICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbFBvcHBlZCh0b2tl
bi5uYW1lKCkpOwogICAgICAgICByZXR1cm47CkBAIC0xOTMyLDcgKzE5MzcsNyBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4mIHRv
a2VuKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIG1fdHJlZS5nZW5l
cmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbih0b2tlbi5uYW1lKCkpOwotICAgICAgICBp
ZiAoIW1fdHJlZS5jdXJyZW50Tm9kZSgpLT5oYXNMb2NhbE5hbWUodG9rZW4ubmFtZSgpKSkKKyAg
ICAgICAgaWYgKCFtX3RyZWUuY3VycmVudEVsZW1lbnQoKS0+aGFzTG9jYWxOYW1lKHRva2VuLm5h
bWUoKSkpCiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgbV90cmVlLm9w
ZW5FbGVtZW50cygpLT5wb3BVbnRpbFBvcHBlZCh0b2tlbi5uYW1lKCkpOwogICAgICAgICByZXR1
cm47CkBAIC0xOTQ0LDcgKzE5NDksNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0Vu
ZFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgICAgIG1fdHJlZS5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4
Y2x1c2lvbih0b2tlbi5uYW1lKCkpOwotICAgICAgICBpZiAoIW1fdHJlZS5jdXJyZW50Tm9kZSgp
LT5oYXNMb2NhbE5hbWUodG9rZW4ubmFtZSgpKSkKKyAgICAgICAgaWYgKCFtX3RyZWUuY3VycmVu
dEVsZW1lbnQoKS0+aGFzTG9jYWxOYW1lKHRva2VuLm5hbWUoKSkpCiAgICAgICAgICAgICBwYXJz
ZUVycm9yKHRva2VuKTsKICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbFBv
cHBlZCh0b2tlbi5uYW1lKCkpOwogICAgICAgICByZXR1cm47CkBAIC0xOTU1LDcgKzE5NjAsNyBA
QCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluQm9keShBdG9taWNIVE1M
VG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIG1f
dHJlZS5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7Ci0gICAgICAgIGlmICghbV90cmVlLmN1cnJl
bnROb2RlKCktPmhhc0xvY2FsTmFtZSh0b2tlbi5uYW1lKCkpKQorICAgICAgICBpZiAoIW1fdHJl
ZS5jdXJyZW50RWxlbWVudCgpLT5oYXNMb2NhbE5hbWUodG9rZW4ubmFtZSgpKSkKICAgICAgICAg
ICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBv
cFVudGlsTnVtYmVyZWRIZWFkZXJFbGVtZW50UG9wcGVkKCk7CiAgICAgICAgIHJldHVybjsKQEAg
LTE5NzIsNyArMTk3Nyw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9y
SW5Cb2R5KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgbV90cmVlLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKLSAgICAgICAg
aWYgKCFtX3RyZWUuY3VycmVudE5vZGUoKS0+aGFzTG9jYWxOYW1lKHRva2VuLm5hbWUoKSkpCisg
ICAgICAgIGlmICghbV90cmVlLmN1cnJlbnRFbGVtZW50KCktPmhhc0xvY2FsTmFtZSh0b2tlbi5u
YW1lKCkpKQogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIG1fdHJlZS5v
cGVuRWxlbWVudHMoKS0+cG9wVW50aWxQb3BwZWQodG9rZW4ubmFtZSgpKTsKICAgICAgICAgbV90
cmVlLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpLT5jbGVhclRvTGFzdE1hcmtlcigpOwpAQCAt
MjIxNiw3ICsyMjIxLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRv
bWljSFRNTFRva2VuJiB0b2tlbikKICAgICBjYXNlIEluRnJhbWVzZXRNb2RlOgogICAgICAgICBB
U1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluRnJhbWVzZXRNb2RlKTsKICAgICAgICAgaWYgKHRv
a2VuLm5hbWUoKSA9PSBmcmFtZXNldFRhZykgewotICAgICAgICAgICAgaWYgKG1fdHJlZS5jdXJy
ZW50Tm9kZSgpID09IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cm9vdE5vZGUoKSkgeworICAgICAg
ICAgICAgaWYgKG1fdHJlZS5jdXJyZW50RWxlbWVudCgpID09IG1fdHJlZS5vcGVuRWxlbWVudHMo
KS0+aHRtbEVsZW1lbnQoKSkgewogICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTIyNTYsOSArMjI2MSw5
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiYg
dG9rZW4pCiAgICAgY2FzZSBJblNlbGVjdE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25N
b2RlKCkgPT0gSW5TZWxlY3RNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJblNlbGVjdEluVGFi
bGVNb2RlKTsKICAgICAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBvcHRncm91cFRhZykgewotICAg
ICAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKG9wdGlvblRhZykg
JiYgbV90cmVlLm9uZUJlbG93VG9wKCktPmhhc1RhZ05hbWUob3B0Z3JvdXBUYWcpKQorICAgICAg
ICAgICAgaWYgKG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT5oYXNUYWdOYW1lKG9wdGlvblRhZykg
JiYgbV90cmVlLm9uZUJlbG93VG9wKCktPmhhc1RhZ05hbWUob3B0Z3JvdXBUYWcpKQogICAgICAg
ICAgICAgICAgIHByb2Nlc3NGYWtlRW5kVGFnKG9wdGlvblRhZyk7Ci0gICAgICAgICAgICBpZiAo
bV90cmVlLmN1cnJlbnROb2RlKCktPmhhc1RhZ05hbWUob3B0Z3JvdXBUYWcpKSB7CisgICAgICAg
ICAgICBpZiAobV90cmVlLmN1cnJlbnRFbGVtZW50KCktPmhhc1RhZ05hbWUob3B0Z3JvdXBUYWcp
KSB7CiAgICAgICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CkBAIC0yMjg5LDMyICsyMjk0LDIzIEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiYgdG9r
ZW4pCiAgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEluRm9yZWlnbkNvbnRlbnRNb2RlOgotICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IFNW
R05hbWVzOjpzY3JpcHRUYWcgJiYgbV90cmVlLmN1cnJlbnROb2RlKCktPmhhc1RhZ05hbWUoU1ZH
TmFtZXM6OnNjcmlwdFRhZykpIHsKKyAgICAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBTVkdOYW1l
czo6c2NyaXB0VGFnICYmIG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT5oYXNUYWdOYW1lKFNWR05h
bWVzOjpzY3JpcHRUYWcpKSB7CiAgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUo
KS0+bmFtZXNwYWNlVVJJKCkgIT0geGh0bWxOYW1lc3BhY2VVUkkpIHsKKyAgICAgICAgaWYgKG1f
dHJlZS5jdXJyZW50RWxlbWVudCgpLT5uYW1lc3BhY2VVUkkoKSAhPSB4aHRtbE5hbWVzcGFjZVVS
SSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY29kZSBqdXN0IHdhbnRzIGFuIEVsZW1l
bnQqIGl0ZXJhdG9yLCBpbnN0ZWFkIG9mIGFuIEVsZW1lbnRSZWNvcmQqCiAgICAgICAgICAgICBI
VE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBub2RlUmVjb3JkID0gbV90cmVlLm9wZW5F
bGVtZW50cygpLT50b3BSZWNvcmQoKTsKLSAgICAgICAgICAgIGlmICghbm9kZVJlY29yZC0+bm9k
ZSgpLT5oYXNMb2NhbE5hbWUodG9rZW4ubmFtZSgpKSkKKyAgICAgICAgICAgIGlmICghbm9kZVJl
Y29yZC0+ZWxlbWVudCgpLT5oYXNMb2NhbE5hbWUodG9rZW4ubmFtZSgpKSkKICAgICAgICAgICAg
ICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHdoaWxlICgxKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKG5vZGVSZWNvcmQtPm5vZGUoKS0+aGFzTG9jYWxOYW1lKHRva2VuLm5hbWUo
KSkpIHsKKyAgICAgICAgICAgICAgICBpZiAobm9kZVJlY29yZC0+ZWxlbWVudCgpLT5oYXNMb2Nh
bE5hbWUodG9rZW4ubmFtZSgpKSkgewogICAgICAgICAgICAgICAgICAgICBtX3RyZWUub3BlbkVs
ZW1lbnRzKCktPnBvcFVudGlsUG9wcGVkKG5vZGVSZWNvcmQtPmVsZW1lbnQoKSk7CiAgICAgICAg
ICAgICAgICAgICAgIHJlc2V0Rm9yZWlnbkluc2VydGlvbk1vZGUoKTsKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBub2RlUmVj
b3JkID0gbm9kZVJlY29yZC0+bmV4dCgpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIC8vIEZyYWdtZW50cyBjb250YWluaW5nIG9ubHkgZm9yZWlnbiBjb250ZW50IHdpbGwgbm90
IGhhdmUgYQotICAgICAgICAgICAgICAgIC8vIG5vZGUgd2l0aCB0aGUgWEhUTUwgbmFtZXNwYWNl
IFVSSSwgc28gd2Ugc2hvdWxkIHN0b3Agd2Fsa2luZwotICAgICAgICAgICAgICAgIC8vIHRoZSBl
bGVtZW50IHN0YWNrIHdoZW4gd2UgZW5jb3VudGVyIHRoZSBEb2N1bWVudEZyYWdtZW50IGl0c2Vs
Zi4KLSAgICAgICAgICAgICAgICBpZiAobm9kZVJlY29yZC0+bm9kZSgpLT5ub2RlVHlwZSgpID09
IE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpIHsKLSAgICAgICAgICAgICAgICAgICAgQVNT
RVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKG5v
ZGVSZWNvcmQtPm5vZGUoKS0+bmFtZXNwYWNlVVJJKCkgPT0geGh0bWxOYW1lc3BhY2VVUkkpCisg
ICAgICAgICAgICAgICAgaWYgKG5vZGVSZWNvcmQtPmVsZW1lbnQoKS0+bmFtZXNwYWNlVVJJKCkg
PT0geGh0bWxOYW1lc3BhY2VVUkkpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CkBAIC0yNjEzLDExICsyNjA5LDExIEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgY2Fz
ZSBJblNlbGVjdEluVGFibGVNb2RlOgogICAgIGNhc2UgSW5TZWxlY3RNb2RlOgogICAgICAgICBB
U1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluU2VsZWN0TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkg
PT0gSW5TZWxlY3RJblRhYmxlTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJsZU1vZGUg
fHwgaW5zZXJ0aW9uTW9kZSgpID09IEluRnJhbWVzZXRNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9
PSBJblRhYmxlQm9keU1vZGUpOwotICAgICAgICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCkgIT0g
bV90cmVlLm9wZW5FbGVtZW50cygpLT5yb290Tm9kZSgpKQorICAgICAgICBpZiAobV90cmVlLmN1
cnJlbnRFbGVtZW50KCkgIT0gbV90cmVlLm9wZW5FbGVtZW50cygpLT5odG1sRWxlbWVudCgpKQog
ICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
SW5Db2x1bW5Hcm91cE1vZGU6Ci0gICAgICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKSA9PSBt
X3RyZWUub3BlbkVsZW1lbnRzKCktPnJvb3ROb2RlKCkpIHsKKyAgICAgICAgaWYgKG1fdHJlZS5j
dXJyZW50RWxlbWVudCgpID09IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aHRtbEVsZW1lbnQoKSkg
ewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAg
cmV0dXJuOyAvLyBGSVhNRTogU2hvdWxkIHdlIGJyZWFrIGhlcmUgaW5zdGVhZCBvZiByZXR1cm5p
bmc/CiAgICAgICAgIH0KQEAgLTI2NDYsNyArMjY0Miw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzRW5kT2ZGaWxlKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIHByb2Nl
c3NFbmRPZkZpbGUodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIEFTU0VSVCht
X3RyZWUuY3VycmVudE5vZGUoKSk7CisgICAgQVNTRVJUKG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
dG9wKCkpOwogICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wQWxsKCk7CiB9CiAKQEAgLTI3
OTgsMTAgKzI3OTQsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTY3JpcHRTdGFy
dFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6Zmlu
aXNoZWQoKQogewotICAgIGlmIChpc1BhcnNpbmdGcmFnbWVudCgpKQotICAgICAgICByZXR1cm47
Ci0gICAgCiAgICAgQVNTRVJUKG1fZG9jdW1lbnQpOworICAgIGlmIChpc1BhcnNpbmdGcmFnbWVu
dCgpKSB7CisgICAgICAgIG1fZnJhZ21lbnRDb250ZXh0LmZpbmlzaGVkKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICAvLyBXYXJuaW5nLCB0aGlzIG1heSBkZXRhY2ggdGhlIHBhcnNl
ci4gRG8gbm90IGRvIGFueXRoaW5nIGVsc2UgYWZ0ZXIgdGhpcy4KICAgICBtX2RvY3VtZW50LT5m
aW5pc2hlZFBhcnNpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxUcmVlQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmgKaW5kZXggNWJkYzQ0YmFmZTgyNDU2OGFhZmVjMzNjOGYzYTA0NWY4ODg2M2Vk
Zi4uMGNlYzY2N2Y2Y2VlMmRkOTVmNzYzN2UzMTQyNmFlZjg5NjJkZDJiZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKQEAgLTEsNiArMSw1IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTc5LDcgKzE3OCw3IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIGNsb3NlVGhlQ2VsbCgpOwogCi0gICAgdGVtcGxhdGUgPGJvb2wgc2hv
dWxkQ2xvc2UoY29uc3QgQ29udGFpbmVyTm9kZSopPgorICAgIHRlbXBsYXRlIDxib29sIHNob3Vs
ZENsb3NlKGNvbnN0IEVsZW1lbnQqKT4KICAgICB2b2lkIHByb2Nlc3NDbG9zZVdoZW5OZXN0ZWRU
YWcoQXRvbWljSFRNTFRva2VuJik7CiAKICAgICBib29sIG1fZnJhbWVzZXRPazsKQEAgLTIxNiw2
ICsyMTUsOCBAQCBwcml2YXRlOgogICAgICAgICBFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNv
bnN0IHsgQVNTRVJUKG1fZnJhZ21lbnQpOyByZXR1cm4gbV9jb250ZXh0RWxlbWVudDsgfQogICAg
ICAgICBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbigpIGNv
bnN0IHsgQVNTRVJUKG1fZnJhZ21lbnQpOyByZXR1cm4gbV9zY3JpcHRpbmdQZXJtaXNzaW9uOyB9
CiAKKyAgICAgICAgdm9pZCBmaW5pc2hlZCgpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgRG9j
dW1lbnRGcmFnbWVudCogbV9mcmFnbWVudDsKICAgICAgICAgRWxlbWVudCogbV9jb250ZXh0RWxl
bWVudDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>