<?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>167410</bug_id>
          
          <creation_ts>2017-01-24 21:42:25 -0800</creation_ts>
          <short_desc>Introduce an item-provider-based pasteboard wrapper</short_desc>
          <delta_ts>2017-01-28 12:25:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>enrica</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1269727</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-24 21:42:25 -0800</bug_when>
    <thetext>Introduce an item-provider-based pasteboard wrapper</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269812</commentid>
    <comment_count>1</comment_count>
      <attachid>299703</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 07:36:45 -0800</bug_when>
    <thetext>Created attachment 299703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269851</commentid>
    <comment_count>2</comment_count>
      <attachid>299703</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2017-01-25 09:33:34 -0800</bug_when>
    <thetext>Comment on attachment 299703
Patch

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

&gt; Source/WebCore/platform/ios/WebItemProviderPasteboard.mm:73
&gt; +@synthesize itemProviders=_itemProviders;

I don&apos;t think these are needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269923</commentid>
    <comment_count>3</comment_count>
      <attachid>299732</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 12:54:40 -0800</bug_when>
    <thetext>Created attachment 299732
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269963</commentid>
    <comment_count>4</comment_count>
      <attachid>299732</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-25 14:16:23 -0800</bug_when>
    <thetext>Comment on attachment 299732
Patch for landing

Rejecting attachment 299732 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 299732, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
fs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 211160 = f0a4af11283d42db3eafce5f7562729ef49dec95
r211161 = 0aa2d819faea817981312093c18d1bb9d7df199e
r211162 = 65a30632ca1901b25f5a64db884beb5497155151
r211164 = 881e7c913de37fb394a9e4aba5ffd4d208fa001a
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/2948541</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269978</commentid>
    <comment_count>5</comment_count>
      <attachid>299749</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 14:45:41 -0800</bug_when>
    <thetext>Created attachment 299749
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269979</commentid>
    <comment_count>6</comment_count>
      <attachid>299732</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 14:48:53 -0800</bug_when>
    <thetext>Comment on attachment 299732
Patch for landing

Failure looks unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269980</commentid>
    <comment_count>7</comment_count>
      <attachid>299750</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 14:49:29 -0800</bug_when>
    <thetext>Created attachment 299750
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269983</commentid>
    <comment_count>8</comment_count>
      <attachid>299750</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-25 14:54:04 -0800</bug_when>
    <thetext>Comment on attachment 299750
Patch for landing

Rejecting attachment 299750 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 299750, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WTF/ChangeLog is not at the top of the file.

Full output: http://webkit-queues.webkit.org/results/2948727</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269990</commentid>
    <comment_count>9</comment_count>
      <attachid>299754</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 15:13:48 -0800</bug_when>
    <thetext>Created attachment 299754
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269992</commentid>
    <comment_count>10</comment_count>
      <attachid>299750</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 15:14:49 -0800</bug_when>
    <thetext>Comment on attachment 299750
Patch for landing

