<?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>186859</bug_id>
          
          <creation_ts>2018-06-20 12:29:01 -0700</creation_ts>
          <short_desc>Add API for configuring the number of threads used by DFG and FTL</short_desc>
          <delta_ts>2018-06-25 11:30:55 -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>JavaScriptCore</component>
          <version>WebKit Local 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tadeu Zagallo">tzagallo</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1434868</commentid>
    <comment_count>0</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-06-20 12:29:01 -0700</bug_when>
    <thetext>The number of threads DFG and FTL use is already configurable via JSC::Options, add an API that also allows changing it at runtime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1434869</commentid>
    <comment_count>1</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-06-20 12:29:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/41093519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1434902</commentid>
    <comment_count>2</comment_count>
      <attachid>343185</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-06-20 15:18:48 -0700</bug_when>
    <thetext>Created attachment 343185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1434904</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-06-20 15:21:58 -0700</bug_when>
    <thetext>Attachment 343185 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGWorklist.cpp:501:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1434912</commentid>
    <comment_count>4</comment_count>
      <attachid>343185</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-06-20 15:41:29 -0700</bug_when>
    <thetext>Comment on attachment 343185
Patch

I think we should have a single function that specifies the number of threads our compilers and do our own balancing. The fact that we have two tiers is too low of an implementation detail to expose to our clients, IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436063</commentid>
    <comment_count>5</comment_count>
      <attachid>343185</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-06-25 08:42:00 -0700</bug_when>
    <thetext>Comment on attachment 343185
Patch

I think we should just do this.  We can bikeshed one v. two functions later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436074</commentid>
    <comment_count>6</comment_count>
      <attachid>343185</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-25 08:59:05 -0700</bug_when>
    <thetext>Comment on attachment 343185
Patch

Rejecting attachment 343185 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 343185, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=343185&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=186859&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Processing patch 343185 from bug 186859.
Fetching: https://bugs.webkit.org/attachment.cgi?id=343185
Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Filip Pizlo&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Parsed 6 diffs from patch file(s).
patching file Source/JavaScriptCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/JavaScriptCore/API/JSVirtualMachine.mm
patching file Source/JavaScriptCore/API/JSVirtualMachinePrivate.h
patching file Source/JavaScriptCore/API/tests/testapi.mm
patching file Source/JavaScriptCore/dfg/DFGWorklist.cpp
Hunk #1 FAILED at 200.
1 out of 2 hunks FAILED -- saving rejects to file Source/JavaScriptCore/dfg/DFGWorklist.cpp.rej
patching file Source/JavaScriptCore/dfg/DFGWorklist.h

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Filip Pizlo&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: https://webkit-queues.webkit.org/results/8330666</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436076</commentid>
    <comment_count>7</comment_count>
      <attachid>343502</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-06-25 09:09:39 -0700</bug_when>
    <thetext>Created attachment 343502
Patch

rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436077</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-06-25 09:11:24 -0700</bug_when>
    <thetext>Attachment 343502 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGWorklist.cpp:501:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436155</commentid>
    <comment_count>9</comment_count>
      <attachid>343502</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-25 11:30:53 -0700</bug_when>
    <thetext>Comment on attachment 343502
Patch

Clearing flags on attachment: 343502

Committed r233158: &lt;https://trac.webkit.org/changeset/233158&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436156</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-25 11:30:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343185</attachid>
            <date>2018-06-20 15:18:48 -0700</date>
            <delta_ts>2018-06-25 09:09:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186859-20180621001846.patch</filename>
            <type>text/plain</type>
            <size>12583</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyOTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
