<?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>190954</bug_id>
          
          <creation_ts>2018-10-26 05:18:26 -0700</creation_ts>
          <short_desc>CRASH in CoreGraphics: ERROR_CGDataProvider_BufferIsNotBigEnough</short_desc>
          <delta_ts>2018-10-29 12:08:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1472394</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-26 05:18:26 -0700</bug_when>
    <thetext>CRASH in CoreGraphics: ERROR_CGDataProvider_BufferIsNotBigEnough</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472416</commentid>
    <comment_count>1</comment_count>
      <attachid>353182</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-26 07:03:13 -0700</bug_when>
    <thetext>Created attachment 353182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472437</commentid>
    <comment_count>2</comment_count>
      <attachid>353184</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-26 07:38:55 -0700</bug_when>
    <thetext>Created attachment 353184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472458</commentid>
    <comment_count>3</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-26 08:26:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/45492021&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472660</commentid>
    <comment_count>4</comment_count>
      <attachid>353184</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-10-26 22:28:18 -0700</bug_when>
    <thetext>Comment on attachment 353184
Patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        (This assumes that the issue is the wrong sized buffer at CGDataProvider creation time, and not
&gt; +        that the buffer itself is reclaimed between creation time and access.)

Isn&apos;t this the more likely scenario?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472737</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-27 12:46:53 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #4)
&gt; Comment on attachment 353184 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=353184&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:17
&gt; &gt; +        (This assumes that the issue is the wrong sized buffer at CGDataProvider creation time, and not
&gt; &gt; +        that the buffer itself is reclaimed between creation time and access.)
&gt; 
&gt; Isn&apos;t this the more likely scenario?

We have absolutely no way of knowing. At least with this patch in place, we have narrowed the possibilities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472738</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-27 12:49:38 -0700</bug_when>
    <thetext>Oh, and to continue the thought, previous crashes in other projects with this same stack trace were due to miscalculations in row size, etc. Not due to premature release.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472798</commentid>
    <comment_count>7</comment_count>
      <attachid>353184</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-10-27 23:40:48 -0700</bug_when>
    <thetext>Comment on attachment 353184
Patch

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

&gt; Source/WebCore/platform/graphics/cg/ImageUtilitiesCG.h:32
&gt; +inline uint8_t verifyImageBufferIsBigEnough(const void* buffer, size_t bufferSize)

This function isn&apos;t really specific to image buffers so the filename seems oddly specific, but hopefully it&apos;s temporary.

&gt; Source/WebCore/platform/graphics/cg/ImageUtilitiesCG.h:40
&gt; +    return *(uint8_t*)lastByte;

Might the compiler optimize that away since no callers use the return value?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472894</commentid>
    <comment_count>8</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-29 06:24:40 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #7)
&gt; Comment on attachment 353184 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=353184&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cg/ImageUtilitiesCG.h:32
&gt; &gt; +inline uint8_t verifyImageBufferIsBigEnough(const void* buffer, size_t bufferSize)
&gt; 
&gt; This function isn&apos;t really specific to image buffers so the filename seems
&gt; oddly specific, but hopefully it&apos;s temporary.

Indeed. In the meantime, I at least renamed the file &quot;ImageBufferUtilitiesCG.h&quot;

&gt; &gt; Source/WebCore/platform/graphics/cg/ImageUtilitiesCG.h:40
&gt; &gt; +    return *(uint8_t*)lastByte;
&gt; 
&gt; Might the compiler optimize that away since no callers use the return value?

I talked this over with Keith and Alex and the consensus was that it would. Without crazy #pragma magic, the best way to avoid this would be to put it into its own translation unit, so move the implementation into a .cpp file and do /not/ add it to the unified build system. I&apos;ll do that before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472938</commentid>
    <comment_count>9</comment_count>
      <attachid>353295</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-29 10:14:27 -0700</bug_when>
    <thetext>Created attachment 353295
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472946</commentid>
    <comment_count>10</comment_count>
      <attachid>353299</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-10-29 10:53:24 -0700</bug_when>
    <thetext>Created attachment 353299
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472983</commentid>
    <comment_count>11</comment_count>
      <attachid>353299</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-29 12:08:31 -0700</bug_when>
    <thetext>Comment on attachment 353299
Patch for landing

Clearing flags on attachment: 353299

Committed r237559: &lt;https://trac.webkit.org/changeset/237559&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472984</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-29 12:08:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353182</attachid>
            <date>2018-10-26 07:03:13 -0700</date>
            <delta_ts>2018-10-26 07:38:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190954-20181026160312.patch</filename>
            <type>text/plain</type>
            <size>13610</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3Mzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJjZDk0MWQ5ZmE1ODQz
