<?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>86777</bug_id>
          
          <creation_ts>2012-05-17 14:56:14 -0700</creation_ts>
          <short_desc>[Chromium] Move fileUtilities to Platform.h</short_desc>
          <delta_ts>2012-05-17 18:11:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>82948</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Pilgrim (Google)">pilgrim</reporter>
          <assigned_to name="Mark Pilgrim (Google)">pilgrim</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>haraken</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>627011</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-05-17 14:56:14 -0700</bug_when>
    <thetext>[Chromium] Move fileUtilities to Platform.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627012</commentid>
    <comment_count>1</comment_count>
      <attachid>142561</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-05-17 14:56:58 -0700</bug_when>
    <thetext>Created attachment 142561
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627015</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 14:59:10 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627030</commentid>
    <comment_count>3</comment_count>
      <attachid>142561</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-17 15:15:36 -0700</bug_when>
    <thetext>Comment on attachment 142561
Patch

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

&gt; Source/WebKit/chromium/src/PlatformSupport.cpp:302
&gt;  bool PlatformSupport::fileExists(const String&amp; path)

After this patch, can we remove these functions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627119</commentid>
    <comment_count>4</comment_count>
      <attachid>142561</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 16:33:39 -0700</bug_when>
    <thetext>Comment on attachment 142561
Patch

Rejecting attachment 142561 from commit-queue.