OGE2ODA2ODU1ZTZmMDdkZmViZWZmN2Q1YTY0NzI4ZWQxYjkwZTZmLi42ZDFkZjNlOGZjNWJlOWIy
ODEyZDU5YmVhZGM1NWNhZGJjMGZjZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxOC0wNi0yMCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgQVBJIGZvciBjb25maWd1cmluZyB0aGUgbnVtYmVyIG9mIHRocmVh
ZHMgdXNlZCBieSBERkcgYW5kIEZUTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg2ODU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MTA5MzUxOT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3
IHByaXZhdGUgQVBJcyBmb3IgbGltaXRpbmcgdGhlIG51bWJlciBvZiB0aHJlYWRzIHRvIGJlIHVz
ZWQgYnkKKyAgICAgICAgdGhlIERGRyBhbmQgRlRMIGNvbXBpbGVycy4gSXQgd2FzIGFscmVhZHkg
cG9zc2libGUgdG8gY29uZmlndXJlIHRoZQorICAgICAgICBsaW1pdCB0aHJvdWdoIEpTQyBPcHRp
b25zLCBidXQgbm93IGl0IGNhbiBiZSBjaGFuZ2VkIGF0IHJ1bnRpbWUsIGV2ZW4KKyAgICAgICAg
aW4gdGhlIGNhc2Ugd2hlbiB0aGUgVk0gaXMgYWxyZWFkeSBydW5uaW5nLgorCisgICAgICAgIEFk
ZCBhIHRlc3QgZm9yIGJvdGggY2FzZXM6IHdoZW4gdHJ5aW5nIHRvIGNvbmZpZ3VyZSB0aGUgbGlt
aXQgYmVmb3JlCisgICAgICAgIGFuZCBhZnRlciB0aGUgV29ya2xpc3QgaGFzIGJlZW4gY3JlYXRl
ZCwgYnV0IGluIG9yZGVyIHRvIHNpbXVsYXRlIHRoZQorICAgICAgICBmaXJzdCBzY2VuYXJpbywg
d2UgbXVzdCBndWFyYW50ZWUgdGhhdCB0aGUgdGVzdCBydW5zIGF0IHRoZSB2ZXJ5CisgICAgICAg
IGJlZ2lubmluZywgc28gSSBhbHNvIGFkZGVkIGEgY2hlY2sgZm9yIHRoYXQuCisKKyAgICAgICAg
KiBBUEkvSlNWaXJ0dWFsTWFjaGluZS5tbToKKyAgICAgICAgKCtbSlNWaXJ0dWFsTWFjaGluZSBz
ZXROdW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkczpdKToKKyAgICAgICAgKCtbSlNWaXJ0dWFsTWFj
aGluZSBzZXROdW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkczpdKToKKyAgICAgICAgKiBBUEkvSlNW
aXJ0dWFsTWFjaGluZVByaXZhdGUuaDoKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5tbToK
KyAgICAgICAgKHJ1bkpJVFRocmVhZExpbWl0VGVzdHMpOgorICAgICAgICAodGVzdE9iamVjdGl2
ZUNBUElNYWluKToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlND
OjpERkc6OldvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6V29y
a2xpc3Q6OmNyZWF0ZU5ld1RocmVhZCk6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OnNl
dE51bWJlck9mVGhyZWFkcyk6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0Lmg6CisKIDIwMTgt
MDYtMTggIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAg
SlNJbW11dGFibGVCdXR0ZXJmbHkgc2hvdWxkIGFzc2VydCBtX2hlYWRlciBpcyBhZGphY2VudCB0
byB0aGUgZGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1
YWxNYWNoaW5lLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5l
Lm1tCmluZGV4IDFlMjA3OTFiNDVhODg0YmJkYmJjYjJhNDBjYjcyNDkzMGU4YzA3NmIuLjMwYzM3
ZTJlNWE4ZDlmY2E2NWRmZWNmNTI2MDdiODhiNDY4YmQ3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpZiBK
U0NfT0JKQ19BUElfRU5BQkxFRAogCiAjaW1wb3J0ICJBUElDYXN0LmgiCisjaW1wb3J0ICJERkdX
b3JrbGlzdC5oIgogI2ltcG9ydCAiSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oIgogI2ltcG9ydCAi
SlNWaXJ0dWFsTWFjaGluZS5oIgogI2ltcG9ydCAiSlNWaXJ0dWFsTWFjaGluZUludGVybmFsLmgi
CkBAIC0yNzUsNiArMjc2LDMyIEBAIC0gKHZvaWQpc2hyaW5rRm9vdHByaW50V2hlbklkbGUKICAg
ICB2bS0+c2hyaW5rRm9vdHByaW50V2hlbklkbGUoKTsKIH0KIAorI2lmIEVOQUJMRShERkdfSklU
KQorCisrIChOU1VJbnRlZ2VyKXNldE51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzOihOU1VJbnRl
Z2VyKW51bWJlck9mVGhyZWFkcworeworICAgIEpTQzo6REZHOjpXb3JrbGlzdCogd29ya2xpc3Qg
PSBKU0M6OkRGRzo6ZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCgpOworICAgIGlmICh3
b3JrbGlzdCkKKyAgICAgICAgcmV0dXJuIHdvcmtsaXN0LT5zZXROdW1iZXJPZlRocmVhZHMobnVt
YmVyT2ZUaHJlYWRzLCBKU0M6Ok9wdGlvbnM6OnByaW9yaXR5RGVsdGFPZkRGR0NvbXBpbGVyVGhy
ZWFkcygpKTsKKworICAgIGF1dG8gY3VycmVudE51bWJlck9mVGhyZWFkcyA9IEpTQzo6T3B0aW9u
czo6bnVtYmVyT2ZERkdDb21waWxlclRocmVhZHMoKTsKKyAgICBKU0M6Ok9wdGlvbnM6Om51bWJl
ck9mREZHQ29tcGlsZXJUaHJlYWRzKCkgPSBudW1iZXJPZlRocmVhZHM7CisgICAgcmV0dXJuIGN1
cnJlbnROdW1iZXJPZlRocmVhZHM7Cit9CisKKysgKE5TVUludGVnZXIpc2V0TnVtYmVyT2ZGVExD
b21waWxlclRocmVhZHM6KE5TVUludGVnZXIpbnVtYmVyT2ZUaHJlYWRzCit7CisgICAgSlNDOjpE
Rkc6OldvcmtsaXN0KiB3b3JrbGlzdCA9IEpTQzo6REZHOjpleGlzdGluZ0dsb2JhbEZUTFdvcmts
aXN0T3JOdWxsKCk7CisgICAgaWYgKHdvcmtsaXN0KQorICAgICAgICByZXR1cm4gd29ya2xpc3Qt
PnNldE51bWJlck9mVGhyZWFkcyhudW1iZXJPZlRocmVhZHMsIEpTQzo6T3B0aW9uczo6cHJpb3Jp
dHlEZWx0YU9mRlRMQ29tcGlsZXJUaHJlYWRzKCkpOworCisgICAgYXV0byBjdXJyZW50TnVtYmVy
T2ZUaHJlYWRzID0gSlNDOjpPcHRpb25zOjpudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpOwor
ICAgIEpTQzo6T3B0aW9uczo6bnVtYmVyT2ZGVExDb21waWxlclRocmVhZHMoKSA9IG51bWJlck9m
VGhyZWFkczsKKyAgICByZXR1cm4gY3VycmVudE51bWJlck9mVGhyZWFkczsKK30KKworI2VuZGlm
IC8vIEVOQUJMRShERkdfSklUKQorCiBAZW5kCiAKIHN0YXRpYyB2b2lkIHNjYW5FeHRlcm5hbE9i
amVjdEdyYXBoKEpTQzo6Vk0mIHZtLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yLCB2b2lkKiBy
b290LCBib29sIGxvY2tBY3F1aXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNWaXJ0dWFsTWFjaGluZVByaXZhdGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNWaXJ0dWFsTWFjaGluZVByaXZhdGUuaAppbmRleCA0ODZhNjdiZWMzZmIwMzg0YjAxYjM4
ZjI5NDIyNTc1MzMzN2E1NzAzLi42ZmFhZjA2ZmM1MDRkNzYyNjBjZTUxNDQ4YjIyNTFmZWYxYTM0
ZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hp
bmVQcml2YXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNo
aW5lUHJpdmF0ZS5oCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNp
bmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHQuaD4KIAogI2lmIEpTQ19PQkpDX0FQSV9FTkFCTEVECkBAIC00NCw2ICs0NSwzNiBAQAog
CiAtICh2b2lkKXNocmlua0Zvb3RwcmludFdoZW5JZGxlIE5TX0FWQUlMQUJMRSgxMF8xNCwgMTJf
MCk7CiAKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworLyohCitAbWV0aG9kCitAYWJzdHJhY3QgU2V0
IHRoZSBudW1iZXIgb2YgdGhyZWFkcyB0byBiZSB1c2VkIGJ5IHRoZSBERkcgSklUIGNvbXBpbGVy
LgorQGRpc2N1c3Npb24gSWYgY2FsbGVkIGFmdGVyIHRoZSBWTSBoYXMgYmVlbiBpbml0aWFsaXpl
ZCwgaXQgd2lsbCB0ZXJtaW5hdGUKKyB0aHJlYWRzIHVudGlsIGl0IG1lZXRzIHRoZSBuZXcgbGlt
aXQgb3IgY3JlYXRlIG5ldyB0aHJlYWRzIGFjY29yZGluZ2x5IGlmIHRoZQorIG5ldyBsaW1pdCBp
cyBoaWdoZXIgdGhhbiB0aGUgcHJldmlvdXMgbGltaXQuIElmIGNhbGxlZCBiZWZvcmUgaW5pdGlh
bGl6YXRpb24sCisgdGhlIE9wdGlvbnMgdmFsdWUgZm9yIHRoZSBudW1iZXIgb2YgREZHIHRocmVh
ZHMgd2lsbCBiZSB1cGRhdGVkIHRvIGVuc3VyZSB0aGUKKyBERkcgY29tcGlsZXIgYWxyZWFkeSBz
dGFydHMgd2l0aCB0aGUgdXAtdG8tZGF0ZSBsaW1pdC4KK0BwYXJhbSBudW1iZXJPZlRocmVhZHMg
VGhlIG51bWJlciBvZiB0aHJlYWRzIHRoZSBERkcgY29tcGlsZXIgc2hvdWxkIHVzZSBnb2luZyBm
b3J3YXJkCitAcmVzdWx0IFRoZSBwcmV2aW91cyBudW1iZXIgb2YgdGhyZWFkcyBiZWluZyB1c2Vk
IGJ5IHRoZSBERkcgY29tcGlsZXIKKyovCisrIChOU1VJbnRlZ2VyKXNldE51bWJlck9mREZHQ29t
cGlsZXJUaHJlYWRzOihOU1VJbnRlZ2VyKW51bWJlck9mVGhyZWFkcyBOU19BVkFJTEFCTEUoMTBf
MTQsIDEyXzApOworCisvKiEKK0BtZXRob2QKK0BhYnN0cmFjdCBTZXQgdGhlIG51bWJlciBvZiB0
aHJlYWRzIHRvIGJlIHVzZWQgYnkgdGhlIEZUTCBKSVQgY29tcGlsZXIuCitAZGlzY3Vzc2lvbiBJ
ZiBjYWxsZWQgYWZ0ZXIgdGhlIFZNIGhhcyBiZWVuIGluaXRpYWxpemVkLCBpdCB3aWxsIHRlcm1p
bmF0ZQorIHRocmVhZHMgdW50aWwgaXQgbWVldHMgdGhlIG5ldyBsaW1pdCBvciBjcmVhdGUgbmV3
IHRocmVhZHMgYWNjb3JkaW5nbHkgaWYgdGhlCisgbmV3IGxpbWl0IGlzIGhpZ2hlciB0aGFuIHRo
ZSBwcmV2aW91cyBsaW1pdC4gSWYgY2FsbGVkIGJlZm9yZSBpbml0aWFsaXphdGlvbiwKKyB0aGUg
T3B0aW9ucyB2YWx1ZSBmb3IgdGhlIG51bWJlciBvZiBGVEwgdGhyZWFkcyB3aWxsIGJlIHVwZGF0
ZWQgdG8gZW5zdXJlIHRoZQorIEZUTCBjb21waWxlciBhbHJlYWR5IHN0YXJ0cyB3aXRoIHRoZSB1
cC10by1kYXRlIGxpbWl0LgorQHBhcmFtIG51bWJlck9mVGhyZWFkcyBUaGUgbnVtYmVyIG9mIHRo
cmVhZHMgdGhlIEZUTCBjb21waWxlciBzaG91bGQgdXNlIGdvaW5nIGZvcndhcmQKK0ByZXN1bHQg
VGhlIHByZXZpb3VzIG51bWJlciBvZiB0aHJlYWRzIGJlaW5nIHVzZWQgYnkgdGhlIEZUTCBjb21w
aWxlcgorKi8KKysgKE5TVUludGVnZXIpc2V0TnVtYmVyT2ZGVExDb21waWxlclRocmVhZHM6KE5T
VUludGVnZXIpbnVtYmVyT2ZUaHJlYWRzIE5TX0FWQUlMQUJMRSgxMF8xNCwgMTJfMCk7CisKKyNl
bmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKwogQGVuZAogCiAjZW5kaWYgLy8gSlNDX09CSkNfQVBJ
X0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVz
dGFwaS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQppbmRl
eCBkN2NjMjY1NjgzMWJmNTQ0MTJlNGQ4Nzc5YWY1M2EzNDllMmEwOTNmLi5jNGMyMjNlZmI3ZTQy
N2NlZGJjMGM1NzJmMjQ5MjM3ODQ2OGQ1MGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy90ZXN0YXBpLm1tCkBAIC0yMyw5ICsyMywxNCBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCisjaW1wb3J0ICJKU0V4cG9ydE1hY3Jvcy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuaD4KIAorI3VuZGVmIE5TX0FWQUlMQUJMRQorI2RlZmluZSBOU19BVkFJ
TEFCTEUoX21hYywgX2lvcykKKwogI2ltcG9ydCAiQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRl
clRlc3QuaCIKKyNpbXBvcnQgIkRGR1dvcmtsaXN0LmgiCiAjaW1wb3J0ICJEYXRlVGVzdHMuaCIK
ICNpbXBvcnQgIkpTRXhwb3J0VGVzdHMuaCIKICNpbXBvcnQgIkpTVmlydHVhbE1hY2hpbmVQcml2
YXRlLmgiCkBAIC01MTQsOCArNTE5LDQxIEBAIHN0YXRpYyB2b2lkKiBtdWx0aVZNVGhyZWFkTWFp
bih2b2lkKiBva1B0cikKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorc3RhdGljIHZvaWQgcnVu
SklUVGhyZWFkTGltaXRUZXN0cygpCit7CisgICAgYXV0byB0ZXN0REZHID0gW10geworICAgICAg
ICB1bnNpZ25lZCBkZWZhdWx0TnVtYmVyT2ZUaHJlYWRzID0gSlNDOjpPcHRpb25zOjpudW1iZXJP
ZkRGR0NvbXBpbGVyVGhyZWFkcygpOworICAgICAgICB1bnNpZ25lZCB0YXJnZXROdW1iZXJPZlRo
cmVhZHMgPSAxOworICAgICAgICB1bnNpZ25lZCBpbml0aWFsTnVtYmVyT2ZUaHJlYWRzID0gW0pT
VmlydHVhbE1hY2hpbmUgc2V0TnVtYmVyT2ZERkdDb21waWxlclRocmVhZHM6MV07CisgICAgICAg
IGNoZWNrUmVzdWx0KEAiSW5pdGlhbCBudW1iZXIgb2YgREZHIHRocmVhZHMgc2hvdWxkIGJlIHRo
ZSB2YWx1ZSBwcm92aWRlZCB0aHJvdWdoIE9wdGlvbnMiLCBpbml0aWFsTnVtYmVyT2ZUaHJlYWRz
ID09IGRlZmF1bHROdW1iZXJPZlRocmVhZHMpOworICAgICAgICB1bnNpZ25lZCB1cGRhdGVkTnVt
YmVyT2ZUaHJlYWRzID0gW0pTVmlydHVhbE1hY2hpbmUgc2V0TnVtYmVyT2ZERkdDb21waWxlclRo
cmVhZHM6aW5pdGlhbE51bWJlck9mVGhyZWFkc107CisgICAgICAgIGNoZWNrUmVzdWx0KEAiTnVt
YmVyIG9mIERGRyB0aHJlYWRzIHNob3VsZCBoYXZlIGJlZW4gdXBkYXRlZCIsIHVwZGF0ZWROdW1i
ZXJPZlRocmVhZHMgPT0gdGFyZ2V0TnVtYmVyT2ZUaHJlYWRzKTsKKyAgICB9OworCisgICAgYXV0
byB0ZXN0RlRMID0gW10geworICAgICAgICB1bnNpZ25lZCBkZWZhdWx0TnVtYmVyT2ZUaHJlYWRz
ID0gSlNDOjpPcHRpb25zOjpudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpOworICAgICAgICB1
bnNpZ25lZCB0YXJnZXROdW1iZXJPZlRocmVhZHMgPSAzOworICAgICAgICB1bnNpZ25lZCBpbml0
aWFsTnVtYmVyT2ZUaHJlYWRzID0gW0pTVmlydHVhbE1hY2hpbmUgc2V0TnVtYmVyT2ZGVExDb21w
aWxlclRocmVhZHM6MV07CisgICAgICAgIGNoZWNrUmVzdWx0KEAiSW5pdGlhbCBudW1iZXIgb2Yg
RlRMIHRocmVhZHMgc2hvdWxkIGJlIHRoZSB2YWx1ZSBwcm92aWRlZCB0aHJvdWdoIE9wdGlvbnMi
LCBpbml0aWFsTnVtYmVyT2ZUaHJlYWRzID09IGRlZmF1bHROdW1iZXJPZlRocmVhZHMpOworICAg
ICAgICB1bnNpZ25lZCB1cGRhdGVkTnVtYmVyT2ZUaHJlYWRzID0gW0pTVmlydHVhbE1hY2hpbmUg
c2V0TnVtYmVyT2ZGVExDb21waWxlclRocmVhZHM6aW5pdGlhbE51bWJlck9mVGhyZWFkc107Cisg
ICAgICAgIGNoZWNrUmVzdWx0KEAiTnVtYmVyIG9mIEZUTCB0aHJlYWRzIHNob3VsZCBoYXZlIGJl
ZW4gdXBkYXRlZCIsIHVwZGF0ZWROdW1iZXJPZlRocmVhZHMgPT0gdGFyZ2V0TnVtYmVyT2ZUaHJl
YWRzKTsKKyAgICB9OworCisgICAgY2hlY2tSZXN1bHQoQCJydW5KSVRUaHJlYWRMaW1pdFRlc3Rz
KCkgbXVzdCBydW4gYXQgdGhlIHZlcnkgYmVnaW5uaW5nIHRvIHRlc3QgdGhlIGNhc2Ugd2hlcmUg
dGhlIGdsb2JhbCBKSVQgd29ya2xpc3Qgd2FzIG5vdCBpbml0aWFsaXplZCB5ZXQiLCAhSlNDOjpE
Rkc6OmV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKSAmJiAhSlNDOjpERkc6OmV4aXN0
aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKSk7CisKKyAgICB0ZXN0REZHKCk7CisgICAgSlND
OjpERkc6OmVuc3VyZUdsb2JhbERGR1dvcmtsaXN0KCk7CisgICAgdGVzdERGRygpOworCisgICAg
dGVzdEZUTCgpOworICAgIEpTQzo6REZHOjplbnN1cmVHbG9iYWxGVExXb3JrbGlzdCgpOworICAg
IHRlc3RGVEwoKTsKK30KKwogc3RhdGljIHZvaWQgdGVzdE9iamVjdGl2ZUNBUElNYWluKCkKIHsK
KyAgICBydW5KSVRUaHJlYWRMaW1pdFRlc3RzKCk7CisKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsK
ICAgICAgICAgSlNWaXJ0dWFsTWFjaGluZSogdm0gPSBbW0pTVmlydHVhbE1hY2hpbmUgYWxsb2Nd
IGluaXRdOwogICAgICAgICBKU0NvbnRleHQqIGNvbnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10g
aW5pdFdpdGhWaXJ0dWFsTWFjaGluZTp2bV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
V29ya2xpc3QuY3BwCmluZGV4IDViYzg4YzQwNTBhYmE5YzY3MDFkNTY2ZTZkNzhlMDg0OWVhMTkz
ZmMuLjYwMWZhOGUzMjM4NjQ5M2UyYTIzZTc2ZTkxZmJiZjA0NTFlMDc1NDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC0yMDAsMTIgKzIwMCwxNyBAQCB2
b2lkIFdvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGlu
dCByZWxhdGl2ZVByaW9yaXR5KQogICAgIFJFTEVBU0VfQVNTRVJUKG51bWJlck9mVGhyZWFkcyk7
CiAgICAgTG9ja0hvbGRlciBsb2NrZXIoKm1fbG9jayk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
bnVtYmVyT2ZUaHJlYWRzOyBpLS07KSB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRE
YXRhPiBkYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxUaHJlYWREYXRhPih0aGlzKTsKLSAgICAgICAg
ZGF0YS0+bV90aHJlYWQgPSBhZG9wdFJlZihuZXcgVGhyZWFkQm9keShsb2NrZXIsICp0aGlzLCAq
ZGF0YSwgbV9sb2NrLCBtX3BsYW5FbnF1ZXVlZCwgcmVsYXRpdmVQcmlvcml0eSkpOwotICAgICAg
ICBtX3RocmVhZHMuYXBwZW5kKFdURk1vdmUoZGF0YSkpOworICAgICAgICBjcmVhdGVOZXdUaHJl
YWQobG9ja2VyLCByZWxhdGl2ZVByaW9yaXR5KTsKICAgICB9CiB9CiAKK3ZvaWQgV29ya2xpc3Q6
OmNyZWF0ZU5ld1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBpbnQgcmVsYXRp
dmVQcmlvcml0eSkKK3sKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRGF0YT4gZGF0YSA9IHN0
ZDo6bWFrZV91bmlxdWU8VGhyZWFkRGF0YT4odGhpcyk7CisgICAgZGF0YS0+bV90aHJlYWQgPSBh
ZG9wdFJlZihuZXcgVGhyZWFkQm9keShsb2NrZXIsICp0aGlzLCAqZGF0YSwgbV9sb2NrLCBtX3Bs
YW5FbnF1ZXVlZCwgcmVsYXRpdmVQcmlvcml0eSkpOworICAgIG1fdGhyZWFkcy5hcHBlbmQoV1RG
TW92ZShkYXRhKSk7Cit9CisKIFJlZjxXb3JrbGlzdD4gV29ya2xpc3Q6OmNyZWF0ZShDU3RyaW5n
IHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlv
cml0eSkKIHsKICAgICBSZWY8V29ya2xpc3Q+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgV29ya2xp
c3Qod29ya2xpc3ROYW1lKSk7CkBAIC00ODgsNiArNDkzLDQwIEBAIHZvaWQgV29ya2xpc3Q6OmR1
bXAoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgICAg
ICAiLCBOdW0gQWN0aXZlIFRocmVhZHMgPSAiLCBtX251bWJlck9mQWN0aXZlVGhyZWFkcywgIi8i
LCBtX3RocmVhZHMuc2l6ZSgpLCAiXSIpOwogfQogCit1bnNpZ25lZCBXb3JrbGlzdDo6c2V0TnVt
YmVyT2ZUaHJlYWRzKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3Jp
dHkpCit7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zdXNwZW5zaW9uTG9jayk7CisgICAgYXV0
byBjdXJyZW50TnVtYmVyT2ZUaHJlYWRzID0gbV90aHJlYWRzLnNpemUoKTsKKyAgICBpZiAobnVt
YmVyT2ZUaHJlYWRzIDwgY3VycmVudE51bWJlck9mVGhyZWFkcykgeworICAgICAgICB7CisgICAg
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcigqbV9sb2NrKTsKKyAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IGN1cnJlbnROdW1iZXJPZlRocmVhZHM7IGktLSA+IG51bWJlck9mVGhyZWFkczsp
IHsKKyAgICAgICAgICAgICAgICBpZiAobV90aHJlYWRzW2ldLT5tX3RocmVhZC0+aGFzVW5kZXJs
eWluZ1RocmVhZChsb2NrZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fcXVldWUuYXBwZW5k
KG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBtX3RocmVhZHNbaV0tPm1fdGhyZWFkLT5u
b3RpZnkobG9ja2VyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gY3VycmVudE51bWJlck9mVGhyZWFkczsgaS0t
ID4gbnVtYmVyT2ZUaHJlYWRzOykgeworICAgICAgICAgICAgYm9vbCBpc1N0b3BwZWQgPSBmYWxz
ZTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcigqbV9s
b2NrKTsKKyAgICAgICAgICAgICAgICBpc1N0b3BwZWQgPSBtX3RocmVhZHNbaV0tPm1fdGhyZWFk
LT50cnlTdG9wKGxvY2tlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWlzU3Rv
cHBlZCkKKyAgICAgICAgICAgICAgICBtX3RocmVhZHNbaV0tPm1fdGhyZWFkLT5qb2luKCk7Cisg
ICAgICAgICAgICBtX3RocmVhZHMucmVtb3ZlKGkpOworICAgICAgICB9CisgICAgICAgIG1fdGhy
ZWFkcy5zaHJpbmtUb0ZpdCgpOworICAgICAgICBBU1NFUlQobV9udW1iZXJPZkFjdGl2ZVRocmVh
ZHMgPD0gbnVtYmVyT2ZUaHJlYWRzKTsKKyAgICB9IGVsc2UgaWYgKG51bWJlck9mVGhyZWFkcyA+
IGN1cnJlbnROdW1iZXJPZlRocmVhZHMpIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIoKm1f
bG9jayk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IGN1cnJlbnROdW1iZXJPZlRocmVhZHM7
IGkgPCBudW1iZXJPZlRocmVhZHM7IGkrKykKKyAgICAgICAgICAgIGNyZWF0ZU5ld1RocmVhZChs
b2NrZXIsIHJlbGF0aXZlUHJpb3JpdHkpOworICAgIH0KKyAgICByZXR1cm4gY3VycmVudE51bWJl
ck9mVGhyZWFkczsKK30KKwogc3RhdGljIFdvcmtsaXN0KiB0aGVHbG9iYWxERkdXb3JrbGlzdDsK
IAogV29ya2xpc3QmIGVuc3VyZUdsb2JhbERGR1dvcmtsaXN0KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuaAppbmRleCA0MTIwNTU5NGJkNjljMGU2MjNjYTI4YzkxNGIzY2Yx
YmQzYjNiNjMxLi4wMzAwYjU4ZWVjMmVhNTc0NWM1ZGEwMTA1OGIxNWYwM2UxZGZiOWM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCkBAIC03OSwxMCArNzksMTIgQEAg
cHVibGljOgogICAgIHZvaWQgcmVtb3ZlTm9uQ29tcGlsaW5nUGxhbnNGb3JWTShWTSYpOwogICAg
IAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OworICAgIHVuc2lnbmVkIHNldE51
bWJlck9mVGhyZWFkcyh1bnNpZ25lZCwgaW50KTsKICAgICAKIHByaXZhdGU6CiAgICAgV29ya2xp
c3QoQ1N0cmluZyB3b3JrbGlzdE5hbWUpOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24odW5zaWdu
ZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQpOworICAgIHZvaWQgY3JlYXRlTmV3VGhyZWFkKGNvbnN0
IEFic3RyYWN0TG9ja2VyJiwgaW50KTsKICAgICAKICAgICBjbGFzcyBUaHJlYWRCb2R5OwogICAg
IGZyaWVuZCBjbGFzcyBUaHJlYWRCb2R5OwpAQCAtMTIxLDEyICsxMjMsMTIgQEAgcHJpdmF0ZToK
IH07CiAKIC8vIEZvciBERkdNb2RlIGNvbXBpbGF0aW9ucy4KLVdvcmtsaXN0JiBlbnN1cmVHbG9i
YWxERkdXb3JrbGlzdCgpOwotV29ya2xpc3QqIGV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51
bGwoKTsKK0pTX0VYUE9SVF9QUklWQVRFIFdvcmtsaXN0JiBlbnN1cmVHbG9iYWxERkdXb3JrbGlz
dCgpOworSlNfRVhQT1JUX1BSSVZBVEUgV29ya2xpc3QqIGV4aXN0aW5nR2xvYmFsREZHV29ya2xp
c3RPck51bGwoKTsKIAogLy8gRm9yIEZUTE1vZGUgYW5kIEZUTEZvck9TUkVudHJ5TW9kZSBjb21w
aWxhdGlvbnMuCi1Xb3JrbGlzdCYgZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKTsKLVdvcmtsaXN0
KiBleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCk7CitKU19FWFBPUlRfUFJJVkFURSBX
b3JrbGlzdCYgZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKTsKK0pTX0VYUE9SVF9QUklWQVRFIFdv
cmtsaXN0KiBleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCk7CiAKIFdvcmtsaXN0JiBl
bnN1cmVHbG9iYWxXb3JrbGlzdEZvcihDb21waWxhdGlvbk1vZGUpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343502</attachid>
            <date>2018-06-25 09:09:39 -0700</date>
            <delta_ts>2018-06-25 11:30:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186859-20180625180936.patch</filename>
            <type>text/plain</type>
            <size>12573</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzMTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MGViMmMwMzRkYzJlOGY1MWViMDRlNGZkY2U5ZDg0NGY5NWI3YmY2Li4wNGQ0YTk0YWNmYmZmZWM1
