<?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>175562</bug_id>
          
          <creation_ts>2017-08-14 21:46:45 -0700</creation_ts>
          <short_desc>Web Automation: use automation session configurations to propagate per-session settings</short_desc>
          <delta_ts>2017-08-25 14:08:19 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>175563</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>buildbot</cc>
    
    <cc>cgarcia</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1338620</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-14 21:46:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/30853362&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341802</commentid>
    <comment_count>1</comment_count>
      <attachid>318925</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-23 14:51:57 -0700</bug_when>
    <thetext>Created attachment 318925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341821</commentid>
    <comment_count>2</comment_count>
      <attachid>318931</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-23 15:24:15 -0700</bug_when>
    <thetext>Created attachment 318931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1341836</commentid>
    <comment_count>3</comment_count>
      <attachid>318931</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-08-23 15:56:50 -0700</bug_when>
    <thetext>Comment on attachment 318931
Patch

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

r=me, needs a nod from an OWNER

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm:40
&gt; +    _WKAutomationSessionConfiguration *_configuration;

This is auto-synthesized from the @property declaration so is unnecessary. Unless you want to change the type, for example to `RetainPtr&lt;_WKAutomationSessionConfiguration *&gt; _configuration`.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm:56
&gt; +    _configuration = [configuration copy];

This needs to be released in -dealloc. Or assigned into a RetainPtr member `_configuration = adoptNS([configuration copy]);` which would automatically handle releasing in destruction.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSession.mm:93
&gt; +- (_WKAutomationSessionConfiguration *)configuration
&gt; +{
&gt; +    return [_configuration copy];
&gt; +}

I don&apos;t think you need to implement this. I believe the autosynthesized property should do the right thing.

In the event that you do need something here (like if you used a RetainPtr member) WebKit is not ARC this would need an autorelease.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.mm:47
&gt; +- (NSString *)description
&gt; +{
&gt; +    return [NSString stringWithFormat:@&quot;&lt;%@: %p&gt;&quot;, NSStringFromClass(self.class), self];
&gt; +}

Is this different from the default -description?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342262</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-08-24 17:16:26 -0700</bug_when>
    <thetext>👍 as long as you fix joe&apos;s complains about the configuration, those were my only comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342267</commentid>
    <comment_count>5</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-24 17:30:03 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #4)
&gt; 👍 as long as you fix joe&apos;s complains about the configuration, those were my
&gt; only comments

I&apos;ll change to use RetainPtr and autorelease as we do this most places it seems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342418</commentid>
    <comment_count>6</comment_count>
      <attachid>318931</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-25 09:44:28 -0700</bug_when>
    <thetext>Comment on attachment 318931
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.mm:47
&gt;&gt; +}
&gt; 
&gt; Is this different from the default -description?

Oops, you are right. I&apos;ll just omit this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342428</commentid>
    <comment_count>7</comment_count>
      <attachid>319086</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-25 10:06:09 -0700</bug_when>
    <thetext>Created attachment 319086
For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342445</commentid>
    <comment_count>8</comment_count>
      <attachid>319086</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-08-25 11:02:29 -0700</bug_when>
    <thetext>Comment on attachment 319086
For Landing

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

&gt; Source/WebKit/UIProcess/Cocoa/AutomationClient.mm:74
&gt; +    NSString *retainedIdentifier = sessionIdentifier;
&gt; +    requestAutomationSessionWithCapabilities(retainedIdentifier, nil);

I think this extra line (73) ends up being unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342515</commentid>
    <comment_count>9</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-25 14:08:19 -0700</bug_when>
    <thetext>Committed r221204: &lt;http://trac.webkit.org/changeset/221204&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>318925</attachid>
            <date>2017-08-23 14:51:57 -0700</date>
            <delta_ts>2017-08-23 14:52:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Web-Automation-use-automation-session-configurations.patch</filename>
            <type>application/mbox</type>
            <size>33999</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">RnJvbSBhNTZmZmFkNGE1YmQ5ODc1MjU2M2IzMTg4ZWMyNzM3MThlY2ZmZjdmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmlhbiBCdXJnIDxiYnVyZ0BhcHBsZS5jb20+CkRhdGU6IE1v