ODFmOTlmMDg1MTFkMTEyY2Q4MGQ1MTlhNy4uMzEzN2Q4MWI4YzllNmQ0ODRhZTRlMGNlYjUzOGNk
NzE1YzkwNTEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE4LTEwLTI2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIENSQVNIIGluIENvcmVHcmFw
aGljczogRVJST1JfQ0dEYXRhUHJvdmlkZXJfQnVmZmVySXNOb3RCaWdFbm91Z2gKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDk1NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyYXNoIGFuYWx5aXRpY3Mg
c2hvdyB0aGF0IFdlYlByb2Nlc3Mgd2lsbCBjcmFzaCBpbiBFUlJPUl9DR0RhdGFQcm92aWRlcl9C
dWZmZXJJc05vdEJpZ0Vub3VnaCwKKyAgICAgICAgd2hpY2ggYXR0ZW1wdHMgdG8gZmV0Y2ggdGhl
IGxhc3QgYnl0ZSBpbiB0aGUgaW1hZ2UgYnVmZmVyIGluIG9yZGVyIHRvIHZlcmlmeSB0aGF0IHRo
ZSBlbnRpcmUKKyAgICAgICAgYnVmZmVyIGlzIHJlYWRhYmxlLiBVbmZvcnR1bmF0ZWx5LCB0aGUg
c3RhY2sgdHJhY2UgZ2VuZXJhdGVkIGJ5IHRoaXMgY3Jhc2ggZG9lcyBub3QgaWRlbnRpZnkKKyAg
ICAgICAgd2hhdCBDR0RhdGFQcm92aWRlciBpcyByZXNwb25zaWJsZSBmb3IgdGhlIG5vdC1iaWct
ZW5vdWdoIGJ1ZmZlci4gSW4gb3JkZXIgdG8gaWRlbnRpZnkgd2hpY2gKKyAgICAgICAgQ0dEYXRh
UHJvdmlkZXIgY3JlYXRlZCBieSBXZWJLaXQgaXMgcmVzcG9uc2libGUgKGlmIGFueSksIHdlIHdp
bGwgYWRkIG91ciBvd24gdmVyc2lvbiBvZgorICAgICAgICBFUlJPUl9DR0RhdGFQcm92aWRlcl9C
dWZmZXJJc05vdEJpZ0Vub3VnaCwgY2FsbGVkIGF0IENHRGF0YVByb3ZpZGVyIGNyZWF0aW9uIHRp
bWUsIHdoaWNoIHNob3VsZAorICAgICAgICBnZW5lcmF0ZSBhIGNyYXNoIHdpdGhpbiB0aGUgcmVz
cG9uc2libGUgc3RhY2sgZnJhbWUuCisKKyAgICAgICAgKFRoaXMgYXNzdW1lcyB0aGF0IHRoZSBp
c3N1ZSBpcyB0aGUgd3Jvbmcgc2l6ZWQgYnVmZmVyIGF0IENHRGF0YVByb3ZpZGVyIGNyZWF0aW9u
IHRpbWUsIGFuZCBub3QKKyAgICAgICAgdGhhdCB0aGUgYnVmZmVyIGl0c2VsZiBpcyByZWNsYWlt
ZWQgYmV0d2VlbiBjcmVhdGlvbiB0aW1lIGFuZCBhY2Nlc3MuKQorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q6OnBhaW50VG9DYW52YXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdl
QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjp0b0NGRGF0YSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpjZkRhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkdMTGF5ZXIubW06CisgICAgICAgICgtW1dlYkdMTGF5ZXIgY29weUltYWdlU25h
cHNob3RXaXRoQ29sb3JTcGFjZTpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9Q
aXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZm
ZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlBpeGVsQnVmZmVy
Q29uZm9ybWVyQ1Y6OmNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKToKKwogMjAxOC0xMC0yNiAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCAtc2V0T3Zl
cnJpZGVSb3V0ZVNoYXJpbmdQb2xpY3k6cm91dGluZ0NvbnRleHRVSUQ6IFNQSQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA5MjY0MjU0YzUzNzU3YzBhZmQ3ODY4NjlhYWYzM2NiMTQ5NmNkNGU1Li4yZjc3ZWU4ZGZkMTg5
ZGM0ZmMyMWFmZDY1NmFjYWU3ODA3ZTAzMDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDE4LTEwLTI2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIENS
QVNIIGluIENvcmVHcmFwaGljczogRVJST1JfQ0dEYXRhUHJvdmlkZXJfQnVmZmVySXNOb3RCaWdF
bm91Z2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
MDk1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVh
YmxlQml0bWFwOjptYWtlQ0dJbWFnZSk6CisKIDIwMTgtMTAtMjYgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQgLXNldE92ZXJyaWRlUm91dGVTaGFyaW5n
UG9saWN5OnJvdXRpbmdDb250ZXh0VUlEOiBTUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2YzJkNzFlZmM3NzE1N2RkZTNkMzQ0
ZjJhZmU0Nzk2NzM2MTQ2YTgzLi5jMTA1MjBiMjhkNmRkNWJlNDliMGNkZjA3OTM3ZWIwMDUyZGE5
ZTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC00MDE2LDYgKzQwMTYsNyBAQAogCQlDRDNBNDk1RjE3QTlEMDFCMDAyNzRFNDIg
LyogTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEM0E0OTU2MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5oICovOyB9Owog
CQlDRDNBNDk2MjE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNBNDk1OTE3QTlEMDFCMDAyNzRF
NDIgLyogU291cmNlQnVmZmVyLmggKi87IH07CiAJCUNEM0E0OTY1MTdBOUQwMUIwMDI3NEU0MiAv
KiBTb3VyY2VCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDNBNDk1QzE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5o
ICovOyB9OworCQlDRDNFMjFERDIxODM0NDRBMDBFNjZGNTUgLyogSW1hZ2VVdGlsaXRpZXNDRy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzRTIxREIy
MTgzM0Y1MTAwRTY2RjU1IC8qIEltYWdlVXRpbGl0aWVzQ0cuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDNFMjUxQzE4MDQ2QjA2MDBFMjdGNTYg
LyogR3JpZEFyZWEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEM0UyNTFCMTgwNDZCMDYwMEUyN0Y1NiAvKiBHcmlkQXJlYS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEM0UyNTI0MTgwNDZCQ0QwMEUy
N0Y1NiAvKiBDU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNFMjUyMjE4MDQ2QkNEMDBFMjdGNTYgLyogQ1NT
R3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5oICovOyB9OwogCQlDRDRBQzUyQTE0OTZBRTlBMDA4N0M0
RUYgLyogQ29tcG9zaXRlLndhdiBpbiBDb3B5IEF1ZGlvIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDRBQzUyODE0OTZBRTJGMDA4N0M0RUYgLyogQ29tcG9z
aXRlLndhdiAqLzsgfTsKQEAgLTEzMzQyLDYgKzEzMzQzLDcgQEAKIAkJQ0QzQTQ5NUIxN0E5RDAx
QjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU291cmNlQnVmZmVyTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEM0E0OTVDMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZUJ1ZmZlckxpc3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QzQTQ5NUQxN0E5RDAxQjAwMjc0RTQyIC8qIFNv
dXJjZUJ1ZmZlckxpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNvdXJjZUJ1ZmZlckxp
c3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDNFMjFEQjIxODMzRjUxMDBF
NjZGNTUgLyogSW1hZ2VVdGlsaXRpZXNDRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVV0aWxpdGll
c0NHLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEM0UyNTFCMTgwNDZCMDYwMEUy
N0Y1NiAvKiBHcmlkQXJlYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmlk
QXJlYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDNFMjUyMTE4MDQ2QkNEMDBF
MjdGNTYgLyogQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QzRTI1MjIxODA0NkJDRDAwRTI3RjU2IC8qIENTU0dy
aWRUZW1wbGF0ZUFyZWFzVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjM5MTQsNiArMjM5MTYsNyBAQAogCQkJCUIyNzUzNTJBMEIwNTM4MTQwMDJDRTY0RiAvKiBU
cmFuc2Zvcm1hdGlvbk1hdHJpeENHLmNwcCAqLywKIAkJCQk1NUFGMTRFMzFFQUFDNTlCMDAyNkVF
QUEgLyogVVRJUmVnaXN0cnkuY3BwICovLAogCQkJCTU1QUYxNEU0MUVBQUM1OUIwMDI2RUVBQSAv
KiBVVElSZWdpc3RyeS5oICovLAorCQkJCUNEM0UyMURCMjE4MzNGNTEwMEU2NkY1NSAvKiBJbWFn
ZVV0aWxpdGllc0NHLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNnOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTMxMzE5LDYgKzMxMzIyLDcgQEAKIAkJCQk3Q0U2ODM0NzE5MjE4MjE1
MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvclR5cGVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QzczRkIwODE5MUVGNDE3MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVy
c05hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMkIwNjExMDUwNDc2MDAwNDNCRDFD
IC8qIFVzZXJTY3JpcHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEM0UyMUREMjE4MzQ0NEEwMEU2
NkY1NSAvKiBJbWFnZVV0aWxpdGllc0NHLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0EyQjA4QjEw
NTA1QkNEMDA0M0JEMUMgLyogVXNlclNjcmlwdFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzhCRjE1MTEwNTgxM0JGMDBBNDBBMDcgLyogVXNlclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDOEJGMTVBMTA1ODE0MTgwMEE0MEEwNyAvKiBVc2VyU3R5bGVTaGVldFR5cGVzLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKaW5kZXggZGRiNzQ0ZWVlNWIyYjk4
YThmMzNlYWM1NmU4MjU1MWI4OTc5Zjg1My4uYmY0YzFmNTMwMTg1NWZjZWFhNDc5NGQxYTUyYzVi
MzI0YzVhYTJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJCaXRtYXBJbWFnZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAj
aW5jbHVkZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJJbWFnZVV0aWxpdGllc0NHLmgiCiAKICNpZiBI
QVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RORU9O
LmgiCkBAIC01MTQsOSArNTE1LDE1IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50VG9D
YW52YXMoY29uc3QgdW5zaWduZWQgY2hhciogaW1hZ2VQaXhlbHMsIGNvbnN0IEluCiAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgbWVtY3B5KGNvcGllZFBpeGVscywgaW1hZ2VQaXhlbHMs
IHJvd0J5dGVzICogaW1hZ2VTaXplLmhlaWdodCgpKTsKLSAgICAgICAgZGF0YVByb3ZpZGVyID0g
YWRvcHRDRihDR0RhdGFQcm92aWRlckNyZWF0ZVdpdGhEYXRhKDAsIGNvcGllZFBpeGVscywgcm93
Qnl0ZXMgKiBpbWFnZVNpemUuaGVpZ2h0KCksIHJlbGVhc2VJbWFnZURhdGEpKTsKLSAgICB9IGVs
c2UKLSAgICAgICAgZGF0YVByb3ZpZGVyID0gYWRvcHRDRihDR0RhdGFQcm92aWRlckNyZWF0ZVdp
dGhEYXRhKDAsIGltYWdlUGl4ZWxzLCByb3dCeXRlcyAqIGltYWdlU2l6ZS5oZWlnaHQoKSwgMCkp
OworCisgICAgICAgIHNpemVfdCBkYXRhU2l6ZSA9IHJvd0J5dGVzICogaW1hZ2VTaXplLmhlaWdo
dCgpOworICAgICAgICB2ZXJpZnlJbWFnZUJ1ZmZlcklzQmlnRW5vdWdoKGNvcGllZFBpeGVscywg
ZGF0YVNpemUpOworICAgICAgICBkYXRhUHJvdmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3ZpZGVy
Q3JlYXRlV2l0aERhdGEoMCwgY29waWVkUGl4ZWxzLCBkYXRhU2l6ZSwgcmVsZWFzZUltYWdlRGF0
YSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNpemVfdCBkYXRhU2l6ZSA9IHJvd0J5dGVzICog
aW1hZ2VTaXplLmhlaWdodCgpOworICAgICAgICB2ZXJpZnlJbWFnZUJ1ZmZlcklzQmlnRW5vdWdo
KGltYWdlUGl4ZWxzLCBkYXRhU2l6ZSk7CisgICAgICAgIGRhdGFQcm92aWRlciA9IGFkb3B0Q0Yo
Q0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoRGF0YSgwLCBpbWFnZVBpeGVscywgZGF0YVNpemUsIDAp
KTsKKyAgICB9CiAKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY2dJbWFnZSA9IGFkb3B0Q0Yo
Q0dJbWFnZUNyZWF0ZShpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpLCA4LCAz
Miwgcm93Qnl0ZXMsIHNSR0JDb2xvclNwYWNlUmVmKCksIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBs
aWVkRmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkhvc3QsCiAgICAgICAgIGRhdGFQcm92aWRl
ci5nZXQoKSwgMCwgZmFsc2UsIGtDR1JlbmRlcmluZ0ludGVudERlZmF1bHQpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAK
aW5kZXggMDE5YTc1YTg2ZjAzYTlhNjc4YTYwMjU4YmE0M2YyNjY4NTZmM2RhMS4uN2ZhNzc0ODlj
ZDU1OWE3Y2UyNWU4MGJkZGZlNTgxZDVkMDU4YmE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHRDRy5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgorI2luY2x1ZGUgIkltYWdlVXRpbGl0
aWVzQ0cuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3Ry
eS5oIgogI2luY2x1ZGUgPG1hdGguaD4KQEAgLTE4MCw2ICsxODEsNyBAQCBJbWFnZUJ1ZmZlcjo6
SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IENHQ29sb3JTcAogICAgICAgICAgICAgZmFzdEZyZWUoY29uc3RfY2FzdDx2b2lkKj4oZGF0YSkp
OwogICAgICAgICB9OwogICAgICAgICAvLyBDcmVhdGUgYSBsaXZlIGltYWdlIHRoYXQgd3JhcHMg
dGhlIGRhdGEuCisgICAgICAgIHZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91Z2gobV9kYXRhLmRh
dGEsIG51bUJ5dGVzLnVuc2FmZUdldCgpKTsKICAgICAgICAgbV9kYXRhLmRhdGFQcm92aWRlciA9
IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoRGF0YSgwLCBtX2RhdGEuZGF0YSwgbnVt
Qnl0ZXMudW5zYWZlR2V0KCksIHJlbGVhc2VJbWFnZURhdGEpKTsKIAogICAgICAgICBpZiAoIWNn
Q29udGV4dCkKQEAgLTU0NCw2ICs1NDYsNyBAQCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBJbWFnZUJ1
ZmZlcjo6dG9DRkRhdGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpvcHRpb25hbAogICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgc2l6ZV90IGRhdGFTaXplID0gNCAq
IGxvZ2ljYWxTaXplKCkud2lkdGgoKSAqIGxvZ2ljYWxTaXplKCkuaGVpZ2h0KCk7CisgICAgICAg
IHZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91Z2gocHJlbXVsdGlwbGllZERhdGEtPmRhdGEoKSwg
ZGF0YVNpemUpOwogICAgICAgICBhdXRvIGRhdGFQcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJv
dmlkZXJDcmVhdGVXaXRoRGF0YShudWxscHRyLCBwcmVtdWx0aXBsaWVkRGF0YS0+ZGF0YSgpLCBk
YXRhU2l6ZSwgbnVsbHB0cikpOwogICAgICAgICBpZiAoIWRhdGFQcm92aWRlcikKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwpAQCAtNjA1LDYgKzYwOCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8
Q0ZEYXRhUmVmPiBjZkRhdGEoY29uc3QgSW1hZ2VEYXRhJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYg
bWltZVR5CiAgICAgICAgIGRhdGEgPSBwcmVtdWx0aXBsaWVkRGF0YS5kYXRhKCk7CiAgICAgfQog
CisgICAgdmVyaWZ5SW1hZ2VCdWZmZXJJc0JpZ0Vub3VnaChkYXRhLCA0ICogc291cmNlLndpZHRo
KCkgKiBzb3VyY2UuaGVpZ2h0KCkpOwogICAgIGF1dG8gZGF0YVByb3ZpZGVyID0gYWRvcHRDRihD
R0RhdGFQcm92aWRlckNyZWF0ZVdpdGhEYXRhKDAsIGRhdGEsIDQgKiBzb3VyY2Uud2lkdGgoKSAq
IHNvdXJjZS5oZWlnaHQoKSwgMCkpOwogICAgIGlmICghZGF0YVByb3ZpZGVyKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJHTExheWVyLm1tCmluZGV4IDhlZTM0OGQ4OTk4NjM0MTNkNmI2NzEzNzZlNWIx
ZGE1NGNiMTM3NjMuLmMwZDBiZjc1YjU2NzNiZWMxNTZmMDZmYjA4M2JjY2MwODU3NTQxOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5
ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xM
YXllci5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIK
ICNpbXBvcnQgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbXBvcnQgIkdyYXBoaWNzTGF5ZXJDQS5oIgor
I2ltcG9ydCAiSW1hZ2VVdGlsaXRpZXNDRy5oIgogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyLmgi
CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaD4KICNpbXBvcnQgPHd0Zi9G
YXN0TWFsbG9jLmg+CkBAIC0xMTAsNiArMTExLDcgQEAgLSAoQ0dJbWFnZVJlZiljb3B5SW1hZ2VT
bmFwc2hvdFdpdGhDb2xvclNwYWNlOihDR0NvbG9yU3BhY2VSZWYpY29sb3JTcGFjZQogICAgIGds
UGl4ZWxTdG9yZWkoR0xfUEFDS19ST1dfTEVOR1RILCByb3dCeXRlcyAvIDQpOwogICAgIGdsUmVh
ZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBHTF9CR1JBLCBHTF9VTlNJR05FRF9JTlRfOF84
XzhfOF9SRVYsIGRhdGEpOwogCisgICAgV2ViQ29yZTo6dmVyaWZ5SW1hZ2VCdWZmZXJJc0JpZ0Vu
b3VnaCgodWludDhfdCopZGF0YSwgZGF0YVNpemUpOwogICAgIENHRGF0YVByb3ZpZGVyUmVmIHBy
b3ZpZGVyID0gQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoRGF0YSgwLCBkYXRhLCBkYXRhU2l6ZSwg
ZnJlZURhdGEpOwogICAgIENHSW1hZ2VSZWYgaW1hZ2UgPSBDR0ltYWdlQ3JlYXRlKHdpZHRoLCBo
ZWlnaHQsIDgsIDMyLCByb3dCeXRlcywgaW1hZ2VDb2xvclNwYWNlLmdldCgpLAogICAgICAgICBr
Q0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0
LCBwcm92aWRlciwgMCwgdHJ1ZSwga0NHUmVuZGVyaW5nSW50ZW50RGVmYXVsdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZv
cm1lckNWLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVm
ZmVyQ29uZm9ybWVyQ1YuY3BwCmluZGV4IGU3ZTExYzc2NWJhZjYxYzUzMTY1YzBmNmZkYzM0ODcw
MjUyYjk0MDguLjJiNTgyZWMxNjNmNzNlOTE5OTcyZGNiYTg3ZWNiMDBmNzkxOWJhYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29u
Zm9ybWVyQ1YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1Bp
eGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgSEFWRShDT1JF
X1ZJREVPKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKKyNpbmNsdWRlICJJbWFn
ZVV0aWxpdGllc0NHLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgPHd0Zi9Tb2Z0
TGlua2luZy5oPgogCkBAIC04Miw2ICs4Myw3IEBAIHN0YXRpYyBjb25zdCB2b2lkKiBDVlBpeGVs
QnVmZmVyR2V0Qnl0ZVBvaW50ZXJDYWxsYmFjayh2b2lkKiByZWZjb24pCiAKICAgICArK2luZm8t
PmxvY2tDb3VudDsKICAgICB2b2lkKiBhZGRyZXNzID0gQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRy
ZXNzKGluZm8tPnBpeGVsQnVmZmVyLmdldCgpKTsKKyAgICB2ZXJpZnlJbWFnZUJ1ZmZlcklzQmln
RW5vdWdoKGFkZHJlc3MsIENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZShpbmZvLT5waXhlbEJ1ZmZl
ci5nZXQoKSkpOwogICAgIFJFTEVBU0VfTE9HX0lORk8oTWVkaWEsICJDVlBpeGVsQnVmZmVyR2V0
Qnl0ZVBvaW50ZXJDYWxsYmFjaygpIHJldHVybmluZyBieXRlUG9pbnRlcjogJXAsIHNpemU6ICV6
dSIsIGFkZHJlc3MsIENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZShpbmZvLT5waXhlbEJ1ZmZlci5n
ZXQoKSkpOwogICAgIHJldHVybiBhZGRyZXNzOwogfQpAQCAtMTc3LDYgKzE3OSwxMCBAQCBSZXRh
aW5QdHI8Q0dJbWFnZVJlZj4gUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjo6Y3JlYXRlSW1hZ2VGcm9t
UGl4ZWxCdWZmZXIoQ1ZQaXhlbAogICAgIHNpemVfdCBieXRlc1BlclJvdyA9IENWUGl4ZWxCdWZm
ZXJHZXRCeXRlc1BlclJvdyhidWZmZXIuZ2V0KCkpOwogICAgIHNpemVfdCBieXRlTGVuZ3RoID0g
Q1ZQaXhlbEJ1ZmZlckdldERhdGFTaXplKGJ1ZmZlci5nZXQoKSk7CiAKKyAgICBBU1NFUlQoYnl0
ZUxlbmd0aCk7CisgICAgaWYgKCFieXRlTGVuZ3RoKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KwogICAgIENWUGl4ZWxCdWZmZXJJbmZvKiBpbmZvID0gbmV3IENWUGl4ZWxCdWZmZXJJbmZvKCk7
CiAgICAgaW5mby0+cGl4ZWxCdWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlcik7CiAgICAgaW5mby0+bG9j
a0NvdW50ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJs
ZUJpdG1hcENHLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENH
LmNwcAppbmRleCA4NjI2MTU3ZjQwNzU5ODc1NTZhZDUyNzk0NzNmNmNhZTBhMWU2ZTlhLi42YTIx
NWM3YWM0NWNiNDAyM2Q5NDYzMTFhNTk1NjMxYzljMDQ1MGU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlIDxXZWJDb3JlL0JpdG1hcEltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGlj
c0NvbnRleHRDRy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VVdGlsaXRpZXNDRy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NnL0Nv
cmVHcmFwaGljc1NQSS5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvSU9TdXJmYWNlU1BJLmg+
CkBAIC0xMjAsNiArMTIxLDcgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IFNoYXJlYWJsZUJpdG1h
cDo6bWFrZUNHSW1hZ2VDb3B5KCkKIFJldGFpblB0cjxDR0ltYWdlUmVmPiBTaGFyZWFibGVCaXRt
YXA6Om1ha2VDR0ltYWdlKCkKIHsKICAgICByZWYoKTsgLy8gQmFsYW5jZWQgYnkgZGVyZWYgaW4g
cmVsZWFzZURhdGFQcm92aWRlckRhdGEuCisgICAgdmVyaWZ5SW1hZ2VCdWZmZXJJc0JpZ0Vub3Vn
aChkYXRhKCksIHNpemVJbkJ5dGVzKCkpOwogICAgIFJldGFpblB0cjxDR0RhdGFQcm92aWRlcj4g
ZGF0YVByb3ZpZGVyID0gYWRvcHRDRihDR0RhdGFQcm92aWRlckNyZWF0ZVdpdGhEYXRhKHRoaXMs
IGRhdGEoKSwgc2l6ZUluQnl0ZXMoKSwgcmVsZWFzZURhdGFQcm92aWRlckRhdGEpKTsKICAgICBy
ZXR1cm4gY3JlYXRlQ0dJbWFnZShkYXRhUHJvdmlkZXIuZ2V0KCkpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353184</attachid>
            <date>2018-10-26 07:38:55 -0700</date>
            <delta_ts>2018-10-29 10:14:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190954-20181026163853.patch</filename>
            <type>text/plain</type>
            <size>15879</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3Mzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJjZDk0MWQ5ZmE1ODQz
