<?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>166696</bug_id>
          
          <creation_ts>2017-01-04 14:26:28 -0800</creation_ts>
          <short_desc>[Cocoa] Teach SharedBuffer to return an NSArray of data segments to avoid flattening</short_desc>
          <delta_ts>2017-01-04 17:33:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>kling</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1263899</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-04 14:26:28 -0800</bug_when>
    <thetext>[Cocoa] Teach SharedBuffer to return an NSArray of data segments to avoid flattening</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263908</commentid>
    <comment_count>1</comment_count>
      <attachid>298047</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-04 14:59:54 -0800</bug_when>
    <thetext>Created attachment 298047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263924</commentid>
    <comment_count>2</comment_count>
      <attachid>298047</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-04 15:49:27 -0800</bug_when>
    <thetext>Comment on attachment 298047
Patch

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

&gt; Tools/ChangeLog:8
&gt; +        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

Need to update CMake too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263925</commentid>
    <comment_count>3</comment_count>
      <attachid>298049</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-04 16:23:27 -0800</bug_when>
    <thetext>Created attachment 298049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263948</commentid>
    <comment_count>4</comment_count>
      <attachid>298049</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-04 17:32:59 -0800</bug_when>
    <thetext>Comment on attachment 298049
Patch

Clearing flags on attachment: 298049

Committed r210310: &lt;http://trac.webkit.org/changeset/210310&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263949</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-04 17:33:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298047</attachid>
            <date>2017-01-04 14:59:54 -0800</date>
            <delta_ts>2017-01-04 16:23:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166696-20170104145826.patch</filename>
            <type>text/plain</type>
            <size>23235</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQxZTkxZGEwM2IxZDY5