YzZlM2E1ZDM5OTNhYjZkOTNmMGE2NmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxOC0wNi0yMCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgQVBJIGZvciBjb25maWd1cmluZyB0aGUgbnVtYmVyIG9mIHRocmVh
ZHMgdXNlZCBieSBERkcgYW5kIEZUTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg2ODU5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MTA5MzUxOT4K
KworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KKworICAgICAgICBBZGQgbmV3IHBy
aXZhdGUgQVBJcyBmb3IgbGltaXRpbmcgdGhlIG51bWJlciBvZiB0aHJlYWRzIHRvIGJlIHVzZWQg
YnkKKyAgICAgICAgdGhlIERGRyBhbmQgRlRMIGNvbXBpbGVycy4gSXQgd2FzIGFscmVhZHkgcG9z
c2libGUgdG8gY29uZmlndXJlIHRoZQorICAgICAgICBsaW1pdCB0aHJvdWdoIEpTQyBPcHRpb25z
LCBidXQgbm93IGl0IGNhbiBiZSBjaGFuZ2VkIGF0IHJ1bnRpbWUsIGV2ZW4KKyAgICAgICAgaW4g
dGhlIGNhc2Ugd2hlbiB0aGUgVk0gaXMgYWxyZWFkeSBydW5uaW5nLgorCisgICAgICAgIEFkZCBh
IHRlc3QgZm9yIGJvdGggY2FzZXM6IHdoZW4gdHJ5aW5nIHRvIGNvbmZpZ3VyZSB0aGUgbGltaXQg
YmVmb3JlCisgICAgICAgIGFuZCBhZnRlciB0aGUgV29ya2xpc3QgaGFzIGJlZW4gY3JlYXRlZCwg
YnV0IGluIG9yZGVyIHRvIHNpbXVsYXRlIHRoZQorICAgICAgICBmaXJzdCBzY2VuYXJpbywgd2Ug
bXVzdCBndWFyYW50ZWUgdGhhdCB0aGUgdGVzdCBydW5zIGF0IHRoZSB2ZXJ5CisgICAgICAgIGJl
Z2lubmluZywgc28gSSBhbHNvIGFkZGVkIGEgY2hlY2sgZm9yIHRoYXQuCisKKyAgICAgICAgKiBB
UEkvSlNWaXJ0dWFsTWFjaGluZS5tbToKKyAgICAgICAgKCtbSlNWaXJ0dWFsTWFjaGluZSBzZXRO
dW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkczpdKToKKyAgICAgICAgKCtbSlNWaXJ0dWFsTWFjaGlu
ZSBzZXROdW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkczpdKToKKyAgICAgICAgKiBBUEkvSlNWaXJ0
dWFsTWFjaGluZVByaXZhdGUuaDoKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5tbToKKyAg
ICAgICAgKHJ1bkpJVFRocmVhZExpbWl0VGVzdHMpOgorICAgICAgICAodGVzdE9iamVjdGl2ZUNB
UElNYWluKToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OldvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xp
c3Q6OmNyZWF0ZU5ld1RocmVhZCk6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OnNldE51
bWJlck9mVGhyZWFkcyk6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0Lmg6CisKIDIwMTgtMDYt
MjUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pT
Q10gUmVtb3ZlIHVubmVjZXNzYXJ5IFBMQVRGT1JNIGd1YXJkcwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tCmluZGV4IDFlMjA3OTFiNDVhODg0YmJkYmJj
YjJhNDBjYjcyNDkzMGU4YzA3NmIuLjMwYzM3ZTJlNWE4ZDlmY2E2NWRmZWNmNTI2MDdiODhiNDY4
YmQ3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFj
aGluZS5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUu
bW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogCiAjaW1wb3J0
ICJBUElDYXN0LmgiCisjaW1wb3J0ICJERkdXb3JrbGlzdC5oIgogI2ltcG9ydCAiSlNNYW5hZ2Vk
VmFsdWVJbnRlcm5hbC5oIgogI2ltcG9ydCAiSlNWaXJ0dWFsTWFjaGluZS5oIgogI2ltcG9ydCAi
SlNWaXJ0dWFsTWFjaGluZUludGVybmFsLmgiCkBAIC0yNzUsNiArMjc2LDMyIEBAIC0gKHZvaWQp
c2hyaW5rRm9vdHByaW50V2hlbklkbGUKICAgICB2bS0+c2hyaW5rRm9vdHByaW50V2hlbklkbGUo
KTsKIH0KIAorI2lmIEVOQUJMRShERkdfSklUKQorCisrIChOU1VJbnRlZ2VyKXNldE51bWJlck9m
REZHQ29tcGlsZXJUaHJlYWRzOihOU1VJbnRlZ2VyKW51bWJlck9mVGhyZWFkcworeworICAgIEpT
Qzo6REZHOjpXb3JrbGlzdCogd29ya2xpc3QgPSBKU0M6OkRGRzo6ZXhpc3RpbmdHbG9iYWxERkdX
b3JrbGlzdE9yTnVsbCgpOworICAgIGlmICh3b3JrbGlzdCkKKyAgICAgICAgcmV0dXJuIHdvcmts
aXN0LT5zZXROdW1iZXJPZlRocmVhZHMobnVtYmVyT2ZUaHJlYWRzLCBKU0M6Ok9wdGlvbnM6OnBy
aW9yaXR5RGVsdGFPZkRGR0NvbXBpbGVyVGhyZWFkcygpKTsKKworICAgIGF1dG8gY3VycmVudE51
bWJlck9mVGhyZWFkcyA9IEpTQzo6T3B0aW9uczo6bnVtYmVyT2ZERkdDb21waWxlclRocmVhZHMo
KTsKKyAgICBKU0M6Ok9wdGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzKCkgPSBudW1i
ZXJPZlRocmVhZHM7CisgICAgcmV0dXJuIGN1cnJlbnROdW1iZXJPZlRocmVhZHM7Cit9CisKKysg
KE5TVUludGVnZXIpc2V0TnVtYmVyT2ZGVExDb21waWxlclRocmVhZHM6KE5TVUludGVnZXIpbnVt
YmVyT2ZUaHJlYWRzCit7CisgICAgSlNDOjpERkc6OldvcmtsaXN0KiB3b3JrbGlzdCA9IEpTQzo6
REZHOjpleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCk7CisgICAgaWYgKHdvcmtsaXN0
KQorICAgICAgICByZXR1cm4gd29ya2xpc3QtPnNldE51bWJlck9mVGhyZWFkcyhudW1iZXJPZlRo
cmVhZHMsIEpTQzo6T3B0aW9uczo6cHJpb3JpdHlEZWx0YU9mRlRMQ29tcGlsZXJUaHJlYWRzKCkp
OworCisgICAgYXV0byBjdXJyZW50TnVtYmVyT2ZUaHJlYWRzID0gSlNDOjpPcHRpb25zOjpudW1i
ZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpOworICAgIEpTQzo6T3B0aW9uczo6bnVtYmVyT2ZGVExD
b21waWxlclRocmVhZHMoKSA9IG51bWJlck9mVGhyZWFkczsKKyAgICByZXR1cm4gY3VycmVudE51
bWJlck9mVGhyZWFkczsKK30KKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCiBAZW5kCiAK
IHN0YXRpYyB2b2lkIHNjYW5FeHRlcm5hbE9iamVjdEdyYXBoKEpTQzo6Vk0mIHZtLCBKU0M6OlNs
b3RWaXNpdG9yJiB2aXNpdG9yLCB2b2lkKiByb290LCBib29sIGxvY2tBY3F1aXJlZCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZVByaXZhdGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZVByaXZhdGUuaApp
bmRleCA0ODZhNjdiZWMzZmIwMzg0YjAxYjM4ZjI5NDIyNTc1MzMzN2E1NzAzLi42ZmFhZjA2ZmM1
MDRkNzYyNjBjZTUxNDQ4YjIyNTFmZWYxYTM0ZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmVQcml2YXRlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lUHJpdmF0ZS5oCkBAIC0yMyw2ICsyMyw3IEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQuaD4KIAogI2lmIEpTQ19PQkpDX0FQSV9F
TkFCTEVECkBAIC00NCw2ICs0NSwzNiBAQAogCiAtICh2b2lkKXNocmlua0Zvb3RwcmludFdoZW5J
ZGxlIE5TX0FWQUlMQUJMRSgxMF8xNCwgMTJfMCk7CiAKKyNpZiBFTkFCTEUoREZHX0pJVCkKKwor
LyohCitAbWV0aG9kCitAYWJzdHJhY3QgU2V0IHRoZSBudW1iZXIgb2YgdGhyZWFkcyB0byBiZSB1
c2VkIGJ5IHRoZSBERkcgSklUIGNvbXBpbGVyLgorQGRpc2N1c3Npb24gSWYgY2FsbGVkIGFmdGVy
IHRoZSBWTSBoYXMgYmVlbiBpbml0aWFsaXplZCwgaXQgd2lsbCB0ZXJtaW5hdGUKKyB0aHJlYWRz
IHVudGlsIGl0IG1lZXRzIHRoZSBuZXcgbGltaXQgb3IgY3JlYXRlIG5ldyB0aHJlYWRzIGFjY29y
ZGluZ2x5IGlmIHRoZQorIG5ldyBsaW1pdCBpcyBoaWdoZXIgdGhhbiB0aGUgcHJldmlvdXMgbGlt
aXQuIElmIGNhbGxlZCBiZWZvcmUgaW5pdGlhbGl6YXRpb24sCisgdGhlIE9wdGlvbnMgdmFsdWUg
Zm9yIHRoZSBudW1iZXIgb2YgREZHIHRocmVhZHMgd2lsbCBiZSB1cGRhdGVkIHRvIGVuc3VyZSB0
aGUKKyBERkcgY29tcGlsZXIgYWxyZWFkeSBzdGFydHMgd2l0aCB0aGUgdXAtdG8tZGF0ZSBsaW1p
dC4KK0BwYXJhbSBudW1iZXJPZlRocmVhZHMgVGhlIG51bWJlciBvZiB0aHJlYWRzIHRoZSBERkcg
Y29tcGlsZXIgc2hvdWxkIHVzZSBnb2luZyBmb3J3YXJkCitAcmVzdWx0IFRoZSBwcmV2aW91cyBu
dW1iZXIgb2YgdGhyZWFkcyBiZWluZyB1c2VkIGJ5IHRoZSBERkcgY29tcGlsZXIKKyovCisrIChO
U1VJbnRlZ2VyKXNldE51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzOihOU1VJbnRlZ2VyKW51bWJl
ck9mVGhyZWFkcyBOU19BVkFJTEFCTEUoMTBfMTQsIDEyXzApOworCisvKiEKK0BtZXRob2QKK0Bh
YnN0cmFjdCBTZXQgdGhlIG51bWJlciBvZiB0aHJlYWRzIHRvIGJlIHVzZWQgYnkgdGhlIEZUTCBK
SVQgY29tcGlsZXIuCitAZGlzY3Vzc2lvbiBJZiBjYWxsZWQgYWZ0ZXIgdGhlIFZNIGhhcyBiZWVu
IGluaXRpYWxpemVkLCBpdCB3aWxsIHRlcm1pbmF0ZQorIHRocmVhZHMgdW50aWwgaXQgbWVldHMg
dGhlIG5ldyBsaW1pdCBvciBjcmVhdGUgbmV3IHRocmVhZHMgYWNjb3JkaW5nbHkgaWYgdGhlCisg
bmV3IGxpbWl0IGlzIGhpZ2hlciB0aGFuIHRoZSBwcmV2aW91cyBsaW1pdC4gSWYgY2FsbGVkIGJl
Zm9yZSBpbml0aWFsaXphdGlvbiwKKyB0aGUgT3B0aW9ucyB2YWx1ZSBmb3IgdGhlIG51bWJlciBv
ZiBGVEwgdGhyZWFkcyB3aWxsIGJlIHVwZGF0ZWQgdG8gZW5zdXJlIHRoZQorIEZUTCBjb21waWxl
ciBhbHJlYWR5IHN0YXJ0cyB3aXRoIHRoZSB1cC10by1kYXRlIGxpbWl0LgorQHBhcmFtIG51bWJl
ck9mVGhyZWFkcyBUaGUgbnVtYmVyIG9mIHRocmVhZHMgdGhlIEZUTCBjb21waWxlciBzaG91bGQg
dXNlIGdvaW5nIGZvcndhcmQKK0ByZXN1bHQgVGhlIHByZXZpb3VzIG51bWJlciBvZiB0aHJlYWRz
IGJlaW5nIHVzZWQgYnkgdGhlIEZUTCBjb21waWxlcgorKi8KKysgKE5TVUludGVnZXIpc2V0TnVt
YmVyT2ZGVExDb21waWxlclRocmVhZHM6KE5TVUludGVnZXIpbnVtYmVyT2ZUaHJlYWRzIE5TX0FW
QUlMQUJMRSgxMF8xNCwgMTJfMCk7CisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKwogQGVu
ZAogCiAjZW5kaWYgLy8gSlNDX09CSkNfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQppbmRleCA3NWYwYjU1YmVmNDI5ZjRlMjRmYzY1ZDg4MWJm
Mzc0MTNjNzU1NGY2Li45YjAxZjg4MDgxMWU2ZWQxZjk3Nzg4NzQyMmFkYWYyNzdhZTkyNTY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCkBAIC0yMyw5ICsy
MywxNCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisjaW1wb3J0ICJKU0V4cG9ydE1hY3Jvcy5o
IgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuaD4KIAorI3VuZGVmIE5T
X0FWQUlMQUJMRQorI2RlZmluZSBOU19BVkFJTEFCTEUoX21hYywgX2lvcykKKwogI2ltcG9ydCAi
Q3VycmVudFRoaXNJbnNpZGVCbG9ja0dldHRlclRlc3QuaCIKKyNpbXBvcnQgIkRGR1dvcmtsaXN0
LmgiCiAjaW1wb3J0ICJEYXRlVGVzdHMuaCIKICNpbXBvcnQgIkpTRXhwb3J0VGVzdHMuaCIKICNp
bXBvcnQgIkpTVmlydHVhbE1hY2hpbmVQcml2YXRlLmgiCkBAIC01MTQsOCArNTE5LDQxIEBAIHN0
YXRpYyB2b2lkKiBtdWx0aVZNVGhyZWFkTWFpbih2b2lkKiBva1B0cikKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAorc3RhdGljIHZvaWQgcnVuSklUVGhyZWFkTGltaXRUZXN0cygpCit7CisgICAg
YXV0byB0ZXN0REZHID0gW10geworICAgICAgICB1bnNpZ25lZCBkZWZhdWx0TnVtYmVyT2ZUaHJl
YWRzID0gSlNDOjpPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcygpOworICAgICAg
ICB1bnNpZ25lZCB0YXJnZXROdW1iZXJPZlRocmVhZHMgPSAxOworICAgICAgICB1bnNpZ25lZCBp
bml0aWFsTnVtYmVyT2ZUaHJlYWRzID0gW0pTVmlydHVhbE1hY2hpbmUgc2V0TnVtYmVyT2ZERkdD
b21waWxlclRocmVhZHM6MV07CisgICAgICAgIGNoZWNrUmVzdWx0KEAiSW5pdGlhbCBudW1iZXIg
b2YgREZHIHRocmVhZHMgc2hvdWxkIGJlIHRoZSB2YWx1ZSBwcm92aWRlZCB0aHJvdWdoIE9wdGlv
bnMiLCBpbml0aWFsTnVtYmVyT2ZUaHJlYWRzID09IGRlZmF1bHROdW1iZXJPZlRocmVhZHMpOwor
ICAgICAgICB1bnNpZ25lZCB1cGRhdGVkTnVtYmVyT2ZUaHJlYWRzID0gW0pTVmlydHVhbE1hY2hp
bmUgc2V0TnVtYmVyT2ZERkdDb21waWxlclRocmVhZHM6aW5pdGlhbE51bWJlck9mVGhyZWFkc107
CisgICAgICAgIGNoZWNrUmVzdWx0KEAiTnVtYmVyIG9mIERGRyB0aHJlYWRzIHNob3VsZCBoYXZl
IGJlZW4gdXBkYXRlZCIsIHVwZGF0ZWROdW1iZXJPZlRocmVhZHMgPT0gdGFyZ2V0TnVtYmVyT2ZU
aHJlYWRzKTsKKyAgICB9OworCisgICAgYXV0byB0ZXN0RlRMID0gW10geworICAgICAgICB1bnNp
Z25lZCBkZWZhdWx0TnVtYmVyT2ZUaHJlYWRzID0gSlNDOjpPcHRpb25zOjpudW1iZXJPZkZUTENv
bXBpbGVyVGhyZWFkcygpOworICAgICAgICB1bnNpZ25lZCB0YXJnZXROdW1iZXJPZlRocmVhZHMg
PSAzOworICAgICAgICB1bnNpZ25lZCBpbml0aWFsTnVtYmVyT2ZUaHJlYWRzID0gW0pTVmlydHVh
bE1hY2hpbmUgc2V0TnVtYmVyT2ZGVExDb21waWxlclRocmVhZHM6MV07CisgICAgICAgIGNoZWNr
UmVzdWx0KEAiSW5pdGlhbCBudW1iZXIgb2YgRlRMIHRocmVhZHMgc2hvdWxkIGJlIHRoZSB2YWx1
ZSBwcm92aWRlZCB0aHJvdWdoIE9wdGlvbnMiLCBpbml0aWFsTnVtYmVyT2ZUaHJlYWRzID09IGRl
ZmF1bHROdW1iZXJPZlRocmVhZHMpOworICAgICAgICB1bnNpZ25lZCB1cGRhdGVkTnVtYmVyT2ZU
aHJlYWRzID0gW0pTVmlydHVhbE1hY2hpbmUgc2V0TnVtYmVyT2ZGVExDb21waWxlclRocmVhZHM6
aW5pdGlhbE51bWJlck9mVGhyZWFkc107CisgICAgICAgIGNoZWNrUmVzdWx0KEAiTnVtYmVyIG9m
IEZUTCB0aHJlYWRzIHNob3VsZCBoYXZlIGJlZW4gdXBkYXRlZCIsIHVwZGF0ZWROdW1iZXJPZlRo
cmVhZHMgPT0gdGFyZ2V0TnVtYmVyT2ZUaHJlYWRzKTsKKyAgICB9OworCisgICAgY2hlY2tSZXN1
bHQoQCJydW5KSVRUaHJlYWRMaW1pdFRlc3RzKCkgbXVzdCBydW4gYXQgdGhlIHZlcnkgYmVnaW5u
aW5nIHRvIHRlc3QgdGhlIGNhc2Ugd2hlcmUgdGhlIGdsb2JhbCBKSVQgd29ya2xpc3Qgd2FzIG5v
dCBpbml0aWFsaXplZCB5ZXQiLCAhSlNDOjpERkc6OmV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RP
ck51bGwoKSAmJiAhSlNDOjpERkc6OmV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKSk7
CisKKyAgICB0ZXN0REZHKCk7CisgICAgSlNDOjpERkc6OmVuc3VyZUdsb2JhbERGR1dvcmtsaXN0
KCk7CisgICAgdGVzdERGRygpOworCisgICAgdGVzdEZUTCgpOworICAgIEpTQzo6REZHOjplbnN1
cmVHbG9iYWxGVExXb3JrbGlzdCgpOworICAgIHRlc3RGVEwoKTsKK30KKwogc3RhdGljIHZvaWQg
dGVzdE9iamVjdGl2ZUNBUElNYWluKCkKIHsKKyAgICBydW5KSVRUaHJlYWRMaW1pdFRlc3RzKCk7
CisKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICAgICAgICAgSlNWaXJ0dWFsTWFjaGluZSogdm0g
PSBbW0pTVmlydHVhbE1hY2hpbmUgYWxsb2NdIGluaXRdOwogICAgICAgICBKU0NvbnRleHQqIGNv
bnRleHQgPSBbW0pTQ29udGV4dCBhbGxvY10gaW5pdFdpdGhWaXJ0dWFsTWFjaGluZTp2bV07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDc1MzZkMGNlMjA4
ODMzNWViZjdjYWFlMTkxMDM2OWM3MDAzYTAxOGIuLmRhZjg1NDQxZWY3Y2ZlNGY4OTAzOTg2ZmM1
NTcxN2UxZWQ3OTQwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
V29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3Qu
Y3BwCkBAIC0yMDAsMTIgKzIwMCwxNyBAQCB2b2lkIFdvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbih1
bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5KQogICAgIFJFTEVB
U0VfQVNTRVJUKG51bWJlck9mVGhyZWFkcyk7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIoKm1fbG9j
ayk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtYmVyT2ZUaHJlYWRzOyBpLS07KSB7Ci0gICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBkYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxU
aHJlYWREYXRhPih0aGlzKTsKLSAgICAgICAgZGF0YS0+bV90aHJlYWQgPSBhZG9wdFJlZihuZXcg
VGhyZWFkQm9keShsb2NrZXIsICp0aGlzLCAqZGF0YSwgbV9sb2NrLCBtX3BsYW5FbnF1ZXVlZC5j
b3B5UmVmKCksIHJlbGF0aXZlUHJpb3JpdHkpKTsKLSAgICAgICAgbV90aHJlYWRzLmFwcGVuZChX
VEZNb3ZlKGRhdGEpKTsKKyAgICAgICAgY3JlYXRlTmV3VGhyZWFkKGxvY2tlciwgcmVsYXRpdmVQ
cmlvcml0eSk7CiAgICAgfQogfQogCit2b2lkIFdvcmtsaXN0OjpjcmVhdGVOZXdUaHJlYWQoY29u
c3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgaW50IHJlbGF0aXZlUHJpb3JpdHkpCit7CisgICAg
c3RkOjp1bmlxdWVfcHRyPFRocmVhZERhdGE+IGRhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFRocmVh
ZERhdGE+KHRoaXMpOworICAgIGRhdGEtPm1fdGhyZWFkID0gYWRvcHRSZWYobmV3IFRocmVhZEJv
ZHkobG9ja2VyLCAqdGhpcywgKmRhdGEsIG1fbG9jaywgbV9wbGFuRW5xdWV1ZWQuY29weVJlZigp
LCByZWxhdGl2ZVByaW9yaXR5KSk7CisgICAgbV90aHJlYWRzLmFwcGVuZChXVEZNb3ZlKGRhdGEp
KTsKK30KKwogUmVmPFdvcmtsaXN0PiBXb3JrbGlzdDo6Y3JlYXRlKENTdHJpbmcgd29ya2xpc3RO
YW1lLCB1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5KQogewog
ICAgIFJlZjxXb3JrbGlzdD4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXb3JrbGlzdCh3b3JrbGlz
dE5hbWUpKTsKQEAgLTQ4OCw2ICs0OTMsNDAgQEAgdm9pZCBXb3JrbGlzdDo6ZHVtcChjb25zdCBB
YnN0cmFjdExvY2tlciYsIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgICAgICIsIE51bSBB
Y3RpdmUgVGhyZWFkcyA9ICIsIG1fbnVtYmVyT2ZBY3RpdmVUaHJlYWRzLCAiLyIsIG1fdGhyZWFk
cy5zaXplKCksICJdIik7CiB9CiAKK3Vuc2lnbmVkIFdvcmtsaXN0OjpzZXROdW1iZXJPZlRocmVh
ZHModW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKK3sKKyAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3N1c3BlbnNpb25Mb2NrKTsKKyAgICBhdXRvIGN1cnJlbnRO
dW1iZXJPZlRocmVhZHMgPSBtX3RocmVhZHMuc2l6ZSgpOworICAgIGlmIChudW1iZXJPZlRocmVh
ZHMgPCBjdXJyZW50TnVtYmVyT2ZUaHJlYWRzKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKCptX2xvY2spOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
Y3VycmVudE51bWJlck9mVGhyZWFkczsgaS0tID4gbnVtYmVyT2ZUaHJlYWRzOykgeworICAgICAg
ICAgICAgICAgIGlmIChtX3RocmVhZHNbaV0tPm1fdGhyZWFkLT5oYXNVbmRlcmx5aW5nVGhyZWFk
KGxvY2tlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9xdWV1ZS5hcHBlbmQobnVsbHB0cik7
CisgICAgICAgICAgICAgICAgICAgIG1fdGhyZWFkc1tpXS0+bV90aHJlYWQtPm5vdGlmeShsb2Nr
ZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSBjdXJyZW50TnVtYmVyT2ZUaHJlYWRzOyBpLS0gPiBudW1iZXJP
ZlRocmVhZHM7KSB7CisgICAgICAgICAgICBib29sIGlzU3RvcHBlZCA9IGZhbHNlOworICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKCptX2xvY2spOworICAg
ICAgICAgICAgICAgIGlzU3RvcHBlZCA9IG1fdGhyZWFkc1tpXS0+bV90aHJlYWQtPnRyeVN0b3Ao
bG9ja2VyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghaXNTdG9wcGVkKQorICAg
ICAgICAgICAgICAgIG1fdGhyZWFkc1tpXS0+bV90aHJlYWQtPmpvaW4oKTsKKyAgICAgICAgICAg
IG1fdGhyZWFkcy5yZW1vdmUoaSk7CisgICAgICAgIH0KKyAgICAgICAgbV90aHJlYWRzLnNocmlu
a1RvRml0KCk7CisgICAgICAgIEFTU0VSVChtX251bWJlck9mQWN0aXZlVGhyZWFkcyA8PSBudW1i
ZXJPZlRocmVhZHMpOworICAgIH0gZWxzZSBpZiAobnVtYmVyT2ZUaHJlYWRzID4gY3VycmVudE51
bWJlck9mVGhyZWFkcykgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcigqbV9sb2NrKTsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gY3VycmVudE51bWJlck9mVGhyZWFkczsgaSA8IG51bWJl
ck9mVGhyZWFkczsgaSsrKQorICAgICAgICAgICAgY3JlYXRlTmV3VGhyZWFkKGxvY2tlciwgcmVs
YXRpdmVQcmlvcml0eSk7CisgICAgfQorICAgIHJldHVybiBjdXJyZW50TnVtYmVyT2ZUaHJlYWRz
OworfQorCiBzdGF0aWMgV29ya2xpc3QqIHRoZUdsb2JhbERGR1dvcmtsaXN0OwogCiBXb3JrbGlz
dCYgZW5zdXJlR2xvYmFsREZHV29ya2xpc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdX
b3JrbGlzdC5oCmluZGV4IDdiNjgxZDFlNTQzMmNlZmE1MDgzMWI2NDdmZDRmZmQyYjcyZWZmOGYu
LmIzMzgyMDc2ZjE4YmYxMTk1ZGM3ZGNhMjc1OWU1OTFhODdhOGFlN2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKQEAgLTc5LDEwICs3OSwxMiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZW1vdmVOb25Db21waWxpbmdQbGFuc0ZvclZNKFZNJik7CiAgICAgCiAgICAgdm9p
ZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CisgICAgdW5zaWduZWQgc2V0TnVtYmVyT2ZUaHJl
YWRzKHVuc2lnbmVkLCBpbnQpOwogICAgIAogcHJpdmF0ZToKICAgICBXb3JrbGlzdChDU3RyaW5n
IHdvcmtsaXN0TmFtZSk7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJP
ZlRocmVhZHMsIGludCk7CisgICAgdm9pZCBjcmVhdGVOZXdUaHJlYWQoY29uc3QgQWJzdHJhY3RM
b2NrZXImLCBpbnQpOwogICAgIAogICAgIGNsYXNzIFRocmVhZEJvZHk7CiAgICAgZnJpZW5kIGNs
YXNzIFRocmVhZEJvZHk7CkBAIC0xMjEsMTIgKzEyMywxMiBAQCBwcml2YXRlOgogfTsKIAogLy8g
Rm9yIERGR01vZGUgY29tcGlsYXRpb25zLgotV29ya2xpc3QmIGVuc3VyZUdsb2JhbERGR1dvcmts
aXN0KCk7Ci1Xb3JrbGlzdCogZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCgpOworSlNf
RVhQT1JUX1BSSVZBVEUgV29ya2xpc3QmIGVuc3VyZUdsb2JhbERGR1dvcmtsaXN0KCk7CitKU19F
WFBPUlRfUFJJVkFURSBXb3JrbGlzdCogZXhpc3RpbmdHbG9iYWxERkdXb3JrbGlzdE9yTnVsbCgp
OwogCiAvLyBGb3IgRlRMTW9kZSBhbmQgRlRMRm9yT1NSRW50cnlNb2RlIGNvbXBpbGF0aW9ucy4K
LVdvcmtsaXN0JiBlbnN1cmVHbG9iYWxGVExXb3JrbGlzdCgpOwotV29ya2xpc3QqIGV4aXN0aW5n
R2xvYmFsRlRMV29ya2xpc3RPck51bGwoKTsKK0pTX0VYUE9SVF9QUklWQVRFIFdvcmtsaXN0JiBl
bnN1cmVHbG9iYWxGVExXb3JrbGlzdCgpOworSlNfRVhQT1JUX1BSSVZBVEUgV29ya2xpc3QqIGV4
aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwoKTsKIAogV29ya2xpc3QmIGVuc3VyZUdsb2Jh
bFdvcmtsaXN0Rm9yKENvbXBpbGF0aW9uTW9kZSk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>