<?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>93608</bug_id>
          
          <creation_ts>2012-08-09 05:21:39 -0700</creation_ts>
          <short_desc>Move element creation methods in HTMLConstructionSite to HTMLParserDOMMutationQueue.</short_desc>
          <delta_ts>2013-09-05 08:33:31 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          <dependson>93455</dependson>
          <blocked>90751</blocked>
    
    <blocked>93612</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kwang Yul Seo">skyul</reporter>
          <assigned_to name="Kwang Yul Seo">skyul</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>691411</commentid>
    <comment_count>0</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-09 05:21:39 -0700</bug_when>
    <thetext>Element creation itself also belongs to DOM modifications. Move element creation methods used in HTMLConstructionSite to HTMLParserDOMMutationQueue.

This patch does implement queueing of element creation because we can&apos;t queue element creation at the moment. After adding node proxy classes in follup commits, we can queue all DOM modifications including element creation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691424</commentid>
    <comment_count>1</comment_count>
      <attachid>157447</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-09 05:27:51 -0700</bug_when>
    <thetext>Created attachment 157447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691434</commentid>
    <comment_count>2</comment_count>
      <attachid>157451</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-09 05:34:31 -0700</bug_when>
    <thetext>Created attachment 157451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691435</commentid>
    <comment_count>3</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-09 05:34:58 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=157451) [details]
&gt; Patch

Fixed a typo in the change log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847459</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-05 02:03:01 -0800</bug_when>
    <thetext>We took a different approach with the threaded parser work.  I think this is now WONTFIX/dupe of bug  106127.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925050</commentid>
    <comment_count>5</comment_count>
      <attachid>157451</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-09-05 08:33:31 -0700</bug_when>
    <thetext>Comment on attachment 157451
Patch

The work on this bug has ceased, removing the r? flag on the patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157447</attachid>
            <date>2012-08-09 05:27:51 -0700</date>
            <delta_ts>2012-08-09 05:34:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93608-20120809212718.patch</filename>
            <type>text/plain</type>
            <size>22953</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY1OTU3NTVkMGI4YzQ2