ZDk2MjQ5YzMzZTRlYmVkODlhNTQ5NWM0NS4uZDYxMzQ1YTQ0YmFjODkxNTZkNzllYmIxNDIyYTA0
YzU4OGJiYmM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTAxLTA0ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFRlYWNoIFNoYXJl
ZEJ1ZmZlciB0byByZXR1cm4gYW4gTlNBcnJheSBvZiBkYXRhIHNlZ21lbnRzIHRvIGF2b2lkIGZs
YXR0ZW5pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEV4aXN0aW5nIG1ldGhvZHMgb2YgZXh0cmFjdGluZyBOU0RhdGEgZnJvbSBhIFNoYXJlZEJ1ZmZl
ciByZXF1aXJlIGVpdGhlciBtZXJnaW5nIG9yIGNvcHlpbmcKKyAgICAgICAgZGF0YSBzZWdtZW50
cy4gU2luY2UgZGF0YSBzZWdtZW50cyBhcmUgc3RvcmVkIGluIENGRGF0YVJlZnMgb24gQ29jb2Eg
cGxhdGZvcm1zLCBpdCBzaG91bGQgYmUKKyAgICAgICAgcG9zc2libGUgdG8gcmV0cmlldmUgYW4g
TlNBcnJheSBvZiB0aGUgc2VnbWVudHMgd2l0aG91dCBoYXZpbmcgdG8gZmlyc3QgZmxhdHRlbiB0
byBhIHNpbmdsZQorICAgICAgICBidWZmZXIuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1l
bnRzIHN1Y2ggYSBtZXRob2QuIFRoaXMgd2lsbCBiZSB1c2VkIGluIGEgZm9sbG93LW9uIHBhdGNo
LCB3aGVyZSBJIHdpbGwKKyAgICAgICAgbmVlZCB0byBwYXNzIFNoYXJlZEJ1ZmZlciBkYXRhIHRv
IFF1aWNrTG9vayB2aWEgYW4gTlNBcnJheSBvZiBOU0RhdGEuCisKKyAgICAgICAgTmV3IEFQSSB0
ZXN0OiBTaGFyZWRCdWZmZXJUZXN0LmNyZWF0ZU5TRGF0YUFycmF5LgorCisgICAgICAgICogcGxh
dGZvcm0vU2hhcmVkQnVmZmVyLmg6IERlY2xhcmVkIGNyZWF0ZU5TQXJyYXlEYXRhKCksIGFuZCBl
eHBvcnRlZCB0d28gZnVuY3Rpb25zIG5lZWRlZAorICAgICAgICBieSB0aGUgQVBJIHRlc3QuCisg
ICAgICAgICogcGxhdGZvcm0vY29jb2EvU2hhcmVkQnVmZmVyQ29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZU5TRGF0YUFycmF5KTogQWRkZWQuIFJldHVybnMg
bV9jZkRhdGEgb3IgYSBjb3B5IG9mIG1fZmlsZURhdGEKKyAgICAgICAgaWYgdGhleSBleGlzdC4g
T3RoZXJ3aXNlLCBhZGRzIG1fYnVmZmVyICh3cmFwcGVkIGluIGEgV2ViQ29yZVNoYXJlZEJ1ZmZl
ckRhdGEgb2JqZWN0KSBhbmQKKyAgICAgICAgdGhlIG9iamVjdHMgaW4gbV9kYXRhQXJyYXkgdG8g
YSBOU011dGFibGVBcnJheSBhbmQgcmV0dXJucyBpdC4KKwogMjAxNy0wMS0wMyAgU2FtIFdlaW5p
ZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBmaW5hbCBjdXN0b20gYmluZGlu
ZyBmcm9tIElEQlJlcXVlc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1No
YXJlZEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKaW5k
ZXggZDkyZTNhYmQ2Mzc5Nzk2OTFjMTMyOGNhYjg4ZDE3OGEwZmM4MThjYy4uODNhNDYzODc5YTM5
ZmZmMmU5ZDE5Zjc2NGE3NjRjNTcyMTI2YmJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hh
cmVkQnVmZmVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2Vh
cmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMDktMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKQEAgLTQ0LDYgKzQ0LDcgQEAKICNlbmRpZgogCiAjaWYgVVNFKEZPVU5E
QVRJT04pCitPQkpDX0NMQVNTIE5TQXJyYXk7CiBPQkpDX0NMQVNTIE5TRGF0YTsKICNlbmRpZgog
CkBAIC02NCw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICAKICNpZiBVU0UoRk9VTkRBVElPTikKICAg
ICBXRUJDT1JFX0VYUE9SVCBSZXRhaW5QdHI8TlNEYXRhPiBjcmVhdGVOU0RhdGEoKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBSZXRhaW5QdHI8TlNBcnJheT4gY3JlYXRlTlNEYXRhQXJyYXkoKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNoYXJlZEJ1ZmZlcj4gd3JhcE5TRGF0YShOU0Rh
dGEgKik7CiAjZW5kaWYKICNpZiBVU0UoQ0YpCkBAIC05OSw4ICsxMDEsOCBAQCBwdWJsaWM6CiAg
ICAgdW5zaWduZWQgcGxhdGZvcm1EYXRhU2l6ZSgpIGNvbnN0OwogCiAjaWYgVVNFKE5FVFdPUktf
Q0ZEQVRBX0FSUkFZX0NBTExCQUNLKQotICAgIHN0YXRpYyBSZWY8U2hhcmVkQnVmZmVyPiB3cmFw
Q0ZEYXRhQXJyYXkoQ0ZBcnJheVJlZik7Ci0gICAgdm9pZCBhcHBlbmQoQ0ZEYXRhUmVmKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNoYXJlZEJ1ZmZlcj4gd3JhcENGRGF0YUFycmF5
KENGQXJyYXlSZWYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwZW5kKENGRGF0YVJlZik7
CiAjZW5kaWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxTaGFyZWRCdWZmZXI+IGNvcHkoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NoYXJlZEJ1
ZmZlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVkQnVmZmVy
Q29jb2EubW0KaW5kZXggMGNjODFiYTY2NmYxYjc1NWEwZGY1ZTY4MTU5NzBjZDMxYzYwNjVkZC4u
NGEyNjllZjFmYTU3N2U1MjE2MTg1ODVlOGNkZTZkOGFiZmM3YThkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVkQnVmZmVyQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVkQnVmZmVyQ29jb2EubW0KQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyMyw0ICsx
MjMsMjggQEAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjpjcmVhdGVGcm9tUmVh
ZGluZ0ZpbGUoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAorUmV0YWluUHRyPE5TQXJyYXk+IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlTlNEYXRhQXJyYXkoKQor
eworICAgIGlmIChhdXRvIHBsYXRmb3JtRGF0YSA9IChOU0RhdGEgKiltX2NmRGF0YS5nZXQoKSkK
KyAgICAgICAgcmV0dXJuIEBbIHBsYXRmb3JtRGF0YSBdOworCisgICAgaWYgKG1fZmlsZURhdGEp
CisgICAgICAgIHJldHVybiBAWyBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6bV9maWxlRGF0YS5kYXRh
KCkgbGVuZ3RoOm1fZmlsZURhdGEuc2l6ZSgpXSBdOworCisgICAgYXV0byBkYXRhQXJyYXkgPSBh
ZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICBpZiAobV9idWZmZXIt
PmRhdGEuc2l6ZSgpKQorICAgICAgICBbZGF0YUFycmF5IGFkZE9iamVjdDphZG9wdE5TKFtbV2Vi
Q29yZVNoYXJlZEJ1ZmZlckRhdGEgYWxsb2NdIGluaXRXaXRoU2hhcmVkQnVmZmVyRGF0YUJ1ZmZl
cjptX2J1ZmZlci5wdHIoKV0pLmdldCgpXTsKKworI2lmIFVTRShORVRXT1JLX0NGREFUQV9BUlJB
WV9DQUxMQkFDSykKKyAgICBmb3IgKGF1dG8mIGRhdGEgOiBtX2RhdGFBcnJheSkKKyAgICAgICAg
W2RhdGFBcnJheSBhZGRPYmplY3Q6KE5TRGF0YSAqKWRhdGEuZ2V0KCldOworI2Vsc2UKKyAgICAv
LyBDb2NvYSBwbGF0Zm9ybXMgYWxsIGN1cnJlbnRseSBVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlf
Q0FMTEJBQ0spLCBzbyBpbXBsZW1lbnRpbmcgYSBjb2RlIHBhdGggZm9yIGNvcHlpbmcgc2VnbWVu
dHMgd291bGQgYmUgZGVhZCBjb2RlLgorICAgIC8vIElmIHRoaXMgZXZlciBjaGFuZ2VzLCB0aGUg
Zm9sbG93aW5nIHN0YXRpY19hc3NlcnQgd2lsbCBkZXRlY3QgaXQuCisgICAgc3RhdGljX2Fzc2Vy
dChmYWxzZSwgIkZJWE1FOiBDb3B5IHRoZSBzZWdtZW50cyBpbnRvIGFuIGFycmF5IG9mIE5TRGF0
YSBvYmplY3RzLiIpOworI2VuZGlmCisKKyAgICByZXR1cm4gV1RGTW92ZShkYXRhQXJyYXkpOwor
fQorCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggYWJiOTBkNDk2YmE4NGE5YTY5Yjg2MzcxYTdjMzBkMWIwY2VhMDZiYy4uNjdkZDVlNGE4Yjg3
MDdkNGRlNDhmMmE1MzUxZGMxN2RjMzFjYTcxOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTAxLTA0ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFRlYWNoIFNoYXJl
ZEJ1ZmZlciB0byByZXR1cm4gYW4gTlNBcnJheSBvZiBkYXRhIHNlZ21lbnRzIHRvIGF2b2lkIGZs
YXR0ZW5pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHA6
IE1vdmVkIGNsYXNzIFNoYXJlZEJ1ZmZlclRlc3QgdG8gU2hhcmVkQnVmZmVyVGVzdC57Y3BwLGh9
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXJUZXN0
LmNwcDogTW92ZWQgY2xhc3MgU2hhcmVkQnVmZmVyVGVzdCBmcm9tIFNoYXJlZEJ1ZmZlci5jcHAu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlclRlc3Qu
aDogRGl0dG8uCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1No
YXJlZEJ1ZmZlci5tbTogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3REYXRh
QXJyYXlzRXF1YWwpOiBBZGRlZCBhIGhlbHBlciB0byBhc3NlcnQgdGhhdCB0d28gTlNBcnJheXMg
b2YgTlNEYXRhIGFyZSBlcXVhbC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6IEFk
ZGVkIGEgdGVzdCBmb3IgY3JlYXRlTlNEYXRhQXJyYXkuCisKIDIwMTctMDEtMDQgIENzYWJhIE9z
enRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGNtYWtl
IGJ1aWxkZml4IGFmdGVyIHIyMTAyNjYuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM4ZWFj
MGMxMTkyYzM4ZWU2NTJkMWRmOWU4ZWNkZTUxNGNiNzI4YTcuLmU0MDlkMThhMzMwMGFiZWNhOWFl
YmYyYWRlMmU0N2Q5Yjc3MDYyMGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NjUsNiAr
NDY1LDggQEAKIAkJQTE1NTAyMkExRTA1MDIwQjAwQTI0QzU3IC8qIER1cGxpY2F0ZUNvbXBsZXRp
b25IYW5kbGVyQ2FsbHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMTU1MDIyODFFMDUwMjBCMDBBMjRDNTcgLyogRHVwbGljYXRlQ29tcGxldGlvbkhh
bmRsZXJDYWxscy5tbSAqLzsgfTsKIAkJQTE1NTAyMkMxRTA1MEQwMzAwQTI0QzU3IC8qIGR1cGxp
Y2F0ZS1jb21wbGV0aW9uLWhhbmRsZXItY2FsbHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTU1MDIyQjFFMDUwQkM1MDBBMjRDNTcg
LyogZHVwbGljYXRlLWNvbXBsZXRpb24taGFuZGxlci1jYWxscy5odG1sICovOyB9OwogCQlBMTZG
NjZCQTFDNDBFQjRGMDBCRDREMjQgLyogQ29udGVudEZpbHRlcmluZy5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExNkY2NkI5MUM0MEVB
MjAwMEJENEQyNCAvKiBDb250ZW50RmlsdGVyaW5nLmh0bWwgKi87IH07CisJCUExNzk5MTg4MUUx
Qzk5NEUwMEE1MDVFRCAvKiBTaGFyZWRCdWZmZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTc5OTE4NjFFMUM5OTRFMDBBNTA1RUQgLyogU2hhcmVk
QnVmZmVyLm1tICovOyB9OworCQlBMTc5OTE4QjFFMUNBMjQxMDBBNTA1RUQgLyogU2hhcmVkQnVm
ZmVyVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMTc5OTE4OTFFMUNBMjQxMDBBNTA1RUQgLyogU2hhcmVkQnVmZmVyVGVzdC5jcHAgKi87IH07
CiAJCUExQzRGQjczMUJBQ0QxQ0EwMDM3NDJEMCAvKiBwYWdlcy5wYWdlcyBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUM0RkI3MjFCQUNEMUI3
MDAzNzQyRDAgLyogcGFnZXMucGFnZXMgKi87IH07CiAJCUExREY3NDMyMUM0MUI2NTgwMEEyRjRE
MCAvKiBBbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMURGNzQzMDFDNDFCNjU4MDBBMkY0RDAgLyogQWx3
YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVzLm1tICovOyB9OwogCQlBNTdBMzRGMjE2QUY2QjJCMDBD
MjUwMUYgLyogUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU3QTM0RjEx
NkFGNjlFMjAwQzI1MDFGIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5o
dG1sICovOyB9OwpAQCAtMTE0NSw2ICsxMTQ3LDkgQEAKIAkJQTE1NTAyMjgxRTA1MDIwQjAwQTI0
QzU3IC8qIER1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTU1MDIyQjFFMDUwQkM1MDBBMjRD
NTcgLyogZHVwbGljYXRlLWNvbXBsZXRpb24taGFuZGxlci1jYWxscy5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gImR1cGxpY2F0ZS1jb21wbGV0aW9uLWhhbmRsZXItY2FsbHMuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExNkY2NkI5MUM0MEVBMjAwMEJENEQy
NCAvKiBDb250ZW50RmlsdGVyaW5nLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBD
b250ZW50RmlsdGVyaW5nLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExNzk5
MTg2MUUxQzk5NEUwMEE1MDVFRCAvKiBTaGFyZWRCdWZmZXIubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTaGFyZWRCdWZmZXIubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUExNzk5MTg5MUUxQ0EyNDEwMEE1MDVFRCAvKiBTaGFyZWRCdWZmZXJUZXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZEJ1ZmZlclRl
c3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTc5OTE4QTFFMUNBMjQxMDBB
NTA1RUQgLyogU2hhcmVkQnVmZmVyVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTaGFyZWRCdWZmZXJUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEx
OEFBOENDMUMzRkEyMTgwMDlCMkI5NyAvKiBDb250ZW50RmlsdGVyaW5nLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRGaWx0ZXJpbmcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTFBNEZFNUQxOEREM0RCNzAwQjVFQThBIC8qIERvd25sb2FkLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRG93bmxvYWQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQzRGQjZDMUJBQ0NFNTAwMDM3NDJEMCAvKiBRdWlj
a0xvb2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBRdWlja0xv
b2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTU5LDYgKzE1NjQsOCBAQAog
CQkJCUNEMjI1QzA3MUM0NUE2OTIwMDE0MDc2MSAvKiBQYXJzZWRDb250ZW50UmFuZ2UuY3BwICov
LAogCQkJCUNFMDZERjlBMUUxODUxRjIwMEU1NzBDOSAvKiBTZWN1cml0eU9yaWdpbi5jcHAgKi8s
CiAJCQkJNDE5NzNCNUMxQUYyMjg3NTAwNkM3QjM2IC8qIFNoYXJlZEJ1ZmZlci5jcHAgKi8sCisJ
CQkJQTE3OTkxODkxRTFDQTI0MTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZlclRlc3QuY3BwICovLAor
CQkJCUExNzk5MThBMUUxQ0EyNDEwMEE1MDVFRCAvKiBTaGFyZWRCdWZmZXJUZXN0LmggKi8sCiAJ
CQkJQ0RDMkM3MTQxNzk3MDg5RDAwRTYyN0ZCIC8qIFRpbWVSYW5nZXMuY3BwICovLAogCQkJCTdB
RDNGRThEMUQ3NUZCOEQwMEIxNjlBNCAvKiBUcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAgKi8sCiAJ
CQkJNDQwQTFEMzgxNEEwMTAzQTAwOEE2NkYyIC8qIFVSTC5jcHAgKi8sCkBAIC0yMTU4LDYgKzIx
NjUsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1NzY5QzUw
QTFEOUIwMDAxMDAwODQ3RkIgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0gKi8sCisJCQkJ
QTE3OTkxODYxRTFDOTk0RTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZlci5tbSAqLywKIAkJCQk5M0E3
RUIzQzE4RkE2M0E0MDA5RTc2NzAgLyogVVJMRXh0cmFzLm1tICovLAogCQkJCUNEODlEMDM4MUM0
RURCMkEwMDA0MEEwNCAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLm1tICovLAogCQkJKTsKQEAgLTI1
MzgsNiArMjU0Niw3IEBACiAJCQkJNTEwNDc3NzgxRDI5OTIzQjAwOTc0N0VCIC8qIElEQkRlbGV0
ZVJlY292ZXJ5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBNTg3ODYxRDI3M0FBOTAwNEJBOUFG
IC8qIEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
QzgzRTBCRTFEMEE2NTEzMDBGRUJDRjMgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJQTE3OTkxOEIxRTFDQTI0MTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZlclRl
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQkYxRDBBNjUyMjAwRkVCQ0YzIC8qIElu
ZGV4ZWREQlBlcnNpc3RlbmNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRkIxQTQxMUFF
NjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxlQmFzaWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODM0OUQzQzIxREI5NkRERTAwNEE5RjY1IC8qIENvbnRleHRNZW51RG93bmxvYWQubW0gaW4gU291
cmNlcyAqLywKQEAgLTI2NzUsNiArMjY4NCw3IEBACiAJCQkJN0NDRTdFRDgxQTQxMUE3RTAwNDQ3
QzRDIC8qIFdpbGxTZW5kU3VibWl0RXZlbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VE
OTFBNDExQTdFMDA0NDdDNEMgLyogV2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxRjgzNTcxQjFEM0ZGQjIzMDBFMzk2N0IgLyogV0tCYWNrRm9yd2FyZExp
c3QubW0gaW4gU291cmNlcyAqLywKKwkJCQlBMTc5OTE4ODFFMUM5OTRFMDBBNTA1RUQgLyogU2hh
cmVkQnVmZmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2RDcxRDhBRjM0QTAwMDRCQjMw
IC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdG
MkUxQTQxMUIxMDAwNDQ3QzRDIC8qIFdLQnJvd3NpbmdDb250ZXh0R3JvdXBUZXN0Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdGMkYxQTQxMUIxMDAwNDQ3QzRDIC8qIFdLQnJvd3NpbmdDb250
ZXh0TG9hZERlbGVnYXRlVGVzdC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAppbmRleCA3NzVjYWIzZmVl
ZmUxYTRlYjUzMzM1MDZiODlkNDExNGQwN2NlNWM5Li41NDNlZjIzMTZjYjZkNmNiNjdjNjdhOTRl
MjQ5NzkyMGM5ZDU0MDEwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTI3LDYgKzI3
LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyVGVz
dC5oIgogI2luY2x1ZGUgIlRlc3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5o
PgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC0zNiwzOCArMzcsNiBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCi1jb25zdCBj
aGFyKiBTaGFyZWRCdWZmZXJUZXN0RGF0YSA9ICJUaGlzIGlzIGEgdGVzdCI7Ci0KLWNsYXNzIFNo
YXJlZEJ1ZmZlclRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci1wdWJsaWM6Ci0gICAgdm9p
ZCBTZXRVcCgpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhy
ZWFkKCk7Ci0gICAgICAgIAotICAgICAgICAvLyBjcmVhdGUgdGVtcCBmaWxlCi0gICAgICAgIFBs
YXRmb3JtRmlsZUhhbmRsZSBoYW5kbGU7Ci0gICAgICAgIG1fdGVtcEZpbGVQYXRoID0gb3BlblRl
bXBvcmFyeUZpbGUoInRlbXBUZXN0RmlsZSIsIGhhbmRsZSk7Ci0gICAgICAgIHdyaXRlVG9GaWxl
KGhhbmRsZSwgU2hhcmVkQnVmZmVyVGVzdERhdGEsIHN0cmxlbihTaGFyZWRCdWZmZXJUZXN0RGF0
YSkpOwotICAgICAgICBjbG9zZUZpbGUoaGFuZGxlKTsgCi0KLSAgICAgICAgbV90ZW1wRW1wdHlG
aWxlUGF0aCA9IG9wZW5UZW1wb3JhcnlGaWxlKCJ0ZW1wRW1wdHlUZXN0RmlsZSIsIGhhbmRsZSk7
Ci0gICAgICAgIGNsb3NlRmlsZShoYW5kbGUpOyAKLSAgICB9Ci0KLSAgICB2b2lkIFRlYXJEb3du
KCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGRlbGV0ZUZpbGUobV90ZW1wRmlsZVBhdGgpOwot
ICAgICAgICBkZWxldGVGaWxlKG1fdGVtcEVtcHR5RmlsZVBhdGgpOwotICAgIH0KLQotICAgIGNv
bnN0IFN0cmluZyYgdGVtcEZpbGVQYXRoKCkgeyByZXR1cm4gbV90ZW1wRmlsZVBhdGg7IH0KLSAg
ICBjb25zdCBTdHJpbmcmIHRlbXBFbXB0eUZpbGVQYXRoKCkgeyByZXR1cm4gbV90ZW1wRW1wdHlG
aWxlUGF0aDsgfQotCi1wcml2YXRlOgotICAgIFN0cmluZyBtX3RlbXBGaWxlUGF0aDsKLSAgICBT
dHJpbmcgbV90ZW1wRW1wdHlGaWxlUGF0aDsKLX07Ci0KIFRFU1RfRihTaGFyZWRCdWZmZXJUZXN0
LCBjcmVhdGVXaXRoQ29udGVudHNPZk1pc3NpbmdGaWxlKQogewogICAgIFJlZlB0cjxTaGFyZWRC
dWZmZXI+IGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKFN0
cmluZygibm90X2V4aXN0aW5nX2ZpbGUiKSk7CkBAIC03OCw4ICs0Nyw4IEBAIFRFU1RfRihTaGFy
ZWRCdWZmZXJUZXN0LCBjcmVhdGVXaXRoQ29udGVudHNPZkV4aXN0aW5nRmlsZSkKIHsKICAgICBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250
ZW50c09mRmlsZSh0ZW1wRmlsZVBhdGgoKSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGJ1ZmZlcik7
Ci0gICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5zaXplKCkgPT0gc3RybGVuKFNoYXJlZEJ1ZmZlclRl
c3REYXRhKSk7Ci0gICAgRVhQRUNUX1RSVUUoU3RyaW5nKFNoYXJlZEJ1ZmZlclRlc3REYXRhKSA9
PSBTdHJpbmcoYnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7CisgICAgRVhQRUNUX1RS
VUUoYnVmZmVyLT5zaXplKCkgPT0gc3RybGVuKFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkp
KTsKKyAgICBFWFBFQ1RfVFJVRShTdHJpbmcoU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkg
PT0gU3RyaW5nKGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwogfQogCiBURVNUX0Yo
U2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0VtcHR5RmlsZSkK
QEAgLTExMyw5ICs4Miw5IEBAIFRFU1RfRihTaGFyZWRCdWZmZXJUZXN0LCBhcHBlbmRCdWZmZXJD
cmVhdGVkV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUodGVtcEZp
bGVQYXRoKCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwogICAgIGJ1ZmZlci0+YXBw
ZW5kKCJhIiwgMSk7Ci0gICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5zaXplKCkgPT0gKHN0cmxlbihT
aGFyZWRCdWZmZXJUZXN0RGF0YSkgKyAxKSk7Ci0gICAgRVhQRUNUX1RSVUUoIW1lbWNtcChidWZm
ZXItPmRhdGEoKSwgU2hhcmVkQnVmZmVyVGVzdERhdGEsIHN0cmxlbihTaGFyZWRCdWZmZXJUZXN0
RGF0YSkpKTsKLSAgICBFWFBFQ1RfRVEoJ2EnLCBidWZmZXItPmRhdGEoKVtzdHJsZW4oU2hhcmVk
QnVmZmVyVGVzdERhdGEpXSk7CisgICAgRVhQRUNUX1RSVUUoYnVmZmVyLT5zaXplKCkgPT0gKHN0
cmxlbihTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSArIDEpKTsKKyAgICBFWFBFQ1RfVFJV
RSghbWVtY21wKGJ1ZmZlci0+ZGF0YSgpLCBTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpLCBz
dHJsZW4oU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSkpKTsKKyAgICBFWFBFQ1RfRVEoJ2En
LCBidWZmZXItPmRhdGEoKVtzdHJsZW4oU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSldKTsK
IH0KIAogVEVTVF9GKFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZUFycmF5QnVmZmVyKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlclRlc3Qu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlclRlc3Qu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmEyOTdhNTViODMzZTNhY2IzYTcxOTkwNTE2ZTBmNTg5NDMxNTVkZDgK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hh
cmVkQnVmZmVyVGVzdC5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJUZXN0LmgiCisKKyNpbmNsdWRlIDxX
ZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCit2b2lk
IFNoYXJlZEJ1ZmZlclRlc3Q6OlNldFVwKCkKK3sKKyAgICBXVEY6OmluaXRpYWxpemVNYWluVGhy
ZWFkKCk7CisKKyAgICAvLyBjcmVhdGUgdGVtcCBmaWxlCisgICAgUGxhdGZvcm1GaWxlSGFuZGxl
IGhhbmRsZTsKKyAgICBtX3RlbXBGaWxlUGF0aCA9IG9wZW5UZW1wb3JhcnlGaWxlKCJ0ZW1wVGVz
dEZpbGUiLCBoYW5kbGUpOworICAgIHdyaXRlVG9GaWxlKGhhbmRsZSwgdGVzdERhdGEoKSwgc3Ry
bGVuKHRlc3REYXRhKCkpKTsKKyAgICBjbG9zZUZpbGUoaGFuZGxlKTsKKworICAgIG1fdGVtcEVt
cHR5RmlsZVBhdGggPSBvcGVuVGVtcG9yYXJ5RmlsZSgidGVtcEVtcHR5VGVzdEZpbGUiLCBoYW5k
bGUpOworICAgIGNsb3NlRmlsZShoYW5kbGUpOworfQorCit2b2lkIFNoYXJlZEJ1ZmZlclRlc3Q6
OlRlYXJEb3duKCkKK3sKKyAgICBkZWxldGVGaWxlKG1fdGVtcEZpbGVQYXRoKTsKKyAgICBkZWxl
dGVGaWxlKG1fdGVtcEVtcHR5RmlsZVBhdGgpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hh
cmVkQnVmZmVyVGVzdC5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJl
ZEJ1ZmZlclRlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNWQ5MDkzNWQzY2NjODZkNTZjNTUyNmJhYzI0M2Uz
M2Q4ZTZjNGNkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1NoYXJlZEJ1ZmZlclRlc3QuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgeworCitjbGFzcyBTaGFyZWRCdWZmZXJUZXN0IDogcHVibGljIHRl
c3Rpbmc6OlRlc3QgeworcHVibGljOgorICAgIHZvaWQgU2V0VXAoKSBvdmVycmlkZTsKKyAgICB2
b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGU7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogdGVzdERh
dGEoKSB7IHJldHVybiAiVGhpcyBpcyBhIHRlc3QiOyB9CisgICAgY29uc3QgU3RyaW5nJiB0ZW1w
RmlsZVBhdGgoKSB7IHJldHVybiBtX3RlbXBGaWxlUGF0aDsgfQorICAgIGNvbnN0IFN0cmluZyYg
dGVtcEVtcHR5RmlsZVBhdGgoKSB7IHJldHVybiBtX3RlbXBFbXB0eUZpbGVQYXRoOyB9CisKK3By
aXZhdGU6CisgICAgU3RyaW5nIG1fdGVtcEZpbGVQYXRoOworICAgIFN0cmluZyBtX3RlbXBFbXB0
eUZpbGVQYXRoOworfTsKKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1NoYXJlZEJ1ZmZlci5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9TaGFyZWRCdWZmZXIu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2NkMjg3NjAwYWZjMDBjN2IzZmNlN2MyZGQ2OWFhYjU5NjU2OTJkMgot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2Nv
YS9TaGFyZWRCdWZmZXIubW0KQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiU2hh
cmVkQnVmZmVyVGVzdC5oIgorI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3Rh
dGljIHZvaWQgZXhwZWN0RGF0YUFycmF5c0VxdWFsKE5TQXJyYXk8TlNEYXRhICo+ICpleHBlY3Rl
ZCwgTlNBcnJheTxOU0RhdGEgKj4gKmFjdHVhbCkKK3sKKyAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQu
Y291bnQsIGFjdHVhbC5jb3VudCk7CisgICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBpIDwgZXhw
ZWN0ZWQuY291bnQ7ICsraSkgeworICAgICAgICBOU0RhdGEgKmV4cGVjdGVkRGF0YSA9IGV4cGVj
dGVkW2ldOworICAgICAgICBOU0RhdGEgKmFjdHVhbERhdGEgPSBhY3R1YWxbaV07CisgICAgICAg
IEVYUEVDVF9UUlVFKFtleHBlY3RlZERhdGEgaXNLaW5kT2ZDbGFzczpbTlNEYXRhIGNsYXNzXV0p
OworICAgICAgICBFWFBFQ1RfVFJVRShbYWN0dWFsRGF0YSBpc0tpbmRPZkNsYXNzOltOU0RhdGEg
Y2xhc3NdXSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtleHBlY3RlZERhdGEgaXNFcXVhbFRvRGF0
YTphY3R1YWxEYXRhXSk7CisgICAgfQorfQorCitURVNUX0YoU2hhcmVkQnVmZmVyVGVzdCwgY3Jl
YXRlTlNEYXRhQXJyYXkpCit7CisgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgIGF1dG8g
YnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsKKyAgICAgICAgZXhwZWN0RGF0YUFycmF5
c0VxdWFsKG5pbCwgYnVmZmVyLT5jcmVhdGVOU0RhdGFBcnJheSgpLmdldCgpKTsKKworICAgICAg
ICBOU0RhdGEgKmhlbGxvRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoiaGVsbG8iIGxlbmd0
aDo1XTsKKyAgICAgICAgYnVmZmVyLT5hcHBlbmQoKGNvbnN0IGNoYXIqKWhlbGxvRGF0YS5ieXRl
cywgaGVsbG9EYXRhLmxlbmd0aCk7CisgICAgICAgIGV4cGVjdERhdGFBcnJheXNFcXVhbChAWyBo
ZWxsb0RhdGEgXSwgYnVmZmVyLT5jcmVhdGVOU0RhdGFBcnJheSgpLmdldCgpKTsKKworICAgICAg
ICBOU0RhdGEgKndvcmxkRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoid29ybGQiIGxlbmd0
aDo1XTsKKyAgICAgICAgYnVmZmVyLT5hcHBlbmQoKENGRGF0YVJlZil3b3JsZERhdGEpOworICAg
ICAgICBleHBlY3REYXRhQXJyYXlzRXF1YWwoQFsgaGVsbG9EYXRhLCB3b3JsZERhdGEgXSwgYnVm
ZmVyLT5jcmVhdGVOU0RhdGFBcnJheSgpLmdldCgpKTsKKworICAgICAgICBleHBlY3REYXRhQXJy
YXlzRXF1YWwoQFsgaGVsbG9EYXRhIF0sIFNoYXJlZEJ1ZmZlcjo6d3JhcE5TRGF0YShoZWxsb0Rh
dGEpLT5jcmVhdGVOU0RhdGFBcnJheSgpLmdldCgpKTsKKyAgICAgICAgZXhwZWN0RGF0YUFycmF5
c0VxdWFsKEBbIHdvcmxkRGF0YSBdLCBTaGFyZWRCdWZmZXI6OndyYXBDRkRhdGEoKENGRGF0YVJl
Zil3b3JsZERhdGEpLT5jcmVhdGVOU0RhdGFBcnJheSgpLmdldCgpKTsKKworICAgICAgICBOU0Fy
cmF5PE5TRGF0YSAqPiAqZGF0YUFycmF5ID0gQFsgW05TRGF0YSBkYXRhV2l0aEJ5dGVzOiJvbmUi
IGxlbmd0aDozXSwgW05TRGF0YSBkYXRhV2l0aEJ5dGVzOiJ0d28iIGxlbmd0aDozXSwgW05TRGF0
YSBkYXRhV2l0aEJ5dGVzOiJ0aHJlZSIgbGVuZ3RoOjVdIF07CisgICAgICAgIGF1dG8gd3JhcHBl
ZERhdGFBcnJheSA9IFNoYXJlZEJ1ZmZlcjo6d3JhcENGRGF0YUFycmF5KChDRkFycmF5UmVmKWRh
dGFBcnJheSk7CisgICAgICAgIGV4cGVjdERhdGFBcnJheXNFcXVhbChkYXRhQXJyYXksIHdyYXBw
ZWREYXRhQXJyYXktPmNyZWF0ZU5TRGF0YUFycmF5KCkuZ2V0KCkpOworCisgICAgICAgIE5TQXJy
YXk8TlNEYXRhICo+ICpzZWNvbmREYXRhQXJyYXkgPSBAWyBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6
ImZvdXIiIGxlbmd0aDo0XSwgW05TRGF0YSBkYXRhV2l0aEJ5dGVzOiJmaXZlIiBsZW5ndGg6NF0s
IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoic2l4IiBsZW5ndGg6M10gXTsKKyAgICAgICAgd3JhcHBl
ZERhdGFBcnJheS0+YXBwZW5kKFNoYXJlZEJ1ZmZlcjo6d3JhcENGRGF0YUFycmF5KChDRkFycmF5
UmVmKXNlY29uZERhdGFBcnJheSkuZ2V0KCkpOworICAgICAgICBleHBlY3REYXRhQXJyYXlzRXF1
YWwoW2RhdGFBcnJheSBhcnJheUJ5QWRkaW5nT2JqZWN0c0Zyb21BcnJheTpzZWNvbmREYXRhQXJy
YXldLCB3cmFwcGVkRGF0YUFycmF5LT5jcmVhdGVOU0RhdGFBcnJheSgpLmdldCgpKTsKKworICAg
ICAgICBleHBlY3REYXRhQXJyYXlzRXF1YWwoQFsgW05TRGF0YSBkYXRhV2l0aENvbnRlbnRzT2ZG
aWxlOnRlbXBGaWxlUGF0aCgpXSBdLCBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09m
RmlsZSh0ZW1wRmlsZVBhdGgoKSktPmNyZWF0ZU5TRGF0YUFycmF5KCkuZ2V0KCkpOworICAgIH0K
K30KKworfTsgLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298049</attachid>
            <date>2017-01-04 16:23:27 -0800</date>
            <delta_ts>2017-01-04 17:32:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166696-20170104162159.patch</filename>
            <type>text/plain</type>
            <size>24763</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQxZTkxZGEwM2IxZDY5