ODFmOTlmMDg1MTFkMTEyY2Q4MGQ1MTlhNy4uZWJjYTlkM2U0MDkyNWQxMTAyMDFkYTlkYWYyN2Ex
NGI5ODA2M2VjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE4LTEwLTI2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIENSQVNIIGluIENvcmVHcmFw
aGljczogRVJST1JfQ0dEYXRhUHJvdmlkZXJfQnVmZmVySXNOb3RCaWdFbm91Z2gKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDk1NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyYXNoIGFuYWx5aXRpY3Mg
c2hvdyB0aGF0IFdlYlByb2Nlc3Mgd2lsbCBjcmFzaCBpbiBFUlJPUl9DR0RhdGFQcm92aWRlcl9C
dWZmZXJJc05vdEJpZ0Vub3VnaCwKKyAgICAgICAgd2hpY2ggYXR0ZW1wdHMgdG8gZmV0Y2ggdGhl
IGxhc3QgYnl0ZSBpbiB0aGUgaW1hZ2UgYnVmZmVyIGluIG9yZGVyIHRvIHZlcmlmeSB0aGF0IHRo
ZSBlbnRpcmUKKyAgICAgICAgYnVmZmVyIGlzIHJlYWRhYmxlLiBVbmZvcnR1bmF0ZWx5LCB0aGUg
c3RhY2sgdHJhY2UgZ2VuZXJhdGVkIGJ5IHRoaXMgY3Jhc2ggZG9lcyBub3QgaWRlbnRpZnkKKyAg
ICAgICAgd2hhdCBDR0RhdGFQcm92aWRlciBpcyByZXNwb25zaWJsZSBmb3IgdGhlIG5vdC1iaWct
ZW5vdWdoIGJ1ZmZlci4gSW4gb3JkZXIgdG8gaWRlbnRpZnkgd2hpY2gKKyAgICAgICAgQ0dEYXRh
UHJvdmlkZXIgY3JlYXRlZCBieSBXZWJLaXQgaXMgcmVzcG9uc2libGUgKGlmIGFueSksIHdlIHdp
bGwgYWRkIG91ciBvd24gdmVyc2lvbiBvZgorICAgICAgICBFUlJPUl9DR0RhdGFQcm92aWRlcl9C
dWZmZXJJc05vdEJpZ0Vub3VnaCwgY2FsbGVkIGF0IENHRGF0YVByb3ZpZGVyIGNyZWF0aW9uIHRp
bWUsIHdoaWNoIHNob3VsZAorICAgICAgICBnZW5lcmF0ZSBhIGNyYXNoIHdpdGhpbiB0aGUgcmVz
cG9uc2libGUgc3RhY2sgZnJhbWUuCisKKyAgICAgICAgKFRoaXMgYXNzdW1lcyB0aGF0IHRoZSBp
c3N1ZSBpcyB0aGUgd3Jvbmcgc2l6ZWQgYnVmZmVyIGF0IENHRGF0YVByb3ZpZGVyIGNyZWF0aW9u
IHRpbWUsIGFuZCBub3QKKyAgICAgICAgdGhhdCB0aGUgYnVmZmVyIGl0c2VsZiBpcyByZWNsYWlt
ZWQgYmV0d2VlbiBjcmVhdGlvbiB0aW1lIGFuZCBhY2Nlc3MuKQorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q6OnBhaW50VG9DYW52YXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVyQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdl
QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjp0b0NGRGF0YSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpjZkRhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkdMTGF5ZXIubW06CisgICAgICAgICgtW1dlYkdMTGF5ZXIgY29weUltYWdlU25h
cHNob3RXaXRoQ29sb3JTcGFjZTpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9Q
aXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNWUGl4ZWxCdWZm
ZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlBpeGVsQnVmZmVy
Q29uZm9ybWVyQ1Y6OmNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVV0aWxpdGllc0NHLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6dmVyaWZ5SW1hZ2VCdWZmZXJJc0JpZ0Vub3VnaCk6CisKIDIwMTgtMTAtMjYgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQgLXNldE92ZXJyaWRl
Um91dGVTaGFyaW5nUG9saWN5OnJvdXRpbmdDb250ZXh0VUlEOiBTUEkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTI2
NDI1NGM1Mzc1N2MwYWZkNzg2ODY5YWFmMzNjYjE0OTZjZDRlNS4uMmY3N2VlOGRmZDE4OWRjNGZj
MjFhZmQ2NTZhY2FlNzgwN2UwMzAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0x
MC0yNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBDUkFTSCBp
biBDb3JlR3JhcGhpY3M6IEVSUk9SX0NHRGF0YVByb3ZpZGVyX0J1ZmZlcklzTm90QmlnRW5vdWdo
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA5NTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJl
ZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZUJp
dG1hcDo6bWFrZUNHSW1hZ2UpOgorCiAyMDE4LTEwLTI2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IC1zZXRPdmVycmlkZVJvdXRlU2hhcmluZ1BvbGlj
eTpyb3V0aW5nQ29udGV4dFVJRDogU1BJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmMyZDcxZWZjNzcxNTdkZGUzZDM0NGYyYWZl
NDc5NjczNjE0NmE4My4uNDdkNmRiMzFlMzE2NjczZTUwN2Q5N2M1ODBmYjViYmQxZWVjZmM0NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDAxNiw2ICs0MDE2LDcgQEAKIAkJQ0QzQTQ5NUYxN0E5RDAxQjAwMjc0RTQyIC8qIE1l
ZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDNBNDk1NjE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3VyY2UuaCAqLzsgfTsKIAkJQ0Qz
QTQ5NjIxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzQTQ5NTkxN0E5RDAxQjAwMjc0RTQyIC8q
IFNvdXJjZUJ1ZmZlci5oICovOyB9OwogCQlDRDNBNDk2NTE3QTlEMDFCMDAyNzRFNDIgLyogU291
cmNlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QzQTQ5NUMxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3QuaCAqLzsg
fTsKKwkJQ0QzRTIxREQyMTgzNDQ0QTAwRTY2RjU1IC8qIEltYWdlVXRpbGl0aWVzQ0cuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEM0UyMURCMjE4MzNG
NTEwMEU2NkY1NSAvKiBJbWFnZVV0aWxpdGllc0NHLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QzRTI1MUMxODA0NkIwNjAwRTI3RjU2IC8qIEdy
aWRBcmVhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDNFMjUxQjE4MDQ2QjA2MDBFMjdGNTYgLyogR3JpZEFyZWEuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDNFMjUyNDE4MDQ2QkNEMDBFMjdGNTYg
LyogQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzRTI1MjIxODA0NkJDRDAwRTI3RjU2IC8qIENTU0dyaWRU
ZW1wbGF0ZUFyZWFzVmFsdWUuaCAqLzsgfTsKIAkJQ0Q0QUM1MkExNDk2QUU5QTAwODdDNEVGIC8q
IENvbXBvc2l0ZS53YXYgaW4gQ29weSBBdWRpbyBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q0QUM1MjgxNDk2QUUyRjAwODdDNEVGIC8qIENvbXBvc2l0ZS53
YXYgKi87IH07CkBAIC0xMzM0Miw2ICsxMzM0Myw3IEBACiAJCUNEM0E0OTVCMTdBOUQwMUIwMDI3
NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNvdXJjZUJ1ZmZlckxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDNBNDk1QzE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZmZXJMaXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEM0E0OTVEMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VC
dWZmZXJMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTb3VyY2VCdWZmZXJMaXN0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzRTIxREIyMTgzM0Y1MTAwRTY2RjU1
IC8qIEltYWdlVXRpbGl0aWVzQ0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VVdGlsaXRpZXNDRy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDNFMjUxQjE4MDQ2QjA2MDBFMjdGNTYg
LyogR3JpZEFyZWEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JpZEFyZWEu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QzRTI1MjExODA0NkJDRDAwRTI3RjU2
IC8qIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEM0UyNTIyMTgwNDZCQ0QwMEUyN0Y1NiAvKiBDU1NHcmlkVGVt
cGxhdGVBcmVhc1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0dy
aWRUZW1wbGF0ZUFyZWFzVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIz
ODk5LDYgKzIzOTAxLDcgQEAKIAkJCQk1NTVCODdFQjFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VE
ZWNvZGVyQ0cuaCAqLywKIAkJCQk0QjM0ODA5MjBFRUY1MEQ0MDBBQzFCNDEgLyogSW1hZ2VTb3Vy
Y2VDRy5oICovLAogCQkJCTRCMzQ4MDkxMEVFRjUwRDQwMEFDMUI0MSAvKiBJbWFnZVNvdXJjZUNH
TWFjLm1tICovLAorCQkJCUNEM0UyMURCMjE4MzNGNTEwMEU2NkY1NSAvKiBJbWFnZVV0aWxpdGll
c0NHLmggKi8sCiAJCQkJQjI3NTM1MzIwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50Q0cuY3Bw
ICovLAogCQkJCUIyNzUzNTMzMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0Q0cuY3BwICovLAog
CQkJCUIyNzUzNTM0MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRTaXplQ0cuY3BwICovLApAQCAtMjg4
MjQsNiArMjg4MjcsNyBAQAogCQkJCTRCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0MSAvKiBJbWFnZVNv
dXJjZUNHLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFRDE5MzIxNkQwNzk1MDA3NzVCMzMgLyog
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTU1MENCNDIxRTk1
NUUzQzAwMTExQUEwIC8qIEltYWdlVHlwZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEM0UyMURE
MjE4MzQ0NEEwMEU2NkY1NSAvKiBJbWFnZVV0aWxpdGllc0NHLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyNkY3NTZCMzFCM0I2NkY3MDAwNURENzkgLyogSW1tdXRhYmxlTkZBLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyNkY3NTZCNTFCM0I2OEYyMDAwNURENzkgLyogSW1tdXRhYmxlTkZBTm9kZUJ1aWxk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMTE4MEU2RTFEQTcwMEJGNjA4OCAvKiBJbXBs
aWNpdEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCmluZGV4
IGRkYjc0NGVlZTViMmI5OGE4ZjMzZWFjNTZlODI1NTFiODk3OWY4NTMuLmJmNGMxZjUzMDE4NTVm
Y2VhYTQ3OTRkMWE1MmM1YjMyNGM1YWEyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHRDRy5oIgogI2luY2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiSW1hZ2VVdGlsaXRp
ZXNDRy5oIgogCiAjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dDNETkVPTi5oIgpAQCAtNTE0LDkgKzUxNSwxNSBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjpwYWludFRvQ2FudmFzKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4ZWxzLCBj
b25zdCBJbgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIG1lbWNweShjb3BpZWRQaXhl
bHMsIGltYWdlUGl4ZWxzLCByb3dCeXRlcyAqIGltYWdlU2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAg
IGRhdGFQcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoRGF0YSgwLCBj
b3BpZWRQaXhlbHMsIHJvd0J5dGVzICogaW1hZ2VTaXplLmhlaWdodCgpLCByZWxlYXNlSW1hZ2VE
YXRhKSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGRhdGFQcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRh
UHJvdmlkZXJDcmVhdGVXaXRoRGF0YSgwLCBpbWFnZVBpeGVscywgcm93Qnl0ZXMgKiBpbWFnZVNp
emUuaGVpZ2h0KCksIDApKTsKKworICAgICAgICBzaXplX3QgZGF0YVNpemUgPSByb3dCeXRlcyAq
IGltYWdlU2l6ZS5oZWlnaHQoKTsKKyAgICAgICAgdmVyaWZ5SW1hZ2VCdWZmZXJJc0JpZ0Vub3Vn
aChjb3BpZWRQaXhlbHMsIGRhdGFTaXplKTsKKyAgICAgICAgZGF0YVByb3ZpZGVyID0gYWRvcHRD
RihDR0RhdGFQcm92aWRlckNyZWF0ZVdpdGhEYXRhKDAsIGNvcGllZFBpeGVscywgZGF0YVNpemUs
IHJlbGVhc2VJbWFnZURhdGEpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzaXplX3QgZGF0YVNp
emUgPSByb3dCeXRlcyAqIGltYWdlU2l6ZS5oZWlnaHQoKTsKKyAgICAgICAgdmVyaWZ5SW1hZ2VC
dWZmZXJJc0JpZ0Vub3VnaChpbWFnZVBpeGVscywgZGF0YVNpemUpOworICAgICAgICBkYXRhUHJv
dmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEoMCwgaW1hZ2VQaXhl
bHMsIGRhdGFTaXplLCAwKSk7CisgICAgfQogCiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNn
SW1hZ2UgPSBhZG9wdENGKENHSW1hZ2VDcmVhdGUoaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6
ZS5oZWlnaHQoKSwgOCwgMzIsIHJvd0J5dGVzLCBzUkdCQ29sb3JTcGFjZVJlZigpLCBrQ0dJbWFn
ZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0LAogICAg
ICAgICBkYXRhUHJvdmlkZXIuZ2V0KCksIDAsIGZhbHNlLCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZh
dWx0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVyQ0cuY3BwCmluZGV4IDAxOWE3NWE4NmYwM2E5YTY3OGE2MDI1OGJhNDNmMjY2ODU2
ZjNkYTEuLjdmYTc3NDg5Y2Q1NTlhN2NlMjVlODBiZGRmZTU4MWQ1ZDA1OGJhNzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cu
Y3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKKyNpbmNs
dWRlICJJbWFnZVV0aWxpdGllc0NHLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUg
Ik1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlIDxtYXRoLmg+CkBAIC0xODAsNiArMTgxLDcg
QEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDR0NvbG9yU3AKICAgICAgICAgICAgIGZhc3RGcmVlKGNvbnN0X2Nh
c3Q8dm9pZCo+KGRhdGEpKTsKICAgICAgICAgfTsKICAgICAgICAgLy8gQ3JlYXRlIGEgbGl2ZSBp
bWFnZSB0aGF0IHdyYXBzIHRoZSBkYXRhLgorICAgICAgICB2ZXJpZnlJbWFnZUJ1ZmZlcklzQmln
RW5vdWdoKG1fZGF0YS5kYXRhLCBudW1CeXRlcy51bnNhZmVHZXQoKSk7CiAgICAgICAgIG1fZGF0
YS5kYXRhUHJvdmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEoMCwg
bV9kYXRhLmRhdGEsIG51bUJ5dGVzLnVuc2FmZUdldCgpLCByZWxlYXNlSW1hZ2VEYXRhKSk7CiAK
ICAgICAgICAgaWYgKCFjZ0NvbnRleHQpCkBAIC01NDQsNiArNTQ2LDcgQEAgUmV0YWluUHRyPENG
RGF0YVJlZj4gSW1hZ2VCdWZmZXI6OnRvQ0ZEYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0
ZDo6b3B0aW9uYWwKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIHNpemVf
dCBkYXRhU2l6ZSA9IDQgKiBsb2dpY2FsU2l6ZSgpLndpZHRoKCkgKiBsb2dpY2FsU2l6ZSgpLmhl
aWdodCgpOworICAgICAgICB2ZXJpZnlJbWFnZUJ1ZmZlcklzQmlnRW5vdWdoKHByZW11bHRpcGxp
ZWREYXRhLT5kYXRhKCksIGRhdGFTaXplKTsKICAgICAgICAgYXV0byBkYXRhUHJvdmlkZXIgPSBh
ZG9wdENGKENHRGF0YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEobnVsbHB0ciwgcHJlbXVsdGlwbGll
ZERhdGEtPmRhdGEoKSwgZGF0YVNpemUsIG51bGxwdHIpKTsKICAgICAgICAgaWYgKCFkYXRhUHJv
dmlkZXIpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTYwNSw2ICs2MDgsNyBAQCBz
dGF0aWMgUmV0YWluUHRyPENGRGF0YVJlZj4gY2ZEYXRhKGNvbnN0IEltYWdlRGF0YSYgc291cmNl
LCBjb25zdCBTdHJpbmcmIG1pbWVUeQogICAgICAgICBkYXRhID0gcHJlbXVsdGlwbGllZERhdGEu
ZGF0YSgpOwogICAgIH0KIAorICAgIHZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91Z2goZGF0YSwg
NCAqIHNvdXJjZS53aWR0aCgpICogc291cmNlLmhlaWdodCgpKTsKICAgICBhdXRvIGRhdGFQcm92
aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoRGF0YSgwLCBkYXRhLCA0ICog
c291cmNlLndpZHRoKCkgKiBzb3VyY2UuaGVpZ2h0KCksIDApKTsKICAgICBpZiAoIWRhdGFQcm92
aWRlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVV0aWxpdGllc0NHLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVV0aWxpdGllc0NHLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc2
YzNjZmRiZGZiYjgzZDJjMDJiMjA3ZTZmZjkwN2ZjNTIxMGQ5OAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlVXRpbGl0aWVzQ0cuaApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitpbmxpbmUg
dWludDhfdCB2ZXJpZnlJbWFnZUJ1ZmZlcklzQmlnRW5vdWdoKGNvbnN0IHZvaWQqIGJ1ZmZlciwg
c2l6ZV90IGJ1ZmZlclNpemUpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoYnVmZmVyU2l6ZSk7CisK
KyAgICB1aW50cHRyX3QgbGFzdEJ5dGU7CisgICAgYm9vbCBpc1NhZmUgPSBXVEY6OnNhZmVBZGQo
KHVpbnRwdHJfdClidWZmZXIsIGJ1ZmZlclNpemUgLSAxLCBsYXN0Qnl0ZSk7CisgICAgUkVMRUFT
RV9BU1NFUlQoaXNTYWZlKTsKKworICAgIHJldHVybiAqKHVpbnQ4X3QqKWxhc3RCeXRlOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJHTExheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
R0xMYXllci5tbQppbmRleCA4ZWUzNDhkODk5ODYzNDEzZDZiNjcxMzc2ZTViMWRhNTRjYjEzNzYz
Li5jMGQwYmY3NWI1NjczYmVjMTU2ZjA2ZmIwODNiY2NjMDg1NzU0MTk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KQEAg
LTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJH
cmFwaGljc0xheWVyLmgiCiAjaW1wb3J0ICJHcmFwaGljc0xheWVyQ0EuaCIKKyNpbXBvcnQgIklt
YWdlVXRpbGl0aWVzQ0cuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllci5oIgogI2ltcG9ydCA8
cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDx3dGYvRmFzdE1hbGxvYy5o
PgpAQCAtMTEwLDYgKzExMSw3IEBAIC0gKENHSW1hZ2VSZWYpY29weUltYWdlU25hcHNob3RXaXRo
Q29sb3JTcGFjZTooQ0dDb2xvclNwYWNlUmVmKWNvbG9yU3BhY2UKICAgICBnbFBpeGVsU3RvcmVp
KEdMX1BBQ0tfUk9XX0xFTkdUSCwgcm93Qnl0ZXMgLyA0KTsKICAgICBnbFJlYWRQaXhlbHMoMCwg
MCwgd2lkdGgsIGhlaWdodCwgR0xfQkdSQSwgR0xfVU5TSUdORURfSU5UXzhfOF84XzhfUkVWLCBk
YXRhKTsKIAorICAgIFdlYkNvcmU6OnZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91Z2goKHVpbnQ4
X3QqKWRhdGEsIGRhdGFTaXplKTsKICAgICBDR0RhdGFQcm92aWRlclJlZiBwcm92aWRlciA9IENH
RGF0YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEoMCwgZGF0YSwgZGF0YVNpemUsIGZyZWVEYXRhKTsK
ICAgICBDR0ltYWdlUmVmIGltYWdlID0gQ0dJbWFnZUNyZWF0ZSh3aWR0aCwgaGVpZ2h0LCA4LCAz
Miwgcm93Qnl0ZXMsIGltYWdlQ29sb3JTcGFjZS5nZXQoKSwKICAgICAgICAga0NHSW1hZ2VBbHBo
YVByZW11bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9zdCwgcHJvdmlkZXIs
IDAsIHRydWUsIGtDR1JlbmRlcmluZ0ludGVudERlZmF1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1l
ckNWLmNwcAppbmRleCBlN2UxMWM3NjViYWY2MWM1MzE2NWMwZjZmZGMzNDg3MDI1MmI5NDA4Li4y
YjU4MmVjMTYzZjczZTkxOTk3MmRjYmE4N2VjYjAwZjc5MTliYWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNv
bmZvcm1lckNWLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEhBVkUoQ09SRV9WSURFTykKIAog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dENHLmgiCisjaW5jbHVkZSAiSW1hZ2VVdGlsaXRpZXND
Ry5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4K
IApAQCAtODIsNiArODMsNyBAQCBzdGF0aWMgY29uc3Qgdm9pZCogQ1ZQaXhlbEJ1ZmZlckdldEJ5
dGVQb2ludGVyQ2FsbGJhY2sodm9pZCogcmVmY29uKQogCiAgICAgKytpbmZvLT5sb2NrQ291bnQ7
CiAgICAgdm9pZCogYWRkcmVzcyA9IENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcyhpbmZvLT5w
aXhlbEJ1ZmZlci5nZXQoKSk7CisgICAgdmVyaWZ5SW1hZ2VCdWZmZXJJc0JpZ0Vub3VnaChhZGRy
ZXNzLCBDVlBpeGVsQnVmZmVyR2V0RGF0YVNpemUoaW5mby0+cGl4ZWxCdWZmZXIuZ2V0KCkpKTsK
ICAgICBSRUxFQVNFX0xPR19JTkZPKE1lZGlhLCAiQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVy
Q2FsbGJhY2soKSByZXR1cm5pbmcgYnl0ZVBvaW50ZXI6ICVwLCBzaXplOiAlenUiLCBhZGRyZXNz
LCBDVlBpeGVsQnVmZmVyR2V0RGF0YVNpemUoaW5mby0+cGl4ZWxCdWZmZXIuZ2V0KCkpKTsKICAg
ICByZXR1cm4gYWRkcmVzczsKIH0KQEAgLTE3Nyw2ICsxNzksMTAgQEAgUmV0YWluUHRyPENHSW1h
Z2VSZWY+IFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y6OmNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVy
KENWUGl4ZWwKICAgICBzaXplX3QgYnl0ZXNQZXJSb3cgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQ
ZXJSb3coYnVmZmVyLmdldCgpKTsKICAgICBzaXplX3QgYnl0ZUxlbmd0aCA9IENWUGl4ZWxCdWZm
ZXJHZXREYXRhU2l6ZShidWZmZXIuZ2V0KCkpOwogCisgICAgQVNTRVJUKGJ5dGVMZW5ndGgpOwor
ICAgIGlmICghYnl0ZUxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKICAgICBDVlBp
eGVsQnVmZmVySW5mbyogaW5mbyA9IG5ldyBDVlBpeGVsQnVmZmVySW5mbygpOwogICAgIGluZm8t
PnBpeGVsQnVmZmVyID0gV1RGTW92ZShidWZmZXIpOwogICAgIGluZm8tPmxvY2tDb3VudCA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHAKaW5kZXgg
ODYyNjE1N2Y0MDc1OTg3NTU2YWQ1Mjc5NDczZjZjYWUwYTFlNmU5YS4uNmEyMTVjN2FjNDVjYjQw
MjNkOTQ2MzExYTU5NTYzMWM5YzA0NTBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2Nn
L1NoYXJlYWJsZUJpdG1hcENHLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSA8V2Vi
Q29yZS9CaXRtYXBJbWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVXRpbGl0aWVzQ0cuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NT
UEkuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oPgpAQCAtMTIwLDYg
KzEyMSw3IEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBTaGFyZWFibGVCaXRtYXA6Om1ha2VDR0lt
YWdlQ29weSgpCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gU2hhcmVhYmxlQml0bWFwOjptYWtlQ0dJ
bWFnZSgpCiB7CiAgICAgcmVmKCk7IC8vIEJhbGFuY2VkIGJ5IGRlcmVmIGluIHJlbGVhc2VEYXRh
UHJvdmlkZXJEYXRhLgorICAgIHZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91Z2goZGF0YSgpLCBz
aXplSW5CeXRlcygpKTsKICAgICBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXI+IGRhdGFQcm92aWRl
ciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoRGF0YSh0aGlzLCBkYXRhKCksIHNp
emVJbkJ5dGVzKCksIHJlbGVhc2VEYXRhUHJvdmlkZXJEYXRhKSk7CiAgICAgcmV0dXJuIGNyZWF0
ZUNHSW1hZ2UoZGF0YVByb3ZpZGVyLmdldCgpKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353295</attachid>
            <date>2018-10-29 10:14:27 -0700</date>
            <delta_ts>2018-10-29 10:53:24 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-190954-20181029101426.patch</filename>
            <type>text/plain</type>
            <size>21165</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3Mzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJjZDk0MWQ5ZmE1ODQz