biwgMTQgQXVnIDIwMTcgMjI6MDM6NTggLTA3MDAKU3ViamVjdDogW1BBVENIXSBXZWIgQXV0b21h
dGlvbjogdXNlIGF1dG9tYXRpb24gc2Vzc2lvbiBjb25maWd1cmF0aW9ucyB0bwogcHJvcGFnYXRl
IHBlci1zZXNzaW9uIHNldHRpbmdzIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzU1NjIKIDxyZGFyOi8vcHJvYmxlbS8zMDg1MzM2Mj4KClJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgoKU291cmNlL0phdmFTY3JpcHRDb3JlOgoKQWRkIGEgQ29jb2Etc3BlY2lmaWMg
Y29kZSBwYXRoIHRvIGZvcndhcmQgY2FwYWJpbGl0aWVzIHdoZW4gcmVxdWVzdGluZwphIG5ldyBz
ZXNzaW9uIGZyb20gdGhlIHJlbW90ZSBpbnNwZWN0b3IgKGkuZS4sIGF1dG9tYXRpb24pIGNsaWVu
dC4KCklmIG90aGVyIHBvcnRzIHdhbnQgdG8gdXNlIHRoaXMsIHRoZW4gd2UgY2FuIGNvbnZlcnQg
Q29jb2EgdHlwZXMgdG8gV2ViS2l0IHR5cGVzIGxhdGVyLgoKKiBpbnNwZWN0b3IvcmVtb3RlL1Jl
bW90ZUluc3BlY3Rvci5oOgoqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yQ29uc3Rh
bnRzLmg6CiogaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JDb2NvYS5tbToK
KEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZEF1dG9tYXRpb25TZXNzaW9uUmVx
dWVzdE1lc3NhZ2UpOgoKU291cmNlL1dlYktpdDoKClNvbWUgV2ViRHJpdmVyIGNhcGFiaWxpdGll
cyBuZWVkIFdlYktpdCBzdXBwb3J0IGluIG9yZGVyIHRvIGJlIGltcGxlbWVudGVkIGNvcnJlY3Rs
eS4KVGhlcmUgaXMgY3VycmVudGx5IG5vIGVhc3kgd2F5IHRvIGZvcndhcmQgV2ViRHJpdmVyIGNh
cGFiaWxpdHkga2V5cyBhbmQgdmFsdWVzIHRvIFdlYktpdAphdCBzZXNzaW9uIGNyZWF0aW9uIHRp
bWUuIFRoaXMgaXMgdW5mb3J0dW5hdGUsIGFzIGl0IHdvdWxkIGJlIGJlc3QgdG8gaW1wbGVtZW50
IG1hbnkgb2YKdGhlbSB2aWEgZXhpc3RpbmcgbWVjaGFuaXNtcyAoaS5lLiwgV0tQcmVmZXJlbmNl
cyBwcm9wZXJ0aWVzKSB0aGF0IG5lZWQgdG8gYmUgc2V0IHVwCmJlZm9yZSBhbnkgd2luZG93cyBh
cmUgb3BlbmVkIGluIHRoZSBzZXNzaW9uLgoKVGhpcyBwYXRjaCBhZGRzIFdlYktpdC1zaWRlIHBs
dW1iaW5nIHRvIGZvcndhcmQgbmFtZWQgY2FwYWJpbGl0aWVzIGZyb20gYSByZW1vdGUKV2ViRHJp
dmVyIGNsaWVudCB0byB0aGUgX1dLQXV0b21hdGlvblNlc3Npb24gYW5kIGl0cyBkZWxlZ2F0ZSBp
biBXZWJLaXQyIFVJUHJvY2Vzcy4KVGhlc2UgY2FwYWJpbGl0aWVzIGFyZSBleHBvc2VkIHZpYSBB
UEkgaW4gd2F5cyB0aGF0IGFic3RyYWN0IGF3YXkgZGV0YWlscyBvZiBob3cgdGhlCmNhcGFiaWxp
dGllcyBhcmUgcmVwcmVzZW50ZWQgaW4gUldJIHdpcmUgcHJvdG9jb2wgbWVzc2FnZXMuCgpJbiB0
aGUgQ29jb2EgQVBJLCB0aGVzZSBjYXBhYmlsaXRpZXMgYXJlIGV4cG9zZWQgdmlhIGEgc2Vzc2lv
biBjb25maWd1cmF0aW9uIG9iamVjdAp0aGF0J3Mgc2ltaWxhciB0byBXS1dlYlZpZXcncyBXS1dl
YlZpZXdDb25maWd1cmF0aW9uLiBBIHNlc3Npb24ncyBjb25maWd1cmF0aW9uIGlzIGNvcGllZAph
bmQgdXNlZCBhdCBpbml0aWFsaXphdGlvbiBhbmQgY2Fubm90IGJlIG1vZGlmaWVkIGFmdGVyIHRo
ZSBzZXNzaW9uIGlzIGNyZWF0ZWQuCkNvZGUgaW4gdGhlIENvY29hIHN1YmNsYXNzIG9mIEFQSTo6
QXV0b21hdGlvbkNsaWVudCB0cmFuc2xhdGVzIGJldHdlZW4gUldJIHByb3RvY29sCmNhcGFiaWxp
dHkgbmFtZXMgYW5kIHByb3BlcnR5IHZhbHVlcyBvbiB0aGUgX1dLQXV0b21hdGlvblNlc3Npb25D
b25maWd1cmF0aW9uIGl0CnVzZXMgdG8gcmVxdWVzdCBhIG5ldyBzZXNzaW9uLgoKTGF0ZXIgcGF0
Y2hlcyB3aWxsIGhvb2sgdXAgdGhlIHR3byBwcm9wZXJ0aWVzIHByZXNlbnQgaW4gdGhlIGNvbmZp
Z3VyYXRpb24gaW4gdGhpcyBwYXRjaC4KTW9zdCBvZiB0aGlzIHBhdGNoIGlzIGp1c3QgZ2VuZXJp
YyBwbHVtYmluZyB3aXRob3V0IGRvaW5nIGFueSBjYXBhYmlsaXR5LXNwZWNpZmljIHdvcmsuCgoq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvbkRlbGVnYXRlLmg6CiogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5oOgoqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLQXV0b21hdGlvblNlc3Npb24ubW06CigtW19XS0F1dG9tYXRpb25TZXNzaW9uIGluaXRdKToK
KC1bX1dLQXV0b21hdGlvblNlc3Npb24gaW5pdFdpdGhDb25maWd1cmF0aW9uOl0pOgooLVtfV0tB
dXRvbWF0aW9uU2Vzc2lvbiBjb25maWd1cmF0aW9uXSk6CiogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25EZWxlZ2F0ZS5oLgoqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLm1tOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNl
c3Npb24uaC4KKC1bX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uIGluaXRdKToKKC1b
X1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uIGRlc2NyaXB0aW9uXSk6CiogVUlQcm9j
ZXNzL0NvY29hL0F1dG9tYXRpb25DbGllbnQuaDoKKiBVSVByb2Nlc3MvQ29jb2EvQXV0b21hdGlv
bkNsaWVudC5tbToKKFdlYktpdDo6QXV0b21hdGlvbkNsaWVudDo6QXV0b21hdGlvbkNsaWVudCk6
CihXZWJLaXQ6OkF1dG9tYXRpb25DbGllbnQ6OnJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbik6CihX
ZWJLaXQ6OkF1dG9tYXRpb25DbGllbnQ6OnJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbldpdGhDYXBh
YmlsaXRpZXMpOgoqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgotLS0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgIHwgMTggKysrKysr
KwogLi4uL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmggICAgICAgICAgICAgfCAg
MyArKwogLi4uL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yQ29uc3RhbnRzLmggICAg
fCAgMSArCiAuLi4vaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JDb2NvYS5t
bSB8ICA1ICstCiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDQ2ICsrKysrKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1
dG9tYXRpb25EZWxlZ2F0ZS5oICAgIHwgIDMgKy0KIC4uLi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0F1dG9tYXRpb25TZXNzaW9uLmggICAgIHwgIDUgKysKIC4uLi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0F1dG9tYXRpb25TZXNzaW9uLm1tICAgIHwgMTQgKysrKysKIC4uLi9BUEkvQ29jb2EvX1dL
QXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmggIHwgNDQgKysrKysrKysrKysrKysrKwog
Li4uL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24ubW0gfCA2MSAr
KysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9BdXRv
bWF0aW9uQ2xpZW50LmggICB8ICAyICsKIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0F1
dG9tYXRpb25DbGllbnQubW0gIHwgMTQgKysrLS0KIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogICAgIHwgIDggKysrCiAxMyBmaWxlcyBjaGFuZ2VkLCAyMTgg
aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0
aW9uLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLm1tCgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggOGEyNTczOTJhYTIuLmE2Y2M4NWI3NmU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsNyArMSwyNSBAQAorMjAxNy0wOC0xNCAgQnJpYW4gQnVyZyAgPGJidXJnQGFw
cGxlLmNvbT4KKworICAgICAgICBXZWIgQXV0b21hdGlvbjogdXNlIGF1dG9tYXRpb24gc2Vzc2lv
biBjb25maWd1cmF0aW9ucyB0byBwcm9wYWdhdGUgcGVyLXNlc3Npb24gc2V0dGluZ3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU2MgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzA4NTMzNjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgQ29jb2Etc3BlY2lmaWMgY29kZSBwYXRoIHRvIGZv
cndhcmQgY2FwYWJpbGl0aWVzIHdoZW4gcmVxdWVzdGluZworICAgICAgICBhIG5ldyBzZXNzaW9u
IGZyb20gdGhlIHJlbW90ZSBpbnNwZWN0b3IgKGkuZS4sIGF1dG9tYXRpb24pIGNsaWVudC4KKwor
ICAgICAgICBJZiBvdGhlciBwb3J0cyB3YW50IHRvIHVzZSB0aGlzLCB0aGVuIHdlIGNhbiBjb252
ZXJ0IENvY29hIHR5cGVzIHRvIFdlYktpdCB0eXBlcyBsYXRlci4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmg6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90
ZS9SZW1vdGVJbnNwZWN0b3JDb25zdGFudHMuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3Rl
L2NvY29hL1JlbW90ZUluc3BlY3RvckNvY29hLm1tOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1v
dGVJbnNwZWN0b3I6OnJlY2VpdmVkQXV0b21hdGlvblNlc3Npb25SZXF1ZXN0TWVzc2FnZSk6CisK
IDIwMTctMDgtMjAgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEdh
cmRlbmluZzogZml4IENMb29wIGJ1aWxkLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc1Njg4CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzQzNjg3
MD4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3IuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rvci5oCmluZGV4IDgzY2YyNTg2
MTJhLi5kMDBkZTJiNzAzZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmgKQEAgLTcyLDE0ICs3MiwxNyBAQCBw
dWJsaWM6CiAgICAgICAgIH07CiAKICAgICAgICAgdmlydHVhbCB+Q2xpZW50KCkgeyB9CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCByZW1vdGVBdXRvbWF0aW9uQWxsb3dlZCgpIGNvbnN0ID0gMDsKICAg
ICAgICAgdmlydHVhbCBTdHJpbmcgYnJvd3Nlck5hbWUoKSBjb25zdCB7IHJldHVybiB7IH07IH0K
ICAgICAgICAgdmlydHVhbCBTdHJpbmcgYnJvd3NlclZlcnNpb24oKSBjb25zdCB7IHJldHVybiB7
IH07IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbihjb25z
dCBTdHJpbmcmIHNlc3Npb25JZGVudGlmaWVyKSA9IDA7CisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0QXV0b21hdGlvblNlc3Npb25XaXRoQ2FwYWJpbGl0
aWVzKE5TU3RyaW5nICpzZXNzaW9uSWRlbnRpZmllciwgTlNEaWN0aW9uYXJ5ICpmb3J3YXJkZWRD
YXBhYmlsaXRpZXMpID0gMDsKKyNlbmRpZgogICAgIH07CiAKICAgICBzdGF0aWMgdm9pZCBzdGFy
dERpc2FibGVkKCk7CiAgICAgc3RhdGljIFJlbW90ZUluc3BlY3RvciYgc2luZ2xldG9uKCk7CiAg
ICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPFJlbW90ZUluc3BlY3Rvcj47CiAKICAgICB2
b2lkIHJlZ2lzdGVyVGFyZ2V0KFJlbW90ZUNvbnRyb2xsYWJsZVRhcmdldCopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9y
Q29uc3RhbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1v
dGVJbnNwZWN0b3JDb25zdGFudHMuaAppbmRleCA3MDA2NTdiZTA1Yy4uMTg1ZjQ0MTBmZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUlu
c3BlY3RvckNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL1JlbW90ZUluc3BlY3RvckNvbnN0YW50cy5oCkBAIC04MCwxNCArODAsMTUgQEAKICNk
ZWZpbmUgV0lSQXV0b21hdGljSW5zcGVjdGlvblNlc3Npb25JZGVudGlmaWVyS2V5IEAiV0lSQXV0
b21hdGljSW5zcGVjdGlvblNlc3Npb25JZGVudGlmaWVyS2V5IgogI2RlZmluZSBXSVJBdXRvbWF0
aWNJbnNwZWN0aW9uQ29uZmlndXJhdGlvbk1lc3NhZ2UgQCJXSVJBdXRvbWF0aWNJbnNwZWN0aW9u
Q29uZmlndXJhdGlvbk1lc3NhZ2UiCiAjZGVmaW5lIFdJUkF1dG9tYXRpY0luc3BlY3Rpb25SZWpl
Y3RNZXNzYWdlICAgICAgICBAIldJUkF1dG9tYXRpY0luc3BlY3Rpb25SZWplY3RNZXNzYWdlIgog
I2RlZmluZSBXSVJBdXRvbWF0aWNJbnNwZWN0aW9uQ2FuZGlkYXRlTWVzc2FnZSAgICAgQCJXSVJB
dXRvbWF0aWNJbnNwZWN0aW9uQ2FuZGlkYXRlTWVzc2FnZSIKIAogI2RlZmluZSBXSVJBdXRvbWF0
aW9uVGFyZ2V0SXNQYWlyZWRLZXkgICAgICAgICAgICAgQCJXSVJBdXRvbWF0aW9uVGFyZ2V0SXNQ
YWlyZWRLZXkiCiAjZGVmaW5lIFdJUlNlc3Npb25JZGVudGlmaWVyS2V5ICAgICAgICAgICAgICAg
ICAgICBAIldJUlNlc3Npb25JZGVudGlmaWVyS2V5IgorI2RlZmluZSBXSVJTZXNzaW9uQ2FwYWJp
bGl0aWVzS2V5ICAgICAgICAgICAgICAgICAgQCJXSVJTZXNzaW9uQ2FwYWJpbGl0aWVzS2V5Igog
I2RlZmluZSBXSVJBdXRvbWF0aW9uU2Vzc2lvblJlcXVlc3RNZXNzYWdlICAgICAgICAgQCJXSVJB
dXRvbWF0aW9uU2Vzc2lvblJlcXVlc3RNZXNzYWdlIgogCiAvLyBUaGVzZSBkZWZpbml0aW9ucyBh
cmUgc2hhcmVkIHdpdGggYSBTaW11bGF0b3Igd2ViaW5zcGVjdG9yZCBhbmQKIC8vIE9TIFggcHJv
Y2VzcyBjb21tdW5pY2F0aW5nIHdpdGggaXQuCiAKICNkZWZpbmUgV0lSU2ltdWxhdG9yQnVpbGRL
ZXkgICAgICAgICAgICAgICAgICAgIEAiV0lSU2ltdWxhdG9yQnVpbGRLZXkiCiAjZGVmaW5lIFdJ
UlNpbXVsYXRvclByb2R1Y3RWZXJzaW9uS2V5ICAgICAgICAgICBAIldJUlNpbXVsYXRvclByb2R1
Y3RWZXJzaW9uS2V5IgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvY29jb2EvUmVtb3RlSW5zcGVjdG9yQ29jb2EubW0gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JDb2NvYS5tbQppbmRl
eCBjYTc2ODExOWQ5Ny4uZTg1ODU3YzRlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUluc3BlY3RvckNvY29hLm1tCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUluc3Bl
Y3RvckNvY29hLm1tCkBAIC02NzQsMTkgKzY3NCwyMiBAQCB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6
cmVjZWl2ZWRBdXRvbWF0aWNJbnNwZWN0aW9uUmVqZWN0TWVzc2FnZShOU0RpY3Rpb25hcnkgKnVz
ZQogfQogCiB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6cmVjZWl2ZWRBdXRvbWF0aW9uU2Vzc2lvblJl
cXVlc3RNZXNzYWdlKE5TRGljdGlvbmFyeSAqdXNlckluZm8pCiB7CiAgICAgTlNTdHJpbmcgKnN1
Z2dlc3RlZFNlc3Npb25JZGVudGlmaWVyID0gdXNlckluZm9bV0lSU2Vzc2lvbklkZW50aWZpZXJL
ZXldOwogICAgIEJBSUxfSUZfVU5FWFBFQ1RFRF9UWVBFKHN1Z2dlc3RlZFNlc3Npb25JZGVudGlm
aWVyLCBbTlNTdHJpbmcgY2xhc3NdKTsKIAorICAgIE5TRGljdGlvbmFyeSAqZm9yd2FyZGVkQ2Fw
YWJpbGl0aWVzID0gdXNlckluZm9bV0lSU2Vzc2lvbkNhcGFiaWxpdGllc0tleV07CisgICAgQkFJ
TF9JRl9VTkVYUEVDVEVEX1RZUEVfQUxMT1dJTkdfTklMKGZvcndhcmRlZENhcGFiaWxpdGllcywg
W05TRGljdGlvbmFyeSBjbGFzc10pOworCiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaWYgKCFtX2NsaWVudENhcGFiaWxpdGllcyB8fCAhbV9jbGllbnRDYXBhYmls
aXRpZXMtPnJlbW90ZUF1dG9tYXRpb25BbGxvd2VkKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X2NsaWVudC0+cmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uKHN1Z2dlc3RlZFNlc3Npb25JZGVudGlm
aWVyKTsKKyAgICBtX2NsaWVudC0+cmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uV2l0aENhcGFiaWxp
dGllcyhzdWdnZXN0ZWRTZXNzaW9uSWRlbnRpZmllciwgZm9yd2FyZGVkQ2FwYWJpbGl0aWVzKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCiAKICNlbmRpZiAvLyBFTkFCTEUoUkVNT1RF
X0lOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDlhYzBjMmY1MGEuLmU1OTYwMjFmZWY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSw3ICsxLDUzIEBACisyMDE3LTA4LTE0ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYiBBdXRvbWF0aW9uOiB1c2UgYXV0b21hdGlvbiBzZXNzaW9uIGNv
bmZpZ3VyYXRpb25zIHRvIHByb3BhZ2F0ZSBwZXItc2Vzc2lvbiBzZXR0aW5ncworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NTYyCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zMDg1MzM2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTb21lIFdlYkRyaXZlciBjYXBhYmlsaXRpZXMgbmVlZCBXZWJLaXQg
c3VwcG9ydCBpbiBvcmRlciB0byBiZSBpbXBsZW1lbnRlZCBjb3JyZWN0bHkuCisgICAgICAgIFRo
ZXJlIGlzIGN1cnJlbnRseSBubyBlYXN5IHdheSB0byBmb3J3YXJkIFdlYkRyaXZlciBjYXBhYmls
aXR5IGtleXMgYW5kIHZhbHVlcyB0byBXZWJLaXQKKyAgICAgICAgYXQgc2Vzc2lvbiBjcmVhdGlv
biB0aW1lLiBUaGlzIGlzIHVuZm9ydHVuYXRlLCBhcyBpdCB3b3VsZCBiZSBiZXN0IHRvIGltcGxl
bWVudCBtYW55IG9mCisgICAgICAgIHRoZW0gdmlhIGV4aXN0aW5nIG1lY2hhbmlzbXMgKGkuZS4s
IFdLUHJlZmVyZW5jZXMgcHJvcGVydGllcykgdGhhdCBuZWVkIHRvIGJlIHNldCB1cAorICAgICAg
ICBiZWZvcmUgYW55IHdpbmRvd3MgYXJlIG9wZW5lZCBpbiB0aGUgc2Vzc2lvbi4KKworICAgICAg
ICBUaGlzIHBhdGNoIGFkZHMgV2ViS2l0LXNpZGUgcGx1bWJpbmcgdG8gZm9yd2FyZCBuYW1lZCBj
YXBhYmlsaXRpZXMgZnJvbSBhIHJlbW90ZQorICAgICAgICBXZWJEcml2ZXIgY2xpZW50IHRvIHRo
ZSBfV0tBdXRvbWF0aW9uU2Vzc2lvbiBhbmQgaXRzIGRlbGVnYXRlIGluIFdlYktpdDIgVUlQcm9j
ZXNzLgorICAgICAgICBUaGVzZSBjYXBhYmlsaXRpZXMgYXJlIGV4cG9zZWQgdmlhIEFQSSBpbiB3
YXlzIHRoYXQgYWJzdHJhY3QgYXdheSBkZXRhaWxzIG9mIGhvdyB0aGUKKyAgICAgICAgY2FwYWJp
bGl0aWVzIGFyZSByZXByZXNlbnRlZCBpbiBSV0kgd2lyZSBwcm90b2NvbCBtZXNzYWdlcy4KKwor
ICAgICAgICBJbiB0aGUgQ29jb2EgQVBJLCB0aGVzZSBjYXBhYmlsaXRpZXMgYXJlIGV4cG9zZWQg
dmlhIGEgc2Vzc2lvbiBjb25maWd1cmF0aW9uIG9iamVjdAorICAgICAgICB0aGF0J3Mgc2ltaWxh
ciB0byBXS1dlYlZpZXcncyBXS1dlYlZpZXdDb25maWd1cmF0aW9uLiBBIHNlc3Npb24ncyBjb25m
aWd1cmF0aW9uIGlzIGNvcGllZAorICAgICAgICBhbmQgdXNlZCBhdCBpbml0aWFsaXphdGlvbiBh
bmQgY2Fubm90IGJlIG1vZGlmaWVkIGFmdGVyIHRoZSBzZXNzaW9uIGlzIGNyZWF0ZWQuCisgICAg
ICAgIENvZGUgaW4gdGhlIENvY29hIHN1YmNsYXNzIG9mIEFQSTo6QXV0b21hdGlvbkNsaWVudCB0
cmFuc2xhdGVzIGJldHdlZW4gUldJIHByb3RvY29sCisgICAgICAgIGNhcGFiaWxpdHkgbmFtZXMg
YW5kIHByb3BlcnR5IHZhbHVlcyBvbiB0aGUgX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0
aW9uIGl0CisgICAgICAgIHVzZXMgdG8gcmVxdWVzdCBhIG5ldyBzZXNzaW9uLgorCisgICAgICAg
IExhdGVyIHBhdGNoZXMgd2lsbCBob29rIHVwIHRoZSB0d28gcHJvcGVydGllcyBwcmVzZW50IGlu
IHRoZSBjb25maWd1cmF0aW9uIGluIHRoaXMgcGF0Y2guCisgICAgICAgIE1vc3Qgb2YgdGhpcyBw
YXRjaCBpcyBqdXN0IGdlbmVyaWMgcGx1bWJpbmcgd2l0aG91dCBkb2luZyBhbnkgY2FwYWJpbGl0
eS1zcGVjaWZpYyB3b3JrLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRv
bWF0aW9uRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9t
YXRpb25TZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0
aW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKC1bX1dLQXV0b21hdGlvblNlc3Npb24gaW5pdF0pOgor
ICAgICAgICAoLVtfV0tBdXRvbWF0aW9uU2Vzc2lvbiBpbml0V2l0aENvbmZpZ3VyYXRpb246XSk6
CisgICAgICAgICgtW19XS0F1dG9tYXRpb25TZXNzaW9uIGNvbmZpZ3VyYXRpb25dKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlv
bi5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
b21hdGlvbkRlbGVnYXRlLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRv
bWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24ubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5oLgorICAgICAgICAoLVtf
V0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24gaW5pdF0pOgorICAgICAgICAoLVtfV0tB
dXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24gZGVzY3JpcHRpb25dKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvQXV0b21hdGlvbkNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9BdXRvbWF0aW9uQ2xpZW50Lm1tOgorICAgICAgICAoV2ViS2l0OjpBdXRvbWF0aW9uQ2xp
ZW50OjpBdXRvbWF0aW9uQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6QXV0b21hdGlvbkNsaWVu
dDo6cmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6QXV0b21hdGlv
bkNsaWVudDo6cmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uV2l0aENhcGFiaWxpdGllcyk6CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTctMDgtMjEgIENo
YXJsaWUgVHVybmVyICA8Y3R1cm5lckBpZ2FsaWEuY29tPgogCiAgICAgICAgIE1lbW9yeUNhY2hl
OjpzZXRDYXBhY2l0aWVzIGFzc2VydGlvbiBmYWlsdXJlIG1heERlYWRCeXRlcyA8PSB0b3RhbEJ5
dGVzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU1
NzEKIAogICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25EZWxlZ2F0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25EZWxlZ2F0
ZS5oCmluZGV4IDdjN2NlOTFjMzU2Li4xY2QyMzNjN2QzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25EZWxlZ2F0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uRGVsZWdhdGUuaApA
QCAtMjQsMTUgKzI0LDE2IEBACiAgKi8KIAogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5o
PgogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAogQGNsYXNzIFdLUHJvY2Vzc1Bvb2w7CitAY2xhc3Mg
X1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uOwogCiBAcHJvdG9jb2wgX1dLQXV0b21h
dGlvbkRlbGVnYXRlIDxOU09iamVjdD4KIEBvcHRpb25hbAogLSAoQk9PTClfcHJvY2Vzc1Bvb2xB
bGxvd3NSZW1vdGVBdXRvbWF0aW9uOihXS1Byb2Nlc3NQb29sICopcHJvY2Vzc1Bvb2w7Ci0tICh2
b2lkKV9wcm9jZXNzUG9vbDooV0tQcm9jZXNzUG9vbCAqKXByb2Nlc3NQb29sIGRpZFJlcXVlc3RB
dXRvbWF0aW9uU2Vzc2lvbldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXI7Cist
ICh2b2lkKV9wcm9jZXNzUG9vbDooV0tQcm9jZXNzUG9vbCAqKXByb2Nlc3NQb29sIGRpZFJlcXVl
c3RBdXRvbWF0aW9uU2Vzc2lvbldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIg
Y29uZmlndXJhdGlvbjooX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uICopY29uZmln
dXJhdGlvbjsKIEBlbmQKIAogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24uaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5o
CmluZGV4IGY0NWNjOTZmYzQ1Li45OWY3ZGFkMzE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uLmgKQEAgLTI1
LDI1ICsyNSwzMCBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKICNpZiBX
S19BUElfRU5BQkxFRAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAorQGNs
YXNzIF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbjsKIEBwcm90b2NvbCBfV0tBdXRv
bWF0aW9uU2Vzc2lvbkRlbGVnYXRlOwogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBXS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKQogQGludGVyZmFjZSBfV0tB
dXRvbWF0aW9uU2Vzc2lvbiA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
KSBOU1N0cmluZyAqc2Vzc2lvbklkZW50aWZpZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHksIGNvcHkpIF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbiAqY29uZmlndXJh
dGlvbjsKKwogQHByb3BlcnR5IChub25hdG9taWMsIHdlYWspIGlkIDxfV0tBdXRvbWF0aW9uU2Vz
c2lvbkRlbGVnYXRlPiBkZWxlZ2F0ZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwg
Z2V0dGVyPWlzUGFpcmVkKSBCT09MIHBhaXJlZDsKIAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
Q29uZmlndXJhdGlvbjooX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uICopY29uZmln
dXJhdGlvbiBOU19ERVNJR05BVEVEX0lOSVRJQUxJWkVSOworCiAjaWYgIVRBUkdFVF9PU19JUEhP
TkUKIC0gKEJPT0wpd2FzRXZlbnRTeW50aGVzaXplZEZvckF1dG9tYXRpb246KE5TRXZlbnQgKill
dmVudDsKIC0gKHZvaWQpbWFya0V2ZW50QXNTeW50aGVzaXplZEZvckF1dG9tYXRpb246KE5TRXZl
bnQgKilldmVudDsKICNlbmRpZgogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5tbQppbmRleCAyMjNl
ZjE1YTg5Mi4uMWY0YjQ3NzJiYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24ubW0KQEAgLTI5LDI3ICsyOSwz
NiBAQAogI2lmIFdLX0FQSV9FTkFCTEVECiAKICNpbXBvcnQgIkF1dG9tYXRpb25TZXNzaW9uQ2xp
ZW50LmgiCiAjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldLUHJvY2Vzc1Bvb2wuaCIK
ICNpbXBvcnQgIldlYWtPYmpDUHRyLmgiCiAjaW1wb3J0ICJXZWJBdXRvbWF0aW9uU2Vzc2lvbi5o
IgorI2ltcG9ydCAiX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmgiCiAjaW1wb3J0
ICJfV0tBdXRvbWF0aW9uU2Vzc2lvbkRlbGVnYXRlLmgiCiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tB
dXRvbWF0aW9uU2Vzc2lvbiB7CisgICAgX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9u
ICpfY29uZmlndXJhdGlvbjsKICAgICBXZWJLaXQ6OldlYWtPYmpDUHRyPGlkIDxfV0tBdXRvbWF0
aW9uU2Vzc2lvbkRlbGVnYXRlPj4gX2RlbGVnYXRlOwogfQogCiAtIChpbnN0YW5jZXR5cGUpaW5p
dAogeworICAgIHJldHVybiBbc2VsZiBpbml0V2l0aENvbmZpZ3VyYXRpb246W19XS0F1dG9tYXRp
b25TZXNzaW9uQ29uZmlndXJhdGlvbiBuZXddXTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoQ29uZmlndXJhdGlvbjooX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uICopY29u
ZmlndXJhdGlvbgorewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICBy
ZXR1cm4gbmlsOwogCiAgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uPihzZWxmKTsKIAorICAgIF9jb25maWd1cmF0aW9uID0gW2Nv
bmZpZ3VyYXRpb24gY29weV07CisKICAgICByZXR1cm4gc2VsZjsKIH0KIAogLSAodm9pZClkZWFs
bG9jCiB7CiAgICAgX3Nlc3Npb24tPnNldENsaWVudChudWxscHRyKTsKICAgICBfc2Vzc2lvbi0+
fldlYkF1dG9tYXRpb25TZXNzaW9uKCk7CkBAIC03NCwxNCArODMsMTkgQEAgLSAoTlNTdHJpbmcg
KilzZXNzaW9uSWRlbnRpZmllcgogfQogCiAtICh2b2lkKXNldFNlc3Npb25JZGVudGlmaWVyOihO
U1N0cmluZyAqKXNlc3Npb25JZGVudGlmaWVyCiB7CiAgICAgX3Nlc3Npb24tPnNldFNlc3Npb25J
ZGVudGlmaWVyKHNlc3Npb25JZGVudGlmaWVyKTsKIH0KIAorLSAoX1dLQXV0b21hdGlvblNlc3Np
b25Db25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgoreworICAgIHJldHVybiBbX2NvbmZpZ3Vy
YXRpb24gY29weV07Cit9CisKIC0gKEJPT0wpaXNQYWlyZWQKIHsKICAgICByZXR1cm4gX3Nlc3Np
b24tPmlzUGFpcmVkKCk7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCiAtIChCT09MKXdhc0V2ZW50
U3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uOihOU0V2ZW50ICopZXZlbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZp
Z3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0
aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uNWMxMmRjY2RiNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmgKQEAg
LTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24u
aD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpKQorQGludGVyZmFjZSBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3Vy
YXRpb24gOiBOU09iamVjdCA8TlNDb3B5aW5nPgorCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBhbGxvd3NJbnNlY3VyZU1lZGlhQ2FwdHVyZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IHN1cHByZXNzZXNJQ0VDYW5kaWRhdGVGaWx0ZXJpbmc7CisKK0BlbmQKKworTlNfQVNTVU1FX05P
Tk5VTExfRU5ECisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJh
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9u
U2Vzc2lvbkNvbmZpZ3VyYXRpb24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjdlZGQ0Njc2MTdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5tbQpAQCAt
MCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJf
V0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCIKKworI2lmIFdLX0FQSV9FTkFCTEVE
CisKK0BpbXBsZW1lbnRhdGlvbiBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24KKwor
LSAoaW5zdGFuY2V0eXBlKWluaXQKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9hbGxvd3NJbnNlY3VyZU1lZGlhQ2FwdHVyZSA9
IFlFUzsKKyAgICBfc3VwcHJlc3Nlc0lDRUNhbmRpZGF0ZUZpbHRlcmluZyA9IE5POworCisgICAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKE5TU3RyaW5nICopZGVzY3JpcHRpb24KK3sKKyAgICByZXR1
cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8JUA6ICVwPiIsIE5TU3RyaW5nRnJvbUNs
YXNzKHNlbGYuY2xhc3MpLCBzZWxmXTsKK30KKworLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUg
Kil6b25lCit7CisgICAgX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uICpjb25maWd1
cmF0aW9uID0gWyhfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKilbW3NlbGYgY2xh
c3NdIGFsbG9jV2l0aFpvbmU6em9uZV0gaW5pdF07CisKKyAgICBjb25maWd1cmF0aW9uLmFsbG93
c0luc2VjdXJlTWVkaWFDYXB0dXJlID0gc2VsZi5hbGxvd3NJbnNlY3VyZU1lZGlhQ2FwdHVyZTsK
KyAgICBjb25maWd1cmF0aW9uLnN1cHByZXNzZXNJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcgPSBzZWxm
LnN1cHByZXNzZXNJQ0VDYW5kaWRhdGVGaWx0ZXJpbmc7CisKKyAgICByZXR1cm4gY29uZmlndXJh
dGlvbjsKK30KKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0F1dG9tYXRpb25DbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0F1dG9tYXRpb25DbGllbnQuaAppbmRleCBkYTUyMzQ1
M2ZjOC4uMGUzZTc2NDA2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL0F1dG9tYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9BdXRvbWF0aW9uQ2xpZW50LmgKQEAgLTQ1LDE0ICs0NSwxNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+QXV0b21hdGlvbkNsaWVudCgpOwogCiBwcml2YXRlOgogICAgIC8vIEFQSTo6QXV0b21h
dGlvbkNsaWVudAogICAgIGJvb2wgYWxsb3dzUmVtb3RlQXV0b21hdGlvbihXZWJQcm9jZXNzUG9v
bCopIG92ZXJyaWRlIHsgcmV0dXJuIHJlbW90ZUF1dG9tYXRpb25BbGxvd2VkKCk7IH0KICAgICB2
b2lkIGRpZFJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbihXZWJLaXQ6OldlYlByb2Nlc3NQb29sKiwg
Y29uc3QgU3RyaW5nJiBzZXNzaW9uSWRlbnRpZmllcikgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHJl
cXVlc3RBdXRvbWF0aW9uU2Vzc2lvbldpdGhDYXBhYmlsaXRpZXMoTlNTdHJpbmcgKnNlc3Npb25J
ZGVudGlmaWVyLCBOU0RpY3Rpb25hcnkgKmZvcndhcmRlZENhcGFiaWxpdGllcykgb3ZlcnJpZGU7
CisKICAgICAvLyBSZW1vdGVJbnNwZWN0b3I6OkNsaWVudAogICAgIGJvb2wgcmVtb3RlQXV0b21h
dGlvbkFsbG93ZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHJlcXVlc3RBdXRvbWF0aW9u
U2Vzc2lvbihjb25zdCBTdHJpbmcmIHNlc3Npb25JZGVudGlmaWVyKSBvdmVycmlkZTsKIAogICAg
IFdLUHJvY2Vzc1Bvb2wgKm1fcHJvY2Vzc1Bvb2w7CiAgICAgV2Vha09iakNQdHI8aWQgPF9XS0F1
dG9tYXRpb25EZWxlZ2F0ZT4+IG1fZGVsZWdhdGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL0F1dG9tYXRpb25DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9BdXRvbWF0aW9uQ2xpZW50Lm1tCmluZGV4IGZlZDlmOTZmYjAxLi5mZWY4
NDcwODAxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvQXV0b21h
dGlvbkNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9BdXRvbWF0
aW9uQ2xpZW50Lm1tCkBAIC0yOCwyNyArMjgsMjggQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAK
ICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKIAogI2ltcG9ydCAiV0tQcm9jZXNzUG9vbC5o
IgogI2ltcG9ydCAiX1dLQXV0b21hdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJfV0tBdXRvbWF0
aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL1JlbW90
ZUluc3BlY3Rvci5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBBdXRvbWF0aW9uQ2xp
ZW50OjpBdXRvbWF0aW9uQ2xpZW50KFdLUHJvY2Vzc1Bvb2wgKnByb2Nlc3NQb29sLCBpZCA8X1dL
QXV0b21hdGlvbkRlbGVnYXRlPiBkZWxlZ2F0ZSkKICAgICA6IG1fcHJvY2Vzc1Bvb2wocHJvY2Vz
c1Bvb2wpCiAgICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQogewogICAgIG1fZGVsZWdhdGVNZXRo
b2RzLmFsbG93c1JlbW90ZUF1dG9tYXRpb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihfcHJvY2Vzc1Bvb2xBbGxvd3NSZW1vdGVBdXRvbWF0aW9uOildOwotICAgIG1f
ZGVsZWdhdGVNZXRob2RzLnJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbiA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9wcm9jZXNzUG9vbDpkaWRSZXF1ZXN0QXV0b21hdGlv
blNlc3Npb25XaXRoSWRlbnRpZmllcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy5yZXF1ZXN0
QXV0b21hdGlvblNlc3Npb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfcHJvY2Vzc1Bvb2w6ZGlkUmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uV2l0aElkZW50aWZpZXI6
Y29uZmlndXJhdGlvbjopXTsKIAogICAgIFJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkuc2V0
Q2xpZW50KHRoaXMpOwogfQogCiBBdXRvbWF0aW9uQ2xpZW50Ojp+QXV0b21hdGlvbkNsaWVudCgp
CiB7CiAgICAgUmVtb3RlSW5zcGVjdG9yOjpzaW5nbGV0b24oKS5zZXRDbGllbnQobnVsbHB0cik7
CkBAIC02NSwyMiArNjYsMjcgQEAgYm9vbCBBdXRvbWF0aW9uQ2xpZW50OjpyZW1vdGVBdXRvbWF0
aW9uQWxsb3dlZCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBbbV9kZWxlZ2F0ZS5nZXQoKSBfcHJv
Y2Vzc1Bvb2xBbGxvd3NSZW1vdGVBdXRvbWF0aW9uOm1fcHJvY2Vzc1Bvb2xdOwogCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCiB2b2lkIEF1dG9tYXRpb25DbGllbnQ6OnJlcXVlc3RBdXRvbWF0aW9u
U2Vzc2lvbihjb25zdCBTdHJpbmcmIHNlc3Npb25JZGVudGlmaWVyKQogeworICAgIE5TU3RyaW5n
ICpyZXRhaW5lZElkZW50aWZpZXIgPSBzZXNzaW9uSWRlbnRpZmllcjsKKyAgICByZXF1ZXN0QXV0
b21hdGlvblNlc3Npb25XaXRoQ2FwYWJpbGl0aWVzKHJldGFpbmVkSWRlbnRpZmllciwgbmlsKTsK
K30KKwordm9pZCBBdXRvbWF0aW9uQ2xpZW50OjpyZXF1ZXN0QXV0b21hdGlvblNlc3Npb25XaXRo
Q2FwYWJpbGl0aWVzKE5TU3RyaW5nICpzZXNzaW9uSWRlbnRpZmllciwgTlNEaWN0aW9uYXJ5ICpm
b3J3YXJkZWRDYXBhYmlsaXRpZXMpCit7CisgICAgX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1
cmF0aW9uICpjb25maWd1cmF0aW9uID0gW19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlv
biBuZXddOwogICAgIC8vIEZvcmNlIGNsaWVudHMgdG8gY3JlYXRlIGFuZCByZWdpc3RlciBhIHNl
c3Npb24gYXN5bmNocm9ub3VzbHkuIE90aGVyd2lzZSwKICAgICAvLyBSZW1vdGVJbnNwZWN0b3Ig
d2lsbCB0cnkgdG8gYWNxdWlyZSBpdHMgbG9jayB0byByZWdpc3RlciB0aGUgbmV3IHNlc3Npb24g
YW5kCiAgICAgLy8gZGVhZGxvY2sgYmVjYXVzZSBpdCdzIGFscmVhZHkgdGFrZW4gd2hpbGUgaGFu
ZGxpbmcgWFBDIG1lc3NhZ2VzLgotCi0gICAgTlNTdHJpbmcgKnJldGFpbmVkSWRlbnRpZmllciA9
IHNlc3Npb25JZGVudGlmaWVyOwogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWlu
X3F1ZXVlKCksIF57CiAgICAgICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy5yZXF1ZXN0QXV0b21h
dGlvblNlc3Npb24pCi0gICAgICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfcHJvY2Vzc1Bvb2w6
bV9wcm9jZXNzUG9vbCBkaWRSZXF1ZXN0QXV0b21hdGlvblNlc3Npb25XaXRoSWRlbnRpZmllcjpy
ZXRhaW5lZElkZW50aWZpZXJdOworICAgICAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3Byb2Nl
c3NQb29sOm1fcHJvY2Vzc1Bvb2wgZGlkUmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uV2l0aElkZW50
aWZpZXI6c2Vzc2lvbklkZW50aWZpZXIgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXTsKICAg
ICB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoUkVN
T1RFX0lOU1BFQ1RPUikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZGRhYTA1N2I3NjguLjU3ZmY3OTEyYjI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NDAsMTQgKzE0
NDAsMTYgQEAKIAkJOTk1NUE2RUMxQzc5ODBDMjAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNz
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1
QTZFQjFDNzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24uaCAqLzsgfTsKIAkJ
OTk1NUE2RUQxQzc5ODBDQTAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVBNkVBMUM3OTgw
QkIwMEVCNkE5MyAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgKi87IH07CiAJCTk5NTVBNkVG
MUM3OTgxMDgwMEVCNkE5MyAvKiBBdXRvbWF0aW9uLmpzb24gaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1QTZFOTFDNzk4MEJCMDBFQjZBOTMgLyogQXV0
b21hdGlvbi5qc29uICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTk5NTVBNkY0MUM3OTg2REMwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3Bh
dGNoZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk5NTVBNkYwMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJz
LmNwcCAqLzsgfTsKIAkJOTk1NUE2RjUxQzc5ODZFMDAwRUI2QTkzIC8qIEF1dG9tYXRpb25CYWNr
ZW5kRGlzcGF0Y2hlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk5NTVBNkYxMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3Bh
dGNoZXJzLmggKi87IH07CiAJCTk5NTVBNkY2MUM3OTg2RTMwMEVCNkE5MyAvKiBBdXRvbWF0aW9u
UHJvdG9jb2xPYmplY3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5NTVBNkYyMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xP
YmplY3RzLmNwcCAqLzsgfTsKIAkJOTk1NUE2RjcxQzc5ODZFNTAwRUI2QTkzIC8qIEF1dG9tYXRp
b25Qcm90b2NvbE9iamVjdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5NTVBNkYzMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xP
YmplY3RzLmggKi87IH07CisJCTk5Nzg4QUNCMUY0MjFEREEwMEMwODAwMCAvKiBfV0tBdXRvbWF0
aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5Nzg4QUM5MUY0MjFEQ0EwMEMwODAwMCAvKiBfV0tBdXRvbWF0aW9u
U2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk5OTc4OEFDQzFGNDIxREUyMDBDMDgwMDAgLyogX1dLQXV0b21hdGlv
blNlc3Npb25Db25maWd1cmF0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTk3ODhBQ0ExRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRpb25T
ZXNzaW9uQ29uZmlndXJhdGlvbi5tbSAqLzsgfTsKIAkJOTlCNzUwRjIxRjMzRUQ1QjAwQzFDRkI1
IC8qIEVsZW1lbnRBdHRyaWJ1dGUuanMgaW4gQ29weSBXZWJEcml2ZXIgQXRvbXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwNjU3MzQxRjMyM0NCRjAwOTQ0RjlDIC8qIEVs
ZW1lbnRBdHRyaWJ1dGUuanMgKi87IH07CiAJCTk5Qjc1MEYzMUYzM0VENUIwMEMxQ0ZCNSAvKiBF
bGVtZW50RGlzcGxheWVkLmpzIGluIENvcHkgV2ViRHJpdmVyIEF0b21zICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MDY1NzMzMUYzMjNDQkYwMDk0NEY5QyAvKiBFbGVtZW50
RGlzcGxheWVkLmpzICovOyB9OwogCQk5OUI3NTBGNDFGMzNFRDVCMDBDMUNGQjUgLyogRmluZE5v
ZGVzLmpzIGluIENvcHkgV2ViRHJpdmVyIEF0b21zICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5MDY1NzMxMUYzMjNDQkYwMDk0NEY5QyAvKiBGaW5kTm9kZXMuanMgKi87IH07
CiAJCTk5Qjc1MEY1MUYzM0VENUIwMEMxQ0ZCNSAvKiBGb3JtRWxlbWVudENsZWFyLmpzIGluIENv
cHkgV2ViRHJpdmVyIEF0b21zICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5
MDY1NzMyMUYzMjNDQkYwMDk0NEY5QyAvKiBGb3JtRWxlbWVudENsZWFyLmpzICovOyB9OwogCQk5
OUI3NTBGNjFGMzNFRDVCMDBDMUNGQjUgLyogRm9ybVN1Ym1pdC5qcyBpbiBDb3B5IFdlYkRyaXZl
ciBBdG9tcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTA2NTczNTFGMzIz
Q0JGMDA5NDRGOUMgLyogRm9ybVN1Ym1pdC5qcyAqLzsgfTsKIAkJOTlDM0FFMjQxREFEOEUzNzAw
QUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlDM0FFMjMxREFEOEUzNDAwQUY1QzE2IC8qIFdl
YkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tICovOyB9OwogCQk5OUMzQUUyNzFEQUQ5NDg5MDBBRjVD
MTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzNBRTI2MURBRDk0ODUwMEFGNUMxNiAvKiBXZWJB
dXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tICovOyB9OwpAQCAtMzc4MCwxNCArMzc4MiwxNiBAQAog
CQk5OTU1QTZFOTFDNzk4MEJCMDBFQjZBOTMgLyogQXV0b21hdGlvbi5qc29uICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5qc29uOyBwYXRoID0gQXV0b21hdGlvbi5qc29uOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5OTU1QTZFQTFDNzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0b21hdGlvblNl
c3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTU1QTZFQjFDNzk4MEJC
MDBFQjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQXV0b21hdGlvblNlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTk1NUE2RjAxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25CYWNrZW5kRGlz
cGF0Y2hlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0b21h
dGlvbkJhY2tlbmREaXNwYXRjaGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk5NTVBNkYxMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dG9tYXRpb25CYWNrZW5kRGlz
cGF0Y2hlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk1NUE2RjIxQzc5ODY2
NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5NTVBNkYzMUM3OTg2NjQwMEVCNkE5MyAvKiBB
dXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTk3ODhBQzkxRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRpb25TZXNzaW9uQ29u
ZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tBdXRvbWF0
aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTk3ODhBQ0ExRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJh
dGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0F1dG9t
YXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTlDM0FFMjMxREFEOEUzNDAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQXV0b21hdGlvblNl
c3Npb25NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5QzNBRTI2MURBRDk0
ODUwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDM0FFMkMxREFEQTZBNzAwQUY1QzE2IC8q
IFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk5QzgxRDU1MUMyMERGQkUwMDVDNEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dG9tYXRpb25DbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDODFENTYxQzIwREZCRTAwNUM0QzgyIC8qIEF1
dG9tYXRpb25DbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBBdXRvbWF0aW9uQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUM4
MUQ1QjFDMjBFODE3MDA1QzRDODIgLyogQVBJQXV0b21hdGlvbkNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBUElBdXRvbWF0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk5RTcxNEMxMUMxMjQ5RTYwMDY2NUIzQSAvKiBfV0tBdXRvbWF0
aW9uRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQXV0b21h
dGlvbkRlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NjE0LDE0ICs1
NjE4LDE2IEBACiAJCQkJMUE0M0U4MjYxODhGMzhFMjAwOUU0RDMwIC8qIERlcHJlY2F0ZWQgKi8s
CiAJCQkJMzdBNUUwMTIxOEJCRjkzNzAwMEEwODFFIC8qIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
LmggKi8sCiAJCQkJMzdBNUUwMTExOEJCRjkzNzAwMEEwODFFIC8qIF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvLm1tICovLAogCQkJCTM3OUE4NzM1MThCQkZBNDMwMDU4OEFGMiAvKiBfV0tBY3RpdmF0
ZWRFbGVtZW50SW5mb0ludGVybmFsLmggKi8sCiAJCQkJOTlFNzE0QzExQzEyNDlFNjAwNjY1QjNB
IC8qIF9XS0F1dG9tYXRpb25EZWxlZ2F0ZS5oICovLAogCQkJCTk5MEQyOEE3MUM2NDA0QjAwMDk4
Njk3NyAvKiBfV0tBdXRvbWF0aW9uU2Vzc2lvbi5oICovLAogCQkJCTk5MEQyOEFEMUM2NTE5MDQw
MDk4Njk3NyAvKiBfV0tBdXRvbWF0aW9uU2Vzc2lvbi5tbSAqLywKKwkJCQk5OTc4OEFDOTFGNDIx
RENBMDBDMDgwMDAgLyogX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmggKi8sCisJ
CQkJOTk3ODhBQ0ExRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmln
dXJhdGlvbi5tbSAqLywKIAkJCQk5OTBEMjhBODFDNjQwNEIwMDA5ODY5NzcgLyogX1dLQXV0b21h
dGlvblNlc3Npb25EZWxlZ2F0ZS5oICovLAogCQkJCTk5MEQyOEFGMUM2NTIwMzkwMDk4Njk3NyAv
KiBfV0tBdXRvbWF0aW9uU2Vzc2lvbkludGVybmFsLmggKi8sCiAJCQkJMUE1NzA0RjYxQkUwMUZG
NDAwODc0QUYxIC8qIF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCAqLywKIAkJCQkxQTU3MDRG
NTFCRTAxRkY0MDA4NzRBRjEgLyogX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5tbSAqLywKIAkJ
CQk4Mzg5MUI2ODFBNjhCRUJDMDAzMEYzODYgLyogX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0
ZS5oICovLAogCQkJCUExQTRGRTU3MThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZC5oICov
LAogCQkJCUExQTRGRTU4MThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZC5tbSAqLywKQEAg
LTgyOTcsMTQgKzgzMDMsMTUgQEAKIAkJCQk3Q0IzNjVBRDFEMzFEQzEwMDA3MTU4Q0EgLyogX1dL
VXNlckluaXRpYXRlZEFjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg3ODYx
RDFCREI1NEJGMDBEMDJBQkIgLyogX1dLVXNlclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTJEODc4NjIwMUJEQjU3RjUwMEQwMkFCQiAvKiBfV0tVc2VyU3R5bGVTaGVldEludGVybmFs
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTgxQjM4MTE4QkQ2NkFEMDAwN0ZEQUMgLyogX1dLVmlz
aXRlZExpbmtTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4MUIzODUxOEJENjczQTAwMDdG
REFDIC8qIF9XS1Zpc2l0ZWRMaW5rU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFFMjg2NzgxQzdFNzY1MTAwNjlBQzRGIC8qIF9XS1dlYnNpdGVEYXRhU2l6ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUFFMjg2ODAxQzdGOTJDMDAwNjlBQzRGIC8qIF9XS1dlYnNpdGVEYXRhU2l6
ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTc4OEFDQjFGNDIxRERBMDBDMDgwMDAg
LyogX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUZCNEM3MjFBREYxNTVEMDBCMzMzMzkgLyogX1dLV2Vic2l0ZURhdGFTdG9yZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTEyMEM4MzUxRTVCNzRCOTAwMjVCMjUwIC8qIF9XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRBOTNCNzFBRUIwOEVB
MDAxNTBFOUMgLyogX1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0IyMzc4QzFERjBERTZFMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0IyMzc4RTFERjBFMEQzMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBv
bGljaWVzSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMTVEQzcyMTkxRDgyREEwMERB
ODA3MiAvKiBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUEx
OUREM0MwMUQwN0QxNjgwMEFDODIzQiAvKiBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXJJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDIwOCwxNCArMTAyMTUsMTUgQEAKIAkJCQlFMUNDMUI5
MTEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Mzc3MTZBNUExOTVCOTEwNTAwRUU4QjFCIC8qIFByb2Nlc3NBc3NlcnRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODZGOTUzNjQxOEZGNTgzQzAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb25J
T1MubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUUxMTdGNjExREJCMzA5MDA5ODE2MTUgLyogUHJv
Y2Vzc0xhdW5jaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQjFEMTEyRjVGRTYwMDMz
N0JBQiAvKiBQcm9jZXNzTGF1bmNoZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NkU2N0Ey
NjE5MTBCOUQ5MDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBMTE4QTlFRTE5MDdBRDZGMDBGN0M5MkIgLyogUXVpY2tMb29rRG9jdW1lbnREYXRhLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTk5Nzg4QUNDMUY0MjFERTIwMEMwODAwMCAvKiBfV0tBdXRv
bWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDQ3QjU2
QzE4MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gaW4gU291cmNl
cyAqLywKIAkJCQkyRERGNzMxNjE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmVDb2xsZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCMTZBRTkxNjRCM0E4ODAw
MjkwRDYyIC8qIFJlbW90ZUxheWVyVHJlZUNvbnRleHQubW0gaW4gU291cmNlcyAqLywKIAkJCQky
RDI5RUNEMTE5MkYyQzJFMDA5ODRCNzggLyogUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hN
b25pdG9yLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCMTZBREQxNjQ4NTk4NDAwMjkwRDYyIC8q
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCMTZB
RTExNjQ4NjU2RDAwMjkwRDYyIC8qIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0g
aW4gU291cmNlcyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMgLyogUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
LS0gCjIuMTMuMyAoQXBwbGUgR2l0LTkxKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318931</attachid>
            <date>2017-08-23 15:24:15 -0700</date>
            <delta_ts>2017-08-25 10:06:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175562-20170823152321.patch</filename>
            <type>text/plain</type>
            <size>23753</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ZmJlNTIxM2JmZWM5MDRlZGMwMWE3Nzc1NGQ5ZTJlMzM3YzIzM2ZhLi4wMWQ0MjM1NWM1YzYzZTVi