pilgrim@chromium.org does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627120</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-05-17 16:34:35 -0700</bug_when>
    <thetext>Damn it, I hit the wrong dropdown item. (Well, also I do have committer rights, but never mind that.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627123</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-05-17 16:35:33 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 142561 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=142561&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/PlatformSupport.cpp:302
&gt; &gt;  bool PlatformSupport::fileExists(const String&amp; path)
&gt; 
&gt; After this patch, can we remove these functions?

Sure, I&apos;ll give it a shot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627173</commentid>
    <comment_count>7</comment_count>
      <attachid>142561</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-17 17:59:20 -0700</bug_when>
    <thetext>Comment on attachment 142561
Patch

You should write a patch that adds yourself to committers.py.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627187</commentid>
    <comment_count>8</comment_count>
      <attachid>142561</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 18:11:52 -0700</bug_when>
    <thetext>Comment on attachment 142561
Patch

Clearing flags on attachment: 142561

Committed r117520: &lt;http://trac.webkit.org/changeset/117520&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627188</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 18:11:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142561</attachid>
            <date>2012-05-17 14:56:58 -0700</date>
            <delta_ts>2012-05-17 18:11:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86777-20120517175642.patch</filename>
            <type>text/plain</type>
            <size>17807</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTE3NTAxKQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDEyLTA1LTE3ICBNYXJr
IFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1v
dmUgZmlsZVV0aWxpdGllcyB0byBQbGF0Zm9ybS5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04Njc3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFBhcnQgb2YgYSByZWZhY3RvcmluZyBzZXJpZXMuIFNlZSB0
cmFja2luZyBidWcgODI5NDguCisKKyAgICAgICAgKiBQbGF0Zm9ybS5neXBpOgorICAgICAgICAq
IGNocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KFBsYXRmb3JtKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm06OmZpbGVVdGlsaXRpZXMpOgor
ICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJGaWxlVXRpbGl0aWVzLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkZpbGVVdGlsaXRpZXMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlVXRpbGl0aWVzOjpyZXZlYWxGb2xkZXJJbk9TKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRmlsZVV0aWxpdGllczo6ZmlsZUV4aXN0cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkZp
bGVVdGlsaXRpZXM6OmRlbGV0ZUZpbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlVXRpbGl0
aWVzOjpkZWxldGVFbXB0eURpcmVjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVVdGls
aXRpZXM6OmdldEZpbGVTaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVV0aWxpdGllczo6
Z2V0RmlsZU1vZGlmaWNhdGlvblRpbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlVXRpbGl0
aWVzOjpkaXJlY3RvcnlOYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVV0aWxpdGllczo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVV0aWxp
dGllczo6bWFrZUFsbERpcmVjdG9yaWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVV0aWxp
dGllczo6Z2V0QWJzb2x1dGVQYXRoKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVV0aWxpdGll
czo6aXNEaXJlY3RvcnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlVXRpbGl0aWVzOjpmaWxl
UGF0aFRvVVJMKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVV0aWxpdGllczo6b3BlbkZpbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlVXRpbGl0aWVzOjpjbG9zZUZpbGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGaWxlVXRpbGl0aWVzOjpzZWVrRmlsZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkZpbGVVdGlsaXRpZXM6OnRydW5jYXRlRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZp
bGVVdGlsaXRpZXM6OnJlYWRGcm9tRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVVdGls
aXRpZXM6OndyaXRlVG9GaWxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVV0aWxpdGllczo6
fldlYkZpbGVVdGlsaXRpZXMpOgorCiAyMDEyLTA1LTExICBKYW1lcyBSb2JpbnNvbiAgPGphbWVz
ckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBDb252ZXJ0IEdyYXBoaWNzTGF5
ZXJDaHJvbWl1bSB0byB1c2UgV2ViTGF5ZXIgdHlwZXMKSW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9Q
bGF0Zm9ybS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBp
CShyZXZpc2lvbiAxMTc1MDApCisrKyBTb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQkod29y
a2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1Ymxp
Yy9XZWJEcmFnRGF0YS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViRXh0ZXJu
YWxUZXh0dXJlTGF5ZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkZpbGVT
eXN0ZW0uaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkZpbGVVdGlsaXRpZXMu
aCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkZpbHRlck9wZXJhdGlvbi5oJywK
ICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViRmlsdGVyT3BlcmF0aW9ucy5oJywKICAg
ICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViRmxvYXRQb2ludC5oJywKSW5kZXg6IFNvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgJKHJldmlzaW9uIDExNzUwMCkK
KysrIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaAkod29ya2luZyBj
b3B5KQpAQCAtNDQsNiArNDQsNyBAQCBjbGFzcyBXZWJBdWRpb0J1czsKIGNsYXNzIFdlYkJsb2JS
ZWdpc3RyeTsKIGNsYXNzIFdlYkNsaXBib2FyZDsKIGNsYXNzIFdlYkZpbGVTeXN0ZW07CitjbGFz
cyBXZWJGaWxlVXRpbGl0aWVzOwogY2xhc3MgV2ViTWVkaWFTdHJlYW1DZW50ZXI7CiBjbGFzcyBX
ZWJNZWRpYVN0cmVhbUNlbnRlckNsaWVudDsKIGNsYXNzIFdlYk1pbWVSZWdpc3RyeTsKQEAgLTY2
LDYgKzY3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViQ2xpcGJvYXJkKiBjbGlwYm9hcmQo
KSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBNdXN0IHJldHVybiBub24tbnVsbC4KKyAgICB2aXJ0
dWFsIFdlYkZpbGVVdGlsaXRpZXMqIGZpbGVVdGlsaXRpZXMoKSB7IHJldHVybiAwOyB9CisKKyAg
ICAvLyBNdXN0IHJldHVybiBub24tbnVsbC4KICAgICB2aXJ0dWFsIFdlYk1pbWVSZWdpc3RyeSog
bWltZVJlZ2lzdHJ5KCkgeyByZXR1cm4gMDsgfQogCiAKSW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViRmlsZVV0aWxpdGllcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViRmlsZVV0aWxpdGllcy5oCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJGaWxlVXRpbGl0aWVzLmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkZpbGVVdGlsaXRpZXNfaAorI2Rl
ZmluZSBXZWJGaWxlVXRpbGl0aWVzX2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1
ZGUgIldlYlN0cmluZy5oIgorI2luY2x1ZGUgIldlYlVSTC5oIgorCisjaWZkZWYgV0lOMzIKK3R5
cGVkZWYgdm9pZCAqSEFORExFOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJGaWxlVXRpbGl0aWVzIHsKK3B1YmxpYzoKKyNpZmRlZiBXSU4zMgorICAgIHR5cGVkZWYg
SEFORExFIEZpbGVIYW5kbGU7CisjZWxzZQorICAgIHR5cGVkZWYgaW50IEZpbGVIYW5kbGU7Cisj
ZW5kaWYKKyAgICB2aXJ0dWFsIHZvaWQgcmV2ZWFsRm9sZGVySW5PUyhjb25zdCBXZWJTdHJpbmcm
IHBhdGgpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBmaWxlRXhpc3RzKGNvbnN0IFdlYlN0cmluZyYg
cGF0aCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlRmlsZShjb25z
dCBXZWJTdHJpbmcmIHBhdGgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGRl
bGV0ZUVtcHR5RGlyZWN0b3J5KGNvbnN0IFdlYlN0cmluZyYgcGF0aCkgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgZ2V0RmlsZVNpemUoY29uc3QgV2ViU3RyaW5nJiBwYXRoLCBs
b25nIGxvbmcmIHJlc3VsdCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgZ2V0
RmlsZU1vZGlmaWNhdGlvblRpbWUoY29uc3QgV2ViU3RyaW5nJiBwYXRoLCBkb3VibGUmIHJlc3Vs
dCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBkaXJlY3RvcnlOYW1l
KGNvbnN0IFdlYlN0cmluZyYgcGF0aCkgIHsgcmV0dXJuIFdlYlN0cmluZygpOyB9CisgICAgdmly
dHVhbCBXZWJTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNvbnN0IFdlYlN0cmluZyYg
cGF0aCwgY29uc3QgV2ViU3RyaW5nJiBjb21wb25lbnQpICB7IHJldHVybiBXZWJTdHJpbmcoKTsg
fQorICAgIHZpcnR1YWwgYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgV2ViU3RyaW5nJiBw
YXRoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldEFic29sdXRl
UGF0aChjb25zdCBXZWJTdHJpbmcmIHBhdGgpICB7IHJldHVybiBXZWJTdHJpbmcoKTsgfQorICAg
IHZpcnR1YWwgYm9vbCBpc0RpcmVjdG9yeShjb25zdCBXZWJTdHJpbmcmIHBhdGgpIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBXZWJVUkwgZmlsZVBhdGhUb1VSTChjb25zdCBXZWJTdHJp
bmcmIHBhdGgpICB7IHJldHVybiBXZWJVUkwoKTsgfQorICAgIHZpcnR1YWwgRmlsZUhhbmRsZSBv
cGVuRmlsZShjb25zdCBXZWJTdHJpbmcmIHBhdGgsIGludCBtb2RlKSAgeyByZXR1cm4gRmlsZUhh
bmRsZSgpOyB9CisgICAgLy8gU2hvdWxkIHNldCB0aGUgRmlsZUhhbmRsZSB0byBhIGludmFsaWQg
dmFsdWUgaWYgdGhlIGZpbGUgaXMgY2xvc2VkIHN1Y2Nlc3NmdWxseS4KKyAgICB2aXJ0dWFsIHZv
aWQgY2xvc2VGaWxlKEZpbGVIYW5kbGUmKSB7IH0KKyAgICB2aXJ0dWFsIGxvbmcgbG9uZyBzZWVr
RmlsZShGaWxlSGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0LCBpbnQgb3JpZ2luKSB7IHJldHVybiAw
OyB9CisgICAgdmlydHVhbCBib29sIHRydW5jYXRlRmlsZShGaWxlSGFuZGxlLCBsb25nIGxvbmcg
b2Zmc2V0KSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgaW50IHJlYWRGcm9tRmlsZShG
aWxlSGFuZGxlLCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKSB7IHJldHVybiAwOyB9CisgICAgdmly
dHVhbCBpbnQgd3JpdGVUb0ZpbGUoRmlsZUhhbmRsZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxl
bmd0aCkgeyByZXR1cm4gMDsgfQorCitwcm90ZWN0ZWQ6CisgICAgfldlYkZpbGVVdGlsaXRpZXMo
KSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTc1MDEpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA1
LTE3ICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hy
b21pdW1dIE1vdmUgZmlsZVV0aWxpdGllcyB0byBQbGF0Zm9ybS5oCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04Njc3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhcnQgb2YgYSByZWZhY3RvcmluZyBzZXJp
ZXMuIFNlZSB0cmFja2luZyBidWcgODI5NDguCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAg
ICAgICAqIHB1YmxpYy9XZWJGaWxlVXRpbGl0aWVzLmg6CisgICAgICAgICogcHVibGljL3BsYXRm
b3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KFdlYktpdFBsYXRmb3JtU3VwcG9ydCk6CisgICAgICAgICogc3JjL1BsYXRmb3JtU3VwcG9ydC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OmZpbGVFeGlzdHMpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0OjpkZWxldGVGaWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6ZGVsZXRlRW1wdHlEaXJlY3RvcnkpOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0OjpnZXRGaWxlU2l6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVN1cHBvcnQ6OnJldmVhbEZvbGRlckluT1MpOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1TdXBwb3J0OjpnZXRGaWxlTW9kaWZpY2F0aW9uVGltZSk6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OmRpcmVjdG9yeU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1TdXBwb3J0OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1TdXBwb3J0OjptYWtlQWxsRGlyZWN0b3JpZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1TdXBwb3J0OjpnZXRBYnNvbHV0ZVBhdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1TdXBwb3J0Ojppc0RpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybVN1cHBvcnQ6OmZpbGVQYXRoVG9VUkwpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1T
dXBwb3J0OjpvcGVuRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OmNs
b3NlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OnNlZWtGaWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6dHJ1bmNhdGVGaWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6cmVhZEZyb21GaWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6d3JpdGVUb0ZpbGUpOgorCiAyMDEyLTA1LTE3ICBNaWto
YWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU3VwcG9ydCBD
b3B5IC4uLiBhY3Rpb25zIGZvciB0aGUgV2ViIEluc3BlY3RvciByZW1vdGUgZGVidWdnaW5nIG1v
ZGUuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCShyZXZpc2lvbiAxMTc1MDApCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHdvcmtpbmcgY29weSkKQEAgLTE1
MCw3ICsxNTAsNiBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRmlsZUluZm8uaCcsCiAg
ICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJGaWxlU3lzdGVtQ2FsbGJhY2tzLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViRmlsZVN5c3RlbUVudHJ5LmgnLAotICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViRmlsZVV0aWxpdGllcy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dl
YkZpbGVXcml0ZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJGaWxlV3JpdGVyQ2xp
ZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRmluZE9wdGlvbnMuaCcsCkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGaWxlVXRpbGl0aWVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRmlsZVV0aWxpdGllcy5o
CShyZXZpc2lvbiAxMTc1MDApCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJG
aWxlVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDUwICsyOCw0IEBACiAgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLSNpZm5kZWYgV2ViRmlsZVV0aWxpdGllc19oCi0jZGVmaW5lIFdlYkZp
bGVVdGlsaXRpZXNfaAotCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViQ29tbW9uLmgiCi0jaW5jbHVk
ZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCi0K
LSNpZmRlZiBXSU4zMgotdHlwZWRlZiB2b2lkICpIQU5ETEU7Ci0jZW5kaWYKLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWNsYXNzIFdlYkZpbGVVdGlsaXRpZXMgewotcHVibGljOgotI2lmZGVmIFdJ
TjMyCi0gICAgdHlwZWRlZiBIQU5ETEUgRmlsZUhhbmRsZTsKLSNlbHNlCi0gICAgdHlwZWRlZiBp
bnQgRmlsZUhhbmRsZTsKLSNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCByZXZlYWxGb2xkZXJJbk9T
KGNvbnN0IFdlYlN0cmluZyYgcGF0aCkgeyB9Ci0gICAgdmlydHVhbCBib29sIGZpbGVFeGlzdHMo
Y29uc3QgV2ViU3RyaW5nJiBwYXRoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9v
bCBkZWxldGVGaWxlKGNvbnN0IFdlYlN0cmluZyYgcGF0aCkgeyByZXR1cm4gZmFsc2U7IH0KLSAg
ICB2aXJ0dWFsIGJvb2wgZGVsZXRlRW1wdHlEaXJlY3RvcnkoY29uc3QgV2ViU3RyaW5nJiBwYXRo
KSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBnZXRGaWxlU2l6ZShjb25zdCBX
ZWJTdHJpbmcmIHBhdGgsIGxvbmcgbG9uZyYgcmVzdWx0KSB7IHJldHVybiBmYWxzZTsgfQotICAg
IHZpcnR1YWwgYm9vbCBnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBXZWJTdHJpbmcmIHBh
dGgsIGRvdWJsZSYgcmVzdWx0KSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgV2ViU3Ry
aW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgV2ViU3RyaW5nJiBwYXRoKSAgeyByZXR1cm4gV2ViU3Ry
aW5nKCk7IH0KLSAgICB2aXJ0dWFsIFdlYlN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQo
Y29uc3QgV2ViU3RyaW5nJiBwYXRoLCBjb25zdCBXZWJTdHJpbmcmIGNvbXBvbmVudCkgIHsgcmV0
dXJuIFdlYlN0cmluZygpOyB9Ci0gICAgdmlydHVhbCBib29sIG1ha2VBbGxEaXJlY3Rvcmllcyhj
b25zdCBXZWJTdHJpbmcmIHBhdGgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBXZWJT
dHJpbmcgZ2V0QWJzb2x1dGVQYXRoKGNvbnN0IFdlYlN0cmluZyYgcGF0aCkgIHsgcmV0dXJuIFdl
YlN0cmluZygpOyB9Ci0gICAgdmlydHVhbCBib29sIGlzRGlyZWN0b3J5KGNvbnN0IFdlYlN0cmlu
ZyYgcGF0aCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIFdlYlVSTCBmaWxlUGF0aFRv
VVJMKGNvbnN0IFdlYlN0cmluZyYgcGF0aCkgIHsgcmV0dXJuIFdlYlVSTCgpOyB9Ci0gICAgdmly
dHVhbCBGaWxlSGFuZGxlIG9wZW5GaWxlKGNvbnN0IFdlYlN0cmluZyYgcGF0aCwgaW50IG1vZGUp
ICB7IHJldHVybiBGaWxlSGFuZGxlKCk7IH0KLSAgICAvLyBTaG91bGQgc2V0IHRoZSBGaWxlSGFu
ZGxlIHRvIGEgaW52YWxpZCB2YWx1ZSBpZiB0aGUgZmlsZSBpcyBjbG9zZWQgc3VjY2Vzc2Z1bGx5
LgotICAgIHZpcnR1YWwgdm9pZCBjbG9zZUZpbGUoRmlsZUhhbmRsZSYpIHsgfQotICAgIHZpcnR1
YWwgbG9uZyBsb25nIHNlZWtGaWxlKEZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQsIGludCBv
cmlnaW4pIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGJvb2wgdHJ1bmNhdGVGaWxlKEZpbGVI
YW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBp
bnQgcmVhZEZyb21GaWxlKEZpbGVIYW5kbGUsIGNoYXIqIGRhdGEsIGludCBsZW5ndGgpIHsgcmV0
dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGludCB3cml0ZVRvRmlsZShGaWxlSGFuZGxlLCBjb25zdCBj
aGFyKiBkYXRhLCBpbnQgbGVuZ3RoKSB7IHJldHVybiAwOyB9Ci0KLXByb3RlY3RlZDoKLSAgICB+
V2ViRmlsZVV0aWxpdGllcygpIHt9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2Vu
ZGlmCisjaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkZpbGVV
dGlsaXRpZXMuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3Jt
L1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCShyZXZpc2lvbiAx
MTc1MDApCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQ
bGF0Zm9ybVN1cHBvcnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNiBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIGNsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVIb3N0OyAvLyBGSVhNRTogRG9l
cyB0aGlzIGJlbG9uZyBpbiBwbGF0Zm9ybT8KIGNsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVIb3N0
Q2xpZW50OyAvLyBGSVhNRTogRG9lcyB0aGlzIGJlbG9uZyBpbiBwbGF0Zm9ybT8KIGNsYXNzIFdl
YkNvb2tpZUphcjsKLWNsYXNzIFdlYkZpbGVVdGlsaXRpZXM7CiBjbGFzcyBXZWJJREJGYWN0b3J5
OyAvLyBGSVhNRTogRG9lcyB0aGlzIGJlbG9uZyBpbiBwbGF0Zm9ybT8KIGNsYXNzIFdlYklEQktl
eTsgLy8gRklYTUU6IERvZXMgdGhpcyBiZWxvbmcgaW4gcGxhdGZvcm0/CiBjbGFzcyBXZWJNZXNz
YWdlUG9ydENoYW5uZWw7IC8vIEZJWE1FOiBEb2VzIHRoaXMgYmVsb25nIGluIHBsYXRmb3JtPwpA
QCAtNjUsOSArNjQsNiBAQCBjbGFzcyBXZWJXb3JrZXJSdW5Mb29wOwogLy8gRklYTUU6IEV2ZW50
dWFsbHkgYWxsIHRoZXNlIEFQSSB3aWxsIG5lZWQgdG8gbW92ZSB0byBXZWJLaXQ6OlBsYXRmb3Jt
LgogY2xhc3MgV2ViS2l0UGxhdGZvcm1TdXBwb3J0IDogcHVibGljIFBsYXRmb3JtIHsKIHB1Ymxp
YzoKLSAgICAvLyBNdXN0IHJldHVybiBub24tbnVsbC4KLSAgICB2aXJ0dWFsIFdlYkZpbGVVdGls
aXRpZXMqIGZpbGVVdGlsaXRpZXMoKSB7IHJldHVybiAwOyB9Ci0KICAgICAvLyBNYXkgcmV0dXJu
IG51bGwgaWYgc2FuZGJveCBzdXBwb3J0IGlzIG5vdCBuZWNlc3NhcnkKICAgICB2aXJ0dWFsIFdl
YlNhbmRib3hTdXBwb3J0KiBzYW5kYm94U3VwcG9ydCgpIHsgcmV0dXJuIDA7IH0KIApJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCShyZXZp
c2lvbiAxMTc1MDApCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBv
cnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDEsMzMgKzMwMSwzMyBAQCBib29sIFBsYXRmb3Jt
U3VwcG9ydDo6Y29va2llc0VuYWJsZWQoY29uCiAKIGJvb2wgUGxhdGZvcm1TdXBwb3J0OjpmaWxl
RXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICByZXR1cm4gd2ViS2l0UGxhdGZvcm1T
dXBwb3J0KCktPmZpbGVVdGlsaXRpZXMoKS0+ZmlsZUV4aXN0cyhwYXRoKTsKKyAgICByZXR1cm4g
V2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5maWxlVXRpbGl0aWVzKCktPmZpbGVFeGlzdHMo
cGF0aCk7CiB9CiAKIGJvb2wgUGxhdGZvcm1TdXBwb3J0OjpkZWxldGVGaWxlKGNvbnN0IFN0cmlu
ZyYgcGF0aCkKIHsKLSAgICByZXR1cm4gd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmZpbGVVdGls
aXRpZXMoKS0+ZGVsZXRlRmlsZShwYXRoKTsKKyAgICByZXR1cm4gV2ViS2l0OjpQbGF0Zm9ybTo6
Y3VycmVudCgpLT5maWxlVXRpbGl0aWVzKCktPmRlbGV0ZUZpbGUocGF0aCk7CiB9CiAKIGJvb2wg
UGxhdGZvcm1TdXBwb3J0OjpkZWxldGVFbXB0eURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgp
CiB7Ci0gICAgcmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5maWxlVXRpbGl0aWVzKCkt
PmRlbGV0ZUVtcHR5RGlyZWN0b3J5KHBhdGgpOworICAgIHJldHVybiBXZWJLaXQ6OlBsYXRmb3Jt
OjpjdXJyZW50KCktPmZpbGVVdGlsaXRpZXMoKS0+ZGVsZXRlRW1wdHlEaXJlY3RvcnkocGF0aCk7
CiB9CiAKIGJvb2wgUGxhdGZvcm1TdXBwb3J0OjpnZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIHBh
dGgsIGxvbmcgbG9uZyYgcmVzdWx0KQogewotICAgIHJldHVybiB3ZWJLaXRQbGF0Zm9ybVN1cHBv
cnQoKS0+ZmlsZVV0aWxpdGllcygpLT5nZXRGaWxlU2l6ZShwYXRoLCByZXN1bHQpOworICAgIHJl
dHVybiBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmZpbGVVdGlsaXRpZXMoKS0+Z2V0Rmls
ZVNpemUocGF0aCwgcmVzdWx0KTsKIH0KIAogdm9pZCBQbGF0Zm9ybVN1cHBvcnQ6OnJldmVhbEZv
bGRlckluT1MoY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIHdlYktpdFBsYXRmb3JtU3VwcG9y
dCgpLT5maWxlVXRpbGl0aWVzKCktPnJldmVhbEZvbGRlckluT1MocGF0aCk7CisgICAgV2ViS2l0
OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5maWxlVXRpbGl0aWVzKCktPnJldmVhbEZvbGRlckluT1Mo
cGF0aCk7CiB9CiAKIGJvb2wgUGxhdGZvcm1TdXBwb3J0OjpnZXRGaWxlTW9kaWZpY2F0aW9uVGlt
ZShjb25zdCBTdHJpbmcmIHBhdGgsIHRpbWVfdCYgcmVzdWx0KQogewogICAgIGRvdWJsZSBtb2Rp
ZmljYXRpb25UaW1lOwotICAgIGlmICghd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmZpbGVVdGls
aXRpZXMoKS0+Z2V0RmlsZU1vZGlmaWNhdGlvblRpbWUocGF0aCwgbW9kaWZpY2F0aW9uVGltZSkp
CisgICAgaWYgKCFXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmZpbGVVdGlsaXRpZXMoKS0+
Z2V0RmlsZU1vZGlmaWNhdGlvblRpbWUocGF0aCwgbW9kaWZpY2F0aW9uVGltZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICByZXN1bHQgPSBzdGF0aWNfY2FzdDx0aW1lX3Q+KG1vZGlmaWNh
dGlvblRpbWUpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMzM1LDYyICszMzUsNjIgQEAgYm9vbCBQ
bGF0Zm9ybVN1cHBvcnQ6OmdldEZpbGVNb2RpZmljYXRpbwogCiBTdHJpbmcgUGxhdGZvcm1TdXBw
b3J0OjpkaXJlY3RvcnlOYW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICByZXR1cm4gd2Vi
S2l0UGxhdGZvcm1TdXBwb3J0KCktPmZpbGVVdGlsaXRpZXMoKS0+ZGlyZWN0b3J5TmFtZShwYXRo
KTsKKyAgICByZXR1cm4gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5maWxlVXRpbGl0aWVz
KCktPmRpcmVjdG9yeU5hbWUocGF0aCk7CiB9CiAKIFN0cmluZyBQbGF0Zm9ybVN1cHBvcnQ6OnBh
dGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYg
Y29tcG9uZW50KQogewotICAgIHJldHVybiB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+ZmlsZVV0
aWxpdGllcygpLT5wYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgY29tcG9uZW50KTsKKyAg
ICByZXR1cm4gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5maWxlVXRpbGl0aWVzKCktPnBh
dGhCeUFwcGVuZGluZ0NvbXBvbmVudChwYXRoLCBjb21wb25lbnQpOwogfQogCiBib29sIFBsYXRm
b3JtU3VwcG9ydDo6bWFrZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAg
ICByZXR1cm4gd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmZpbGVVdGlsaXRpZXMoKS0+bWFrZUFs
bERpcmVjdG9yaWVzKHBhdGgpOworICAgIHJldHVybiBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50
KCktPmZpbGVVdGlsaXRpZXMoKS0+bWFrZUFsbERpcmVjdG9yaWVzKHBhdGgpOwogfQogCiBTdHJp
bmcgUGxhdGZvcm1TdXBwb3J0OjpnZXRBYnNvbHV0ZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQog
ewotICAgIHJldHVybiB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+ZmlsZVV0aWxpdGllcygpLT5n
ZXRBYnNvbHV0ZVBhdGgocGF0aCk7CisgICAgcmV0dXJuIFdlYktpdDo6UGxhdGZvcm06OmN1cnJl
bnQoKS0+ZmlsZVV0aWxpdGllcygpLT5nZXRBYnNvbHV0ZVBhdGgocGF0aCk7CiB9CiAKIGJvb2wg
UGxhdGZvcm1TdXBwb3J0Ojppc0RpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAg
cmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5maWxlVXRpbGl0aWVzKCktPmlzRGlyZWN0
b3J5KHBhdGgpOworICAgIHJldHVybiBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmZpbGVV
dGlsaXRpZXMoKS0+aXNEaXJlY3RvcnkocGF0aCk7CiB9CiAKIEtVUkwgUGxhdGZvcm1TdXBwb3J0
OjpmaWxlUGF0aFRvVVJMKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICByZXR1cm4gd2ViS2l0
UGxhdGZvcm1TdXBwb3J0KCktPmZpbGVVdGlsaXRpZXMoKS0+ZmlsZVBhdGhUb1VSTChwYXRoKTsK
KyAgICByZXR1cm4gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5maWxlVXRpbGl0aWVzKCkt
PmZpbGVQYXRoVG9VUkwocGF0aCk7CiB9CiAKIFBsYXRmb3JtRmlsZUhhbmRsZSBQbGF0Zm9ybVN1
cHBvcnQ6Om9wZW5GaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU9wZW5Nb2RlIG1vZGUpCiB7
Ci0gICAgcmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5maWxlVXRpbGl0aWVzKCktPm9w
ZW5GaWxlKHBhdGgsIG1vZGUpOworICAgIHJldHVybiBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50
KCktPmZpbGVVdGlsaXRpZXMoKS0+b3BlbkZpbGUocGF0aCwgbW9kZSk7CiB9CiAKIHZvaWQgUGxh
dGZvcm1TdXBwb3J0OjpjbG9zZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiB7Ci0g
ICAgd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmZpbGVVdGlsaXRpZXMoKS0+Y2xvc2VGaWxlKGhh
bmRsZSk7CisgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5maWxlVXRpbGl0aWVzKCkt
PmNsb3NlRmlsZShoYW5kbGUpOwogfQogCiBsb25nIGxvbmcgUGxhdGZvcm1TdXBwb3J0OjpzZWVr
RmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0LCBGaWxlU2Vl
a09yaWdpbiBvcmlnaW4pCiB7Ci0gICAgcmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5m
aWxlVXRpbGl0aWVzKCktPnNlZWtGaWxlKGhhbmRsZSwgb2Zmc2V0LCBvcmlnaW4pOworICAgIHJl
dHVybiBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmZpbGVVdGlsaXRpZXMoKS0+c2Vla0Zp
bGUoaGFuZGxlLCBvZmZzZXQsIG9yaWdpbik7CiB9CiAKIGJvb2wgUGxhdGZvcm1TdXBwb3J0Ojp0
cnVuY2F0ZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCkK
IHsKLSAgICByZXR1cm4gd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmZpbGVVdGlsaXRpZXMoKS0+
dHJ1bmNhdGVGaWxlKGhhbmRsZSwgb2Zmc2V0KTsKKyAgICByZXR1cm4gV2ViS2l0OjpQbGF0Zm9y
bTo6Y3VycmVudCgpLT5maWxlVXRpbGl0aWVzKCktPnRydW5jYXRlRmlsZShoYW5kbGUsIG9mZnNl
dCk7CiB9CiAKIGludCBQbGF0Zm9ybVN1cHBvcnQ6OnJlYWRGcm9tRmlsZShQbGF0Zm9ybUZpbGVI
YW5kbGUgaGFuZGxlLCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogewotICAgIHJldHVybiB3ZWJL
aXRQbGF0Zm9ybVN1cHBvcnQoKS0+ZmlsZVV0aWxpdGllcygpLT5yZWFkRnJvbUZpbGUoaGFuZGxl
LCBkYXRhLCBsZW5ndGgpOworICAgIHJldHVybiBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCkt
PmZpbGVVdGlsaXRpZXMoKS0+cmVhZEZyb21GaWxlKGhhbmRsZSwgZGF0YSwgbGVuZ3RoKTsKIH0K
IAogaW50IFBsYXRmb3JtU3VwcG9ydDo6d3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhh
bmRsZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKIHsKLSAgICByZXR1cm4gd2ViS2l0
UGxhdGZvcm1TdXBwb3J0KCktPmZpbGVVdGlsaXRpZXMoKS0+d3JpdGVUb0ZpbGUoaGFuZGxlLCBk
YXRhLCBsZW5ndGgpOworICAgIHJldHVybiBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmZp
bGVVdGlsaXRpZXMoKS0+d3JpdGVUb0ZpbGUoaGFuZGxlLCBkYXRhLCBsZW5ndGgpOwogfQogCiAj
aWYgRU5BQkxFKEZJTEVfU1lTVEVNKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>