ODFmOTlmMDg1MTFkMTEyY2Q4MGQ1MTlhNy4uNDBjMjYyOWVjMTQyOTlhYjM4ODQxNTc2NWVkMTQ5
MDNlNDJiOGViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE4LTEwLTI2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIENSQVNIIGluIENvcmVHcmFw
aGljczogRVJST1JfQ0dEYXRhUHJvdmlkZXJfQnVmZmVySXNOb3RCaWdFbm91Z2gKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDk1NAorCisgICAgICAg
IFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBDcmFzaCBhbmFseWl0aWNzIHNo
b3cgdGhhdCBXZWJQcm9jZXNzIHdpbGwgY3Jhc2ggaW4gRVJST1JfQ0dEYXRhUHJvdmlkZXJfQnVm
ZmVySXNOb3RCaWdFbm91Z2gsCisgICAgICAgIHdoaWNoIGF0dGVtcHRzIHRvIGZldGNoIHRoZSBs
YXN0IGJ5dGUgaW4gdGhlIGltYWdlIGJ1ZmZlciBpbiBvcmRlciB0byB2ZXJpZnkgdGhhdCB0aGUg
ZW50aXJlCisgICAgICAgIGJ1ZmZlciBpcyByZWFkYWJsZS4gVW5mb3J0dW5hdGVseSwgdGhlIHN0
YWNrIHRyYWNlIGdlbmVyYXRlZCBieSB0aGlzIGNyYXNoIGRvZXMgbm90IGlkZW50aWZ5CisgICAg
ICAgIHdoYXQgQ0dEYXRhUHJvdmlkZXIgaXMgcmVzcG9uc2libGUgZm9yIHRoZSBub3QtYmlnLWVu
b3VnaCBidWZmZXIuIEluIG9yZGVyIHRvIGlkZW50aWZ5IHdoaWNoCisgICAgICAgIENHRGF0YVBy
b3ZpZGVyIGNyZWF0ZWQgYnkgV2ViS2l0IGlzIHJlc3BvbnNpYmxlIChpZiBhbnkpLCB3ZSB3aWxs
IGFkZCBvdXIgb3duIHZlcnNpb24gb2YKKyAgICAgICAgRVJST1JfQ0dEYXRhUHJvdmlkZXJfQnVm
ZmVySXNOb3RCaWdFbm91Z2gsIGNhbGxlZCBhdCBDR0RhdGFQcm92aWRlciBjcmVhdGlvbiB0aW1l
LCB3aGljaCBzaG91bGQKKyAgICAgICAgZ2VuZXJhdGUgYSBjcmFzaCB3aXRoaW4gdGhlIHJlc3Bv
bnNpYmxlIHN0YWNrIGZyYW1lLgorCisgICAgICAgIChUaGlzIGFzc3VtZXMgdGhhdCB0aGUgaXNz
dWUgaXMgdGhlIHdyb25nIHNpemVkIGJ1ZmZlciBhdCBDR0RhdGFQcm92aWRlciBjcmVhdGlvbiB0
aW1lLCBhbmQgbm90CisgICAgICAgIHRoYXQgdGhlIGJ1ZmZlciBpdHNlbGYgaXMgcmVjbGFpbWVk
IGJldHdlZW4gY3JlYXRpb24gdGltZSBhbmQgYWNjZXNzLikKKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHQzRENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpwYWludFRvQ2FudmFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6dG9DRkRhdGEgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Y2ZEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9XZWJHTExheWVyLm1tOgorICAgICAgICAoLVtXZWJHTExheWVyIGNvcHlJbWFnZVNuYXBz
aG90V2l0aENvbG9yU3BhY2U6XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4
ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVy
R2V0Qnl0ZVBvaW50ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNv
bmZvcm1lckNWOjpjcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VVdGlsaXRpZXNDRy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OnZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91Z2gpOgorCiAyMDE4LTEwLTI2ICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0IC1zZXRPdmVycmlkZVJv
dXRlU2hhcmluZ1BvbGljeTpyb3V0aW5nQ29udGV4dFVJRDogU1BJCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyNjQy
NTRjNTM3NTdjMGFmZDc4Njg2OWFhZjMzY2IxNDk2Y2Q0ZTUuLjQ1YzhhNzA0ZTlmNzljMWQ0YmQ3
ZjE1YTJkMzZhMTJhMzBkNmEzODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTAt
MjYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQ1JBU0ggaW4g
Q29yZUdyYXBoaWNzOiBFUlJPUl9DR0RhdGFQcm92aWRlcl9CdWZmZXJJc05vdEJpZ0Vub3VnaAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwOTU0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogU2hhcmVkL2Nn
L1NoYXJlYWJsZUJpdG1hcENHLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVhYmxlQml0bWFw
OjptYWtlQ0dJbWFnZSk6CisKIDIwMTgtMTAtMjYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRvcHQgLXNldE92ZXJyaWRlUm91dGVTaGFyaW5nUG9saWN5OnJv
dXRpbmdDb250ZXh0VUlEOiBTUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2YzJkNzFlZmM3NzE1N2RkZTNkMzQ0ZjJhZmU0Nzk2
NzM2MTQ2YTgzLi4wZTFlYzAyMWM4M2Y5ODkwYzNhNDU3OWQ1MjlhZThlMTVmZjk5OGVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC00MDE2LDYgKzQwMTYsNyBAQAogCQlDRDNBNDk1RjE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFT
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
M0E0OTU2MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5oICovOyB9OwogCQlDRDNBNDk2
MjE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNBNDk1OTE3QTlEMDFCMDAyNzRFNDIgLyogU291
cmNlQnVmZmVyLmggKi87IH07CiAJCUNEM0E0OTY1MTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VC
dWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDNBNDk1QzE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5oICovOyB9Owor
CQlDRDNFMjFERDIxODM0NDRBMDBFNjZGNTUgLyogSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzRTIxREIyMTgz
M0Y1MTAwRTY2RjU1IC8qIEltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDNFMjUxQzE4MDQ2QjA2MDBFMjdG
NTYgLyogR3JpZEFyZWEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEM0UyNTFCMTgwNDZCMDYwMEUyN0Y1NiAvKiBHcmlkQXJlYS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEM0UyNTI0MTgwNDZCQ0Qw
MEUyN0Y1NiAvKiBDU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNFMjUyMjE4MDQ2QkNEMDBFMjdGNTYgLyog
Q1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5oICovOyB9OwogCQlDRDRBQzUyQTE0OTZBRTlBMDA4
N0M0RUYgLyogQ29tcG9zaXRlLndhdiBpbiBDb3B5IEF1ZGlvIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDRBQzUyODE0OTZBRTJGMDA4N0M0RUYgLyogQ29t
cG9zaXRlLndhdiAqLzsgfTsKQEAgLTQwMjgsNiArNDAyOSw3IEBACiAJCUNENTRBNzYzMTgwRjlG
NzAwMEIwNzZDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NEE3NjExODBGOUY3
MDAwQjA3NkM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggKi87IH07
CiAJCUNENTU5NjkxMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NTk2OEYxNDc1
QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgKi87IH07CiAJCUNENTU5Njky
MTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTU5NjkwMTQ3NUI2NzgwMDFEMEJEMCAv
KiBBdWRpb0ZpbGVSZWFkZXJJT1MuaCAqLzsgfTsKKwkJQ0Q1ODk0OTUyMTg3NDA2NDAwNEY0MjRB
IC8qIEltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1ODk0OTMyMTg3NDA2NDAwNEY0MjRBIC8qIEltYWdlQnVm
ZmVyVXRpbGl0aWVzQ0cuY3BwICovOyB9OwogCQlDRDU4OTZFMjFDRDJCMTUxMDBCM0JDQzggLyog
V2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENENTg5NkUwMUNEMkIxNTEwMEIzQkNDOCAvKiBXZWJQbGF5YmFj
a0NvbnRyb2xzTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUNENUQyNzc4MUU4MzE4RTAwMEQ4MEEzRCAvKiBXZWJDb3JlRGVjb21wcmVz
c2lvblNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENUQyNzc2MUU4MzE4RTAwMEQ4MEEzRCAvKiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b24uaCAqLzsgfTsKIAkJQ0Q1RTVCNUYxQTE1Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVF
NUI1RTFBMTVDRTU0MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTMzNDIsNiArMTMzNDQsNyBA
QAogCQlDRDNBNDk1QjE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3VyY2VCdWZmZXJMaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QzQTQ5NUMxN0E5RDAxQjAwMjc0RTQyIC8q
IFNvdXJjZUJ1ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291
cmNlQnVmZmVyTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDNBNDk1RDE3
QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU291cmNlQnVmZmVyTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEM0UyMURCMjE4MzNGNTEwMEU2NkY1NSAvKiBJbWFnZUJ1ZmZlclV0aWxpdGllc0NHLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0QzRTI1MUIxODA0NkIwNjAwRTI3RjU2IC8qIEdyaWRBcmVhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyaWRBcmVhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEM0UyNTIxMTgwNDZCQ0QwMEUyN0Y1NiAvKiBDU1NHcmlkVGVtcGxhdGVB
cmVhc1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0dy
aWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDNFMjUyMjE4MDQ2QkNEMDBFMjdGNTYgLyogQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzM2MCw2ICsxMzM2Myw3IEBACiAJ
CUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TZXNzaW9uTWFjLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NTk2OEYxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlv
RmlsZVJlYWRlcklPUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
dWRpb0ZpbGVSZWFkZXJJT1MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU1
OTY5MDE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvRmlsZVJlYWRlcklPUy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRDU4OTQ5MzIxODc0MDY0MDA0RjQyNEEgLyogSW1hZ2VCdWZmZXJV
dGlsaXRpZXNDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUJ1ZmZlclV0aWxpdGllc0NH
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1ODk2REYxQ0QyQjE1MTAwQjNC
Q0M4IC8qIFdlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTg5NkUwMUNEMkIxNTEwMEIzQkNDOCAvKiBXZWJQ
bGF5YmFja0NvbnRyb2xzTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDVEMjc3NTFFODMxOEUwMDBEODBBM0QgLyogV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM4
OTUsNiArMjM4OTksOCBAQAogCQkJCUIyQTEwQjkzMEIzODE4RDcwMDA5OUFBNCAvKiBJbWFnZUJ1
ZmZlckNHLmNwcCAqLywKIAkJCQkyMjkyQjI3QjEzNTY2Njk0MDBDRjExRUYgLyogSW1hZ2VCdWZm
ZXJEYXRhQ0cuY3BwICovLAogCQkJCTIyQkQ5RjgwMTM1MzY0RkUwMDlCRDEwMiAvKiBJbWFnZUJ1
ZmZlckRhdGFDRy5oICovLAorCQkJCUNEM0UyMURCMjE4MzNGNTEwMEU2NkY1NSAvKiBJbWFnZUJ1
ZmZlclV0aWxpdGllc0NHLmggKi8sCisJCQkJQ0Q1ODk0OTMyMTg3NDA2NDAwNEY0MjRBIC8qIElt
YWdlQnVmZmVyVXRpbGl0aWVzQ0cuY3BwICovLAogCQkJCTU1NUI4N0VBMUNBQUYwQUIwMDM0OTQy
NSAvKiBJbWFnZURlY29kZXJDRy5jcHAgKi8sCiAJCQkJNTU1Qjg3RUIxQ0FBRjBBQjAwMzQ5NDI1
IC8qIEltYWdlRGVjb2RlckNHLmggKi8sCiAJCQkJNEIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8q
IEltYWdlU291cmNlQ0cuaCAqLywKQEAgLTI4ODI0LDYgKzI4ODMwLDcgQEAKIAkJCQk0QjM0ODA5
NDBFRUY1MEQ0MDBBQzFCNDEgLyogSW1hZ2VTb3VyY2VDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDc4RUQxOTMyMTZEMDc5NTAwNzc1QjMzIC8qIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTU1NTBDQjQyMUU5NTVFM0MwMDExMUFBMCAvKiBJbWFnZVR5cGVzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlDRDNFMjFERDIxODM0NDRBMDBFNjZGNTUgLyogSW1hZ2VCdWZm
ZXJVdGlsaXRpZXNDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZGNzU2QjMxQjNCNjZGNzAwMDVE
RDc5IC8qIEltbXV0YWJsZU5GQS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZGNzU2QjUxQjNCNjhG
MjAwMDVERDc5IC8qIEltbXV0YWJsZU5GQU5vZGVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMTZGRTExODBFNkUxREE3MDBCRjYwODggLyogSW1wbGljaXRBbmltYXRpb24uaCBpbiBIZWFk
ZXJzICovLApAQCAtMzI2NDQsNiArMzI2NTEsNyBAQAogCQkJCURFNUY4NjBBMUZBMjM4NkEwMDZE
QjYzQSAvKiBVbmlmaWVkU291cmNlNDc1LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFNUY4NjBC
MUZBMjM4NkEwMDZEQjYzQSAvKiBVbmlmaWVkU291cmNlNDc2LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCURFNUY4NjBDMUZBMjM4NkEwMDZEQjYzQSAvKiBVbmlmaWVkU291cmNlNDc3LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUNENTg5NDk1MjE4NzQwNjQwMDRGNDI0QSAvKiBJbWFnZUJ1ZmZlclV0
aWxpdGllc0NHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFNUY4NjBEMUZBMjM4NkIwMDZEQjYz
QSAvKiBVbmlmaWVkU291cmNlNDc4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFNUY4NjBFMUZB
MjM4NkIwMDZEQjYzQSAvKiBVbmlmaWVkU291cmNlNDc5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CURFNUY4NjBGMUZBMjM4NkIwMDZEQjYzQSAvKiBVbmlmaWVkU291cmNlNDgwLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
R3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAppbmRleCBkZGI3NDRlZWU1YjJiOThhOGYzM2Vh
YzU2ZTgyNTUxYjg5NzlmODUzLi44N2M5OTA3OWJhMGZhMTQ1MzJlZjI1Mzc2YmEyNTAyNjhhYzA5
NWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHQzRENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUg
IkJpdG1hcEltYWdlLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbmNsdWRl
ICJJbWFnZS5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuaCIKIAogI2lmIEhB
VkUoQVJNX05FT05fSU5UUklOU0lDUykKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRE5FT04u
aCIKQEAgLTUxNCw5ICs1MTUsMTUgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRUb0Nh
bnZhcyhjb25zdCB1bnNpZ25lZCBjaGFyKiBpbWFnZVBpeGVscywgY29uc3QgSW4KICAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICBtZW1jcHkoY29waWVkUGl4ZWxzLCBpbWFnZVBpeGVscywg
cm93Qnl0ZXMgKiBpbWFnZVNpemUuaGVpZ2h0KCkpOwotICAgICAgICBkYXRhUHJvdmlkZXIgPSBh
ZG9wdENGKENHRGF0YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEoMCwgY29waWVkUGl4ZWxzLCByb3dC
eXRlcyAqIGltYWdlU2l6ZS5oZWlnaHQoKSwgcmVsZWFzZUltYWdlRGF0YSkpOwotICAgIH0gZWxz
ZQotICAgICAgICBkYXRhUHJvdmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3ZpZGVyQ3JlYXRlV2l0
aERhdGEoMCwgaW1hZ2VQaXhlbHMsIHJvd0J5dGVzICogaW1hZ2VTaXplLmhlaWdodCgpLCAwKSk7
CisKKyAgICAgICAgc2l6ZV90IGRhdGFTaXplID0gcm93Qnl0ZXMgKiBpbWFnZVNpemUuaGVpZ2h0
KCk7CisgICAgICAgIHZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91Z2goY29waWVkUGl4ZWxzLCBk
YXRhU2l6ZSk7CisgICAgICAgIGRhdGFQcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJD
cmVhdGVXaXRoRGF0YSgwLCBjb3BpZWRQaXhlbHMsIGRhdGFTaXplLCByZWxlYXNlSW1hZ2VEYXRh
KSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2l6ZV90IGRhdGFTaXplID0gcm93Qnl0ZXMgKiBp
bWFnZVNpemUuaGVpZ2h0KCk7CisgICAgICAgIHZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91Z2go
aW1hZ2VQaXhlbHMsIGRhdGFTaXplKTsKKyAgICAgICAgZGF0YVByb3ZpZGVyID0gYWRvcHRDRihD
R0RhdGFQcm92aWRlckNyZWF0ZVdpdGhEYXRhKDAsIGltYWdlUGl4ZWxzLCBkYXRhU2l6ZSwgMCkp
OworICAgIH0KIAogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjZ0ltYWdlID0gYWRvcHRDRihD
R0ltYWdlQ3JlYXRlKGltYWdlU2l6ZS53aWR0aCgpLCBpbWFnZVNpemUuaGVpZ2h0KCksIDgsIDMy
LCByb3dCeXRlcywgc1JHQkNvbG9yU3BhY2VSZWYoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxp
ZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9zdCwKICAgICAgICAgZGF0YVByb3ZpZGVy
LmdldCgpLCAwLCBmYWxzZSwga0NHUmVuZGVyaW5nSW50ZW50RGVmYXVsdCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcApp
bmRleCAwMTlhNzVhODZmMDNhOWE2NzhhNjAyNThiYTQzZjI2Njg1NmYzZGExLi42ZDQwODk1MTQ5
OTc5MzYxZDc5YjhkODVkNjk1NzU4MzczZjI5Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcApAQCAtMzMsNiArMzMs
NyBAQAogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZl
clV0aWxpdGllc0NHLmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSW50UmVj
dC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKQEAgLTE4MCw2ICsxODEsNyBAQCBJ
bWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENHQ29sb3JTcAogICAgICAgICAgICAgZmFzdEZyZWUoY29uc3RfY2FzdDx2
b2lkKj4oZGF0YSkpOwogICAgICAgICB9OwogICAgICAgICAvLyBDcmVhdGUgYSBsaXZlIGltYWdl
IHRoYXQgd3JhcHMgdGhlIGRhdGEuCisgICAgICAgIHZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91
Z2gobV9kYXRhLmRhdGEsIG51bUJ5dGVzLnVuc2FmZUdldCgpKTsKICAgICAgICAgbV9kYXRhLmRh
dGFQcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoRGF0YSgwLCBtX2Rh
dGEuZGF0YSwgbnVtQnl0ZXMudW5zYWZlR2V0KCksIHJlbGVhc2VJbWFnZURhdGEpKTsKIAogICAg
ICAgICBpZiAoIWNnQ29udGV4dCkKQEAgLTU0NCw2ICs1NDYsNyBAQCBSZXRhaW5QdHI8Q0ZEYXRh
UmVmPiBJbWFnZUJ1ZmZlcjo6dG9DRkRhdGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpv
cHRpb25hbAogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAgc2l6ZV90IGRh
dGFTaXplID0gNCAqIGxvZ2ljYWxTaXplKCkud2lkdGgoKSAqIGxvZ2ljYWxTaXplKCkuaGVpZ2h0
KCk7CisgICAgICAgIHZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91Z2gocHJlbXVsdGlwbGllZERh
dGEtPmRhdGEoKSwgZGF0YVNpemUpOwogICAgICAgICBhdXRvIGRhdGFQcm92aWRlciA9IGFkb3B0
Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoRGF0YShudWxscHRyLCBwcmVtdWx0aXBsaWVkRGF0
YS0+ZGF0YSgpLCBkYXRhU2l6ZSwgbnVsbHB0cikpOwogICAgICAgICBpZiAoIWRhdGFQcm92aWRl
cikKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNjA1LDYgKzYwOCw3IEBAIHN0YXRp
YyBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBjZkRhdGEoY29uc3QgSW1hZ2VEYXRhJiBzb3VyY2UsIGNv
bnN0IFN0cmluZyYgbWltZVR5CiAgICAgICAgIGRhdGEgPSBwcmVtdWx0aXBsaWVkRGF0YS5kYXRh
KCk7CiAgICAgfQogCisgICAgdmVyaWZ5SW1hZ2VCdWZmZXJJc0JpZ0Vub3VnaChkYXRhLCA0ICog
c291cmNlLndpZHRoKCkgKiBzb3VyY2UuaGVpZ2h0KCkpOwogICAgIGF1dG8gZGF0YVByb3ZpZGVy
ID0gYWRvcHRDRihDR0RhdGFQcm92aWRlckNyZWF0ZVdpdGhEYXRhKDAsIGRhdGEsIDQgKiBzb3Vy
Y2Uud2lkdGgoKSAqIHNvdXJjZS5oZWlnaHQoKSwgMCkpOwogICAgIGlmICghZGF0YVByb3ZpZGVy
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODlkMDQzOWMyMTBkYjUwMWFjOTM5ZWIxMTQxNDg4MWVlZWM2NWIyNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVyVXRpbGl0aWVzQ0cuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5oIgorCisjaW5j
bHVkZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dWludDhfdCB2ZXJpZnlJbWFnZUJ1ZmZlcklzQmlnRW5vdWdoKGNvbnN0IHZvaWQqIGJ1ZmZlciwg
c2l6ZV90IGJ1ZmZlclNpemUpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoYnVmZmVyU2l6ZSk7CisK
KyAgICB1aW50cHRyX3QgbGFzdEJ5dGU7CisgICAgYm9vbCBpc1NhZmUgPSBXVEY6OnNhZmVBZGQo
KHVpbnRwdHJfdClidWZmZXIsIGJ1ZmZlclNpemUgLSAxLCBsYXN0Qnl0ZSk7CisgICAgUkVMRUFT
RV9BU1NFUlQoaXNTYWZlKTsKKworICAgIHJldHVybiAqKHVpbnQ4X3QqKWxhc3RCeXRlOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlclV0aWxpdGllc0NHLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlclV0aWxpdGllc0NHLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmUwYmY1MGRlMjdiNWRiY2Ey
Nzg4NzA5YTM1NTRmNmZhOWYyOWE5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuaApAQCAtMCwwICsx
LDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordWludDhfdCB2ZXJpZnlJbWFnZUJ1ZmZlcklzQmlnRW5vdWdoKGNvbnN0IHZvaWQqIGJ1ZmZl
ciwgc2l6ZV90IGJ1ZmZlclNpemUpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQppbmRleCA4ZWUzNDhkODk5ODYzNDEz
ZDZiNjcxMzc2ZTViMWRhNTRjYjEzNzYzLi44Y2M5ZmM0MjdjYTFhMTU2OGY0MzIyYWUyYzhjMmQ3
YTlhNzY3MWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9XZWJHTExheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkdMTGF5ZXIubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkdyYXBoaWNz
Q29udGV4dENHLmgiCiAjaW1wb3J0ICJHcmFwaGljc0xheWVyLmgiCiAjaW1wb3J0ICJHcmFwaGlj
c0xheWVyQ0EuaCIKKyNpbXBvcnQgIkltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuaCIKICNpbXBvcnQg
IlBsYXRmb3JtQ0FMYXllci5oIgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJ
Lmg+CiAjaW1wb3J0IDx3dGYvRmFzdE1hbGxvYy5oPgpAQCAtMTEwLDYgKzExMSw3IEBAIC0gKENH
SW1hZ2VSZWYpY29weUltYWdlU25hcHNob3RXaXRoQ29sb3JTcGFjZTooQ0dDb2xvclNwYWNlUmVm
KWNvbG9yU3BhY2UKICAgICBnbFBpeGVsU3RvcmVpKEdMX1BBQ0tfUk9XX0xFTkdUSCwgcm93Qnl0
ZXMgLyA0KTsKICAgICBnbFJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgR0xfQkdSQSwg
R0xfVU5TSUdORURfSU5UXzhfOF84XzhfUkVWLCBkYXRhKTsKIAorICAgIFdlYkNvcmU6OnZlcmlm
eUltYWdlQnVmZmVySXNCaWdFbm91Z2goKHVpbnQ4X3QqKWRhdGEsIGRhdGFTaXplKTsKICAgICBD
R0RhdGFQcm92aWRlclJlZiBwcm92aWRlciA9IENHRGF0YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEo
MCwgZGF0YSwgZGF0YVNpemUsIGZyZWVEYXRhKTsKICAgICBDR0ltYWdlUmVmIGltYWdlID0gQ0dJ
bWFnZUNyZWF0ZSh3aWR0aCwgaGVpZ2h0LCA4LCAzMiwgcm93Qnl0ZXMsIGltYWdlQ29sb3JTcGFj
ZS5nZXQoKSwKICAgICAgICAga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCB8IGtDR0Jp
dG1hcEJ5dGVPcmRlcjMySG9zdCwgcHJvdmlkZXIsIDAsIHRydWUsIGtDR1JlbmRlcmluZ0ludGVu
dERlZmF1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcAppbmRleCBlN2UxMWM3NjViYWY2
MWM1MzE2NWMwZjZmZGMzNDg3MDI1MmI5NDA4Li5lODQ1MGUwNDljNjVhNzgwNzlmM2ZlMjFlMGE0
ODAyNjhlZGM5NTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcApAQCAtMjksNiArMjks
NyBAQAogI2lmIEhBVkUoQ09SRV9WSURFTykKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dENH
LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIApAQCAtODIsNiArODMsNyBAQCBz
dGF0aWMgY29uc3Qgdm9pZCogQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJhY2sodm9p
ZCogcmVmY29uKQogCiAgICAgKytpbmZvLT5sb2NrQ291bnQ7CiAgICAgdm9pZCogYWRkcmVzcyA9
IENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcyhpbmZvLT5waXhlbEJ1ZmZlci5nZXQoKSk7Cisg
ICAgdmVyaWZ5SW1hZ2VCdWZmZXJJc0JpZ0Vub3VnaChhZGRyZXNzLCBDVlBpeGVsQnVmZmVyR2V0
RGF0YVNpemUoaW5mby0+cGl4ZWxCdWZmZXIuZ2V0KCkpKTsKICAgICBSRUxFQVNFX0xPR19JTkZP
KE1lZGlhLCAiQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJhY2soKSByZXR1cm5pbmcg
Ynl0ZVBvaW50ZXI6ICVwLCBzaXplOiAlenUiLCBhZGRyZXNzLCBDVlBpeGVsQnVmZmVyR2V0RGF0
YVNpemUoaW5mby0+cGl4ZWxCdWZmZXIuZ2V0KCkpKTsKICAgICByZXR1cm4gYWRkcmVzczsKIH0K
QEAgLTE3Nyw2ICsxNzksMTAgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IFBpeGVsQnVmZmVyQ29u
Zm9ybWVyQ1Y6OmNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWwKICAgICBzaXplX3Qg
Ynl0ZXNQZXJSb3cgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3coYnVmZmVyLmdldCgpKTsK
ICAgICBzaXplX3QgYnl0ZUxlbmd0aCA9IENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6ZShidWZmZXIu
Z2V0KCkpOwogCisgICAgQVNTRVJUKGJ5dGVMZW5ndGgpOworICAgIGlmICghYnl0ZUxlbmd0aCkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKICAgICBDVlBpeGVsQnVmZmVySW5mbyogaW5mbyA9
IG5ldyBDVlBpeGVsQnVmZmVySW5mbygpOwogICAgIGluZm8tPnBpeGVsQnVmZmVyID0gV1RGTW92
ZShidWZmZXIpOwogICAgIGluZm8tPmxvY2tDb3VudCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9jZy9TaGFyZWFibGVCaXRtYXBDRy5jcHAKaW5kZXggODYyNjE1N2Y0MDc1OTg3NTU2YWQ1
Mjc5NDczZjZjYWUwYTFlNmU5YS4uZTI2MzEzODM1ZGI3NWY3YjRhMWQ3NTQ0NDNhYjk3ZWI5MWFi
MzgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFw
Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9CaXRtYXBJbWFnZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU2Ny
ZWVuLmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbmNsdWRl
IDxwYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oPgpAQCAtMTIwLDYgKzEyMSw3IEBAIFJldGFp
blB0cjxDR0ltYWdlUmVmPiBTaGFyZWFibGVCaXRtYXA6Om1ha2VDR0ltYWdlQ29weSgpCiBSZXRh
aW5QdHI8Q0dJbWFnZVJlZj4gU2hhcmVhYmxlQml0bWFwOjptYWtlQ0dJbWFnZSgpCiB7CiAgICAg
cmVmKCk7IC8vIEJhbGFuY2VkIGJ5IGRlcmVmIGluIHJlbGVhc2VEYXRhUHJvdmlkZXJEYXRhLgor
ICAgIHZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91Z2goZGF0YSgpLCBzaXplSW5CeXRlcygpKTsK
ICAgICBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXI+IGRhdGFQcm92aWRlciA9IGFkb3B0Q0YoQ0dE
YXRhUHJvdmlkZXJDcmVhdGVXaXRoRGF0YSh0aGlzLCBkYXRhKCksIHNpemVJbkJ5dGVzKCksIHJl
bGVhc2VEYXRhUHJvdmlkZXJEYXRhKSk7CiAgICAgcmV0dXJuIGNyZWF0ZUNHSW1hZ2UoZGF0YVBy
b3ZpZGVyLmdldCgpKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353299</attachid>
            <date>2018-10-29 10:53:24 -0700</date>
            <delta_ts>2018-10-29 12:08:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>0001-CRASH-in-CoreGraphics-ERROR_CGDataProvider_BufferIsN.patch</filename>
            <type>text/plain</type>
            <size>23233</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">RnJvbSA4YzlkOGI4YzBkMGQ2ZDU1N2ZhNTQ3MmRhZTE0MGM5ZmY2NTk1MTE1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXIgTm9ibGUgPGplci5ub2JsZUBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMjYgT2N0IDIwMTggMTU6NTk6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvMl0gQ1JB