NWM3M2JiZWZhOTc2NGNkZDhmOWE4NDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNy0wOC0xNCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgQXV0b21hdGlvbjogdXNlIGF1dG9tYXRpb24gc2Vzc2lvbiBjb25maWd1cmF0
aW9ucyB0byBwcm9wYWdhdGUgcGVyLXNlc3Npb24gc2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU2MgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMzA4NTMzNjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGEgQ29jb2Etc3BlY2lmaWMgY29kZSBwYXRoIHRvIGZvcndhcmQgY2FwYWJp
bGl0aWVzIHdoZW4gcmVxdWVzdGluZworICAgICAgICBhIG5ldyBzZXNzaW9uIGZyb20gdGhlIHJl
bW90ZSBpbnNwZWN0b3IgKGkuZS4sIGF1dG9tYXRpb24pIGNsaWVudC4KKworICAgICAgICBJZiBv
dGhlciBwb3J0cyB3YW50IHRvIHVzZSB0aGlzLCB0aGVuIHdlIGNhbiBjb252ZXJ0IENvY29hIHR5
cGVzIHRvIFdlYktpdCB0eXBlcyBsYXRlci4KKworICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUv
UmVtb3RlSW5zcGVjdG9yLmg6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNw
ZWN0b3JDb25zdGFudHMuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90
ZUluc3BlY3RvckNvY29hLm1tOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6
OnJlY2VpdmVkQXV0b21hdGlvblNlc3Npb25SZXF1ZXN0TWVzc2FnZSk6CisKIDIwMTctMDgtMjIg
IE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50
IFVuaWNvZGUgUmVnRXhwIHN1cHBvcnQgaW4gdGhlIFlBUlIgSklUCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRiMGUx
NWUyNjEwZjEwZDE3NTU2MTk1NWM5YzNlMzY2MTUyMTRmZWYuLjg5YmEwN2VkMDBhOWE1ZmYxYWY5
MTY0NjZmYjc1YjhjYmQzY2ZjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTctMDgt
MTQgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEF1dG9tYXRp
b246IHVzZSBhdXRvbWF0aW9uIHNlc3Npb24gY29uZmlndXJhdGlvbnMgdG8gcHJvcGFnYXRlIHBl
ci1zZXNzaW9uIHNldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzU1NjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwODUzMzYyPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgV2ViRHJp
dmVyIGNhcGFiaWxpdGllcyBuZWVkIFdlYktpdCBzdXBwb3J0IGluIG9yZGVyIHRvIGJlIGltcGxl
bWVudGVkIGNvcnJlY3RseS4KKyAgICAgICAgVGhlcmUgaXMgY3VycmVudGx5IG5vIGVhc3kgd2F5
IHRvIGZvcndhcmQgV2ViRHJpdmVyIGNhcGFiaWxpdHkga2V5cyBhbmQgdmFsdWVzIHRvIFdlYktp
dAorICAgICAgICBhdCBzZXNzaW9uIGNyZWF0aW9uIHRpbWUuIFRoaXMgaXMgdW5mb3J0dW5hdGUs
IGFzIGl0IHdvdWxkIGJlIGJlc3QgdG8gaW1wbGVtZW50IG1hbnkgb2YKKyAgICAgICAgdGhlbSB2
aWEgZXhpc3RpbmcgbWVjaGFuaXNtcyAoaS5lLiwgV0tQcmVmZXJlbmNlcyBwcm9wZXJ0aWVzKSB0
aGF0IG5lZWQgdG8gYmUgc2V0IHVwCisgICAgICAgIGJlZm9yZSBhbnkgd2luZG93cyBhcmUgb3Bl
bmVkIGluIHRoZSBzZXNzaW9uLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBXZWJLaXQtc2lk
ZSBwbHVtYmluZyB0byBmb3J3YXJkIG5hbWVkIGNhcGFiaWxpdGllcyBmcm9tIGEgcmVtb3RlCisg
ICAgICAgIFdlYkRyaXZlciBjbGllbnQgdG8gdGhlIF9XS0F1dG9tYXRpb25TZXNzaW9uIGFuZCBp
dHMgZGVsZWdhdGUgaW4gV2ViS2l0MiBVSVByb2Nlc3MuCisgICAgICAgIFRoZXNlIGNhcGFiaWxp
dGllcyBhcmUgZXhwb3NlZCB2aWEgQVBJIGluIHdheXMgdGhhdCBhYnN0cmFjdCBhd2F5IGRldGFp
bHMgb2YgaG93IHRoZQorICAgICAgICBjYXBhYmlsaXRpZXMgYXJlIHJlcHJlc2VudGVkIGluIFJX
SSB3aXJlIHByb3RvY29sIG1lc3NhZ2VzLgorCisgICAgICAgIEluIHRoZSBDb2NvYSBBUEksIHRo
ZXNlIGNhcGFiaWxpdGllcyBhcmUgZXhwb3NlZCB2aWEgYSBzZXNzaW9uIGNvbmZpZ3VyYXRpb24g
b2JqZWN0CisgICAgICAgIHRoYXQncyBzaW1pbGFyIHRvIFdLV2ViVmlldydzIFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb24uIEEgc2Vzc2lvbidzIGNvbmZpZ3VyYXRpb24gaXMgY29waWVkCisgICAgICAg
IGFuZCB1c2VkIGF0IGluaXRpYWxpemF0aW9uIGFuZCBjYW5ub3QgYmUgbW9kaWZpZWQgYWZ0ZXIg
dGhlIHNlc3Npb24gaXMgY3JlYXRlZC4KKyAgICAgICAgQ29kZSBpbiB0aGUgQ29jb2Egc3ViY2xh
c3Mgb2YgQVBJOjpBdXRvbWF0aW9uQ2xpZW50IHRyYW5zbGF0ZXMgYmV0d2VlbiBSV0kgcHJvdG9j
b2wKKyAgICAgICAgY2FwYWJpbGl0eSBuYW1lcyBhbmQgcHJvcGVydHkgdmFsdWVzIG9uIHRoZSBf
V0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24gaXQKKyAgICAgICAgdXNlcyB0byByZXF1
ZXN0IGEgbmV3IHNlc3Npb24uCisKKyAgICAgICAgTGF0ZXIgcGF0Y2hlcyB3aWxsIGhvb2sgdXAg
dGhlIHR3byBwcm9wZXJ0aWVzIHByZXNlbnQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gaW4gdGhpcyBw
YXRjaC4KKyAgICAgICAgTW9zdCBvZiB0aGlzIHBhdGNoIGlzIGp1c3QgZ2VuZXJpYyBwbHVtYmlu
ZyB3aXRob3V0IGRvaW5nIGFueSBjYXBhYmlsaXR5LXNwZWNpZmljIHdvcmsuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25EZWxlZ2F0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24uaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uLm1tOgorICAgICAgICAoLVtf
V0tBdXRvbWF0aW9uU2Vzc2lvbiBpbml0XSk6CisgICAgICAgICgtW19XS0F1dG9tYXRpb25TZXNz
aW9uIGluaXRXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bX1dLQXV0b21hdGlvblNl
c3Npb24gY29uZmlndXJhdGlvbl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
QXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uRGVsZWdhdGUuaC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5t
bTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9t
YXRpb25TZXNzaW9uLmguCisgICAgICAgICgtW19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJh
dGlvbiBpbml0XSk6CisgICAgICAgICgtW19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlv
biBkZXNjcmlwdGlvbl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9BdXRvbWF0aW9uQ2xp
ZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL0F1dG9tYXRpb25DbGllbnQubW06Cisg
ICAgICAgIChXZWJLaXQ6OkF1dG9tYXRpb25DbGllbnQ6OkF1dG9tYXRpb25DbGllbnQpOgorICAg
ICAgICAoV2ViS2l0OjpBdXRvbWF0aW9uQ2xpZW50OjpyZXF1ZXN0QXV0b21hdGlvblNlc3Npb24p
OgorICAgICAgICAoV2ViS2l0OjpBdXRvbWF0aW9uQ2xpZW50OjpyZXF1ZXN0QXV0b21hdGlvblNl
c3Npb25XaXRoQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxNy0wOC0yMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KIAogICAgICAgICBfV0tUaHVtYm5haWxWaWV3IHNob3VsZCB1c2UgdGhlIHNjcmVl
biBjb2xvciBzcGFjZSBpbnN0ZWFkIG9mIHNSR0IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmgKaW5kZXggODNjZjI1
ODYxMmFmZDA5ODMzYmIyOGFjN2VlOGUwNzdkN2QwMzJlNi4uZDAwZGUyYjcwM2QzMWZjNWRlNjgw
YTgwZGM4OTA3MDYxY2QyZjQxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmgKQEAgLTc2LDYgKzc2LDkgQEAg
cHVibGljOgogICAgICAgICB2aXJ0dWFsIFN0cmluZyBicm93c2VyTmFtZSgpIGNvbnN0IHsgcmV0
dXJuIHsgfTsgfQogICAgICAgICB2aXJ0dWFsIFN0cmluZyBicm93c2VyVmVyc2lvbigpIGNvbnN0
IHsgcmV0dXJuIHsgfTsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEF1dG9tYXRpb25T
ZXNzaW9uKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkZW50aWZpZXIpID0gMDsKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbldp
dGhDYXBhYmlsaXRpZXMoTlNTdHJpbmcgKnNlc3Npb25JZGVudGlmaWVyLCBOU0RpY3Rpb25hcnkg
KmZvcndhcmRlZENhcGFiaWxpdGllcykgPSAwOworI2VuZGlmCiAgICAgfTsKIAogICAgIHN0YXRp
YyB2b2lkIHN0YXJ0RGlzYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3RvckNvbnN0YW50cy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yQ29uc3RhbnRzLmgK
aW5kZXggNzAwNjU3YmUwNWMyMjQ3NjAwNmZjMzkyOGZlMGFhMDNlZDlhYjE0NC4uMTg1ZjQ0MTBm
ZDZmNTdlYWM0NzY2MGViNzUxMDA4MjQyOGMyNjM4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yQ29uc3RhbnRzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9y
Q29uc3RhbnRzLmgKQEAgLTg0LDYgKzg0LDcgQEAKIAogI2RlZmluZSBXSVJBdXRvbWF0aW9uVGFy
Z2V0SXNQYWlyZWRLZXkgICAgICAgICAgICAgQCJXSVJBdXRvbWF0aW9uVGFyZ2V0SXNQYWlyZWRL
ZXkiCiAjZGVmaW5lIFdJUlNlc3Npb25JZGVudGlmaWVyS2V5ICAgICAgICAgICAgICAgICAgICBA
IldJUlNlc3Npb25JZGVudGlmaWVyS2V5IgorI2RlZmluZSBXSVJTZXNzaW9uQ2FwYWJpbGl0aWVz
S2V5ICAgICAgICAgICAgICAgICAgQCJXSVJTZXNzaW9uQ2FwYWJpbGl0aWVzS2V5IgogI2RlZmlu
ZSBXSVJBdXRvbWF0aW9uU2Vzc2lvblJlcXVlc3RNZXNzYWdlICAgICAgICAgQCJXSVJBdXRvbWF0
aW9uU2Vzc2lvblJlcXVlc3RNZXNzYWdlIgogCiAvLyBUaGVzZSBkZWZpbml0aW9ucyBhcmUgc2hh
cmVkIHdpdGggYSBTaW11bGF0b3Igd2ViaW5zcGVjdG9yZCBhbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUluc3BlY3RvckNv
Y29hLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVt
b3RlSW5zcGVjdG9yQ29jb2EubW0KaW5kZXggY2E3NjgxMTlkOTc3ZTNmOTYzZDhjNmI0NDE1ZmJj
MGIyZjBmNzJjNy4uZTg1ODU3YzRlNTRjMTg5YmFhNDNjMzZmMmYwYWNiYWNmNTExY2Q3ZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvY29jb2EvUmVt
b3RlSW5zcGVjdG9yQ29jb2EubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvY29jb2EvUmVtb3RlSW5zcGVjdG9yQ29jb2EubW0KQEAgLTY3OCwxMyArNjc4LDE2
IEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yOjpyZWNlaXZlZEF1dG9tYXRpb25TZXNzaW9uUmVxdWVz
dE1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VyCiAgICAgTlNTdHJpbmcgKnN1Z2dlc3RlZFNlc3Np
b25JZGVudGlmaWVyID0gdXNlckluZm9bV0lSU2Vzc2lvbklkZW50aWZpZXJLZXldOwogICAgIEJB
SUxfSUZfVU5FWFBFQ1RFRF9UWVBFKHN1Z2dlc3RlZFNlc3Npb25JZGVudGlmaWVyLCBbTlNTdHJp
bmcgY2xhc3NdKTsKIAorICAgIE5TRGljdGlvbmFyeSAqZm9yd2FyZGVkQ2FwYWJpbGl0aWVzID0g
dXNlckluZm9bV0lSU2Vzc2lvbkNhcGFiaWxpdGllc0tleV07CisgICAgQkFJTF9JRl9VTkVYUEVD
VEVEX1RZUEVfQUxMT1dJTkdfTklMKGZvcndhcmRlZENhcGFiaWxpdGllcywgW05TRGljdGlvbmFy
eSBjbGFzc10pOworCiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKCFtX2NsaWVudENhcGFiaWxpdGllcyB8fCAhbV9jbGllbnRDYXBhYmlsaXRpZXMtPnJlbW90
ZUF1dG9tYXRpb25BbGxvd2VkKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC0+cmVx
dWVzdEF1dG9tYXRpb25TZXNzaW9uKHN1Z2dlc3RlZFNlc3Npb25JZGVudGlmaWVyKTsKKyAgICBt
X2NsaWVudC0+cmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uV2l0aENhcGFiaWxpdGllcyhzdWdnZXN0
ZWRTZXNzaW9uSWRlbnRpZmllciwgZm9yd2FyZGVkQ2FwYWJpbGl0aWVzKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgSW5zcGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQXV0b21hdGlvbkRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvbkRlbGVnYXRlLmgKaW5kZXggN2M3Y2U5MWMzNTZlZTA1
MDdlMTEyMWMzNDcyYzlmMDNiYzVlMDJmMi4uMWNkMjMzYzdkM2VhMDg3OTYyN2QzMDY2OTk3MjQ5
NGE2ZmQ2OGM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0F1dG9tYXRpb25EZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tBdXRvbWF0aW9uRGVsZWdhdGUuaApAQCAtMjgsMTEgKzI4LDEyIEBACiAjaWYg
V0tfQVBJX0VOQUJMRUQKIAogQGNsYXNzIFdLUHJvY2Vzc1Bvb2w7CitAY2xhc3MgX1dLQXV0b21h
dGlvblNlc3Npb25Db25maWd1cmF0aW9uOwogCiBAcHJvdG9jb2wgX1dLQXV0b21hdGlvbkRlbGVn
YXRlIDxOU09iamVjdD4KIEBvcHRpb25hbAogLSAoQk9PTClfcHJvY2Vzc1Bvb2xBbGxvd3NSZW1v
dGVBdXRvbWF0aW9uOihXS1Byb2Nlc3NQb29sICopcHJvY2Vzc1Bvb2w7Ci0tICh2b2lkKV9wcm9j
ZXNzUG9vbDooV0tQcm9jZXNzUG9vbCAqKXByb2Nlc3NQb29sIGRpZFJlcXVlc3RBdXRvbWF0aW9u
U2Vzc2lvbldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXI7CistICh2b2lkKV9w
cm9jZXNzUG9vbDooV0tQcm9jZXNzUG9vbCAqKXByb2Nlc3NQb29sIGRpZFJlcXVlc3RBdXRvbWF0
aW9uU2Vzc2lvbldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIgY29uZmlndXJh
dGlvbjooX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbjsK
IEBlbmQKIAogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24uaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IGY0
NWNjOTZmYzQ1MTEzOGYzOWFkOTIwZTk1NzE1YTFiZmZmZTNjMjcuLjk5ZjdkYWQzMTlkYmFmNjRj
MTZjY2I5NzMyNzBjNDQzYTg5YWFlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5oCkBAIC0yOSw2ICsyOSw3
IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCitAY2xhc3MgX1dLQXV0
b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uOwogQHByb3RvY29sIF9XS0F1dG9tYXRpb25TZXNz
aW9uRGVsZWdhdGU7CiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCkBAIC0zNyw5ICszOCwxMyBA
QCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKQogQGludGVyZmFj
ZSBfV0tBdXRvbWF0aW9uU2Vzc2lvbiA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSBOU1N0cmluZyAqc2Vzc2lvbklkZW50aWZpZXI7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIGNvcHkpIF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbiAqY29u
ZmlndXJhdGlvbjsKKwogQHByb3BlcnR5IChub25hdG9taWMsIHdlYWspIGlkIDxfV0tBdXRvbWF0
aW9uU2Vzc2lvbkRlbGVnYXRlPiBkZWxlZ2F0ZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSwgZ2V0dGVyPWlzUGFpcmVkKSBCT09MIHBhaXJlZDsKIAorLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoQ29uZmlndXJhdGlvbjooX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uICop
Y29uZmlndXJhdGlvbiBOU19ERVNJR05BVEVEX0lOSVRJQUxJWkVSOworCiAjaWYgIVRBUkdFVF9P
U19JUEhPTkUKIC0gKEJPT0wpd2FzRXZlbnRTeW50aGVzaXplZEZvckF1dG9tYXRpb246KE5TRXZl
bnQgKilldmVudDsKIC0gKHZvaWQpbWFya0V2ZW50QXNTeW50aGVzaXplZEZvckF1dG9tYXRpb246
KE5TRXZlbnQgKilldmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5tbQppbmRleCAyMjNlZjE1YTg5Mjk1ODI2
OGM0Mzg0Yjg0YThlNDBiNGQyOGE4YzYzLi4xZjRiNDc3MmJiNmRmNzQ2NTY0ZmE1MTAzODM4YmQ2
M2IxOTU4YjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLQXV0b21hdGlvblNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uLm1tCkBAIC0zMywxOSArMzMsMjggQEAKICNpbXBv
cnQgIldLUHJvY2Vzc1Bvb2wuaCIKICNpbXBvcnQgIldlYWtPYmpDUHRyLmgiCiAjaW1wb3J0ICJX
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIgorI2ltcG9ydCAiX1dLQXV0b21hdGlvblNlc3Npb25Db25m
aWd1cmF0aW9uLmgiCiAjaW1wb3J0ICJfV0tBdXRvbWF0aW9uU2Vzc2lvbkRlbGVnYXRlLmgiCiAK
IEBpbXBsZW1lbnRhdGlvbiBfV0tBdXRvbWF0aW9uU2Vzc2lvbiB7CisgICAgX1dLQXV0b21hdGlv
blNlc3Npb25Db25maWd1cmF0aW9uICpfY29uZmlndXJhdGlvbjsKICAgICBXZWJLaXQ6OldlYWtP
YmpDUHRyPGlkIDxfV0tBdXRvbWF0aW9uU2Vzc2lvbkRlbGVnYXRlPj4gX2RlbGVnYXRlOwogfQog
CiAtIChpbnN0YW5jZXR5cGUpaW5pdAogeworICAgIHJldHVybiBbc2VsZiBpbml0V2l0aENvbmZp
Z3VyYXRpb246W19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbiBuZXddXTsKK30KKwor
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29uZmlndXJhdGlvbjooX1dLQXV0b21hdGlvblNlc3Np
b25Db25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgorewogICAgIGlmICghKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgQVBJOjpPYmplY3Q6OmNvbnN0
cnVjdEluV3JhcHBlcjxXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uPihzZWxmKTsKIAorICAg
IF9jb25maWd1cmF0aW9uID0gW2NvbmZpZ3VyYXRpb24gY29weV07CisKICAgICByZXR1cm4gc2Vs
ZjsKIH0KIApAQCAtNzgsNiArODcsMTEgQEAgLSAodm9pZClzZXRTZXNzaW9uSWRlbnRpZmllcjoo
TlNTdHJpbmcgKilzZXNzaW9uSWRlbnRpZmllcgogICAgIF9zZXNzaW9uLT5zZXRTZXNzaW9uSWRl
bnRpZmllcihzZXNzaW9uSWRlbnRpZmllcik7CiB9CiAKKy0gKF9XS0F1dG9tYXRpb25TZXNzaW9u
Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KK3sKKyAgICByZXR1cm4gW19jb25maWd1cmF0
aW9uIGNvcHldOworfQorCiAtIChCT09MKWlzUGFpcmVkCiB7CiAgICAgcmV0dXJuIF9zZXNzaW9u
LT5pc1BhaXJlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVjMTJkY2NkYjc2MTJhZGE5NWM0YzQyY2VmY2YyYTM3NDliMWY5YzgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21h
dGlvblNlc3Npb25Db25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisK
KyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCitOU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgorCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKQorQGludGVyZmFj
ZSBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24gOiBOU09iamVjdCA8TlNDb3B5aW5n
PgorCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NJbnNlY3VyZU1lZGlhQ2FwdHVy
ZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHN1cHByZXNzZXNJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmc7CisKK0BlbmQKKworTlNfQVNTVU1FX05PTk5VTExfRU5ECisKKyNlbmRpZiAvLyBXS19B
UElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24ubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2VkZDQ2NzYxN2Q4ZTE4NTM5OGE0ZjY1NTYwZTcxYjRmOWRhMzI0MgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0
aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24ubW0KQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1
cmF0aW9uLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCitAaW1wbGVtZW50YXRpb24gX1dLQXV0
b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uCisKKy0gKGluc3RhbmNldHlwZSlpbml0Cit7Cisg
ICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAg
ICBfYWxsb3dzSW5zZWN1cmVNZWRpYUNhcHR1cmUgPSBZRVM7CisgICAgX3N1cHByZXNzZXNJQ0VD
YW5kaWRhdGVGaWx0ZXJpbmcgPSBOTzsKKworICAgIHJldHVybiBzZWxmOworfQorCistIChOU1N0
cmluZyAqKWRlc2NyaXB0aW9uCit7CisgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAiPCVAOiAlcD4iLCBOU1N0cmluZ0Zyb21DbGFzcyhzZWxmLmNsYXNzKSwgc2VsZl07Cit9
CisKKy0gKGlkKWNvcHlXaXRoWm9uZTooTlNab25lICopem9uZQoreworICAgIF9XS0F1dG9tYXRp
b25TZXNzaW9uQ29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiA9IFsoX1dLQXV0b21hdGlvblNl
c3Npb25Db25maWd1cmF0aW9uICopW1tzZWxmIGNsYXNzXSBhbGxvY1dpdGhab25lOnpvbmVdIGlu
aXRdOworCisgICAgY29uZmlndXJhdGlvbi5hbGxvd3NJbnNlY3VyZU1lZGlhQ2FwdHVyZSA9IHNl
bGYuYWxsb3dzSW5zZWN1cmVNZWRpYUNhcHR1cmU7CisgICAgY29uZmlndXJhdGlvbi5zdXBwcmVz
c2VzSUNFQ2FuZGlkYXRlRmlsdGVyaW5nID0gc2VsZi5zdXBwcmVzc2VzSUNFQ2FuZGlkYXRlRmls
dGVyaW5nOworCisgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247Cit9CisKK0BlbmQKKworI2VuZGlm
IC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9BdXRvbWF0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9B
dXRvbWF0aW9uQ2xpZW50LmgKaW5kZXggZGE1MjM0NTNmYzg1YWNhNGQxNjU3MDhhYzQ2MTg0YjY0
OTE4MWRhOC4uMGUzZTc2NDA2NGNiNDhlMDNmMDA2ZWViN2E0Yjg1NTVmNzZhZTJlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvQXV0b21hdGlvbkNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0F1dG9tYXRpb25DbGllbnQuaApAQCAt
NDksNiArNDksOCBAQCBwcml2YXRlOgogICAgIGJvb2wgYWxsb3dzUmVtb3RlQXV0b21hdGlvbihX
ZWJQcm9jZXNzUG9vbCopIG92ZXJyaWRlIHsgcmV0dXJuIHJlbW90ZUF1dG9tYXRpb25BbGxvd2Vk
KCk7IH0KICAgICB2b2lkIGRpZFJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbihXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sKiwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWRlbnRpZmllcikgb3ZlcnJpZGU7CiAK
KyAgICB2b2lkIHJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbldpdGhDYXBhYmlsaXRpZXMoTlNTdHJp
bmcgKnNlc3Npb25JZGVudGlmaWVyLCBOU0RpY3Rpb25hcnkgKmZvcndhcmRlZENhcGFiaWxpdGll
cykgb3ZlcnJpZGU7CisKICAgICAvLyBSZW1vdGVJbnNwZWN0b3I6OkNsaWVudAogICAgIGJvb2wg
cmVtb3RlQXV0b21hdGlvbkFsbG93ZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHJlcXVl
c3RBdXRvbWF0aW9uU2Vzc2lvbihjb25zdCBTdHJpbmcmIHNlc3Npb25JZGVudGlmaWVyKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0F1dG9tYXRp
b25DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9BdXRvbWF0aW9uQ2xp
ZW50Lm1tCmluZGV4IGZlZDlmOTZmYjAxMDdkODVlZjA2MDg2YzA2YjMyM2JhMWJmMDM3NTkuLmZl
Zjg0NzA4MDE3ZDdkMzc3NzdkYTJjMjdhYzE3MjQwNDVhYjY3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0F1dG9tYXRpb25DbGllbnQubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvQXV0b21hdGlvbkNsaWVudC5tbQpAQCAtMzIsNiArMzIs
NyBAQAogCiAjaW1wb3J0ICJXS1Byb2Nlc3NQb29sLmgiCiAjaW1wb3J0ICJfV0tBdXRvbWF0aW9u
RGVsZWdhdGUuaCIKKyNpbXBvcnQgIl9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5o
IgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvUmVtb3RlSW5zcGVjdG9yLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDQsNyArNDUsNyBAQCBBdXRvbWF0aW9uQ2xpZW50
OjpBdXRvbWF0aW9uQ2xpZW50KFdLUHJvY2Vzc1Bvb2wgKnByb2Nlc3NQb29sLCBpZCA8X1dLQXV0
b21hdGlvbgogICAgICwgbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKIHsKICAgICBtX2RlbGVnYXRlTWV0
aG9kcy5hbGxvd3NSZW1vdGVBdXRvbWF0aW9uID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3Byb2Nlc3NQb29sQWxsb3dzUmVtb3RlQXV0b21hdGlvbjopXTsKLSAgICBt
X2RlbGVnYXRlTWV0aG9kcy5yZXF1ZXN0QXV0b21hdGlvblNlc3Npb24gPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfcHJvY2Vzc1Bvb2w6ZGlkUmVxdWVzdEF1dG9tYXRp
b25TZXNzaW9uV2l0aElkZW50aWZpZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMucmVxdWVz
dEF1dG9tYXRpb25TZXNzaW9uID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3Byb2Nlc3NQb29sOmRpZFJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbldpdGhJZGVudGlmaWVy
OmNvbmZpZ3VyYXRpb246KV07CiAKICAgICBSZW1vdGVJbnNwZWN0b3I6OnNpbmdsZXRvbigpLnNl
dENsaWVudCh0aGlzKTsKIH0KQEAgLTY5LDE0ICs3MCwxOSBAQCBib29sIEF1dG9tYXRpb25DbGll
bnQ6OnJlbW90ZUF1dG9tYXRpb25BbGxvd2VkKCkgY29uc3QKIAogdm9pZCBBdXRvbWF0aW9uQ2xp
ZW50OjpyZXF1ZXN0QXV0b21hdGlvblNlc3Npb24oY29uc3QgU3RyaW5nJiBzZXNzaW9uSWRlbnRp
ZmllcikKIHsKKyAgICBOU1N0cmluZyAqcmV0YWluZWRJZGVudGlmaWVyID0gc2Vzc2lvbklkZW50
aWZpZXI7CisgICAgcmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uV2l0aENhcGFiaWxpdGllcyhyZXRh
aW5lZElkZW50aWZpZXIsIG5pbCk7Cit9CisKK3ZvaWQgQXV0b21hdGlvbkNsaWVudDo6cmVxdWVz
dEF1dG9tYXRpb25TZXNzaW9uV2l0aENhcGFiaWxpdGllcyhOU1N0cmluZyAqc2Vzc2lvbklkZW50
aWZpZXIsIE5TRGljdGlvbmFyeSAqZm9yd2FyZGVkQ2FwYWJpbGl0aWVzKQoreworICAgIF9XS0F1
dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiA9IFtfV0tBdXRvbWF0
aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24gbmV3XTsKICAgICAvLyBGb3JjZSBjbGllbnRzIHRvIGNy
ZWF0ZSBhbmQgcmVnaXN0ZXIgYSBzZXNzaW9uIGFzeW5jaHJvbm91c2x5LiBPdGhlcndpc2UsCiAg
ICAgLy8gUmVtb3RlSW5zcGVjdG9yIHdpbGwgdHJ5IHRvIGFjcXVpcmUgaXRzIGxvY2sgdG8gcmVn
aXN0ZXIgdGhlIG5ldyBzZXNzaW9uIGFuZAogICAgIC8vIGRlYWRsb2NrIGJlY2F1c2UgaXQncyBh
bHJlYWR5IHRha2VuIHdoaWxlIGhhbmRsaW5nIFhQQyBtZXNzYWdlcy4KLQotICAgIE5TU3RyaW5n
ICpyZXRhaW5lZElkZW50aWZpZXIgPSBzZXNzaW9uSWRlbnRpZmllcjsKICAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewogICAgICAgICBpZiAobV9kZWxlZ2F0
ZU1ldGhvZHMucmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uKQotICAgICAgICAgICAgW21fZGVsZWdh
dGUuZ2V0KCkgX3Byb2Nlc3NQb29sOm1fcHJvY2Vzc1Bvb2wgZGlkUmVxdWVzdEF1dG9tYXRpb25T
ZXNzaW9uV2l0aElkZW50aWZpZXI6cmV0YWluZWRJZGVudGlmaWVyXTsKKyAgICAgICAgICAgIFtt
X2RlbGVnYXRlLmdldCgpIF9wcm9jZXNzUG9vbDptX3Byb2Nlc3NQb29sIGRpZFJlcXVlc3RBdXRv
bWF0aW9uU2Vzc2lvbldpdGhJZGVudGlmaWVyOnNlc3Npb25JZGVudGlmaWVyIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl07CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY5ZWE5ZjQ5NmVhY2IzZGQzZDFhMTIx
ZWU0NjBkY2ExOWI3M2Y5NmYuLjU0NDc2OTljOWQ0YWMyNDcyNGI3YTdmNDRiOTAzYTEzZjE3OTAw
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTQ0OCw2ICsxNDQ4LDggQEAKIAkJOTk1NUE2RjUxQzc5ODZFMDAwRUI2QTkzIC8qIEF1
dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVBNkYxMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9u
QmFja2VuZERpc3BhdGNoZXJzLmggKi87IH07CiAJCTk5NTVBNkY2MUM3OTg2RTMwMEVCNkE5MyAv
KiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVBNkYyMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0
aW9uUHJvdG9jb2xPYmplY3RzLmNwcCAqLzsgfTsKIAkJOTk1NUE2RjcxQzc5ODZFNTAwRUI2QTkz
IC8qIEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVBNkYzMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0
aW9uUHJvdG9jb2xPYmplY3RzLmggKi87IH07CisJCTk5Nzg4QUNCMUY0MjFEREEwMEMwODAwMCAv
KiBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5Nzg4QUM5MUY0MjFEQ0EwMEMwODAwMCAvKiBf
V0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5OTc4OEFDQzFGNDIxREUyMDBDMDgwMDAgLyog
X1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk3ODhBQ0ExRjQyMURDQTAwQzA4MDAwIC8qIF9X
S0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5tbSAqLzsgfTsKIAkJOTlCNzUwRjIxRjMz
RUQ1QjAwQzFDRkI1IC8qIEVsZW1lbnRBdHRyaWJ1dGUuanMgaW4gQ29weSBXZWJEcml2ZXIgQXRv
bXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwNjU3MzQxRjMyM0NCRjAw
OTQ0RjlDIC8qIEVsZW1lbnRBdHRyaWJ1dGUuanMgKi87IH07CiAJCTk5Qjc1MEYzMUYzM0VENUIw
MEMxQ0ZCNSAvKiBFbGVtZW50RGlzcGxheWVkLmpzIGluIENvcHkgV2ViRHJpdmVyIEF0b21zICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MDY1NzMzMUYzMjNDQkYwMDk0NEY5
QyAvKiBFbGVtZW50RGlzcGxheWVkLmpzICovOyB9OwogCQk5OUI3NTBGNDFGMzNFRDVCMDBDMUNG
QjUgLyogRmluZE5vZGVzLmpzIGluIENvcHkgV2ViRHJpdmVyIEF0b21zICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MDY1NzMxMUYzMjNDQkYwMDk0NEY5QyAvKiBGaW5kTm9k
ZXMuanMgKi87IH07CkBAIC0zNzkzLDYgKzM3OTUsOCBAQAogCQk5OTU1QTZGMTFDNzk4NjY0MDBF
QjZBOTMgLyogQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5NTVBNkYyMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0
aW9uUHJvdG9jb2xPYmplY3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5OTU1QTZGMzFDNzk4NjY0MDBFQjZBOTMgLyogQXV0b21hdGlvblByb3RvY29sT2Jq
ZWN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRvbWF0aW9uUHJvdG9j
b2xPYmplY3RzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5Nzg4QUM5MUY0MjFE
Q0EwMEMwODAwMCAvKiBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5Nzg4QUNBMUY0MjFEQ0EwMEMw
ODAwMCAvKiBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3Vy
YXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5QzNBRTIzMURBRDhFMzQw
MEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5OUMzQUUyNjFEQUQ5NDg1MDBBRjVDMTYgLyogV2ViQXV0
b21hdGlvblNlc3Npb25Db2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk5QzNBRTJDMURBREE2QTcwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lv
bk1hY3Jvcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRvbWF0aW9u
U2Vzc2lvbk1hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTYyNyw2ICs1
NjMxLDggQEAKIAkJCQk5OUU3MTRDMTFDMTI0OUU2MDA2NjVCM0EgLyogX1dLQXV0b21hdGlvbkRl
bGVnYXRlLmggKi8sCiAJCQkJOTkwRDI4QTcxQzY0MDRCMDAwOTg2OTc3IC8qIF9XS0F1dG9tYXRp
b25TZXNzaW9uLmggKi8sCiAJCQkJOTkwRDI4QUQxQzY1MTkwNDAwOTg2OTc3IC8qIF9XS0F1dG9t
YXRpb25TZXNzaW9uLm1tICovLAorCQkJCTk5Nzg4QUM5MUY0MjFEQ0EwMEMwODAwMCAvKiBfV0tB
dXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAqLywKKwkJCQk5OTc4OEFDQTFGNDIxRENB
MDBDMDgwMDAgLyogX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLm1tICovLAogCQkJ
CTk5MEQyOEE4MUM2NDA0QjAwMDk4Njk3NyAvKiBfV0tBdXRvbWF0aW9uU2Vzc2lvbkRlbGVnYXRl
LmggKi8sCiAJCQkJOTkwRDI4QUYxQzY1MjAzOTAwOTg2OTc3IC8qIF9XS0F1dG9tYXRpb25TZXNz
aW9uSW50ZXJuYWwuaCAqLywKIAkJCQkxQTU3MDRGNjFCRTAxRkY0MDA4NzRBRjEgLyogX1dLQ29u
dGV4dE1lbnVFbGVtZW50SW5mby5oICovLApAQCAtODI2Miw2ICs4MjY4LDcgQEAKIAkJCQkzNzlB
ODczNjE4QkJGQTQzMDA1ODhBRjIgLyogX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTlFNzE0QzUxQzEyNEEwNDAwNjY1QjNBIC8qIF9XS0F1dG9t
YXRpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTkwRDI4QUIxQzY0MjBDNjAwOTg2
OTc3IC8qIF9XS0F1dG9tYXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTc4OEFD
QjFGNDIxRERBMDBDMDgwMDAgLyogX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5OTBEMjhBQzFDNjQyMENGMDA5ODY5NzcgLyogX1dLQXV0b21h
dGlvblNlc3Npb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTkwRDI4QjExQzY1MjA4
RDAwOTg2OTc3IC8qIF9XS0F1dG9tYXRpb25TZXNzaW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBNTcwNEY4MUJFMDFGRjQwMDg3NEFGMSAvKiBfV0tDb250ZXh0TWVudUVsZW1lbnRJ
bmZvLmggaW4gSGVhZGVycyAqLywKQEAgLTk4ODYsNiArOTg5Myw3IEBACiAJCQlmaWxlcyA9ICgK
IAkJCQkzN0E1RTAxMzE4QkJGOTM3MDAwQTA4MUUgLyogX1dLQWN0aXZhdGVkRWxlbWVudEluZm8u
bW0gaW4gU291cmNlcyAqLywKIAkJCQk5OTBEMjhCMjFDNjUyMDk0MDA5ODY5NzcgLyogX1dLQXV0
b21hdGlvblNlc3Npb24ubW0gaW4gU291cmNlcyAqLywKKwkJCQk5OTc4OEFDQzFGNDIxREUyMDBD
MDgwMDAgLyogX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUE1NzA0RjcxQkUwMUZGNDAwODc0QUYxIC8qIF9XS0NvbnRleHRNZW51RWxlbWVu
dEluZm8ubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMUE0RkU1QjE4RENFOUZBMDBCNUVBOEEgLyog
X1dLRG93bmxvYWQubW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzlBODczOTE4QkJGRTBGMDA1ODhB
RjIgLyogX1dLRWxlbWVudEFjdGlvbi5tbSBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319086</attachid>
            <date>2017-08-25 10:06:09 -0700</date>
            <delta_ts>2017-08-25 10:06:09 -0700</delta_ts>
            <desc>For Landing</desc>
            <filename>bug-175562-20170825100608.patch</filename>
            <type>text/plain</type>
            <size>23689</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZGFlMDA3NmZmYmY1NDQ0MjY0YWM3MjM0ZGYwMmU3OTNiYzRmZjY0Li4yZjhlZDYwZDI1MGM4ODFi