YjljMmQ1NDQzM2FhNmE2MWMwOGY1ZjVhNC4uOGVlYmNkODliNGIwYWJkYWE0Zjk2YTY1NTBiNjFk
OGU3YTE4NTBjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYyIEBACiAyMDEyLTA4LTA5ICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CiAKKyAgICAgICAgTW92ZSBlbGVtZW50
IGNyZWF0aW9uIG1ldGhvZHMgaW4gSFRNTENvbnN0cnVjdGlvblNpdGUgdG8gSFRNTFBhcnNlckRP
TU11dGF0aW9uUXVldWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MzYwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEVsZW1lbnQgY3JlYXRpb24gaXRzZWxmIGFsc28gYmVsb25ncyB0byBET00gbW9kaWZp
Y2F0aW9ucy4gTW92ZSBlbGVtZW50IGNyZWF0aW9uIG1ldGhvZHMKKyAgICAgICAgdXNlZCBpbiBI
VE1MQ29uc3RydWN0aW9uU2l0ZSB0byBIVE1MUGFyc2VyRE9NTXV0YXRpb25RdWV1ZS4KKworICAg
ICAgICBUaGlzIHBhdGNoIGRvZXMgaW1wbGVtZW50IHF1ZXVlaW5nIG9mIGVsZW1lbnQgY3JlYXRp
b24gYmVjYXVzZSB3ZSBjYW4ndCBxdWV1ZSBlbGVtZW50IGNyZWF0aW9uCisgICAgICAgIGF0IHRo
ZSBtb21lbnQuIEFmdGVyIGFkZGluZyBub2RlIHByb3h5IGNsYXNzZXMgaW4gZm9sbHVwIGNvbW1p
dHMsIHdlIGNhbiBxdWV1ZSBhbGwgRE9NCisgICAgICAgIG1vZGlmaWNhdGlvbnMgaW5jbHVkaW5n
IGVsZW1lbnQgY3JlYXRpb24uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyByZWZhY3RvcmluZyBv
bmx5LgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydEhUTUxIdG1sU3Rh
cnRUYWdCZWZvcmVIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRl
OjppbnNlcnRTY3JpcHRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rp
b25TaXRlOjpjcmVhdGVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rp
b25TaXRlOjpjcmVhdGVIVE1MRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVIVE1MU2NyaXB0RWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlSFRNTEh0bWxF
bGVtZW50KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oOgor
ICAgICAgICAoSFRNTENvbnN0cnVjdGlvblNpdGUpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxQYXJzZXJET01NdXRhdGlvblF1ZXVlLmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGFyc2Vy
RE9NTXV0YXRpb25RdWV1ZTo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAgIChIVE1MUGFyc2VyRE9N
TXV0YXRpb25RdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGFyc2VyRE9NTXV0YXRpb25R
dWV1ZTo6Y3JlYXRlSFRNTEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlckRP
TU11dGF0aW9uUXVldWU6OmNyZWF0ZUhUTUxTY3JpcHRFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQYXJzZXJET01NdXRhdGlvblF1ZXVlOjpjcmVhdGVIVE1MSHRtbEVsZW1lbnQpOgor
ICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQYXJzZXJET01NdXRhdGlvblRhc2suY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlRWxlbWVudFRhc2s6OmRv
UGVyZm9ybVRhc2spOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
UGFyc2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MRWxlbWVudFRhc2s6OmRvUGVyZm9ybVRhc2spOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlSFRNTFNjcmlwdEVs
ZW1lbnRUYXNrOjpkb1BlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXJE
T01NdXRhdGlvbkNyZWF0ZUhUTUxIdG1sRWxlbWVudFRhc2s6OmRvUGVyZm9ybVRhc2spOgorICAg
ICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQYXJzZXJET01NdXRhdGlvblRhc2suaDoKKyAgICAgICAg
KEhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUVsZW1lbnRUYXNrKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUVsZW1lbnRUYXNrOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlRWxlbWVudFRhc2s6OnBl
cmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0
ZUVsZW1lbnRUYXNrOjpIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVFbGVtZW50VGFzayk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhU
TUxFbGVtZW50VGFzayk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGFyc2VyRE9NTXV0YXRpb25D
cmVhdGVIVE1MRWxlbWVudFRhc2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGFy
c2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MRWxlbWVudFRhc2s6OnBlcmZvcm1UYXNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxFbGVtZW50VGFzazo6
SFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlSFRNTEVsZW1lbnRUYXNrKToKKyAgICAgICAgKEhU
TUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxTY3JpcHRFbGVtZW50VGFzayk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MU2NyaXB0RWxlbWVudFRh
c2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVh
dGVIVE1MU2NyaXB0RWxlbWVudFRhc2s6OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxTY3JpcHRFbGVtZW50VGFzazo6SFRNTFBh
cnNlckRPTU11dGF0aW9uQ3JlYXRlSFRNTFNjcmlwdEVsZW1lbnRUYXNrKToKKyAgICAgICAgKEhU
TUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxIdG1sRWxlbWVudFRhc2spOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlSFRNTEh0bWxFbGVtZW50VGFzazo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhU
TUxIdG1sRWxlbWVudFRhc2s6OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQ
YXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxIdG1sRWxlbWVudFRhc2s6OkhUTUxQYXJzZXJET01N
dXRhdGlvbkNyZWF0ZUhUTUxIdG1sRWxlbWVudFRhc2spOgorCisyMDEyLTA4LTA5ICBLd2FuZyBZ
dWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CisKICAgICAgICAgRXh0cmFjdCBET00gbW9k
aWZpY2F0aW9ucyBpbiB0aGUgSFRNTDUgcGFyc2VyIGludG8gSFRNTFBhcnNlckRPTU11dGF0aW9u
UXVldWUuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
MzQ1NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3Ry
dWN0aW9uU2l0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0
aW9uU2l0ZS5jcHAKaW5kZXggZDFkNjU0NzJjMTMzMDkxMDdiMmY0OTcyMGYzNThmOTJmMjAxMDM1
MS4uNTg4ODc4NjZhMGJkYWM4YTZmNTY5OWMxOTMwYjU1M2ZjM2Q2MGE3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcApAQCAt
MTMxLDggKzEzMSw3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmRpc3BhdGNoRG9jdW1l
bnRFbGVtZW50QXZhaWxhYmxlSWZOZWVkZWQoKQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRl
OjppbnNlcnRIVE1MSHRtbFN0YXJ0VGFnQmVmb3JlSFRNTChBdG9taWNIVE1MVG9rZW4qIHRva2Vu
KQogewotICAgIFJlZlB0cjxIVE1MSHRtbEVsZW1lbnQ+IGVsZW1lbnQgPSBIVE1MSHRtbEVsZW1l
bnQ6OmNyZWF0ZShtX2RvY3VtZW50KTsKLSAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRyaWJ1dGVz
KHRva2VuLT5hdHRyaWJ1dGVzKCksIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKKyAg
ICBSZWZQdHI8SFRNTEh0bWxFbGVtZW50PiBlbGVtZW50ID0gY3JlYXRlSFRNTEh0bWxFbGVtZW50
KHRva2VuKTsKICAgICBhdHRhY2hMYXRlcihtX2F0dGFjaG1lbnRSb290LCBlbGVtZW50KTsKICAg
ICBtX29wZW5FbGVtZW50cy5wdXNoSFRNTEh0bWxFbGVtZW50KEhUTUxTdGFja0l0ZW06OmNyZWF0
ZShlbGVtZW50LCB0b2tlbikpOwogCkBAIC0yNTQsMTYgKzI1Myw3IEBAIHZvaWQgSFRNTENvbnN0
cnVjdGlvblNpdGU6Omluc2VydEZvcm1hdHRpbmdFbGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9r
ZW4pCiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFNjcmlwdEVsZW1lbnQoQXRv
bWljSFRNTFRva2VuKiB0b2tlbikKIHsKLSAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9zY3JpcHRpbmctMS5odG1sI2FscmVh
ZHktc3RhcnRlZAotICAgIC8vIGh0dHA6Ly9odG1sNS5vcmcvc3BlY3MvZG9tLXBhcnNpbmcuaHRt
bCNkb20tcmFuZ2UtY3JlYXRlY29udGV4dHVhbGZyYWdtZW50Ci0gICAgLy8gRm9yIGNyZWF0ZUNv
bnRleHR1YWxGcmFnbWVudCwgdGhlIHNwZWNpZmljYXRpb25zIHNheSB0byBtYXJrIGl0IHBhcnNl
ci1pbnNlcnRlZCBhbmQgYWxyZWFkeS1zdGFydGVkIGFuZCBsYXRlciB1bm1hcmsgdGhlbS4KLSAg
ICAvLyBIb3dldmVyLCB3ZSBzaG9ydCBjaXJjdWl0IHRoYXQgbG9naWMgdG8gYXZvaWQgdGhlIHN1
YnRyZWUgdHJhdmVyc2FsIHRvIGZpbmQgc2NyaXB0IGVsZW1lbnRzIHNpbmNlIHNjcmlwdHMgY2Fu
IG5ldmVyIHNlZQotICAgIC8vIHRob3NlIGZsYWdzIG9yIGVmZmVjdHMgdGhlcmVvZi4KLSAgICBj
b25zdCBib29sIHBhcnNlckluc2VydGVkID0gbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24g
IT0gQWxsb3dTY3JpcHRpbmdDb250ZW50QW5kRG9Ob3RNYXJrQWxyZWFkeVN0YXJ0ZWQ7Ci0gICAg
Y29uc3QgYm9vbCBhbHJlYWR5U3RhcnRlZCA9IG1faXNQYXJzaW5nRnJhZ21lbnQgJiYgcGFyc2Vy
SW5zZXJ0ZWQ7Ci0gICAgUmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50PiBlbGVtZW50ID0gSFRNTFNj
cmlwdEVsZW1lbnQ6OmNyZWF0ZShzY3JpcHRUYWcsIGN1cnJlbnROb2RlKCktPmRvY3VtZW50KCks
IHBhcnNlckluc2VydGVkLCBhbHJlYWR5U3RhcnRlZCk7Ci0gICAgaWYgKG1fZnJhZ21lbnRTY3Jp
cHRpbmdQZXJtaXNzaW9uICE9IERpc2FsbG93U2NyaXB0aW5nQ29udGVudCkKLSAgICAgICAgZWxl
bWVudC0+cGFyc2VyU2V0QXR0cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBtX2ZyYWdtZW50
U2NyaXB0aW5nUGVybWlzc2lvbik7CisgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBjcmVh
dGVIVE1MU2NyaXB0RWxlbWVudCh0b2tlbik7CiAgICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUo
KSwgZWxlbWVudCk7CiAgICAgbV9vcGVuRWxlbWVudHMucHVzaChIVE1MU3RhY2tJdGVtOjpjcmVh
dGUoZWxlbWVudC5yZWxlYXNlKCksIHRva2VuKSk7CiB9CkBAIC0yOTEsMjIgKzI4MSwyMiBAQCB2
b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kZShjb25zdCBTdHJpbmcmIGNo
YXJhY3RlcnMsIFdoaXRlc3BhY2VNbwogCiBQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4sIGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJKQogewotICAgIFF1YWxpZmllZE5hbWUgdGFnTmFtZShu
dWxsQXRvbSwgdG9rZW4tPm5hbWUoKSwgbmFtZXNwYWNlVVJJKTsKLSAgICBSZWZQdHI8RWxlbWVu
dD4gZWxlbWVudCA9IGN1cnJlbnROb2RlKCktPmRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQodGFn
TmFtZSwgdHJ1ZSk7Ci0gICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0cmlidXRlcyh0b2tlbi0+YXR0
cmlidXRlcygpLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7Ci0gICAgcmV0dXJuIGVs
ZW1lbnQucmVsZWFzZSgpOworICAgIHJldHVybiBtX2RvbU11dGF0aW9uUXVldWUtPmNyZWF0ZUVs
ZW1lbnQoY3VycmVudE5vZGUoKSwgdG9rZW4sIG5hbWVzcGFjZVVSSSwgbV9mcmFnbWVudFNjcmlw
dGluZ1Blcm1pc3Npb24pOwogfQogCiBQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxDb25zdHJ1Y3Rp
b25TaXRlOjpjcmVhdGVIVE1MRWxlbWVudChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQogewotICAg
IFF1YWxpZmllZE5hbWUgdGFnTmFtZShudWxsQXRvbSwgdG9rZW4tPm5hbWUoKSwgeGh0bWxOYW1l
c3BhY2VVUkkpOwotICAgIC8vIEZJWE1FOiBUaGlzIGNhbid0IHVzZSBIVE1MQ29uc3RydWN0aW9u
U2l0ZTo6Y3JlYXRlRWxlbWVudCBiZWNhdXNlIHdlCi0gICAgLy8gaGF2ZSB0byBwYXNzIHRoZSBj
dXJyZW50IGZvcm0gZWxlbWVudC4gIFdlIHNob3VsZCByZXdvcmsgZm9ybSBhc3NvY2lhdGlvbgot
ICAgIC8vIHRvIG9jY3VyIGFmdGVyIGNvbnN0cnVjdGlvbiB0byBhbGxvdyBiZXR0ZXIgY29kZSBz
aGFyaW5nIGhlcmUuCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBIVE1MRWxlbWVudEZh
Y3Rvcnk6OmNyZWF0ZUhUTUxFbGVtZW50KHRhZ05hbWUsIGN1cnJlbnROb2RlKCktPmRvY3VtZW50
KCksIGZvcm0oKSwgdHJ1ZSk7Ci0gICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0cmlidXRlcyh0b2tl
bi0+YXR0cmlidXRlcygpLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7Ci0gICAgQVNT
RVJUKGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSk7Ci0gICAgcmV0dXJuIGVsZW1lbnQucmVsZWFz
ZSgpOworICAgIHJldHVybiBtX2RvbU11dGF0aW9uUXVldWUtPmNyZWF0ZUhUTUxFbGVtZW50KGN1
cnJlbnROb2RlKCksIGZvcm0oKSwgdG9rZW4sIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9u
KTsKK30KKworUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRl
SFRNTFNjcmlwdEVsZW1lbnQoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKK3sKKyAgICByZXR1cm4g
bV9kb21NdXRhdGlvblF1ZXVlLT5jcmVhdGVIVE1MU2NyaXB0RWxlbWVudChjdXJyZW50Tm9kZSgp
LCB0b2tlbiwgbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24sIG1faXNQYXJzaW5nRnJhZ21l
bnQpOworfQorCitQYXNzUmVmUHRyPEhUTUxIdG1sRWxlbWVudD4gSFRNTENvbnN0cnVjdGlvblNp
dGU6OmNyZWF0ZUhUTUxIdG1sRWxlbWVudChBdG9taWNIVE1MVG9rZW4qIHRva2VuKQoreworICAg
IHJldHVybiBtX2RvbU11dGF0aW9uUXVldWUtPmNyZWF0ZUhUTUxIdG1sRWxlbWVudChtX2RvY3Vt
ZW50LCB0b2tlbiwgbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwogfQogCiBQYXNzUmVm
UHRyPEhUTUxTdGFja0l0ZW0+IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50RnJv
bVNhdmVkVG9rZW4oSFRNTFN0YWNrSXRlbSogaXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCmluZGV4IDQxNTRmNWRiZTM0NjgwZmZi
YmYyZjA1MzJjODgyMjljNDU0ZGFhODYuLmZlNWYwNjRlOGQ2ZjQyMmJkMTVmZDhmNGJmYjQyMzNm
ZjMxMDE1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25z
dHJ1Y3Rpb25TaXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0
cnVjdGlvblNpdGUuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEhU
TUxQYXJzZXJET01NdXRhdGlvblF1ZXVlOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEhUTUxGb3Jt
RWxlbWVudDsKK2NsYXNzIEhUTUxIdG1sRWxlbWVudDsKIAogY2xhc3MgSFRNTENvbnN0cnVjdGlv
blNpdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEhUTUxDb25zdHJ1Y3Rpb25TaXRlKTsK
QEAgLTEzNyw4ICsxMzgsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGF0dGFjaENvbW1lbnRPbkRv
Y3VtZW50TGF0ZXIoQ29udGFpbmVyTm9kZSogcGFyZW50LCBjb25zdCBTdHJpbmcmIGNvbW1lbnQp
OwogICAgIHZvaWQgYXR0YWNoRG9jdHlwZUxhdGVyKENvbnRhaW5lck5vZGUqIGF0dGFjaG1lbnRS
b290LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcHVibGljSWQsIGNvbnN0IFN0
cmluZyYgc3lzdGVtSWQpOwogCi0gICAgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVIVE1MRWxl
bWVudChBdG9taWNIVE1MVG9rZW4qKTsKICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnQoQXRvbWljSFRNTFRva2VuKiwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkkp
OworICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlSFRNTEVsZW1lbnQoQXRvbWljSFRNTFRv
a2VuKik7CisgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVIVE1MU2NyaXB0RWxlbWVudChB
dG9taWNIVE1MVG9rZW4qKTsKKyAgICBQYXNzUmVmUHRyPEhUTUxIdG1sRWxlbWVudD4gY3JlYXRl
SFRNTEh0bWxFbGVtZW50KEF0b21pY0hUTUxUb2tlbiopOwogCiAgICAgdm9pZCBkaXNwYXRjaERv
Y3VtZW50RWxlbWVudEF2YWlsYWJsZUlmTmVlZGVkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJET01NdXRhdGlvblF1ZXVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyRE9NTXV0YXRpb25RdWV1ZS5oCmluZGV4IDI3
N2IzNWNjNjI3MTQ5ZDRiOGY5OGRhNDM0NzA0OGZkYzY3N2EzYWEuLjgyYTc1NTg3YTQwODM1NGZh
M2YzNmJhMjE4ZGI0MDE4OTZlYTM5NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxQYXJzZXJET01NdXRhdGlvblF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFBhcnNlckRPTU11dGF0aW9uUXVldWUuaApAQCAtMjI5LDYgKzIyOSw1
NCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZsdXNoKCk7CiAKKyAgICBQYXNzUmVmUHRyPEVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnQoQ29udGFpbmVyTm9kZSogY3VycmVudE5vZGUsIEF0b21pY0hUTUxU
b2tlbiogdG9rZW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBGcmFnbWVudFNj
cmlwdGluZ1Blcm1pc3Npb24gZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKQorICAgIHsKKyAg
ICAgICAgLy8gRklYTUU6IENhbid0IHF1ZXVlIGVsZW1lbnQgY3JlYXRpb24uIEFkZCBub2RlIHBy
b3h5IGNsYXNzZXMgaW4gZm9sbG93LXVwIGNvbW1pdHMuCisgICAgICAgIGlmIChtX2lzU3BlY3Vs
YXRpbmcpIHsKKyAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAg
ICAgICAgcmV0dXJuIEhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUVsZW1lbnRUYXNrOjpkb1Bl
cmZvcm1UYXNrKGN1cnJlbnROb2RlLCB0b2tlbiwgbmFtZXNwYWNlVVJJLCBmcmFnbWVudFNjcmlw
dGluZ1Blcm1pc3Npb24pOworICAgIH0KKworICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRl
SFRNTEVsZW1lbnQoQ29udGFpbmVyTm9kZSogY3VycmVudE5vZGUsIEhUTUxGb3JtRWxlbWVudCog
Zm9ybSwgQXRvbWljSFRNTFRva2VuKiB0b2tlbiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9u
IGZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbikKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBD
YW4ndCBxdWV1ZSBlbGVtZW50IGNyZWF0aW9uLiBBZGQgbm9kZSBwcm94eSBjbGFzc2VzIGluIGZv
bGxvdy11cCBjb21taXRzLgorICAgICAgICBpZiAobV9pc1NwZWN1bGF0aW5nKSB7CisgICAgICAg
ICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBIVE1M
UGFyc2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MRWxlbWVudFRhc2s6OmRvUGVyZm9ybVRhc2soY3Vy
cmVudE5vZGUsIGZvcm0sIHRva2VuLCBmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOworICAg
IH0KKworICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlSFRNTFNjcmlwdEVsZW1lbnQoQ29u
dGFpbmVyTm9kZSogY3VycmVudE5vZGUsIEF0b21pY0hUTUxUb2tlbiogdG9rZW4sIEZyYWdtZW50
U2NyaXB0aW5nUGVybWlzc2lvbiBmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24sIGJvb2wgaXNQ
YXNpbmdGcmFnbWVudCkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBDYW4ndCBxdWV1ZSBlbGVt
ZW50IGNyZWF0aW9uLiBBZGQgbm9kZSBwcm94eSBjbGFzc2VzIGluIGZvbGxvdy11cCBjb21taXRz
LgorICAgICAgICBpZiAobV9pc1NwZWN1bGF0aW5nKSB7CisgICAgICAgICAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBIVE1MUGFyc2VyRE9NTXV0YXRp
b25DcmVhdGVIVE1MU2NyaXB0RWxlbWVudFRhc2s6OmRvUGVyZm9ybVRhc2soY3VycmVudE5vZGUs
IHRva2VuLCBmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24sIGlzUGFzaW5nRnJhZ21lbnQpOwor
ICAgIH0KKworICAgIFBhc3NSZWZQdHI8SFRNTEh0bWxFbGVtZW50PiBjcmVhdGVIVE1MSHRtbEVs
ZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBBdG9taWNIVE1MVG9rZW4qIHRva2VuLCBGcmFnbWVu
dFNjcmlwdGluZ1Blcm1pc3Npb24gZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKQorICAgIHsK
KyAgICAgICAgLy8gRklYTUU6IENhbid0IHF1ZXVlIGVsZW1lbnQgY3JlYXRpb24uIEFkZCBub2Rl
IHByb3h5IGNsYXNzZXMgaW4gZm9sbG93LXVwIGNvbW1pdHMuCisgICAgICAgIGlmIChtX2lzU3Bl
Y3VsYXRpbmcpIHsKKyAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisK
KyAgICAgICAgcmV0dXJuIEhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxIdG1sRWxlbWVu
dFRhc2s6OmRvUGVyZm9ybVRhc2soZG9jdW1lbnQsIHRva2VuLCBmcmFnbWVudFNjcmlwdGluZ1Bl
cm1pc3Npb24pOworICAgIH0KKwogcHJpdmF0ZToKICAgICBIVE1MUGFyc2VyRE9NTXV0YXRpb25R
dWV1ZSgpCiAgICAgICAgIDogbV9pc1NwZWN1bGF0aW5nKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlckRPTU11dGF0aW9uVGFzay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyRE9NTXV0YXRpb25UYXNrLmNwcApp
bmRleCA3YjRmNDEyNDk4NGE4ZjMzYWM4N2M2NjBmM2ZhN2ViMGEzOTAyNTU3Li4zZDNlYzQ4NjYz
MTRhMDdlYzgzOGU5MDkwN2IzOGM3ZTI3NzU4NDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyRE9NTXV0YXRpb25UYXNrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyRE9NTXV0YXRpb25UYXNrLmNwcApAQCAtMzEs
OCArMzEsMTEgQEAKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFbGVtZW50
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudEZhY3RvcnkuaCIK
ICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSHRtbEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5o
IgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjMzLDYgKzIz
Niw0OCBAQCB2b2lkIEhUTUxQYXJzZXJET01NdXRhdGlvblNldENvbXBhdGliaWxpdHlNb2RlRnJv
bURvY3R5cGVUYXNrOjpkb1BlcmZvcm1UYXNrKERvYwogICAgIGRvY3VtZW50LT5zZXRDb21wYXRp
YmlsaXR5TW9kZUZyb21Eb2N0eXBlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8RWxlbWVudD4gSFRNTFBh
cnNlckRPTU11dGF0aW9uQ3JlYXRlRWxlbWVudFRhc2s6OmRvUGVyZm9ybVRhc2soQ29udGFpbmVy
Tm9kZSogY3VycmVudE5vZGUsIEF0b21pY0hUTUxUb2tlbiogdG9rZW4sIGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZXNwYWNlVVJJLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gZnJhZ21lbnRT
Y3JpcHRpbmdQZXJtaXNzaW9uKQoreworICAgIFF1YWxpZmllZE5hbWUgdGFnTmFtZShudWxsQXRv
bSwgdG9rZW4tPm5hbWUoKSwgbmFtZXNwYWNlVVJJKTsKKyAgICBSZWZQdHI8RWxlbWVudD4gZWxl
bWVudCA9IGN1cnJlbnROb2RlLT5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHRhZ05hbWUsIHRy
dWUpOworICAgIGVsZW1lbnQtPnBhcnNlclNldEF0dHJpYnV0ZXModG9rZW4tPmF0dHJpYnV0ZXMo
KSwgZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKKyAgICByZXR1cm4gZWxlbWVudC5yZWxl
YXNlKCk7Cit9CisKK1Bhc3NSZWZQdHI8RWxlbWVudD4gSFRNTFBhcnNlckRPTU11dGF0aW9uQ3Jl
YXRlSFRNTEVsZW1lbnRUYXNrOjpkb1BlcmZvcm1UYXNrKENvbnRhaW5lck5vZGUqIGN1cnJlbnRO
b2RlLCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIEF0b21pY0hUTUxUb2tlbiogdG9rZW4sIEZyYWdt
ZW50U2NyaXB0aW5nUGVybWlzc2lvbiBmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pCit7Cisg
ICAgUXVhbGlmaWVkTmFtZSB0YWdOYW1lKG51bGxBdG9tLCB0b2tlbi0+bmFtZSgpLCBIVE1MTmFt
ZXM6OnhodG1sTmFtZXNwYWNlVVJJKTsKKyAgICAvLyBGSVhNRTogVGhpcyBjYW4ndCB1c2UgSFRN
TENvbnN0cnVjdGlvblNpdGU6OmNyZWF0ZUVsZW1lbnQgYmVjYXVzZSB3ZQorICAgIC8vIGhhdmUg
dG8gcGFzcyB0aGUgY3VycmVudCBmb3JtIGVsZW1lbnQuIFdlIHNob3VsZCByZXdvcmsgZm9ybSBh
c3NvY2lhdGlvbgorICAgIC8vIHRvIG9jY3VyIGFmdGVyIGNvbnN0cnVjdGlvbiB0byBhbGxvdyBi
ZXR0ZXIgY29kZSBzaGFyaW5nIGhlcmUuCisgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBI
VE1MRWxlbWVudEZhY3Rvcnk6OmNyZWF0ZUhUTUxFbGVtZW50KHRhZ05hbWUsIGN1cnJlbnROb2Rl
LT5kb2N1bWVudCgpLCBmb3JtLCB0cnVlKTsKKyAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRyaWJ1
dGVzKHRva2VuLT5hdHRyaWJ1dGVzKCksIGZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7Cisg
ICAgQVNTRVJUKGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSk7CisgICAgcmV0dXJuIGVsZW1lbnQu
cmVsZWFzZSgpOworfQorCitQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxQYXJzZXJET01NdXRhdGlv
bkNyZWF0ZUhUTUxTY3JpcHRFbGVtZW50VGFzazo6ZG9QZXJmb3JtVGFzayhDb250YWluZXJOb2Rl
KiBjdXJyZW50Tm9kZSwgQXRvbWljSFRNTFRva2VuKiB0b2tlbiwgRnJhZ21lbnRTY3JpcHRpbmdQ
ZXJtaXNzaW9uIGZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiwgYm9vbCBpc1BhcnNpbmdGcmFn
bWVudCkKK3sKKyAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3Vy
cmVudC13b3JrL211bHRpcGFnZS9zY3JpcHRpbmctMS5odG1sI2FscmVhZHktc3RhcnRlZAorICAg
IC8vIGh0dHA6Ly9odG1sNS5vcmcvc3BlY3MvZG9tLXBhcnNpbmcuaHRtbCNkb20tcmFuZ2UtY3Jl
YXRlY29udGV4dHVhbGZyYWdtZW50CisgICAgLy8gRm9yIGNyZWF0ZUNvbnRleHR1YWxGcmFnbWVu
dCwgdGhlIHNwZWNpZmljYXRpb25zIHNheSB0byBtYXJrIGl0IHBhcnNlci1pbnNlcnRlZCBhbmQg
YWxyZWFkeS1zdGFydGVkIGFuZCBsYXRlciB1bm1hcmsgdGhlbS4KKyAgICAvLyBIb3dldmVyLCB3
ZSBzaG9ydCBjaXJjdWl0IHRoYXQgbG9naWMgdG8gYXZvaWQgdGhlIHN1YnRyZWUgdHJhdmVyc2Fs
IHRvIGZpbmQgc2NyaXB0IGVsZW1lbnRzIHNpbmNlIHNjcmlwdHMgY2FuIG5ldmVyIHNlZQorICAg
IC8vIHRob3NlIGZsYWdzIG9yIGVmZmVjdHMgdGhlcmVvZi4KKyAgICBjb25zdCBib29sIHBhcnNl
ckluc2VydGVkID0gZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uICE9IEFsbG93U2NyaXB0aW5n
Q29udGVudEFuZERvTm90TWFya0FscmVhZHlTdGFydGVkOworICAgIGNvbnN0IGJvb2wgYWxyZWFk
eVN0YXJ0ZWQgPSBpc1BhcnNpbmdGcmFnbWVudCAmJiBwYXJzZXJJbnNlcnRlZDsKKyAgICBSZWZQ
dHI8SFRNTFNjcmlwdEVsZW1lbnQ+IGVsZW1lbnQgPSBIVE1MU2NyaXB0RWxlbWVudDo6Y3JlYXRl
KEhUTUxOYW1lczo6c2NyaXB0VGFnLCBjdXJyZW50Tm9kZS0+ZG9jdW1lbnQoKSwgcGFyc2VySW5z
ZXJ0ZWQsIGFscmVhZHlTdGFydGVkKTsKKyAgICBpZiAoZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNz
aW9uICE9IERpc2FsbG93U2NyaXB0aW5nQ29udGVudCkKKyAgICAgICAgZWxlbWVudC0+cGFyc2Vy
U2V0QXR0cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBmcmFnbWVudFNjcmlwdGluZ1Blcm1p
c3Npb24pOworICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2UoKTsKK30KKworUGFzc1JlZlB0cjxI
VE1MSHRtbEVsZW1lbnQ+IEhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxIdG1sRWxlbWVu
dFRhc2s6OmRvUGVyZm9ybVRhc2soRG9jdW1lbnQqIGRvY3VtZW50LCBBdG9taWNIVE1MVG9rZW4q
IHRva2VuLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gZnJhZ21lbnRTY3JpcHRpbmdQZXJt
aXNzaW9uKQoreworICAgIFJlZlB0cjxIVE1MSHRtbEVsZW1lbnQ+IGVsZW1lbnQgPSBIVE1MSHRt
bEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0cmli
dXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwor
ICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2UoKTsKK30KKwogSFRNTFBhcnNlckRPTU11dGF0aW9u
VGFzazo6fkhUTUxQYXJzZXJET01NdXRhdGlvblRhc2soKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlckRPTU11dGF0aW9uVGFzay5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlckRPTU11dGF0aW9uVGFzay5oCmluZGV4
IGRhNzEyMjAyMzA4YTAzOGE4NzliMDc3NDNhMjNiMjkyYWQ3NmMxZjIuLmUzMWZlOGIzY2YzN2M3
NmNhM2U4MDYyMTcyNGUwNTM0NWRlZjU0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxQYXJzZXJET01NdXRhdGlvblRhc2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyRE9NTXV0YXRpb25UYXNrLmgKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSHRtbEVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgogCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CkBAIC01OCw2ICs1OSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIEluc2VydENvbW1lbnQsCiAgICAg
ICAgIEluc2VydENvbW1lbnRPbkRvY3VtZW50LAogICAgICAgICBJbnNlcnREb2N0eXBlLAorICAg
ICAgICBDcmVhdGVFbGVtZW50LAorICAgICAgICBDcmVhdGVIVE1MRWxlbWVudCwKKyAgICAgICAg
Q3JlYXRlSFRNTFNjcmlwdEVsZW1lbnQsCisgICAgICAgIENyZWF0ZUhUTUxIdG1sRWxlbWVudAog
ICAgIH07CiAKICAgICB2aXJ0dWFsIH5IVE1MUGFyc2VyRE9NTXV0YXRpb25UYXNrKCk7CkBAIC02
MzEsNiArNjM2LDE0NCBAQCBwcml2YXRlOgogICAgIGNvbnN0IFN0cmluZyBtX3N5c3RlbUlkOwog
fTsKIAorY2xhc3MgSFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlRWxlbWVudFRhc2sgOiBwdWJs
aWMgSFRNTFBhcnNlckRPTU11dGF0aW9uVGFzayB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlRWxlbWVudFRhc2s+IGNyZWF0ZShQYXNz
UmVmUHRyPENvbnRhaW5lck5vZGU+IGN1cnJlbnROb2RlLCBQYXNzUmVmUHRyPEF0b21pY0hUTUxU
b2tlbj4gdG9rZW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBGcmFnbWVudFNj
cmlwdGluZ1Blcm1pc3Npb24gZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVFbGVt
ZW50VGFzayhjdXJyZW50Tm9kZSwgdG9rZW4sIG5hbWVzcGFjZVVSSSwgZnJhZ21lbnRTY3JpcHRp
bmdQZXJtaXNzaW9uKSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RWxlbWVudD4g
ZG9QZXJmb3JtVGFzayhDb250YWluZXJOb2RlKiBjdXJyZW50Tm9kZSwgQXRvbWljSFRNTFRva2Vu
KiwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIEZyYWdtZW50U2NyaXB0aW5nUGVy
bWlzc2lvbik7CisKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soKQorICAgIHsKKyAgICAg
ICAgLy8gRklYTUU6IENhbid0IHF1ZXVlIGVsZW1lbnQgY3JlYXRpb24uIEFkZCBub2RlIHByb3h5
IGNsYXNzZXMgaW4gZm9sbG93LXVwIGNvbW1pdHMuCisgICAgICAgIFJlZlB0cjxFbGVtZW50PiBl
bGVtZW50ID0gZG9QZXJmb3JtVGFzayhtX2N1cnJlbnROb2RlLmdldCgpLCBtX3Rva2VuLmdldCgp
LCBtX25hbWVzcGFjZVVSSSwgbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOworICAgICAg
ICBBU1NFUlRfVU5VU0VEKGVsZW1lbnQsIGVsZW1lbnQpOworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVFbGVtZW50VGFzayhQYXNzUmVmUHRyPENv
bnRhaW5lck5vZGU+IGN1cnJlbnROb2RlLCBQYXNzUmVmUHRyPEF0b21pY0hUTUxUb2tlbj4gdG9r
ZW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBGcmFnbWVudFNjcmlwdGluZ1Bl
cm1pc3Npb24gZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKQorICAgICAgICA6IEhUTUxQYXJz
ZXJET01NdXRhdGlvblRhc2soQ3JlYXRlRWxlbWVudCkKKyAgICAgICAgLCBtX2N1cnJlbnROb2Rl
KGN1cnJlbnROb2RlKQorICAgICAgICAsIG1fdG9rZW4odG9rZW4pCisgICAgICAgICwgbV9uYW1l
c3BhY2VVUkkobmFtZXNwYWNlVVJJKQorICAgICAgICAsIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJt
aXNzaW9uKGZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbikKKyAgICB7CisgICAgfQorCisgICAg
UmVmUHRyPENvbnRhaW5lck5vZGU+IG1fY3VycmVudE5vZGU7CisgICAgUmVmUHRyPEF0b21pY0hU
TUxUb2tlbj4gbV90b2tlbjsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcgbV9uYW1lc3BhY2VVUkk7
CisgICAgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJt
aXNzaW9uOworfTsKKworY2xhc3MgSFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlSFRNTEVsZW1l
bnRUYXNrIDogcHVibGljIEhUTUxQYXJzZXJET01NdXRhdGlvblRhc2sgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxFbGVtZW50
VGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gY3VycmVudE5vZGUsIFBhc3NS
ZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBmb3JtLCBQYXNzUmVmUHRyPEF0b21pY0hUTUxUb2tlbj4g
dG9rZW4sIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBmcmFnbWVudFNjcmlwdGluZ1Blcm1p
c3Npb24pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxQYXJzZXJET01N
dXRhdGlvbkNyZWF0ZUhUTUxFbGVtZW50VGFzayhjdXJyZW50Tm9kZSwgZm9ybSwgdG9rZW4sIGZy
YWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbikpOworICAgIH0KKworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEVsZW1lbnQ+IGRvUGVyZm9ybVRhc2soQ29udGFpbmVyTm9kZSogY3VycmVudE5vZGUsIEhU
TUxGb3JtRWxlbWVudCosIEF0b21pY0hUTUxUb2tlbiosIEZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbik7CisKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soKQorICAgIHsKKyAgICAgICAg
Ly8gRklYTUU6IENhbid0IHF1ZXVlIGVsZW1lbnQgY3JlYXRpb24uIEFkZCBub2RlIHByb3h5IGNs
YXNzZXMgaW4gZm9sbG93LXVwIGNvbW1pdHMuCisgICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVt
ZW50ID0gZG9QZXJmb3JtVGFzayhtX2N1cnJlbnROb2RlLmdldCgpLCBtX2Zvcm0uZ2V0KCksIG1f
dG9rZW4uZ2V0KCksIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKKyAgICAgICAgQVNT
RVJUX1VOVVNFRChlbGVtZW50LCBlbGVtZW50KTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
SFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlSFRNTEVsZW1lbnRUYXNrKFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gY3VycmVudE5vZGUsIFBhc3NSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBmb3Jt
LCBQYXNzUmVmUHRyPEF0b21pY0hUTUxUb2tlbj4gdG9rZW4sIEZyYWdtZW50U2NyaXB0aW5nUGVy
bWlzc2lvbiBmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pCisgICAgICAgIDogSFRNTFBhcnNl
ckRPTU11dGF0aW9uVGFzayhDcmVhdGVIVE1MRWxlbWVudCkKKyAgICAgICAgLCBtX2N1cnJlbnRO
b2RlKGN1cnJlbnROb2RlKQorICAgICAgICAsIG1fZm9ybShmb3JtKQorICAgICAgICAsIG1fdG9r
ZW4odG9rZW4pCisgICAgICAgICwgbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24oZnJhZ21l
bnRTY3JpcHRpbmdQZXJtaXNzaW9uKQorICAgIHsKKyAgICB9CisKKyAgICBSZWZQdHI8Q29udGFp
bmVyTm9kZT4gbV9jdXJyZW50Tm9kZTsKKyAgICBSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBtX2Zv
cm07CisgICAgUmVmUHRyPEF0b21pY0hUTUxUb2tlbj4gbV90b2tlbjsKKyAgICBGcmFnbWVudFNj
cmlwdGluZ1Blcm1pc3Npb24gbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb247Cit9OworCitj
bGFzcyBIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MU2NyaXB0RWxlbWVudFRhc2sgOiBw
dWJsaWMgSFRNTFBhcnNlckRPTU11dGF0aW9uVGFzayB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8SFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlSFRNTFNjcmlwdEVsZW1lbnRUYXNr
PiBjcmVhdGUoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBjdXJyZW50Tm9kZSwgUGFzc1JlZlB0
cjxBdG9taWNIVE1MVG9rZW4+IHRva2VuLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gZnJh
Z21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLCBib29sIGlzUGFyc2luZ0ZyYWdtZW50KQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVI
VE1MU2NyaXB0RWxlbWVudFRhc2soY3VycmVudE5vZGUsIHRva2VuLCBmcmFnbWVudFNjcmlwdGlu
Z1Blcm1pc3Npb24sIGlzUGFyc2luZ0ZyYWdtZW50KSk7CisgICAgfQorCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8RWxlbWVudD4gZG9QZXJmb3JtVGFzayhDb250YWluZXJOb2RlKiBjdXJyZW50Tm9k
ZSwgQXRvbWljSFRNTFRva2VuKiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLCBib29sIGlz
UGFyc2luZ0ZyYWdtZW50KTsKKworICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzaygpCisgICAg
eworICAgICAgICAvLyBGSVhNRTogQ2FuJ3QgcXVldWUgZWxlbWVudCBjcmVhdGlvbi4gQWRkIG5v
ZGUgcHJveHkgY2xhc3NlcyBpbiBmb2xsb3ctdXAgY29tbWl0cy4KKyAgICAgICAgUmVmUHRyPEVs
ZW1lbnQ+IGVsZW1lbnQgPSBkb1BlcmZvcm1UYXNrKG1fY3VycmVudE5vZGUuZ2V0KCksIG1fdG9r
ZW4uZ2V0KCksIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLCBtX2lzUGFyc2luZ0ZyYWdt
ZW50KTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChlbGVtZW50LCBlbGVtZW50KTsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgSFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlSFRNTFNjcmlwdEVs
ZW1lbnRUYXNrKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gY3VycmVudE5vZGUsIFBhc3NSZWZQ
dHI8QXRvbWljSFRNTFRva2VuPiB0b2tlbiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIGZy
YWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiwgYm9vbCBpc1BhcnNpbmdGcmFnbWVudCkKKyAgICAg
ICAgOiBIVE1MUGFyc2VyRE9NTXV0YXRpb25UYXNrKENyZWF0ZUhUTUxTY3JpcHRFbGVtZW50KQor
ICAgICAgICAsIG1fY3VycmVudE5vZGUoY3VycmVudE5vZGUpCisgICAgICAgICwgbV90b2tlbih0
b2tlbikKKyAgICAgICAgLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbihmcmFnbWVudFNj
cmlwdGluZ1Blcm1pc3Npb24pCisgICAgICAgICwgbV9pc1BhcnNpbmdGcmFnbWVudChpc1BhcnNp
bmdGcmFnbWVudCkKKyAgICB7CisgICAgfQorCisgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1f
Y3VycmVudE5vZGU7CisgICAgUmVmUHRyPEF0b21pY0hUTUxUb2tlbj4gbV90b2tlbjsKKyAgICBG
cmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb247
CisgICAgYm9vbCBtX2lzUGFyc2luZ0ZyYWdtZW50OworfTsKKworY2xhc3MgSFRNTFBhcnNlckRP
TU11dGF0aW9uQ3JlYXRlSFRNTEh0bWxFbGVtZW50VGFzayA6IHB1YmxpYyBIVE1MUGFyc2VyRE9N
TXV0YXRpb25UYXNrIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MUGFyc2Vy
RE9NTXV0YXRpb25DcmVhdGVIVE1MSHRtbEVsZW1lbnRUYXNrPiBjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZW50LCBQYXNzUmVmUHRyPEF0b21pY0hUTUxUb2tlbj4gdG9rZW4sIEZyYWdtZW50U2NyaXB0
aW5nUGVybWlzc2lvbiBmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxIdG1s
RWxlbWVudFRhc2soZG9jdW1lbnQsIHRva2VuLCBmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24p
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MSHRtbEVsZW1lbnQ+IGRvUGVy
Zm9ybVRhc2soRG9jdW1lbnQqLCBBdG9taWNIVE1MVG9rZW4qLCBGcmFnbWVudFNjcmlwdGluZ1Bl
cm1pc3Npb24pOworCisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKCkKKyAgICB7CisgICAg
ICAgIC8vIEZJWE1FOiBDYW4ndCBxdWV1ZSBlbGVtZW50IGNyZWF0aW9uLiBBZGQgbm9kZSBwcm94
eSBjbGFzc2VzIGluIGZvbGxvdy11cCBjb21taXRzLgorICAgICAgICBSZWZQdHI8SFRNTEh0bWxF
bGVtZW50PiBlbGVtZW50ID0gZG9QZXJmb3JtVGFzayhtX2RvY3VtZW50LCBtX3Rva2VuLmdldCgp
LCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CisgICAgICAgIEFTU0VSVF9VTlVTRUQo
ZWxlbWVudCwgZWxlbWVudCk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworCisgICAg
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgfQorCitwcml2YXRlOgorICAgIEhUTUxQYXJzZXJE
T01NdXRhdGlvbkNyZWF0ZUhUTUxIdG1sRWxlbWVudFRhc2soRG9jdW1lbnQqIGRvY3VtZW50LCBQ
YXNzUmVmUHRyPEF0b21pY0hUTUxUb2tlbj4gdG9rZW4sIEZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbiBmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pCisgICAgICAgIDogSFRNTFBhcnNlckRP
TU11dGF0aW9uVGFzayhDcmVhdGVIVE1MSHRtbEVsZW1lbnQpCisgICAgICAgICwgbV9kb2N1bWVu
dChkb2N1bWVudCkKKyAgICAgICAgLCBtX3Rva2VuKHRva2VuKQorICAgICAgICAsIG1fZnJhZ21l
bnRTY3JpcHRpbmdQZXJtaXNzaW9uKGZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbikKKyAgICB7
CisgICAgfQorCisgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAgUmVmUHRyPEF0b21pY0hU
TUxUb2tlbj4gbV90b2tlbjsKKyAgICBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gbV9mcmFn
bWVudFNjcmlwdGluZ1Blcm1pc3Npb247Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBIVE1MUGFyc2VyRE9NTXV0YXRpb25UYXNrX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157451</attachid>
            <date>2012-08-09 05:34:31 -0700</date>
            <delta_ts>2013-09-05 08:33:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93608-20120809213357.patch</filename>
            <type>text/plain</type>
            <size>22957</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY1OTU3NTVkMGI4YzQ2
