<?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>169963</bug_id>
          
          <creation_ts>2017-03-22 11:16:50 -0700</creation_ts>
          <short_desc>[QuickLook] Move QuickLook.{h,mm} to platform/ios/</short_desc>
          <delta_ts>2017-03-22 12:23:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1290134</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-03-22 11:16:50 -0700</bug_when>
    <thetext>[QuickLook] Move QuickLook.{h,mm} to platform/ios/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290135</commentid>
    <comment_count>1</comment_count>
      <attachid>305112</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-03-22 11:18:05 -0700</bug_when>
    <thetext>Created attachment 305112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290156</commentid>
    <comment_count>2</comment_count>
      <attachid>305112</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-22 12:23:15 -0700</bug_when>
    <thetext>Comment on attachment 305112
Patch

Clearing flags on attachment: 305112

Committed r214268: &lt;http://trac.webkit.org/changeset/214268&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290157</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-22 12:23:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305112</attachid>
            <date>2017-03-22 11:18:05 -0700</date>
            <delta_ts>2017-03-22 12:23:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169963-20170322111805.patch</filename>
            <type>text/plain</type>
            <size>19794</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThhNTBlZDM0YjM2ZWJk
OTJjODlmMmEyYzA3NmFhYWMzNDRlYzEzMi4uOGFhMjFhYTNlMWVhZDAwMzUzZDA5NzkwN2QyYzE1
YmExY2QxNmRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE2IEBACiAyMDE3LTAzLTIyICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBbUXVpY2tMb29rXSBNb3ZlIFF1
aWNrTG9vay57aCxtbX0gdG8gcGxhdGZvcm0vaW9zLworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5OTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1F1aWNrTG9vay5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9RdWlja0xvb2suaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3MvUXVpY2tMb29rLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9R
dWlja0xvb2subW0uCisKKzIwMTctMDMtMjIgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgorCiAgICAgICAgIFtRdWlja0xvb2tdIFJlbmFtZSBRdWlja0xvb2tIYW5kbGUgdG8gUHJldmll
d0xvYWRlcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY5OTYxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA5Njk1MDZmNjM0MTMwNzIxMjdmNjNhZWQ4MjgyNDhmNThjYTcyM2E0Li40
MWYyMGNlNWViY2NhYjMzYmFmNzQ2YThkNGY3YTljNDkyM2Q4MDI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMDc4OSw4ICsy
MDc4OSw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlBMTg1QjQyODFFODIxMUExMDBEQzkxMTgg
LyogUHJldmlld0xvYWRlci5oICovLAogCQkJCUExODVCNDI3MUU4MjExQTEwMERDOTExOCAvKiBQ
cmV2aWV3TG9hZGVyLm1tICovLAotCQkJCUExNUUzMUYxMUUwQ0IwQUEwMDRCMzcxQyAvKiBRdWlj
a0xvb2suaCAqLywKLQkJCQlBMTVFMzFGMjFFMENCMEFBMDA0QjM3MUMgLyogUXVpY2tMb29rLm1t
ICovLAogCQkJKTsKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMjA4NjQsNiArMjA4NjIsOCBAQAogCQkJCUM1Mjc4QjBCMTdGMjEyRUEwMDNBMjk5OCAvKiBQ
bGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0gKi8sCiAJCQkJRTQ1MzkwMzIwRUFGRDYzNzAwMzY5NUM4
IC8qIFBsYXRmb3JtU2NyZWVuSU9TLm1tICovLAogCQkJCUFBRTM3NTVEMTc0MjlCQ0MwMDYyMDBD
MiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tICovLAorCQkJCUExNUUzMUYxMUUw
Q0IwQUEwMDRCMzcxQyAvKiBRdWlja0xvb2suaCAqLywKKwkJCQlBMTVFMzFGMjFFMENCMEFBMDA0
QjM3MUMgLyogUXVpY2tMb29rLm1tICovLAogCQkJCTQ0MzkxN0ZFMUE5MUIyRjgwMDZFMDRGMiAv
KiBRdWlja0xvb2tTb2Z0TGluay5oICovLAogCQkJCTQ0MzkxN0ZEMUE5MUIyRjgwMDZFMDRGMiAv
KiBRdWlja0xvb2tTb2Z0TGluay5tbSAqLywKIAkJCQlDREZDMzYwMTE4Q0E2MTYzMDAyNkU1NkYg
LyogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvaW9zL1F1aWNrTG9vay5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9R
dWlja0xvb2suaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGRlNjRiNTVhNzg0MmFm
MDliNzVjZThmY2Q2OWU0M2JiNWMzOGY1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL1F1aWNrTG9vay5oCisr
KyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0KLU9CSkNfQ0xBU1MgTlNEYXRhOwot
T0JKQ19DTEFTUyBOU1NldDsKLU9CSkNfQ0xBU1MgTlNTdHJpbmc7Ci1PQkpDX0NMQVNTIE5TVVJM
OwotT0JKQ19DTEFTUyBOU1VSTFJlcXVlc3Q7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgVVJMOwotCi1XRUJDT1JFX0VYUE9SVCBOU1NldCAqUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlN
RVR5cGVzU2V0KCk7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVFMUHJldmlld0NvbnZlcnRl
ckZvclVSTChOU1VSTCAqKTsKLVdFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+
IHJlZ2lzdGVyUUxQcmV2aWV3Q29udmVydGVySWZOZWVkZWQoTlNVUkwgKiwgTlNTdHJpbmcgKm1p
bWVUeXBlLCBOU0RhdGEgKik7Ci1XRUJDT1JFX0VYUE9SVCBjb25zdCBjaGFyKiBRTFByZXZpZXdQ
cm90b2NvbCgpOwotV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1F1aWNrTG9va1ByZXZpZXdVUkwoY29u
c3QgVVJMJik7Ci1XRUJDT1JFX0VYUE9SVCBOU1N0cmluZyAqY3JlYXRlVGVtcG9yYXJ5RmlsZUZv
clF1aWNrTG9vayhOU1N0cmluZyAqZmlsZU5hbWUpOwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL1F1aWNrTG9vay5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9pb3MvUXVpY2tMb29rLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiZTA1M2Y3MjRhOTZkMTlhMzFiOGRkMDE0MjIyZWFmOGQwNGFkNGQ4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pb3MvUXVpY2tMb29rLm1tCisrKyAvZGV2L251bGwKQEAgLTEsMTY5ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUXVpY2tMb29r
LmgiCi0KLSNpZiBVU0UoUVVJQ0tfTE9PSykKLQotI2ltcG9ydCAiRmlsZVN5c3RlbUlPUy5oIgot
I2ltcG9ydCAiTlNGaWxlTWFuYWdlclNQSS5oIgotI2ltcG9ydCAiUHJldmlld0NvbnZlcnRlci5o
IgotI2ltcG9ydCAiUmVzb3VyY2VSZXF1ZXN0LmgiCi0jaW1wb3J0ICJTY2hlbWVSZWdpc3RyeS5o
IgotI2ltcG9ydCA8d3RmL0xvY2suaD4KLSNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgot
Ci0jaW1wb3J0ICJRdWlja0xvb2tTb2Z0TGluay5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LU5TU2V0ICpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKQotewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNTZXQ+PiBzZXQgPSBRTFByZXZpZXdHZXRTdXBw
b3J0ZWRNSU1FVHlwZXMoKTsKLSAgICByZXR1cm4gc2V0LmdldCgpLmdldCgpOwotfQotCi1zdGF0
aWMgTG9jayYgcWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeU11dGV4KCkKLXsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7Ci0gICAgcmV0dXJuIG11dGV4OwotfQotCi1z
dGF0aWMgTlNNdXRhYmxlRGljdGlvbmFyeSAqUUxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeSgp
Ci17Ci0gICAgc3RhdGljIE5TTXV0YWJsZURpY3Rpb25hcnkgKmRpY3Rpb25hcnkgPSBbW05TTXV0
YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdOwotICAgIHJldHVybiBkaWN0aW9uYXJ5OwotfQot
Ci1zdGF0aWMgTlNNdXRhYmxlRGljdGlvbmFyeSAqUUxDb250ZW50RGljdGlvbmFyeSgpCi17Ci0g
ICAgc3RhdGljIE5TTXV0YWJsZURpY3Rpb25hcnkgKmNvbnRlbnREaWN0aW9uYXJ5ID0gW1tOU011
dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XTsKLSAgICByZXR1cm4gY29udGVudERpY3Rpb25h
cnk7Ci19Ci0KLXZvaWQgcmVtb3ZlUUxQcmV2aWV3Q29udmVydGVyRm9yVVJMKE5TVVJMICp1cmwp
Ci17Ci0gICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnlNdXRl
eCgpKTsKLSAgICBbUUxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFyeSgpIHJlbW92ZU9iamVjdEZv
cktleTp1cmxdOwotICAgIFtRTENvbnRlbnREaWN0aW9uYXJ5KCkgcmVtb3ZlT2JqZWN0Rm9yS2V5
OnVybF07Ci19Ci0KLXN0YXRpYyB2b2lkIGFkZFFMUHJldmlld0NvbnZlcnRlcldpdGhGaWxlRm9y
VVJMKE5TVVJMICp1cmwsIGlkIGNvbnZlcnRlciwgTlNTdHJpbmcgKmZpbGVOYW1lKQotewotICAg
IEFTU0VSVCh1cmwpOwotICAgIEFTU0VSVChjb252ZXJ0ZXIpOwotICAgIExvY2tIb2xkZXIgbG9j
ayhxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgoKSk7Ci0gICAgW1FMUHJldmlld0Nv
bnZlcnRlckRpY3Rpb25hcnkoKSBzZXRPYmplY3Q6Y29udmVydGVyIGZvcktleTp1cmxdOwotICAg
IFtRTENvbnRlbnREaWN0aW9uYXJ5KCkgc2V0T2JqZWN0OihmaWxlTmFtZSA/IGZpbGVOYW1lIDog
QCIiKSBmb3JLZXk6dXJsXTsKLX0KLQotUmV0YWluUHRyPE5TVVJMUmVxdWVzdD4gcmVnaXN0ZXJR
TFByZXZpZXdDb252ZXJ0ZXJJZk5lZWRlZChOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5cGUs
IE5TRGF0YSAqZGF0YSkKLXsKLSAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHVwZGF0ZWRNSU1FVHlw
ZSA9IGFkb3B0TlMoUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBlKHVybCwg
bWltZVR5cGUpKTsKLQotICAgIGlmIChbUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0
KCkgY29udGFpbnNPYmplY3Q6dXBkYXRlZE1JTUVUeXBlLmdldCgpXSkgewotICAgICAgICBSZXRh
aW5QdHI8TlNTdHJpbmc+IHV0aSA9IGFkb3B0TlMoUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVU
eXBlKHVybCwgdXBkYXRlZE1JTUVUeXBlLmdldCgpKSk7Ci0KLSAgICAgICAgYXV0byBjb252ZXJ0
ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFByZXZpZXdDb252ZXJ0ZXI+KGRhdGEsIHV0aS5nZXQoKSk7
Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCBwcmV2aWV3UmVxdWVzdCA9IGNvbnZlcnRlci0+cHJl
dmlld1JlcXVlc3QoKTsKLQotICAgICAgICAvLyBXZSB1c2UgW3JlcXVlc3QgVVJMXSBoZXJlIGlu
c3RlYWQgb2YgdXJsIHNpbmNlIGl0IHdpbGwgYmUKLSAgICAgICAgLy8gdGhlIFVSTCB0aGF0IHRo
ZSBXZWJEYXRhU291cmNlIHdpbGwgc2VlIGR1cmluZyAtZGVhbGxvYy4KLSAgICAgICAgYWRkUUxQ
cmV2aWV3Q29udmVydGVyV2l0aEZpbGVGb3JVUkwocHJldmlld1JlcXVlc3QudXJsKCksIGNvbnZl
cnRlci0+cGxhdGZvcm1Db252ZXJ0ZXIoKSwgbmlsKTsKLQotICAgICAgICByZXR1cm4gcHJldmll
d1JlcXVlc3QubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpOwotICAgIH0KLQotICAg
IHJldHVybiBuaWw7Ci19Ci0KLXN0YXRpYyBWZWN0b3I8Y2hhcj4gY3JlYXRlUUxQcmV2aWV3UHJv
dG9jb2woKQotewotICAgIFZlY3RvcjxjaGFyPiBwcmV2aWV3UHJvdG9jb2w7Ci0gICAgY29uc3Qg
Y2hhciogcWxQcmV2aWV3U2NoZW1lID0gW1FMUHJldmlld1NjaGVtZSBVVEY4U3RyaW5nXTsKLSAg
ICBwcmV2aWV3UHJvdG9jb2wuYXBwZW5kKHFsUHJldmlld1NjaGVtZSwgc3RybGVuKHFsUHJldmll
d1NjaGVtZSkgKyAxKTsKLSAgICByZXR1cm4gcHJldmlld1Byb3RvY29sOwotfQotCi1jb25zdCBj
aGFyKiBRTFByZXZpZXdQcm90b2NvbCgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZl
Y3RvcjxjaGFyPj4gcHJldmlld1Byb3RvY29sKGNyZWF0ZVFMUHJldmlld1Byb3RvY29sKCkpOwot
ICAgIHJldHVybiBwcmV2aWV3UHJvdG9jb2wuZ2V0KCkuZGF0YSgpOwotfQotCi1ib29sIGlzUXVp
Y2tMb29rUHJldmlld1VSTChjb25zdCBVUkwmIHVybCkKLXsKLSAgICAvLyBVc2Ugc29tZSBrbm93
biBwcm90b2NvbHMgYXMgYSBzaG9ydC1jdXQgdG8gYXZvaWQgbG9hZGluZyB0aGUgUXVpY2tMb29r
IGZyYW1ld29yay4KLSAgICBpZiAodXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSB8fCB1cmwu
aXNCbGFua1VSTCgpIHx8IHVybC5wcm90b2NvbElzQmxvYigpIHx8IHVybC5wcm90b2NvbElzRGF0
YSgpIHx8IFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwodXJsLnBy
b3RvY29sKCkudG9TdHJpbmcoKSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4g
dXJsLnByb3RvY29sSXMoUUxQcmV2aWV3UHJvdG9jb2woKSk7Ci19Ci0KLXN0YXRpYyBOU0RpY3Rp
b25hcnkgKnRlbXBvcmFyeUZpbGVBdHRyaWJ1dGVzKCkKLXsKLSAgICBzdGF0aWMgTlNEaWN0aW9u
YXJ5ICphdHRyaWJ1dGVzID0gW0B7Ci0gICAgICAgIE5TRmlsZU93bmVyQWNjb3VudE5hbWUgOiBO
U1VzZXJOYW1lKCksCi0gICAgICAgIE5TRmlsZVBvc2l4UGVybWlzc2lvbnMgOiBbTlNOdW1iZXIg
bnVtYmVyV2l0aEludGVnZXI6KFdFQl9VUkVBRCB8IFdFQl9VV1JJVEUpXSwKLSAgICAgICAgfSBy
ZXRhaW5dOwotICAgIHJldHVybiBhdHRyaWJ1dGVzOwotfQotCi1zdGF0aWMgTlNEaWN0aW9uYXJ5
ICp0ZW1wb3JhcnlEaXJlY3RvcnlBdHRyaWJ1dGVzKCkKLXsKLSAgICBzdGF0aWMgTlNEaWN0aW9u
YXJ5ICphdHRyaWJ1dGVzID0gW0B7Ci0gICAgICAgIE5TRmlsZU93bmVyQWNjb3VudE5hbWUgOiBO
U1VzZXJOYW1lKCksCi0gICAgICAgIE5TRmlsZVBvc2l4UGVybWlzc2lvbnMgOiBbTlNOdW1iZXIg
bnVtYmVyV2l0aEludGVnZXI6KFdFQl9VUkVBRCB8IFdFQl9VV1JJVEUgfCBXRUJfVUVYRUMpXSwK
LSAgICAgICAgTlNGaWxlUHJvdGVjdGlvbktleSA6IE5TRmlsZVByb3RlY3Rpb25Db21wbGV0ZVVu
bGVzc09wZW4sCi0gICAgICAgIH0gcmV0YWluXTsKLSAgICByZXR1cm4gYXR0cmlidXRlczsKLX0K
LQotTlNTdHJpbmcgKmNyZWF0ZVRlbXBvcmFyeUZpbGVGb3JRdWlja0xvb2soTlNTdHJpbmcgKmZp
bGVOYW1lKQotewotICAgIE5TU3RyaW5nICpkb3dubG9hZERpcmVjdG9yeSA9IGNyZWF0ZVRlbXBv
cmFyeURpcmVjdG9yeShAIlF1aWNrTG9va0NvbnRlbnQiKTsKLSAgICBpZiAoIWRvd25sb2FkRGly
ZWN0b3J5KQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgTlNGaWxlTWFuYWdlciAqZmlsZU1h
bmFnZXIgPSBbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl07Ci0KLSAgICBOU0Vycm9yICpl
cnJvcjsKLSAgICBpZiAoIVtmaWxlTWFuYWdlciBzZXRBdHRyaWJ1dGVzOnRlbXBvcmFyeURpcmVj
dG9yeUF0dHJpYnV0ZXMoKSBvZkl0ZW1BdFBhdGg6ZG93bmxvYWREaXJlY3RvcnkgZXJyb3I6JmVy
cm9yXSkgewotICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBzZXQgYXR0cmlidXRlIE5TRmls
ZVByb3RlY3Rpb25Db21wbGV0ZVVubGVzc09wZW4gb24gZGlyZWN0b3J5ICVAIHdpdGggZXJyb3I6
ICVALiIsIGRvd25sb2FkRGlyZWN0b3J5LCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbik7Ci0g
ICAgICAgIHJldHVybiBuaWw7Ci0gICAgfQotCi0gICAgTlNTdHJpbmcgKmNvbnRlbnRQYXRoID0g
W2Rvd25sb2FkRGlyZWN0b3J5IHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpmaWxlTmFt
ZS5sYXN0UGF0aENvbXBvbmVudF07Ci0gICAgaWYgKCFbZmlsZU1hbmFnZXIgX3dlYl9jcmVhdGVG
aWxlQXRQYXRoOmNvbnRlbnRQYXRoIGNvbnRlbnRzOm5pbCBhdHRyaWJ1dGVzOnRlbXBvcmFyeUZp
bGVBdHRyaWJ1dGVzKCldKSB7Ci0gICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBR
dWlja0xvb2sgdGVtcG9yYXJ5IGZpbGUgYXQgcGF0aCAlQC4iLCBjb250ZW50UGF0aCk7Ci0gICAg
ICAgIHJldHVybiBuaWw7Ci0gICAgfQotCi0gICAgcmV0dXJuIGNvbnRlbnRQYXRoOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoUVVJQ0tfTE9PSykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2suaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZGU2NGI1NWE3ODQy
YWYwOWI3NWNlOGZjZDY5ZTQzYmI1YzM4ZjU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9vay5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCitP
QkpDX0NMQVNTIE5TRGF0YTsKK09CSkNfQ0xBU1MgTlNTZXQ7CitPQkpDX0NMQVNTIE5TU3RyaW5n
OworT0JKQ19DTEFTUyBOU1VSTDsKK09CSkNfQ0xBU1MgTlNVUkxSZXF1ZXN0OworCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFVSTDsKKworV0VCQ09SRV9FWFBPUlQgTlNTZXQgKlFMUHJl
dmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpOworV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1v
dmVRTFByZXZpZXdDb252ZXJ0ZXJGb3JVUkwoTlNVUkwgKik7CitXRUJDT1JFX0VYUE9SVCBSZXRh
aW5QdHI8TlNVUkxSZXF1ZXN0PiByZWdpc3RlclFMUHJldmlld0NvbnZlcnRlcklmTmVlZGVkKE5T
VVJMICosIE5TU3RyaW5nICptaW1lVHlwZSwgTlNEYXRhICopOworV0VCQ09SRV9FWFBPUlQgY29u
c3QgY2hhciogUUxQcmV2aWV3UHJvdG9jb2woKTsKK1dFQkNPUkVfRVhQT1JUIGJvb2wgaXNRdWlj
a0xvb2tQcmV2aWV3VVJMKGNvbnN0IFVSTCYpOworV0VCQ09SRV9FWFBPUlQgTlNTdHJpbmcgKmNy
ZWF0ZVRlbXBvcmFyeUZpbGVGb3JRdWlja0xvb2soTlNTdHJpbmcgKmZpbGVOYW1lKTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1F1aWNrTG9vay5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2su
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYmUwNTNmNzI0YTk2ZDE5YTMxYjhkZDAxNDIyMmVhZjhkMDRhZDRkOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2su
bW0KQEAgLTAsMCArMSwxNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5o
IgorI2ltcG9ydCAiUXVpY2tMb29rLmgiCisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKworI2ltcG9y
dCAiRmlsZVN5c3RlbUlPUy5oIgorI2ltcG9ydCAiTlNGaWxlTWFuYWdlclNQSS5oIgorI2ltcG9y
dCAiUHJldmlld0NvbnZlcnRlci5oIgorI2ltcG9ydCAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW1w
b3J0ICJTY2hlbWVSZWdpc3RyeS5oIgorI2ltcG9ydCA8d3RmL0xvY2suaD4KKyNpbXBvcnQgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorCisjaW1wb3J0ICJRdWlja0xvb2tTb2Z0TGluay5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK05TU2V0ICpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlw
ZXNTZXQoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNTZXQ+PiBz
ZXQgPSBRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXMoKTsKKyAgICByZXR1cm4gc2V0Lmdl
dCgpLmdldCgpOworfQorCitzdGF0aWMgTG9jayYgcWxQcmV2aWV3Q29udmVydGVyRGljdGlvbmFy
eU11dGV4KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TG9jaz4gbXV0ZXg7CisgICAg
cmV0dXJuIG11dGV4OworfQorCitzdGF0aWMgTlNNdXRhYmxlRGljdGlvbmFyeSAqUUxQcmV2aWV3
Q29udmVydGVyRGljdGlvbmFyeSgpCit7CisgICAgc3RhdGljIE5TTXV0YWJsZURpY3Rpb25hcnkg
KmRpY3Rpb25hcnkgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdOworICAgIHJl
dHVybiBkaWN0aW9uYXJ5OworfQorCitzdGF0aWMgTlNNdXRhYmxlRGljdGlvbmFyeSAqUUxDb250
ZW50RGljdGlvbmFyeSgpCit7CisgICAgc3RhdGljIE5TTXV0YWJsZURpY3Rpb25hcnkgKmNvbnRl
bnREaWN0aW9uYXJ5ID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XTsKKyAgICBy
ZXR1cm4gY29udGVudERpY3Rpb25hcnk7Cit9CisKK3ZvaWQgcmVtb3ZlUUxQcmV2aWV3Q29udmVy
dGVyRm9yVVJMKE5TVVJMICp1cmwpCit7CisgICAgTG9ja0hvbGRlciBsb2NrKHFsUHJldmlld0Nv
bnZlcnRlckRpY3Rpb25hcnlNdXRleCgpKTsKKyAgICBbUUxQcmV2aWV3Q29udmVydGVyRGljdGlv
bmFyeSgpIHJlbW92ZU9iamVjdEZvcktleTp1cmxdOworICAgIFtRTENvbnRlbnREaWN0aW9uYXJ5
KCkgcmVtb3ZlT2JqZWN0Rm9yS2V5OnVybF07Cit9CisKK3N0YXRpYyB2b2lkIGFkZFFMUHJldmll
d0NvbnZlcnRlcldpdGhGaWxlRm9yVVJMKE5TVVJMICp1cmwsIGlkIGNvbnZlcnRlciwgTlNTdHJp
bmcgKmZpbGVOYW1lKQoreworICAgIEFTU0VSVCh1cmwpOworICAgIEFTU0VSVChjb252ZXJ0ZXIp
OworICAgIExvY2tIb2xkZXIgbG9jayhxbFByZXZpZXdDb252ZXJ0ZXJEaWN0aW9uYXJ5TXV0ZXgo
KSk7CisgICAgW1FMUHJldmlld0NvbnZlcnRlckRpY3Rpb25hcnkoKSBzZXRPYmplY3Q6Y29udmVy
dGVyIGZvcktleTp1cmxdOworICAgIFtRTENvbnRlbnREaWN0aW9uYXJ5KCkgc2V0T2JqZWN0Oihm
aWxlTmFtZSA/IGZpbGVOYW1lIDogQCIiKSBmb3JLZXk6dXJsXTsKK30KKworUmV0YWluUHRyPE5T
VVJMUmVxdWVzdD4gcmVnaXN0ZXJRTFByZXZpZXdDb252ZXJ0ZXJJZk5lZWRlZChOU1VSTCAqdXJs
LCBOU1N0cmluZyAqbWltZVR5cGUsIE5TRGF0YSAqZGF0YSkKK3sKKyAgICBSZXRhaW5QdHI8TlNT
dHJpbmc+IHVwZGF0ZWRNSU1FVHlwZSA9IGFkb3B0TlMoUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZv
clVSTEFuZE1pbWVUeXBlKHVybCwgbWltZVR5cGUpKTsKKworICAgIGlmIChbUUxQcmV2aWV3R2V0
U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6dXBkYXRlZE1JTUVUeXBlLmdl
dCgpXSkgeworICAgICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHV0aSA9IGFkb3B0TlMoUUxUeXBl
Q29weVVUSUZvclVSTEFuZE1pbWVUeXBlKHVybCwgdXBkYXRlZE1JTUVUeXBlLmdldCgpKSk7CisK
KyAgICAgICAgYXV0byBjb252ZXJ0ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFByZXZpZXdDb252ZXJ0
ZXI+KGRhdGEsIHV0aS5nZXQoKSk7CisgICAgICAgIFJlc291cmNlUmVxdWVzdCBwcmV2aWV3UmVx
dWVzdCA9IGNvbnZlcnRlci0+cHJldmlld1JlcXVlc3QoKTsKKworICAgICAgICAvLyBXZSB1c2Ug
W3JlcXVlc3QgVVJMXSBoZXJlIGluc3RlYWQgb2YgdXJsIHNpbmNlIGl0IHdpbGwgYmUKKyAgICAg
ICAgLy8gdGhlIFVSTCB0aGF0IHRoZSBXZWJEYXRhU291cmNlIHdpbGwgc2VlIGR1cmluZyAtZGVh
bGxvYy4KKyAgICAgICAgYWRkUUxQcmV2aWV3Q29udmVydGVyV2l0aEZpbGVGb3JVUkwocHJldmll
d1JlcXVlc3QudXJsKCksIGNvbnZlcnRlci0+cGxhdGZvcm1Db252ZXJ0ZXIoKSwgbmlsKTsKKwor
ICAgICAgICByZXR1cm4gcHJldmlld1JlcXVlc3QubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRU
UEJvZHkpOworICAgIH0KKworICAgIHJldHVybiBuaWw7Cit9CisKK3N0YXRpYyBWZWN0b3I8Y2hh
cj4gY3JlYXRlUUxQcmV2aWV3UHJvdG9jb2woKQoreworICAgIFZlY3RvcjxjaGFyPiBwcmV2aWV3
UHJvdG9jb2w7CisgICAgY29uc3QgY2hhciogcWxQcmV2aWV3U2NoZW1lID0gW1FMUHJldmlld1Nj
aGVtZSBVVEY4U3RyaW5nXTsKKyAgICBwcmV2aWV3UHJvdG9jb2wuYXBwZW5kKHFsUHJldmlld1Nj
aGVtZSwgc3RybGVuKHFsUHJldmlld1NjaGVtZSkgKyAxKTsKKyAgICByZXR1cm4gcHJldmlld1By
b3RvY29sOworfQorCitjb25zdCBjaGFyKiBRTFByZXZpZXdQcm90b2NvbCgpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxjaGFyPj4gcHJldmlld1Byb3RvY29sKGNyZWF0ZVFM
UHJldmlld1Byb3RvY29sKCkpOworICAgIHJldHVybiBwcmV2aWV3UHJvdG9jb2wuZ2V0KCkuZGF0
YSgpOworfQorCitib29sIGlzUXVpY2tMb29rUHJldmlld1VSTChjb25zdCBVUkwmIHVybCkKK3sK
KyAgICAvLyBVc2Ugc29tZSBrbm93biBwcm90b2NvbHMgYXMgYSBzaG9ydC1jdXQgdG8gYXZvaWQg
bG9hZGluZyB0aGUgUXVpY2tMb29rIGZyYW1ld29yay4KKyAgICBpZiAodXJsLnByb3RvY29sSXNJ
bkhUVFBGYW1pbHkoKSB8fCB1cmwuaXNCbGFua1VSTCgpIHx8IHVybC5wcm90b2NvbElzQmxvYigp
IHx8IHVybC5wcm90b2NvbElzRGF0YSgpIHx8IFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVS
TFNjaGVtZUFzTG9jYWwodXJsLnByb3RvY29sKCkudG9TdHJpbmcoKSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gdXJsLnByb3RvY29sSXMoUUxQcmV2aWV3UHJvdG9jb2woKSk7
Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKnRlbXBvcmFyeUZpbGVBdHRyaWJ1dGVzKCkKK3sK
KyAgICBzdGF0aWMgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gW0B7CisgICAgICAgIE5TRmls
ZU93bmVyQWNjb3VudE5hbWUgOiBOU1VzZXJOYW1lKCksCisgICAgICAgIE5TRmlsZVBvc2l4UGVy
bWlzc2lvbnMgOiBbTlNOdW1iZXIgbnVtYmVyV2l0aEludGVnZXI6KFdFQl9VUkVBRCB8IFdFQl9V
V1JJVEUpXSwKKyAgICAgICAgfSByZXRhaW5dOworICAgIHJldHVybiBhdHRyaWJ1dGVzOworfQor
CitzdGF0aWMgTlNEaWN0aW9uYXJ5ICp0ZW1wb3JhcnlEaXJlY3RvcnlBdHRyaWJ1dGVzKCkKK3sK
KyAgICBzdGF0aWMgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gW0B7CisgICAgICAgIE5TRmls
ZU93bmVyQWNjb3VudE5hbWUgOiBOU1VzZXJOYW1lKCksCisgICAgICAgIE5TRmlsZVBvc2l4UGVy
bWlzc2lvbnMgOiBbTlNOdW1iZXIgbnVtYmVyV2l0aEludGVnZXI6KFdFQl9VUkVBRCB8IFdFQl9V
V1JJVEUgfCBXRUJfVUVYRUMpXSwKKyAgICAgICAgTlNGaWxlUHJvdGVjdGlvbktleSA6IE5TRmls
ZVByb3RlY3Rpb25Db21wbGV0ZVVubGVzc09wZW4sCisgICAgICAgIH0gcmV0YWluXTsKKyAgICBy
ZXR1cm4gYXR0cmlidXRlczsKK30KKworTlNTdHJpbmcgKmNyZWF0ZVRlbXBvcmFyeUZpbGVGb3JR
dWlja0xvb2soTlNTdHJpbmcgKmZpbGVOYW1lKQoreworICAgIE5TU3RyaW5nICpkb3dubG9hZERp
cmVjdG9yeSA9IGNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIlF1aWNrTG9va0NvbnRlbnQiKTsK
KyAgICBpZiAoIWRvd25sb2FkRGlyZWN0b3J5KQorICAgICAgICByZXR1cm4gbmlsOworCisgICAg
TlNGaWxlTWFuYWdlciAqZmlsZU1hbmFnZXIgPSBbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdl
cl07CisKKyAgICBOU0Vycm9yICplcnJvcjsKKyAgICBpZiAoIVtmaWxlTWFuYWdlciBzZXRBdHRy
aWJ1dGVzOnRlbXBvcmFyeURpcmVjdG9yeUF0dHJpYnV0ZXMoKSBvZkl0ZW1BdFBhdGg6ZG93bmxv
YWREaXJlY3RvcnkgZXJyb3I6JmVycm9yXSkgeworICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0
byBzZXQgYXR0cmlidXRlIE5TRmlsZVByb3RlY3Rpb25Db21wbGV0ZVVubGVzc09wZW4gb24gZGly
ZWN0b3J5ICVAIHdpdGggZXJyb3I6ICVALiIsIGRvd25sb2FkRGlyZWN0b3J5LCBlcnJvci5sb2Nh
bGl6ZWREZXNjcmlwdGlvbik7CisgICAgICAgIHJldHVybiBuaWw7CisgICAgfQorCisgICAgTlNT
dHJpbmcgKmNvbnRlbnRQYXRoID0gW2Rvd25sb2FkRGlyZWN0b3J5IHN0cmluZ0J5QXBwZW5kaW5n
UGF0aENvbXBvbmVudDpmaWxlTmFtZS5sYXN0UGF0aENvbXBvbmVudF07CisgICAgaWYgKCFbZmls
ZU1hbmFnZXIgX3dlYl9jcmVhdGVGaWxlQXRQYXRoOmNvbnRlbnRQYXRoIGNvbnRlbnRzOm5pbCBh
dHRyaWJ1dGVzOnRlbXBvcmFyeUZpbGVBdHRyaWJ1dGVzKCldKSB7CisgICAgICAgIExPR19FUlJP
UigiRmFpbGVkIHRvIGNyZWF0ZSBRdWlja0xvb2sgdGVtcG9yYXJ5IGZpbGUgYXQgcGF0aCAlQC4i
LCBjb250ZW50UGF0aCk7CisgICAgICAgIHJldHVybiBuaWw7CisgICAgfQorCisgICAgcmV0dXJu
IGNvbnRlbnRQYXRoOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBV
U0UoUVVJQ0tfTE9PSykK
</data>

          </attachment>
      

    </bug>

</bugzilla>