ZDk2MjQ5YzMzZTRlYmVkODlhNTQ5NWM0NS4uMzEyZWEwNTFkNGUwYzM0ODBhMzdhMWIxODA5MzUz
ZDk0OWIzMTQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTAxLTA0ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFRlYWNoIFNoYXJl
ZEJ1ZmZlciB0byByZXR1cm4gYW4gTlNBcnJheSBvZiBkYXRhIHNlZ21lbnRzIHRvIGF2b2lkIGZs
YXR0ZW5pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgRXhp
c3RpbmcgbWV0aG9kcyBvZiBleHRyYWN0aW5nIE5TRGF0YSBmcm9tIGEgU2hhcmVkQnVmZmVyIHJl
cXVpcmUgZWl0aGVyIG1lcmdpbmcgb3IgY29weWluZworICAgICAgICBkYXRhIHNlZ21lbnRzLiBT
aW5jZSBkYXRhIHNlZ21lbnRzIGFyZSBzdG9yZWQgaW4gQ0ZEYXRhUmVmcyBvbiBDb2NvYSBwbGF0
Zm9ybXMsIGl0IHNob3VsZCBiZQorICAgICAgICBwb3NzaWJsZSB0byByZXRyaWV2ZSBhbiBOU0Fy
cmF5IG9mIHRoZSBzZWdtZW50cyB3aXRob3V0IGhhdmluZyB0byBmaXJzdCBmbGF0dGVuIHRvIGEg
c2luZ2xlCisgICAgICAgIGJ1ZmZlci4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMg
c3VjaCBhIG1ldGhvZC4gVGhpcyB3aWxsIGJlIHVzZWQgaW4gYSBmb2xsb3ctb24gcGF0Y2gsIHdo
ZXJlIEkgd2lsbAorICAgICAgICBuZWVkIHRvIHBhc3MgU2hhcmVkQnVmZmVyIGRhdGEgdG8gUXVp
Y2tMb29rIHZpYSBhbiBOU0FycmF5IG9mIE5TRGF0YS4KKworICAgICAgICBOZXcgQVBJIHRlc3Q6
IFNoYXJlZEJ1ZmZlclRlc3QuY3JlYXRlTlNEYXRhQXJyYXkuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9TaGFyZWRCdWZmZXIuaDogRGVjbGFyZWQgY3JlYXRlTlNBcnJheURhdGEoKSwgYW5kIGV4cG9y
dGVkIHR3byBmdW5jdGlvbnMgbmVlZGVkCisgICAgICAgIGJ5IHRoZSBBUEkgdGVzdC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jb2NvYS9TaGFyZWRCdWZmZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlTlNEYXRhQXJyYXkpOiBBZGRlZC4gUmV0dXJucyBtX2Nm
RGF0YSBvciBhIGNvcHkgb2YgbV9maWxlRGF0YQorICAgICAgICBpZiBlaXRoZXIgZXhpc3QuIE90
aGVyd2lzZSwgYWRkcyBtX2J1ZmZlciAod3JhcHBlZCBpbiBhIFdlYkNvcmVTaGFyZWRCdWZmZXJE
YXRhIG9iamVjdCkgYW5kCisgICAgICAgIHRoZSBvYmplY3RzIGluIG1fZGF0YUFycmF5IHRvIGEg
TlNNdXRhYmxlQXJyYXkgYW5kIHJldHVybnMgaXQuCisKIDIwMTctMDEtMDMgIFNhbSBXZWluaWcg
IDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgZmluYWwgY3VzdG9tIGJpbmRpbmcg
ZnJvbSBJREJSZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCmluZGV4
IGQ5MmUzYWJkNjM3OTc5NjkxYzEzMjhjYWI4OGQxNzhhMGZjODE4Y2MuLjgzYTQ2Mzg3OWEzOWZm
ZjJlOWQxOWY3NjRhNzY0YzU3MjEyNmJiZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NoYXJlZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJl
ZEJ1ZmZlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJj
aCBJbiBNb3Rpb24gTGltaXRlZCAyMDA5LTIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CkBAIC00NCw2ICs0NCw3IEBACiAjZW5kaWYKIAogI2lmIFVTRShGT1VOREFU
SU9OKQorT0JKQ19DTEFTUyBOU0FycmF5OwogT0JKQ19DTEFTUyBOU0RhdGE7CiAjZW5kaWYKIApA
QCAtNjQsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgCiAjaWYgVVNFKEZPVU5EQVRJT04pCiAgICAg
V0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPE5TRGF0YT4gY3JlYXRlTlNEYXRhKCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgUmV0YWluUHRyPE5TQXJyYXk+IGNyZWF0ZU5TRGF0YUFycmF5KCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTaGFyZWRCdWZmZXI+IHdyYXBOU0RhdGEoTlNEYXRh
ICopOwogI2VuZGlmCiAjaWYgVVNFKENGKQpAQCAtOTksOCArMTAxLDggQEAgcHVibGljOgogICAg
IHVuc2lnbmVkIHBsYXRmb3JtRGF0YVNpemUoKSBjb25zdDsKIAogI2lmIFVTRShORVRXT1JLX0NG
REFUQV9BUlJBWV9DQUxMQkFDSykKLSAgICBzdGF0aWMgUmVmPFNoYXJlZEJ1ZmZlcj4gd3JhcENG
RGF0YUFycmF5KENGQXJyYXlSZWYpOwotICAgIHZvaWQgYXBwZW5kKENGRGF0YVJlZik7CisgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTaGFyZWRCdWZmZXI+IHdyYXBDRkRhdGFBcnJheShD
RkFycmF5UmVmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGVuZChDRkRhdGFSZWYpOwog
I2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZWY8U2hhcmVkQnVmZmVyPiBjb3B5KCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TaGFyZWRCdWZm
ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NoYXJlZEJ1ZmZlckNv
Y29hLm1tCmluZGV4IDBjYzgxYmE2NjZmMWI3NTVhMGRmNWU2ODE1OTcwY2QzMWM2MDY1ZGQuLjRh
MjY5ZWYxZmE1NzdlNTIxNjE4NTg1ZThjZGU2ZDhhYmZjN2E4ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NoYXJlZEJ1ZmZlckNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NoYXJlZEJ1ZmZlckNvY29hLm1tCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjMsNCArMTIz
LDI4IEBAIFJlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlRnJvbVJlYWRp
bmdGaWxlKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
K1JldGFpblB0cjxOU0FycmF5PiBTaGFyZWRCdWZmZXI6OmNyZWF0ZU5TRGF0YUFycmF5KCkKK3sK
KyAgICBpZiAoYXV0byBwbGF0Zm9ybURhdGEgPSAoTlNEYXRhICopbV9jZkRhdGEuZ2V0KCkpCisg
ICAgICAgIHJldHVybiBAWyBwbGF0Zm9ybURhdGEgXTsKKworICAgIGlmIChtX2ZpbGVEYXRhKQor
ICAgICAgICByZXR1cm4gQFsgW05TRGF0YSBkYXRhV2l0aEJ5dGVzOm1fZmlsZURhdGEuZGF0YSgp
IGxlbmd0aDptX2ZpbGVEYXRhLnNpemUoKV0gXTsKKworICAgIGF1dG8gZGF0YUFycmF5ID0gYWRv
cHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgaWYgKG1fYnVmZmVyLT5k
YXRhLnNpemUoKSkKKyAgICAgICAgW2RhdGFBcnJheSBhZGRPYmplY3Q6YWRvcHROUyhbW1dlYkNv
cmVTaGFyZWRCdWZmZXJEYXRhIGFsbG9jXSBpbml0V2l0aFNoYXJlZEJ1ZmZlckRhdGFCdWZmZXI6
bV9idWZmZXIucHRyKCldKS5nZXQoKV07CisKKyNpZiBVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlf
Q0FMTEJBQ0spCisgICAgZm9yIChhdXRvJiBkYXRhIDogbV9kYXRhQXJyYXkpCisgICAgICAgIFtk
YXRhQXJyYXkgYWRkT2JqZWN0OihOU0RhdGEgKilkYXRhLmdldCgpXTsKKyNlbHNlCisgICAgLy8g
Q29jb2EgcGxhdGZvcm1zIGFsbCBjdXJyZW50bHkgVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NB
TExCQUNLKSwgc28gaW1wbGVtZW50aW5nIGEgY29kZSBwYXRoIGZvciBjb3B5aW5nIHNlZ21lbnRz
IHdvdWxkIGJlIGRlYWQgY29kZS4KKyAgICAvLyBJZiB0aGlzIGV2ZXIgY2hhbmdlcywgdGhlIGZv
bGxvd2luZyBzdGF0aWNfYXNzZXJ0IHdpbGwgZGV0ZWN0IGl0LgorICAgIHN0YXRpY19hc3NlcnQo
ZmFsc2UsICJGSVhNRTogQ29weSB0aGUgc2VnbWVudHMgaW50byBhbiBhcnJheSBvZiBOU0RhdGEg
b2JqZWN0cy4iKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIFdURk1vdmUoZGF0YUFycmF5KTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGFiYjkwZDQ5NmJhODRhOWE2OWI4NjM3MWE3YzMwZDFiMGNlYTA2YmMuLjg3MzVjM2I2ZDhlNWY3
OWQ0ODdiNjUyMGE1YmE1MTE4NTMwODg5NWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNy0wMS0wNCAgQW5keSBF
c3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBUZWFjaCBTaGFyZWRC
dWZmZXIgdG8gcmV0dXJuIGFuIE5TQXJyYXkgb2YgZGF0YSBzZWdtZW50cyB0byBhdm9pZCBmbGF0
dGVuaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjY2OTYKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Bs
YXRmb3JtV2luLmNtYWtlOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwOiBNb3ZlZCBjbGFzcyBTaGFyZWRCdWZmZXJUZXN0IHRv
IFNoYXJlZEJ1ZmZlclRlc3Que2NwcCxofS4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvU2hhcmVkQnVmZmVyVGVzdC5jcHA6IE1vdmVkIGNsYXNzIFNoYXJlZEJ1ZmZlclRl
c3QgZnJvbSBTaGFyZWRCdWZmZXIuY3BwLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9TaGFyZWRCdWZmZXJUZXN0Lmg6IERpdHRvLgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9TaGFyZWRCdWZmZXIubW06IEFkZGVkLgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6ZXhwZWN0RGF0YUFycmF5c0VxdWFsKTogQWRkZWQgYSBoZWxwZXIgdG8g
YXNzZXJ0IHRoYXQgdHdvIE5TQXJyYXlzIG9mIE5TRGF0YSBhcmUgZXF1YWwuCisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUX0YpOiBBZGRlZCBhIHRlc3QgZm9yIGNyZWF0ZU5TRGF0YUFycmF5
LgorCiAyMDE3LTAxLTA0ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBjbWFrZSBidWlsZGZpeCBhZnRlciByMjEwMjY2LgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYjFiZDc1NzM0NWE4Njc1OGI4NzIyYTQw
Y2FkMWQyY2QwNzEyMzJjOS4uMGU0MDFkNTE3MTRlNzY1MmQ1YTA5OTYxZjEyMDExMjE5YjI2MmE4
OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xMzcsNiArMTM3LDcg
QEAgYWRkX2V4ZWN1dGFibGUoVGVzdFdlYkNvcmUKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9U
ZXN0cy9XZWJDb3JlL1B1YmxpY1N1ZmZpeC5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9U
ZXN0cy9XZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyVGVzdC5jcHAKICAgICAke1RFU1RXRUJLSVRBUElf
RElSfS9UZXN0cy9XZWJDb3JlL1VSTC5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0
cy9XZWJDb3JlL1VSTFBhcnNlci5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9X
ZWJDb3JlL1VzZXJBZ2VudFF1aXJrcy5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvUGxhdGZvcm1XaW4uY21ha2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2luLmNt
YWtlCmluZGV4IDQ4OWJhZjEzZWZmMDA1NWQzMzVlNDU1MWE1OTYzZGNlMTYzYmVmMGEuLmUzMGM0
YTM2Y2IxYjY1OTVkMTkzOWRlOTFlZGYxNjZhOWUzM2YzYjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybVdpbi5jbWFrZQpAQCAtNTgsNiArNTgsNyBAQCBzZXQoVGVzdFdlYkNvcmVMaWJfU09V
UkNFUwogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvUGFyc2VkQ29udGVu
dFJhbmdlLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvU2VjdXJp
dHlPcmlnaW4uY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9TaGFy
ZWRCdWZmZXIuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9TaGFy
ZWRCdWZmZXJUZXN0LmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUv
VGltZVJhbmdlcy5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1Ry
YW5zZm9ybWF0aW9uTWF0cml4LmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YkNvcmUvVVJMLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzOGVhYzBjMTE5MmMzOGVl
NjUyZDFkZjllOGVjZGU1MTRjYjcyOGE3Li5lNDA5ZDE4YTMzMDBhYmVjYTlhZWJmMmFkZTJlNDdk
OWI3NzA2MjBkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDY1LDYgKzQ2NSw4IEBACiAJ
CUExNTUwMjJBMUUwNTAyMEIwMEEyNEM1NyAvKiBEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNh
bGxzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE1
NTAyMjgxRTA1MDIwQjAwQTI0QzU3IC8qIER1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMu
bW0gKi87IH07CiAJCUExNTUwMjJDMUUwNTBEMDMwMEEyNEM1NyAvKiBkdXBsaWNhdGUtY29tcGxl
dGlvbi1oYW5kbGVyLWNhbGxzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTE1NTAyMkIxRTA1MEJDNTAwQTI0QzU3IC8qIGR1cGxpY2F0
ZS1jb21wbGV0aW9uLWhhbmRsZXItY2FsbHMuaHRtbCAqLzsgfTsKIAkJQTE2RjY2QkExQzQwRUI0
RjAwQkQ0RDI0IC8qIENvbnRlbnRGaWx0ZXJpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTZGNjZCOTFDNDBFQTIwMDBCRDREMjQg
LyogQ29udGVudEZpbHRlcmluZy5odG1sICovOyB9OworCQlBMTc5OTE4ODFFMUM5OTRFMDBBNTA1
RUQgLyogU2hhcmVkQnVmZmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTE3OTkxODYxRTFDOTk0RTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZlci5tbSAq
LzsgfTsKKwkJQTE3OTkxOEIxRTFDQTI0MTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZlclRlc3QuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3OTkxODkx
RTFDQTI0MTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZlclRlc3QuY3BwICovOyB9OwogCQlBMUM0RkI3
MzFCQUNEMUNBMDAzNzQyRDAgLyogcGFnZXMucGFnZXMgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDNEZCNzIxQkFDRDFCNzAwMzc0MkQwIC8q
IHBhZ2VzLnBhZ2VzICovOyB9OwogCQlBMURGNzQzMjFDNDFCNjU4MDBBMkY0RDAgLyogQWx3YXlz
UmV2YWxpZGF0ZWRVUkxTY2hlbWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTFERjc0MzAxQzQxQjY1ODAwQTJGNEQwIC8qIEFsd2F5c1JldmFsaWRh
dGVkVVJMU2NoZW1lcy5tbSAqLzsgfTsKIAkJQTU3QTM0RjIxNkFGNkIyQjAwQzI1MDFGIC8qIFBh
Z2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1N0EzNEYxMTZBRjY5RTIwMEMy
NTAxRiAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMuaHRtbCAqLzsgfTsK
QEAgLTExNDUsNiArMTE0Nyw5IEBACiAJCUExNTUwMjI4MUUwNTAyMEIwMEEyNEM1NyAvKiBEdXBs
aWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE1NTAyMkIxRTA1MEJDNTAwQTI0QzU3IC8qIGR1cGxp
Y2F0ZS1jb21wbGV0aW9uLWhhbmRsZXItY2FsbHMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJkdXBsaWNhdGUtY29tcGxldGlvbi1oYW5kbGVyLWNhbGxzLmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTZGNjZCOTFDNDBFQTIwMDBCRDREMjQgLyogQ29udGVu
dEZpbHRlcmluZy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gQ29udGVudEZpbHRl
cmluZy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTc5OTE4NjFFMUM5OTRF
MDBBNTA1RUQgLyogU2hhcmVkQnVmZmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gU2hhcmVkQnVmZmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBMTc5OTE4OTFFMUNBMjQxMDBBNTA1RUQgLyogU2hhcmVkQnVmZmVyVGVzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRCdWZmZXJUZXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTE3OTkxOEExRTFDQTI0MTAwQTUwNUVEIC8qIFNo
YXJlZEJ1ZmZlclRlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVk
QnVmZmVyVGVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMThBQThDQzFDM0ZB
MjE4MDA5QjJCOTcgLyogQ29udGVudEZpbHRlcmluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDb250ZW50RmlsdGVyaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUExQTRGRTVEMThERDNEQjcwMEI1RUE4QSAvKiBEb3dubG9hZC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERvd25sb2FkLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMUM0RkI2QzFCQUNDRTUwMDAzNzQyRDAgLyogUXVpY2tMb29rLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUXVpY2tMb29rLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU1OSw2ICsxNTY0LDggQEAKIAkJCQlDRDIyNUMw
NzFDNDVBNjkyMDAxNDA3NjEgLyogUGFyc2VkQ29udGVudFJhbmdlLmNwcCAqLywKIAkJCQlDRTA2
REY5QTFFMTg1MUYyMDBFNTcwQzkgLyogU2VjdXJpdHlPcmlnaW4uY3BwICovLAogCQkJCTQxOTcz
QjVDMUFGMjI4NzUwMDZDN0IzNiAvKiBTaGFyZWRCdWZmZXIuY3BwICovLAorCQkJCUExNzk5MTg5
MUUxQ0EyNDEwMEE1MDVFRCAvKiBTaGFyZWRCdWZmZXJUZXN0LmNwcCAqLywKKwkJCQlBMTc5OTE4
QTFFMUNBMjQxMDBBNTA1RUQgLyogU2hhcmVkQnVmZmVyVGVzdC5oICovLAogCQkJCUNEQzJDNzE0
MTc5NzA4OUQwMEU2MjdGQiAvKiBUaW1lUmFuZ2VzLmNwcCAqLywKIAkJCQk3QUQzRkU4RDFENzVG
QjhEMDBCMTY5QTQgLyogVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwICovLAogCQkJCTQ0MEExRDM4
MTRBMDEwM0EwMDhBNjZGMiAvKiBVUkwuY3BwICovLApAQCAtMjE1OCw2ICsyMTY1LDcgQEAKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNTc2OUM1MEExRDlCMDAwMTAw
MDg0N0ZCIC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLm1tICovLAorCQkJCUExNzk5MTg2MUUx
Qzk5NEUwMEE1MDVFRCAvKiBTaGFyZWRCdWZmZXIubW0gKi8sCiAJCQkJOTNBN0VCM0MxOEZBNjNB
NDAwOUU3NjcwIC8qIFVSTEV4dHJhcy5tbSAqLywKIAkJCQlDRDg5RDAzODFDNEVEQjJBMDAwNDBB
MDQgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLywKIAkJCSk7CkBAIC0yNTM4LDYgKzI1NDYs
NyBAQAogCQkJCTUxMDQ3Nzc4MUQyOTkyM0IwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTUxQTU4Nzg2MUQyNzNBQTkwMDRCQTlBRiAvKiBJbmRleGVk
REJEYXRhYmFzZVByb2Nlc3NLaWxsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQkUxRDBB
NjUxMzAwRkVCQ0YzIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy5tbSBpbiBTb3VyY2VzICovLAor
CQkJCUExNzk5MThCMUUxQ0EyNDEwMEE1MDVFRCAvKiBTaGFyZWRCdWZmZXJUZXN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDODNFMEJGMUQwQTY1MjIwMEZFQkNGMyAvKiBJbmRleGVkREJQZXJz
aXN0ZW5jZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUZCMUE0MTFBRTYwMDQ0N0M0QyAv
KiBJbmplY3RlZEJ1bmRsZUJhc2ljLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzNDlEM0MyMURC
OTZEREUwMDRBOUY2NSAvKiBDb250ZXh0TWVudURvd25sb2FkLm1tIGluIFNvdXJjZXMgKi8sCkBA
IC0yNjc1LDYgKzI2ODQsNyBAQAogCQkJCTdDQ0U3RUQ4MUE0MTFBN0UwMDQ0N0M0QyAvKiBXaWxs
U2VuZFN1Ym1pdEV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRDkxQTQxMUE3RTAw
NDQ3QzRDIC8qIFdpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlhLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUY4MzU3MUIxRDNGRkIyMzAwRTM5NjdCIC8qIFdLQmFja0ZvcndhcmRMaXN0Lm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJQTE3OTkxODgxRTFDOTk0RTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZlci5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTJFRkYwNkQ3MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZp
ZXdDYW5kaWRhdGVUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjJFMUE0MTFCMTAw
MDQ0N0M0QyAvKiBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwVGVzdC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RjJGMUE0MTFCMTAwMDQ0N0M0QyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZVRlc3QubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAKaW5kZXggNzc1Y2FiM2ZlZWZlMWE0ZWI1MzMz
NTA2Yjg5ZDQxMTRkMDdjZTVjOS4uNTQzZWYyMzE2Y2I2ZDZjYjY3YzY3YTk0ZTI0OTc5MjBjOWQ1
NDAxMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJl
ZEJ1ZmZlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJl
ZEJ1ZmZlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxNSBD
YW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC0yNyw2ICsyNyw3IEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKIAorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlclRlc3QuaCIKICNpbmNs
dWRlICJUZXN0LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgpAQCAtMzYsMzggKzM3LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAotY29uc3QgY2hhciogU2hhcmVk
QnVmZmVyVGVzdERhdGEgPSAiVGhpcyBpcyBhIHRlc3QiOwotCi1jbGFzcyBTaGFyZWRCdWZmZXJU
ZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotcHVibGljOgotICAgIHZvaWQgU2V0VXAoKSBv
dmVycmlkZQotICAgIHsKLSAgICAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOwotICAg
ICAgICAKLSAgICAgICAgLy8gY3JlYXRlIHRlbXAgZmlsZQotICAgICAgICBQbGF0Zm9ybUZpbGVI
YW5kbGUgaGFuZGxlOwotICAgICAgICBtX3RlbXBGaWxlUGF0aCA9IG9wZW5UZW1wb3JhcnlGaWxl
KCJ0ZW1wVGVzdEZpbGUiLCBoYW5kbGUpOwotICAgICAgICB3cml0ZVRvRmlsZShoYW5kbGUsIFNo
YXJlZEJ1ZmZlclRlc3REYXRhLCBzdHJsZW4oU2hhcmVkQnVmZmVyVGVzdERhdGEpKTsKLSAgICAg
ICAgY2xvc2VGaWxlKGhhbmRsZSk7IAotCi0gICAgICAgIG1fdGVtcEVtcHR5RmlsZVBhdGggPSBv
cGVuVGVtcG9yYXJ5RmlsZSgidGVtcEVtcHR5VGVzdEZpbGUiLCBoYW5kbGUpOwotICAgICAgICBj
bG9zZUZpbGUoaGFuZGxlKTsgCi0gICAgfQotCi0gICAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRl
Ci0gICAgewotICAgICAgICBkZWxldGVGaWxlKG1fdGVtcEZpbGVQYXRoKTsKLSAgICAgICAgZGVs
ZXRlRmlsZShtX3RlbXBFbXB0eUZpbGVQYXRoKTsKLSAgICB9Ci0KLSAgICBjb25zdCBTdHJpbmcm
IHRlbXBGaWxlUGF0aCgpIHsgcmV0dXJuIG1fdGVtcEZpbGVQYXRoOyB9Ci0gICAgY29uc3QgU3Ry
aW5nJiB0ZW1wRW1wdHlGaWxlUGF0aCgpIHsgcmV0dXJuIG1fdGVtcEVtcHR5RmlsZVBhdGg7IH0K
LQotcHJpdmF0ZToKLSAgICBTdHJpbmcgbV90ZW1wRmlsZVBhdGg7Ci0gICAgU3RyaW5nIG1fdGVt
cEVtcHR5RmlsZVBhdGg7Ci19OwotCiBURVNUX0YoU2hhcmVkQnVmZmVyVGVzdCwgY3JlYXRlV2l0
aENvbnRlbnRzT2ZNaXNzaW5nRmlsZSkKIHsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZm
ZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShTdHJpbmcoIm5vdF9l
eGlzdGluZ19maWxlIikpOwpAQCAtNzgsOCArNDcsOCBAQCBURVNUX0YoU2hhcmVkQnVmZmVyVGVz
dCwgY3JlYXRlV2l0aENvbnRlbnRzT2ZFeGlzdGluZ0ZpbGUpCiB7CiAgICAgUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUo
dGVtcEZpbGVQYXRoKCkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChidWZmZXIpOwotICAgIEVYUEVD
VF9UUlVFKGJ1ZmZlci0+c2l6ZSgpID09IHN0cmxlbihTaGFyZWRCdWZmZXJUZXN0RGF0YSkpOwot
ICAgIEVYUEVDVF9UUlVFKFN0cmluZyhTaGFyZWRCdWZmZXJUZXN0RGF0YSkgPT0gU3RyaW5nKGJ1
ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOworICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+
c2l6ZSgpID09IHN0cmxlbihTaGFyZWRCdWZmZXJUZXN0Ojp0ZXN0RGF0YSgpKSk7CisgICAgRVhQ
RUNUX1RSVUUoU3RyaW5nKFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpID09IFN0cmluZyhi
dWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKIH0KIAogVEVTVF9GKFNoYXJlZEJ1ZmZl
clRlc3QsIGNyZWF0ZVdpdGhDb250ZW50c09mRXhpc3RpbmdFbXB0eUZpbGUpCkBAIC0xMTMsOSAr
ODIsOSBAQCBURVNUX0YoU2hhcmVkQnVmZmVyVGVzdCwgYXBwZW5kQnVmZmVyQ3JlYXRlZFdpdGhD
b250ZW50c09mRXhpc3RpbmdGaWxlKQogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9
IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKHRlbXBGaWxlUGF0aCgpKTsK
ICAgICBBU1NFUlRfTk9UX05VTEwoYnVmZmVyKTsKICAgICBidWZmZXItPmFwcGVuZCgiYSIsIDEp
OwotICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+c2l6ZSgpID09IChzdHJsZW4oU2hhcmVkQnVmZmVy
VGVzdERhdGEpICsgMSkpOwotICAgIEVYUEVDVF9UUlVFKCFtZW1jbXAoYnVmZmVyLT5kYXRhKCks
IFNoYXJlZEJ1ZmZlclRlc3REYXRhLCBzdHJsZW4oU2hhcmVkQnVmZmVyVGVzdERhdGEpKSk7Ci0g
ICAgRVhQRUNUX0VRKCdhJywgYnVmZmVyLT5kYXRhKClbc3RybGVuKFNoYXJlZEJ1ZmZlclRlc3RE
YXRhKV0pOworICAgIEVYUEVDVF9UUlVFKGJ1ZmZlci0+c2l6ZSgpID09IChzdHJsZW4oU2hhcmVk
QnVmZmVyVGVzdDo6dGVzdERhdGEoKSkgKyAxKSk7CisgICAgRVhQRUNUX1RSVUUoIW1lbWNtcChi
dWZmZXItPmRhdGEoKSwgU2hhcmVkQnVmZmVyVGVzdDo6dGVzdERhdGEoKSwgc3RybGVuKFNoYXJl
ZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpKSk7CisgICAgRVhQRUNUX0VRKCdhJywgYnVmZmVyLT5k
YXRhKClbc3RybGVuKFNoYXJlZEJ1ZmZlclRlc3Q6OnRlc3REYXRhKCkpXSk7CiB9CiAKIFRFU1Rf
RihTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVBcnJheUJ1ZmZlcikKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXJUZXN0LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXJUZXN0LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hMjk3YTU1YjgzM2UzYWNiM2E3MTk5MDUxNmUwZjU4OTQzMTU1ZGQ4Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlclRl
c3QuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyVGVzdC5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxl
U3lzdGVtLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwordm9pZCBTaGFyZWRCdWZm
ZXJUZXN0OjpTZXRVcCgpCit7CisgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOworCisg
ICAgLy8gY3JlYXRlIHRlbXAgZmlsZQorICAgIFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGU7Cisg
ICAgbV90ZW1wRmlsZVBhdGggPSBvcGVuVGVtcG9yYXJ5RmlsZSgidGVtcFRlc3RGaWxlIiwgaGFu
ZGxlKTsKKyAgICB3cml0ZVRvRmlsZShoYW5kbGUsIHRlc3REYXRhKCksIHN0cmxlbih0ZXN0RGF0
YSgpKSk7CisgICAgY2xvc2VGaWxlKGhhbmRsZSk7CisKKyAgICBtX3RlbXBFbXB0eUZpbGVQYXRo
ID0gb3BlblRlbXBvcmFyeUZpbGUoInRlbXBFbXB0eVRlc3RGaWxlIiwgaGFuZGxlKTsKKyAgICBj
bG9zZUZpbGUoaGFuZGxlKTsKK30KKwordm9pZCBTaGFyZWRCdWZmZXJUZXN0OjpUZWFyRG93bigp
Cit7CisgICAgZGVsZXRlRmlsZShtX3RlbXBGaWxlUGF0aCk7CisgICAgZGVsZXRlRmlsZShtX3Rl
bXBFbXB0eUZpbGVQYXRoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlclRl
c3QuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXJUZXN0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTVkOTA5MzVkM2NjYzg2ZDU2YzU1MjZiYWMyNDNlMzNkOGU2YzRjZAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFy
ZWRCdWZmZXJUZXN0LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKKworY2xhc3MgU2hhcmVkQnVmZmVyVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0
IHsKK3B1YmxpYzoKKyAgICB2b2lkIFNldFVwKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBUZWFyRG93
bigpIG92ZXJyaWRlOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHRlc3REYXRhKCkgeyByZXR1
cm4gIlRoaXMgaXMgYSB0ZXN0IjsgfQorICAgIGNvbnN0IFN0cmluZyYgdGVtcEZpbGVQYXRoKCkg
eyByZXR1cm4gbV90ZW1wRmlsZVBhdGg7IH0KKyAgICBjb25zdCBTdHJpbmcmIHRlbXBFbXB0eUZp
bGVQYXRoKCkgeyByZXR1cm4gbV90ZW1wRW1wdHlGaWxlUGF0aDsgfQorCitwcml2YXRlOgorICAg
IFN0cmluZyBtX3RlbXBGaWxlUGF0aDsKKyAgICBTdHJpbmcgbV90ZW1wRW1wdHlGaWxlUGF0aDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9TaGFyZWRCdWZmZXIubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvU2hhcmVkQnVmZmVyLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNjZDI4NzYwMGFmYzAwYzdiM2ZjZTdjMmRkNjlhYWI1OTY1NjkyZDIKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvU2hhcmVkQnVm
ZmVyLm1tCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlNoYXJlZEJ1ZmZlclRl
c3QuaCIKKyNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyB2b2lkIGV4
cGVjdERhdGFBcnJheXNFcXVhbChOU0FycmF5PE5TRGF0YSAqPiAqZXhwZWN0ZWQsIE5TQXJyYXk8
TlNEYXRhICo+ICphY3R1YWwpCit7CisgICAgRVhQRUNUX0VRKGV4cGVjdGVkLmNvdW50LCBhY3R1
YWwuY291bnQpOworICAgIGZvciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IGV4cGVjdGVkLmNvdW50
OyArK2kpIHsKKyAgICAgICAgTlNEYXRhICpleHBlY3RlZERhdGEgPSBleHBlY3RlZFtpXTsKKyAg
ICAgICAgTlNEYXRhICphY3R1YWxEYXRhID0gYWN0dWFsW2ldOworICAgICAgICBFWFBFQ1RfVFJV
RShbZXhwZWN0ZWREYXRhIGlzS2luZE9mQ2xhc3M6W05TRGF0YSBjbGFzc11dKTsKKyAgICAgICAg
RVhQRUNUX1RSVUUoW2FjdHVhbERhdGEgaXNLaW5kT2ZDbGFzczpbTlNEYXRhIGNsYXNzXV0pOwor
ICAgICAgICBFWFBFQ1RfVFJVRShbZXhwZWN0ZWREYXRhIGlzRXF1YWxUb0RhdGE6YWN0dWFsRGF0
YV0pOworICAgIH0KK30KKworVEVTVF9GKFNoYXJlZEJ1ZmZlclRlc3QsIGNyZWF0ZU5TRGF0YUFy
cmF5KQoreworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBhdXRvIGJ1ZmZlciA9IFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7CisgICAgICAgIGV4cGVjdERhdGFBcnJheXNFcXVhbChuaWws
IGJ1ZmZlci0+Y3JlYXRlTlNEYXRhQXJyYXkoKS5nZXQoKSk7CisKKyAgICAgICAgTlNEYXRhICpo
ZWxsb0RhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6ImhlbGxvIiBsZW5ndGg6NV07CisgICAg
ICAgIGJ1ZmZlci0+YXBwZW5kKChjb25zdCBjaGFyKiloZWxsb0RhdGEuYnl0ZXMsIGhlbGxvRGF0
YS5sZW5ndGgpOworICAgICAgICBleHBlY3REYXRhQXJyYXlzRXF1YWwoQFsgaGVsbG9EYXRhIF0s
IGJ1ZmZlci0+Y3JlYXRlTlNEYXRhQXJyYXkoKS5nZXQoKSk7CisKKyAgICAgICAgTlNEYXRhICp3
b3JsZERhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6IndvcmxkIiBsZW5ndGg6NV07CisgICAg
ICAgIGJ1ZmZlci0+YXBwZW5kKChDRkRhdGFSZWYpd29ybGREYXRhKTsKKyAgICAgICAgZXhwZWN0
RGF0YUFycmF5c0VxdWFsKEBbIGhlbGxvRGF0YSwgd29ybGREYXRhIF0sIGJ1ZmZlci0+Y3JlYXRl
TlNEYXRhQXJyYXkoKS5nZXQoKSk7CisKKyAgICAgICAgZXhwZWN0RGF0YUFycmF5c0VxdWFsKEBb
IGhlbGxvRGF0YSBdLCBTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoaGVsbG9EYXRhKS0+Y3JlYXRl
TlNEYXRhQXJyYXkoKS5nZXQoKSk7CisgICAgICAgIGV4cGVjdERhdGFBcnJheXNFcXVhbChAWyB3
b3JsZERhdGEgXSwgU2hhcmVkQnVmZmVyOjp3cmFwQ0ZEYXRhKChDRkRhdGFSZWYpd29ybGREYXRh
KS0+Y3JlYXRlTlNEYXRhQXJyYXkoKS5nZXQoKSk7CisKKyAgICAgICAgTlNBcnJheTxOU0RhdGEg
Kj4gKmRhdGFBcnJheSA9IEBbIFtOU0RhdGEgZGF0YVdpdGhCeXRlczoib25lIiBsZW5ndGg6M10s
IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoidHdvIiBsZW5ndGg6M10sIFtOU0RhdGEgZGF0YVdpdGhC
eXRlczoidGhyZWUiIGxlbmd0aDo1XSBdOworICAgICAgICBhdXRvIHdyYXBwZWREYXRhQXJyYXkg
PSBTaGFyZWRCdWZmZXI6OndyYXBDRkRhdGFBcnJheSgoQ0ZBcnJheVJlZilkYXRhQXJyYXkpOwor
ICAgICAgICBleHBlY3REYXRhQXJyYXlzRXF1YWwoZGF0YUFycmF5LCB3cmFwcGVkRGF0YUFycmF5
LT5jcmVhdGVOU0RhdGFBcnJheSgpLmdldCgpKTsKKworICAgICAgICBOU0FycmF5PE5TRGF0YSAq
PiAqc2Vjb25kRGF0YUFycmF5ID0gQFsgW05TRGF0YSBkYXRhV2l0aEJ5dGVzOiJmb3VyIiBsZW5n
dGg6NF0sIFtOU0RhdGEgZGF0YVdpdGhCeXRlczoiZml2ZSIgbGVuZ3RoOjRdLCBbTlNEYXRhIGRh
dGFXaXRoQnl0ZXM6InNpeCIgbGVuZ3RoOjNdIF07CisgICAgICAgIHdyYXBwZWREYXRhQXJyYXkt
PmFwcGVuZChTaGFyZWRCdWZmZXI6OndyYXBDRkRhdGFBcnJheSgoQ0ZBcnJheVJlZilzZWNvbmRE
YXRhQXJyYXkpLmdldCgpKTsKKyAgICAgICAgZXhwZWN0RGF0YUFycmF5c0VxdWFsKFtkYXRhQXJy
YXkgYXJyYXlCeUFkZGluZ09iamVjdHNGcm9tQXJyYXk6c2Vjb25kRGF0YUFycmF5XSwgd3JhcHBl
ZERhdGFBcnJheS0+Y3JlYXRlTlNEYXRhQXJyYXkoKS5nZXQoKSk7CisKKyAgICAgICAgZXhwZWN0
RGF0YUFycmF5c0VxdWFsKEBbIFtOU0RhdGEgZGF0YVdpdGhDb250ZW50c09mRmlsZTp0ZW1wRmls
ZVBhdGgoKV0gXSwgU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUodGVtcEZp
bGVQYXRoKCkpLT5jcmVhdGVOU0RhdGFBcnJheSgpLmdldCgpKTsKKyAgICB9Cit9CisKK307IC8v
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>