YjljMmQ1NDQzM2FhNmE2MWMwOGY1ZjVhNC4uNTQ2ODYzZjIwMzdmZjFhNTc2MmE1ZTU1MzBhNjMz
YTgzMGU4Y2RkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYyIEBACiAyMDEyLTA4LTA5ICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CiAKKyAgICAgICAgTW92ZSBlbGVtZW50
IGNyZWF0aW9uIG1ldGhvZHMgaW4gSFRNTENvbnN0cnVjdGlvblNpdGUgdG8gSFRNTFBhcnNlckRP
TU11dGF0aW9uUXVldWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MzYwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEVsZW1lbnQgY3JlYXRpb24gaXRzZWxmIGFsc28gYmVsb25ncyB0byBET00gbW9kaWZp
Y2F0aW9ucy4gTW92ZSBlbGVtZW50IGNyZWF0aW9uIG1ldGhvZHMKKyAgICAgICAgdXNlZCBpbiBI
VE1MQ29uc3RydWN0aW9uU2l0ZSB0byBIVE1MUGFyc2VyRE9NTXV0YXRpb25RdWV1ZS4KKworICAg
ICAgICBUaGlzIHBhdGNoIGRvZXMgbm90IGltcGxlbWVudCBxdWV1ZWluZyBvZiBlbGVtZW50IGNy
ZWF0aW9uIGJlY2F1c2Ugd2UgY2FuJ3QgcXVldWUgZWxlbWVudAorICAgICAgICBjcmVhdGlvbiBh
dCB0aGUgbW9tZW50LiBBZnRlciBhZGRpbmcgbm9kZSBwcm94eSBjbGFzc2VzIGluIGZvbGx1cCBj
b21taXRzLCB3ZSBjYW4gcXVldWUgYWxsCisgICAgICAgIERPTSBtb2RpZmljYXRpb25zIGluY2x1
ZGluZyBlbGVtZW50IGNyZWF0aW9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgcmVmYWN0b3Jp
bmcgb25seS4KKworICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRIVE1MSHRt
bFN0YXJ0VGFnQmVmb3JlSFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9u
U2l0ZTo6aW5zZXJ0U2NyaXB0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3Ry
dWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3Ry
dWN0aW9uU2l0ZTo6Y3JlYXRlSFRNTEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlSFRNTFNjcmlwdEVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6OmNyZWF0ZUhUTUxI
dG1sRWxlbWVudCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUu
aDoKKyAgICAgICAgKEhUTUxDb25zdHJ1Y3Rpb25TaXRlKToKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9IVE1MUGFyc2VyRE9NTXV0YXRpb25RdWV1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBh
cnNlckRPTU11dGF0aW9uUXVldWU6OmNyZWF0ZUVsZW1lbnQpOgorICAgICAgICAoSFRNTFBhcnNl
ckRPTU11dGF0aW9uUXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlckRPTU11dGF0
aW9uUXVldWU6OmNyZWF0ZUhUTUxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJz
ZXJET01NdXRhdGlvblF1ZXVlOjpjcmVhdGVIVE1MU2NyaXB0RWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MUGFyc2VyRE9NTXV0YXRpb25RdWV1ZTo6Y3JlYXRlSFRNTEh0bWxFbGVtZW50
KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MUGFyc2VyRE9NTXV0YXRpb25UYXNrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUVsZW1lbnRUYXNr
Ojpkb1BlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlSFRNTEVsZW1lbnRUYXNrOjpkb1BlcmZvcm1UYXNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxTY3Jp
cHRFbGVtZW50VGFzazo6ZG9QZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGFy
c2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MSHRtbEVsZW1lbnRUYXNrOjpkb1BlcmZvcm1UYXNrKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MUGFyc2VyRE9NTXV0YXRpb25UYXNrLmg6CisgICAg
ICAgIChIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVFbGVtZW50VGFzayk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVFbGVtZW50VGFzazo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUVsZW1lbnRUYXNr
OjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGFyc2VyRE9NTXV0YXRpb25D
cmVhdGVFbGVtZW50VGFzazo6SFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlRWxlbWVudFRhc2sp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVh
dGVIVE1MRWxlbWVudFRhc2spOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlckRPTU11dGF0
aW9uQ3JlYXRlSFRNTEVsZW1lbnRUYXNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlSFRNTEVsZW1lbnRUYXNrOjpwZXJmb3JtVGFzayk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MRWxlbWVudFRh
c2s6OkhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxFbGVtZW50VGFzayk6CisgICAgICAg
IChIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MU2NyaXB0RWxlbWVudFRhc2spOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlSFRNTFNjcmlwdEVsZW1l
bnRUYXNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlckRPTU11dGF0aW9u
Q3JlYXRlSFRNTFNjcmlwdEVsZW1lbnRUYXNrOjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MU2NyaXB0RWxlbWVudFRhc2s6OkhU
TUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxTY3JpcHRFbGVtZW50VGFzayk6CisgICAgICAg
IChIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MSHRtbEVsZW1lbnRUYXNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxIdG1sRWxlbWVudFRh
c2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVh
dGVIVE1MSHRtbEVsZW1lbnRUYXNrOjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MSHRtbEVsZW1lbnRUYXNrOjpIVE1MUGFyc2Vy
RE9NTXV0YXRpb25DcmVhdGVIVE1MSHRtbEVsZW1lbnRUYXNrKToKKworMjAxMi0wOC0wOSAgS3dh
bmcgWXVsIFNlbyAgPHNreXVsQGNvbXBhbnkxMDAubmV0PgorCiAgICAgICAgIEV4dHJhY3QgRE9N
IG1vZGlmaWNhdGlvbnMgaW4gdGhlIEhUTUw1IHBhcnNlciBpbnRvIEhUTUxQYXJzZXJET01NdXRh
dGlvblF1ZXVlLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTM0NTUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0
cnVjdGlvblNpdGUuY3BwCmluZGV4IGQxZDY1NDcyYzEzMzA5MTA3YjJmNDk3MjBmMzU4ZjkyZjIw
MTAzNTEuLjU4ODg3ODY2YTBiZGFjOGE2ZjU2OTljMTkzMGI1NTNmYzNkNjBhN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAK
QEAgLTEzMSw4ICsxMzEsNyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpkaXNwYXRjaERv
Y3VtZW50RWxlbWVudEF2YWlsYWJsZUlmTmVlZGVkKCkKIAogdm9pZCBIVE1MQ29uc3RydWN0aW9u
U2l0ZTo6aW5zZXJ0SFRNTEh0bWxTdGFydFRhZ0JlZm9yZUhUTUwoQXRvbWljSFRNTFRva2VuKiB0
b2tlbikKIHsKLSAgICBSZWZQdHI8SFRNTEh0bWxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEh0bWxF
bGVtZW50OjpjcmVhdGUobV9kb2N1bWVudCk7Ci0gICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0cmli
dXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7
CisgICAgUmVmUHRyPEhUTUxIdG1sRWxlbWVudD4gZWxlbWVudCA9IGNyZWF0ZUhUTUxIdG1sRWxl
bWVudCh0b2tlbik7CiAgICAgYXR0YWNoTGF0ZXIobV9hdHRhY2htZW50Um9vdCwgZWxlbWVudCk7
CiAgICAgbV9vcGVuRWxlbWVudHMucHVzaEhUTUxIdG1sRWxlbWVudChIVE1MU3RhY2tJdGVtOjpj
cmVhdGUoZWxlbWVudCwgdG9rZW4pKTsKIApAQCAtMjU0LDE2ICsyNTMsNyBAQCB2b2lkIEhUTUxD
b25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRGb3JtYXR0aW5nRWxlbWVudChBdG9taWNIVE1MVG9rZW4q
IHRva2VuKQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRTY3JpcHRFbGVtZW50
KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCiB7Ci0gICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3Jn
L3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2Uvc2NyaXB0aW5nLTEuaHRtbCNh
bHJlYWR5LXN0YXJ0ZWQKLSAgICAvLyBodHRwOi8vaHRtbDUub3JnL3NwZWNzL2RvbS1wYXJzaW5n
Lmh0bWwjZG9tLXJhbmdlLWNyZWF0ZWNvbnRleHR1YWxmcmFnbWVudAotICAgIC8vIEZvciBjcmVh
dGVDb250ZXh0dWFsRnJhZ21lbnQsIHRoZSBzcGVjaWZpY2F0aW9ucyBzYXkgdG8gbWFyayBpdCBw
YXJzZXItaW5zZXJ0ZWQgYW5kIGFscmVhZHktc3RhcnRlZCBhbmQgbGF0ZXIgdW5tYXJrIHRoZW0u
Ci0gICAgLy8gSG93ZXZlciwgd2Ugc2hvcnQgY2lyY3VpdCB0aGF0IGxvZ2ljIHRvIGF2b2lkIHRo
ZSBzdWJ0cmVlIHRyYXZlcnNhbCB0byBmaW5kIHNjcmlwdCBlbGVtZW50cyBzaW5jZSBzY3JpcHRz
IGNhbiBuZXZlciBzZWUKLSAgICAvLyB0aG9zZSBmbGFncyBvciBlZmZlY3RzIHRoZXJlb2YuCi0g
ICAgY29uc3QgYm9vbCBwYXJzZXJJbnNlcnRlZCA9IG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNz
aW9uICE9IEFsbG93U2NyaXB0aW5nQ29udGVudEFuZERvTm90TWFya0FscmVhZHlTdGFydGVkOwot
ICAgIGNvbnN0IGJvb2wgYWxyZWFkeVN0YXJ0ZWQgPSBtX2lzUGFyc2luZ0ZyYWdtZW50ICYmIHBh
cnNlckluc2VydGVkOwotICAgIFJlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4gZWxlbWVudCA9IEhU
TUxTY3JpcHRFbGVtZW50OjpjcmVhdGUoc2NyaXB0VGFnLCBjdXJyZW50Tm9kZSgpLT5kb2N1bWVu
dCgpLCBwYXJzZXJJbnNlcnRlZCwgYWxyZWFkeVN0YXJ0ZWQpOwotICAgIGlmIChtX2ZyYWdtZW50
U2NyaXB0aW5nUGVybWlzc2lvbiAhPSBEaXNhbGxvd1NjcmlwdGluZ0NvbnRlbnQpCi0gICAgICAg
IGVsZW1lbnQtPnBhcnNlclNldEF0dHJpYnV0ZXModG9rZW4tPmF0dHJpYnV0ZXMoKSwgbV9mcmFn
bWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOworICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0g
Y3JlYXRlSFRNTFNjcmlwdEVsZW1lbnQodG9rZW4pOwogICAgIGF0dGFjaExhdGVyKGN1cnJlbnRO
b2RlKCksIGVsZW1lbnQpOwogICAgIG1fb3BlbkVsZW1lbnRzLnB1c2goSFRNTFN0YWNrSXRlbTo6
Y3JlYXRlKGVsZW1lbnQucmVsZWFzZSgpLCB0b2tlbikpOwogfQpAQCAtMjkxLDIyICsyODEsMjIg
QEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0VGV4dE5vZGUoY29uc3QgU3RyaW5n
JiBjaGFyYWN0ZXJzLCBXaGl0ZXNwYWNlTW8KIAogUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MQ29u
c3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVudChBdG9taWNIVE1MVG9rZW4qIHRva2VuLCBjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSkKIHsKLSAgICBRdWFsaWZpZWROYW1lIHRhZ05h
bWUobnVsbEF0b20sIHRva2VuLT5uYW1lKCksIG5hbWVzcGFjZVVSSSk7Ci0gICAgUmVmUHRyPEVs
ZW1lbnQ+IGVsZW1lbnQgPSBjdXJyZW50Tm9kZSgpLT5kb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50
KHRhZ05hbWUsIHRydWUpOwotICAgIGVsZW1lbnQtPnBhcnNlclNldEF0dHJpYnV0ZXModG9rZW4t
PmF0dHJpYnV0ZXMoKSwgbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwotICAgIHJldHVy
biBlbGVtZW50LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gbV9kb21NdXRhdGlvblF1ZXVlLT5jcmVh
dGVFbGVtZW50KGN1cnJlbnROb2RlKCksIHRva2VuLCBuYW1lc3BhY2VVUkksIG1fZnJhZ21lbnRT
Y3JpcHRpbmdQZXJtaXNzaW9uKTsKIH0KIAogUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3Ry
dWN0aW9uU2l0ZTo6Y3JlYXRlSFRNTEVsZW1lbnQoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKIHsK
LSAgICBRdWFsaWZpZWROYW1lIHRhZ05hbWUobnVsbEF0b20sIHRva2VuLT5uYW1lKCksIHhodG1s
TmFtZXNwYWNlVVJJKTsKLSAgICAvLyBGSVhNRTogVGhpcyBjYW4ndCB1c2UgSFRNTENvbnN0cnVj
dGlvblNpdGU6OmNyZWF0ZUVsZW1lbnQgYmVjYXVzZSB3ZQotICAgIC8vIGhhdmUgdG8gcGFzcyB0
aGUgY3VycmVudCBmb3JtIGVsZW1lbnQuICBXZSBzaG91bGQgcmV3b3JrIGZvcm0gYXNzb2NpYXRp
b24KLSAgICAvLyB0byBvY2N1ciBhZnRlciBjb25zdHJ1Y3Rpb24gdG8gYWxsb3cgYmV0dGVyIGNv
ZGUgc2hhcmluZyBoZXJlLgotICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEVsZW1l
bnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudCh0YWdOYW1lLCBjdXJyZW50Tm9kZSgpLT5kb2N1
bWVudCgpLCBmb3JtKCksIHRydWUpOwotICAgIGVsZW1lbnQtPnBhcnNlclNldEF0dHJpYnV0ZXMo
dG9rZW4tPmF0dHJpYnV0ZXMoKSwgbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwotICAg
IEFTU0VSVChlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkpOwotICAgIHJldHVybiBlbGVtZW50LnJl
bGVhc2UoKTsKKyAgICByZXR1cm4gbV9kb21NdXRhdGlvblF1ZXVlLT5jcmVhdGVIVE1MRWxlbWVu
dChjdXJyZW50Tm9kZSgpLCBmb3JtKCksIHRva2VuLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbik7Cit9CisKK1Bhc3NSZWZQdHI8RWxlbWVudD4gSFRNTENvbnN0cnVjdGlvblNpdGU6OmNy
ZWF0ZUhUTUxTY3JpcHRFbGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCit7CisgICAgcmV0
dXJuIG1fZG9tTXV0YXRpb25RdWV1ZS0+Y3JlYXRlSFRNTFNjcmlwdEVsZW1lbnQoY3VycmVudE5v
ZGUoKSwgdG9rZW4sIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLCBtX2lzUGFyc2luZ0Zy
YWdtZW50KTsKK30KKworUGFzc1JlZlB0cjxIVE1MSHRtbEVsZW1lbnQ+IEhUTUxDb25zdHJ1Y3Rp
b25TaXRlOjpjcmVhdGVIVE1MSHRtbEVsZW1lbnQoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKK3sK
KyAgICByZXR1cm4gbV9kb21NdXRhdGlvblF1ZXVlLT5jcmVhdGVIVE1MSHRtbEVsZW1lbnQobV9k
b2N1bWVudCwgdG9rZW4sIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKIH0KIAogUGFz
c1JlZlB0cjxIVE1MU3RhY2tJdGVtPiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6Y3JlYXRlRWxlbWVu
dEZyb21TYXZlZFRva2VuKEhUTUxTdGFja0l0ZW0qIGl0ZW0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaAppbmRleCA0MTU0ZjVkYmUzNDY4
MGZmYmJmMmYwNTMyYzg4MjI5YzQ1NGRhYTg2Li5mZTVmMDY0ZThkNmY0MjJiZDE1ZmQ4ZjRiZmI0
MjMzZmYzMTAxNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
Q29uc3RydWN0aW9uU2l0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxD
b25zdHJ1Y3Rpb25TaXRlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFz
cyBIVE1MUGFyc2VyRE9NTXV0YXRpb25RdWV1ZTsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBIVE1M
Rm9ybUVsZW1lbnQ7CitjbGFzcyBIVE1MSHRtbEVsZW1lbnQ7CiAKIGNsYXNzIEhUTUxDb25zdHJ1
Y3Rpb25TaXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShIVE1MQ29uc3RydWN0aW9uU2l0
ZSk7CkBAIC0xMzcsOCArMTM4LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBhdHRhY2hDb21tZW50
T25Eb2N1bWVudExhdGVyKENvbnRhaW5lck5vZGUqIHBhcmVudCwgY29uc3QgU3RyaW5nJiBjb21t
ZW50KTsKICAgICB2b2lkIGF0dGFjaERvY3R5cGVMYXRlcihDb250YWluZXJOb2RlKiBhdHRhY2ht
ZW50Um9vdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHB1YmxpY0lkLCBjb25z
dCBTdHJpbmcmIHN5c3RlbUlkKTsKIAotICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlSFRN
TEVsZW1lbnQoQXRvbWljSFRNTFRva2VuKik7CiAgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVh
dGVFbGVtZW50KEF0b21pY0hUTUxUb2tlbiosIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNl
VVJJKTsKKyAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUhUTUxFbGVtZW50KEF0b21pY0hU
TUxUb2tlbiopOworICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlSFRNTFNjcmlwdEVsZW1l
bnQoQXRvbWljSFRNTFRva2VuKik7CisgICAgUGFzc1JlZlB0cjxIVE1MSHRtbEVsZW1lbnQ+IGNy
ZWF0ZUhUTUxIdG1sRWxlbWVudChBdG9taWNIVE1MVG9rZW4qKTsKIAogICAgIHZvaWQgZGlzcGF0
Y2hEb2N1bWVudEVsZW1lbnRBdmFpbGFibGVJZk5lZWRlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyRE9NTXV0YXRpb25RdWV1ZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlckRPTU11dGF0aW9uUXVldWUuaAppbmRl
eCAyNzdiMzVjYzYyNzE0OWQ0YjhmOThkYTQzNDcwNDhmZGM2NzdhM2FhLi44MmE3NTU4N2E0MDgz
NTRmYTNmMzZiYTIxOGRiNDAxODk2ZWEzOTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MUGFyc2VyRE9NTXV0YXRpb25RdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJET01NdXRhdGlvblF1ZXVlLmgKQEAgLTIyOSw2ICsy
MjksNTQgQEAgcHVibGljOgogCiAgICAgdm9pZCBmbHVzaCgpOwogCisgICAgUGFzc1JlZlB0cjxF
bGVtZW50PiBjcmVhdGVFbGVtZW50KENvbnRhaW5lck5vZGUqIGN1cnJlbnROb2RlLCBBdG9taWNI
VE1MVG9rZW4qIHRva2VuLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgRnJhZ21l
bnRTY3JpcHRpbmdQZXJtaXNzaW9uIGZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbikKKyAgICB7
CisgICAgICAgIC8vIEZJWE1FOiBDYW4ndCBxdWV1ZSBlbGVtZW50IGNyZWF0aW9uLiBBZGQgbm9k
ZSBwcm94eSBjbGFzc2VzIGluIGZvbGxvdy11cCBjb21taXRzLgorICAgICAgICBpZiAobV9pc1Nw
ZWN1bGF0aW5nKSB7CisgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQor
CisgICAgICAgIHJldHVybiBIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVFbGVtZW50VGFzazo6
ZG9QZXJmb3JtVGFzayhjdXJyZW50Tm9kZSwgdG9rZW4sIG5hbWVzcGFjZVVSSSwgZnJhZ21lbnRT
Y3JpcHRpbmdQZXJtaXNzaW9uKTsKKyAgICB9CisKKyAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNy
ZWF0ZUhUTUxFbGVtZW50KENvbnRhaW5lck5vZGUqIGN1cnJlbnROb2RlLCBIVE1MRm9ybUVsZW1l
bnQqIGZvcm0sIEF0b21pY0hUTUxUb2tlbiogdG9rZW4sIEZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbiBmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pCisgICAgeworICAgICAgICAvLyBGSVhN
RTogQ2FuJ3QgcXVldWUgZWxlbWVudCBjcmVhdGlvbi4gQWRkIG5vZGUgcHJveHkgY2xhc3NlcyBp
biBmb2xsb3ctdXAgY29tbWl0cy4KKyAgICAgICAgaWYgKG1faXNTcGVjdWxhdGluZykgeworICAg
ICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4g
SFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlSFRNTEVsZW1lbnRUYXNrOjpkb1BlcmZvcm1UYXNr
KGN1cnJlbnROb2RlLCBmb3JtLCB0b2tlbiwgZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsK
KyAgICB9CisKKyAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUhUTUxTY3JpcHRFbGVtZW50
KENvbnRhaW5lck5vZGUqIGN1cnJlbnROb2RlLCBBdG9taWNIVE1MVG9rZW4qIHRva2VuLCBGcmFn
bWVudFNjcmlwdGluZ1Blcm1pc3Npb24gZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLCBib29s
IGlzUGFzaW5nRnJhZ21lbnQpCisgICAgeworICAgICAgICAvLyBGSVhNRTogQ2FuJ3QgcXVldWUg
ZWxlbWVudCBjcmVhdGlvbi4gQWRkIG5vZGUgcHJveHkgY2xhc3NlcyBpbiBmb2xsb3ctdXAgY29t
bWl0cy4KKyAgICAgICAgaWYgKG1faXNTcGVjdWxhdGluZykgeworICAgICAgICAgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gSFRNTFBhcnNlckRPTU11
dGF0aW9uQ3JlYXRlSFRNTFNjcmlwdEVsZW1lbnRUYXNrOjpkb1BlcmZvcm1UYXNrKGN1cnJlbnRO
b2RlLCB0b2tlbiwgZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLCBpc1Bhc2luZ0ZyYWdtZW50
KTsKKyAgICB9CisKKyAgICBQYXNzUmVmUHRyPEhUTUxIdG1sRWxlbWVudD4gY3JlYXRlSFRNTEh0
bWxFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgQXRvbWljSFRNTFRva2VuKiB0b2tlbiwgRnJh
Z21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIGZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbikKKyAg
ICB7CisgICAgICAgIC8vIEZJWE1FOiBDYW4ndCBxdWV1ZSBlbGVtZW50IGNyZWF0aW9uLiBBZGQg
bm9kZSBwcm94eSBjbGFzc2VzIGluIGZvbGxvdy11cCBjb21taXRzLgorICAgICAgICBpZiAobV9p
c1NwZWN1bGF0aW5nKSB7CisgICAgICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
fQorCisgICAgICAgIHJldHVybiBIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MSHRtbEVs
ZW1lbnRUYXNrOjpkb1BlcmZvcm1UYXNrKGRvY3VtZW50LCB0b2tlbiwgZnJhZ21lbnRTY3JpcHRp
bmdQZXJtaXNzaW9uKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgSFRNTFBhcnNlckRPTU11dGF0
aW9uUXVldWUoKQogICAgICAgICA6IG1faXNTcGVjdWxhdGluZyhmYWxzZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJET01NdXRhdGlvblRhc2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlckRPTU11dGF0aW9uVGFzay5j
cHAKaW5kZXggN2I0ZjQxMjQ5ODRhOGYzM2FjODdjNjYwZjNmYTdlYjBhMzkwMjU1Ny4uM2QzZWM0
ODY2MzE0YTA3ZWM4MzhlOTA5MDdiMzhjN2UyNzc1ODQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlckRPTU11dGF0aW9uVGFzay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlckRPTU11dGF0aW9uVGFzay5jcHAKQEAg
LTMxLDggKzMxLDExIEBACiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRWxl
bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnRGYWN0b3J5
LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEh0bWxFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1l
bnQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTIzMyw2
ICsyMzYsNDggQEAgdm9pZCBIVE1MUGFyc2VyRE9NTXV0YXRpb25TZXRDb21wYXRpYmlsaXR5TW9k
ZUZyb21Eb2N0eXBlVGFzazo6ZG9QZXJmb3JtVGFzayhEb2MKICAgICBkb2N1bWVudC0+c2V0Q29t
cGF0aWJpbGl0eU1vZGVGcm9tRG9jdHlwZSgpOwogfQogCitQYXNzUmVmUHRyPEVsZW1lbnQ+IEhU
TUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUVsZW1lbnRUYXNrOjpkb1BlcmZvcm1UYXNrKENvbnRh
aW5lck5vZGUqIGN1cnJlbnROb2RlLCBBdG9taWNIVE1MVG9rZW4qIHRva2VuLCBjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIGZyYWdt
ZW50U2NyaXB0aW5nUGVybWlzc2lvbikKK3sKKyAgICBRdWFsaWZpZWROYW1lIHRhZ05hbWUobnVs
bEF0b20sIHRva2VuLT5uYW1lKCksIG5hbWVzcGFjZVVSSSk7CisgICAgUmVmUHRyPEVsZW1lbnQ+
IGVsZW1lbnQgPSBjdXJyZW50Tm9kZS0+ZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudCh0YWdOYW1l
LCB0cnVlKTsKKyAgICBlbGVtZW50LT5wYXJzZXJTZXRBdHRyaWJ1dGVzKHRva2VuLT5hdHRyaWJ1
dGVzKCksIGZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CisgICAgcmV0dXJuIGVsZW1lbnQu
cmVsZWFzZSgpOworfQorCitQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxQYXJzZXJET01NdXRhdGlv
bkNyZWF0ZUhUTUxFbGVtZW50VGFzazo6ZG9QZXJmb3JtVGFzayhDb250YWluZXJOb2RlKiBjdXJy
ZW50Tm9kZSwgSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBBdG9taWNIVE1MVG9rZW4qIHRva2VuLCBG
cmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKQor
eworICAgIFF1YWxpZmllZE5hbWUgdGFnTmFtZShudWxsQXRvbSwgdG9rZW4tPm5hbWUoKSwgSFRN
TE5hbWVzOjp4aHRtbE5hbWVzcGFjZVVSSSk7CisgICAgLy8gRklYTUU6IFRoaXMgY2FuJ3QgdXNl
IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50IGJlY2F1c2Ugd2UKKyAgICAvLyBo
YXZlIHRvIHBhc3MgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50LiBXZSBzaG91bGQgcmV3b3JrIGZv
cm0gYXNzb2NpYXRpb24KKyAgICAvLyB0byBvY2N1ciBhZnRlciBjb25zdHJ1Y3Rpb24gdG8gYWxs
b3cgYmV0dGVyIGNvZGUgc2hhcmluZyBoZXJlLgorICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50
ID0gSFRNTEVsZW1lbnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudCh0YWdOYW1lLCBjdXJyZW50
Tm9kZS0+ZG9jdW1lbnQoKSwgZm9ybSwgdHJ1ZSk7CisgICAgZWxlbWVudC0+cGFyc2VyU2V0QXR0
cmlidXRlcyh0b2tlbi0+YXR0cmlidXRlcygpLCBmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24p
OworICAgIEFTU0VSVChlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkpOworICAgIHJldHVybiBlbGVt
ZW50LnJlbGVhc2UoKTsKK30KKworUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MUGFyc2VyRE9NTXV0
YXRpb25DcmVhdGVIVE1MU2NyaXB0RWxlbWVudFRhc2s6OmRvUGVyZm9ybVRhc2soQ29udGFpbmVy
Tm9kZSogY3VycmVudE5vZGUsIEF0b21pY0hUTUxUb2tlbiogdG9rZW4sIEZyYWdtZW50U2NyaXB0
aW5nUGVybWlzc2lvbiBmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24sIGJvb2wgaXNQYXJzaW5n
RnJhZ21lbnQpCit7CisgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBz
L2N1cnJlbnQtd29yay9tdWx0aXBhZ2Uvc2NyaXB0aW5nLTEuaHRtbCNhbHJlYWR5LXN0YXJ0ZWQK
KyAgICAvLyBodHRwOi8vaHRtbDUub3JnL3NwZWNzL2RvbS1wYXJzaW5nLmh0bWwjZG9tLXJhbmdl
LWNyZWF0ZWNvbnRleHR1YWxmcmFnbWVudAorICAgIC8vIEZvciBjcmVhdGVDb250ZXh0dWFsRnJh
Z21lbnQsIHRoZSBzcGVjaWZpY2F0aW9ucyBzYXkgdG8gbWFyayBpdCBwYXJzZXItaW5zZXJ0ZWQg
YW5kIGFscmVhZHktc3RhcnRlZCBhbmQgbGF0ZXIgdW5tYXJrIHRoZW0uCisgICAgLy8gSG93ZXZl
ciwgd2Ugc2hvcnQgY2lyY3VpdCB0aGF0IGxvZ2ljIHRvIGF2b2lkIHRoZSBzdWJ0cmVlIHRyYXZl
cnNhbCB0byBmaW5kIHNjcmlwdCBlbGVtZW50cyBzaW5jZSBzY3JpcHRzIGNhbiBuZXZlciBzZWUK
KyAgICAvLyB0aG9zZSBmbGFncyBvciBlZmZlY3RzIHRoZXJlb2YuCisgICAgY29uc3QgYm9vbCBw
YXJzZXJJbnNlcnRlZCA9IGZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiAhPSBBbGxvd1Njcmlw
dGluZ0NvbnRlbnRBbmREb05vdE1hcmtBbHJlYWR5U3RhcnRlZDsKKyAgICBjb25zdCBib29sIGFs
cmVhZHlTdGFydGVkID0gaXNQYXJzaW5nRnJhZ21lbnQgJiYgcGFyc2VySW5zZXJ0ZWQ7CisgICAg
UmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50PiBlbGVtZW50ID0gSFRNTFNjcmlwdEVsZW1lbnQ6OmNy
ZWF0ZShIVE1MTmFtZXM6OnNjcmlwdFRhZywgY3VycmVudE5vZGUtPmRvY3VtZW50KCksIHBhcnNl
ckluc2VydGVkLCBhbHJlYWR5U3RhcnRlZCk7CisgICAgaWYgKGZyYWdtZW50U2NyaXB0aW5nUGVy
bWlzc2lvbiAhPSBEaXNhbGxvd1NjcmlwdGluZ0NvbnRlbnQpCisgICAgICAgIGVsZW1lbnQtPnBh
cnNlclNldEF0dHJpYnV0ZXModG9rZW4tPmF0dHJpYnV0ZXMoKSwgZnJhZ21lbnRTY3JpcHRpbmdQ
ZXJtaXNzaW9uKTsKKyAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7Cit9CisKK1Bhc3NSZWZQ
dHI8SFRNTEh0bWxFbGVtZW50PiBIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MSHRtbEVs
ZW1lbnRUYXNrOjpkb1BlcmZvcm1UYXNrKERvY3VtZW50KiBkb2N1bWVudCwgQXRvbWljSFRNTFRv
a2VuKiB0b2tlbiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIGZyYWdtZW50U2NyaXB0aW5n
UGVybWlzc2lvbikKK3sKKyAgICBSZWZQdHI8SFRNTEh0bWxFbGVtZW50PiBlbGVtZW50ID0gSFRN
TEh0bWxFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGVsZW1lbnQtPnBhcnNlclNldEF0
dHJpYnV0ZXModG9rZW4tPmF0dHJpYnV0ZXMoKSwgZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9u
KTsKKyAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7Cit9CisKIEhUTUxQYXJzZXJET01NdXRh
dGlvblRhc2s6On5IVE1MUGFyc2VyRE9NTXV0YXRpb25UYXNrKCkKIHsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJET01NdXRhdGlvblRhc2suaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJET01NdXRhdGlvblRhc2suaApp
bmRleCBkYTcxMjIwMjMwOGEwMzhhODc5YjA3NzQzYTIzYjI5MmFkNzZjMWYyLi5lMzFmZThiM2Nm
MzdjNzZjYTNlODA2MjE3MjRlMDUzNDVkZWY1NDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyRE9NTXV0YXRpb25UYXNrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlckRPTU11dGF0aW9uVGFzay5oCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEh0bWxF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKIAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgpAQCAtNTgsNiArNTksMTAgQEAgcHVibGljOgogICAgICAgICBJbnNlcnRDb21tZW50LAog
ICAgICAgICBJbnNlcnRDb21tZW50T25Eb2N1bWVudCwKICAgICAgICAgSW5zZXJ0RG9jdHlwZSwK
KyAgICAgICAgQ3JlYXRlRWxlbWVudCwKKyAgICAgICAgQ3JlYXRlSFRNTEVsZW1lbnQsCisgICAg
ICAgIENyZWF0ZUhUTUxTY3JpcHRFbGVtZW50LAorICAgICAgICBDcmVhdGVIVE1MSHRtbEVsZW1l
bnQKICAgICB9OwogCiAgICAgdmlydHVhbCB+SFRNTFBhcnNlckRPTU11dGF0aW9uVGFzaygpOwpA
QCAtNjMxLDYgKzYzNiwxNDQgQEAgcHJpdmF0ZToKICAgICBjb25zdCBTdHJpbmcgbV9zeXN0ZW1J
ZDsKIH07CiAKK2NsYXNzIEhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUVsZW1lbnRUYXNrIDog
cHVibGljIEhUTUxQYXJzZXJET01NdXRhdGlvblRhc2sgeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUVsZW1lbnRUYXNrPiBjcmVhdGUo
UGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBjdXJyZW50Tm9kZSwgUGFzc1JlZlB0cjxBdG9taWNI
VE1MVG9rZW4+IHRva2VuLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgRnJhZ21l
bnRTY3JpcHRpbmdQZXJtaXNzaW9uIGZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbikKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRl
RWxlbWVudFRhc2soY3VycmVudE5vZGUsIHRva2VuLCBuYW1lc3BhY2VVUkksIGZyYWdtZW50U2Ny
aXB0aW5nUGVybWlzc2lvbikpOworICAgIH0KKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEVsZW1l
bnQ+IGRvUGVyZm9ybVRhc2soQ29udGFpbmVyTm9kZSogY3VycmVudE5vZGUsIEF0b21pY0hUTUxU
b2tlbiosIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBGcmFnbWVudFNjcmlwdGlu
Z1Blcm1pc3Npb24pOworCisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKCkKKyAgICB7Cisg
ICAgICAgIC8vIEZJWE1FOiBDYW4ndCBxdWV1ZSBlbGVtZW50IGNyZWF0aW9uLiBBZGQgbm9kZSBw
cm94eSBjbGFzc2VzIGluIGZvbGxvdy11cCBjb21taXRzLgorICAgICAgICBSZWZQdHI8RWxlbWVu
dD4gZWxlbWVudCA9IGRvUGVyZm9ybVRhc2sobV9jdXJyZW50Tm9kZS5nZXQoKSwgbV90b2tlbi5n
ZXQoKSwgbV9uYW1lc3BhY2VVUkksIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKKyAg
ICAgICAgQVNTRVJUX1VOVVNFRChlbGVtZW50LCBlbGVtZW50KTsKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgSFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlRWxlbWVudFRhc2soUGFzc1JlZlB0
cjxDb250YWluZXJOb2RlPiBjdXJyZW50Tm9kZSwgUGFzc1JlZlB0cjxBdG9taWNIVE1MVG9rZW4+
IHRva2VuLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgRnJhZ21lbnRTY3JpcHRp
bmdQZXJtaXNzaW9uIGZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbikKKyAgICAgICAgOiBIVE1M
UGFyc2VyRE9NTXV0YXRpb25UYXNrKENyZWF0ZUVsZW1lbnQpCisgICAgICAgICwgbV9jdXJyZW50
Tm9kZShjdXJyZW50Tm9kZSkKKyAgICAgICAgLCBtX3Rva2VuKHRva2VuKQorICAgICAgICAsIG1f
bmFtZXNwYWNlVVJJKG5hbWVzcGFjZVVSSSkKKyAgICAgICAgLCBtX2ZyYWdtZW50U2NyaXB0aW5n
UGVybWlzc2lvbihmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pCisgICAgeworICAgIH0KKwor
ICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX2N1cnJlbnROb2RlOworICAgIFJlZlB0cjxBdG9t
aWNIVE1MVG9rZW4+IG1fdG9rZW47CisgICAgY29uc3QgQXRvbWljU3RyaW5nIG1fbmFtZXNwYWNl
VVJJOworICAgIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiBtX2ZyYWdtZW50U2NyaXB0aW5n
UGVybWlzc2lvbjsKK307CisKK2NsYXNzIEhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxF
bGVtZW50VGFzayA6IHB1YmxpYyBIVE1MUGFyc2VyRE9NTXV0YXRpb25UYXNrIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MRWxl
bWVudFRhc2s+IGNyZWF0ZShQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IGN1cnJlbnROb2RlLCBQ
YXNzUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gZm9ybSwgUGFzc1JlZlB0cjxBdG9taWNIVE1MVG9r
ZW4+IHRva2VuLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gZnJhZ21lbnRTY3JpcHRpbmdQ
ZXJtaXNzaW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MUGFyc2Vy
RE9NTXV0YXRpb25DcmVhdGVIVE1MRWxlbWVudFRhc2soY3VycmVudE5vZGUsIGZvcm0sIHRva2Vu
LCBmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pKTsKKyAgICB9CisKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxFbGVtZW50PiBkb1BlcmZvcm1UYXNrKENvbnRhaW5lck5vZGUqIGN1cnJlbnROb2Rl
LCBIVE1MRm9ybUVsZW1lbnQqLCBBdG9taWNIVE1MVG9rZW4qLCBGcmFnbWVudFNjcmlwdGluZ1Bl
cm1pc3Npb24pOworCisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKCkKKyAgICB7CisgICAg
ICAgIC8vIEZJWE1FOiBDYW4ndCBxdWV1ZSBlbGVtZW50IGNyZWF0aW9uLiBBZGQgbm9kZSBwcm94
eSBjbGFzc2VzIGluIGZvbGxvdy11cCBjb21taXRzLgorICAgICAgICBSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCA9IGRvUGVyZm9ybVRhc2sobV9jdXJyZW50Tm9kZS5nZXQoKSwgbV9mb3JtLmdldCgp
LCBtX3Rva2VuLmdldCgpLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CisgICAgICAg
IEFTU0VSVF9VTlVTRUQoZWxlbWVudCwgZWxlbWVudCk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworCisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgfQorCitwcml2YXRlOgor
ICAgIEhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxFbGVtZW50VGFzayhQYXNzUmVmUHRy
PENvbnRhaW5lck5vZGU+IGN1cnJlbnROb2RlLCBQYXNzUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4g
Zm9ybSwgUGFzc1JlZlB0cjxBdG9taWNIVE1MVG9rZW4+IHRva2VuLCBGcmFnbWVudFNjcmlwdGlu
Z1Blcm1pc3Npb24gZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKQorICAgICAgICA6IEhUTUxQ
YXJzZXJET01NdXRhdGlvblRhc2soQ3JlYXRlSFRNTEVsZW1lbnQpCisgICAgICAgICwgbV9jdXJy
ZW50Tm9kZShjdXJyZW50Tm9kZSkKKyAgICAgICAgLCBtX2Zvcm0oZm9ybSkKKyAgICAgICAgLCBt
X3Rva2VuKHRva2VuKQorICAgICAgICAsIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKGZy
YWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbikKKyAgICB7CisgICAgfQorCisgICAgUmVmUHRyPENv
bnRhaW5lck5vZGU+IG1fY3VycmVudE5vZGU7CisgICAgUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4g
bV9mb3JtOworICAgIFJlZlB0cjxBdG9taWNIVE1MVG9rZW4+IG1fdG9rZW47CisgICAgRnJhZ21l
bnRTY3JpcHRpbmdQZXJtaXNzaW9uIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uOworfTsK
KworY2xhc3MgSFRNTFBhcnNlckRPTU11dGF0aW9uQ3JlYXRlSFRNTFNjcmlwdEVsZW1lbnRUYXNr
IDogcHVibGljIEhUTUxQYXJzZXJET01NdXRhdGlvblRhc2sgeworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxTY3JpcHRFbGVtZW50
VGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gY3VycmVudE5vZGUsIFBhc3NS
ZWZQdHI8QXRvbWljSFRNTFRva2VuPiB0b2tlbiwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9u
IGZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiwgYm9vbCBpc1BhcnNpbmdGcmFnbWVudCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFBhcnNlckRPTU11dGF0aW9uQ3Jl
YXRlSFRNTFNjcmlwdEVsZW1lbnRUYXNrKGN1cnJlbnROb2RlLCB0b2tlbiwgZnJhZ21lbnRTY3Jp
cHRpbmdQZXJtaXNzaW9uLCBpc1BhcnNpbmdGcmFnbWVudCkpOworICAgIH0KKworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEVsZW1lbnQ+IGRvUGVyZm9ybVRhc2soQ29udGFpbmVyTm9kZSogY3VycmVu
dE5vZGUsIEF0b21pY0hUTUxUb2tlbiosIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiwgYm9v
bCBpc1BhcnNpbmdGcmFnbWVudCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soKQor
ICAgIHsKKyAgICAgICAgLy8gRklYTUU6IENhbid0IHF1ZXVlIGVsZW1lbnQgY3JlYXRpb24uIEFk
ZCBub2RlIHByb3h5IGNsYXNzZXMgaW4gZm9sbG93LXVwIGNvbW1pdHMuCisgICAgICAgIFJlZlB0
cjxFbGVtZW50PiBlbGVtZW50ID0gZG9QZXJmb3JtVGFzayhtX2N1cnJlbnROb2RlLmdldCgpLCBt
X3Rva2VuLmdldCgpLCBtX2ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiwgbV9pc1BhcnNpbmdG
cmFnbWVudCk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQoZWxlbWVudCwgZWxlbWVudCk7CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworCisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIEhUTUxQYXJzZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxTY3Jp
cHRFbGVtZW50VGFzayhQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IGN1cnJlbnROb2RlLCBQYXNz
UmVmUHRyPEF0b21pY0hUTUxUb2tlbj4gdG9rZW4sIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lv
biBmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24sIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnQpCisg
ICAgICAgIDogSFRNTFBhcnNlckRPTU11dGF0aW9uVGFzayhDcmVhdGVIVE1MU2NyaXB0RWxlbWVu
dCkKKyAgICAgICAgLCBtX2N1cnJlbnROb2RlKGN1cnJlbnROb2RlKQorICAgICAgICAsIG1fdG9r
ZW4odG9rZW4pCisgICAgICAgICwgbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24oZnJhZ21l
bnRTY3JpcHRpbmdQZXJtaXNzaW9uKQorICAgICAgICAsIG1faXNQYXJzaW5nRnJhZ21lbnQoaXNQ
YXJzaW5nRnJhZ21lbnQpCisgICAgeworICAgIH0KKworICAgIFJlZlB0cjxDb250YWluZXJOb2Rl
PiBtX2N1cnJlbnROb2RlOworICAgIFJlZlB0cjxBdG9taWNIVE1MVG9rZW4+IG1fdG9rZW47Cisg
ICAgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIG1fZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNz
aW9uOworICAgIGJvb2wgbV9pc1BhcnNpbmdGcmFnbWVudDsKK307CisKK2NsYXNzIEhUTUxQYXJz
ZXJET01NdXRhdGlvbkNyZWF0ZUhUTUxIdG1sRWxlbWVudFRhc2sgOiBwdWJsaWMgSFRNTFBhcnNl
ckRPTU11dGF0aW9uVGFzayB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFBh
cnNlckRPTU11dGF0aW9uQ3JlYXRlSFRNTEh0bWxFbGVtZW50VGFzaz4gY3JlYXRlKERvY3VtZW50
KiBkb2N1bWVudCwgUGFzc1JlZlB0cjxBdG9taWNIVE1MVG9rZW4+IHRva2VuLCBGcmFnbWVudFNj
cmlwdGluZ1Blcm1pc3Npb24gZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MUGFyc2VyRE9NTXV0YXRpb25DcmVhdGVIVE1M
SHRtbEVsZW1lbnRUYXNrKGRvY3VtZW50LCB0b2tlbiwgZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNz
aW9uKSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEh0bWxFbGVtZW50PiBk
b1BlcmZvcm1UYXNrKERvY3VtZW50KiwgQXRvbWljSFRNTFRva2VuKiwgRnJhZ21lbnRTY3JpcHRp
bmdQZXJtaXNzaW9uKTsKKworICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzaygpCisgICAgewor
ICAgICAgICAvLyBGSVhNRTogQ2FuJ3QgcXVldWUgZWxlbWVudCBjcmVhdGlvbi4gQWRkIG5vZGUg
cHJveHkgY2xhc3NlcyBpbiBmb2xsb3ctdXAgY29tbWl0cy4KKyAgICAgICAgUmVmUHRyPEhUTUxI
dG1sRWxlbWVudD4gZWxlbWVudCA9IGRvUGVyZm9ybVRhc2sobV9kb2N1bWVudCwgbV90b2tlbi5n
ZXQoKSwgbV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOworICAgICAgICBBU1NFUlRfVU5V
U0VEKGVsZW1lbnQsIGVsZW1lbnQpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKwor
ICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBIVE1MUGFy
c2VyRE9NTXV0YXRpb25DcmVhdGVIVE1MSHRtbEVsZW1lbnRUYXNrKERvY3VtZW50KiBkb2N1bWVu
dCwgUGFzc1JlZlB0cjxBdG9taWNIVE1MVG9rZW4+IHRva2VuLCBGcmFnbWVudFNjcmlwdGluZ1Bl
cm1pc3Npb24gZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKQorICAgICAgICA6IEhUTUxQYXJz
ZXJET01NdXRhdGlvblRhc2soQ3JlYXRlSFRNTEh0bWxFbGVtZW50KQorICAgICAgICAsIG1fZG9j
dW1lbnQoZG9jdW1lbnQpCisgICAgICAgICwgbV90b2tlbih0b2tlbikKKyAgICAgICAgLCBtX2Zy
YWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbihmcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pCisg
ICAgeworICAgIH0KKworICAgIERvY3VtZW50KiBtX2RvY3VtZW50OworICAgIFJlZlB0cjxBdG9t
aWNIVE1MVG9rZW4+IG1fdG9rZW47CisgICAgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIG1f
ZnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uOworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gSFRNTFBhcnNlckRPTU11dGF0aW9uVGFza19oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>