ZDZiMjI3MmFiNzhlN2YxNGIxZjhhYTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNy0wOC0yNCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgQXV0b21hdGlvbjogdXNlIGF1dG9tYXRpb24gc2Vzc2lvbiBjb25maWd1cmF0
aW9ucyB0byBwcm9wYWdhdGUgcGVyLXNlc3Npb24gc2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTU2MgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMzA4NTMzNjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgor
CisgICAgICAgIEFkZCBhIENvY29hLXNwZWNpZmljIGNvZGUgcGF0aCB0byBmb3J3YXJkIGNhcGFi
aWxpdGllcyB3aGVuIHJlcXVlc3RpbmcKKyAgICAgICAgYSBuZXcgc2Vzc2lvbiBmcm9tIHRoZSBy
ZW1vdGUgaW5zcGVjdG9yIChpLmUuLCBhdXRvbWF0aW9uKSBjbGllbnQuCisKKyAgICAgICAgSWYg
b3RoZXIgcG9ydHMgd2FudCB0byB1c2UgdGhpcywgdGhlbiB3ZSBjYW4gY29udmVydCBDb2NvYSB0
eXBlcyB0byBXZWJLaXQgdHlwZXMgbGF0ZXIuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3Rl
L1JlbW90ZUluc3BlY3Rvci5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5z
cGVjdG9yQ29uc3RhbnRzLmg6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9jb2NvYS9SZW1v
dGVJbnNwZWN0b3JDb2NvYS5tbToKKyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9y
OjpyZWNlaXZlZEF1dG9tYXRpb25TZXNzaW9uUmVxdWVzdE1lc3NhZ2UpOgorCiAyMDE3LTA4LTI0
ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBt
b3ZpbmcgZml4ZWQgY2hhcmFjdGVyIGNsYXNzIHRlcm1zIGFmdGVyIGZpeGVkIGNoYXJhY3RlciB0
ZXJtcyBmb3IgQk1QIG9ubHkgY2hhcmFjdGVyIGNsYXNzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjg1NDJhOTZj
MGM0NTkyODIwZGQwMDI5ZDJkNDVkMmVmZTkxNGYzOS4uMWY3Y2RjODI1MWI5OTU5YjMyZTRkOTM1
YmY2ZDhiMWEzOGFhNzJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxNy0wOC0yNCAg
QnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgQXV0b21hdGlvbjog
dXNlIGF1dG9tYXRpb24gc2Vzc2lvbiBjb25maWd1cmF0aW9ucyB0byBwcm9wYWdhdGUgcGVyLXNl
c3Npb24gc2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3NTU2MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzA4NTMzNjI+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgIFNvbWUgV2ViRHJpdmVy
IGNhcGFiaWxpdGllcyBuZWVkIFdlYktpdCBzdXBwb3J0IGluIG9yZGVyIHRvIGJlIGltcGxlbWVu
dGVkIGNvcnJlY3RseS4KKyAgICAgICAgVGhlcmUgaXMgY3VycmVudGx5IG5vIGVhc3kgd2F5IHRv
IGZvcndhcmQgV2ViRHJpdmVyIGNhcGFiaWxpdHkga2V5cyBhbmQgdmFsdWVzIHRvIFdlYktpdAor
ICAgICAgICBhdCBzZXNzaW9uIGNyZWF0aW9uIHRpbWUuIFRoaXMgaXMgdW5mb3J0dW5hdGUsIGFz
IGl0IHdvdWxkIGJlIGJlc3QgdG8gaW1wbGVtZW50IG1hbnkgb2YKKyAgICAgICAgdGhlbSB2aWEg
ZXhpc3RpbmcgbWVjaGFuaXNtcyAoaS5lLiwgV0tQcmVmZXJlbmNlcyBwcm9wZXJ0aWVzKSB0aGF0
IG5lZWQgdG8gYmUgc2V0IHVwCisgICAgICAgIGJlZm9yZSBhbnkgd2luZG93cyBhcmUgb3BlbmVk
IGluIHRoZSBzZXNzaW9uLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBXZWJLaXQtc2lkZSBw
bHVtYmluZyB0byBmb3J3YXJkIG5hbWVkIGNhcGFiaWxpdGllcyBmcm9tIGEgcmVtb3RlCisgICAg
ICAgIFdlYkRyaXZlciBjbGllbnQgdG8gdGhlIF9XS0F1dG9tYXRpb25TZXNzaW9uIGFuZCBpdHMg
ZGVsZWdhdGUgaW4gV2ViS2l0MiBVSVByb2Nlc3MuCisgICAgICAgIFRoZXNlIGNhcGFiaWxpdGll
cyBhcmUgZXhwb3NlZCB2aWEgQVBJIGluIHdheXMgdGhhdCBhYnN0cmFjdCBhd2F5IGRldGFpbHMg
b2YgaG93IHRoZQorICAgICAgICBjYXBhYmlsaXRpZXMgYXJlIHJlcHJlc2VudGVkIGluIFJXSSB3
aXJlIHByb3RvY29sIG1lc3NhZ2VzLgorCisgICAgICAgIEluIHRoZSBDb2NvYSBBUEksIHRoZXNl
IGNhcGFiaWxpdGllcyBhcmUgZXhwb3NlZCB2aWEgYSBzZXNzaW9uIGNvbmZpZ3VyYXRpb24gb2Jq
ZWN0CisgICAgICAgIHRoYXQncyBzaW1pbGFyIHRvIFdLV2ViVmlldydzIFdLV2ViVmlld0NvbmZp
Z3VyYXRpb24uIEEgc2Vzc2lvbidzIGNvbmZpZ3VyYXRpb24gaXMgY29waWVkCisgICAgICAgIGFu
ZCB1c2VkIGF0IGluaXRpYWxpemF0aW9uIGFuZCBjYW5ub3QgYmUgbW9kaWZpZWQgYWZ0ZXIgdGhl
IHNlc3Npb24gaXMgY3JlYXRlZC4KKyAgICAgICAgQ29kZSBpbiB0aGUgQ29jb2Egc3ViY2xhc3Mg
b2YgQVBJOjpBdXRvbWF0aW9uQ2xpZW50IHRyYW5zbGF0ZXMgYmV0d2VlbiBSV0kgcHJvdG9jb2wK
KyAgICAgICAgY2FwYWJpbGl0eSBuYW1lcyBhbmQgcHJvcGVydHkgdmFsdWVzIG9uIHRoZSBfV0tB
dXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24gaXQKKyAgICAgICAgdXNlcyB0byByZXF1ZXN0
IGEgbmV3IHNlc3Npb24uCisKKyAgICAgICAgTGF0ZXIgcGF0Y2hlcyB3aWxsIGhvb2sgdXAgdGhl
IHR3byBwcm9wZXJ0aWVzIHByZXNlbnQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gaW4gdGhpcyBwYXRj
aC4KKyAgICAgICAgTW9zdCBvZiB0aGlzIHBhdGNoIGlzIGp1c3QgZ2VuZXJpYyBwbHVtYmluZyB3
aXRob3V0IGRvaW5nIGFueSBjYXBhYmlsaXR5LXNwZWNpZmljIHdvcmsuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25EZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24uaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uLm1tOgorICAgICAgICAoLVtfV0tB
dXRvbWF0aW9uU2Vzc2lvbiBpbml0XSk6CisgICAgICAgICgtW19XS0F1dG9tYXRpb25TZXNzaW9u
IGluaXRXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bX1dLQXV0b21hdGlvblNlc3Np
b24gY29uZmlndXJhdGlvbl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uRGVsZWdhdGUuaC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5tbTog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRp
b25TZXNzaW9uLmguCisgICAgICAgICgtW19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlv
biBpbml0XSk6CisgICAgICAgICgtW19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbiBk
ZXNjcmlwdGlvbl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9BdXRvbWF0aW9uQ2xpZW50
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL0F1dG9tYXRpb25DbGllbnQubW06CisgICAg
ICAgIChXZWJLaXQ6OkF1dG9tYXRpb25DbGllbnQ6OkF1dG9tYXRpb25DbGllbnQpOgorICAgICAg
ICAoV2ViS2l0OjpBdXRvbWF0aW9uQ2xpZW50OjpyZXF1ZXN0QXV0b21hdGlvblNlc3Npb24pOgor
ICAgICAgICAoV2ViS2l0OjpBdXRvbWF0aW9uQ2xpZW50OjpyZXF1ZXN0QXV0b21hdGlvblNlc3Np
b25XaXRoQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKwogMjAxNy0wOC0yNCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVtb3ZlIGR1cGxpY2F0ZSBXZWJDb3JlOjpVUkwgZW5jb2Rlci9kZWNvZGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1v
dGVJbnNwZWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1Jl
bW90ZUluc3BlY3Rvci5oCmluZGV4IDgzY2YyNTg2MTJhZmQwOTgzM2JiMjhhYzdlZThlMDc3ZDdk
MDMyZTYuLmQwMGRlMmI3MDNkMzFmYzVkZTY4MGE4MGRjODkwNzA2MWNkMmY0MTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUlu
c3BlY3Rvci5oCkBAIC03Niw2ICs3Niw5IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCBTdHJp
bmcgYnJvd3Nlck5hbWUoKSBjb25zdCB7IHJldHVybiB7IH07IH0KICAgICAgICAgdmlydHVhbCBT
dHJpbmcgYnJvd3NlclZlcnNpb24oKSBjb25zdCB7IHJldHVybiB7IH07IH0KICAgICAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbihjb25zdCBTdHJpbmcmIHNlc3Npb25J
ZGVudGlmaWVyKSA9IDA7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0QXV0b21hdGlvblNlc3Npb25XaXRoQ2FwYWJpbGl0aWVzKE5TU3RyaW5nICpzZXNz
aW9uSWRlbnRpZmllciwgTlNEaWN0aW9uYXJ5ICpmb3J3YXJkZWRDYXBhYmlsaXRpZXMpID0gMDsK
KyNlbmRpZgogICAgIH07CiAKICAgICBzdGF0aWMgdm9pZCBzdGFydERpc2FibGVkKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNw
ZWN0b3JDb25zdGFudHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L1JlbW90ZUluc3BlY3RvckNvbnN0YW50cy5oCmluZGV4IDcwMDY1N2JlMDVjMjI0NzYwMDZmYzM5
MjhmZTBhYTAzZWQ5YWIxNDQuLjE4NWY0NDEwZmQ2ZjU3ZWFjNDc2NjBlYjc1MTAwODI0MjhjMjYz
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1Jl
bW90ZUluc3BlY3RvckNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3RvckNvbnN0YW50cy5oCkBAIC04NCw2ICs4NCw3IEBA
CiAKICNkZWZpbmUgV0lSQXV0b21hdGlvblRhcmdldElzUGFpcmVkS2V5ICAgICAgICAgICAgIEAi
V0lSQXV0b21hdGlvblRhcmdldElzUGFpcmVkS2V5IgogI2RlZmluZSBXSVJTZXNzaW9uSWRlbnRp
ZmllcktleSAgICAgICAgICAgICAgICAgICAgQCJXSVJTZXNzaW9uSWRlbnRpZmllcktleSIKKyNk
ZWZpbmUgV0lSU2Vzc2lvbkNhcGFiaWxpdGllc0tleSAgICAgICAgICAgICAgICAgIEAiV0lSU2Vz
c2lvbkNhcGFiaWxpdGllc0tleSIKICNkZWZpbmUgV0lSQXV0b21hdGlvblNlc3Npb25SZXF1ZXN0
TWVzc2FnZSAgICAgICAgIEAiV0lSQXV0b21hdGlvblNlc3Npb25SZXF1ZXN0TWVzc2FnZSIKIAog
Ly8gVGhlc2UgZGVmaW5pdGlvbnMgYXJlIHNoYXJlZCB3aXRoIGEgU2ltdWxhdG9yIHdlYmluc3Bl
Y3RvcmQgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Jl
bW90ZS9jb2NvYS9SZW1vdGVJbnNwZWN0b3JDb2NvYS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUluc3BlY3RvckNvY29hLm1tCmluZGV4IGNh
NzY4MTE5ZDk3N2UzZjk2M2Q4YzZiNDQxNWZiYzBiMmYwZjcyYzcuLmU4NTg1N2M0ZTU0YzE4OWJh
YTQzYzM2ZjJmMGFjYmFjZjUxMWNkN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUluc3BlY3RvckNvY29hLm1tCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2NvY29hL1JlbW90ZUluc3BlY3Rv
ckNvY29hLm1tCkBAIC02NzgsMTMgKzY3OCwxNiBAQCB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6cmVj
ZWl2ZWRBdXRvbWF0aW9uU2Vzc2lvblJlcXVlc3RNZXNzYWdlKE5TRGljdGlvbmFyeSAqdXNlcgog
ICAgIE5TU3RyaW5nICpzdWdnZXN0ZWRTZXNzaW9uSWRlbnRpZmllciA9IHVzZXJJbmZvW1dJUlNl
c3Npb25JZGVudGlmaWVyS2V5XTsKICAgICBCQUlMX0lGX1VORVhQRUNURURfVFlQRShzdWdnZXN0
ZWRTZXNzaW9uSWRlbnRpZmllciwgW05TU3RyaW5nIGNsYXNzXSk7CiAKKyAgICBOU0RpY3Rpb25h
cnkgKmZvcndhcmRlZENhcGFiaWxpdGllcyA9IHVzZXJJbmZvW1dJUlNlc3Npb25DYXBhYmlsaXRp
ZXNLZXldOworICAgIEJBSUxfSUZfVU5FWFBFQ1RFRF9UWVBFX0FMTE9XSU5HX05JTChmb3J3YXJk
ZWRDYXBhYmlsaXRpZXMsIFtOU0RpY3Rpb25hcnkgY2xhc3NdKTsKKwogICAgIGlmICghbV9jbGll
bnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9jbGllbnRDYXBhYmlsaXRpZXMgfHwg
IW1fY2xpZW50Q2FwYWJpbGl0aWVzLT5yZW1vdGVBdXRvbWF0aW9uQWxsb3dlZCkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbV9jbGllbnQtPnJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbihzdWdnZXN0
ZWRTZXNzaW9uSWRlbnRpZmllcik7CisgICAgbV9jbGllbnQtPnJlcXVlc3RBdXRvbWF0aW9uU2Vz
c2lvbldpdGhDYXBhYmlsaXRpZXMoc3VnZ2VzdGVkU2Vzc2lvbklkZW50aWZpZXIsIGZvcndhcmRl
ZENhcGFiaWxpdGllcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25EZWxlZ2F0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25EZWxl
Z2F0ZS5oCmluZGV4IDdjN2NlOTFjMzU2ZWUwNTA3ZTExMjFjMzQ3MmM5ZjAzYmM1ZTAyZjIuLjFj
ZDIzM2M3ZDNlYTA4Nzk2MjdkMzA2Njk5NzI0OTRhNmZkNjhjOWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uRGVsZWdhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvbkRlbGVnYXRl
LmgKQEAgLTI4LDExICsyOCwxMiBAQAogI2lmIFdLX0FQSV9FTkFCTEVECiAKIEBjbGFzcyBXS1By
b2Nlc3NQb29sOworQGNsYXNzIF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbjsKIAog
QHByb3RvY29sIF9XS0F1dG9tYXRpb25EZWxlZ2F0ZSA8TlNPYmplY3Q+CiBAb3B0aW9uYWwKIC0g
KEJPT0wpX3Byb2Nlc3NQb29sQWxsb3dzUmVtb3RlQXV0b21hdGlvbjooV0tQcm9jZXNzUG9vbCAq
KXByb2Nlc3NQb29sOwotLSAodm9pZClfcHJvY2Vzc1Bvb2w6KFdLUHJvY2Vzc1Bvb2wgKilwcm9j
ZXNzUG9vbCBkaWRSZXF1ZXN0QXV0b21hdGlvblNlc3Npb25XaXRoSWRlbnRpZmllcjooTlNTdHJp
bmcgKilpZGVudGlmaWVyOworLSAodm9pZClfcHJvY2Vzc1Bvb2w6KFdLUHJvY2Vzc1Bvb2wgKilw
cm9jZXNzUG9vbCBkaWRSZXF1ZXN0QXV0b21hdGlvblNlc3Npb25XaXRoSWRlbnRpZmllcjooTlNT
dHJpbmcgKilpZGVudGlmaWVyIGNvbmZpZ3VyYXRpb246KF9XS0F1dG9tYXRpb25TZXNzaW9uQ29u
ZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb247CiBAZW5kCiAKICNlbmRpZiAvLyBXS19BUElfRU5B
QkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1
dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
QXV0b21hdGlvblNlc3Npb24uaAppbmRleCBmNDVjYzk2ZmM0NTExMzhmMzlhZDkyMGU5NTcxNWEx
YmZmZmUzYzI3Li45OWY3ZGFkMzE5ZGJhZjY0YzE2Y2NiOTczMjcwYzQ0M2E4OWFhZTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNl
c3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21h
dGlvblNlc3Npb24uaApAQCAtMjksNiArMjksNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KIAorQGNsYXNzIF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbjsK
IEBwcm90b2NvbCBfV0tBdXRvbWF0aW9uU2Vzc2lvbkRlbGVnYXRlOwogCiBOU19BU1NVTUVfTk9O
TlVMTF9CRUdJTgpAQCAtMzcsOSArMzgsMTMgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMiksIGlvcygxMC4wKSkKIEBpbnRlcmZhY2UgX1dLQXV0b21hdGlvblNlc3Npb24gOiBOU09i
amVjdAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKnNlc3Npb25JZGVu
dGlmaWVyOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBfV0tBdXRvbWF0
aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb247CisKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCB3ZWFrKSBpZCA8X1dLQXV0b21hdGlvblNlc3Npb25EZWxlZ2F0ZT4gZGVsZWdhdGU7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1BhaXJlZCkgQk9PTCBw
YWlyZWQ7CiAKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbmZpZ3VyYXRpb246KF9XS0F1dG9t
YXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gTlNfREVTSUdOQVRFRF9J
TklUSUFMSVpFUjsKKwogI2lmICFUQVJHRVRfT1NfSVBIT05FCiAtIChCT09MKXdhc0V2ZW50U3lu
dGhlc2l6ZWRGb3JBdXRvbWF0aW9uOihOU0V2ZW50ICopZXZlbnQ7CiAtICh2b2lkKW1hcmtFdmVu
dEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uOihOU0V2ZW50ICopZXZlbnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24u
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Np
b24ubW0KaW5kZXggMjIzZWYxNWE4OTI5NTgyNjhjNDM4NGI4NGE4ZTQwYjRkMjhhOGM2My4uNzBk
ZGQ0MWExNzhhNTdlMjJkNzU3NDRlMDE4ZmIxOTQxNWJhNzVkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5t
bQpAQCAtMzMsMTkgKzMzLDI4IEBACiAjaW1wb3J0ICJXS1Byb2Nlc3NQb29sLmgiCiAjaW1wb3J0
ICJXZWFrT2JqQ1B0ci5oIgogI2ltcG9ydCAiV2ViQXV0b21hdGlvblNlc3Npb24uaCIKKyNpbXBv
cnQgIl9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiX1dLQXV0
b21hdGlvblNlc3Npb25EZWxlZ2F0ZS5oIgogCiBAaW1wbGVtZW50YXRpb24gX1dLQXV0b21hdGlv
blNlc3Npb24geworICAgIFJldGFpblB0cjxfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRp
b24+IF9jb25maWd1cmF0aW9uOwogICAgIFdlYktpdDo6V2Vha09iakNQdHI8aWQgPF9XS0F1dG9t
YXRpb25TZXNzaW9uRGVsZWdhdGU+PiBfZGVsZWdhdGU7CiB9CiAKIC0gKGluc3RhbmNldHlwZSlp
bml0CiB7CisgICAgcmV0dXJuIFtzZWxmIGluaXRXaXRoQ29uZmlndXJhdGlvbjpbX1dLQXV0b21h
dGlvblNlc3Npb25Db25maWd1cmF0aW9uIG5ld11dOworfQorCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhDb25maWd1cmF0aW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKilj
b25maWd1cmF0aW9uCit7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAg
IHJldHVybiBuaWw7CiAKICAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb24+KHNlbGYpOwogCisgICAgX2NvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtjb25maWd1cmF0aW9uIGNvcHldKTsKKwogICAgIHJldHVybiBzZWxmOwogfQogCkBA
IC03OCw2ICs4NywxMSBAQCAtICh2b2lkKXNldFNlc3Npb25JZGVudGlmaWVyOihOU1N0cmluZyAq
KXNlc3Npb25JZGVudGlmaWVyCiAgICAgX3Nlc3Npb24tPnNldFNlc3Npb25JZGVudGlmaWVyKHNl
c3Npb25JZGVudGlmaWVyKTsKIH0KIAorLSAoX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0
aW9uICopY29uZmlndXJhdGlvbgoreworICAgIHJldHVybiBbW19jb25maWd1cmF0aW9uIGNvcHld
IGF1dG9yZWxlYXNlXTsKK30KKwogLSAoQk9PTClpc1BhaXJlZAogewogICAgIHJldHVybiBfc2Vz
c2lvbi0+aXNQYWlyZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41YzEyZGNjZGI3NjEyYWRhOTVjNGM0MmNlZmNmMmEzNzQ5YjFmOWM4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1
dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxF
RAorCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworTlNfQVNTVU1FX05PTk5V
TExfQkVHSU4KKworV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSkKK0BpbnRl
cmZhY2UgX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uIDogTlNPYmplY3QgPE5TQ29w
eWluZz4KKworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzSW5zZWN1cmVNZWRpYUNh
cHR1cmU7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzdXBwcmVzc2VzSUNFQ2FuZGlkYXRl
RmlsdGVyaW5nOworCitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORAorCisjZW5kaWYgLy8g
V0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg2MzYwYTNiNjQ0ZjRhZDAyZGMwNmYzZTY0NThlNjU5YzI2Y2QyOTAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLm1tCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIl9XS0F1dG9tYXRpb25TZXNzaW9uQ29u
ZmlndXJhdGlvbi5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworQGltcGxlbWVudGF0aW9uIF9X
S0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbgorCistIChpbnN0YW5jZXR5cGUpaW5pdAor
eworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOwor
CisgICAgX2FsbG93c0luc2VjdXJlTWVkaWFDYXB0dXJlID0gWUVTOworICAgIF9zdXBwcmVzc2Vz
SUNFQ2FuZGlkYXRlRmlsdGVyaW5nID0gTk87CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAo
aWQpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCit7CisgICAgX1dLQXV0b21hdGlvblNlc3Np
b25Db25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gWyhfV0tBdXRvbWF0aW9uU2Vzc2lvbkNv
bmZpZ3VyYXRpb24gKilbW3NlbGYgY2xhc3NdIGFsbG9jV2l0aFpvbmU6em9uZV0gaW5pdF07CisK
KyAgICBjb25maWd1cmF0aW9uLmFsbG93c0luc2VjdXJlTWVkaWFDYXB0dXJlID0gc2VsZi5hbGxv
d3NJbnNlY3VyZU1lZGlhQ2FwdHVyZTsKKyAgICBjb25maWd1cmF0aW9uLnN1cHByZXNzZXNJQ0VD
YW5kaWRhdGVGaWx0ZXJpbmcgPSBzZWxmLnN1cHByZXNzZXNJQ0VDYW5kaWRhdGVGaWx0ZXJpbmc7
CisKKyAgICByZXR1cm4gY29uZmlndXJhdGlvbjsKK30KKworQGVuZAorCisjZW5kaWYgLy8gV0tf
QVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0F1
dG9tYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0F1dG9tYXRp
b25DbGllbnQuaAppbmRleCBkYTUyMzQ1M2ZjODVhY2E0ZDE2NTcwOGFjNDYxODRiNjQ5MTgxZGE4
Li4wZTNlNzY0MDY0Y2I0OGUwM2YwMDZlZWI3YTRiODU1NWY3NmFlMmVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9BdXRvbWF0aW9uQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvQXV0b21hdGlvbkNsaWVudC5oCkBAIC00OSw2ICs0
OSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBhbGxvd3NSZW1vdGVBdXRvbWF0aW9uKFdlYlByb2Nl
c3NQb29sKikgb3ZlcnJpZGUgeyByZXR1cm4gcmVtb3RlQXV0b21hdGlvbkFsbG93ZWQoKTsgfQog
ICAgIHZvaWQgZGlkUmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2wqLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZGVudGlmaWVyKSBvdmVycmlkZTsKIAorICAgIHZv
aWQgcmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uV2l0aENhcGFiaWxpdGllcyhOU1N0cmluZyAqc2Vz
c2lvbklkZW50aWZpZXIsIE5TRGljdGlvbmFyeSAqZm9yd2FyZGVkQ2FwYWJpbGl0aWVzKSBvdmVy
cmlkZTsKKwogICAgIC8vIFJlbW90ZUluc3BlY3Rvcjo6Q2xpZW50CiAgICAgYm9vbCByZW1vdGVB
dXRvbWF0aW9uQWxsb3dlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcmVxdWVzdEF1dG9t
YXRpb25TZXNzaW9uKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkZW50aWZpZXIpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvQXV0b21hdGlvbkNsaWVu
dC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0F1dG9tYXRpb25DbGllbnQubW0K
aW5kZXggZmVkOWY5NmZiMDEwN2Q4NWVmMDYwODZjMDZiMzIzYmExYmYwMzc1OS4uZmVmODQ3MDgw
MTdkN2QzNzc3N2RhMmMyN2FjMTcyNDA0NWFiNjdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvQXV0b21hdGlvbkNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9BdXRvbWF0aW9uQ2xpZW50Lm1tCkBAIC0zMiw2ICszMiw3IEBACiAK
ICNpbXBvcnQgIldLUHJvY2Vzc1Bvb2wuaCIKICNpbXBvcnQgIl9XS0F1dG9tYXRpb25EZWxlZ2F0
ZS5oIgorI2ltcG9ydCAiX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmgiCiAjaW1w
b3J0IDxKYXZhU2NyaXB0Q29yZS9SZW1vdGVJbnNwZWN0b3IuaD4KICNpbXBvcnQgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCkBAIC00NCw3ICs0NSw3IEBAIEF1dG9tYXRpb25DbGllbnQ6OkF1dG9t
YXRpb25DbGllbnQoV0tQcm9jZXNzUG9vbCAqcHJvY2Vzc1Bvb2wsIGlkIDxfV0tBdXRvbWF0aW9u
CiAgICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQogewogICAgIG1fZGVsZWdhdGVNZXRob2RzLmFs
bG93c1JlbW90ZUF1dG9tYXRpb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3RvcihfcHJvY2Vzc1Bvb2xBbGxvd3NSZW1vdGVBdXRvbWF0aW9uOildOwotICAgIG1fZGVsZWdh
dGVNZXRob2RzLnJlcXVlc3RBdXRvbWF0aW9uU2Vzc2lvbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF9wcm9jZXNzUG9vbDpkaWRSZXF1ZXN0QXV0b21hdGlvblNlc3Np
b25XaXRoSWRlbnRpZmllcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy5yZXF1ZXN0QXV0b21h
dGlvblNlc3Npb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfcHJv
Y2Vzc1Bvb2w6ZGlkUmVxdWVzdEF1dG9tYXRpb25TZXNzaW9uV2l0aElkZW50aWZpZXI6Y29uZmln
dXJhdGlvbjopXTsKIAogICAgIFJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkuc2V0Q2xpZW50
KHRoaXMpOwogfQpAQCAtNjksMTQgKzcwLDE5IEBAIGJvb2wgQXV0b21hdGlvbkNsaWVudDo6cmVt
b3RlQXV0b21hdGlvbkFsbG93ZWQoKSBjb25zdAogCiB2b2lkIEF1dG9tYXRpb25DbGllbnQ6OnJl
cXVlc3RBdXRvbWF0aW9uU2Vzc2lvbihjb25zdCBTdHJpbmcmIHNlc3Npb25JZGVudGlmaWVyKQog
eworICAgIE5TU3RyaW5nICpyZXRhaW5lZElkZW50aWZpZXIgPSBzZXNzaW9uSWRlbnRpZmllcjsK
KyAgICByZXF1ZXN0QXV0b21hdGlvblNlc3Npb25XaXRoQ2FwYWJpbGl0aWVzKHJldGFpbmVkSWRl
bnRpZmllciwgbmlsKTsKK30KKwordm9pZCBBdXRvbWF0aW9uQ2xpZW50OjpyZXF1ZXN0QXV0b21h
dGlvblNlc3Npb25XaXRoQ2FwYWJpbGl0aWVzKE5TU3RyaW5nICpzZXNzaW9uSWRlbnRpZmllciwg
TlNEaWN0aW9uYXJ5ICpmb3J3YXJkZWRDYXBhYmlsaXRpZXMpCit7CisgICAgX1dLQXV0b21hdGlv
blNlc3Npb25Db25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gW19XS0F1dG9tYXRpb25TZXNz
aW9uQ29uZmlndXJhdGlvbiBuZXddOwogICAgIC8vIEZvcmNlIGNsaWVudHMgdG8gY3JlYXRlIGFu
ZCByZWdpc3RlciBhIHNlc3Npb24gYXN5bmNocm9ub3VzbHkuIE90aGVyd2lzZSwKICAgICAvLyBS
ZW1vdGVJbnNwZWN0b3Igd2lsbCB0cnkgdG8gYWNxdWlyZSBpdHMgbG9jayB0byByZWdpc3RlciB0
aGUgbmV3IHNlc3Npb24gYW5kCiAgICAgLy8gZGVhZGxvY2sgYmVjYXVzZSBpdCdzIGFscmVhZHkg
dGFrZW4gd2hpbGUgaGFuZGxpbmcgWFBDIG1lc3NhZ2VzLgotCi0gICAgTlNTdHJpbmcgKnJldGFp
bmVkSWRlbnRpZmllciA9IHNlc3Npb25JZGVudGlmaWVyOwogICAgIGRpc3BhdGNoX2FzeW5jKGRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CiAgICAgICAgIGlmIChtX2RlbGVnYXRlTWV0aG9k
cy5yZXF1ZXN0QXV0b21hdGlvblNlc3Npb24pCi0gICAgICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQo
KSBfcHJvY2Vzc1Bvb2w6bV9wcm9jZXNzUG9vbCBkaWRSZXF1ZXN0QXV0b21hdGlvblNlc3Npb25X
aXRoSWRlbnRpZmllcjpyZXRhaW5lZElkZW50aWZpZXJdOworICAgICAgICAgICAgW21fZGVsZWdh
dGUuZ2V0KCkgX3Byb2Nlc3NQb29sOm1fcHJvY2Vzc1Bvb2wgZGlkUmVxdWVzdEF1dG9tYXRpb25T
ZXNzaW9uV2l0aElkZW50aWZpZXI6c2Vzc2lvbklkZW50aWZpZXIgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uXTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTBlMWFjZGE1MjU1NWI0ZGVjNjZjY2MxMDhmNjY1
OWRkMDkxMzYxYi4uODJiYmViOTI3MGY3YzE0YmU1NTUxZWUxODE1ZDMyOWZkOGEzMDNjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
NDQ5LDYgKzE0NDksOCBAQAogCQk5OTU1QTZGNTFDNzk4NkUwMDBFQjZBOTMgLyogQXV0b21hdGlv
bkJhY2tlbmREaXNwYXRjaGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTk1NUE2RjExQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25CYWNrZW5k
RGlzcGF0Y2hlcnMuaCAqLzsgfTsKIAkJOTk1NUE2RjYxQzc5ODZFMzAwRUI2QTkzIC8qIEF1dG9t
YXRpb25Qcm90b2NvbE9iamVjdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTk1NUE2RjIxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90
b2NvbE9iamVjdHMuY3BwICovOyB9OwogCQk5OTU1QTZGNzFDNzk4NkU1MDBFQjZBOTMgLyogQXV0
b21hdGlvblByb3RvY29sT2JqZWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTk1NUE2RjMxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90
b2NvbE9iamVjdHMuaCAqLzsgfTsKKwkJOTk3ODhBQ0IxRjQyMUREQTAwQzA4MDAwIC8qIF9XS0F1
dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTk3ODhBQzkxRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9t
YXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTk5Nzg4QUNDMUY0MjFERTIwMEMwODAwMCAvKiBfV0tBdXRv
bWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OTc4OEFDQTFGNDIxRENBMDBDMDgwMDAgLyogX1dLQXV0b21h
dGlvblNlc3Npb25Db25maWd1cmF0aW9uLm1tICovOyB9OwogCQk5OUI3NTBGMjFGMzNFRDVCMDBD
MUNGQjUgLyogRWxlbWVudEF0dHJpYnV0ZS5qcyBpbiBDb3B5IFdlYkRyaXZlciBBdG9tcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTA2NTczNDFGMzIzQ0JGMDA5NDRGOUMg
LyogRWxlbWVudEF0dHJpYnV0ZS5qcyAqLzsgfTsKIAkJOTlCNzUwRjMxRjMzRUQ1QjAwQzFDRkI1
IC8qIEVsZW1lbnREaXNwbGF5ZWQuanMgaW4gQ29weSBXZWJEcml2ZXIgQXRvbXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwNjU3MzMxRjMyM0NCRjAwOTQ0RjlDIC8qIEVs
ZW1lbnREaXNwbGF5ZWQuanMgKi87IH07CiAJCTk5Qjc1MEY0MUYzM0VENUIwMEMxQ0ZCNSAvKiBG
aW5kTm9kZXMuanMgaW4gQ29weSBXZWJEcml2ZXIgQXRvbXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTkwNjU3MzExRjMyM0NCRjAwOTQ0RjlDIC8qIEZpbmROb2Rlcy5qcyAq
LzsgfTsKQEAgLTM3OTUsNiArMzc5Nyw4IEBACiAJCTk5NTVBNkYxMUM3OTg2NjQwMEVCNkE5MyAv
KiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTk1NUE2RjIxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90
b2NvbE9iamVjdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0
b21hdGlvblByb3RvY29sT2JqZWN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk5NTVBNkYzMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dG9tYXRpb25Qcm90b2NvbE9iamVj
dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk3ODhBQzkxRjQyMURDQTAwQzA4
MDAwIC8qIF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk3ODhBQ0ExRjQyMURDQTAwQzA4MDAwIC8q
IF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDM0FFMjMxREFEOEUzNDAwQUY1QzE2
IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5QzNBRTI2MURBRDk0ODUwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9u
U2Vzc2lvbkNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTlDM0FFMkMxREFEQTZBNzAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9u
TWFjcm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NjI5LDYgKzU2MzMsOCBA
QAogCQkJCTk5RTcxNEMxMUMxMjQ5RTYwMDY2NUIzQSAvKiBfV0tBdXRvbWF0aW9uRGVsZWdhdGUu
aCAqLywKIAkJCQk5OTBEMjhBNzFDNjQwNEIwMDA5ODY5NzcgLyogX1dLQXV0b21hdGlvblNlc3Np
b24uaCAqLywKIAkJCQk5OTBEMjhBRDFDNjUxOTA0MDA5ODY5NzcgLyogX1dLQXV0b21hdGlvblNl
c3Npb24ubW0gKi8sCisJCQkJOTk3ODhBQzkxRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRp
b25TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovLAorCQkJCTk5Nzg4QUNBMUY0MjFEQ0EwMEMwODAw
MCAvKiBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24ubW0gKi8sCiAJCQkJOTkwRDI4
QTgxQzY0MDRCMDAwOTg2OTc3IC8qIF9XS0F1dG9tYXRpb25TZXNzaW9uRGVsZWdhdGUuaCAqLywK
IAkJCQk5OTBEMjhBRjFDNjUyMDM5MDA5ODY5NzcgLyogX1dLQXV0b21hdGlvblNlc3Npb25JbnRl
cm5hbC5oICovLAogCQkJCTFBNTcwNEY2MUJFMDFGRjQwMDg3NEFGMSAvKiBfV0tDb250ZXh0TWVu
dUVsZW1lbnRJbmZvLmggKi8sCkBAIC04MjY1LDYgKzgyNzEsNyBAQAogCQkJCTM3OUE4NzM2MThC
QkZBNDMwMDU4OEFGMiAvKiBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5OUU3MTRDNTFDMTI0QTA0MDA2NjVCM0EgLyogX1dLQXV0b21hdGlvbkRl
bGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTBEMjhBQjFDNjQyMEM2MDA5ODY5NzcgLyog
X1dLQXV0b21hdGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTk5Nzg4QUNCMUY0MjFE
REEwMEMwODAwMCAvKiBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk5MEQyOEFDMUM2NDIwQ0YwMDk4Njk3NyAvKiBfV0tBdXRvbWF0aW9uU2Vz
c2lvbkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTBEMjhCMTFDNjUyMDhEMDA5ODY5
NzcgLyogX1dLQXV0b21hdGlvblNlc3Npb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUE1NzA0RjgxQkUwMUZGNDAwODc0QUYxIC8qIF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCBp
biBIZWFkZXJzICovLApAQCAtOTg5MCw2ICs5ODk3LDcgQEAKIAkJCWZpbGVzID0gKAogCQkJCTM3
QTVFMDEzMThCQkY5MzcwMDBBMDgxRSAvKiBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTk5MEQyOEIyMUM2NTIwOTQwMDk4Njk3NyAvKiBfV0tBdXRvbWF0aW9u
U2Vzc2lvbi5tbSBpbiBTb3VyY2VzICovLAorCQkJCTk5Nzg4QUNDMUY0MjFERTIwMEMwODAwMCAv
KiBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkxQTU3MDRGNzFCRTAxRkY0MDA4NzRBRjEgLyogX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUExQTRGRTVCMThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3du
bG9hZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3OUE4NzM5MThCQkZFMEYwMDU4OEFGMiAvKiBf
V0tFbGVtZW50QWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>