It looks like CQ could not process this patch because the date was off by 1 (?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270004</commentid>
    <comment_count>11</comment_count>
      <attachid>299754</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-25 15:51:31 -0800</bug_when>
    <thetext>Comment on attachment 299754
Patch for landing

Clearing flags on attachment: 299754

Committed r211175: &lt;http://trac.webkit.org/changeset/211175&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271035</commentid>
    <comment_count>12</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-28 12:25:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/30107775&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299703</attachid>
            <date>2017-01-25 07:36:45 -0800</date>
            <delta_ts>2017-01-25 09:33:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167410-20170125073444.patch</filename>
            <type>text/plain</type>
            <size>21797</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFlNDQ0OGU3MmNiNTU5ZDJiNmEwMzA5
MzUwNTI4MDg3NDFhYmYwZTMuLmNlZDkwNDI5ZTYxMjY2MDJhYzBkZTIwZTkyYjRkOWEzZTZhMzk3
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMDEtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGFuIGl0ZW0tcHJvdmlkZXIt
YmFzZWQgcGFzdGVib2FyZCB3cmFwcGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjc0MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRzIGFuIGFkZGl0aW9uYWwgZmVhdHVyZSBmbGFnLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0ZlYXR1cmVE
ZWZpbmVzLmg6CisKIDIwMTctMDEtMjQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIGEgaG9vayB0byBpbmNsdWRlIGFkZGl0aW9uYWwgZmVhdHVy
ZSBkZWZpbmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFiNGEzZDllZDM2MDk4Njg5ZGUwZWM0MTI5N2VjZTBl
YzE5MGIzNi4uZGFiOWM4MGZlZDBlYTEwN2RlZGYwMDY1Nzc5ODI3NDE3Yzc4NzdmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE3LTAxLTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBhbiBpdGVtLXByb3ZpZGVyLWJh
c2VkIHBhc3RlYm9hcmQgd3JhcHBlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY3NDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW50cm9kdWNlcyBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLCBhIHBh
c3RlYm9hcmQtbGlrZSBvYmplY3QgYmFja2VkIGJ5IGEgbnVtYmVyIG9mIGl0ZW0gcHJvdmlkZXJz
LiBObyBuZXcKKyAgICAgICAgdGVzdHMsIHNpbmNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5n
ZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvQWJzdHJhY3RQYXN0ZWJvYXJkLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmguCisgICAgICAgICogcGxhdGZvcm0vaW9z
L1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW06IEFkZGVkLgorICAgICAgICAoaXNSaWNoVGV4
dFR5cGUpOgorICAgICAgICAoaXNTdHJpbmdUeXBlKToKKyAgICAgICAgKGlzVVJMVHlwZSk6Cisg
ICAgICAgIChpc0NvbG9yVHlwZSk6CisgICAgICAgIChpc0ltYWdlVHlwZSk6CisgICAgICAgICgr
W1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2hhcmVkSW5zdGFuY2VdKToKKyAgICAgICAgKC1b
V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBpbml0XSk6CisgICAgICAgICgtW1dlYkl0ZW1Qcm92
aWRlclBhc3RlYm9hcmQgZGVhbGxvY10pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0
ZWJvYXJkIHBhc3RlYm9hcmRUeXBlc10pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0
ZWJvYXJkIHNldEl0ZW1Qcm92aWRlcnM6XSk6CisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRlclBh
c3RlYm9hcmQgbnVtYmVyT2ZJdGVtc10pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0
ZWJvYXJkIHNldEl0ZW1zOl0pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJk
IGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTppbkl0ZW1TZXQ6XSk6CisgICAgICAgICgtW1dlYkl0ZW1Q
cm92aWRlclBhc3RlYm9hcmQgdmFsdWVzRm9yUGFzdGVib2FyZFR5cGU6aW5JdGVtU2V0Ol0pOgor
ICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGNoYW5nZUNvdW50XSk6CisgICAg
ICAgICgtW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgaXRlbVByb3ZpZGVyQXRJbmRleDpdKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmg6CisKIDIwMTctMDEtMjQgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIG5hbWVkIHBhc3RlYm9hcmRzLCBwYXN0ZWJvYXJkIHN0cmF0ZWdpZXMgYW5kIHBsYXRm
b3JtIHBhc3RlYm9hcmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5l
cy5oIGIvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaAppbmRleCAwYzNkYTc1NzU5MzZl
NGRlNTE2MjQ3YjJjZTE2NmUzNDliODc2OTU4Li42OTM2MWRmYzQ0ZmE5NGJkOWM3Y2EyZGFkM2M1
MmUxMjI5YzM1YWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKQEAgLTc4Myw2ICs3ODMsMTAg
QEAgdGhlIHB1YmxpYyBpT1MgU0RLLiBXZSB3aWxsIGFsc28gbmVlZCB0byB1cGRhdGUgdGhlIEZl
YXR1cmVEZWZpbmVzLnhjY29uZmlnIGZpbGUKICNkZWZpbmUgRU5BQkxFX0tFWUJPQVJEX0NPREVf
QVRUUklCVVRFIDAKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJ
T04pCisjZGVmaW5lIEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OIDAKKyNlbmRpZgorCiAvKiBBc3Nl
cnRzLCBpbnZhcmlhbnRzIGZvciBtYWNybyBkZWZpbml0aW9ucyAqLwogCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKSAmJiAhRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZlMDJiZWE3NDRlMGFhZTQ1Nzk0YWI5
YmYwY2ZmZDE3OWQ1ZTc5NzMuLjViMThhYjNmYzNkY2EwOWM1OTEwOThhOTRhY2ZjZjkzZjBiYTRh
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTY0OTYsNiArNjQ5Niw5IEBACiAJCUY0Nzg3NTU1MTk5ODNBRkYwMDI0QTI4NyAv
KiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFw
QW5pbWF0b3JTdGF0ZS5tbSAqLzsgfTsKIAkJRjQ3QTVFM0UxOTVCOEM4QTAwNDgzMTAwIC8qIFN0
eWxlU2Nyb2xsU25hcFBvaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUY0N0E1RTNGMTk1QjhFNDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0ExOTVC
OEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi87IH07CisJCUY0ODIy
MzEwMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4MjIzMEUxRTM4NjlC
ODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gKi87IH07CisJCUY0ODIy
MzExMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgyMjMwRjFFMzg2OUI4
MDA2NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oICovOyB9OworCQlGNDgyMjMx
MzFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgyMjMxMjFFMzg2RTI0MDA2NkZDNzkg
LyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggKi87IH07CiAJCUY0QkZCOTg1MUUxRERGOUIwMDg2MkMy
NCAvKiBEdW1wRWRpdGluZ0hpc3RvcnkuanMgaW4gQ29weSBTY3JpcHRzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODM4OTgzMUUxRERGMkIwMDc2QjdFQSAvKiBEdW1wRWRp
dGluZ0hpc3RvcnkuanMgKi87IH07CiAJCUY0QkZCOTg2MUUxRERGOUIwMDg2MkMyNCAvKiBFZGl0
aW5nSGlzdG9yeVV0aWwuanMgaW4gQ29weSBTY3JpcHRzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0ODM4OTg0MUUxRERGMkIwMDc2QjdFQSAvKiBFZGl0aW5nSGlzdG9yeVV0
aWwuanMgKi87IH07CiAJCUY1MDY2NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2
NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtMTQ1
MzgsNiArMTQ1NDEsOSBAQAogCQlGNDc4NzU1MzE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25h
cEFuaW1hdG9yU3RhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZVNjcm9sbFNuYXBQb2lu
dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQjE5NUI4QzhBMDA0
ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNDgyMjMwRTFFMzg2OUI4MDA2NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVi
b2FyZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkl0ZW1Q
cm92aWRlclBhc3RlYm9hcmQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0ODIy
MzBGMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ4MjIzMTIxRTM4NkUyNDAwNjZGQzc5IC8q
IEFic3RyYWN0UGFzdGVib2FyZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
YnN0cmFjdFBhc3RlYm9hcmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4Mzg5
ODMxRTFEREYyQjAwNzZCN0VBIC8qIER1bXBFZGl0aW5nSGlzdG9yeS5qcyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IER1bXBFZGl0aW5nSGlzdG9yeS5qczsgcGF0aCA9
IFNjcmlwdHMvRHVtcEVkaXRpbmdIaXN0b3J5LmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNDgzODk4NDFFMURERjJCMDA3NkI3RUEgLyogRWRpdGluZ0hpc3RvcnlVdGlsLmpzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRWRpdGluZ0hpc3RvcnlVdGls
LmpzOyBwYXRoID0gU2NyaXB0cy9FZGl0aW5nSGlzdG9yeVV0aWwuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtQ29udHJvbGxl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTczOCw2ICsxOTc0NCw3IEBA
CiAJCUE1OUUzQzFCMTE1ODBGMzQwMDcyOTI4RSAvKiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUY0ODIyMzEyMUUzODZFMjQwMDY2RkM3OSAvKiBB
YnN0cmFjdFBhc3RlYm9hcmQuaCAqLywKIAkJCQlBMTQ4MzI4QjE4N0Y1MDY4MDBEQTYzQTYgLyog
d2FrICovLAogCQkJCTI2NTU0MTRCMTQ4OUFBMkIwMDBERkM1RCAvKiBDdXJzb3JJT1MuY3BwICov
LAogCQkJCUExRUQ3NzhBMUJFMzI5M0YwMERDMTc5MSAvKiBEZXZpY2UuY3BwICovLApAQCAtMTk4
MDIsNiArMTk4MDksOCBAQAogCQkJCTNGQkM0QUYyMTg5ODgxNTYwMDQ2RUUzOCAvKiBXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oICovLAogCQkJCTNGQkM0QUYxMTg5ODgxNTYwMDQ2
RUUzOCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSAqLywKIAkJCQlFNDUz
OTAzQzBFQUZENjM3MDAzNjk1QzggLyogV2lkZ2V0SU9TLm1tICovLAorCQkJCUY0ODIyMzBFMUUz
ODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tICovLAorCQkJCUY0
ODIyMzBGMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmggKi8s
CiAJCQkpOwogCQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0y
NTE4OCw2ICsyNTE5Nyw3IEBACiAJCQkJQ0U3OTlGQTgxQzZBNTA1NzAwOTdCNTE4IC8qIENvbnRl
bnRTZWN1cml0eVBvbGljeU1lZGlhTGlzdERpcmVjdGl2ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0U2REFERkExQzU5MUU2QTAwM0Y2QTg4IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U3OTlGQTAxQzZBNEMxNjAwOTdCNTE4IC8q
IENvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQ4MjIz
MTMxRTM4NkUyNDAwNjZGQzc5IC8qIEFic3RyYWN0UGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0U3OTlGOTgxQzZBNDZCQzAwOTdCNTE4IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeVNv
dXJjZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFNzk5RkFDMUM2QTUwNjYwMDk3QjUxOCAv
KiBDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0RGlyZWN0aXZlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MUQwMTVDQTBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjc3MDksNiArMjc3MTksNyBAQAogCQkJCTQxNEI4MjA1MUQ2REYwRTUwMDc3
RUJFMyAvKiBTdHJ1Y3R1cmVkQ2xvbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNkEzMEU4
MURDNEYwMEIyNTk2NSAvKiBTdHlsZUJhY2tncm91bmREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzVFQjY3QjBFODFEM0JFMDBCMjU5NjUgLyogU3R5bGVCb3hEYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQlGNDgyMjMxMTFFMzg2OUI4MDA2NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVi
b2FyZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM4NkE5NkQxOUY2MUIyRTAwRTFFQzRBIC8qIFN0
eWxlQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCOTY4N0IxOUY4QUI4MzAwNEVGN0FG
IC8qIFN0eWxlQnVpbGRlckNvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM1RDM2Mzcx
OUZGNjE5MzAwNEM5M0FCIC8qIFN0eWxlQnVpbGRlckN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yOTE4NCw2ICsyOTE5NSw3IEBACiAJCQkJOTQxODI3OEUxRDhDQUY5MjAwNDkyNzY0IC8qIENT
U1BlbmRpbmdTdWJzdGl0dXRpb25WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdCMzg2
MjEyMjg4M0U5MDBCODFGRjggLyogQ1NTUHJlbG9hZFNjYW5uZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTgwRTZEMDUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUY0ODIyMzEwMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJv
dmlkZXJQYXN0ZWJvYXJkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRjcwQTE5ODlDQTAw
N0ZCOEM1IC8qIENTU1Byb3BlcnR5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc4RDAyQkM1MTU0
QTE4REYwMEI2MkQwNSAvKiBDU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQUJBNzZDQTExRDIwRTUwMDA0QzIwMUMgLyogQ1NTUHJvcGVydHlOYW1lcy5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9BYnN0
cmFjdFBhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9BYnN0cmFjdFBh
c3RlYm9hcmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMWZlMDQwNTQ4NmU0NjI4YzI2YzFkNjZlN2U0NTUzNTAy
MDcxOGYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Fi
c3RyYWN0UGFzdGVib2FyZC5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworQHByb3RvY29sIEFic3RyYWN0UGFzdGVib2Fy
ZCA8TlNPYmplY3Q+CitAcmVxdWlyZWQKKworQHByb3BlcnR5IChyZWFkb25seSwgbm9uYXRvbWlj
KSBOU0ludGVnZXIgbnVtYmVyT2ZJdGVtczsKKworLSAoTlNBcnJheTxOU1N0cmluZyAqPiAqKXBh
c3RlYm9hcmRUeXBlczsKKy0gKHZvaWQpc2V0SXRlbXM6KE5TQXJyYXkgKilpdGVtczsKKy0gKE5T
QXJyYXkgKilkYXRhRm9yUGFzdGVib2FyZFR5cGU6KE5TU3RyaW5nICopcGFzdGVib2FyZFR5cGUg
aW5JdGVtU2V0OihOU0luZGV4U2V0ICopaXRlbVNldDsKKy0gKE5TQXJyYXkgKil2YWx1ZXNGb3JQ
YXN0ZWJvYXJkVHlwZTooTlNTdHJpbmcgKilwYXN0ZWJvYXJkVHlwZSBpbkl0ZW1TZXQ6KE5TSW5k
ZXhTZXQgKilpdGVtU2V0OworLSAoTlNJbnRlZ2VyKWNoYW5nZUNvdW50OworCitAZW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVi
b2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3Rl
Ym9hcmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zYTdmYWRmZjk2MjJmZmRlNmUzMDI5MGRmYzE3MGE1YWNjZTEx
ZTI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0
ZW1Qcm92aWRlclBhc3RlYm9hcmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiQWJzdHJhY3RQYXN0ZWJvYXJkLmgiCisKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKKworT0JKQ19DTEFTUyBVSUl0ZW1Qcm92aWRlcjsKKworTlNfQVNTVU1FX05PTk5VTExfQkVH
SU4KKworV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJk
IDogTlNPYmplY3Q8QWJzdHJhY3RQYXN0ZWJvYXJkPgorCisrIChpbnN0YW5jZXR5cGUpc2hhcmVk
SW5zdGFuY2U7CisKKy0gKFVJSXRlbVByb3ZpZGVyICopaXRlbVByb3ZpZGVyQXRJbmRleDooTlNJ
bnRlZ2VyKWluZGV4OworCitAcHJvcGVydHkgKGNvcHksIG5vbmF0b21pYywgbnVsbGFibGUpIE5T
QXJyYXk8VUlJdGVtUHJvdmlkZXIgKj4gKml0ZW1Qcm92aWRlcnM7CitAcHJvcGVydHkgKHJlYWRv
bmx5LCBub25hdG9taWMpIE5TSW50ZWdlciBudW1iZXJPZkl0ZW1zOworQHByb3BlcnR5IChyZWFk
b25seSwgbm9uYXRvbWljKSBOU0ludGVnZXIgY2hhbmdlQ291bnQ7CisKK0BlbmQKKworTlNfQVNT
VU1FX05PTk5VTExfRU5ECisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0
ZWJvYXJkLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBh
c3RlYm9hcmQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZhZmJlYjBjODRkODcwMGJiNzg3ZDE4OTc0NjI4MTY0
MWJhMGU4NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCkBAIC0wLDAgKzEsMjA2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViSXRlbVByb3ZpZGVyUGFzdGVib2Fy
ZC5oIgorCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisKKyNpbXBvcnQgIlNvZnRMaW5r
aW5nLmgiCisjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2Vz
L01vYmlsZUNvcmVTZXJ2aWNlcy5oPgorI2ltcG9ydCA8VUlLaXQvVUlDb2xvci5oPgorI2ltcG9y
dCA8VUlLaXQvVUlJbWFnZS5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLKFVJS2l0KQorU09GVF9M
SU5LX0NMQVNTKFVJS2l0LCBVSUNvbG9yKQorU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUltYWdl
KQorU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUl0ZW1Qcm92aWRlcikKKworI2RlZmluZSBNQVRD
SEVTX1VUSV9UWVBFKHR5cGUsIHN1ZmZpeCkgW3R5cGUgaXNFcXVhbFRvU3RyaW5nOihfX2JyaWRn
ZSBOU1N0cmluZyAqKWtVVFR5cGUgIyMgc3VmZml4XQorI2RlZmluZSBNQVRDSEVTX1VJS0lUX1RZ
UEUodHlwZSwgc3VmZml4KSBbdHlwZSBpc0VxdWFsVG9TdHJpbmc6QCJjb20uYXBwbGUudWlraXQu
ICMjIHN1ZmZpeCAjIyJdCisKK3N0YXRpYyBCT09MIGlzUmljaFRleHRUeXBlKE5TU3RyaW5nICp0
eXBlKQoreworICAgIHJldHVybiBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIFJURikgfHwgTUFUQ0hF
U19VVElfVFlQRSh0eXBlLCBSVEZEKSB8fCBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIEhUTUwpOwor
fQorCitzdGF0aWMgQk9PTCBpc1N0cmluZ1R5cGUoTlNTdHJpbmcgKnR5cGUpCit7CisgICAgcmV0
dXJuIE1BVENIRVNfVVRJX1RZUEUodHlwZSwgVGV4dCkgfHwgTUFUQ0hFU19VVElfVFlQRSh0eXBl
LCBVVEY4UGxhaW5UZXh0KSB8fCBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIFVURjE2UGxhaW5UZXh0
KTsKK30KKworc3RhdGljIEJPT0wgaXNVUkxUeXBlKE5TU3RyaW5nICp0eXBlKQoreworICAgIHJl
dHVybiBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIFVSTCk7Cit9CisKK3N0YXRpYyBCT09MIGlzQ29s
b3JUeXBlKE5TU3RyaW5nICp0eXBlKQoreworICAgIHJldHVybiBNQVRDSEVTX1VJS0lUX1RZUEUo
dHlwZSwgY29sb3IpOworfQorCitzdGF0aWMgQk9PTCBpc0ltYWdlVHlwZShOU1N0cmluZyAqdHlw
ZSkKK3sKKyAgICByZXR1cm4gTUFUQ0hFU19VVElfVFlQRSh0eXBlLCBQTkcpIHx8IE1BVENIRVNf
VVRJX1RZUEUodHlwZSwgSlBFRykgfHwgTUFUQ0hFU19VVElfVFlQRSh0eXBlLCBHSUYpIHx8IE1B
VENIRVNfVUlLSVRfVFlQRSh0eXBlLCBpbWFnZSk7Cit9CisKK0BpbXBsZW1lbnRhdGlvbiBXZWJJ
dGVtUHJvdmlkZXJQYXN0ZWJvYXJkCisKK0BzeW50aGVzaXplIGNoYW5nZUNvdW50PV9jaGFuZ2VD
b3VudDsKK0BzeW50aGVzaXplIGl0ZW1Qcm92aWRlcnM9X2l0ZW1Qcm92aWRlcnM7CisKKysgKGlu
c3RhbmNldHlwZSlzaGFyZWRJbnN0YW5jZQoreworICAgIHN0YXRpYyBXZWJJdGVtUHJvdmlkZXJQ
YXN0ZWJvYXJkICpzaGFyZWRQYXN0ZWJvYXJkID0gbmlsOworICAgIHN0YXRpYyBkaXNwYXRjaF9v
bmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXigpIHsKKyAg
ICAgICAgc2hhcmVkUGFzdGVib2FyZCA9IFtbV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBhbGxv
Y10gaW5pdF07CisgICAgfSk7CisgICAgcmV0dXJuIHNoYXJlZFBhc3RlYm9hcmQ7Cit9CisKKy0g
KGluc3RhbmNldHlwZSlpbml0Cit7CisgICAgaWYgKHNlbGYgPSBbc3VwZXIgaW5pdF0pIHsKKyAg
ICAgICAgX2l0ZW1Qcm92aWRlcnMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRdOworICAgICAgICBf
Y2hhbmdlQ291bnQgPSAwOworICAgIH0KKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClk
ZWFsbG9jCit7CisgICAgW3N1cGVyIGRlYWxsb2NdOworICAgIFtfaXRlbVByb3ZpZGVycyByZWxl
YXNlXTsKK30KKworLSAoTlNBcnJheTxOU1N0cmluZyAqPiAqKXBhc3RlYm9hcmRUeXBlcworewor
ICAgIE5TTXV0YWJsZVNldDxOU1N0cmluZyAqPiAqYWxsVHlwZXMgPSBbTlNNdXRhYmxlU2V0IHNl
dF07CisgICAgZm9yIChVSUl0ZW1Qcm92aWRlciAqcHJvdmlkZXIgaW4gX2l0ZW1Qcm92aWRlcnMp
CisgICAgICAgIFthbGxUeXBlcyBhZGRPYmplY3RzRnJvbUFycmF5OnByb3ZpZGVyLnJlZ2lzdGVy
ZWRUeXBlSWRlbnRpZmllcnNdOworICAgIHJldHVybiBhbGxUeXBlcy5hbGxPYmplY3RzOworfQor
CistICh2b2lkKXNldEl0ZW1Qcm92aWRlcnM6KE5TQXJyYXk8VUlJdGVtUHJvdmlkZXIgKj4gKilp
dGVtUHJvdmlkZXJzCit7CisgICAgaXRlbVByb3ZpZGVycyA9IGl0ZW1Qcm92aWRlcnMgPzogW05T
QXJyYXkgYXJyYXldOworICAgIGlmIChfaXRlbVByb3ZpZGVycyA9PSBpdGVtUHJvdmlkZXJzIHx8
IFtfaXRlbVByb3ZpZGVycyBpc0VxdWFsVG9BcnJheTppdGVtUHJvdmlkZXJzXSkKKyAgICAgICAg
cmV0dXJuOworICAgIF9pdGVtUHJvdmlkZXJzID0gW2l0ZW1Qcm92aWRlcnMgY29weV07CisgICAg
X2NoYW5nZUNvdW50Kys7Cit9CisKKy0gKE5TSW50ZWdlciludW1iZXJPZkl0ZW1zCit7CisgICAg
cmV0dXJuIF9pdGVtUHJvdmlkZXJzLmNvdW50OworfQorCistICh2b2lkKXNldEl0ZW1zOihOU0Fy
cmF5ICopaXRlbXMKK3sKKyAgICBOU011dGFibGVBcnJheSAqcHJvdmlkZXJzID0gW1tOU011dGFi
bGVBcnJheSBhbGxvY10gaW5pdF07CisgICAgZm9yIChOU0RpY3Rpb25hcnkgKml0ZW0gaW4gaXRl
bXMpIHsKKyAgICAgICAgaWYgKCFpdGVtLmNvdW50KQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIFVJSXRlbVByb3ZpZGVyICppdGVtUHJvdmlkZXIgPSBbW2dldFVJSXRlbVByb3ZpZGVy
Q2xhc3MoKSBhbGxvY10gaW5pdF07CisgICAgICAgIGZvciAoTlNTdHJpbmcgKnR5cGVJZGVudGlm
aWVyIGluIGl0ZW0pIHsKKyAgICAgICAgICAgIFtpdGVtUHJvdmlkZXIgcmVnaXN0ZXJEYXRhUmVw
cmVzZW50YXRpb25Gb3JUeXBlSWRlbnRpZmllcjp0eXBlSWRlbnRpZmllciBsb2FkSGFuZGxlcjpe
KFVJSXRlbVByb3ZpZGVyRGF0YUxvYWRDb21wbGV0aW9uQmxvY2sgY29tcGxldGlvbkJsb2NrLCBO
U0RpY3Rpb25hcnkgKikgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25CbG9jayhpdGVtW3R5
cGVJZGVudGlmaWVyXSwgbmlsKTsKKyAgICAgICAgICAgIH1dOworICAgICAgICB9CisgICAgICAg
IFtwcm92aWRlcnMgYWRkT2JqZWN0Oml0ZW1Qcm92aWRlcl07CisgICAgfQorICAgIF9jaGFuZ2VD
b3VudCsrOworICAgIF9pdGVtUHJvdmlkZXJzID0gcHJvdmlkZXJzOworfQorCistIChOU0FycmF5
ICopZGF0YUZvclBhc3RlYm9hcmRUeXBlOihOU1N0cmluZyAqKXBhc3RlYm9hcmRUeXBlIGluSXRl
bVNldDooTlNJbmRleFNldCAqKWl0ZW1TZXQKK3sKKyAgICBfX2Jsb2NrIE5TTXV0YWJsZUFycmF5
ICp2YWx1ZXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIFtpdGVtU2V0IGVudW1lcmF0
ZUluZGV4ZXNVc2luZ0Jsb2NrOl4oTlNVSW50ZWdlciBpbmRleCwgQk9PTCAqKSB7CisgICAgICAg
IFVJSXRlbVByb3ZpZGVyICpwcm92aWRlciA9IFtzZWxmIGl0ZW1Qcm92aWRlckF0SW5kZXg6aW5k
ZXhdOworICAgICAgICBpZiAoIXByb3ZpZGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIE5TRGF0YSAqZGF0YSA9IFtwcm92aWRlciBjb3B5RGF0YVJlcHJlc2VudGF0aW9uRm9yVHlw
ZUlkZW50aWZpZXI6cGFzdGVib2FyZFR5cGUgb3B0aW9uczpuaWwgZXJyb3I6bmlsXTsKKyAgICAg
ICAgaWYgKGRhdGEpCisgICAgICAgICAgICBbdmFsdWVzIGFkZE9iamVjdDpkYXRhXTsKKyAgICB9
XTsKKworICAgIHJldHVybiB2YWx1ZXM7Cit9CisKKy0gKE5TQXJyYXkgKil2YWx1ZXNGb3JQYXN0
ZWJvYXJkVHlwZTooTlNTdHJpbmcgKilwYXN0ZWJvYXJkVHlwZSBpbkl0ZW1TZXQ6KE5TSW5kZXhT
ZXQgKilpdGVtU2V0Cit7CisgICAgX19ibG9jayBOU011dGFibGVBcnJheSAqdmFsdWVzID0gW05T
TXV0YWJsZUFycmF5IGFycmF5XTsKKyAgICBbaXRlbVNldCBlbnVtZXJhdGVJbmRleGVzVXNpbmdC
bG9jazpeKE5TVUludGVnZXIgaW5kZXgsIEJPT0wgKikgeworICAgICAgICBVSUl0ZW1Qcm92aWRl
ciAqcHJvdmlkZXIgPSBbc2VsZiBpdGVtUHJvdmlkZXJBdEluZGV4OmluZGV4XTsKKyAgICAgICAg
aWYgKCFwcm92aWRlcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoaXNSaWNo
VGV4dFR5cGUocGFzdGVib2FyZFR5cGUpICYmIFtwcm92aWRlciBjYW5JbnN0YW50aWF0ZU9iamVj
dE9mQ2xhc3M6W05TQXR0cmlidXRlZFN0cmluZyBjbGFzc11dKSB7CisgICAgICAgICAgICBbdmFs
dWVzIGFkZE9iamVjdDpbcHJvdmlkZXIgaW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltOU0F0dHJp
YnV0ZWRTdHJpbmcgY2xhc3NdIG9wdGlvbnM6bmlsIGVycm9yOm5pbF1dOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzU3RyaW5nVHlwZShwYXN0ZWJvYXJk
VHlwZSkgJiYgW3Byb3ZpZGVyIGNhbkluc3RhbnRpYXRlT2JqZWN0T2ZDbGFzczpbTlNTdHJpbmcg
Y2xhc3NdXSkgeworICAgICAgICAgICAgW3ZhbHVlcyBhZGRPYmplY3Q6W3Byb3ZpZGVyIGluc3Rh
bnRpYXRlT2JqZWN0T2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdIG9wdGlvbnM6bmlsIGVycm9yOm5p
bF1dOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzQ29s
b3JUeXBlKHBhc3RlYm9hcmRUeXBlKSAmJiBbcHJvdmlkZXIgY2FuSW5zdGFudGlhdGVPYmplY3RP
ZkNsYXNzOltnZXRVSUNvbG9yQ2xhc3MoKSBjbGFzc11dKSB7CisgICAgICAgICAgICBbdmFsdWVz
IGFkZE9iamVjdDpbcHJvdmlkZXIgaW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltnZXRVSUNvbG9y
Q2xhc3MoKSBjbGFzc10gb3B0aW9uczpuaWwgZXJyb3I6bmlsXV07CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNVUkxUeXBlKHBhc3RlYm9hcmRUeXBlKSAm
JiBbcHJvdmlkZXIgY2FuSW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltOU1VSTCBjbGFzc11dKSB7
CisgICAgICAgICAgICBbdmFsdWVzIGFkZE9iamVjdDpbcHJvdmlkZXIgaW5zdGFudGlhdGVPYmpl
Y3RPZkNsYXNzOltOU1VSTCBjbGFzc10gb3B0aW9uczpuaWwgZXJyb3I6bmlsXV07CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNJbWFnZVR5cGUocGFzdGVi
b2FyZFR5cGUpICYmIFtwcm92aWRlciBjYW5JbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W2dldFVJ
SW1hZ2VDbGFzcygpIGNsYXNzXV0pIHsKKyAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0Oltw
cm92aWRlciBpbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W2dldFVJSW1hZ2VDbGFzcygpIGNsYXNz
XSBvcHRpb25zOm5pbCBlcnJvcjpuaWxdXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIFdURkxvZ0Fsd2F5cygiRmFpbGVkIHRvIGluc3RhbnRpYXRlIG9iamVjdCBm
b3IgdHlwZTogJyVzJyBhdCBpbmRleDogJXR1IiwgcGFzdGVib2FyZFR5cGUuVVRGOFN0cmluZywg
aW5kZXgpOworICAgIH1dOworICAgIHJldHVybiB2YWx1ZXM7Cit9CisKKy0gKE5TSW50ZWdlcilj
aGFuZ2VDb3VudAoreworICAgIHJldHVybiBfY2hhbmdlQ291bnQ7Cit9CisKKy0gKFVJSXRlbVBy
b3ZpZGVyICopaXRlbVByb3ZpZGVyQXRJbmRleDooTlNJbnRlZ2VyKWluZGV4Cit7CisgICAgcmV0
dXJuIDAgPD0gaW5kZXggJiYgaW5kZXggPCAoTlNJbnRlZ2VyKV9pdGVtUHJvdmlkZXJzLmNvdW50
ID8gX2l0ZW1Qcm92aWRlcnNbaW5kZXhdIDogbmlsOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBF
TkFCTEUoREFUQV9JTlRFUkFDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3Mv
VUlLaXRTUEkuaAppbmRleCA2MjI3Y2RkNzNhOTA5MDE4NWYyMjY4OTYxMGU4YmViZDk2MjM4Mzg4
Li5mMGE0YjY4Zjg0ODI2YTQwNzY0OTQwMWM0MTdkYzkyMzRkY2YxMGYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0zMCw2ICszMCwxMCBAQAogI2lt
cG9ydCA8VUlLaXQvVUlTY3JlZW5fUHJpdmF0ZS5oPgogI2ltcG9ydCA8VUlLaXQvVUlWaWV3Q29u
dHJvbGxlcl9Qcml2YXRlLmg+CiAKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKyNpbXBv
cnQgPFVJS2l0L1VJSXRlbVByb3ZpZGVyX1ByaXZhdGUuaD4KKyNlbmRpZgorCiAjZWxzZQogCiAj
aW1wb3J0IDxVSUtpdC9VSUtpdC5oPgo=
</data>
<flag name="review"
          id="321644"
          type_id="1"
          status="+"
          setter="enrica"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299732</attachid>
            <date>2017-01-25 12:54:40 -0800</date>
            <delta_ts>2017-01-25 14:48:53 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-167410-20170125125239.patch</filename>
            <type>text/plain</type>
            <size>21976</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE5NzAyMDAyYzhiOTNkNTQ0ODRhNDlj
ZTkxYTQwMTdjZGY4MzAxNDkuLmU0YmYzNDM2YTFkOWRkNWNkZWUyN2YxNWVhYTIyMzhhNTllN2I0
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTctMDEtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgSW50cm9kdWNlIGFuIGl0ZW0tcHJvdmlkZXIt
YmFzZWQgcGFzdGVib2FyZCB3cmFwcGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjc0MTAKKworICAgICAgICBSZXZpZXdlZCBieSBFbnJpY2EgQ2Fz
dWNjaS4KKworICAgICAgICBBZGRzIGFuIGFkZGl0aW9uYWwgZmVhdHVyZSBmbGFnLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEVucmljYSBDYXN1Y2NpLgorCisgICAgICAgICogd3RmL0ZlYXR1cmVE
ZWZpbmVzLmg6CisKKzIwMTctMDEtMjQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CisKICAgICAgICAgQWRkIGEgaG9vayB0byBpbmNsdWRlIGFkZGl0aW9uYWwgZmVhdHVy
ZSBkZWZpbmVzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjc0MDMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZiNWNlYmM0ODNjYTZjZWQyYjdkZWRlZWZhZjBkODI0
NjJkNjhlYjQuLmJjMmU0NjM5MTY4ZDhkYWRkYmQ0M2M2MDM5MGRlOGE4MGI2NmM4MzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwzNyBAQAogMjAxNy0wMS0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAorICAgICAgICBJbnRyb2R1Y2UgYW4gaXRlbS1wcm92aWRlci1i
YXNlZCBwYXN0ZWJvYXJkIHdyYXBwZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NzQxMAorCisgICAgICAgIFJldmlld2VkIGJ5IEVucmljYSBDYXN1
Y2NpLgorCisgICAgICAgIEludHJvZHVjZXMgV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCwgYSBw
YXN0ZWJvYXJkLWxpa2Ugb2JqZWN0IGJhY2tlZCBieSBhIG51bWJlciBvZiBpdGVtIHByb3ZpZGVy
cy4gTm8gbmV3CisgICAgICAgIHRlc3RzLCBzaW5jZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFu
Z2UuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vaW9zL0Fic3RyYWN0UGFzdGVib2FyZC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmguCisgICAgICAgICogcGxhdGZv
cm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oLgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tOiBBZGRlZC4KKyAgICAgICAgKGlzUmljaFRl
eHRUeXBlKToKKyAgICAgICAgKGlzU3RyaW5nVHlwZSk6CisgICAgICAgIChpc1VSTFR5cGUpOgor
ICAgICAgICAoaXNDb2xvclR5cGUpOgorICAgICAgICAoaXNJbWFnZVR5cGUpOgorICAgICAgICAo
K1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSk6CisgICAgICAgICgt
W1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgaW5pdF0pOgorICAgICAgICAoLVtXZWJJdGVtUHJv
dmlkZXJQYXN0ZWJvYXJkIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFz
dGVib2FyZCBwYXN0ZWJvYXJkVHlwZXNdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFz
dGVib2FyZCBzZXRJdGVtUHJvdmlkZXJzOl0pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQ
YXN0ZWJvYXJkIG51bWJlck9mSXRlbXNdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFz
dGVib2FyZCBzZXRJdGVtczpdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFzdGVib2Fy
ZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6aW5JdGVtU2V0Ol0pOgorICAgICAgICAoLVtXZWJJdGVt
UHJvdmlkZXJQYXN0ZWJvYXJkIHZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOmluSXRlbVNldDpdKToK
KyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBjaGFuZ2VDb3VudF0pOgorICAg
ICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGl0ZW1Qcm92aWRlckF0SW5kZXg6XSk6
CisgICAgICAgICogcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oOgorCisyMDE3LTAxLTI0ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCiAgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBuYW1lZCBwYXN0ZWJvYXJkcywgcGFzdGVib2FyZCBzdHJhdGVnaWVzIGFuZCBwbGF0
Zm9ybSBwYXN0ZWJvYXJkcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY3NDA0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZp
bmVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCmluZGV4IDJkMzg4MzJhMTE5
ODhjYWNmOGRlMjY0N2M0NTBhOGJiMDQxNGFmYmEuLmM5ZGU4ZTcxYjdkNDZmN2ZlZDc0ZjQ5ZWIz
NTUwOTA1OTAzZWMzMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVz
LmgKKysrIGIvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaApAQCAtNzc5LDYgKzc3OSwx
MCBAQCB0aGUgcHVibGljIGlPUyBTREsuIFdlIHdpbGwgYWxzbyBuZWVkIHRvIHVwZGF0ZSB0aGUg
RmVhdHVyZURlZmluZXMueGNjb25maWcgZmlsZQogI2RlZmluZSBFTkFCTEVfS0VZQk9BUkRfQ09E
RV9BVFRSSUJVVEUgMAogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFUQV9JTlRFUkFD
VElPTikKKyNkZWZpbmUgRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04gMAorI2VuZGlmCisKIC8qIEFz
c2VydHMsIGludmFyaWFudHMgZm9yIG1hY3JvIGRlZmluaXRpb25zICovCiAKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spICYmICFFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTAyYTg3N2RhMmNmOGFlMGZjZjk2
OTU5OTc0NmQwZDdmMDk5MmU3My4uMTM5YTEwYWU2Y2RmNDRmYWQxODc5MmVkZGMyNzFkNDVmZjli
Nzg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNjUwMiw2ICs2NTAyLDkgQEAKIAkJRjQ3ODc1NTUxOTk4M0FGRjAwMjRBMjg3
IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNu
YXBBbmltYXRvclN0YXRlLm1tICovOyB9OwogCQlGNDdBNUUzRTE5NUI4QzhBMDA0ODMxMDAgLyog
U3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFw
UG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRjQ3QTVFM0YxOTVCOEU0ODAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQTE5
NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLzsgfTsKKwkJRjQ4
MjIzMTAxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgyMjMwRTFFMzg2
OUI4MDA2NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbSAqLzsgfTsKKwkJRjQ4
MjIzMTExRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODIyMzBGMUUzODY5
QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmggKi87IH07CisJCUY0ODIy
MzEzMUUzODZFMjQwMDY2RkM3OSAvKiBBYnN0cmFjdFBhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODIyMzEyMUUzODZFMjQwMDY2RkM3
OSAvKiBBYnN0cmFjdFBhc3RlYm9hcmQuaCAqLzsgfTsKIAkJRjRCRkI5ODUxRTFEREY5QjAwODYy
QzI0IC8qIER1bXBFZGl0aW5nSGlzdG9yeS5qcyBpbiBDb3B5IFNjcmlwdHMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4Mzg5ODMxRTFEREYyQjAwNzZCN0VBIC8qIER1bXBF
ZGl0aW5nSGlzdG9yeS5qcyAqLzsgfTsKIAkJRjRCRkI5ODYxRTFEREY5QjAwODYyQzI0IC8qIEVk
aXRpbmdIaXN0b3J5VXRpbC5qcyBpbiBDb3B5IFNjcmlwdHMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ4Mzg5ODQxRTFEREYyQjAwNzZCN0VBIC8qIEVkaXRpbmdIaXN0b3J5
VXRpbC5qcyAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi87IH07CkBAIC0x
NDU1MCw2ICsxNDU1Myw5IEBACiAJCUY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNCMTk1QjhDOEEw
MDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY0ODIyMzBFMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0
ZWJvYXJkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViSXRl
bVByb3ZpZGVyUGFzdGVib2FyZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ4
MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDgyMjMxMjFFMzg2RTI0MDA2NkZDNzkg
LyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFic3RyYWN0UGFzdGVib2FyZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDgz
ODk4MzFFMURERjJCMDA3NkI3RUEgLyogRHVtcEVkaXRpbmdIaXN0b3J5LmpzICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRHVtcEVkaXRpbmdIaXN0b3J5LmpzOyBwYXRo
ID0gU2NyaXB0cy9EdW1wRWRpdGluZ0hpc3RvcnkuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0ODM4OTg0MUUxRERGMkIwMDc2QjdFQSAvKiBFZGl0aW5nSGlzdG9yeVV0aWwuanMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBFZGl0aW5nSGlzdG9yeVV0
aWwuanM7IHBhdGggPSBTY3JpcHRzL0VkaXRpbmdIaXN0b3J5VXRpbC5qczsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9s
bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Db250cm9s
bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NzUyLDYgKzE5NzU4LDcg
QEAKIAkJQTU5RTNDMUIxMTU4MEYzNDAwNzI5MjhFIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRjQ4MjIzMTIxRTM4NkUyNDAwNjZGQzc5IC8q
IEFic3RyYWN0UGFzdGVib2FyZC5oICovLAogCQkJCUExNDgzMjhCMTg3RjUwNjgwMERBNjNBNiAv
KiB3YWsgKi8sCiAJCQkJMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5jcHAg
Ki8sCiAJCQkJQTFFRDc3OEExQkUzMjkzRjAwREMxNzkxIC8qIERldmljZS5jcHAgKi8sCkBAIC0x
OTgxNiw2ICsxOTgyMyw4IEBACiAJCQkJM0ZCQzRBRjIxODk4ODE1NjAwNDZFRTM4IC8qIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggKi8sCiAJCQkJM0ZCQzRBRjExODk4ODE1NjAw
NDZFRTM4IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tICovLAogCQkJCUU0
NTM5MDNDMEVBRkQ2MzcwMDM2OTVDOCAvKiBXaWRnZXRJT1MubW0gKi8sCisJCQkJRjQ4MjIzMEUx
RTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gKi8sCisJCQkJ
RjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTI1MjEzLDYgKzI1MjIyLDcgQEAKIAkJCQlDRTc5OUZBODFDNkE1MDU3MDA5N0I1MTggLyogQ29u
dGVudFNlY3VyaXR5UG9saWN5TWVkaWFMaXN0RGlyZWN0aXZlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRTZEQURGQTFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTc5OUZBMDFDNkE0QzE2MDA5N0I1MTgg
LyogQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNDgy
MjMxMzFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRTc5OUY5ODFDNkE0NkJDMDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9saWN5
U291cmNlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U3OTlGQUMxQzZBNTA2NjAwOTdCNTE4
IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3REaXJlY3RpdmUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxRDAxNUNBMEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNzc0NCw2ICsyNzc1NCw3IEBACiAJCQkJNDE0QjgyMDUxRDZERjBFNTAw
NzdFQkUzIC8qIFN0cnVjdHVyZWRDbG9uZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI2QTMw
RTgxREM0RjAwQjI1OTY1IC8qIFN0eWxlQmFja2dyb3VuZERhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNUVCNjdCMEU4MUQzQkUwMEIyNTk2NSAvKiBTdHlsZUJveERhdGEuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUY0ODIyMzExMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0
ZWJvYXJkLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzg2QTk2RDE5RjYxQjJFMDBFMUVDNEEgLyog
U3R5bGVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5Njg3QjE5RjhBQjgzMDA0RUY3
QUYgLyogU3R5bGVCdWlsZGVyQ29udmVydGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzVEMzYz
NzE5RkY2MTkzMDA0QzkzQUIgLyogU3R5bGVCdWlsZGVyQ3VzdG9tLmggaW4gSGVhZGVycyAqLywK
QEAgLTI5MjA0LDYgKzI5MjE1LDcgQEAKIAkJCQk5NDE4Mjc4RTFEOENBRjkyMDA0OTI3NjQgLyog
Q1NTUGVuZGluZ1N1YnN0aXR1dGlvblZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0Iz
ODYyMTIyODgzRTkwMEI4MUZGOCAvKiBDU1NQcmVsb2FkU2Nhbm5lci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBODBFNkQwNTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJpbWl0aXZlVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjQ4MjIzMTAxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Q
cm92aWRlclBhc3RlYm9hcmQubW0gaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGNzBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTUHJvcGVydHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzhEMDJCQzUx
NTRBMThERjAwQjYyRDA1IC8qIENTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBQkE3NkNBMTFEMjBFNTAwMDRDMjAxQyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Fi
c3RyYWN0UGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Fic3RyYWN0
UGFzdGVib2FyZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExZmUwNDA1NDg2ZTQ2MjhjMjZjMWQ2NmU3ZTQ1NTM1
MDIwNzE4ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
QWJzdHJhY3RQYXN0ZWJvYXJkLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCitAcHJvdG9jb2wgQWJzdHJhY3RQYXN0ZWJv
YXJkIDxOU09iamVjdD4KK0ByZXF1aXJlZAorCitAcHJvcGVydHkgKHJlYWRvbmx5LCBub25hdG9t
aWMpIE5TSW50ZWdlciBudW1iZXJPZkl0ZW1zOworCistIChOU0FycmF5PE5TU3RyaW5nICo+ICop
cGFzdGVib2FyZFR5cGVzOworLSAodm9pZClzZXRJdGVtczooTlNBcnJheSAqKWl0ZW1zOworLSAo
TlNBcnJheSAqKWRhdGFGb3JQYXN0ZWJvYXJkVHlwZTooTlNTdHJpbmcgKilwYXN0ZWJvYXJkVHlw
ZSBpbkl0ZW1TZXQ6KE5TSW5kZXhTZXQgKilpdGVtU2V0OworLSAoTlNBcnJheSAqKXZhbHVlc0Zv
clBhc3RlYm9hcmRUeXBlOihOU1N0cmluZyAqKXBhc3RlYm9hcmRUeXBlIGluSXRlbVNldDooTlNJ
bmRleFNldCAqKWl0ZW1TZXQ7CistIChOU0ludGVnZXIpY2hhbmdlQ291bnQ7CisKK0BlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0
ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFz
dGVib2FyZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhN2ZhZGZmOTYyMmZmZGU2ZTMwMjkwZGZjMTcwYTVhY2Nl
MTFlMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
SXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJBYnN0cmFjdFBhc3RlYm9hcmQuaCIKKworI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNU
SU9OKQorCitPQkpDX0NMQVNTIFVJSXRlbVByb3ZpZGVyOworCitOU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgorCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9h
cmQgOiBOU09iamVjdDxBYnN0cmFjdFBhc3RlYm9hcmQ+CisKKysgKGluc3RhbmNldHlwZSlzaGFy
ZWRJbnN0YW5jZTsKKworLSAoVUlJdGVtUHJvdmlkZXIgKilpdGVtUHJvdmlkZXJBdEluZGV4OihO
U0ludGVnZXIpaW5kZXg7CisKK0Bwcm9wZXJ0eSAoY29weSwgbm9uYXRvbWljLCBudWxsYWJsZSkg
TlNBcnJheTxVSUl0ZW1Qcm92aWRlciAqPiAqaXRlbVByb3ZpZGVyczsKK0Bwcm9wZXJ0eSAocmVh
ZG9ubHksIG5vbmF0b21pYykgTlNJbnRlZ2VyIG51bWJlck9mSXRlbXM7CitAcHJvcGVydHkgKHJl
YWRvbmx5LCBub25hdG9taWMpIE5TSW50ZWdlciBjaGFuZ2VDb3VudDsKKworQGVuZAorCitOU19B
U1NVTUVfTk9OTlVMTF9FTkQKKworI2VuZGlmIC8vIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBh
c3RlYm9hcmQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVy
UGFzdGVib2FyZC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjA3NzBmNjRlMzExMzQwMTNhZTVmMmRkMjRiYzQ0
NmMzN2M4ZDQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0KQEAgLTAsMCArMSwyMTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJJdGVtUHJvdmlkZXJQYXN0ZWJv
YXJkLmgiCisKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKworI2ltcG9ydCAiU29mdExp
bmtpbmcuaCIKKyNpbXBvcnQgIlVJS2l0U1BJLmgiCisjaW1wb3J0IDxNb2JpbGVDb3JlU2Vydmlj
ZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisjaW1wb3J0IDxVSUtpdC9VSUNvbG9yLmg+CisjaW1w
b3J0IDxVSUtpdC9VSUltYWdlLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUksoVUlLaXQpCitTT0ZU
X0xJTktfQ0xBU1MoVUlLaXQsIFVJQ29sb3IpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJSW1h
Z2UpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJSXRlbVByb3ZpZGVyKQorCisjZGVmaW5lIE1B
VENIRVNfVVRJX1RZUEUodHlwZSwgc3VmZml4KSBbdHlwZSBpc0VxdWFsVG9TdHJpbmc6KF9fYnJp
ZGdlIE5TU3RyaW5nICopa1VUVHlwZSAjIyBzdWZmaXhdCisjZGVmaW5lIE1BVENIRVNfVUlLSVRf
VFlQRSh0eXBlLCBzdWZmaXgpIFt0eXBlIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS51aWtp
dC4gIyMgc3VmZml4ICMjIl0KKworc3RhdGljIEJPT0wgaXNSaWNoVGV4dFR5cGUoTlNTdHJpbmcg
KnR5cGUpCit7CisgICAgcmV0dXJuIE1BVENIRVNfVVRJX1RZUEUodHlwZSwgUlRGKSB8fCBNQVRD
SEVTX1VUSV9UWVBFKHR5cGUsIFJURkQpIHx8IE1BVENIRVNfVVRJX1RZUEUodHlwZSwgSFRNTCk7
Cit9CisKK3N0YXRpYyBCT09MIGlzU3RyaW5nVHlwZShOU1N0cmluZyAqdHlwZSkKK3sKKyAgICBy
ZXR1cm4gTUFUQ0hFU19VVElfVFlQRSh0eXBlLCBUZXh0KSB8fCBNQVRDSEVTX1VUSV9UWVBFKHR5
cGUsIFVURjhQbGFpblRleHQpIHx8IE1BVENIRVNfVVRJX1RZUEUodHlwZSwgVVRGMTZQbGFpblRl
eHQpOworfQorCitzdGF0aWMgQk9PTCBpc1VSTFR5cGUoTlNTdHJpbmcgKnR5cGUpCit7CisgICAg
cmV0dXJuIE1BVENIRVNfVVRJX1RZUEUodHlwZSwgVVJMKTsKK30KKworc3RhdGljIEJPT0wgaXND
b2xvclR5cGUoTlNTdHJpbmcgKnR5cGUpCit7CisgICAgcmV0dXJuIE1BVENIRVNfVUlLSVRfVFlQ
RSh0eXBlLCBjb2xvcik7Cit9CisKK3N0YXRpYyBCT09MIGlzSW1hZ2VUeXBlKE5TU3RyaW5nICp0
eXBlKQoreworICAgIHJldHVybiBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIFBORykgfHwgTUFUQ0hF
U19VVElfVFlQRSh0eXBlLCBKUEVHKSB8fCBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIEdJRikgfHwg
TUFUQ0hFU19VSUtJVF9UWVBFKHR5cGUsIGltYWdlKTsKK30KKworQGludGVyZmFjZSBXZWJJdGVt
UHJvdmlkZXJQYXN0ZWJvYXJkICgpCisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU0ludGVnZXIg
bnVtYmVyT2ZJdGVtczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU0ludGVnZXIgY2hhbmdlQ291
bnQ7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQK
KworKyAoaW5zdGFuY2V0eXBlKXNoYXJlZEluc3RhbmNlCit7CisgICAgc3RhdGljIFdlYkl0ZW1Q
cm92aWRlclBhc3RlYm9hcmQgKnNoYXJlZFBhc3RlYm9hcmQgPSBuaWw7CisgICAgc3RhdGljIGRp
c3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBe
KCkgeworICAgICAgICBzaGFyZWRQYXN0ZWJvYXJkID0gW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJv
YXJkIGFsbG9jXSBpbml0XTsKKyAgICB9KTsKKyAgICByZXR1cm4gc2hhcmVkUGFzdGVib2FyZDsK
K30KKworLSAoaW5zdGFuY2V0eXBlKWluaXQKK3sKKyAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0
XSkgeworICAgICAgICBfaXRlbVByb3ZpZGVycyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdF07Cisg
ICAgICAgIF9jaGFuZ2VDb3VudCA9IDA7CisgICAgfQorICAgIHJldHVybiBzZWxmOworfQorCist
ICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbc3VwZXIgZGVhbGxvY107CisgICAgW19pdGVtUHJvdmlk
ZXJzIHJlbGVhc2VdOworfQorCistIChOU0FycmF5PE5TU3RyaW5nICo+ICopcGFzdGVib2FyZFR5
cGVzCit7CisgICAgTlNNdXRhYmxlU2V0PE5TU3RyaW5nICo+ICphbGxUeXBlcyA9IFtOU011dGFi
bGVTZXQgc2V0XTsKKyAgICBmb3IgKFVJSXRlbVByb3ZpZGVyICpwcm92aWRlciBpbiBfaXRlbVBy
b3ZpZGVycykKKyAgICAgICAgW2FsbFR5cGVzIGFkZE9iamVjdHNGcm9tQXJyYXk6cHJvdmlkZXIu
cmVnaXN0ZXJlZFR5cGVJZGVudGlmaWVyc107CisgICAgcmV0dXJuIGFsbFR5cGVzLmFsbE9iamVj
dHM7Cit9CisKKy0gKHZvaWQpc2V0SXRlbVByb3ZpZGVyczooTlNBcnJheTxVSUl0ZW1Qcm92aWRl
ciAqPiAqKWl0ZW1Qcm92aWRlcnMKK3sKKyAgICBpdGVtUHJvdmlkZXJzID0gaXRlbVByb3ZpZGVy
cyA/OiBbTlNBcnJheSBhcnJheV07CisgICAgaWYgKF9pdGVtUHJvdmlkZXJzID09IGl0ZW1Qcm92
aWRlcnMgfHwgW19pdGVtUHJvdmlkZXJzIGlzRXF1YWxUb0FycmF5Oml0ZW1Qcm92aWRlcnNdKQor
ICAgICAgICByZXR1cm47CisgICAgX2l0ZW1Qcm92aWRlcnMgPSBbaXRlbVByb3ZpZGVycyBjb3B5
XTsKKyAgICBfY2hhbmdlQ291bnQrKzsKK30KKworLSAoTlNJbnRlZ2VyKW51bWJlck9mSXRlbXMK
K3sKKyAgICByZXR1cm4gX2l0ZW1Qcm92aWRlcnMuY291bnQ7Cit9CisKKy0gKHZvaWQpc2V0SXRl
bXM6KE5TQXJyYXkgKilpdGVtcworeworICAgIE5TTXV0YWJsZUFycmF5ICpwcm92aWRlcnMgPSBb
W05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XTsKKyAgICBmb3IgKE5TRGljdGlvbmFyeSAqaXRl
bSBpbiBpdGVtcykgeworICAgICAgICBpZiAoIWl0ZW0uY291bnQpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgVUlJdGVtUHJvdmlkZXIgKml0ZW1Qcm92aWRlciA9IFtbZ2V0VUlJdGVt
UHJvdmlkZXJDbGFzcygpIGFsbG9jXSBpbml0XTsKKyAgICAgICAgZm9yIChOU1N0cmluZyAqdHlw
ZUlkZW50aWZpZXIgaW4gaXRlbSkgeworICAgICAgICAgICAgW2l0ZW1Qcm92aWRlciByZWdpc3Rl
ckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOnR5cGVJZGVudGlmaWVyIGxvYWRI
YW5kbGVyOl4oVUlJdGVtUHJvdmlkZXJEYXRhTG9hZENvbXBsZXRpb25CbG9jayBjb21wbGV0aW9u
QmxvY2ssIE5TRGljdGlvbmFyeSAqKSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkJsb2Nr
KGl0ZW1bdHlwZUlkZW50aWZpZXJdLCBuaWwpOworICAgICAgICAgICAgfV07CisgICAgICAgIH0K
KyAgICAgICAgW3Byb3ZpZGVycyBhZGRPYmplY3Q6aXRlbVByb3ZpZGVyXTsKKyAgICB9CisgICAg
X2NoYW5nZUNvdW50Kys7CisgICAgX2l0ZW1Qcm92aWRlcnMgPSBwcm92aWRlcnM7Cit9CisKKy0g
KE5TQXJyYXkgKilkYXRhRm9yUGFzdGVib2FyZFR5cGU6KE5TU3RyaW5nICopcGFzdGVib2FyZFR5
cGUgaW5JdGVtU2V0OihOU0luZGV4U2V0ICopaXRlbVNldAoreworICAgIF9fYmxvY2sgTlNNdXRh
YmxlQXJyYXkgKnZhbHVlcyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisgICAgW2l0ZW1TZXQg
ZW51bWVyYXRlSW5kZXhlc1VzaW5nQmxvY2s6XihOU1VJbnRlZ2VyIGluZGV4LCBCT09MICopIHsK
KyAgICAgICAgVUlJdGVtUHJvdmlkZXIgKnByb3ZpZGVyID0gW3NlbGYgaXRlbVByb3ZpZGVyQXRJ
bmRleDppbmRleF07CisgICAgICAgIGlmICghcHJvdmlkZXIpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgTlNEYXRhICpkYXRhID0gW3Byb3ZpZGVyIGNvcHlEYXRhUmVwcmVzZW50YXRp
b25Gb3JUeXBlSWRlbnRpZmllcjpwYXN0ZWJvYXJkVHlwZSBvcHRpb25zOm5pbCBlcnJvcjpuaWxd
OworICAgICAgICBpZiAoZGF0YSkKKyAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0OmRhdGFd
OworICAgIH1dOworCisgICAgcmV0dXJuIHZhbHVlczsKK30KKworLSAoTlNBcnJheSAqKXZhbHVl
c0ZvclBhc3RlYm9hcmRUeXBlOihOU1N0cmluZyAqKXBhc3RlYm9hcmRUeXBlIGluSXRlbVNldDoo
TlNJbmRleFNldCAqKWl0ZW1TZXQKK3sKKyAgICBfX2Jsb2NrIE5TTXV0YWJsZUFycmF5ICp2YWx1
ZXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIFtpdGVtU2V0IGVudW1lcmF0ZUluZGV4
ZXNVc2luZ0Jsb2NrOl4oTlNVSW50ZWdlciBpbmRleCwgQk9PTCAqKSB7CisgICAgICAgIFVJSXRl
bVByb3ZpZGVyICpwcm92aWRlciA9IFtzZWxmIGl0ZW1Qcm92aWRlckF0SW5kZXg6aW5kZXhdOwor
ICAgICAgICBpZiAoIXByb3ZpZGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlm
IChpc1JpY2hUZXh0VHlwZShwYXN0ZWJvYXJkVHlwZSkgJiYgW3Byb3ZpZGVyIGNhbkluc3RhbnRp
YXRlT2JqZWN0T2ZDbGFzczpbTlNBdHRyaWJ1dGVkU3RyaW5nIGNsYXNzXV0pIHsKKyAgICAgICAg
ICAgIFt2YWx1ZXMgYWRkT2JqZWN0Oltwcm92aWRlciBpbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6
W05TQXR0cmlidXRlZFN0cmluZyBjbGFzc10gb3B0aW9uczpuaWwgZXJyb3I6bmlsXV07CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNTdHJpbmdUeXBlKHBh
c3RlYm9hcmRUeXBlKSAmJiBbcHJvdmlkZXIgY2FuSW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltO
U1N0cmluZyBjbGFzc11dKSB7CisgICAgICAgICAgICBbdmFsdWVzIGFkZE9iamVjdDpbcHJvdmlk
ZXIgaW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltOU1N0cmluZyBjbGFzc10gb3B0aW9uczpuaWwg
ZXJyb3I6bmlsXV07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoaXNDb2xvclR5cGUocGFzdGVib2FyZFR5cGUpICYmIFtwcm92aWRlciBjYW5JbnN0YW50aWF0
ZU9iamVjdE9mQ2xhc3M6W2dldFVJQ29sb3JDbGFzcygpIGNsYXNzXV0pIHsKKyAgICAgICAgICAg
IFt2YWx1ZXMgYWRkT2JqZWN0Oltwcm92aWRlciBpbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W2dl
dFVJQ29sb3JDbGFzcygpIGNsYXNzXSBvcHRpb25zOm5pbCBlcnJvcjpuaWxdXTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc1VSTFR5cGUocGFzdGVib2Fy
ZFR5cGUpICYmIFtwcm92aWRlciBjYW5JbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W05TVVJMIGNs
YXNzXV0pIHsKKyAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0Oltwcm92aWRlciBpbnN0YW50
aWF0ZU9iamVjdE9mQ2xhc3M6W05TVVJMIGNsYXNzXSBvcHRpb25zOm5pbCBlcnJvcjpuaWxdXTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc0ltYWdlVHlw
ZShwYXN0ZWJvYXJkVHlwZSkgJiYgW3Byb3ZpZGVyIGNhbkluc3RhbnRpYXRlT2JqZWN0T2ZDbGFz
czpbZ2V0VUlJbWFnZUNsYXNzKCkgY2xhc3NdXSkgeworICAgICAgICAgICAgW3ZhbHVlcyBhZGRP
YmplY3Q6W3Byb3ZpZGVyIGluc3RhbnRpYXRlT2JqZWN0T2ZDbGFzczpbZ2V0VUlJbWFnZUNsYXNz
KCkgY2xhc3NdIG9wdGlvbnM6bmlsIGVycm9yOm5pbF1dOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJGYWlsZWQgdG8gaW5zdGFudGlhdGUg
b2JqZWN0IGZvciB0eXBlOiAnJXMnIGF0IGluZGV4OiAldHUiLCBwYXN0ZWJvYXJkVHlwZS5VVEY4
U3RyaW5nLCBpbmRleCk7CisgICAgfV07CisgICAgcmV0dXJuIHZhbHVlczsKK30KKworLSAoTlNJ
bnRlZ2VyKWNoYW5nZUNvdW50Cit7CisgICAgcmV0dXJuIF9jaGFuZ2VDb3VudDsKK30KKworLSAo
VUlJdGVtUHJvdmlkZXIgKilpdGVtUHJvdmlkZXJBdEluZGV4OihOU0ludGVnZXIpaW5kZXgKK3sK
KyAgICByZXR1cm4gMCA8PSBpbmRleCAmJiBpbmRleCA8IChOU0ludGVnZXIpX2l0ZW1Qcm92aWRl
cnMuY291bnQgPyBfaXRlbVByb3ZpZGVyc1tpbmRleF0gOiBuaWw7Cit9CisKK0BlbmQKKworI2Vu
ZGlmIC8vIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IDYyMjdjZGQ3M2E5MDkwMTg1ZjIyNjg5NjEwZThiZWJk
OTYyMzgzODguLmYwYTRiNjhmODQ4MjZhNDA3NjQ5NDAxYzQxN2RjOTIzNGRjZjEwZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAgLTMwLDYgKzMwLDEw
IEBACiAjaW1wb3J0IDxVSUtpdC9VSVNjcmVlbl9Qcml2YXRlLmg+CiAjaW1wb3J0IDxVSUtpdC9V
SVZpZXdDb250cm9sbGVyX1ByaXZhdGUuaD4KIAorI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9O
KQorI2ltcG9ydCA8VUlLaXQvVUlJdGVtUHJvdmlkZXJfUHJpdmF0ZS5oPgorI2VuZGlmCisKICNl
bHNlCiAKICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+Cg==
</data>
<flag name="commit-queue"
          id="321665"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299749</attachid>
            <date>2017-01-25 14:45:41 -0800</date>
            <delta_ts>2017-01-25 14:48:37 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-167410-20170125144340.patch</filename>
            <type>text/plain</type>
            <size>21976</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE5NzAyMDAyYzhiOTNkNTQ0ODRhNDlj
ZTkxYTQwMTdjZGY4MzAxNDkuLmU0YmYzNDM2YTFkOWRkNWNkZWUyN2YxNWVhYTIyMzhhNTllN2I0
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTctMDEtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgSW50cm9kdWNlIGFuIGl0ZW0tcHJvdmlkZXIt
YmFzZWQgcGFzdGVib2FyZCB3cmFwcGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjc0MTAKKworICAgICAgICBSZXZpZXdlZCBieSBFbnJpY2EgQ2Fz
dWNjaS4KKworICAgICAgICBBZGRzIGFuIGFkZGl0aW9uYWwgZmVhdHVyZSBmbGFnLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEVucmljYSBDYXN1Y2NpLgorCisgICAgICAgICogd3RmL0ZlYXR1cmVE
ZWZpbmVzLmg6CisKKzIwMTctMDEtMjQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CisKICAgICAgICAgQWRkIGEgaG9vayB0byBpbmNsdWRlIGFkZGl0aW9uYWwgZmVhdHVy
ZSBkZWZpbmVzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjc0MDMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZiNWNlYmM0ODNjYTZjZWQyYjdkZWRlZWZhZjBkODI0
NjJkNjhlYjQuLmJjMmU0NjM5MTY4ZDhkYWRkYmQ0M2M2MDM5MGRlOGE4MGI2NmM4MzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwzNyBAQAogMjAxNy0wMS0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAorICAgICAgICBJbnRyb2R1Y2UgYW4gaXRlbS1wcm92aWRlci1i
YXNlZCBwYXN0ZWJvYXJkIHdyYXBwZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NzQxMAorCisgICAgICAgIFJldmlld2VkIGJ5IEVucmljYSBDYXN1
Y2NpLgorCisgICAgICAgIEludHJvZHVjZXMgV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCwgYSBw
YXN0ZWJvYXJkLWxpa2Ugb2JqZWN0IGJhY2tlZCBieSBhIG51bWJlciBvZiBpdGVtIHByb3ZpZGVy
cy4gTm8gbmV3CisgICAgICAgIHRlc3RzLCBzaW5jZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFu
Z2UuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vaW9zL0Fic3RyYWN0UGFzdGVib2FyZC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmguCisgICAgICAgICogcGxhdGZv
cm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oLgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tOiBBZGRlZC4KKyAgICAgICAgKGlzUmljaFRl
eHRUeXBlKToKKyAgICAgICAgKGlzU3RyaW5nVHlwZSk6CisgICAgICAgIChpc1VSTFR5cGUpOgor
ICAgICAgICAoaXNDb2xvclR5cGUpOgorICAgICAgICAoaXNJbWFnZVR5cGUpOgorICAgICAgICAo
K1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSk6CisgICAgICAgICgt
W1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgaW5pdF0pOgorICAgICAgICAoLVtXZWJJdGVtUHJv
dmlkZXJQYXN0ZWJvYXJkIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFz
dGVib2FyZCBwYXN0ZWJvYXJkVHlwZXNdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFz
dGVib2FyZCBzZXRJdGVtUHJvdmlkZXJzOl0pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQ
YXN0ZWJvYXJkIG51bWJlck9mSXRlbXNdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFz
dGVib2FyZCBzZXRJdGVtczpdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFzdGVib2Fy
ZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6aW5JdGVtU2V0Ol0pOgorICAgICAgICAoLVtXZWJJdGVt
UHJvdmlkZXJQYXN0ZWJvYXJkIHZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOmluSXRlbVNldDpdKToK
KyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBjaGFuZ2VDb3VudF0pOgorICAg
ICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGl0ZW1Qcm92aWRlckF0SW5kZXg6XSk6
CisgICAgICAgICogcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oOgorCisyMDE3LTAxLTI0ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCiAgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBuYW1lZCBwYXN0ZWJvYXJkcywgcGFzdGVib2FyZCBzdHJhdGVnaWVzIGFuZCBwbGF0
Zm9ybSBwYXN0ZWJvYXJkcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY3NDA0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZp
bmVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCmluZGV4IDJkMzg4MzJhMTE5
ODhjYWNmOGRlMjY0N2M0NTBhOGJiMDQxNGFmYmEuLmM5ZGU4ZTcxYjdkNDZmN2ZlZDc0ZjQ5ZWIz
NTUwOTA1OTAzZWMzMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVz
LmgKKysrIGIvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaApAQCAtNzc5LDYgKzc3OSwx
MCBAQCB0aGUgcHVibGljIGlPUyBTREsuIFdlIHdpbGwgYWxzbyBuZWVkIHRvIHVwZGF0ZSB0aGUg
RmVhdHVyZURlZmluZXMueGNjb25maWcgZmlsZQogI2RlZmluZSBFTkFCTEVfS0VZQk9BUkRfQ09E
RV9BVFRSSUJVVEUgMAogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFUQV9JTlRFUkFD
VElPTikKKyNkZWZpbmUgRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04gMAorI2VuZGlmCisKIC8qIEFz
c2VydHMsIGludmFyaWFudHMgZm9yIG1hY3JvIGRlZmluaXRpb25zICovCiAKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spICYmICFFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTAyYTg3N2RhMmNmOGFlMGZjZjk2
OTU5OTc0NmQwZDdmMDk5MmU3My4uMTM5YTEwYWU2Y2RmNDRmYWQxODc5MmVkZGMyNzFkNDVmZjli
Nzg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNjUwMiw2ICs2NTAyLDkgQEAKIAkJRjQ3ODc1NTUxOTk4M0FGRjAwMjRBMjg3
IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNu
YXBBbmltYXRvclN0YXRlLm1tICovOyB9OwogCQlGNDdBNUUzRTE5NUI4QzhBMDA0ODMxMDAgLyog
U3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFw
UG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRjQ3QTVFM0YxOTVCOEU0ODAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQTE5
NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLzsgfTsKKwkJRjQ4
MjIzMTAxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgyMjMwRTFFMzg2
OUI4MDA2NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbSAqLzsgfTsKKwkJRjQ4
MjIzMTExRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODIyMzBGMUUzODY5
QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmggKi87IH07CisJCUY0ODIy
MzEzMUUzODZFMjQwMDY2RkM3OSAvKiBBYnN0cmFjdFBhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODIyMzEyMUUzODZFMjQwMDY2RkM3
OSAvKiBBYnN0cmFjdFBhc3RlYm9hcmQuaCAqLzsgfTsKIAkJRjRCRkI5ODUxRTFEREY5QjAwODYy
QzI0IC8qIER1bXBFZGl0aW5nSGlzdG9yeS5qcyBpbiBDb3B5IFNjcmlwdHMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4Mzg5ODMxRTFEREYyQjAwNzZCN0VBIC8qIER1bXBF
ZGl0aW5nSGlzdG9yeS5qcyAqLzsgfTsKIAkJRjRCRkI5ODYxRTFEREY5QjAwODYyQzI0IC8qIEVk
aXRpbmdIaXN0b3J5VXRpbC5qcyBpbiBDb3B5IFNjcmlwdHMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ4Mzg5ODQxRTFEREYyQjAwNzZCN0VBIC8qIEVkaXRpbmdIaXN0b3J5
VXRpbC5qcyAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi87IH07CkBAIC0x
NDU1MCw2ICsxNDU1Myw5IEBACiAJCUY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNCMTk1QjhDOEEw
MDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY0ODIyMzBFMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0
ZWJvYXJkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViSXRl
bVByb3ZpZGVyUGFzdGVib2FyZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ4
MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDgyMjMxMjFFMzg2RTI0MDA2NkZDNzkg
LyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFic3RyYWN0UGFzdGVib2FyZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDgz
ODk4MzFFMURERjJCMDA3NkI3RUEgLyogRHVtcEVkaXRpbmdIaXN0b3J5LmpzICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRHVtcEVkaXRpbmdIaXN0b3J5LmpzOyBwYXRo
ID0gU2NyaXB0cy9EdW1wRWRpdGluZ0hpc3RvcnkuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0ODM4OTg0MUUxRERGMkIwMDc2QjdFQSAvKiBFZGl0aW5nSGlzdG9yeVV0aWwuanMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBFZGl0aW5nSGlzdG9yeVV0
aWwuanM7IHBhdGggPSBTY3JpcHRzL0VkaXRpbmdIaXN0b3J5VXRpbC5qczsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9s
bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Db250cm9s
bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NzUyLDYgKzE5NzU4LDcg
QEAKIAkJQTU5RTNDMUIxMTU4MEYzNDAwNzI5MjhFIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRjQ4MjIzMTIxRTM4NkUyNDAwNjZGQzc5IC8q
IEFic3RyYWN0UGFzdGVib2FyZC5oICovLAogCQkJCUExNDgzMjhCMTg3RjUwNjgwMERBNjNBNiAv
KiB3YWsgKi8sCiAJCQkJMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5jcHAg
Ki8sCiAJCQkJQTFFRDc3OEExQkUzMjkzRjAwREMxNzkxIC8qIERldmljZS5jcHAgKi8sCkBAIC0x
OTgxNiw2ICsxOTgyMyw4IEBACiAJCQkJM0ZCQzRBRjIxODk4ODE1NjAwNDZFRTM4IC8qIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggKi8sCiAJCQkJM0ZCQzRBRjExODk4ODE1NjAw
NDZFRTM4IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tICovLAogCQkJCUU0
NTM5MDNDMEVBRkQ2MzcwMDM2OTVDOCAvKiBXaWRnZXRJT1MubW0gKi8sCisJCQkJRjQ4MjIzMEUx
RTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gKi8sCisJCQkJ
RjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTI1MjEzLDYgKzI1MjIyLDcgQEAKIAkJCQlDRTc5OUZBODFDNkE1MDU3MDA5N0I1MTggLyogQ29u
dGVudFNlY3VyaXR5UG9saWN5TWVkaWFMaXN0RGlyZWN0aXZlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRTZEQURGQTFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTc5OUZBMDFDNkE0QzE2MDA5N0I1MTgg
LyogQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNDgy
MjMxMzFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRTc5OUY5ODFDNkE0NkJDMDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9saWN5
U291cmNlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U3OTlGQUMxQzZBNTA2NjAwOTdCNTE4
IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3REaXJlY3RpdmUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxRDAxNUNBMEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNzc0NCw2ICsyNzc1NCw3IEBACiAJCQkJNDE0QjgyMDUxRDZERjBFNTAw
NzdFQkUzIC8qIFN0cnVjdHVyZWRDbG9uZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI2QTMw
RTgxREM0RjAwQjI1OTY1IC8qIFN0eWxlQmFja2dyb3VuZERhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNUVCNjdCMEU4MUQzQkUwMEIyNTk2NSAvKiBTdHlsZUJveERhdGEuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUY0ODIyMzExMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0
ZWJvYXJkLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzg2QTk2RDE5RjYxQjJFMDBFMUVDNEEgLyog
U3R5bGVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5Njg3QjE5RjhBQjgzMDA0RUY3
QUYgLyogU3R5bGVCdWlsZGVyQ29udmVydGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzVEMzYz
NzE5RkY2MTkzMDA0QzkzQUIgLyogU3R5bGVCdWlsZGVyQ3VzdG9tLmggaW4gSGVhZGVycyAqLywK
QEAgLTI5MjA0LDYgKzI5MjE1LDcgQEAKIAkJCQk5NDE4Mjc4RTFEOENBRjkyMDA0OTI3NjQgLyog
Q1NTUGVuZGluZ1N1YnN0aXR1dGlvblZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0Iz
ODYyMTIyODgzRTkwMEI4MUZGOCAvKiBDU1NQcmVsb2FkU2Nhbm5lci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBODBFNkQwNTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJpbWl0aXZlVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjQ4MjIzMTAxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Q
cm92aWRlclBhc3RlYm9hcmQubW0gaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGNzBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTUHJvcGVydHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzhEMDJCQzUx
NTRBMThERjAwQjYyRDA1IC8qIENTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBQkE3NkNBMTFEMjBFNTAwMDRDMjAxQyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Fi
c3RyYWN0UGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Fic3RyYWN0
UGFzdGVib2FyZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExZmUwNDA1NDg2ZTQ2MjhjMjZjMWQ2NmU3ZTQ1NTM1
MDIwNzE4ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
QWJzdHJhY3RQYXN0ZWJvYXJkLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCitAcHJvdG9jb2wgQWJzdHJhY3RQYXN0ZWJv
YXJkIDxOU09iamVjdD4KK0ByZXF1aXJlZAorCitAcHJvcGVydHkgKHJlYWRvbmx5LCBub25hdG9t
aWMpIE5TSW50ZWdlciBudW1iZXJPZkl0ZW1zOworCistIChOU0FycmF5PE5TU3RyaW5nICo+ICop
cGFzdGVib2FyZFR5cGVzOworLSAodm9pZClzZXRJdGVtczooTlNBcnJheSAqKWl0ZW1zOworLSAo
TlNBcnJheSAqKWRhdGFGb3JQYXN0ZWJvYXJkVHlwZTooTlNTdHJpbmcgKilwYXN0ZWJvYXJkVHlw
ZSBpbkl0ZW1TZXQ6KE5TSW5kZXhTZXQgKilpdGVtU2V0OworLSAoTlNBcnJheSAqKXZhbHVlc0Zv
clBhc3RlYm9hcmRUeXBlOihOU1N0cmluZyAqKXBhc3RlYm9hcmRUeXBlIGluSXRlbVNldDooTlNJ
bmRleFNldCAqKWl0ZW1TZXQ7CistIChOU0ludGVnZXIpY2hhbmdlQ291bnQ7CisKK0BlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0
ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFz
dGVib2FyZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhN2ZhZGZmOTYyMmZmZGU2ZTMwMjkwZGZjMTcwYTVhY2Nl
MTFlMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
SXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJBYnN0cmFjdFBhc3RlYm9hcmQuaCIKKworI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNU
SU9OKQorCitPQkpDX0NMQVNTIFVJSXRlbVByb3ZpZGVyOworCitOU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgorCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9h
cmQgOiBOU09iamVjdDxBYnN0cmFjdFBhc3RlYm9hcmQ+CisKKysgKGluc3RhbmNldHlwZSlzaGFy
ZWRJbnN0YW5jZTsKKworLSAoVUlJdGVtUHJvdmlkZXIgKilpdGVtUHJvdmlkZXJBdEluZGV4OihO
U0ludGVnZXIpaW5kZXg7CisKK0Bwcm9wZXJ0eSAoY29weSwgbm9uYXRvbWljLCBudWxsYWJsZSkg
TlNBcnJheTxVSUl0ZW1Qcm92aWRlciAqPiAqaXRlbVByb3ZpZGVyczsKK0Bwcm9wZXJ0eSAocmVh
ZG9ubHksIG5vbmF0b21pYykgTlNJbnRlZ2VyIG51bWJlck9mSXRlbXM7CitAcHJvcGVydHkgKHJl
YWRvbmx5LCBub25hdG9taWMpIE5TSW50ZWdlciBjaGFuZ2VDb3VudDsKKworQGVuZAorCitOU19B
U1NVTUVfTk9OTlVMTF9FTkQKKworI2VuZGlmIC8vIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBh
c3RlYm9hcmQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVy
UGFzdGVib2FyZC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjA3NzBmNjRlMzExMzQwMTNhZTVmMmRkMjRiYzQ0
NmMzN2M4ZDQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0KQEAgLTAsMCArMSwyMTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJJdGVtUHJvdmlkZXJQYXN0ZWJv
YXJkLmgiCisKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKworI2ltcG9ydCAiU29mdExp
bmtpbmcuaCIKKyNpbXBvcnQgIlVJS2l0U1BJLmgiCisjaW1wb3J0IDxNb2JpbGVDb3JlU2Vydmlj
ZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisjaW1wb3J0IDxVSUtpdC9VSUNvbG9yLmg+CisjaW1w
b3J0IDxVSUtpdC9VSUltYWdlLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUksoVUlLaXQpCitTT0ZU
X0xJTktfQ0xBU1MoVUlLaXQsIFVJQ29sb3IpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJSW1h
Z2UpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJSXRlbVByb3ZpZGVyKQorCisjZGVmaW5lIE1B
VENIRVNfVVRJX1RZUEUodHlwZSwgc3VmZml4KSBbdHlwZSBpc0VxdWFsVG9TdHJpbmc6KF9fYnJp
ZGdlIE5TU3RyaW5nICopa1VUVHlwZSAjIyBzdWZmaXhdCisjZGVmaW5lIE1BVENIRVNfVUlLSVRf
VFlQRSh0eXBlLCBzdWZmaXgpIFt0eXBlIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS51aWtp
dC4gIyMgc3VmZml4ICMjIl0KKworc3RhdGljIEJPT0wgaXNSaWNoVGV4dFR5cGUoTlNTdHJpbmcg
KnR5cGUpCit7CisgICAgcmV0dXJuIE1BVENIRVNfVVRJX1RZUEUodHlwZSwgUlRGKSB8fCBNQVRD
SEVTX1VUSV9UWVBFKHR5cGUsIFJURkQpIHx8IE1BVENIRVNfVVRJX1RZUEUodHlwZSwgSFRNTCk7
Cit9CisKK3N0YXRpYyBCT09MIGlzU3RyaW5nVHlwZShOU1N0cmluZyAqdHlwZSkKK3sKKyAgICBy
ZXR1cm4gTUFUQ0hFU19VVElfVFlQRSh0eXBlLCBUZXh0KSB8fCBNQVRDSEVTX1VUSV9UWVBFKHR5
cGUsIFVURjhQbGFpblRleHQpIHx8IE1BVENIRVNfVVRJX1RZUEUodHlwZSwgVVRGMTZQbGFpblRl
eHQpOworfQorCitzdGF0aWMgQk9PTCBpc1VSTFR5cGUoTlNTdHJpbmcgKnR5cGUpCit7CisgICAg
cmV0dXJuIE1BVENIRVNfVVRJX1RZUEUodHlwZSwgVVJMKTsKK30KKworc3RhdGljIEJPT0wgaXND
b2xvclR5cGUoTlNTdHJpbmcgKnR5cGUpCit7CisgICAgcmV0dXJuIE1BVENIRVNfVUlLSVRfVFlQ
RSh0eXBlLCBjb2xvcik7Cit9CisKK3N0YXRpYyBCT09MIGlzSW1hZ2VUeXBlKE5TU3RyaW5nICp0
eXBlKQoreworICAgIHJldHVybiBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIFBORykgfHwgTUFUQ0hF
U19VVElfVFlQRSh0eXBlLCBKUEVHKSB8fCBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIEdJRikgfHwg
TUFUQ0hFU19VSUtJVF9UWVBFKHR5cGUsIGltYWdlKTsKK30KKworQGludGVyZmFjZSBXZWJJdGVt
UHJvdmlkZXJQYXN0ZWJvYXJkICgpCisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU0ludGVnZXIg
bnVtYmVyT2ZJdGVtczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU0ludGVnZXIgY2hhbmdlQ291
bnQ7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQK
KworKyAoaW5zdGFuY2V0eXBlKXNoYXJlZEluc3RhbmNlCit7CisgICAgc3RhdGljIFdlYkl0ZW1Q
cm92aWRlclBhc3RlYm9hcmQgKnNoYXJlZFBhc3RlYm9hcmQgPSBuaWw7CisgICAgc3RhdGljIGRp
c3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBe
KCkgeworICAgICAgICBzaGFyZWRQYXN0ZWJvYXJkID0gW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJv
YXJkIGFsbG9jXSBpbml0XTsKKyAgICB9KTsKKyAgICByZXR1cm4gc2hhcmVkUGFzdGVib2FyZDsK
K30KKworLSAoaW5zdGFuY2V0eXBlKWluaXQKK3sKKyAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0
XSkgeworICAgICAgICBfaXRlbVByb3ZpZGVycyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdF07Cisg
ICAgICAgIF9jaGFuZ2VDb3VudCA9IDA7CisgICAgfQorICAgIHJldHVybiBzZWxmOworfQorCist
ICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbc3VwZXIgZGVhbGxvY107CisgICAgW19pdGVtUHJvdmlk
ZXJzIHJlbGVhc2VdOworfQorCistIChOU0FycmF5PE5TU3RyaW5nICo+ICopcGFzdGVib2FyZFR5
cGVzCit7CisgICAgTlNNdXRhYmxlU2V0PE5TU3RyaW5nICo+ICphbGxUeXBlcyA9IFtOU011dGFi
bGVTZXQgc2V0XTsKKyAgICBmb3IgKFVJSXRlbVByb3ZpZGVyICpwcm92aWRlciBpbiBfaXRlbVBy
b3ZpZGVycykKKyAgICAgICAgW2FsbFR5cGVzIGFkZE9iamVjdHNGcm9tQXJyYXk6cHJvdmlkZXIu
cmVnaXN0ZXJlZFR5cGVJZGVudGlmaWVyc107CisgICAgcmV0dXJuIGFsbFR5cGVzLmFsbE9iamVj
dHM7Cit9CisKKy0gKHZvaWQpc2V0SXRlbVByb3ZpZGVyczooTlNBcnJheTxVSUl0ZW1Qcm92aWRl
ciAqPiAqKWl0ZW1Qcm92aWRlcnMKK3sKKyAgICBpdGVtUHJvdmlkZXJzID0gaXRlbVByb3ZpZGVy
cyA/OiBbTlNBcnJheSBhcnJheV07CisgICAgaWYgKF9pdGVtUHJvdmlkZXJzID09IGl0ZW1Qcm92
aWRlcnMgfHwgW19pdGVtUHJvdmlkZXJzIGlzRXF1YWxUb0FycmF5Oml0ZW1Qcm92aWRlcnNdKQor
ICAgICAgICByZXR1cm47CisgICAgX2l0ZW1Qcm92aWRlcnMgPSBbaXRlbVByb3ZpZGVycyBjb3B5
XTsKKyAgICBfY2hhbmdlQ291bnQrKzsKK30KKworLSAoTlNJbnRlZ2VyKW51bWJlck9mSXRlbXMK
K3sKKyAgICByZXR1cm4gX2l0ZW1Qcm92aWRlcnMuY291bnQ7Cit9CisKKy0gKHZvaWQpc2V0SXRl
bXM6KE5TQXJyYXkgKilpdGVtcworeworICAgIE5TTXV0YWJsZUFycmF5ICpwcm92aWRlcnMgPSBb
W05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XTsKKyAgICBmb3IgKE5TRGljdGlvbmFyeSAqaXRl
bSBpbiBpdGVtcykgeworICAgICAgICBpZiAoIWl0ZW0uY291bnQpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgVUlJdGVtUHJvdmlkZXIgKml0ZW1Qcm92aWRlciA9IFtbZ2V0VUlJdGVt
UHJvdmlkZXJDbGFzcygpIGFsbG9jXSBpbml0XTsKKyAgICAgICAgZm9yIChOU1N0cmluZyAqdHlw
ZUlkZW50aWZpZXIgaW4gaXRlbSkgeworICAgICAgICAgICAgW2l0ZW1Qcm92aWRlciByZWdpc3Rl
ckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOnR5cGVJZGVudGlmaWVyIGxvYWRI
YW5kbGVyOl4oVUlJdGVtUHJvdmlkZXJEYXRhTG9hZENvbXBsZXRpb25CbG9jayBjb21wbGV0aW9u
QmxvY2ssIE5TRGljdGlvbmFyeSAqKSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkJsb2Nr
KGl0ZW1bdHlwZUlkZW50aWZpZXJdLCBuaWwpOworICAgICAgICAgICAgfV07CisgICAgICAgIH0K
KyAgICAgICAgW3Byb3ZpZGVycyBhZGRPYmplY3Q6aXRlbVByb3ZpZGVyXTsKKyAgICB9CisgICAg
X2NoYW5nZUNvdW50Kys7CisgICAgX2l0ZW1Qcm92aWRlcnMgPSBwcm92aWRlcnM7Cit9CisKKy0g
KE5TQXJyYXkgKilkYXRhRm9yUGFzdGVib2FyZFR5cGU6KE5TU3RyaW5nICopcGFzdGVib2FyZFR5
cGUgaW5JdGVtU2V0OihOU0luZGV4U2V0ICopaXRlbVNldAoreworICAgIF9fYmxvY2sgTlNNdXRh
YmxlQXJyYXkgKnZhbHVlcyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisgICAgW2l0ZW1TZXQg
ZW51bWVyYXRlSW5kZXhlc1VzaW5nQmxvY2s6XihOU1VJbnRlZ2VyIGluZGV4LCBCT09MICopIHsK
KyAgICAgICAgVUlJdGVtUHJvdmlkZXIgKnByb3ZpZGVyID0gW3NlbGYgaXRlbVByb3ZpZGVyQXRJ
bmRleDppbmRleF07CisgICAgICAgIGlmICghcHJvdmlkZXIpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgTlNEYXRhICpkYXRhID0gW3Byb3ZpZGVyIGNvcHlEYXRhUmVwcmVzZW50YXRp
b25Gb3JUeXBlSWRlbnRpZmllcjpwYXN0ZWJvYXJkVHlwZSBvcHRpb25zOm5pbCBlcnJvcjpuaWxd
OworICAgICAgICBpZiAoZGF0YSkKKyAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0OmRhdGFd
OworICAgIH1dOworCisgICAgcmV0dXJuIHZhbHVlczsKK30KKworLSAoTlNBcnJheSAqKXZhbHVl
c0ZvclBhc3RlYm9hcmRUeXBlOihOU1N0cmluZyAqKXBhc3RlYm9hcmRUeXBlIGluSXRlbVNldDoo
TlNJbmRleFNldCAqKWl0ZW1TZXQKK3sKKyAgICBfX2Jsb2NrIE5TTXV0YWJsZUFycmF5ICp2YWx1
ZXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIFtpdGVtU2V0IGVudW1lcmF0ZUluZGV4
ZXNVc2luZ0Jsb2NrOl4oTlNVSW50ZWdlciBpbmRleCwgQk9PTCAqKSB7CisgICAgICAgIFVJSXRl
bVByb3ZpZGVyICpwcm92aWRlciA9IFtzZWxmIGl0ZW1Qcm92aWRlckF0SW5kZXg6aW5kZXhdOwor
ICAgICAgICBpZiAoIXByb3ZpZGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlm
IChpc1JpY2hUZXh0VHlwZShwYXN0ZWJvYXJkVHlwZSkgJiYgW3Byb3ZpZGVyIGNhbkluc3RhbnRp
YXRlT2JqZWN0T2ZDbGFzczpbTlNBdHRyaWJ1dGVkU3RyaW5nIGNsYXNzXV0pIHsKKyAgICAgICAg
ICAgIFt2YWx1ZXMgYWRkT2JqZWN0Oltwcm92aWRlciBpbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6
W05TQXR0cmlidXRlZFN0cmluZyBjbGFzc10gb3B0aW9uczpuaWwgZXJyb3I6bmlsXV07CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNTdHJpbmdUeXBlKHBh
c3RlYm9hcmRUeXBlKSAmJiBbcHJvdmlkZXIgY2FuSW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltO
U1N0cmluZyBjbGFzc11dKSB7CisgICAgICAgICAgICBbdmFsdWVzIGFkZE9iamVjdDpbcHJvdmlk
ZXIgaW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltOU1N0cmluZyBjbGFzc10gb3B0aW9uczpuaWwg
ZXJyb3I6bmlsXV07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoaXNDb2xvclR5cGUocGFzdGVib2FyZFR5cGUpICYmIFtwcm92aWRlciBjYW5JbnN0YW50aWF0
ZU9iamVjdE9mQ2xhc3M6W2dldFVJQ29sb3JDbGFzcygpIGNsYXNzXV0pIHsKKyAgICAgICAgICAg
IFt2YWx1ZXMgYWRkT2JqZWN0Oltwcm92aWRlciBpbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W2dl
dFVJQ29sb3JDbGFzcygpIGNsYXNzXSBvcHRpb25zOm5pbCBlcnJvcjpuaWxdXTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc1VSTFR5cGUocGFzdGVib2Fy
ZFR5cGUpICYmIFtwcm92aWRlciBjYW5JbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W05TVVJMIGNs
YXNzXV0pIHsKKyAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0Oltwcm92aWRlciBpbnN0YW50
aWF0ZU9iamVjdE9mQ2xhc3M6W05TVVJMIGNsYXNzXSBvcHRpb25zOm5pbCBlcnJvcjpuaWxdXTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc0ltYWdlVHlw
ZShwYXN0ZWJvYXJkVHlwZSkgJiYgW3Byb3ZpZGVyIGNhbkluc3RhbnRpYXRlT2JqZWN0T2ZDbGFz
czpbZ2V0VUlJbWFnZUNsYXNzKCkgY2xhc3NdXSkgeworICAgICAgICAgICAgW3ZhbHVlcyBhZGRP
YmplY3Q6W3Byb3ZpZGVyIGluc3RhbnRpYXRlT2JqZWN0T2ZDbGFzczpbZ2V0VUlJbWFnZUNsYXNz
KCkgY2xhc3NdIG9wdGlvbnM6bmlsIGVycm9yOm5pbF1dOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJGYWlsZWQgdG8gaW5zdGFudGlhdGUg
b2JqZWN0IGZvciB0eXBlOiAnJXMnIGF0IGluZGV4OiAldHUiLCBwYXN0ZWJvYXJkVHlwZS5VVEY4
U3RyaW5nLCBpbmRleCk7CisgICAgfV07CisgICAgcmV0dXJuIHZhbHVlczsKK30KKworLSAoTlNJ
bnRlZ2VyKWNoYW5nZUNvdW50Cit7CisgICAgcmV0dXJuIF9jaGFuZ2VDb3VudDsKK30KKworLSAo
VUlJdGVtUHJvdmlkZXIgKilpdGVtUHJvdmlkZXJBdEluZGV4OihOU0ludGVnZXIpaW5kZXgKK3sK
KyAgICByZXR1cm4gMCA8PSBpbmRleCAmJiBpbmRleCA8IChOU0ludGVnZXIpX2l0ZW1Qcm92aWRl
cnMuY291bnQgPyBfaXRlbVByb3ZpZGVyc1tpbmRleF0gOiBuaWw7Cit9CisKK0BlbmQKKworI2Vu
ZGlmIC8vIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IDYyMjdjZGQ3M2E5MDkwMTg1ZjIyNjg5NjEwZThiZWJk
OTYyMzgzODguLmYwYTRiNjhmODQ4MjZhNDA3NjQ5NDAxYzQxN2RjOTIzNGRjZjEwZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAgLTMwLDYgKzMwLDEw
IEBACiAjaW1wb3J0IDxVSUtpdC9VSVNjcmVlbl9Qcml2YXRlLmg+CiAjaW1wb3J0IDxVSUtpdC9V
SVZpZXdDb250cm9sbGVyX1ByaXZhdGUuaD4KIAorI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9O
KQorI2ltcG9ydCA8VUlLaXQvVUlJdGVtUHJvdmlkZXJfUHJpdmF0ZS5oPgorI2VuZGlmCisKICNl
bHNlCiAKICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+Cg==
</data>
<flag name="commit-queue"
          id="321678"
          type_id="3"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299750</attachid>
            <date>2017-01-25 14:49:29 -0800</date>
            <delta_ts>2017-01-25 15:14:49 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-167410-20170125144728.patch</filename>
            <type>text/plain</type>
            <size>21937</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE5NzAyMDAyYzhiOTNkNTQ0ODRhNDlj
ZTkxYTQwMTdjZGY4MzAxNDkuLmEwYTIyZGY0YzQ5NzkyMTMxOTUyY2E4ZTdiMjhmNmMwMTdlODI0
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTctMDEtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAgSW50cm9kdWNlIGFuIGl0ZW0tcHJvdmlkZXIt
YmFzZWQgcGFzdGVib2FyZCB3cmFwcGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjc0MTAKKworICAgICAgICBSZXZpZXdlZCBieSBFbnJpY2EgQ2Fz
dWNjaS4KKworICAgICAgICBBZGRzIGFuIGFkZGl0aW9uYWwgZmVhdHVyZSBmbGFnLgorCisgICAg
ICAgICogd3RmL0ZlYXR1cmVEZWZpbmVzLmg6CisKKzIwMTctMDEtMjQgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgQWRkIGEgaG9vayB0byBpbmNsdWRl
IGFkZGl0aW9uYWwgZmVhdHVyZSBkZWZpbmVzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc0MDMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZiNWNlYmM0ODNjYTZj
ZWQyYjdkZWRlZWZhZjBkODI0NjJkNjhlYjQuLmJjMmU0NjM5MTY4ZDhkYWRkYmQ0M2M2MDM5MGRl
OGE4MGI2NmM4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNyBAQAogMjAxNy0wMS0yNSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAorICAgICAgICBJbnRyb2R1Y2Ug
YW4gaXRlbS1wcm92aWRlci1iYXNlZCBwYXN0ZWJvYXJkIHdyYXBwZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzQxMAorCisgICAgICAgIFJldmll
d2VkIGJ5IEVucmljYSBDYXN1Y2NpLgorCisgICAgICAgIEludHJvZHVjZXMgV2ViSXRlbVByb3Zp
ZGVyUGFzdGVib2FyZCwgYSBwYXN0ZWJvYXJkLWxpa2Ugb2JqZWN0IGJhY2tlZCBieSBhIG51bWJl
ciBvZiBpdGVtIHByb3ZpZGVycy4gTm8gbmV3CisgICAgICAgIHRlc3RzLCBzaW5jZSB0aGVyZSBp
cyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0Fic3RyYWN0UGFzdGVib2FyZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgu
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oLgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tOiBBZGRlZC4K
KyAgICAgICAgKGlzUmljaFRleHRUeXBlKToKKyAgICAgICAgKGlzU3RyaW5nVHlwZSk6CisgICAg
ICAgIChpc1VSTFR5cGUpOgorICAgICAgICAoaXNDb2xvclR5cGUpOgorICAgICAgICAoaXNJbWFn
ZVR5cGUpOgorICAgICAgICAoK1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3Rh
bmNlXSk6CisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgaW5pdF0pOgorICAg
ICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGRlYWxsb2NdKToKKyAgICAgICAgKC1b
V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBwYXN0ZWJvYXJkVHlwZXNdKToKKyAgICAgICAgKC1b
V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBzZXRJdGVtUHJvdmlkZXJzOl0pOgorICAgICAgICAo
LVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIG51bWJlck9mSXRlbXNdKToKKyAgICAgICAgKC1b
V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBzZXRJdGVtczpdKToKKyAgICAgICAgKC1bV2ViSXRl
bVByb3ZpZGVyUGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6aW5JdGVtU2V0Ol0pOgor
ICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHZhbHVlc0ZvclBhc3RlYm9hcmRU
eXBlOmluSXRlbVNldDpdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBj
aGFuZ2VDb3VudF0pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGl0ZW1Q
cm92aWRlckF0SW5kZXg6XSk6CisgICAgICAgICogcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5o
OgorCisyMDE3LTAxLTI0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBuYW1lZCBwYXN0ZWJvYXJkcywgcGFzdGVib2FyZCBz
dHJhdGVnaWVzIGFuZCBwbGF0Zm9ybSBwYXN0ZWJvYXJkcwogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NDA0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5o
CmluZGV4IDJkMzg4MzJhMTE5ODhjYWNmOGRlMjY0N2M0NTBhOGJiMDQxNGFmYmEuLmM5ZGU4ZTcx
YjdkNDZmN2ZlZDc0ZjQ5ZWIzNTUwOTA1OTAzZWMzMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0ZlYXR1cmVEZWZpbmVzLmgKKysrIGIvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMu
aApAQCAtNzc5LDYgKzc3OSwxMCBAQCB0aGUgcHVibGljIGlPUyBTREsuIFdlIHdpbGwgYWxzbyBu
ZWVkIHRvIHVwZGF0ZSB0aGUgRmVhdHVyZURlZmluZXMueGNjb25maWcgZmlsZQogI2RlZmluZSBF
TkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUgMAogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChF
TkFCTEVfREFUQV9JTlRFUkFDVElPTikKKyNkZWZpbmUgRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04g
MAorI2VuZGlmCisKIC8qIEFzc2VydHMsIGludmFyaWFudHMgZm9yIG1hY3JvIGRlZmluaXRpb25z
ICovCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmICFFTkFCTEUoVklERU8pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTAy
YTg3N2RhMmNmOGFlMGZjZjk2OTU5OTc0NmQwZDdmMDk5MmU3My4uMTM5YTEwYWU2Y2RmNDRmYWQx
ODc5MmVkZGMyNzFkNDVmZjliNzg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjUwMiw2ICs2NTAyLDkgQEAKIAkJRjQ3ODc1
NTUxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3ODc1NTMxOTk4M0FGRjAw
MjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovOyB9OwogCQlGNDdBNUUzRTE5
NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAg
LyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ3QTVFM0YxOTVCOEU0ODAwNDgzMTAwIC8qIFN0eWxlU2Ny
b2xsU25hcFBvaW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRz
LmNwcCAqLzsgfTsKKwkJRjQ4MjIzMTAxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRl
clBhc3RlYm9hcmQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDgyMjMwRTFFMzg2OUI4MDA2NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2Fy
ZC5tbSAqLzsgfTsKKwkJRjQ4MjIzMTExRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRl
clBhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0ODIyMzBGMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJk
LmggKi87IH07CisJCUY0ODIyMzEzMUUzODZFMjQwMDY2RkM3OSAvKiBBYnN0cmFjdFBhc3RlYm9h
cmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODIy
MzEyMUUzODZFMjQwMDY2RkM3OSAvKiBBYnN0cmFjdFBhc3RlYm9hcmQuaCAqLzsgfTsKIAkJRjRC
RkI5ODUxRTFEREY5QjAwODYyQzI0IC8qIER1bXBFZGl0aW5nSGlzdG9yeS5qcyBpbiBDb3B5IFNj
cmlwdHMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4Mzg5ODMxRTFEREYy
QjAwNzZCN0VBIC8qIER1bXBFZGl0aW5nSGlzdG9yeS5qcyAqLzsgfTsKIAkJRjRCRkI5ODYxRTFE
REY5QjAwODYyQzI0IC8qIEVkaXRpbmdIaXN0b3J5VXRpbC5qcyBpbiBDb3B5IFNjcmlwdHMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4Mzg5ODQxRTFEREYyQjAwNzZCN0VB
IC8qIEVkaXRpbmdIaXN0b3J5VXRpbC5qcyAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJEQzAwQUMy
MjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxl
ci5jcHAgKi87IH07CkBAIC0xNDU1MCw2ICsxNDU1Myw5IEBACiAJCUY0Nzg3NTUzMTk5ODNBRkYw
MDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVT
Y3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0ODIyMzBFMUUzODY5QjgwMDY2RkM3OSAvKiBX
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRl
clBhc3RlYm9hcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSXRlbVBy
b3ZpZGVyUGFzdGVib2FyZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDgyMjMx
MjFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFic3RyYWN0UGFzdGVib2FyZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNDgzODk4MzFFMURERjJCMDA3NkI3RUEgLyogRHVtcEVkaXRpbmdIaXN0
b3J5LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gRHVtcEVkaXRp
bmdIaXN0b3J5LmpzOyBwYXRoID0gU2NyaXB0cy9EdW1wRWRpdGluZ0hpc3RvcnkuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0ODM4OTg0MUUxRERGMkIwMDc2QjdFQSAvKiBFZGl0
aW5nSGlzdG9yeVV0aWwuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUg
PSBFZGl0aW5nSGlzdG9yeVV0aWwuanM7IHBhdGggPSBTY3JpcHRzL0VkaXRpbmdIaXN0b3J5VXRp
bC5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUxNTdGNTJEQzAwQUMy
MjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEZvcm1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE5NzUyLDYgKzE5NzU4LDcgQEAKIAkJQTU5RTNDMUIxMTU4MEYzNDAwNzI5MjhFIC8qIGlvcyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRjQ4MjIzMTIx
RTM4NkUyNDAwNjZGQzc5IC8qIEFic3RyYWN0UGFzdGVib2FyZC5oICovLAogCQkJCUExNDgzMjhC
MTg3RjUwNjgwMERBNjNBNiAvKiB3YWsgKi8sCiAJCQkJMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVE
IC8qIEN1cnNvcklPUy5jcHAgKi8sCiAJCQkJQTFFRDc3OEExQkUzMjkzRjAwREMxNzkxIC8qIERl
dmljZS5jcHAgKi8sCkBAIC0xOTgxNiw2ICsxOTgyMyw4IEBACiAJCQkJM0ZCQzRBRjIxODk4ODE1
NjAwNDZFRTM4IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggKi8sCiAJCQkJ
M0ZCQzRBRjExODk4ODE1NjAwNDZFRTM4IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Lm1tICovLAogCQkJCUU0NTM5MDNDMEVBRkQ2MzcwMDM2OTVDOCAvKiBXaWRnZXRJT1MubW0g
Ki8sCisJCQkJRjQ4MjIzMEUxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3Rl
Ym9hcmQubW0gKi8sCisJCQkJRjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92
aWRlclBhc3RlYm9hcmQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTI1MjEzLDYgKzI1MjIyLDcgQEAKIAkJCQlDRTc5OUZBODFDNkE1
MDU3MDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9saWN5TWVkaWFMaXN0RGlyZWN0aXZlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRTZEQURGQTFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTc5OUZB
MDFDNkE0QzE2MDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGNDgyMjMxMzFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJv
YXJkLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTc5OUY5ODFDNkE0NkJDMDA5N0I1MTggLyogQ29u
dGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U3OTlG
QUMxQzZBNTA2NjAwOTdCNTE4IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3REaXJl
Y3RpdmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRDAxNUNBMEY0QjVDNzEwMDRBNjYyRiAvKiBD
b250ZW50VHlwZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzc0NCw2ICsyNzc1NCw3IEBACiAJCQkJ
NDE0QjgyMDUxRDZERjBFNTAwNzdFQkUzIC8qIFN0cnVjdHVyZWRDbG9uZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1RUI2QTMwRTgxREM0RjAwQjI1OTY1IC8qIFN0eWxlQmFja2dyb3VuZERhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNjdCMEU4MUQzQkUwMEIyNTk2NSAvKiBTdHlsZUJv
eERhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0ODIyMzExMUUzODY5QjgwMDY2RkM3OSAvKiBX
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzg2QTk2RDE5
RjYxQjJFMDBFMUVDNEEgLyogU3R5bGVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0I5
Njg3QjE5RjhBQjgzMDA0RUY3QUYgLyogU3R5bGVCdWlsZGVyQ29udmVydGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4MzVEMzYzNzE5RkY2MTkzMDA0QzkzQUIgLyogU3R5bGVCdWlsZGVyQ3VzdG9t
LmggaW4gSGVhZGVycyAqLywKQEAgLTI5MjA0LDYgKzI5MjE1LDcgQEAKIAkJCQk5NDE4Mjc4RTFE
OENBRjkyMDA0OTI3NjQgLyogQ1NTUGVuZGluZ1N1YnN0aXR1dGlvblZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTk3N0IzODYyMTIyODgzRTkwMEI4MUZGOCAvKiBDU1NQcmVsb2FkU2Nhbm5l
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkQwNTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NT
UHJpbWl0aXZlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjQ4MjIzMTAxRTM4NjlCODAw
NjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlBODBFNkNGNzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJvcGVydHkuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNzhEMDJCQzUxNTRBMThERjAwQjYyRDA1IC8qIENTU1Byb3BlcnR5QW5pbWF0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQkE3NkNBMTFEMjBFNTAwMDRDMjAxQyAvKiBDU1NQ
cm9wZXJ0eU5hbWVzLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0Fic3RyYWN0UGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0Fic3RyYWN0UGFzdGVib2FyZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExZmUwNDA1NDg2ZTQ2
MjhjMjZjMWQ2NmU3ZTQ1NTM1MDIwNzE4ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvQWJzdHJhY3RQYXN0ZWJvYXJkLmgKQEAgLTAsMCArMSwzOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCitAcHJvdG9j
b2wgQWJzdHJhY3RQYXN0ZWJvYXJkIDxOU09iamVjdD4KK0ByZXF1aXJlZAorCitAcHJvcGVydHkg
KHJlYWRvbmx5LCBub25hdG9taWMpIE5TSW50ZWdlciBudW1iZXJPZkl0ZW1zOworCistIChOU0Fy
cmF5PE5TU3RyaW5nICo+ICopcGFzdGVib2FyZFR5cGVzOworLSAodm9pZClzZXRJdGVtczooTlNB
cnJheSAqKWl0ZW1zOworLSAoTlNBcnJheSAqKWRhdGFGb3JQYXN0ZWJvYXJkVHlwZTooTlNTdHJp
bmcgKilwYXN0ZWJvYXJkVHlwZSBpbkl0ZW1TZXQ6KE5TSW5kZXhTZXQgKilpdGVtU2V0OworLSAo
TlNBcnJheSAqKXZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOihOU1N0cmluZyAqKXBhc3RlYm9hcmRU
eXBlIGluSXRlbVNldDooTlNJbmRleFNldCAqKWl0ZW1TZXQ7CistIChOU0ludGVnZXIpY2hhbmdl
Q291bnQ7CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhN2ZhZGZmOTYyMmZmZGU2
ZTMwMjkwZGZjMTcwYTVhY2NlMTFlMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oCkBAIC0wLDAgKzEsNDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJBYnN0cmFjdFBhc3RlYm9hcmQuaCIKKworI2lmIEVO
QUJMRShEQVRBX0lOVEVSQUNUSU9OKQorCitPQkpDX0NMQVNTIFVJSXRlbVByb3ZpZGVyOworCitO
U19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYkl0
ZW1Qcm92aWRlclBhc3RlYm9hcmQgOiBOU09iamVjdDxBYnN0cmFjdFBhc3RlYm9hcmQ+CisKKysg
KGluc3RhbmNldHlwZSlzaGFyZWRJbnN0YW5jZTsKKworLSAoVUlJdGVtUHJvdmlkZXIgKilpdGVt
UHJvdmlkZXJBdEluZGV4OihOU0ludGVnZXIpaW5kZXg7CisKK0Bwcm9wZXJ0eSAoY29weSwgbm9u
YXRvbWljLCBudWxsYWJsZSkgTlNBcnJheTxVSUl0ZW1Qcm92aWRlciAqPiAqaXRlbVByb3ZpZGVy
czsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIG5vbmF0b21pYykgTlNJbnRlZ2VyIG51bWJlck9mSXRl
bXM7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBub25hdG9taWMpIE5TSW50ZWdlciBjaGFuZ2VDb3Vu
dDsKKworQGVuZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKKworI2VuZGlmIC8vIEVOQUJMRShE
QVRBX0lOVEVSQUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjA3NzBmNjRlMzEx
MzQwMTNhZTVmMmRkMjRiYzQ0NmMzN2M4ZDQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0KQEAgLTAsMCAr
MSwyMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJJ
dGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmgiCisKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikK
KworI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKKyNpbXBvcnQgIlVJS2l0U1BJLmgiCisjaW1wb3J0
IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisjaW1wb3J0IDxVSUtp
dC9VSUNvbG9yLmg+CisjaW1wb3J0IDxVSUtpdC9VSUltYWdlLmg+CisKK1NPRlRfTElOS19GUkFN
RVdPUksoVUlLaXQpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJQ29sb3IpCitTT0ZUX0xJTktf
Q0xBU1MoVUlLaXQsIFVJSW1hZ2UpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJSXRlbVByb3Zp
ZGVyKQorCisjZGVmaW5lIE1BVENIRVNfVVRJX1RZUEUodHlwZSwgc3VmZml4KSBbdHlwZSBpc0Vx
dWFsVG9TdHJpbmc6KF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZSAjIyBzdWZmaXhdCisjZGVm
aW5lIE1BVENIRVNfVUlLSVRfVFlQRSh0eXBlLCBzdWZmaXgpIFt0eXBlIGlzRXF1YWxUb1N0cmlu
ZzpAImNvbS5hcHBsZS51aWtpdC4gIyMgc3VmZml4ICMjIl0KKworc3RhdGljIEJPT0wgaXNSaWNo
VGV4dFR5cGUoTlNTdHJpbmcgKnR5cGUpCit7CisgICAgcmV0dXJuIE1BVENIRVNfVVRJX1RZUEUo
dHlwZSwgUlRGKSB8fCBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIFJURkQpIHx8IE1BVENIRVNfVVRJ
X1RZUEUodHlwZSwgSFRNTCk7Cit9CisKK3N0YXRpYyBCT09MIGlzU3RyaW5nVHlwZShOU1N0cmlu
ZyAqdHlwZSkKK3sKKyAgICByZXR1cm4gTUFUQ0hFU19VVElfVFlQRSh0eXBlLCBUZXh0KSB8fCBN
QVRDSEVTX1VUSV9UWVBFKHR5cGUsIFVURjhQbGFpblRleHQpIHx8IE1BVENIRVNfVVRJX1RZUEUo
dHlwZSwgVVRGMTZQbGFpblRleHQpOworfQorCitzdGF0aWMgQk9PTCBpc1VSTFR5cGUoTlNTdHJp
bmcgKnR5cGUpCit7CisgICAgcmV0dXJuIE1BVENIRVNfVVRJX1RZUEUodHlwZSwgVVJMKTsKK30K
Kworc3RhdGljIEJPT0wgaXNDb2xvclR5cGUoTlNTdHJpbmcgKnR5cGUpCit7CisgICAgcmV0dXJu
IE1BVENIRVNfVUlLSVRfVFlQRSh0eXBlLCBjb2xvcik7Cit9CisKK3N0YXRpYyBCT09MIGlzSW1h
Z2VUeXBlKE5TU3RyaW5nICp0eXBlKQoreworICAgIHJldHVybiBNQVRDSEVTX1VUSV9UWVBFKHR5
cGUsIFBORykgfHwgTUFUQ0hFU19VVElfVFlQRSh0eXBlLCBKUEVHKSB8fCBNQVRDSEVTX1VUSV9U
WVBFKHR5cGUsIEdJRikgfHwgTUFUQ0hFU19VSUtJVF9UWVBFKHR5cGUsIGltYWdlKTsKK30KKwor
QGludGVyZmFjZSBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkICgpCisKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljKSBOU0ludGVnZXIgbnVtYmVyT2ZJdGVtczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBO
U0ludGVnZXIgY2hhbmdlQ291bnQ7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYkl0ZW1Q
cm92aWRlclBhc3RlYm9hcmQKKworKyAoaW5zdGFuY2V0eXBlKXNoYXJlZEluc3RhbmNlCit7Cisg
ICAgc3RhdGljIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgKnNoYXJlZFBhc3RlYm9hcmQgPSBu
aWw7CisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hf
b25jZSgmb25jZVRva2VuLCBeKCkgeworICAgICAgICBzaGFyZWRQYXN0ZWJvYXJkID0gW1tXZWJJ
dGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGFsbG9jXSBpbml0XTsKKyAgICB9KTsKKyAgICByZXR1cm4g
c2hhcmVkUGFzdGVib2FyZDsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXQKK3sKKyAgICBpZiAo
c2VsZiA9IFtzdXBlciBpbml0XSkgeworICAgICAgICBfaXRlbVByb3ZpZGVycyA9IFtbTlNBcnJh
eSBhbGxvY10gaW5pdF07CisgICAgICAgIF9jaGFuZ2VDb3VudCA9IDA7CisgICAgfQorICAgIHJl
dHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbc3VwZXIgZGVhbGxvY107
CisgICAgW19pdGVtUHJvdmlkZXJzIHJlbGVhc2VdOworfQorCistIChOU0FycmF5PE5TU3RyaW5n
ICo+ICopcGFzdGVib2FyZFR5cGVzCit7CisgICAgTlNNdXRhYmxlU2V0PE5TU3RyaW5nICo+ICph
bGxUeXBlcyA9IFtOU011dGFibGVTZXQgc2V0XTsKKyAgICBmb3IgKFVJSXRlbVByb3ZpZGVyICpw
cm92aWRlciBpbiBfaXRlbVByb3ZpZGVycykKKyAgICAgICAgW2FsbFR5cGVzIGFkZE9iamVjdHNG
cm9tQXJyYXk6cHJvdmlkZXIucmVnaXN0ZXJlZFR5cGVJZGVudGlmaWVyc107CisgICAgcmV0dXJu
IGFsbFR5cGVzLmFsbE9iamVjdHM7Cit9CisKKy0gKHZvaWQpc2V0SXRlbVByb3ZpZGVyczooTlNB
cnJheTxVSUl0ZW1Qcm92aWRlciAqPiAqKWl0ZW1Qcm92aWRlcnMKK3sKKyAgICBpdGVtUHJvdmlk
ZXJzID0gaXRlbVByb3ZpZGVycyA/OiBbTlNBcnJheSBhcnJheV07CisgICAgaWYgKF9pdGVtUHJv
dmlkZXJzID09IGl0ZW1Qcm92aWRlcnMgfHwgW19pdGVtUHJvdmlkZXJzIGlzRXF1YWxUb0FycmF5
Oml0ZW1Qcm92aWRlcnNdKQorICAgICAgICByZXR1cm47CisgICAgX2l0ZW1Qcm92aWRlcnMgPSBb
aXRlbVByb3ZpZGVycyBjb3B5XTsKKyAgICBfY2hhbmdlQ291bnQrKzsKK30KKworLSAoTlNJbnRl
Z2VyKW51bWJlck9mSXRlbXMKK3sKKyAgICByZXR1cm4gX2l0ZW1Qcm92aWRlcnMuY291bnQ7Cit9
CisKKy0gKHZvaWQpc2V0SXRlbXM6KE5TQXJyYXkgKilpdGVtcworeworICAgIE5TTXV0YWJsZUFy
cmF5ICpwcm92aWRlcnMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XTsKKyAgICBmb3Ig
KE5TRGljdGlvbmFyeSAqaXRlbSBpbiBpdGVtcykgeworICAgICAgICBpZiAoIWl0ZW0uY291bnQp
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgVUlJdGVtUHJvdmlkZXIgKml0ZW1Qcm92
aWRlciA9IFtbZ2V0VUlJdGVtUHJvdmlkZXJDbGFzcygpIGFsbG9jXSBpbml0XTsKKyAgICAgICAg
Zm9yIChOU1N0cmluZyAqdHlwZUlkZW50aWZpZXIgaW4gaXRlbSkgeworICAgICAgICAgICAgW2l0
ZW1Qcm92aWRlciByZWdpc3RlckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOnR5
cGVJZGVudGlmaWVyIGxvYWRIYW5kbGVyOl4oVUlJdGVtUHJvdmlkZXJEYXRhTG9hZENvbXBsZXRp
b25CbG9jayBjb21wbGV0aW9uQmxvY2ssIE5TRGljdGlvbmFyeSAqKSB7CisgICAgICAgICAgICAg
ICAgY29tcGxldGlvbkJsb2NrKGl0ZW1bdHlwZUlkZW50aWZpZXJdLCBuaWwpOworICAgICAgICAg
ICAgfV07CisgICAgICAgIH0KKyAgICAgICAgW3Byb3ZpZGVycyBhZGRPYmplY3Q6aXRlbVByb3Zp
ZGVyXTsKKyAgICB9CisgICAgX2NoYW5nZUNvdW50Kys7CisgICAgX2l0ZW1Qcm92aWRlcnMgPSBw
cm92aWRlcnM7Cit9CisKKy0gKE5TQXJyYXkgKilkYXRhRm9yUGFzdGVib2FyZFR5cGU6KE5TU3Ry
aW5nICopcGFzdGVib2FyZFR5cGUgaW5JdGVtU2V0OihOU0luZGV4U2V0ICopaXRlbVNldAorewor
ICAgIF9fYmxvY2sgTlNNdXRhYmxlQXJyYXkgKnZhbHVlcyA9IFtOU011dGFibGVBcnJheSBhcnJh
eV07CisgICAgW2l0ZW1TZXQgZW51bWVyYXRlSW5kZXhlc1VzaW5nQmxvY2s6XihOU1VJbnRlZ2Vy
IGluZGV4LCBCT09MICopIHsKKyAgICAgICAgVUlJdGVtUHJvdmlkZXIgKnByb3ZpZGVyID0gW3Nl
bGYgaXRlbVByb3ZpZGVyQXRJbmRleDppbmRleF07CisgICAgICAgIGlmICghcHJvdmlkZXIpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgTlNEYXRhICpkYXRhID0gW3Byb3ZpZGVyIGNv
cHlEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBlSWRlbnRpZmllcjpwYXN0ZWJvYXJkVHlwZSBvcHRp
b25zOm5pbCBlcnJvcjpuaWxdOworICAgICAgICBpZiAoZGF0YSkKKyAgICAgICAgICAgIFt2YWx1
ZXMgYWRkT2JqZWN0OmRhdGFdOworICAgIH1dOworCisgICAgcmV0dXJuIHZhbHVlczsKK30KKwor
LSAoTlNBcnJheSAqKXZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOihOU1N0cmluZyAqKXBhc3RlYm9h
cmRUeXBlIGluSXRlbVNldDooTlNJbmRleFNldCAqKWl0ZW1TZXQKK3sKKyAgICBfX2Jsb2NrIE5T
TXV0YWJsZUFycmF5ICp2YWx1ZXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIFtpdGVt
U2V0IGVudW1lcmF0ZUluZGV4ZXNVc2luZ0Jsb2NrOl4oTlNVSW50ZWdlciBpbmRleCwgQk9PTCAq
KSB7CisgICAgICAgIFVJSXRlbVByb3ZpZGVyICpwcm92aWRlciA9IFtzZWxmIGl0ZW1Qcm92aWRl
ckF0SW5kZXg6aW5kZXhdOworICAgICAgICBpZiAoIXByb3ZpZGVyKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGlmIChpc1JpY2hUZXh0VHlwZShwYXN0ZWJvYXJkVHlwZSkgJiYgW3By
b3ZpZGVyIGNhbkluc3RhbnRpYXRlT2JqZWN0T2ZDbGFzczpbTlNBdHRyaWJ1dGVkU3RyaW5nIGNs
YXNzXV0pIHsKKyAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0Oltwcm92aWRlciBpbnN0YW50
aWF0ZU9iamVjdE9mQ2xhc3M6W05TQXR0cmlidXRlZFN0cmluZyBjbGFzc10gb3B0aW9uczpuaWwg
ZXJyb3I6bmlsXV07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoaXNTdHJpbmdUeXBlKHBhc3RlYm9hcmRUeXBlKSAmJiBbcHJvdmlkZXIgY2FuSW5zdGFudGlh
dGVPYmplY3RPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKSB7CisgICAgICAgICAgICBbdmFsdWVz
IGFkZE9iamVjdDpbcHJvdmlkZXIgaW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltOU1N0cmluZyBj
bGFzc10gb3B0aW9uczpuaWwgZXJyb3I6bmlsXV07CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoaXNDb2xvclR5cGUocGFzdGVib2FyZFR5cGUpICYmIFtwcm92
aWRlciBjYW5JbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W2dldFVJQ29sb3JDbGFzcygpIGNsYXNz
XV0pIHsKKyAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0Oltwcm92aWRlciBpbnN0YW50aWF0
ZU9iamVjdE9mQ2xhc3M6W2dldFVJQ29sb3JDbGFzcygpIGNsYXNzXSBvcHRpb25zOm5pbCBlcnJv
cjpuaWxdXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChp
c1VSTFR5cGUocGFzdGVib2FyZFR5cGUpICYmIFtwcm92aWRlciBjYW5JbnN0YW50aWF0ZU9iamVj
dE9mQ2xhc3M6W05TVVJMIGNsYXNzXV0pIHsKKyAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0
Oltwcm92aWRlciBpbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W05TVVJMIGNsYXNzXSBvcHRpb25z
Om5pbCBlcnJvcjpuaWxdXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChpc0ltYWdlVHlwZShwYXN0ZWJvYXJkVHlwZSkgJiYgW3Byb3ZpZGVyIGNhbkluc3Rh
bnRpYXRlT2JqZWN0T2ZDbGFzczpbZ2V0VUlJbWFnZUNsYXNzKCkgY2xhc3NdXSkgeworICAgICAg
ICAgICAgW3ZhbHVlcyBhZGRPYmplY3Q6W3Byb3ZpZGVyIGluc3RhbnRpYXRlT2JqZWN0T2ZDbGFz
czpbZ2V0VUlJbWFnZUNsYXNzKCkgY2xhc3NdIG9wdGlvbnM6bmlsIGVycm9yOm5pbF1dOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJGYWls
ZWQgdG8gaW5zdGFudGlhdGUgb2JqZWN0IGZvciB0eXBlOiAnJXMnIGF0IGluZGV4OiAldHUiLCBw
YXN0ZWJvYXJkVHlwZS5VVEY4U3RyaW5nLCBpbmRleCk7CisgICAgfV07CisgICAgcmV0dXJuIHZh
bHVlczsKK30KKworLSAoTlNJbnRlZ2VyKWNoYW5nZUNvdW50Cit7CisgICAgcmV0dXJuIF9jaGFu
Z2VDb3VudDsKK30KKworLSAoVUlJdGVtUHJvdmlkZXIgKilpdGVtUHJvdmlkZXJBdEluZGV4OihO
U0ludGVnZXIpaW5kZXgKK3sKKyAgICByZXR1cm4gMCA8PSBpbmRleCAmJiBpbmRleCA8IChOU0lu
dGVnZXIpX2l0ZW1Qcm92aWRlcnMuY291bnQgPyBfaXRlbVByb3ZpZGVyc1tpbmRleF0gOiBuaWw7
Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IDYyMjdjZGQ3M2E5MDkw
MTg1ZjIyNjg5NjEwZThiZWJkOTYyMzgzODguLmYwYTRiNjhmODQ4MjZhNDA3NjQ5NDAxYzQxN2Rj
OTIzNGRjZjEwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3Mv
VUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJ
LmgKQEAgLTMwLDYgKzMwLDEwIEBACiAjaW1wb3J0IDxVSUtpdC9VSVNjcmVlbl9Qcml2YXRlLmg+
CiAjaW1wb3J0IDxVSUtpdC9VSVZpZXdDb250cm9sbGVyX1ByaXZhdGUuaD4KIAorI2lmIEVOQUJM
RShEQVRBX0lOVEVSQUNUSU9OKQorI2ltcG9ydCA8VUlLaXQvVUlJdGVtUHJvdmlkZXJfUHJpdmF0
ZS5oPgorI2VuZGlmCisKICNlbHNlCiAKICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+Cg==
</data>
<flag name="commit-queue"
          id="321679"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299754</attachid>
            <date>2017-01-25 15:13:48 -0800</date>
            <delta_ts>2017-01-25 15:51:31 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-167410-20170125151147.patch</filename>
            <type>text/plain</type>
            <size>21784</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZhMzhmMzVjYWIwNGVlZmU2ZThhZDZl
NGEyMTg5YzI5NDliNzlkYzcuLjA1OGJjN2VlN2JlOWJkMmI2NDkyMTgwZDY1NzcxMjM1ZTFhNTE4
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDEtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGFuIGl0ZW0tcHJvdmlkZXIt
YmFzZWQgcGFzdGVib2FyZCB3cmFwcGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjc0MTAKKworICAgICAgICBSZXZpZXdlZCBieSBFbnJpY2EgQ2Fz
dWNjaS4KKworICAgICAgICBBZGRzIGFuIGFkZGl0aW9uYWwgZmVhdHVyZSBmbGFnLgorCisgICAg
ICAgICogd3RmL0ZlYXR1cmVEZWZpbmVzLmg6CisKIDIwMTctMDEtMjUgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxlIERvd25sb2FkIGF0dHJpYnV0ZSBz
dXBwb3J0IG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYxNjZmYTE3Y2ZiMDMyZWI5ZmUwMDlmYTJlNWMz
ZDI3MjIwYjI5YjcuLmFlZjljOGUwOWU1OWYwZDU2Mjg0MmQ2ZWI1MjZjNWY0M2FhNWVkMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxNy0wMS0yNSAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYW4gaXRlbS1wcm92aWRl
ci1iYXNlZCBwYXN0ZWJvYXJkIHdyYXBwZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NzQxMAorCisgICAgICAgIFJldmlld2VkIGJ5IEVucmljYSBD
YXN1Y2NpLgorCisgICAgICAgIEludHJvZHVjZXMgV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCwg
YSBwYXN0ZWJvYXJkLWxpa2Ugb2JqZWN0IGJhY2tlZCBieSBhIG51bWJlciBvZiBpdGVtIHByb3Zp
ZGVycy4gTm8gbmV3CisgICAgICAgIHRlc3RzLCBzaW5jZSB0aGVyZSBpcyBubyBiZWhhdmlvciBj
aGFuZ2UuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL0Fic3RyYWN0UGFzdGVib2FyZC5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmguCisgICAgICAgICogcGxh
dGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oLgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tOiBBZGRlZC4KKyAgICAgICAgKGlzUmlj
aFRleHRUeXBlKToKKyAgICAgICAgKGlzU3RyaW5nVHlwZSk6CisgICAgICAgIChpc1VSTFR5cGUp
OgorICAgICAgICAoaXNDb2xvclR5cGUpOgorICAgICAgICAoaXNJbWFnZVR5cGUpOgorICAgICAg
ICAoK1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNoYXJlZEluc3RhbmNlXSk6CisgICAgICAg
ICgtW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgaW5pdF0pOgorICAgICAgICAoLVtXZWJJdGVt
UHJvdmlkZXJQYXN0ZWJvYXJkIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVy
UGFzdGVib2FyZCBwYXN0ZWJvYXJkVHlwZXNdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVy
UGFzdGVib2FyZCBzZXRJdGVtUHJvdmlkZXJzOl0pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlk
ZXJQYXN0ZWJvYXJkIG51bWJlck9mSXRlbXNdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVy
UGFzdGVib2FyZCBzZXRJdGVtczpdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFzdGVi
b2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6aW5JdGVtU2V0Ol0pOgorICAgICAgICAoLVtXZWJJ
dGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOmluSXRlbVNldDpd
KToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBjaGFuZ2VDb3VudF0pOgor
ICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGl0ZW1Qcm92aWRlckF0SW5kZXg6
XSk6CisgICAgICAgICogcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oOgorCiAyMDE3LTAxLTI1
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmVy
dCByMjEwODgyLCByZW1vdmluZyBzdXBwb3J0IGZvciBiYWNrZ3JvdW5kLXJlcGVhdC14L3kKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmggYi9Tb3VyY2UvV1RGL3d0
Zi9GZWF0dXJlRGVmaW5lcy5oCmluZGV4IDkxYTA4ZGJiMTQ1OTRjMDY0MmYwYzMzMjFiNTk4ZTlk
YzE3MGIzNTMuLjEwM2VhMTA3ZTAxOTA0N2JiOWE5ZDJhNTFlZTEzZGNmNjZhZTlhZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKKysrIGIvU291cmNlL1dURi93
dGYvRmVhdHVyZURlZmluZXMuaApAQCAtNzgzLDYgKzc4MywxMCBAQCB0aGUgcHVibGljIGlPUyBT
REsuIFdlIHdpbGwgYWxzbyBuZWVkIHRvIHVwZGF0ZSB0aGUgRmVhdHVyZURlZmluZXMueGNjb25m
aWcgZmlsZQogI2RlZmluZSBFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUgMAogI2VuZGlm
CiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikKKyNkZWZpbmUgRU5BQkxF
X0RBVEFfSU5URVJBQ1RJT04gMAorI2VuZGlmCisKIC8qIEFzc2VydHMsIGludmFyaWFudHMgZm9y
IG1hY3JvIGRlZmluaXRpb25zICovCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmICFFTkFC
TEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggYmZjMjk4YTNiYTM3NjE4OTMwZDFlMjBmODcwODZlMTgyMTdlNWRiNi4u
NTU3MWExMWJjYTQxNGE2YmNjZjExYWRjNDJlNzgxZmQxMGU2ZTNlYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjUwNiw2ICs2
NTA2LDkgQEAKIAkJRjQ3ODc1NTUxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRv
clN0YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICov
OyB9OwogCQlGNDdBNUUzRTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUz
QjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ3QTVFM0YxOTVCOEU0ODAw
NDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5
bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLzsgfTsKKwkJRjQ4MjIzMTAxRTM4NjlCODAwNjZGQzc5
IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgyMjMwRTFFMzg2OUI4MDA2NkZDNzkgLyogV2ViSXRl
bVByb3ZpZGVyUGFzdGVib2FyZC5tbSAqLzsgfTsKKwkJRjQ4MjIzMTExRTM4NjlCODAwNjZGQzc5
IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODIyMzBGMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVt
UHJvdmlkZXJQYXN0ZWJvYXJkLmggKi87IH07CisJCUY0ODIyMzEzMUUzODZFMjQwMDY2RkM3OSAv
KiBBYnN0cmFjdFBhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0ODIyMzEyMUUzODZFMjQwMDY2RkM3OSAvKiBBYnN0cmFjdFBhc3RlYm9h
cmQuaCAqLzsgfTsKIAkJRjRCRkI5ODUxRTFEREY5QjAwODYyQzI0IC8qIER1bXBFZGl0aW5nSGlz
dG9yeS5qcyBpbiBDb3B5IFNjcmlwdHMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQ4Mzg5ODMxRTFEREYyQjAwNzZCN0VBIC8qIER1bXBFZGl0aW5nSGlzdG9yeS5qcyAqLzsg
fTsKIAkJRjRCRkI5ODYxRTFEREY5QjAwODYyQzI0IC8qIEVkaXRpbmdIaXN0b3J5VXRpbC5qcyBp
biBDb3B5IFNjcmlwdHMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4Mzg5
ODQxRTFEREYyQjAwNzZCN0VBIC8qIEVkaXRpbmdIaXN0b3J5VXRpbC5qcyAqLzsgfTsKIAkJRjUw
NjY0RjcxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY1MTU3RjUyREMwMEFDMjI2
RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi87IH07CkBAIC0xNDU1OCw2ICsxNDU2MSw5IEBACiAJ
CUY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbFNuYXBBbmltYXRv
clN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQTE5NUI4QzhB
MDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9s
bFNuYXBQb2ludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVTY3Jv
bGxTbmFwUG9pbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0ODIyMzBFMUUz
ODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5
IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNDgyMjMxMjFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJk
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFic3RyYWN0UGFzdGVib2FyZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDgzODk4MzFFMURERjJCMDA3NkI3RUEg
LyogRHVtcEVkaXRpbmdIaXN0b3J5LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0
OyBuYW1lID0gRHVtcEVkaXRpbmdIaXN0b3J5LmpzOyBwYXRoID0gU2NyaXB0cy9EdW1wRWRpdGlu
Z0hpc3RvcnkuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0ODM4OTg0MUUxRERG
MkIwMDc2QjdFQSAvKiBFZGl0aW5nSGlzdG9yeVV0aWwuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmphdmFzY3JpcHQ7IG5hbWUgPSBFZGl0aW5nSGlzdG9yeVV0aWwuanM7IHBhdGggPSBTY3JpcHRz
L0VkaXRpbmdIaXN0b3J5VXRpbC5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUw
NjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NzcyLDYgKzE5Nzc4LDcgQEAKIAkJQTU5RTNDMUIxMTU4MEYz
NDAwNzI5MjhFIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJRjQ4MjIzMTIxRTM4NkUyNDAwNjZGQzc5IC8qIEFic3RyYWN0UGFzdGVib2FyZC5o
ICovLAogCQkJCUExNDgzMjhCMTg3RjUwNjgwMERBNjNBNiAvKiB3YWsgKi8sCiAJCQkJMjY1NTQx
NEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5jcHAgKi8sCiAJCQkJQTFFRDc3OEExQkUz
MjkzRjAwREMxNzkxIC8qIERldmljZS5jcHAgKi8sCkBAIC0xOTgzNiw2ICsxOTg0Myw4IEBACiAJ
CQkJM0ZCQzRBRjIxODk4ODE1NjAwNDZFRTM4IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0LmggKi8sCiAJCQkJM0ZCQzRBRjExODk4ODE1NjAwNDZFRTM4IC8qIFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tICovLAogCQkJCUU0NTM5MDNDMEVBRkQ2MzcwMDM2OTVD
OCAvKiBXaWRnZXRJT1MubW0gKi8sCisJCQkJRjQ4MjIzMEUxRTM4NjlCODAwNjZGQzc5IC8qIFdl
Ykl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gKi8sCisJCQkJRjQ4MjIzMEYxRTM4NjlCODAwNjZG
Qzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0g
aW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI1MjMzLDYgKzI1MjQyLDcgQEAK
IAkJCQlDRTc5OUZBODFDNkE1MDU3MDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9saWN5TWVk
aWFMaXN0RGlyZWN0aXZlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTZEQURGQTFDNTkxRTZBMDAz
RjZBODggLyogQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDRTc5OUZBMDFDNkE0QzE2MDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9s
aWN5U291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNDgyMjMxMzFFMzg2RTI0MDA2NkZDNzkg
LyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTc5OUY5ODFDNkE0
NkJDMDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0U3OTlGQUMxQzZBNTA2NjAwOTdCNTE4IC8qIENvbnRlbnRTZWN1cml0eVBv
bGljeVNvdXJjZUxpc3REaXJlY3RpdmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRDAxNUNBMEY0
QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzc2Nyw2
ICsyNzc3Nyw3IEBACiAJCQkJNDE0QjgyMDUxRDZERjBFNTAwNzdFQkUzIC8qIFN0cnVjdHVyZWRD
bG9uZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI2QTMwRTgxREM0RjAwQjI1OTY1IC8qIFN0
eWxlQmFja2dyb3VuZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNjdCMEU4MUQzQkUw
MEIyNTk2NSAvKiBTdHlsZUJveERhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0ODIyMzExMUUz
ODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4Mzg2QTk2RDE5RjYxQjJFMDBFMUVDNEEgLyogU3R5bGVCdWlsZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4M0I5Njg3QjE5RjhBQjgzMDA0RUY3QUYgLyogU3R5bGVCdWlsZGVyQ29u
dmVydGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzVEMzYzNzE5RkY2MTkzMDA0QzkzQUIgLyog
U3R5bGVCdWlsZGVyQ3VzdG9tLmggaW4gSGVhZGVycyAqLywKQEAgLTI5MjI3LDYgKzI5MjM4LDcg
QEAKIAkJCQk5NDE4Mjc4RTFEOENBRjkyMDA0OTI3NjQgLyogQ1NTUGVuZGluZ1N1YnN0aXR1dGlv
blZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0IzODYyMTIyODgzRTkwMEI4MUZGOCAv
KiBDU1NQcmVsb2FkU2Nhbm5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkQwNTBBMTk4
OUNBMDA3RkI4QzUgLyogQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RjQ4MjIzMTAxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0g
aW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGNzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJvcGVy
dHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzhEMDJCQzUxNTRBMThERjAwQjYyRDA1IC8qIENT
U1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQkE3NkNBMTFEMjBF
NTAwMDRDMjAxQyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Fic3RyYWN0UGFzdGVib2FyZC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Fic3RyYWN0UGFzdGVib2FyZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmExZmUwNDA1NDg2ZTQ2MjhjMjZjMWQ2NmU3ZTQ1NTM1MDIwNzE4ZjAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQWJzdHJhY3RQYXN0ZWJvYXJkLmgK
QEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRh
dGlvbi5oPgorCitAcHJvdG9jb2wgQWJzdHJhY3RQYXN0ZWJvYXJkIDxOU09iamVjdD4KK0ByZXF1
aXJlZAorCitAcHJvcGVydHkgKHJlYWRvbmx5LCBub25hdG9taWMpIE5TSW50ZWdlciBudW1iZXJP
Zkl0ZW1zOworCistIChOU0FycmF5PE5TU3RyaW5nICo+ICopcGFzdGVib2FyZFR5cGVzOworLSAo
dm9pZClzZXRJdGVtczooTlNBcnJheSAqKWl0ZW1zOworLSAoTlNBcnJheSAqKWRhdGFGb3JQYXN0
ZWJvYXJkVHlwZTooTlNTdHJpbmcgKilwYXN0ZWJvYXJkVHlwZSBpbkl0ZW1TZXQ6KE5TSW5kZXhT
ZXQgKilpdGVtU2V0OworLSAoTlNBcnJheSAqKXZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOihOU1N0
cmluZyAqKXBhc3RlYm9hcmRUeXBlIGluSXRlbVNldDooTlNJbmRleFNldCAqKWl0ZW1TZXQ7Cist
IChOU0ludGVnZXIpY2hhbmdlQ291bnQ7CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNhN2ZhZGZmOTYyMmZmZGU2ZTMwMjkwZGZjMTcwYTVhY2NlMTFlMjcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2Fy
ZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJBYnN0cmFjdFBhc3Rl
Ym9hcmQuaCIKKworI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorCitPQkpDX0NMQVNTIFVJ
SXRlbVByb3ZpZGVyOworCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCitXRUJDT1JFX0VYUE9S
VCBAaW50ZXJmYWNlIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgOiBOU09iamVjdDxBYnN0cmFj
dFBhc3RlYm9hcmQ+CisKKysgKGluc3RhbmNldHlwZSlzaGFyZWRJbnN0YW5jZTsKKworLSAoVUlJ
dGVtUHJvdmlkZXIgKilpdGVtUHJvdmlkZXJBdEluZGV4OihOU0ludGVnZXIpaW5kZXg7CisKK0Bw
cm9wZXJ0eSAoY29weSwgbm9uYXRvbWljLCBudWxsYWJsZSkgTlNBcnJheTxVSUl0ZW1Qcm92aWRl
ciAqPiAqaXRlbVByb3ZpZGVyczsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIG5vbmF0b21pYykgTlNJ
bnRlZ2VyIG51bWJlck9mSXRlbXM7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBub25hdG9taWMpIE5T
SW50ZWdlciBjaGFuZ2VDb3VudDsKKworQGVuZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKKwor
I2VuZGlmIC8vIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNjA3NzBmNjRlMzExMzQwMTNhZTVmMmRkMjRiYzQ0NmMzN2M4ZDQ5Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3Rl
Ym9hcmQubW0KQEAgLTAsMCArMSwyMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW1wb3J0ICJXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmgiCisKKyNpZiBFTkFCTEUo
REFUQV9JTlRFUkFDVElPTikKKworI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKKyNpbXBvcnQgIlVJ
S2l0U1BJLmgiCisjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2Vz
Lmg+CisjaW1wb3J0IDxVSUtpdC9VSUNvbG9yLmg+CisjaW1wb3J0IDxVSUtpdC9VSUltYWdlLmg+
CisKK1NPRlRfTElOS19GUkFNRVdPUksoVUlLaXQpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJ
Q29sb3IpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJSW1hZ2UpCitTT0ZUX0xJTktfQ0xBU1Mo
VUlLaXQsIFVJSXRlbVByb3ZpZGVyKQorCisjZGVmaW5lIE1BVENIRVNfVVRJX1RZUEUodHlwZSwg
c3VmZml4KSBbdHlwZSBpc0VxdWFsVG9TdHJpbmc6KF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlw
ZSAjIyBzdWZmaXhdCisjZGVmaW5lIE1BVENIRVNfVUlLSVRfVFlQRSh0eXBlLCBzdWZmaXgpIFt0
eXBlIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS51aWtpdC4gIyMgc3VmZml4ICMjIl0KKwor
c3RhdGljIEJPT0wgaXNSaWNoVGV4dFR5cGUoTlNTdHJpbmcgKnR5cGUpCit7CisgICAgcmV0dXJu
IE1BVENIRVNfVVRJX1RZUEUodHlwZSwgUlRGKSB8fCBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIFJU
RkQpIHx8IE1BVENIRVNfVVRJX1RZUEUodHlwZSwgSFRNTCk7Cit9CisKK3N0YXRpYyBCT09MIGlz
U3RyaW5nVHlwZShOU1N0cmluZyAqdHlwZSkKK3sKKyAgICByZXR1cm4gTUFUQ0hFU19VVElfVFlQ
RSh0eXBlLCBUZXh0KSB8fCBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIFVURjhQbGFpblRleHQpIHx8
IE1BVENIRVNfVVRJX1RZUEUodHlwZSwgVVRGMTZQbGFpblRleHQpOworfQorCitzdGF0aWMgQk9P
TCBpc1VSTFR5cGUoTlNTdHJpbmcgKnR5cGUpCit7CisgICAgcmV0dXJuIE1BVENIRVNfVVRJX1RZ
UEUodHlwZSwgVVJMKTsKK30KKworc3RhdGljIEJPT0wgaXNDb2xvclR5cGUoTlNTdHJpbmcgKnR5
cGUpCit7CisgICAgcmV0dXJuIE1BVENIRVNfVUlLSVRfVFlQRSh0eXBlLCBjb2xvcik7Cit9CisK
K3N0YXRpYyBCT09MIGlzSW1hZ2VUeXBlKE5TU3RyaW5nICp0eXBlKQoreworICAgIHJldHVybiBN
QVRDSEVTX1VUSV9UWVBFKHR5cGUsIFBORykgfHwgTUFUQ0hFU19VVElfVFlQRSh0eXBlLCBKUEVH
KSB8fCBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIEdJRikgfHwgTUFUQ0hFU19VSUtJVF9UWVBFKHR5
cGUsIGltYWdlKTsKK30KKworQGludGVyZmFjZSBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkICgp
CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU0ludGVnZXIgbnVtYmVyT2ZJdGVtczsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljKSBOU0ludGVnZXIgY2hhbmdlQ291bnQ7CisKK0BlbmQKKworQGltcGxl
bWVudGF0aW9uIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQKKworKyAoaW5zdGFuY2V0eXBlKXNo
YXJlZEluc3RhbmNlCit7CisgICAgc3RhdGljIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgKnNo
YXJlZFBhc3RlYm9hcmQgPSBuaWw7CisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9r
ZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeKCkgeworICAgICAgICBzaGFyZWRQ
YXN0ZWJvYXJkID0gW1tXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGFsbG9jXSBpbml0XTsKKyAg
ICB9KTsKKyAgICByZXR1cm4gc2hhcmVkUGFzdGVib2FyZDsKK30KKworLSAoaW5zdGFuY2V0eXBl
KWluaXQKK3sKKyAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgeworICAgICAgICBfaXRlbVBy
b3ZpZGVycyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdF07CisgICAgICAgIF9jaGFuZ2VDb3VudCA9
IDA7CisgICAgfQorICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAg
ICBbc3VwZXIgZGVhbGxvY107CisgICAgW19pdGVtUHJvdmlkZXJzIHJlbGVhc2VdOworfQorCist
IChOU0FycmF5PE5TU3RyaW5nICo+ICopcGFzdGVib2FyZFR5cGVzCit7CisgICAgTlNNdXRhYmxl
U2V0PE5TU3RyaW5nICo+ICphbGxUeXBlcyA9IFtOU011dGFibGVTZXQgc2V0XTsKKyAgICBmb3Ig
KFVJSXRlbVByb3ZpZGVyICpwcm92aWRlciBpbiBfaXRlbVByb3ZpZGVycykKKyAgICAgICAgW2Fs
bFR5cGVzIGFkZE9iamVjdHNGcm9tQXJyYXk6cHJvdmlkZXIucmVnaXN0ZXJlZFR5cGVJZGVudGlm
aWVyc107CisgICAgcmV0dXJuIGFsbFR5cGVzLmFsbE9iamVjdHM7Cit9CisKKy0gKHZvaWQpc2V0
SXRlbVByb3ZpZGVyczooTlNBcnJheTxVSUl0ZW1Qcm92aWRlciAqPiAqKWl0ZW1Qcm92aWRlcnMK
K3sKKyAgICBpdGVtUHJvdmlkZXJzID0gaXRlbVByb3ZpZGVycyA/OiBbTlNBcnJheSBhcnJheV07
CisgICAgaWYgKF9pdGVtUHJvdmlkZXJzID09IGl0ZW1Qcm92aWRlcnMgfHwgW19pdGVtUHJvdmlk
ZXJzIGlzRXF1YWxUb0FycmF5Oml0ZW1Qcm92aWRlcnNdKQorICAgICAgICByZXR1cm47CisgICAg
X2l0ZW1Qcm92aWRlcnMgPSBbaXRlbVByb3ZpZGVycyBjb3B5XTsKKyAgICBfY2hhbmdlQ291bnQr
KzsKK30KKworLSAoTlNJbnRlZ2VyKW51bWJlck9mSXRlbXMKK3sKKyAgICByZXR1cm4gX2l0ZW1Q
cm92aWRlcnMuY291bnQ7Cit9CisKKy0gKHZvaWQpc2V0SXRlbXM6KE5TQXJyYXkgKilpdGVtcwor
eworICAgIE5TTXV0YWJsZUFycmF5ICpwcm92aWRlcnMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9j
XSBpbml0XTsKKyAgICBmb3IgKE5TRGljdGlvbmFyeSAqaXRlbSBpbiBpdGVtcykgeworICAgICAg
ICBpZiAoIWl0ZW0uY291bnQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgVUlJdGVt
UHJvdmlkZXIgKml0ZW1Qcm92aWRlciA9IFtbZ2V0VUlJdGVtUHJvdmlkZXJDbGFzcygpIGFsbG9j
XSBpbml0XTsKKyAgICAgICAgZm9yIChOU1N0cmluZyAqdHlwZUlkZW50aWZpZXIgaW4gaXRlbSkg
eworICAgICAgICAgICAgW2l0ZW1Qcm92aWRlciByZWdpc3RlckRhdGFSZXByZXNlbnRhdGlvbkZv
clR5cGVJZGVudGlmaWVyOnR5cGVJZGVudGlmaWVyIGxvYWRIYW5kbGVyOl4oVUlJdGVtUHJvdmlk
ZXJEYXRhTG9hZENvbXBsZXRpb25CbG9jayBjb21wbGV0aW9uQmxvY2ssIE5TRGljdGlvbmFyeSAq
KSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkJsb2NrKGl0ZW1bdHlwZUlkZW50aWZpZXJd
LCBuaWwpOworICAgICAgICAgICAgfV07CisgICAgICAgIH0KKyAgICAgICAgW3Byb3ZpZGVycyBh
ZGRPYmplY3Q6aXRlbVByb3ZpZGVyXTsKKyAgICB9CisgICAgX2NoYW5nZUNvdW50Kys7CisgICAg
X2l0ZW1Qcm92aWRlcnMgPSBwcm92aWRlcnM7Cit9CisKKy0gKE5TQXJyYXkgKilkYXRhRm9yUGFz
dGVib2FyZFR5cGU6KE5TU3RyaW5nICopcGFzdGVib2FyZFR5cGUgaW5JdGVtU2V0OihOU0luZGV4
U2V0ICopaXRlbVNldAoreworICAgIF9fYmxvY2sgTlNNdXRhYmxlQXJyYXkgKnZhbHVlcyA9IFtO
U011dGFibGVBcnJheSBhcnJheV07CisgICAgW2l0ZW1TZXQgZW51bWVyYXRlSW5kZXhlc1VzaW5n
QmxvY2s6XihOU1VJbnRlZ2VyIGluZGV4LCBCT09MICopIHsKKyAgICAgICAgVUlJdGVtUHJvdmlk
ZXIgKnByb3ZpZGVyID0gW3NlbGYgaXRlbVByb3ZpZGVyQXRJbmRleDppbmRleF07CisgICAgICAg
IGlmICghcHJvdmlkZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgTlNEYXRhICpk
YXRhID0gW3Byb3ZpZGVyIGNvcHlEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBlSWRlbnRpZmllcjpw
YXN0ZWJvYXJkVHlwZSBvcHRpb25zOm5pbCBlcnJvcjpuaWxdOworICAgICAgICBpZiAoZGF0YSkK
KyAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0OmRhdGFdOworICAgIH1dOworCisgICAgcmV0
dXJuIHZhbHVlczsKK30KKworLSAoTlNBcnJheSAqKXZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOihO
U1N0cmluZyAqKXBhc3RlYm9hcmRUeXBlIGluSXRlbVNldDooTlNJbmRleFNldCAqKWl0ZW1TZXQK
K3sKKyAgICBfX2Jsb2NrIE5TTXV0YWJsZUFycmF5ICp2YWx1ZXMgPSBbTlNNdXRhYmxlQXJyYXkg
YXJyYXldOworICAgIFtpdGVtU2V0IGVudW1lcmF0ZUluZGV4ZXNVc2luZ0Jsb2NrOl4oTlNVSW50
ZWdlciBpbmRleCwgQk9PTCAqKSB7CisgICAgICAgIFVJSXRlbVByb3ZpZGVyICpwcm92aWRlciA9
IFtzZWxmIGl0ZW1Qcm92aWRlckF0SW5kZXg6aW5kZXhdOworICAgICAgICBpZiAoIXByb3ZpZGVy
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChpc1JpY2hUZXh0VHlwZShwYXN0
ZWJvYXJkVHlwZSkgJiYgW3Byb3ZpZGVyIGNhbkluc3RhbnRpYXRlT2JqZWN0T2ZDbGFzczpbTlNB
dHRyaWJ1dGVkU3RyaW5nIGNsYXNzXV0pIHsKKyAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0
Oltwcm92aWRlciBpbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W05TQXR0cmlidXRlZFN0cmluZyBj
bGFzc10gb3B0aW9uczpuaWwgZXJyb3I6bmlsXV07CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoaXNTdHJpbmdUeXBlKHBhc3RlYm9hcmRUeXBlKSAmJiBbcHJv
dmlkZXIgY2FuSW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKSB7Cisg
ICAgICAgICAgICBbdmFsdWVzIGFkZE9iamVjdDpbcHJvdmlkZXIgaW5zdGFudGlhdGVPYmplY3RP
ZkNsYXNzOltOU1N0cmluZyBjbGFzc10gb3B0aW9uczpuaWwgZXJyb3I6bmlsXV07CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNDb2xvclR5cGUocGFzdGVi
b2FyZFR5cGUpICYmIFtwcm92aWRlciBjYW5JbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W2dldFVJ
Q29sb3JDbGFzcygpIGNsYXNzXV0pIHsKKyAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0Oltw
cm92aWRlciBpbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W2dldFVJQ29sb3JDbGFzcygpIGNsYXNz
XSBvcHRpb25zOm5pbCBlcnJvcjpuaWxdXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChpc1VSTFR5cGUocGFzdGVib2FyZFR5cGUpICYmIFtwcm92aWRlciBj
YW5JbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W05TVVJMIGNsYXNzXV0pIHsKKyAgICAgICAgICAg
IFt2YWx1ZXMgYWRkT2JqZWN0Oltwcm92aWRlciBpbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W05T
VVJMIGNsYXNzXSBvcHRpb25zOm5pbCBlcnJvcjpuaWxdXTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIGlmIChpc0ltYWdlVHlwZShwYXN0ZWJvYXJkVHlwZSkgJiYg
W3Byb3ZpZGVyIGNhbkluc3RhbnRpYXRlT2JqZWN0T2ZDbGFzczpbZ2V0VUlJbWFnZUNsYXNzKCkg
Y2xhc3NdXSkgeworICAgICAgICAgICAgW3ZhbHVlcyBhZGRPYmplY3Q6W3Byb3ZpZGVyIGluc3Rh
bnRpYXRlT2JqZWN0T2ZDbGFzczpbZ2V0VUlJbWFnZUNsYXNzKCkgY2xhc3NdIG9wdGlvbnM6bmls
IGVycm9yOm5pbF1dOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
V1RGTG9nQWx3YXlzKCJGYWlsZWQgdG8gaW5zdGFudGlhdGUgb2JqZWN0IGZvciB0eXBlOiAnJXMn
IGF0IGluZGV4OiAldHUiLCBwYXN0ZWJvYXJkVHlwZS5VVEY4U3RyaW5nLCBpbmRleCk7CisgICAg
fV07CisgICAgcmV0dXJuIHZhbHVlczsKK30KKworLSAoTlNJbnRlZ2VyKWNoYW5nZUNvdW50Cit7
CisgICAgcmV0dXJuIF9jaGFuZ2VDb3VudDsKK30KKworLSAoVUlJdGVtUHJvdmlkZXIgKilpdGVt
UHJvdmlkZXJBdEluZGV4OihOU0ludGVnZXIpaW5kZXgKK3sKKyAgICByZXR1cm4gMCA8PSBpbmRl
eCAmJiBpbmRleCA8IChOU0ludGVnZXIpX2l0ZW1Qcm92aWRlcnMuY291bnQgPyBfaXRlbVByb3Zp
ZGVyc1tpbmRleF0gOiBuaWw7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEVOQUJMRShEQVRBX0lO
VEVSQUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9V
SUtpdFNQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCmlu
ZGV4IDYyMjdjZGQ3M2E5MDkwMTg1ZjIyNjg5NjEwZThiZWJkOTYyMzgzODguLmYwYTRiNjhmODQ4
MjZhNDA3NjQ5NDAxYzQxN2RjOTIzNGRjZjEwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAgLTMwLDYgKzMwLDEwIEBACiAjaW1wb3J0IDxVSUtpdC9V
SVNjcmVlbl9Qcml2YXRlLmg+CiAjaW1wb3J0IDxVSUtpdC9VSVZpZXdDb250cm9sbGVyX1ByaXZh
dGUuaD4KIAorI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorI2ltcG9ydCA8VUlLaXQvVUlJ
dGVtUHJvdmlkZXJfUHJpdmF0ZS5oPgorI2VuZGlmCisKICNlbHNlCiAKICNpbXBvcnQgPFVJS2l0
L1VJS2l0Lmg+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>