U0ggaW4gQ29yZUdyYXBoaWNzOgogRVJST1JfQ0dEYXRhUHJvdmlkZXJfQnVmZmVySXNOb3RCaWdF
bm91Z2gKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA5NTQKClJl
dmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KClNvdXJjZS9XZWJDb3JlOgoKQ3Jhc2ggYW5hbHlpdGlj
cyBzaG93IHRoYXQgV2ViUHJvY2VzcyB3aWxsIGNyYXNoIGluIEVSUk9SX0NHRGF0YVByb3ZpZGVy
X0J1ZmZlcklzTm90QmlnRW5vdWdoLAp3aGljaCBhdHRlbXB0cyB0byBmZXRjaCB0aGUgbGFzdCBi
eXRlIGluIHRoZSBpbWFnZSBidWZmZXIgaW4gb3JkZXIgdG8gdmVyaWZ5IHRoYXQgdGhlIGVudGly
ZQpidWZmZXIgaXMgcmVhZGFibGUuIFVuZm9ydHVuYXRlbHksIHRoZSBzdGFjayB0cmFjZSBnZW5l
cmF0ZWQgYnkgdGhpcyBjcmFzaCBkb2VzIG5vdCBpZGVudGlmeQp3aGF0IENHRGF0YVByb3ZpZGVy
IGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgbm90LWJpZy1lbm91Z2ggYnVmZmVyLiBJbiBvcmRlciB0
byBpZGVudGlmeSB3aGljaApDR0RhdGFQcm92aWRlciBjcmVhdGVkIGJ5IFdlYktpdCBpcyByZXNw
b25zaWJsZSAoaWYgYW55KSwgd2Ugd2lsbCBhZGQgb3VyIG93biB2ZXJzaW9uIG9mCkVSUk9SX0NH
RGF0YVByb3ZpZGVyX0J1ZmZlcklzTm90QmlnRW5vdWdoLCBjYWxsZWQgYXQgQ0dEYXRhUHJvdmlk
ZXIgY3JlYXRpb24gdGltZSwgd2hpY2ggc2hvdWxkCmdlbmVyYXRlIGEgY3Jhc2ggd2l0aGluIHRo
ZSByZXNwb25zaWJsZSBzdGFjayBmcmFtZS4KCihUaGlzIGFzc3VtZXMgdGhhdCB0aGUgaXNzdWUg
aXMgdGhlIHdyb25nIHNpemVkIGJ1ZmZlciBhdCBDR0RhdGFQcm92aWRlciBjcmVhdGlvbiB0aW1l
LCBhbmQgbm90CnRoYXQgdGhlIGJ1ZmZlciBpdHNlbGYgaXMgcmVjbGFpbWVkIGJldHdlZW4gY3Jl
YXRpb24gdGltZSBhbmQgYWNjZXNzLikKCiogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgoqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwOgooV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50VG9DYW52YXMpOgoqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwOgooV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVm
ZmVyKToKKFdlYkNvcmU6OkltYWdlQnVmZmVyOjp0b0NGRGF0YSBjb25zdCk6CihXZWJDb3JlOjpj
ZkRhdGEpOgoqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW06CigtW1dlYkdM
TGF5ZXIgY29weUltYWdlU25hcHNob3RXaXRoQ29sb3JTcGFjZTpdKToKKiBwbGF0Zm9ybS9ncmFw
aGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcDoKKFdlYkNvcmU6OkNWUGl4ZWxCdWZm
ZXJHZXRCeXRlUG9pbnRlckNhbGxiYWNrKToKKFdlYkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1Y6OmNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKToKKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZVV0aWxpdGllc0NHLmg6IEFkZGVkLgooV2ViQ29yZTo6dmVyaWZ5SW1hZ2VCdWZmZXJJc0Jp
Z0Vub3VnaCk6CgpTb3VyY2UvV2ViS2l0OgoKKiBTaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cu
Y3BwOgooV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6Om1ha2VDR0ltYWdlKToKLS0tCiBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgfCAzMyArKysrKysrKysrKysr
KwogLi4uL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIHwgIDggKysr
KwogLi4uL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwICAgICAgIHwgMTMgKysr
Ky0tCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAgICAgfCAgNCAr
KwogLi4uL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuY3BwICAgIHwgNDQgKysr
KysrKysrKysrKysrKysrKwogLi4uL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyVXRpbGl0aWVzQ0cu
aCAgICAgIHwgMzIgKysrKysrKysrKysrKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJHTExheWVyLm1tICAgICB8ICAyICsKIC4uLi9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZv
cm1lckNWLmNwcCAgICB8ICA2ICsrKwogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgIHwgMTAgKysrKysKIFNvdXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJs
ZUJpdG1hcENHLmNwcCB8ICAyICsKIDEwIGZpbGVzIGNoYW5nZWQsIDE1MSBpbnNlcnRpb25zKCsp
LCAzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuY3BwCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGls
aXRpZXNDRy5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU2YmYwYTk0YWNjLi44OWM1NGExY2QxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE4LTEwLTI2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgorCisgICAgICAgIENSQVNIIGluIENvcmVHcmFwaGljczogRVJST1JfQ0dEYXRh
UHJvdmlkZXJfQnVmZmVySXNOb3RCaWdFbm91Z2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDk1NAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICBDcmFzaCBhbmFseWl0aWNzIHNob3cgdGhhdCBXZWJQcm9jZXNz
IHdpbGwgY3Jhc2ggaW4gRVJST1JfQ0dEYXRhUHJvdmlkZXJfQnVmZmVySXNOb3RCaWdFbm91Z2gs
CisgICAgICAgIHdoaWNoIGF0dGVtcHRzIHRvIGZldGNoIHRoZSBsYXN0IGJ5dGUgaW4gdGhlIGlt
YWdlIGJ1ZmZlciBpbiBvcmRlciB0byB2ZXJpZnkgdGhhdCB0aGUgZW50aXJlCisgICAgICAgIGJ1
ZmZlciBpcyByZWFkYWJsZS4gVW5mb3J0dW5hdGVseSwgdGhlIHN0YWNrIHRyYWNlIGdlbmVyYXRl
ZCBieSB0aGlzIGNyYXNoIGRvZXMgbm90IGlkZW50aWZ5CisgICAgICAgIHdoYXQgQ0dEYXRhUHJv
dmlkZXIgaXMgcmVzcG9uc2libGUgZm9yIHRoZSBub3QtYmlnLWVub3VnaCBidWZmZXIuIEluIG9y
ZGVyIHRvIGlkZW50aWZ5IHdoaWNoCisgICAgICAgIENHRGF0YVByb3ZpZGVyIGNyZWF0ZWQgYnkg
V2ViS2l0IGlzIHJlc3BvbnNpYmxlIChpZiBhbnkpLCB3ZSB3aWxsIGFkZCBvdXIgb3duIHZlcnNp
b24gb2YKKyAgICAgICAgRVJST1JfQ0dEYXRhUHJvdmlkZXJfQnVmZmVySXNOb3RCaWdFbm91Z2gs
IGNhbGxlZCBhdCBDR0RhdGFQcm92aWRlciBjcmVhdGlvbiB0aW1lLCB3aGljaCBzaG91bGQKKyAg
ICAgICAgZ2VuZXJhdGUgYSBjcmFzaCB3aXRoaW4gdGhlIHJlc3BvbnNpYmxlIHN0YWNrIGZyYW1l
LgorCisgICAgICAgIChUaGlzIGFzc3VtZXMgdGhhdCB0aGUgaXNzdWUgaXMgdGhlIHdyb25nIHNp
emVkIGJ1ZmZlciBhdCBDR0RhdGFQcm92aWRlciBjcmVhdGlvbiB0aW1lLCBhbmQgbm90CisgICAg
ICAgIHRoYXQgdGhlIGJ1ZmZlciBpdHNlbGYgaXMgcmVjbGFpbWVkIGJldHdlZW4gY3JlYXRpb24g
dGltZSBhbmQgYWNjZXNzLikKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQz
RENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwYWludFRvQ2Fu
dmFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6dG9DRkRhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Y2ZEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1t
OgorICAgICAgICAoLVtXZWJHTExheWVyIGNvcHlJbWFnZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6
XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDVlBpeGVsQnVmZmVyR2V0Qnl0ZVBvaW50ZXJDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOjpjcmVhdGVJ
bWFnZUZyb21QaXhlbEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VVdGlsaXRpZXNDRy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnZlcmlmeUltYWdlQnVm
ZmVySXNCaWdFbm91Z2gpOgorCiAyMDE4LTEwLTI2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkb3B0IC1zZXRPdmVycmlkZVJvdXRlU2hhcmluZ1BvbGljeTpy
b3V0aW5nQ29udGV4dFVJRDogU1BJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmMyZDcxZWZjNzcuLjBlMWVjMDIxYzgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC00MDE2LDYgKzQwMTYsNyBAQAogCQlDRDNBNDk1RjE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFT
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
M0E0OTU2MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5oICovOyB9OwogCQlDRDNBNDk2
MjE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNBNDk1OTE3QTlEMDFCMDAyNzRFNDIgLyogU291
cmNlQnVmZmVyLmggKi87IH07CiAJCUNEM0E0OTY1MTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VC
dWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDNBNDk1QzE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5oICovOyB9Owor
CQlDRDNFMjFERDIxODM0NDRBMDBFNjZGNTUgLyogSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzRTIxREIyMTgz
M0Y1MTAwRTY2RjU1IC8qIEltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDNFMjUxQzE4MDQ2QjA2MDBFMjdG
NTYgLyogR3JpZEFyZWEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEM0UyNTFCMTgwNDZCMDYwMEUyN0Y1NiAvKiBHcmlkQXJlYS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEM0UyNTI0MTgwNDZCQ0Qw
MEUyN0Y1NiAvKiBDU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNFMjUyMjE4MDQ2QkNEMDBFMjdGNTYgLyog
Q1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5oICovOyB9OwogCQlDRDRBQzUyQTE0OTZBRTlBMDA4
N0M0RUYgLyogQ29tcG9zaXRlLndhdiBpbiBDb3B5IEF1ZGlvIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDRBQzUyODE0OTZBRTJGMDA4N0M0RUYgLyogQ29t
cG9zaXRlLndhdiAqLzsgfTsKQEAgLTQwMjgsNiArNDAyOSw3IEBACiAJCUNENTRBNzYzMTgwRjlG
NzAwMEIwNzZDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NEE3NjExODBGOUY3
MDAwQjA3NkM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggKi87IH07
CiAJCUNENTU5NjkxMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NTk2OEYxNDc1
QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgKi87IH07CiAJCUNENTU5Njky
MTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTU5NjkwMTQ3NUI2NzgwMDFEMEJEMCAv
KiBBdWRpb0ZpbGVSZWFkZXJJT1MuaCAqLzsgfTsKKwkJQ0Q1ODk0OTUyMTg3NDA2NDAwNEY0MjRB
IC8qIEltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1ODk0OTMyMTg3NDA2NDAwNEY0MjRBIC8qIEltYWdlQnVm
ZmVyVXRpbGl0aWVzQ0cuY3BwICovOyB9OwogCQlDRDU4OTZFMjFDRDJCMTUxMDBCM0JDQzggLyog
V2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENENTg5NkUwMUNEMkIxNTEwMEIzQkNDOCAvKiBXZWJQbGF5YmFj
a0NvbnRyb2xzTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUNENUQyNzc4MUU4MzE4RTAwMEQ4MEEzRCAvKiBXZWJDb3JlRGVjb21wcmVz
c2lvblNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENUQyNzc2MUU4MzE4RTAwMEQ4MEEzRCAvKiBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b24uaCAqLzsgfTsKIAkJQ0Q1RTVCNUYxQTE1Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVF
NUI1RTFBMTVDRTU0MDAwQzYwOUUgLyogUGFnZUNvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTMzNDIsNiArMTMzNDQsNyBA
QAogCQlDRDNBNDk1QjE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3VyY2VCdWZmZXJMaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QzQTQ5NUMxN0E5RDAxQjAwMjc0RTQyIC8q
IFNvdXJjZUJ1ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291
cmNlQnVmZmVyTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDNBNDk1RDE3
QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU291cmNlQnVmZmVyTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEM0UyMURCMjE4MzNGNTEwMEU2NkY1NSAvKiBJbWFnZUJ1ZmZlclV0aWxpdGllc0NHLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0QzRTI1MUIxODA0NkIwNjAwRTI3RjU2IC8qIEdyaWRBcmVhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyaWRBcmVhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEM0UyNTIxMTgwNDZCQ0QwMEUyN0Y1NiAvKiBDU1NHcmlkVGVtcGxhdGVB
cmVhc1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0dy
aWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDNFMjUyMjE4MDQ2QkNEMDBFMjdGNTYgLyogQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzM2MCw2ICsxMzM2Myw3IEBACiAJ
CUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TZXNzaW9uTWFjLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NTk2OEYxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlv
RmlsZVJlYWRlcklPUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
dWRpb0ZpbGVSZWFkZXJJT1MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU1
OTY5MDE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvRmlsZVJlYWRlcklPUy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRDU4OTQ5MzIxODc0MDY0MDA0RjQyNEEgLyogSW1hZ2VCdWZmZXJV
dGlsaXRpZXNDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUJ1ZmZlclV0aWxpdGllc0NH
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1ODk2REYxQ0QyQjE1MTAwQjNC
Q0M4IC8qIFdlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTg5NkUwMUNEMkIxNTEwMEIzQkNDOCAvKiBXZWJQ
bGF5YmFja0NvbnRyb2xzTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDVEMjc3NTFFODMxOEUwMDBEODBBM0QgLyogV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZURl
Y29tcHJlc3Npb25TZXNzaW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM4
OTUsNiArMjM4OTksOCBAQAogCQkJCUIyQTEwQjkzMEIzODE4RDcwMDA5OUFBNCAvKiBJbWFnZUJ1
ZmZlckNHLmNwcCAqLywKIAkJCQkyMjkyQjI3QjEzNTY2Njk0MDBDRjExRUYgLyogSW1hZ2VCdWZm
ZXJEYXRhQ0cuY3BwICovLAogCQkJCTIyQkQ5RjgwMTM1MzY0RkUwMDlCRDEwMiAvKiBJbWFnZUJ1
ZmZlckRhdGFDRy5oICovLAorCQkJCUNEM0UyMURCMjE4MzNGNTEwMEU2NkY1NSAvKiBJbWFnZUJ1
ZmZlclV0aWxpdGllc0NHLmggKi8sCisJCQkJQ0Q1ODk0OTMyMTg3NDA2NDAwNEY0MjRBIC8qIElt
YWdlQnVmZmVyVXRpbGl0aWVzQ0cuY3BwICovLAogCQkJCTU1NUI4N0VBMUNBQUYwQUIwMDM0OTQy
NSAvKiBJbWFnZURlY29kZXJDRy5jcHAgKi8sCiAJCQkJNTU1Qjg3RUIxQ0FBRjBBQjAwMzQ5NDI1
IC8qIEltYWdlRGVjb2RlckNHLmggKi8sCiAJCQkJNEIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8q
IEltYWdlU291cmNlQ0cuaCAqLywKQEAgLTI4ODI0LDYgKzI4ODMwLDcgQEAKIAkJCQk0QjM0ODA5
NDBFRUY1MEQ0MDBBQzFCNDEgLyogSW1hZ2VTb3VyY2VDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDc4RUQxOTMyMTZEMDc5NTAwNzc1QjMzIC8qIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTU1NTBDQjQyMUU5NTVFM0MwMDExMUFBMCAvKiBJbWFnZVR5cGVzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlDRDNFMjFERDIxODM0NDRBMDBFNjZGNTUgLyogSW1hZ2VCdWZm
ZXJVdGlsaXRpZXNDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZGNzU2QjMxQjNCNjZGNzAwMDVE
RDc5IC8qIEltbXV0YWJsZU5GQS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZGNzU2QjUxQjNCNjhG
MjAwMDVERDc5IC8qIEltbXV0YWJsZU5GQU5vZGVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMTZGRTExODBFNkUxREE3MDBCRjYwODggLyogSW1wbGljaXRBbmltYXRpb24uaCBpbiBIZWFk
ZXJzICovLApAQCAtMzI2NDQsNiArMzI2NTEsNyBAQAogCQkJCURFNUY4NjBBMUZBMjM4NkEwMDZE
QjYzQSAvKiBVbmlmaWVkU291cmNlNDc1LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFNUY4NjBC
MUZBMjM4NkEwMDZEQjYzQSAvKiBVbmlmaWVkU291cmNlNDc2LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCURFNUY4NjBDMUZBMjM4NkEwMDZEQjYzQSAvKiBVbmlmaWVkU291cmNlNDc3LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUNENTg5NDk1MjE4NzQwNjQwMDRGNDI0QSAvKiBJbWFnZUJ1ZmZlclV0
aWxpdGllc0NHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFNUY4NjBEMUZBMjM4NkIwMDZEQjYz
QSAvKiBVbmlmaWVkU291cmNlNDc4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFNUY4NjBFMUZB
MjM4NkIwMDZEQjYzQSAvKiBVbmlmaWVkU291cmNlNDc5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CURFNUY4NjBGMUZBMjM4NkIwMDZEQjYzQSAvKiBVbmlmaWVkU291cmNlNDgwLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
R3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAppbmRleCBkZGI3NDRlZWU1Yi4uODdjOTkwNzli
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dDNEQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAi
Qml0bWFwSW1hZ2UuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2luY2x1ZGUg
IkltYWdlLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5oIgogCiAjaWYgSEFW
RShBUk1fTkVPTl9JTlRSSU5TSUNTKQogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNETkVPTi5o
IgpAQCAtNTE0LDkgKzUxNSwxNSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwYWludFRvQ2Fu
dmFzKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4ZWxzLCBjb25zdCBJbgogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIG1lbWNweShjb3BpZWRQaXhlbHMsIGltYWdlUGl4ZWxzLCBy
b3dCeXRlcyAqIGltYWdlU2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAgIGRhdGFQcm92aWRlciA9IGFk
b3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoRGF0YSgwLCBjb3BpZWRQaXhlbHMsIHJvd0J5
dGVzICogaW1hZ2VTaXplLmhlaWdodCgpLCByZWxlYXNlSW1hZ2VEYXRhKSk7Ci0gICAgfSBlbHNl
Ci0gICAgICAgIGRhdGFQcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRo
RGF0YSgwLCBpbWFnZVBpeGVscywgcm93Qnl0ZXMgKiBpbWFnZVNpemUuaGVpZ2h0KCksIDApKTsK
KworICAgICAgICBzaXplX3QgZGF0YVNpemUgPSByb3dCeXRlcyAqIGltYWdlU2l6ZS5oZWlnaHQo
KTsKKyAgICAgICAgdmVyaWZ5SW1hZ2VCdWZmZXJJc0JpZ0Vub3VnaChjb3BpZWRQaXhlbHMsIGRh
dGFTaXplKTsKKyAgICAgICAgZGF0YVByb3ZpZGVyID0gYWRvcHRDRihDR0RhdGFQcm92aWRlckNy
ZWF0ZVdpdGhEYXRhKDAsIGNvcGllZFBpeGVscywgZGF0YVNpemUsIHJlbGVhc2VJbWFnZURhdGEp
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBzaXplX3QgZGF0YVNpemUgPSByb3dCeXRlcyAqIGlt
YWdlU2l6ZS5oZWlnaHQoKTsKKyAgICAgICAgdmVyaWZ5SW1hZ2VCdWZmZXJJc0JpZ0Vub3VnaChp
bWFnZVBpeGVscywgZGF0YVNpemUpOworICAgICAgICBkYXRhUHJvdmlkZXIgPSBhZG9wdENGKENH
RGF0YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEoMCwgaW1hZ2VQaXhlbHMsIGRhdGFTaXplLCAwKSk7
CisgICAgfQogCiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNnSW1hZ2UgPSBhZG9wdENGKENH
SW1hZ2VDcmVhdGUoaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSwgOCwgMzIs
IHJvd0J5dGVzLCBzUkdCQ29sb3JTcGFjZVJlZigpLCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGll
ZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0LAogICAgICAgICBkYXRhUHJvdmlkZXIu
Z2V0KCksIDAsIGZhbHNlLCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0KSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCmlu
ZGV4IDAxOWE3NWE4NmYwLi42ZDQwODk1MTQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dENHLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJV
dGlsaXRpZXNDRy5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIkludFJlY3Qu
aCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCkBAIC0xODAsNiArMTgxLDcgQEAgSW1h
Z2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBDR0NvbG9yU3AKICAgICAgICAgICAgIGZhc3RGcmVlKGNvbnN0X2Nhc3Q8dm9p
ZCo+KGRhdGEpKTsKICAgICAgICAgfTsKICAgICAgICAgLy8gQ3JlYXRlIGEgbGl2ZSBpbWFnZSB0
aGF0IHdyYXBzIHRoZSBkYXRhLgorICAgICAgICB2ZXJpZnlJbWFnZUJ1ZmZlcklzQmlnRW5vdWdo
KG1fZGF0YS5kYXRhLCBudW1CeXRlcy51bnNhZmVHZXQoKSk7CiAgICAgICAgIG1fZGF0YS5kYXRh
UHJvdmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEoMCwgbV9kYXRh
LmRhdGEsIG51bUJ5dGVzLnVuc2FmZUdldCgpLCByZWxlYXNlSW1hZ2VEYXRhKSk7CiAKICAgICAg
ICAgaWYgKCFjZ0NvbnRleHQpCkBAIC01NDQsNiArNTQ2LDcgQEAgUmV0YWluUHRyPENGRGF0YVJl
Zj4gSW1hZ2VCdWZmZXI6OnRvQ0ZEYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0
aW9uYWwKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIHNpemVfdCBkYXRh
U2l6ZSA9IDQgKiBsb2dpY2FsU2l6ZSgpLndpZHRoKCkgKiBsb2dpY2FsU2l6ZSgpLmhlaWdodCgp
OworICAgICAgICB2ZXJpZnlJbWFnZUJ1ZmZlcklzQmlnRW5vdWdoKHByZW11bHRpcGxpZWREYXRh
LT5kYXRhKCksIGRhdGFTaXplKTsKICAgICAgICAgYXV0byBkYXRhUHJvdmlkZXIgPSBhZG9wdENG
KENHRGF0YVByb3ZpZGVyQ3JlYXRlV2l0aERhdGEobnVsbHB0ciwgcHJlbXVsdGlwbGllZERhdGEt
PmRhdGEoKSwgZGF0YVNpemUsIG51bGxwdHIpKTsKICAgICAgICAgaWYgKCFkYXRhUHJvdmlkZXIp
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTYwNSw2ICs2MDgsNyBAQCBzdGF0aWMg
UmV0YWluUHRyPENGRGF0YVJlZj4gY2ZEYXRhKGNvbnN0IEltYWdlRGF0YSYgc291cmNlLCBjb25z
dCBTdHJpbmcmIG1pbWVUeQogICAgICAgICBkYXRhID0gcHJlbXVsdGlwbGllZERhdGEuZGF0YSgp
OwogICAgIH0KIAorICAgIHZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91Z2goZGF0YSwgNCAqIHNv
dXJjZS53aWR0aCgpICogc291cmNlLmhlaWdodCgpKTsKICAgICBhdXRvIGRhdGFQcm92aWRlciA9
IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoRGF0YSgwLCBkYXRhLCA0ICogc291cmNl
LndpZHRoKCkgKiBzb3VyY2UuaGVpZ2h0KCksIDApKTsKICAgICBpZiAoIWRhdGFQcm92aWRlcikK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlclV0aWxpdGllc0NHLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44OWQwNDM5YzIxMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
VXRpbGl0aWVzQ0cuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5oIgorCisjaW5jbHVk
ZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordWlu
dDhfdCB2ZXJpZnlJbWFnZUJ1ZmZlcklzQmlnRW5vdWdoKGNvbnN0IHZvaWQqIGJ1ZmZlciwgc2l6
ZV90IGJ1ZmZlclNpemUpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoYnVmZmVyU2l6ZSk7CisKKyAg
ICB1aW50cHRyX3QgbGFzdEJ5dGU7CisgICAgYm9vbCBpc1NhZmUgPSBXVEY6OnNhZmVBZGQoKHVp
bnRwdHJfdClidWZmZXIsIGJ1ZmZlclNpemUgLSAxLCBsYXN0Qnl0ZSk7CisgICAgUkVMRUFTRV9B
U1NFUlQoaXNTYWZlKTsKKworICAgIHJldHVybiAqKHVpbnQ4X3QqKWxhc3RCeXRlOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlclV0aWxpdGllc0NHLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlclV0aWxpdGllc0NHLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmZlMGJmNTBkZTI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5oCkBAIC0wLDAgKzEsMzIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitX
RUJDT1JFX0VYUE9SVCB1aW50OF90IHZlcmlmeUltYWdlQnVmZmVySXNCaWdFbm91Z2goY29uc3Qg
dm9pZCogYnVmZmVyLCBzaXplX3QgYnVmZmVyU2l6ZSk7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCmluZGV4IDhlZTM0
OGQ4OTk4Li44Y2M5ZmM0MjdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0
ICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2ltcG9ydCAiR3JhcGhpY3NMYXllci5oIgogI2ltcG9y
dCAiR3JhcGhpY3NMYXllckNBLmgiCisjaW1wb3J0ICJJbWFnZUJ1ZmZlclV0aWxpdGllc0NHLmgi
CiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXIuaCIKICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVh
cnR6Q29yZVNQSS5oPgogI2ltcG9ydCA8d3RmL0Zhc3RNYWxsb2MuaD4KQEAgLTExMCw2ICsxMTEs
NyBAQCAtIChDR0ltYWdlUmVmKWNvcHlJbWFnZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6KENHQ29s
b3JTcGFjZVJlZiljb2xvclNwYWNlCiAgICAgZ2xQaXhlbFN0b3JlaShHTF9QQUNLX1JPV19MRU5H
VEgsIHJvd0J5dGVzIC8gNCk7CiAgICAgZ2xSZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQs
IEdMX0JHUkEsIEdMX1VOU0lHTkVEX0lOVF84XzhfOF84X1JFViwgZGF0YSk7CiAKKyAgICBXZWJD
b3JlOjp2ZXJpZnlJbWFnZUJ1ZmZlcklzQmlnRW5vdWdoKCh1aW50OF90KilkYXRhLCBkYXRhU2l6
ZSk7CiAgICAgQ0dEYXRhUHJvdmlkZXJSZWYgcHJvdmlkZXIgPSBDR0RhdGFQcm92aWRlckNyZWF0
ZVdpdGhEYXRhKDAsIGRhdGEsIGRhdGFTaXplLCBmcmVlRGF0YSk7CiAgICAgQ0dJbWFnZVJlZiBp
bWFnZSA9IENHSW1hZ2VDcmVhdGUod2lkdGgsIGhlaWdodCwgOCwgMzIsIHJvd0J5dGVzLCBpbWFn
ZUNvbG9yU3BhY2UuZ2V0KCksCiAgICAgICAgIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkRmly
c3QgfCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkhvc3QsIHByb3ZpZGVyLCAwLCB0cnVlLCBrQ0dSZW5k
ZXJpbmdJbnRlbnREZWZhdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAKaW5kZXggZTdl
MTFjNzY1YmEuLmU4NDUwZTA0OWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcApAQCAt
MjksNiArMjksNyBAQAogI2lmIEhBVkUoQ09SRV9WSURFTykKIAogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dENHLmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KIApAQCAtODIsNiAr
ODMsNyBAQCBzdGF0aWMgY29uc3Qgdm9pZCogQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2Fs
bGJhY2sodm9pZCogcmVmY29uKQogCiAgICAgKytpbmZvLT5sb2NrQ291bnQ7CiAgICAgdm9pZCog
YWRkcmVzcyA9IENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcyhpbmZvLT5waXhlbEJ1ZmZlci5n
ZXQoKSk7CisgICAgdmVyaWZ5SW1hZ2VCdWZmZXJJc0JpZ0Vub3VnaChhZGRyZXNzLCBDVlBpeGVs
QnVmZmVyR2V0RGF0YVNpemUoaW5mby0+cGl4ZWxCdWZmZXIuZ2V0KCkpKTsKICAgICBSRUxFQVNF
X0xPR19JTkZPKE1lZGlhLCAiQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVQb2ludGVyQ2FsbGJhY2soKSBy
ZXR1cm5pbmcgYnl0ZVBvaW50ZXI6ICVwLCBzaXplOiAlenUiLCBhZGRyZXNzLCBDVlBpeGVsQnVm
ZmVyR2V0RGF0YVNpemUoaW5mby0+cGl4ZWxCdWZmZXIuZ2V0KCkpKTsKICAgICByZXR1cm4gYWRk
cmVzczsKIH0KQEAgLTE3Nyw2ICsxNzksMTAgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IFBpeGVs
QnVmZmVyQ29uZm9ybWVyQ1Y6OmNyZWF0ZUltYWdlRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWwKICAg
ICBzaXplX3QgYnl0ZXNQZXJSb3cgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3coYnVmZmVy
LmdldCgpKTsKICAgICBzaXplX3QgYnl0ZUxlbmd0aCA9IENWUGl4ZWxCdWZmZXJHZXREYXRhU2l6
ZShidWZmZXIuZ2V0KCkpOwogCisgICAgQVNTRVJUKGJ5dGVMZW5ndGgpOworICAgIGlmICghYnl0
ZUxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKICAgICBDVlBpeGVsQnVmZmVySW5m
byogaW5mbyA9IG5ldyBDVlBpeGVsQnVmZmVySW5mbygpOwogICAgIGluZm8tPnBpeGVsQnVmZmVy
ID0gV1RGTW92ZShidWZmZXIpOwogICAgIGluZm8tPmxvY2tDb3VudCA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDkyNjQyNTRjNTM3Li40NWM4YTcwNGU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
OC0xMC0yNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBDUkFT
SCBpbiBDb3JlR3JhcGhpY3M6IEVSUk9SX0NHRGF0YVByb3ZpZGVyX0J1ZmZlcklzTm90QmlnRW5v
dWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA5
NTQKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBTaGFy
ZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVC
aXRtYXA6Om1ha2VDR0ltYWdlKToKKwogMjAxOC0xMC0yNiAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCAtc2V0T3ZlcnJpZGVSb3V0ZVNoYXJpbmdQb2xp
Y3k6cm91dGluZ0NvbnRleHRVSUQ6IFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hh
cmVhYmxlQml0bWFwQ0cuY3BwCmluZGV4IDg2MjYxNTdmNDA3Li5lMjYzMTM4MzVkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2cvU2hhcmVhYmxlQml0bWFwQ0cuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NnL1NoYXJlYWJsZUJpdG1hcENHLmNwcApAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9CaXRtYXBJbWFnZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVy
VXRpbGl0aWVzQ0cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAjaW5j
bHVkZSA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2Nv
Y29hL0lPU3VyZmFjZVNQSS5oPgpAQCAtMTIwLDYgKzEyMSw3IEBAIFJldGFpblB0cjxDR0ltYWdl
UmVmPiBTaGFyZWFibGVCaXRtYXA6Om1ha2VDR0ltYWdlQ29weSgpCiBSZXRhaW5QdHI8Q0dJbWFn
ZVJlZj4gU2hhcmVhYmxlQml0bWFwOjptYWtlQ0dJbWFnZSgpCiB7CiAgICAgcmVmKCk7IC8vIEJh
bGFuY2VkIGJ5IGRlcmVmIGluIHJlbGVhc2VEYXRhUHJvdmlkZXJEYXRhLgorICAgIHZlcmlmeUlt
YWdlQnVmZmVySXNCaWdFbm91Z2goZGF0YSgpLCBzaXplSW5CeXRlcygpKTsKICAgICBSZXRhaW5Q
dHI8Q0dEYXRhUHJvdmlkZXI+IGRhdGFQcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJD
cmVhdGVXaXRoRGF0YSh0aGlzLCBkYXRhKCksIHNpemVJbkJ5dGVzKCksIHJlbGVhc2VEYXRhUHJv
dmlkZXJEYXRhKSk7CiAgICAgcmV0dXJuIGNyZWF0ZUNHSW1hZ2UoZGF0YVByb3ZpZGVyLmdldCgp
KTsKIH0KLS0gCjIuMTcuMSAoQXBwbGUgR2l0LTExMikKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>