<?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>196105</bug_id>
          
          <creation_ts>2019-03-21 12:22:56 -0700</creation_ts>
          <short_desc>Make a SelectValue subclass of B3::Value</short_desc>
          <delta_ts>2019-03-21 14:06:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          
          <blocked>196091</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1519830</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-21 12:22:56 -0700</bug_when>
    <thetext>Mostly useful for https://bugs.webkit.org/show_bug.cgi?id=196091
It also allows us to give names to the children (cond/ifTrue/ifFalse).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519831</commentid>
    <comment_count>1</comment_count>
      <attachid>365589</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-21 12:27:01 -0700</bug_when>
    <thetext>Created attachment 365589
Patch

It passes testb3 in Release mode.
The select tests also pass in Debug mode, but I could not test the whole file in Debug mode because of https://bugs.webkit.org/show_bug.cgi?id=196103.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519855</commentid>
    <comment_count>2</comment_count>
      <attachid>365600</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-21 13:08:06 -0700</bug_when>
    <thetext>Created attachment 365600
Patch

Remembering to svn add the new files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519865</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-21 13:13:30 -0700</bug_when>
    <thetext>Attachment 365600 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3Value.h:419:  Missing space before {  [whitespace/braces] [5]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519910</commentid>
    <comment_count>4</comment_count>
      <attachid>365611</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-21 13:56:43 -0700</bug_when>
    <thetext>Created attachment 365611
Patch

I had forgotten to update FTLOutput.cpp and WASMB3IRGenerator.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519925</commentid>
    <comment_count>5</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-21 14:06:17 -0700</bug_when>
    <thetext>Phil suggested a better approach in https://bugs.webkit.org/show_bug.cgi?id=196091</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365589</attachid>
            <date>2019-03-21 12:27:01 -0700</date>
            <delta_ts>2019-03-21 13:08:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch196105</filename>
            <type>text/plain</type>
            <size>25028</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQzMzE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDE5LTAzLTIxICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAg
ICAgICAgTWFrZSBhIFNlbGVjdFZhbHVlIHN1YmNsYXNzIG9mIEIzOjpWYWx1ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MTA1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9zdGx5IHVzZWZ1bCBmb3Ig
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjA5MQorICAgICAgICBJ
dCBhbHNvIGFsbG93cyB1cyB0byBnaXZlIG5hbWVzIHRvIHRoZSBjaGlsZHJlbiAoY29uZC9pZlRy
dWUvaWZGYWxzZSkuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGIzL0IzUmVkdWNl
U3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpC
Mzo6VmFsdWU6OnR5cGVGb3IpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBi
My90ZXN0YjMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZFdpdGhNYXNrUmV0dXJu
c0Jvb2xlYW5zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCYXNpY1NlbGVjdCk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0U2VsZWN0VGVzdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0
Q29tcGFyZURvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0Q29tcGFyZUZsb2F0
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3RDb21wYXJlRmxvYXRUb0RvdWJsZSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0RG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTZWxlY3REb3VibGVUZXN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3REb3VibGVD
b21wYXJlRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3REb3VibGVDb21wYXJl
RmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3RGb2xkKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTZWxlY3RJbnZlcnQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU2VsZWN0KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja1NlbGVjdENoZWNrU2VsZWN0KToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RDaGVja1NlbGVjdEFuZENTRSk6CisKIDIwMTktMDMtMjEgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBEbyBub3QgY3JlYXRlIEpJ
VCByZWxhdGVkIGRhdGEgdW5kZXIgbm9uLUpJVCBtb2RlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMjQzMzAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTg1MSw2ICs4NTEsNyBAQAogCQkyQUQ4OTMyQjE3RTM4NjhGMDA2NjgyNzYgLyogSGVhcEl0ZXJh
dGlvblNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQUQ4OTMyOTE3RTM4NjhGMDA2NjgyNzYgLyogSGVhcEl0ZXJhdGlvblNjb3BlLmggKi87IH07
CiAJCTJBRjczODJEMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQUY3MzgyQjE4QkJCRjky
MDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJEMzQyRjM2RjcyNDQwOTY4MDRBREIyNCAvKiBTb3Vy
Y2VPcmlnaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQyNUJBMTMzN0U0MzQ0RTFCMjY5QTY3MSAvKiBTb3VyY2VPcmlnaW4uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkzM0U3OERFMzIyNDQwQkQ1MDA0
QUVFOUYgLyogQjNTZWxlY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzNFNzhERTIyMjQ0MEJENTAwNEFFRTlGIC8qIEIzU2VsZWN0VmFsdWUu
aCAqLzsgfTsKIAkJMzcxRDg0MkQxN0M5OEI2RTAwRUNGOTk0IC8qIGxpYnouZHlsaWIgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzFEODQyQzE3Qzk4
QjZFMDBFQ0Y5OTQgLyogbGliei5keWxpYiAqLzsgfTsKIAkJMzdDNzM4RDIxRURCNTZFNDAwM0Yy
QjBCIC8qIFBhcnNlSW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzN0M3MzhEMTFFREI1NjcyMDAzRjJCMEIgLyogUGFyc2VJbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTI5NTI3NzFEMkNGNkJD
MDBFNzhCODkgLyogYnVpbHRpbnNfZ2VuZXJhdGVfaW50ZXJuYWxzX3dyYXBwZXJfaGVhZGVyLnB5
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOTUyNzMx
RDJDRjZBQzAwRTc4Qjg5IC8qIGJ1aWx0aW5zX2dlbmVyYXRlX2ludGVybmFsc193cmFwcGVyX2hl
YWRlci5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMzMzMyw2ICszMzM0LDggQEAKIAkJMkFGNzM4MkIxOEJCQkY5MjAwOEE1QTM3IC8qIFN0cnVj
dHVyZUlEVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RydWN0dXJl
SURUYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMDMyMTc1REYxQUQ0N0Q4
OTk4QjM0RTEgLyogSlNTb3VyY2VDb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTU291cmNlQ29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMEE1RjQw
M0YxMUM0RjU5OUNENTk2RDUgLyogV2FzbVNpZ25hdHVyZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbVNpZ25hdHVyZUlubGluZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzNFNzhERTIyMjQ0MEJENTAwNEFFRTlGIC8qIEIzU2VsZWN0VmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQjNTZWxlY3RWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkzM0U3OERFNDIyNDQwREY1MDA0QUVFOUYgLyogQjNTZWxlY3RWYWx1ZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBCM1NlbGVjdFZhbHVlLmNwcDsgcGF0aCA9IGIzL0IzU2VsZWN0
VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzExOUE3NzIwQ0NCNURD
MDAyQzZEQzkgLyogV2ViS2l0VGFyZ2V0Q29uZGl0aW9uYWxzLnhjY29uZmlnICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IFdlYktpdFRhcmdldENvbmRpdGlvbmFscy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzcxRDg0MkMxN0M5OEI2RTAwRUNGOTk0IC8qIGxpYnouZHlsaWIgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFj
aC1vLmR5bGliIjsgbmFtZSA9IGxpYnouZHlsaWI7IHBhdGggPSB1c3IvbGliL2xpYnouZHlsaWI7
IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQkzN0M3MzhEMTFFREI1NjcyMDAzRjJCMEIgLyog
UGFyc2VJbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyc2VJbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU0MTMsNiArNTQxNiw4IEBACiAJCQkJNDM0
MjJBNjUxQzE2MjIxRTAwRTJFQjk4IC8qIEIzUmVkdWNlRG91YmxlVG9GbG9hdC5oICovLAogCQkJ
CTBGRUM4NUI3MUJFMTQ2MkYwMDgwRkY3NCAvKiBCM1JlZHVjZVN0cmVuZ3RoLmNwcCAqLywKIAkJ
CQkwRkVDODVCODFCRTE0NjJGMDA4MEZGNzQgLyogQjNSZWR1Y2VTdHJlbmd0aC5oICovLAorCQkJ
CTMzRTc4REU0MjI0NDBERjUwMDRBRUU5RiAvKiBCM1NlbGVjdFZhbHVlLmNwcCAqLywKKwkJCQkz
M0U3OERFMjIyNDQwQkQ1MDA0QUVFOUYgLyogQjNTZWxlY3RWYWx1ZS5oICovLAogCQkJCTBGRUM4
NEVBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Nsb3RCYXNlVmFsdWUuY3BwICovLAogCQkJCTBGRUM4
NEVCMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Nsb3RCYXNlVmFsdWUuaCAqLywKIAkJCQkwRjJCQkQ5
MTFDNUZGM0Y1MDAyM0VGMjMgLyogQjNTcGFyc2VDb2xsZWN0aW9uLmggKi8sCkBAIC05MjE2LDYg
KzkyMjEsNyBAQAogCQkJCUExNTg3RDc1MUI0REMxQzYwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVG
b3JtYXRDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNTg3RDcyMUI0REMx
NDEwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExNTg3RDc2MUI0REMxQzYwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90
b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKKwkJCQkzM0U3OERFMzIyNDQwQkQ1MDA0QUVFOUYg
LyogQjNTZWxlY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFENzkyRkQxQjQzODY0QjAw
NDUxNkY1IC8qIEludGxOdW1iZXJGb3JtYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRDc5MkZG
MUI0Mzg2NEIwMDQ1MTZGNSAvKiBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExMjU4NDZFMUI0NUEzNjAwMENDN0Y2QyAvKiBJbnRsTnVtYmVyRm9ybWF0
Q29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU291
cmNlcy50eHQJKHJldmlzaW9uIDI0MzMwMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3Vy
Y2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTUzLDYgKzE1Myw3IEBACiBiMy9CM1B1cmVDU0Uu
Y3BwCiBiMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwCiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNw
cAorYjMvQjNTZWxlY3RWYWx1ZS5jcHAKIGIzL0IzU1NBQ2FsY3VsYXRvci5jcHAKIGIzL0IzU2xv
dEJhc2VWYWx1ZS5jcHAKIGIzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNp
b24gMjQzMzAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGgu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiQjNQaGlDaGls
ZHJlbi5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzUHVy
ZUNTRS5oIgorI2luY2x1ZGUgIkIzU2VsZWN0VmFsdWUuaCIKICNpbmNsdWRlICJCM1Nsb3RCYXNl
VmFsdWUuaCIKICNpbmNsdWRlICJCM1N0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkIzVXBzaWxvblZh
bHVlLmgiCkBAIC0xNjI4LDIwICsxNjI5LDIxIEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBicmVhazsKIAotICAgICAgICBjYXNlIFNlbGVjdDoKKyAgICAgICAgY2FzZSBTZWxlY3Q6IHsK
KyAgICAgICAgICAgIFNlbGVjdFZhbHVlKiB2YWx1ZSA9IG1fdmFsdWUtPmFzPFNlbGVjdFZhbHVl
PigpOwogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBTZWxlY3QoY29uc3RhbnQsIGEsIGIpCiAg
ICAgICAgICAgICAvLyBJbnRvIHRoaXM6IGNvbnN0YW50ID8gYSA6IGIKLSAgICAgICAgICAgIGlm
IChtX3ZhbHVlLT5jaGlsZCgwKS0+aGFzSW50MzIoKSkgeworICAgICAgICAgICAgaWYgKHZhbHVl
LT5jb25kKCktPmhhc0ludDMyKCkpIHsKICAgICAgICAgICAgICAgICByZXBsYWNlV2l0aElkZW50
aXR5KAotICAgICAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKS0+YXNJbnQzMigpID8g
bV92YWx1ZS0+Y2hpbGQoMSkgOiBtX3ZhbHVlLT5jaGlsZCgyKSk7CisgICAgICAgICAgICAgICAg
ICAgIHZhbHVlLT5jb25kKCktPmFzSW50MzIoKSA/IHZhbHVlLT5pZlRydWUoKSA6IHZhbHVlLT5p
ZkZhbHNlKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAvLyBUdXJuIHRoaXM6IFNlbGVjdChFcXVhbCh4LCAwKSwgYSwgYikKICAgICAgICAg
ICAgIC8vIEludG8gdGhpczogU2VsZWN0KHgsIGIsIGEpCi0gICAgICAgICAgICBpZiAobV92YWx1
ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEVxdWFsICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGls
ZCgxKS0+aXNJbnQoMCkpIHsKLSAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1f
dmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKLSAgICAgICAgICAgICAgICBzdGQ6OnN3YXAobV92
YWx1ZS0+Y2hpbGQoMSksIG1fdmFsdWUtPmNoaWxkKDIpKTsKKyAgICAgICAgICAgIGlmICh2YWx1
ZS0+Y29uZCgpLT5vcGNvZGUoKSA9PSBFcXVhbCAmJiB2YWx1ZS0+Y29uZCgpLT5jaGlsZCgxKS0+
aXNJbnQoMCkpIHsKKyAgICAgICAgICAgICAgICB2YWx1ZS0+Y29uZCgpID0gdmFsdWUtPmNvbmQo
KS0+Y2hpbGQoMCk7CisgICAgICAgICAgICAgICAgc3RkOjpzd2FwKHZhbHVlLT5pZlRydWUoKSwg
dmFsdWUtPmlmRmFsc2UoKSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTE2NDgsMTEgKzE2NTAsMTEg
QEAKIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBTZWxlY3QoQml0WG9yKGJvb2wsIDEpLCBh
LCBiKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBTZWxlY3QoYm9vbCwgYiwgYSkKLSAgICAg
ICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0WG9yCi0gICAgICAg
ICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludDMyKDEpCi0gICAg
ICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgp
KSB7Ci0gICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgw
KS0+Y2hpbGQoMCk7Ci0gICAgICAgICAgICAgICAgc3RkOjpzd2FwKG1fdmFsdWUtPmNoaWxkKDEp
LCBtX3ZhbHVlLT5jaGlsZCgyKSk7CisgICAgICAgICAgICBpZiAodmFsdWUtPmNvbmQoKS0+b3Bj
b2RlKCkgPT0gQml0WG9yCisgICAgICAgICAgICAgICAgJiYgdmFsdWUtPmNvbmQoKS0+Y2hpbGQo
MSktPmlzSW50MzIoMSkKKyAgICAgICAgICAgICAgICAmJiB2YWx1ZS0+Y29uZCgpLT5jaGlsZCgw
KS0+cmV0dXJuc0Jvb2woKSkgeworICAgICAgICAgICAgICAgIHZhbHVlLT5jb25kKCkgPSB2YWx1
ZS0+Y29uZCgpLT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAgICBzdGQ6OnN3YXAodmFsdWUtPmlm
VHJ1ZSgpLCB2YWx1ZS0+aWZGYWxzZSgpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0
cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTY1OSwxMSAr
MTY2MSwxMSBAQAogCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IFNlbGVjdChCaXRBbmQoYm9v
bCwgeHl6MSksIGEsIGIpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IFNlbGVjdChib29sLCBh
LCBiKQotICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRB
bmQKLSAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmhhc0lu
dCgpCi0gICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5hc0lu
dCgpICYgMQotICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKS0+
cmV0dXJuc0Jvb2woKSkgewotICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92
YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAgaWYgKHZhbHVlLT5jb25kKCkt
Pm9wY29kZSgpID09IEJpdEFuZAorICAgICAgICAgICAgICAgICYmIHZhbHVlLT5jb25kKCktPmNo
aWxkKDEpLT5oYXNJbnQoKQorICAgICAgICAgICAgICAgICYmIHZhbHVlLT5jb25kKCktPmNoaWxk
KDEpLT5hc0ludCgpICYgMQorICAgICAgICAgICAgICAgICYmIHZhbHVlLT5jb25kKCktPmNoaWxk
KDApLT5yZXR1cm5zQm9vbCgpKSB7CisgICAgICAgICAgICAgICAgdmFsdWUtPmNvbmQoKSA9IHZh
bHVlLT5jb25kKCktPmNoaWxkKDApOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xNjcwLDExICsxNjcy
LDEyIEBACiAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogU2VsZWN0KHN0dWZmLCB4LCB4KQog
ICAgICAgICAgICAgLy8gSW50byB0aGlzOiB4Ci0gICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hp
bGQoMSkgPT0gbV92YWx1ZS0+Y2hpbGQoMikpIHsKLSAgICAgICAgICAgICAgICByZXBsYWNlV2l0
aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDEpKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZS0+aWZU
cnVlKCkgPT0gdmFsdWUtPmlmRmFsc2UoKSkgeworICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRo
SWRlbnRpdHkodmFsdWUtPmlmVHJ1ZSgpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAKICAgICAgICAgY2FzZSBM
b2FkOFo6CiAgICAgICAgIGNhc2UgTG9hZDhTOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbHVlLmNwcAkocmV2aXNpb24gMjQzMzAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MjQsNyArODI0LDcgQEAKIHsKIH0KIAot
VHlwZSBWYWx1ZTo6dHlwZUZvcihLaW5kIGtpbmQsIFZhbHVlKiBmaXJzdENoaWxkLCBWYWx1ZSog
c2Vjb25kQ2hpbGQpCitUeXBlIFZhbHVlOjp0eXBlRm9yKEtpbmQga2luZCwgVmFsdWUqIGZpcnN0
Q2hpbGQpCiB7CiAgICAgc3dpdGNoIChraW5kLm9wY29kZSgpKSB7CiAgICAgY2FzZSBJZGVudGl0
eToKQEAgLTkwNCw5ICs5MDQsNiBAQAogICAgIGNhc2UgRW50cnlTd2l0Y2g6CiAgICAgY2FzZSBX
YXNtQm91bmRzQ2hlY2s6CiAgICAgICAgIHJldHVybiBWb2lkOwotICAgIGNhc2UgU2VsZWN0Ogot
ICAgICAgICBBU1NFUlQoc2Vjb25kQ2hpbGQpOwotICAgICAgICByZXR1cm4gc2Vjb25kQ2hpbGQt
PnR5cGUoKTsKICAgICBkZWZhdWx0OgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkocmV2aXNpb24g
MjQzMzAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkod29ya2luZyBj
b3B5KQpAQCAtMzgxLDEwICszODEsNiBAQAogICAgICAgICAgICAgaWYgKFVOTElLRUxZKG51bUFy
Z3MgIT0gMikpCiAgICAgICAgICAgICAgICAgYmFkS2luZChraW5kLCBudW1BcmdzKTsKICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFNlbGVjdDoKLSAgICAgICAgICAgIGlmIChVTkxJ
S0VMWShudW1BcmdzICE9IDMpKQotICAgICAgICAgICAgICAgIGJhZEtpbmQoa2luZCwgbnVtQXJn
cyk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJh
ZEtpbmQoa2luZCwgbnVtQXJncyk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTQxNiwyMiArNDEy
LDEzIEBACiAgICAgfQogICAgIC8vIFRoaXMgZm9ybSBpcyBmb3IgdGhvc2Ugb3Bjb2RlcyB0aGF0
IGNhbiBpbmZlciB0aGVpciB0eXBlIGZyb20gdGhlIG9wY29kZSBhbmQgZmlyc3QgY2hpbGQ6CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIGV4cGxpY2l0IFZhbHVlKENo
ZWNrZWRPcGNvZGVUYWcsIEtpbmQga2luZCwgT3JpZ2luIG9yaWdpbiwgVmFsdWUqIGZpcnN0Q2hp
bGQpCisgICAgZXhwbGljaXQgVmFsdWUoQ2hlY2tlZE9wY29kZVRhZywgS2luZCBraW5kLCBPcmln
aW4gb3JpZ2luLCBWYWx1ZSogZmlyc3RDaGlsZCwgQXJndW1lbnRzLi4uIGFyZ3VtZW50cykKICAg
ICAgICAgOiBtX2tpbmQoa2luZCkKICAgICAgICAgLCBtX3R5cGUodHlwZUZvcihraW5kLCBmaXJz
dENoaWxkKSkKICAgICAgICAgLCBtX29yaWdpbihvcmlnaW4pCi0gICAgICAgICwgbV9jaGlsZHJl
bnsgZmlyc3RDaGlsZCB9CisgICAgICAgICwgbV9jaGlsZHJlbnsgZmlyc3RDaGlsZCwgYXJndW1l
bnRzLi4uIH0KICAgICB7CiAgICAgfQotICAgIC8vIFRoaXMgZm9ybSBpcyBmb3IgdGhvc2Ugb3Bj
b2RlcyB0aGF0IGNhbiBpbmZlciB0aGVpciB0eXBlIGZyb20gdGhlIG9wY29kZSBhbmQgZmlyc3Qg
YW5kIHNlY29uZCBjaGlsZDoKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0g
ICAgZXhwbGljaXQgVmFsdWUoQ2hlY2tlZE9wY29kZVRhZywgS2luZCBraW5kLCBPcmlnaW4gb3Jp
Z2luLCBWYWx1ZSogZmlyc3RDaGlsZCwgVmFsdWUqIHNlY29uZENoaWxkLCBBcmd1bWVudHMuLi4g
YXJndW1lbnRzKQotICAgICAgICA6IG1fa2luZChraW5kKQotICAgICAgICAsIG1fdHlwZSh0eXBl
Rm9yKGtpbmQsIGZpcnN0Q2hpbGQsIHNlY29uZENoaWxkKSkKLSAgICAgICAgLCBtX29yaWdpbihv
cmlnaW4pCi0gICAgICAgICwgbV9jaGlsZHJlbnsgZmlyc3RDaGlsZCwgc2Vjb25kQ2hpbGQsIGFy
Z3VtZW50cy4uLiB9Ci0gICAgewotICAgIH0KICAgICAvLyBUaGlzIGZvcm0gaXMgZm9yIHRob3Nl
IG9wY29kZXMgdGhhdCBjYW4gaW5mZXIgdGhlaXIgdHlwZSBmcm9tIHRoZSBvcGNvZGUgYWxvbmUs
IGFuZCB0aGF0IGRvbid0CiAgICAgLy8gdGFrZSBhbnkgYXJndW1lbnRzOgogICAgIGV4cGxpY2l0
IFZhbHVlKENoZWNrZWRPcGNvZGVUYWcsIEtpbmQga2luZCwgT3JpZ2luIG9yaWdpbikKQEAgLTQ5
Miw3ICs0NzksNyBAQAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQ2hlY2tWYWx1ZTsgLy8g
Q2hlY2tWYWx1ZTo6Y29udmVydFRvQWRkKCkgbW9kaWZpZXMgbV9raW5kLgogICAgIAotICAgIHN0
YXRpYyBUeXBlIHR5cGVGb3IoS2luZCwgVmFsdWUqIGZpcnN0Q2hpbGQsIFZhbHVlKiBzZWNvbmRD
aGlsZCA9IG51bGxwdHIpOworICAgIHN0YXRpYyBUeXBlIHR5cGVGb3IoS2luZCwgVmFsdWUqIGZp
cnN0Q2hpbGQpOwogCiAgICAgLy8gVGhpcyBncm91cCBvZiBmaWVsZHMgaXMgYXJyYW5nZWQgdG8g
Zml0IGluIDY0IGJpdHMuCiBwcm90ZWN0ZWQ6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvdGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVz
dGIzLmNwcAkocmV2aXNpb24gMjQzMzAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJCM05h
dGl2ZVRyYWl0cy5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNSZWR1
Y2VTdHJlbmd0aC5oIgorI2luY2x1ZGUgIkIzU2VsZWN0VmFsdWUuaCIKICNpbmNsdWRlICJCM1Ns
b3RCYXNlVmFsdWUuaCIKICNpbmNsdWRlICJCM1N0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkIzU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgiCkBAIC0yNzI5LDcgKzI3MzAsNyBAQAogICAgIFZhbHVl
KiBpbnZlcnRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0WG9yLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDB4MSksCiAgICAgICAgIG1hc2tlZEVxdWFsKTsKLSAgICBWYWx1ZSogc2VsZWN0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTZWxlY3QsIE9yaWdpbigpLCBpbnZlcnRlZCwKKyAgICBW
YWx1ZSogc2VsZWN0ID0gcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgaW52ZXJ0ZWQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCA0MiksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAtNSkpOwogCkBAIC0xMTgwMSw4ICsxMTgwMiw3IEBACiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCi0gICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAg
ICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBFcXVh
bCwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLApAQCAtMTE4MjMs
OCArMTE4MjMsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAotICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgcHJv
YywgU2VsZWN0LCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIxKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSkpOwpAQCAt
MTE4NDIsOCArMTE4NDEsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAotICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAg
ICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFNlbGVj
dFZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgTGVzc1RoYW4sIE9yaWdpbigpLAogICAgICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIwKSwKQEAgLTExODczLDggKzExODcxLDcgQEAKIAogICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgIHByb2MsIFNl
bGVjdCwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4ocHJv
YywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgICAgIHByb2MsIG9wY29kZSwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgZmxvYXRW
YWx1ZTEsCkBAIC0xMTkxMSw4ICsxMTkwOCw3IEBACiAKICAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCi0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAor
ICAgICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBv
cGNvZGUsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIGRvdWJsZVZhbHVlMSwKQEAgLTExOTM5
LDggKzExOTM1LDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgIHBy
b2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1
ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCksCkBAIC0xMTk2MSw4ICsxMTk1Niw3IEBACiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCi0gICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCi0gICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICBy
b290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJ
bmZvOjphcmd1bWVudEZQUjEpKSk7CkBAIC0xMTk4MCw4ICsxMTk3NCw3IEBACiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCi0gICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAg
ICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBMZXNz
VGhhbiwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApLApAQCAtMTIw
MTAsOCArMTIwMDMsNyBAQAogCiAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAotICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAotICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFNlbGVjdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgTGVzc1RoYW4sIE9yaWdp
bigpLAogICAgICAgICAgICAgICAgIGZsb2F0VmFsdWUxLApAQCAtMTIwNDEsOCArMTIwMzMsNyBA
QAogCiAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAotICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAg
ICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFNlbGVj
dFZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgTGVzc1RoYW4sIE9yaWdpbigpLAogICAgICAgICAg
ICAgICAgIGZsb2F0VmFsdWUxLApAQCAtMTIwNjcsOCArMTIwNTgsOCBAQAogCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCi0gICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAg
ICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
U2VsZWN0VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLAogICAgICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIHByb2Ms
IG9wY29kZSwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgICAgIGFyZzAsCkBAIC0xMjA5Miw3
ICsxMjA4Myw3IEBACiAgICAgICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjIpOwogICAg
ICAgICBWYWx1ZSogYXJnMyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIzKTsKIAotICAgICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAg
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2Rl
LCBPcmlnaW4oKSwgYXJnMCwgYXJnMSksCiAgICAgICAgICAgICBhcmcyLAogICAgICAgICAgICAg
YXJnMyk7CkBAIC0xMjExOSw3ICsxMjExMCw3IEBACiAgICAgICAgIFZhbHVlKiBhcmcyID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjIpOwogICAgICAgICBWYWx1ZSogYXJnMyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIzKTsKIAot
ICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTZWxl
Y3QsIE9yaWdpbigpLAorICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFNl
bGVjdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSksCiAgICAgICAgICAgICBh
cmcyLAogICAgICAgICAgICAgYXJnMyk7CkBAIC0xMjE0Niw3ICsxMjEzNyw3IEBACiAgICAgICAg
IFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjIpOwogICAgICAgICBWYWx1ZSogYXJnMyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6
YXJndW1lbnRGUFIzKTsKIAotICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwgYXJnMCwgYXJn
MSksCiAgICAgICAgICAgICBhcmcyLAogICAgICAgICAgICAgYXJnMyk7CkBAIC0xMjE3NSw4ICsx
MjE2Niw4IEBACiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKLSAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKKyAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJv
YywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAg
ICAgICAgYXJnMCwKQEAgLTEyMTk5LDcgKzEyMTkwLDcgQEAKICAgICAgICAgVmFsdWUqIGFyZzEg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMSk7CiAgICAgICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjIp
OwogCi0gICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBhcmcwLCBhcmcxKSwKICAgICAgICAg
ICAgIGFyZzIsCiAgICAgICAgICAgICBhcmcwKTsKQEAgLTEyMjUzLDggKzEyMjQ0LDggQEAKIAog
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAotICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAg
ICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFNlbGVjdFZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAg
ICAgICBwcm9jLCBvcGNvZGUsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgICAgICBhcmcwLApA
QCAtMTIyODYsNyArMTIyNzcsNyBAQAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjMp
KSk7CiAKLSAgICAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgU2VsZWN0LCBPcmlnaW4oKSwKKyAgICAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxTZWxlY3RWYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgT3JpZ2luKCksIGFyZzAsIGFyZzEpLAogICAgICAg
ICAgICAgYXJnMiwKICAgICAgICAgICAgIGFyZzMpOwpAQCAtMTIzMjEsNyArMTIzMTIsNyBAQAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCks
CiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpKSk7CiAKLSAgICAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKKyAg
ICAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4ocHJvYywg
T3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIG9wY29k
ZSwgT3JpZ2luKCksIGFyZzAsIGFyZzEpLAogICAgICAgICAgICAgYXJnMiwKICAgICAgICAgICAg
IGFyZzMpOwpAQCAtMTIzNTYsNyArMTIzNDcsNyBAQAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjMpKSk7CiAKLSAgICAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKKyAgICAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgT3JpZ2luKCksIGFyZzAsIGFyZzEp
LAogICAgICAgICAgICAgYXJnMiwKICAgICAgICAgICAgIGFyZzMpOwpAQCAtMTIzOTEsOCArMTIz
ODIsOCBAQAogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCi0gICAgICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAotICAgICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2Ms
IE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAg
ICAgIGFyZzAsCkBAIC0xMjQyMSw3ICsxMjQxMiw3IEBACiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMikpKTsKIAotICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwgYXJnMCwgYXJn
MSksCiAgICAgICAgICAgICBhcmcyLAogICAgICAgICAgICAgYXJnMCk7CkBAIC0xMjQ1OSw4ICsx
MjQ1MCw3IEBACiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICBwcm9jLCBT
ZWxlY3QsIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSksCkBAIC0xMjQ3
OSw4ICsxMjQ2OSw3IEBACiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICBw
cm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0VmFs
dWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKQEAgLTEyNTA5LDggKzEyNDk4LDggQEAKICAgICAgICAg
cHJvYywgQ2hlY2ssIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKLSAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKKyAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4oCisgICAgICAgICAgICAgICAg
cHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKICAgICAgICAgICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKQEAgLTEyNTUzLDggKzEyNTQyLDggQEAK
ICAgICAgICAgcHJvYywgQ2hlY2ssIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKLSAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmln
aW4oKSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4oCisgICAgICAg
ICAgICAgICAgcHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKQEAgLTEyNTgxLDggKzEy
NTcwLDggQEAKICAgICAgICAgcHJvYywgQ2hlY2ssIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKLSAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgcHJvYywgU2Vs
ZWN0LCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4o
CisgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmln
aW4oKSwKICAgICAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKQEAgLTEy
NjI0LDggKzEyNjEzLDggQEAKICAgICAgICAgcmV0dXJuOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICBhdXRvKiBzZWxlY3RWYWx1ZSA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCi0gICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgYXV0byog
c2VsZWN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KAorICAgICAgICBwcm9j
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365600</attachid>
            <date>2019-03-21 13:08:06 -0700</date>
            <delta_ts>2019-03-21 13:56:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch196105</filename>
            <type>text/plain</type>
            <size>29458</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQzMzE0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDE5LTAzLTIxICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAg
ICAgICAgTWFrZSBhIFNlbGVjdFZhbHVlIHN1YmNsYXNzIG9mIEIzOjpWYWx1ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MTA1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9zdGx5IHVzZWZ1bCBmb3Ig
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjA5MQorICAgICAgICBJ
dCBhbHNvIGFsbG93cyB1cyB0byBnaXZlIG5hbWVzIHRvIHRoZSBjaGlsZHJlbiAoY29uZC9pZlRy
dWUvaWZGYWxzZSkuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGIzL0IzUmVkdWNl
U3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpC
Mzo6VmFsdWU6OnR5cGVGb3IpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBi
My90ZXN0YjMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZFdpdGhNYXNrUmV0dXJu
c0Jvb2xlYW5zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCYXNpY1NlbGVjdCk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0U2VsZWN0VGVzdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0
Q29tcGFyZURvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0Q29tcGFyZUZsb2F0
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3RDb21wYXJlRmxvYXRUb0RvdWJsZSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0RG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTZWxlY3REb3VibGVUZXN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3REb3VibGVD
b21wYXJlRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3REb3VibGVDb21wYXJl
RmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3RGb2xkKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTZWxlY3RJbnZlcnQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU2VsZWN0KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja1NlbGVjdENoZWNrU2VsZWN0KToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RDaGVja1NlbGVjdEFuZENTRSk6CisKIDIwMTktMDMtMjEgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBEbyBub3QgY3JlYXRlIEpJ
VCByZWxhdGVkIGRhdGEgdW5kZXIgbm9uLUpJVCBtb2RlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMjQzMzAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTg1MSw2ICs4NTEsNyBAQAogCQkyQUQ4OTMyQjE3RTM4NjhGMDA2NjgyNzYgLyogSGVhcEl0ZXJh
dGlvblNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQUQ4OTMyOTE3RTM4NjhGMDA2NjgyNzYgLyogSGVhcEl0ZXJhdGlvblNjb3BlLmggKi87IH07
CiAJCTJBRjczODJEMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQUY3MzgyQjE4QkJCRjky
MDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJEMzQyRjM2RjcyNDQwOTY4MDRBREIyNCAvKiBTb3Vy
Y2VPcmlnaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQyNUJBMTMzN0U0MzQ0RTFCMjY5QTY3MSAvKiBTb3VyY2VPcmlnaW4uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkzM0U3OERFMzIyNDQwQkQ1MDA0
QUVFOUYgLyogQjNTZWxlY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzNFNzhERTIyMjQ0MEJENTAwNEFFRTlGIC8qIEIzU2VsZWN0VmFsdWUu
aCAqLzsgfTsKIAkJMzcxRDg0MkQxN0M5OEI2RTAwRUNGOTk0IC8qIGxpYnouZHlsaWIgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzFEODQyQzE3Qzk4
QjZFMDBFQ0Y5OTQgLyogbGliei5keWxpYiAqLzsgfTsKIAkJMzdDNzM4RDIxRURCNTZFNDAwM0Yy
QjBCIC8qIFBhcnNlSW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzN0M3MzhEMTFFREI1NjcyMDAzRjJCMEIgLyogUGFyc2VJbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTI5NTI3NzFEMkNGNkJD
MDBFNzhCODkgLyogYnVpbHRpbnNfZ2VuZXJhdGVfaW50ZXJuYWxzX3dyYXBwZXJfaGVhZGVyLnB5
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOTUyNzMx
RDJDRjZBQzAwRTc4Qjg5IC8qIGJ1aWx0aW5zX2dlbmVyYXRlX2ludGVybmFsc193cmFwcGVyX2hl
YWRlci5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMzMzMyw2ICszMzM0LDggQEAKIAkJMkFGNzM4MkIxOEJCQkY5MjAwOEE1QTM3IC8qIFN0cnVj
dHVyZUlEVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RydWN0dXJl
SURUYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMDMyMTc1REYxQUQ0N0Q4
OTk4QjM0RTEgLyogSlNTb3VyY2VDb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTU291cmNlQ29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMEE1RjQw
M0YxMUM0RjU5OUNENTk2RDUgLyogV2FzbVNpZ25hdHVyZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbVNpZ25hdHVyZUlubGluZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzNFNzhERTIyMjQ0MEJENTAwNEFFRTlGIC8qIEIzU2VsZWN0VmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gQjNTZWxlY3RWYWx1ZS5oOyBwYXRoID0gYjMvQjNTZWxlY3RW
YWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzM0U3OERFNDIyNDQwREY1MDA0
QUVFOUYgLyogQjNTZWxlY3RWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM1NlbGVjdFZh
bHVlLmNwcDsgcGF0aCA9IGIzL0IzU2VsZWN0VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzNzExOUE3NzIwQ0NCNURDMDAyQzZEQzkgLyogV2ViS2l0VGFyZ2V0Q29uZGl0
aW9uYWxzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdlYktpdFRhcmdldENvbmRpdGlvbmFscy54
Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzcxRDg0MkMxN0M5OEI2RTAw
RUNGOTk0IC8qIGxpYnouZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYnouZHlsaWI7
IHBhdGggPSB1c3IvbGliL2xpYnouZHlsaWI7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQkz
N0M3MzhEMTFFREI1NjcyMDAzRjJCMEIgLyogUGFyc2VJbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGFyc2VJbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU0MTMsNiArNTQxNiw4IEBACiAJCQkJNDM0MjJBNjUxQzE2MjIxRTAwRTJFQjk4IC8qIEIzUmVk
dWNlRG91YmxlVG9GbG9hdC5oICovLAogCQkJCTBGRUM4NUI3MUJFMTQ2MkYwMDgwRkY3NCAvKiBC
M1JlZHVjZVN0cmVuZ3RoLmNwcCAqLywKIAkJCQkwRkVDODVCODFCRTE0NjJGMDA4MEZGNzQgLyog
QjNSZWR1Y2VTdHJlbmd0aC5oICovLAorCQkJCTMzRTc4REU0MjI0NDBERjUwMDRBRUU5RiAvKiBC
M1NlbGVjdFZhbHVlLmNwcCAqLywKKwkJCQkzM0U3OERFMjIyNDQwQkQ1MDA0QUVFOUYgLyogQjNT
ZWxlY3RWYWx1ZS5oICovLAogCQkJCTBGRUM4NEVBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Nsb3RC
YXNlVmFsdWUuY3BwICovLAogCQkJCTBGRUM4NEVCMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Nsb3RC
YXNlVmFsdWUuaCAqLywKIAkJCQkwRjJCQkQ5MTFDNUZGM0Y1MDAyM0VGMjMgLyogQjNTcGFyc2VD
b2xsZWN0aW9uLmggKi8sCkBAIC05MjE2LDYgKzkyMjEsNyBAQAogCQkJCUExNTg3RDc1MUI0REMx
QzYwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExNTg3RDcyMUI0REMxNDEwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNTg3RDc2MUI0REMxQzYwMEQ2OTg0
OSAvKiBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkzM0U3OERFMzIyNDQwQkQ1MDA0QUVFOUYgLyogQjNTZWxlY3RWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTFENzkyRkQxQjQzODY0QjAwNDUxNkY1IC8qIEludGxOdW1iZXJGb3JtYXQuaCBp
biBIZWFkZXJzICovLAogCQkJCUExRDc5MkZGMUI0Mzg2NEIwMDQ1MTZGNSAvKiBJbnRsTnVtYmVy
Rm9ybWF0Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMjU4NDZFMUI0NUEzNjAw
MENDN0Y2QyAvKiBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAq
LywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQJKHJldmlzaW9uIDI0MzMwMSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTUz
LDYgKzE1Myw3IEBACiBiMy9CM1B1cmVDU0UuY3BwCiBiMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQu
Y3BwCiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAorYjMvQjNTZWxlY3RWYWx1ZS5jcHAKIGIzL0Iz
U1NBQ2FsY3VsYXRvci5jcHAKIGIzL0IzU2xvdEJhc2VWYWx1ZS5jcHAKIGIzL0IzU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVk
dWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMjQzMzAxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSAiQjNQaGlDaGlsZHJlbi5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJl
SW5saW5lcy5oIgogI2luY2x1ZGUgIkIzUHVyZUNTRS5oIgorI2luY2x1ZGUgIkIzU2VsZWN0VmFs
dWUuaCIKICNpbmNsdWRlICJCM1Nsb3RCYXNlVmFsdWUuaCIKICNpbmNsdWRlICJCM1N0YWNrU2xv
dC5oIgogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCkBAIC0xNjI4LDIwICsxNjI5LDIxIEBA
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNlIFNlbGVj
dDoKKyAgICAgICAgY2FzZSBTZWxlY3Q6IHsKKyAgICAgICAgICAgIFNlbGVjdFZhbHVlKiB2YWx1
ZSA9IG1fdmFsdWUtPmFzPFNlbGVjdFZhbHVlPigpOwogICAgICAgICAgICAgLy8gVHVybiB0aGlz
OiBTZWxlY3QoY29uc3RhbnQsIGEsIGIpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IGNvbnN0
YW50ID8gYSA6IGIKLSAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+aGFzSW50MzIo
KSkgeworICAgICAgICAgICAgaWYgKHZhbHVlLT5jb25kKCktPmhhc0ludDMyKCkpIHsKICAgICAg
ICAgICAgICAgICByZXBsYWNlV2l0aElkZW50aXR5KAotICAgICAgICAgICAgICAgICAgICBtX3Zh
bHVlLT5jaGlsZCgwKS0+YXNJbnQzMigpID8gbV92YWx1ZS0+Y2hpbGQoMSkgOiBtX3ZhbHVlLT5j
aGlsZCgyKSk7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlLT5jb25kKCktPmFzSW50MzIoKSA/
IHZhbHVlLT5pZlRydWUoKSA6IHZhbHVlLT5pZkZhbHNlKCkpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IFNlbGVjdChF
cXVhbCh4LCAwKSwgYSwgYikKICAgICAgICAgICAgIC8vIEludG8gdGhpczogU2VsZWN0KHgsIGIs
IGEpCi0gICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEVxdWFs
ICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKLSAgICAgICAgICAg
ICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKLSAg
ICAgICAgICAgICAgICBzdGQ6OnN3YXAobV92YWx1ZS0+Y2hpbGQoMSksIG1fdmFsdWUtPmNoaWxk
KDIpKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZS0+Y29uZCgpLT5vcGNvZGUoKSA9PSBFcXVhbCAm
JiB2YWx1ZS0+Y29uZCgpLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKKyAgICAgICAgICAgICAgICB2
YWx1ZS0+Y29uZCgpID0gdmFsdWUtPmNvbmQoKS0+Y2hpbGQoMCk7CisgICAgICAgICAgICAgICAg
c3RkOjpzd2FwKHZhbHVlLT5pZlRydWUoKSwgdmFsdWUtPmlmRmFsc2UoKSk7CiAgICAgICAgICAg
ICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KQEAgLTE2NDgsMTEgKzE2NTAsMTEgQEAKIAogICAgICAgICAgICAgLy8gVHVybiB0aGlz
OiBTZWxlY3QoQml0WG9yKGJvb2wsIDEpLCBhLCBiKQogICAgICAgICAgICAgLy8gSW50byB0aGlz
OiBTZWxlY3QoYm9vbCwgYiwgYSkKLSAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+
b3Bjb2RlKCkgPT0gQml0WG9yCi0gICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCkt
PmNoaWxkKDEpLT5pc0ludDMyKDEpCi0gICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQo
MCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7Ci0gICAgICAgICAgICAgICAgbV92YWx1ZS0+
Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7Ci0gICAgICAgICAgICAgICAg
c3RkOjpzd2FwKG1fdmFsdWUtPmNoaWxkKDEpLCBtX3ZhbHVlLT5jaGlsZCgyKSk7CisgICAgICAg
ICAgICBpZiAodmFsdWUtPmNvbmQoKS0+b3Bjb2RlKCkgPT0gQml0WG9yCisgICAgICAgICAgICAg
ICAgJiYgdmFsdWUtPmNvbmQoKS0+Y2hpbGQoMSktPmlzSW50MzIoMSkKKyAgICAgICAgICAgICAg
ICAmJiB2YWx1ZS0+Y29uZCgpLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgeworICAgICAgICAg
ICAgICAgIHZhbHVlLT5jb25kKCkgPSB2YWx1ZS0+Y29uZCgpLT5jaGlsZCgwKTsKKyAgICAgICAg
ICAgICAgICBzdGQ6OnN3YXAodmFsdWUtPmlmVHJ1ZSgpLCB2YWx1ZS0+aWZGYWxzZSgpKTsKICAg
ICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQpAQCAtMTY1OSwxMSArMTY2MSwxMSBAQAogCiAgICAgICAgICAgICAvLyBU
dXJuIHRoaXM6IFNlbGVjdChCaXRBbmQoYm9vbCwgeHl6MSksIGEsIGIpCiAgICAgICAgICAgICAv
LyBJbnRvIHRoaXM6IFNlbGVjdChib29sLCBhLCBiKQotICAgICAgICAgICAgaWYgKG1fdmFsdWUt
PmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRBbmQKLSAgICAgICAgICAgICAgICAmJiBtX3ZhbHVl
LT5jaGlsZCgwKS0+Y2hpbGQoMSktPmhhc0ludCgpCi0gICAgICAgICAgICAgICAgJiYgbV92YWx1
ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5hc0ludCgpICYgMQotICAgICAgICAgICAgICAgICYmIG1f
dmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgewotICAgICAgICAgICAg
ICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOworICAg
ICAgICAgICAgaWYgKHZhbHVlLT5jb25kKCktPm9wY29kZSgpID09IEJpdEFuZAorICAgICAgICAg
ICAgICAgICYmIHZhbHVlLT5jb25kKCktPmNoaWxkKDEpLT5oYXNJbnQoKQorICAgICAgICAgICAg
ICAgICYmIHZhbHVlLT5jb25kKCktPmNoaWxkKDEpLT5hc0ludCgpICYgMQorICAgICAgICAgICAg
ICAgICYmIHZhbHVlLT5jb25kKCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7CisgICAgICAg
ICAgICAgICAgdmFsdWUtPmNvbmQoKSA9IHZhbHVlLT5jb25kKCktPmNoaWxkKDApOwogICAgICAg
ICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9CkBAIC0xNjcwLDExICsxNjcyLDEyIEBACiAKICAgICAgICAgICAgIC8vIFR1cm4g
dGhpczogU2VsZWN0KHN0dWZmLCB4LCB4KQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiB4Ci0g
ICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMSkgPT0gbV92YWx1ZS0+Y2hpbGQoMikpIHsK
LSAgICAgICAgICAgICAgICByZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDEpKTsK
KyAgICAgICAgICAgIGlmICh2YWx1ZS0+aWZUcnVlKCkgPT0gdmFsdWUtPmlmRmFsc2UoKSkgewor
ICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoSWRlbnRpdHkodmFsdWUtPmlmVHJ1ZSgpKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CiAKICAgICAgICAgY2FzZSBMb2FkOFo6CiAgICAgICAgIGNhc2UgTG9hZDhTOgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU2VsZWN0VmFsdWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1NlbGVjdFZhbHVlLmNwcAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTZWxlY3RWYWx1ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCM1NlbGVj
dFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsKKworU2VsZWN0VmFsdWU6On5TZWxlY3RWYWx1ZSgpCit7Cit9CisKK1ZhbHVlKiBT
ZWxlY3RWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbmV3IFNlbGVjdFZh
bHVlKCp0aGlzKTsKK30KKyAgICAKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisjZW5kaWYg
Ly8gRU5BQkxFKEIzX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU2Vs
ZWN0VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTZWxl
Y3RWYWx1ZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Nl
bGVjdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzVmFsdWUuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7CisKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIFNlbGVjdFZhbHVlIDogcHVi
bGljIFZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkg
eyByZXR1cm4ga2luZCA9PSBTZWxlY3Q7IH0KKworICAgIH5TZWxlY3RWYWx1ZSgpOworICAgIAor
ICAgIFZhbHVlKiBjb25kKCkgY29uc3QgeyByZXR1cm4gY2hpbGQoMCk7IH0KKyAgICBWYWx1ZSom
IGNvbmQoKSB7IHJldHVybiBjaGlsZCgwKTsgfQorICAgIFZhbHVlKiBpZlRydWUoKSBjb25zdCB7
IHJldHVybiBjaGlsZCgxKTsgfQorICAgIFZhbHVlKiYgaWZUcnVlKCkgeyByZXR1cm4gY2hpbGQo
MSk7IH0KKyAgICBWYWx1ZSogaWZGYWxzZSgpIGNvbnN0IHsgcmV0dXJuIGNoaWxkKDIpOyB9Cisg
ICAgVmFsdWUqJiBpZkZhbHNlKCkgeyByZXR1cm4gY2hpbGQoMik7IH0KKworcHJvdGVjdGVkOgor
ICAgIFZhbHVlKiBjbG9uZUltcGwoKSBjb25zdCBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBm
cmllbmQgY2xhc3MgUHJvY2VkdXJlOworCisgICAgU2VsZWN0VmFsdWUoT3JpZ2luIG9yaWdpbiwg
VmFsdWUqIGNvbmQsIFZhbHVlKiBpZlRydWUsIFZhbHVlKiBpZkZhbHNlKQorICAgICAgICA6IFZh
bHVlKENoZWNrZWRPcGNvZGUsIFNlbGVjdCwgaWZUcnVlLT50eXBlKCksIG9yaWdpbiwgY29uZCwg
aWZUcnVlLCBpZkZhbHNlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGNvbmQtPmlzSW50ZWdlcigp
KTsKKyAgICB9Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVO
QUJMRShCM19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCShyZXZp
c2lvbiAyNDMzMDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTgyNCw3ICs4MjQsNyBAQAogewogfQogCi1UeXBlIFZhbHVlOjp0eXBl
Rm9yKEtpbmQga2luZCwgVmFsdWUqIGZpcnN0Q2hpbGQsIFZhbHVlKiBzZWNvbmRDaGlsZCkKK1R5
cGUgVmFsdWU6OnR5cGVGb3IoS2luZCBraW5kLCBWYWx1ZSogZmlyc3RDaGlsZCkKIHsKICAgICBz
d2l0Y2ggKGtpbmQub3Bjb2RlKCkpIHsKICAgICBjYXNlIElkZW50aXR5OgpAQCAtOTA0LDkgKzkw
NCw2IEBACiAgICAgY2FzZSBFbnRyeVN3aXRjaDoKICAgICBjYXNlIFdhc21Cb3VuZHNDaGVjazoK
ICAgICAgICAgcmV0dXJuIFZvaWQ7Ci0gICAgY2FzZSBTZWxlY3Q6Ci0gICAgICAgIEFTU0VSVChz
ZWNvbmRDaGlsZCk7Ci0gICAgICAgIHJldHVybiBzZWNvbmRDaGlsZC0+dHlwZSgpOwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCShyZXZpc2lvbiAyNDMzMDEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zODEsMTAg
KzM4MSw2IEBACiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkobnVtQXJncyAhPSAyKSkKICAgICAg
ICAgICAgICAgICBiYWRLaW5kKGtpbmQsIG51bUFyZ3MpOwogICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgU2VsZWN0OgotICAgICAgICAgICAgaWYgKFVOTElLRUxZKG51bUFyZ3MgIT0g
MykpCi0gICAgICAgICAgICAgICAgYmFkS2luZChraW5kLCBudW1BcmdzKTsKLSAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgYmFkS2luZChraW5kLCBudW1B
cmdzKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDE2LDIyICs0MTIsMTMgQEAKICAgICB9CiAg
ICAgLy8gVGhpcyBmb3JtIGlzIGZvciB0aG9zZSBvcGNvZGVzIHRoYXQgY2FuIGluZmVyIHRoZWly
IHR5cGUgZnJvbSB0aGUgb3Bjb2RlIGFuZCBmaXJzdCBjaGlsZDoKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgZXhwbGljaXQgVmFsdWUoQ2hlY2tlZE9wY29kZVRhZywg
S2luZCBraW5kLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogZmlyc3RDaGlsZCkKKyAgICBleHBsaWNp
dCBWYWx1ZShDaGVja2VkT3Bjb2RlVGFnLCBLaW5kIGtpbmQsIE9yaWdpbiBvcmlnaW4sIFZhbHVl
KiBmaXJzdENoaWxkLCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQogICAgICAgICA6IG1fa2luZChr
aW5kKQogICAgICAgICAsIG1fdHlwZSh0eXBlRm9yKGtpbmQsIGZpcnN0Q2hpbGQpKQogICAgICAg
ICAsIG1fb3JpZ2luKG9yaWdpbikKLSAgICAgICAgLCBtX2NoaWxkcmVueyBmaXJzdENoaWxkIH0K
KyAgICAgICAgLCBtX2NoaWxkcmVueyBmaXJzdENoaWxkLCBhcmd1bWVudHMuLi4gfQogICAgIHsK
ICAgICB9Ci0gICAgLy8gVGhpcyBmb3JtIGlzIGZvciB0aG9zZSBvcGNvZGVzIHRoYXQgY2FuIGlu
ZmVyIHRoZWlyIHR5cGUgZnJvbSB0aGUgb3Bjb2RlIGFuZCBmaXJzdCBhbmQgc2Vjb25kIGNoaWxk
OgotICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBleHBsaWNpdCBWYWx1
ZShDaGVja2VkT3Bjb2RlVGFnLCBLaW5kIGtpbmQsIE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBmaXJz
dENoaWxkLCBWYWx1ZSogc2Vjb25kQ2hpbGQsIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMpCi0gICAg
ICAgIDogbV9raW5kKGtpbmQpCi0gICAgICAgICwgbV90eXBlKHR5cGVGb3Ioa2luZCwgZmlyc3RD
aGlsZCwgc2Vjb25kQ2hpbGQpKQotICAgICAgICAsIG1fb3JpZ2luKG9yaWdpbikKLSAgICAgICAg
LCBtX2NoaWxkcmVueyBmaXJzdENoaWxkLCBzZWNvbmRDaGlsZCwgYXJndW1lbnRzLi4uIH0KLSAg
ICB7Ci0gICAgfQogICAgIC8vIFRoaXMgZm9ybSBpcyBmb3IgdGhvc2Ugb3Bjb2RlcyB0aGF0IGNh
biBpbmZlciB0aGVpciB0eXBlIGZyb20gdGhlIG9wY29kZSBhbG9uZSwgYW5kIHRoYXQgZG9uJ3QK
ICAgICAvLyB0YWtlIGFueSBhcmd1bWVudHM6CiAgICAgZXhwbGljaXQgVmFsdWUoQ2hlY2tlZE9w
Y29kZVRhZywgS2luZCBraW5kLCBPcmlnaW4gb3JpZ2luKQpAQCAtNDkyLDcgKzQ3OSw3IEBACiBw
cml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBDaGVja1ZhbHVlOyAvLyBDaGVja1ZhbHVlOjpjb252
ZXJ0VG9BZGQoKSBtb2RpZmllcyBtX2tpbmQuCiAgICAgCi0gICAgc3RhdGljIFR5cGUgdHlwZUZv
cihLaW5kLCBWYWx1ZSogZmlyc3RDaGlsZCwgVmFsdWUqIHNlY29uZENoaWxkID0gbnVsbHB0cik7
CisgICAgc3RhdGljIFR5cGUgdHlwZUZvcihLaW5kLCBWYWx1ZSogZmlyc3RDaGlsZCk7CiAKICAg
ICAvLyBUaGlzIGdyb3VwIG9mIGZpZWxkcyBpcyBhcnJhbmdlZCB0byBmaXQgaW4gNjQgYml0cy4K
IHByb3RlY3RlZDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCShyZXZpc2lv
biAyNDMzMDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIkIzTmF0aXZlVHJhaXRzLmgiCiAj
aW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1JlZHVjZVN0cmVuZ3RoLmgiCisj
aW5jbHVkZSAiQjNTZWxlY3RWYWx1ZS5oIgogI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgog
I2luY2x1ZGUgIkIzU3RhY2tTbG90LmgiCiAjaW5jbHVkZSAiQjNTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXMuaCIKQEAgLTI3MjksNyArMjczMCw3IEBACiAgICAgVmFsdWUqIGludmVydGVkID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRYb3IsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMHgxKSwKICAgICAgICAg
bWFza2VkRXF1YWwpOwotICAgIFZhbHVlKiBzZWxlY3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFNlbGVjdCwgT3JpZ2luKCksIGludmVydGVkLAorICAgIFZhbHVlKiBzZWxlY3QgPSBy
b290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBpbnZlcnRlZCwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC01
KSk7CiAKQEAgLTExODAxLDggKzExODAyLDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
LSAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxTZWxlY3RWYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCkBAIC0xMTgyMyw4ICsxMTgyMyw3IEBACiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCi0gICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdp
bigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjEpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKSk7CkBAIC0xMTg0Miw4ICsxMTg0MSw3
IEBACiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCi0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICBwcm9jLCBTZWxlY3Qs
IE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9y
aWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
ICAgICBwcm9jLCBMZXNzVGhhbiwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVu
dEZQUjApLApAQCAtMTE4NzMsOCArMTE4NzEsNyBAQAogCiAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAotICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
b3Bjb2RlLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICBmbG9hdFZhbHVlMSwKQEAgLTExOTEx
LDggKzExOTA4LDcgQEAKIAogICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKLSAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxTZWxlY3RWYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgT3JpZ2luKCks
CiAgICAgICAgICAgICAgICAgZG91YmxlVmFsdWUxLApAQCAtMTE5MzksOCArMTE5MzUsNyBAQAog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAotICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmln
aW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAg
cHJvYywgRXF1YWwsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwK
QEAgLTExOTYxLDggKzExOTU2LDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAg
ICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxT
ZWxlY3RWYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MSkpKTsKQEAgLTExOTgwLDggKzExOTc0LDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
LSAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxTZWxlY3RWYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIExlc3NUaGFuLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCksCkBAIC0xMjAxMCw4ICsxMjAwMyw3IEBA
CiAKICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAg
ICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0
VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgICAgICBwcm9jLCBMZXNzVGhhbiwgT3JpZ2luKCksCiAgICAgICAgICAg
ICAgICAgZmxvYXRWYWx1ZTEsCkBAIC0xMjA0MSw4ICsxMjAzMyw3IEBACiAKICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCi0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICBwcm9jLCBTZWxlY3Qs
IE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9y
aWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
ICAgICBwcm9jLCBMZXNzVGhhbiwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgZmxvYXRWYWx1
ZTEsCkBAIC0xMjA2Nyw4ICsxMjA1OCw4IEBACiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKLSAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0
LCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4oCisg
ICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCBPcmlnaW4o
KSwKICAgICAgICAgICAgICAgICAgICAgYXJnMCwKQEAgLTEyMDkyLDcgKzEyMDgzLDcgQEAKICAg
ICAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMik7CiAgICAgICAgIFZhbHVlKiBhcmcz
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJ
bmZvOjphcmd1bWVudEZQUjMpOwogCi0gICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBhcmcw
LCBhcmcxKSwKICAgICAgICAgICAgIGFyZzIsCiAgICAgICAgICAgICBhcmczKTsKQEAgLTEyMTE5
LDcgKzEyMTEwLDcgQEAKICAgICAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMik7CiAg
ICAgICAgIFZhbHVlKiBhcmczID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjMpOwogCi0gICAgICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisg
ICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNv
ZGUsIE9yaWdpbigpLCBhcmcwLCBhcmcxKSwKICAgICAgICAgICAgIGFyZzIsCiAgICAgICAgICAg
ICBhcmczKTsKQEAgLTEyMTQ2LDcgKzEyMTM3LDcgQEAKICAgICAgICAgVmFsdWUqIGFyZzIgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86
OmFyZ3VtZW50RlBSMik7CiAgICAgICAgIFZhbHVlKiBhcmczID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjMpOwog
Ci0gICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNl
bGVjdCwgT3JpZ2luKCksCisgICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBhcmcwLCBhcmcxKSwKICAgICAgICAgICAg
IGFyZzIsCiAgICAgICAgICAgICBhcmczKTsKQEAgLTEyMTc1LDggKzEyMTY2LDggQEAKIAogICAg
ICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAotICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAg
ICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFNlbGVjdFZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgICAg
ICBwcm9jLCBvcGNvZGUsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgICAgICBhcmcwLApAQCAt
MTIxOTksNyArMTIxOTAsNyBAQAogICAgICAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIx
KTsKICAgICAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMik7CiAKLSAgICAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU2VsZWN0LCBPcmlnaW4o
KSwKKyAgICAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4o
cHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IG9wY29kZSwgT3JpZ2luKCksIGFyZzAsIGFyZzEpLAogICAgICAgICAgICAgYXJnMiwKICAgICAg
ICAgICAgIGFyZzApOwpAQCAtMTIyNTMsOCArMTIyNDQsOCBAQAogCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
Ci0gICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgIHBy
b2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0
VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIHByb2MsIG9wY29k
ZSwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgICAgIGFyZzAsCkBAIC0xMjI4Niw3ICsxMjI3
Nyw3IEBACiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMykpKTsKIAotICAgICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTZWxlY3QsIE9yaWdp
bigpLAorICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
Yywgb3Bjb2RlLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSksCiAgICAgICAgICAgICBhcmcyLAogICAg
ICAgICAgICAgYXJnMyk7CkBAIC0xMjMyMSw3ICsxMjMxMiw3IEBACiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMykpKTsKIAotICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwgYXJn
MCwgYXJnMSksCiAgICAgICAgICAgICBhcmcyLAogICAgICAgICAgICAgYXJnMyk7CkBAIC0xMjM1
Niw3ICsxMjM0Nyw3IEBACiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMykpKTsKIAot
ICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTZWxl
Y3QsIE9yaWdpbigpLAorICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFNl
bGVjdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSksCiAgICAgICAgICAgICBh
cmcyLAogICAgICAgICAgICAgYXJnMyk7CkBAIC0xMjM5MSw4ICsxMjM4Miw4IEBACiAKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKLSAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAg
ICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxTZWxlY3RWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksCiAgICAg
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICAgICAg
cHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICAgICAgYXJnMCwKQEAgLTEy
NDIxLDcgKzEyNDEyLDcgQEAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSkpOwog
Ci0gICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNl
bGVjdCwgT3JpZ2luKCksCisgICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBhcmcwLCBhcmcxKSwKICAgICAgICAgICAg
IGFyZzIsCiAgICAgICAgICAgICBhcmcwKTsKQEAgLTEyNDU5LDggKzEyNDUwLDcgQEAKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCks
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2Ms
IEVxdWFsLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQ
dHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwKQEAgLTEyNDc5LDggKzEyNDY5LDcgQEAK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKLSAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3Jp
Z2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAg
IHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KApAQCAtMTI1MDksOCArMTI0OTgsOCBAQAogICAgICAgICBwcm9jLCBDaGVjaywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBBZGQsIE9yaWdpbigpLAotICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAg
ICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFNlbGVjdFZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAg
ICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KApAQCAtMTI1NTMsOCArMTI1NDIsOCBAQAogICAgICAgICBwcm9jLCBD
aGVjaywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLAotICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKLSAgICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBP
cmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KApAQCAtMTI1ODEsOCArMTI1NzAsOCBAQAogICAgICAg
ICBwcm9jLCBDaGVjaywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLAotICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAor
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVlPigKKyAgICAgICAgICAgICAg
ICBwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KApAQCAtMTI2MjQsOCArMTI2MTMsOCBA
QAogICAgICAgICByZXR1cm47CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKIAotICAgIGF1dG8qIHNlbGVjdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAg
ICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKKyAgICBhdXRvKiBzZWxlY3RWYWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4oCisgICAgICAgIHByb2MsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365611</attachid>
            <date>2019-03-21 13:56:43 -0700</date>
            <delta_ts>2019-03-21 13:56:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch196105</filename>
            <type>text/plain</type>
            <size>31147</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQzMzIyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDE5LTAzLTIxICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAg
ICAgICAgTWFrZSBhIFNlbGVjdFZhbHVlIHN1YmNsYXNzIG9mIEIzOjpWYWx1ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MTA1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9zdGx5IHVzZWZ1bCBmb3Ig
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjA5MQorICAgICAgICBJ
dCBhbHNvIGFsbG93cyB1cyB0byBnaXZlIG5hbWVzIHRvIHRoZSBjaGlsZHJlbiAoY29uZC9pZlRy
dWUvaWZGYWxzZSkuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIGIzL0IzUmVkdWNl
U3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpC
Mzo6VmFsdWU6OnR5cGVGb3IpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBi
My90ZXN0YjMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZFdpdGhNYXNrUmV0dXJu
c0Jvb2xlYW5zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCYXNpY1NlbGVjdCk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0U2VsZWN0VGVzdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0
Q29tcGFyZURvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0Q29tcGFyZUZsb2F0
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3RDb21wYXJlRmxvYXRUb0RvdWJsZSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0RG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTZWxlY3REb3VibGVUZXN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3REb3VibGVD
b21wYXJlRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3REb3VibGVDb21wYXJl
RmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3RGb2xkKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTZWxlY3RJbnZlcnQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU2VsZWN0KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja1NlbGVjdENoZWNrU2VsZWN0KToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RDaGVja1NlbGVjdEFuZENTRSk6CisKIDIwMTktMDMtMjEgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBEbyBub3QgY3JlYXRlIEpJ
VCByZWxhdGVkIGRhdGEgdW5kZXIgbm9uLUpJVCBtb2RlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMjQzMzAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTg1MSw2ICs4NTEsNyBAQAogCQkyQUQ4OTMyQjE3RTM4NjhGMDA2NjgyNzYgLyogSGVhcEl0ZXJh
dGlvblNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQUQ4OTMyOTE3RTM4NjhGMDA2NjgyNzYgLyogSGVhcEl0ZXJhdGlvblNjb3BlLmggKi87IH07
CiAJCTJBRjczODJEMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQUY3MzgyQjE4QkJCRjky
MDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJEMzQyRjM2RjcyNDQwOTY4MDRBREIyNCAvKiBTb3Vy
Y2VPcmlnaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQyNUJBMTMzN0U0MzQ0RTFCMjY5QTY3MSAvKiBTb3VyY2VPcmlnaW4uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkzM0U3OERFMzIyNDQwQkQ1MDA0
QUVFOUYgLyogQjNTZWxlY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzNFNzhERTIyMjQ0MEJENTAwNEFFRTlGIC8qIEIzU2VsZWN0VmFsdWUu
aCAqLzsgfTsKIAkJMzcxRDg0MkQxN0M5OEI2RTAwRUNGOTk0IC8qIGxpYnouZHlsaWIgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzFEODQyQzE3Qzk4
QjZFMDBFQ0Y5OTQgLyogbGliei5keWxpYiAqLzsgfTsKIAkJMzdDNzM4RDIxRURCNTZFNDAwM0Yy
QjBCIC8qIFBhcnNlSW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzN0M3MzhEMTFFREI1NjcyMDAzRjJCMEIgLyogUGFyc2VJbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTI5NTI3NzFEMkNGNkJD
MDBFNzhCODkgLyogYnVpbHRpbnNfZ2VuZXJhdGVfaW50ZXJuYWxzX3dyYXBwZXJfaGVhZGVyLnB5
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOTUyNzMx
RDJDRjZBQzAwRTc4Qjg5IC8qIGJ1aWx0aW5zX2dlbmVyYXRlX2ludGVybmFsc193cmFwcGVyX2hl
YWRlci5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMzMzMyw2ICszMzM0LDggQEAKIAkJMkFGNzM4MkIxOEJCQkY5MjAwOEE1QTM3IC8qIFN0cnVj
dHVyZUlEVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RydWN0dXJl
SURUYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMDMyMTc1REYxQUQ0N0Q4
OTk4QjM0RTEgLyogSlNTb3VyY2VDb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTU291cmNlQ29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMEE1RjQw
M0YxMUM0RjU5OUNENTk2RDUgLyogV2FzbVNpZ25hdHVyZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbVNpZ25hdHVyZUlubGluZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzNFNzhERTIyMjQ0MEJENTAwNEFFRTlGIC8qIEIzU2VsZWN0VmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gQjNTZWxlY3RWYWx1ZS5oOyBwYXRoID0gYjMvQjNTZWxlY3RW
YWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzM0U3OERFNDIyNDQwREY1MDA0
QUVFOUYgLyogQjNTZWxlY3RWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM1NlbGVjdFZh
bHVlLmNwcDsgcGF0aCA9IGIzL0IzU2VsZWN0VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzNzExOUE3NzIwQ0NCNURDMDAyQzZEQzkgLyogV2ViS2l0VGFyZ2V0Q29uZGl0
aW9uYWxzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdlYktpdFRhcmdldENvbmRpdGlvbmFscy54
Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzcxRDg0MkMxN0M5OEI2RTAw
RUNGOTk0IC8qIGxpYnouZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYnouZHlsaWI7
IHBhdGggPSB1c3IvbGliL2xpYnouZHlsaWI7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQkz
N0M3MzhEMTFFREI1NjcyMDAzRjJCMEIgLyogUGFyc2VJbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGFyc2VJbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU0MTMsNiArNTQxNiw4IEBACiAJCQkJNDM0MjJBNjUxQzE2MjIxRTAwRTJFQjk4IC8qIEIzUmVk
dWNlRG91YmxlVG9GbG9hdC5oICovLAogCQkJCTBGRUM4NUI3MUJFMTQ2MkYwMDgwRkY3NCAvKiBC
M1JlZHVjZVN0cmVuZ3RoLmNwcCAqLywKIAkJCQkwRkVDODVCODFCRTE0NjJGMDA4MEZGNzQgLyog
QjNSZWR1Y2VTdHJlbmd0aC5oICovLAorCQkJCTMzRTc4REU0MjI0NDBERjUwMDRBRUU5RiAvKiBC
M1NlbGVjdFZhbHVlLmNwcCAqLywKKwkJCQkzM0U3OERFMjIyNDQwQkQ1MDA0QUVFOUYgLyogQjNT
ZWxlY3RWYWx1ZS5oICovLAogCQkJCTBGRUM4NEVBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Nsb3RC
YXNlVmFsdWUuY3BwICovLAogCQkJCTBGRUM4NEVCMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Nsb3RC
YXNlVmFsdWUuaCAqLywKIAkJCQkwRjJCQkQ5MTFDNUZGM0Y1MDAyM0VGMjMgLyogQjNTcGFyc2VD
b2xsZWN0aW9uLmggKi8sCkBAIC05MjE2LDYgKzkyMjEsNyBAQAogCQkJCUExNTg3RDc1MUI0REMx
QzYwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExNTg3RDcyMUI0REMxNDEwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNTg3RDc2MUI0REMxQzYwMEQ2OTg0
OSAvKiBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkzM0U3OERFMzIyNDQwQkQ1MDA0QUVFOUYgLyogQjNTZWxlY3RWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTFENzkyRkQxQjQzODY0QjAwNDUxNkY1IC8qIEludGxOdW1iZXJGb3JtYXQuaCBp
biBIZWFkZXJzICovLAogCQkJCUExRDc5MkZGMUI0Mzg2NEIwMDQ1MTZGNSAvKiBJbnRsTnVtYmVy
Rm9ybWF0Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMjU4NDZFMUI0NUEzNjAw
MENDN0Y2QyAvKiBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAq
LywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQJKHJldmlzaW9uIDI0MzMwMSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTUz
LDYgKzE1Myw3IEBACiBiMy9CM1B1cmVDU0UuY3BwCiBiMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQu
Y3BwCiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAorYjMvQjNTZWxlY3RWYWx1ZS5jcHAKIGIzL0Iz
U1NBQ2FsY3VsYXRvci5jcHAKIGIzL0IzU2xvdEJhc2VWYWx1ZS5jcHAKIGIzL0IzU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVk
dWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMjQzMzAxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSAiQjNQaGlDaGlsZHJlbi5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJl
SW5saW5lcy5oIgogI2luY2x1ZGUgIkIzUHVyZUNTRS5oIgorI2luY2x1ZGUgIkIzU2VsZWN0VmFs
dWUuaCIKICNpbmNsdWRlICJCM1Nsb3RCYXNlVmFsdWUuaCIKICNpbmNsdWRlICJCM1N0YWNrU2xv
dC5oIgogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCkBAIC0xNjI4LDIwICsxNjI5LDIxIEBA
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNlIFNlbGVj
dDoKKyAgICAgICAgY2FzZSBTZWxlY3Q6IHsKKyAgICAgICAgICAgIFNlbGVjdFZhbHVlKiB2YWx1
ZSA9IG1fdmFsdWUtPmFzPFNlbGVjdFZhbHVlPigpOwogICAgICAgICAgICAgLy8gVHVybiB0aGlz
OiBTZWxlY3QoY29uc3RhbnQsIGEsIGIpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IGNvbnN0
YW50ID8gYSA6IGIKLSAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+aGFzSW50MzIo
KSkgeworICAgICAgICAgICAgaWYgKHZhbHVlLT5jb25kKCktPmhhc0ludDMyKCkpIHsKICAgICAg
ICAgICAgICAgICByZXBsYWNlV2l0aElkZW50aXR5KAotICAgICAgICAgICAgICAgICAgICBtX3Zh
bHVlLT5jaGlsZCgwKS0+YXNJbnQzMigpID8gbV92YWx1ZS0+Y2hpbGQoMSkgOiBtX3ZhbHVlLT5j
aGlsZCgyKSk7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlLT5jb25kKCktPmFzSW50MzIoKSA/
IHZhbHVlLT5pZlRydWUoKSA6IHZhbHVlLT5pZkZhbHNlKCkpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IFNlbGVjdChF
cXVhbCh4LCAwKSwgYSwgYikKICAgICAgICAgICAgIC8vIEludG8gdGhpczogU2VsZWN0KHgsIGIs
IGEpCi0gICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEVxdWFs
ICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKLSAgICAgICAgICAg
ICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKLSAg
ICAgICAgICAgICAgICBzdGQ6OnN3YXAobV92YWx1ZS0+Y2hpbGQoMSksIG1fdmFsdWUtPmNoaWxk
KDIpKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZS0+Y29uZCgpLT5vcGNvZGUoKSA9PSBFcXVhbCAm
JiB2YWx1ZS0+Y29uZCgpLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKKyAgICAgICAgICAgICAgICB2
YWx1ZS0+Y29uZCgpID0gdmFsdWUtPmNvbmQoKS0+Y2hpbGQoMCk7CisgICAgICAgICAgICAgICAg
c3RkOjpzd2FwKHZhbHVlLT5pZlRydWUoKSwgdmFsdWUtPmlmRmFsc2UoKSk7CiAgICAgICAgICAg
ICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KQEAgLTE2NDgsMTEgKzE2NTAsMTEgQEAKIAogICAgICAgICAgICAgLy8gVHVybiB0aGlz
OiBTZWxlY3QoQml0WG9yKGJvb2wsIDEpLCBhLCBiKQogICAgICAgICAgICAgLy8gSW50byB0aGlz
OiBTZWxlY3QoYm9vbCwgYiwgYSkKLSAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+
b3Bjb2RlKCkgPT0gQml0WG9yCi0gICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCkt
PmNoaWxkKDEpLT5pc0ludDMyKDEpCi0gICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQo
MCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7Ci0gICAgICAgICAgICAgICAgbV92YWx1ZS0+
Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7Ci0gICAgICAgICAgICAgICAg
c3RkOjpzd2FwKG1fdmFsdWUtPmNoaWxkKDEpLCBtX3ZhbHVlLT5jaGlsZCgyKSk7CisgICAgICAg
ICAgICBpZiAodmFsdWUtPmNvbmQoKS0+b3Bjb2RlKCkgPT0gQml0WG9yCisgICAgICAgICAgICAg
ICAgJiYgdmFsdWUtPmNvbmQoKS0+Y2hpbGQoMSktPmlzSW50MzIoMSkKKyAgICAgICAgICAgICAg
ICAmJiB2YWx1ZS0+Y29uZCgpLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgeworICAgICAgICAg
ICAgICAgIHZhbHVlLT5jb25kKCkgPSB2YWx1ZS0+Y29uZCgpLT5jaGlsZCgwKTsKKyAgICAgICAg
ICAgICAgICBzdGQ6OnN3YXAodmFsdWUtPmlmVHJ1ZSgpLCB2YWx1ZS0+aWZGYWxzZSgpKTsKICAg
ICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQpAQCAtMTY1OSwxMSArMTY2MSwxMSBAQAogCiAgICAgICAgICAgICAvLyBU
dXJuIHRoaXM6IFNlbGVjdChCaXRBbmQoYm9vbCwgeHl6MSksIGEsIGIpCiAgICAgICAgICAgICAv
LyBJbnRvIHRoaXM6IFNlbGVjdChib29sLCBhLCBiKQotICAgICAgICAgICAgaWYgKG1fdmFsdWUt
PmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRBbmQKLSAgICAgICAgICAgICAgICAmJiBtX3ZhbHVl
LT5jaGlsZCgwKS0+Y2hpbGQoMSktPmhhc0ludCgpCi0gICAgICAgICAgICAgICAgJiYgbV92YWx1
ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5hc0ludCgpICYgMQotICAgICAgICAgICAgICAgICYmIG1f
dmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgewotICAgICAgICAgICAg
ICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOworICAg
ICAgICAgICAgaWYgKHZhbHVlLT5jb25kKCktPm9wY29kZSgpID09IEJpdEFuZAorICAgICAgICAg
ICAgICAgICYmIHZhbHVlLT5jb25kKCktPmNoaWxkKDEpLT5oYXNJbnQoKQorICAgICAgICAgICAg
ICAgICYmIHZhbHVlLT5jb25kKCktPmNoaWxkKDEpLT5hc0ludCgpICYgMQorICAgICAgICAgICAg
ICAgICYmIHZhbHVlLT5jb25kKCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7CisgICAgICAg
ICAgICAgICAgdmFsdWUtPmNvbmQoKSA9IHZhbHVlLT5jb25kKCktPmNoaWxkKDApOwogICAgICAg
ICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9CkBAIC0xNjcwLDExICsxNjcyLDEyIEBACiAKICAgICAgICAgICAgIC8vIFR1cm4g
dGhpczogU2VsZWN0KHN0dWZmLCB4LCB4KQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiB4Ci0g
ICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMSkgPT0gbV92YWx1ZS0+Y2hpbGQoMikpIHsK
LSAgICAgICAgICAgICAgICByZXBsYWNlV2l0aElkZW50aXR5KG1fdmFsdWUtPmNoaWxkKDEpKTsK
KyAgICAgICAgICAgIGlmICh2YWx1ZS0+aWZUcnVlKCkgPT0gdmFsdWUtPmlmRmFsc2UoKSkgewor
ICAgICAgICAgICAgICAgIHJlcGxhY2VXaXRoSWRlbnRpdHkodmFsdWUtPmlmVHJ1ZSgpKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CiAKICAgICAgICAgY2FzZSBMb2FkOFo6CiAgICAgICAgIGNhc2UgTG9hZDhTOgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU2VsZWN0VmFsdWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1NlbGVjdFZhbHVlLmNwcAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTZWxlY3RWYWx1ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCM1NlbGVj
dFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsKKworU2VsZWN0VmFsdWU6On5TZWxlY3RWYWx1ZSgpCit7Cit9CisKK1ZhbHVlKiBT
ZWxlY3RWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbmV3IFNlbGVjdFZh
bHVlKCp0aGlzKTsKK30KKyAgICAKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisjZW5kaWYg
Ly8gRU5BQkxFKEIzX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU2Vs
ZWN0VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTZWxl
Y3RWYWx1ZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Nl
bGVjdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzVmFsdWUuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7CisKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIFNlbGVjdFZhbHVlIDogcHVi
bGljIFZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkg
eyByZXR1cm4ga2luZCA9PSBTZWxlY3Q7IH0KKworICAgIH5TZWxlY3RWYWx1ZSgpOworICAgIAor
ICAgIFZhbHVlKiBjb25kKCkgY29uc3QgeyByZXR1cm4gY2hpbGQoMCk7IH0KKyAgICBWYWx1ZSom
IGNvbmQoKSB7IHJldHVybiBjaGlsZCgwKTsgfQorICAgIFZhbHVlKiBpZlRydWUoKSBjb25zdCB7
IHJldHVybiBjaGlsZCgxKTsgfQorICAgIFZhbHVlKiYgaWZUcnVlKCkgeyByZXR1cm4gY2hpbGQo
MSk7IH0KKyAgICBWYWx1ZSogaWZGYWxzZSgpIGNvbnN0IHsgcmV0dXJuIGNoaWxkKDIpOyB9Cisg
ICAgVmFsdWUqJiBpZkZhbHNlKCkgeyByZXR1cm4gY2hpbGQoMik7IH0KKworcHJvdGVjdGVkOgor
ICAgIFZhbHVlKiBjbG9uZUltcGwoKSBjb25zdCBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBm
cmllbmQgY2xhc3MgUHJvY2VkdXJlOworCisgICAgU2VsZWN0VmFsdWUoT3JpZ2luIG9yaWdpbiwg
VmFsdWUqIGNvbmQsIFZhbHVlKiBpZlRydWUsIFZhbHVlKiBpZkZhbHNlKQorICAgICAgICA6IFZh
bHVlKENoZWNrZWRPcGNvZGUsIFNlbGVjdCwgaWZUcnVlLT50eXBlKCksIG9yaWdpbiwgY29uZCwg
aWZUcnVlLCBpZkZhbHNlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGNvbmQtPmlzSW50ZWdlcigp
KTsKKyAgICB9Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVO
QUJMRShCM19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCShyZXZp
c2lvbiAyNDMzMDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTgyNCw3ICs4MjQsNyBAQAogewogfQogCi1UeXBlIFZhbHVlOjp0eXBl
Rm9yKEtpbmQga2luZCwgVmFsdWUqIGZpcnN0Q2hpbGQsIFZhbHVlKiBzZWNvbmRDaGlsZCkKK1R5
cGUgVmFsdWU6OnR5cGVGb3IoS2luZCBraW5kLCBWYWx1ZSogZmlyc3RDaGlsZCkKIHsKICAgICBz
d2l0Y2ggKGtpbmQub3Bjb2RlKCkpIHsKICAgICBjYXNlIElkZW50aXR5OgpAQCAtOTA0LDkgKzkw
NCw2IEBACiAgICAgY2FzZSBFbnRyeVN3aXRjaDoKICAgICBjYXNlIFdhc21Cb3VuZHNDaGVjazoK
ICAgICAgICAgcmV0dXJuIFZvaWQ7Ci0gICAgY2FzZSBTZWxlY3Q6Ci0gICAgICAgIEFTU0VSVChz
ZWNvbmRDaGlsZCk7Ci0gICAgICAgIHJldHVybiBzZWNvbmRDaGlsZC0+dHlwZSgpOwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCShyZXZpc2lvbiAyNDMzMDEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zODEsMTAg
KzM4MSw2IEBACiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkobnVtQXJncyAhPSAyKSkKICAgICAg
ICAgICAgICAgICBiYWRLaW5kKGtpbmQsIG51bUFyZ3MpOwogICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgU2VsZWN0OgotICAgICAgICAgICAgaWYgKFVOTElLRUxZKG51bUFyZ3MgIT0g
MykpCi0gICAgICAgICAgICAgICAgYmFkS2luZChraW5kLCBudW1BcmdzKTsKLSAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgYmFkS2luZChraW5kLCBudW1B
cmdzKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDE2LDIyICs0MTIsMTMgQEAKICAgICB9CiAg
ICAgLy8gVGhpcyBmb3JtIGlzIGZvciB0aG9zZSBvcGNvZGVzIHRoYXQgY2FuIGluZmVyIHRoZWly
IHR5cGUgZnJvbSB0aGUgb3Bjb2RlIGFuZCBmaXJzdCBjaGlsZDoKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgZXhwbGljaXQgVmFsdWUoQ2hlY2tlZE9wY29kZVRhZywg
S2luZCBraW5kLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogZmlyc3RDaGlsZCkKKyAgICBleHBsaWNp
dCBWYWx1ZShDaGVja2VkT3Bjb2RlVGFnLCBLaW5kIGtpbmQsIE9yaWdpbiBvcmlnaW4sIFZhbHVl
KiBmaXJzdENoaWxkLCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQogICAgICAgICA6IG1fa2luZChr
aW5kKQogICAgICAgICAsIG1fdHlwZSh0eXBlRm9yKGtpbmQsIGZpcnN0Q2hpbGQpKQogICAgICAg
ICAsIG1fb3JpZ2luKG9yaWdpbikKLSAgICAgICAgLCBtX2NoaWxkcmVueyBmaXJzdENoaWxkIH0K
KyAgICAgICAgLCBtX2NoaWxkcmVueyBmaXJzdENoaWxkLCBhcmd1bWVudHMuLi4gfQogICAgIHsK
ICAgICB9Ci0gICAgLy8gVGhpcyBmb3JtIGlzIGZvciB0aG9zZSBvcGNvZGVzIHRoYXQgY2FuIGlu
ZmVyIHRoZWlyIHR5cGUgZnJvbSB0aGUgb3Bjb2RlIGFuZCBmaXJzdCBhbmQgc2Vjb25kIGNoaWxk
OgotICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBleHBsaWNpdCBWYWx1
ZShDaGVja2VkT3Bjb2RlVGFnLCBLaW5kIGtpbmQsIE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBmaXJz
dENoaWxkLCBWYWx1ZSogc2Vjb25kQ2hpbGQsIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMpCi0gICAg
ICAgIDogbV9raW5kKGtpbmQpCi0gICAgICAgICwgbV90eXBlKHR5cGVGb3Ioa2luZCwgZmlyc3RD
aGlsZCwgc2Vjb25kQ2hpbGQpKQotICAgICAgICAsIG1fb3JpZ2luKG9yaWdpbikKLSAgICAgICAg
LCBtX2NoaWxkcmVueyBmaXJzdENoaWxkLCBzZWNvbmRDaGlsZCwgYXJndW1lbnRzLi4uIH0KLSAg
ICB7Ci0gICAgfQogICAgIC8vIFRoaXMgZm9ybSBpcyBmb3IgdGhvc2Ugb3Bjb2RlcyB0aGF0IGNh
biBpbmZlciB0aGVpciB0eXBlIGZyb20gdGhlIG9wY29kZSBhbG9uZSwgYW5kIHRoYXQgZG9uJ3QK
ICAgICAvLyB0YWtlIGFueSBhcmd1bWVudHM6CiAgICAgZXhwbGljaXQgVmFsdWUoQ2hlY2tlZE9w
Y29kZVRhZywgS2luZCBraW5kLCBPcmlnaW4gb3JpZ2luKQpAQCAtNDkyLDcgKzQ3OSw3IEBACiBw
cml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBDaGVja1ZhbHVlOyAvLyBDaGVja1ZhbHVlOjpjb252
ZXJ0VG9BZGQoKSBtb2RpZmllcyBtX2tpbmQuCiAgICAgCi0gICAgc3RhdGljIFR5cGUgdHlwZUZv
cihLaW5kLCBWYWx1ZSogZmlyc3RDaGlsZCwgVmFsdWUqIHNlY29uZENoaWxkID0gbnVsbHB0cik7
CisgICAgc3RhdGljIFR5cGUgdHlwZUZvcihLaW5kLCBWYWx1ZSogZmlyc3RDaGlsZCk7CiAKICAg
ICAvLyBUaGlzIGdyb3VwIG9mIGZpZWxkcyBpcyBhcnJhbmdlZCB0byBmaXQgaW4gNjQgYml0cy4K
IHByb3RlY3RlZDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCShyZXZpc2lv
biAyNDMzMDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIkIzTmF0aXZlVHJhaXRzLmgiCiAj
aW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1JlZHVjZVN0cmVuZ3RoLmgiCisj
aW5jbHVkZSAiQjNTZWxlY3RWYWx1ZS5oIgogI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgog
I2luY2x1ZGUgIkIzU3RhY2tTbG90LmgiCiAjaW5jbHVkZSAiQjNTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXMuaCIKQEAgLTI3MjksNyArMjczMCw3IEBACiAgICAgVmFsdWUqIGludmVydGVkID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRYb3IsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMHgxKSwKICAgICAgICAg
bWFza2VkRXF1YWwpOwotICAgIFZhbHVlKiBzZWxlY3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFNlbGVjdCwgT3JpZ2luKCksIGludmVydGVkLAorICAgIFZhbHVlKiBzZWxlY3QgPSBy
b290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBpbnZlcnRlZCwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC01
KSk7CiAKQEAgLTExODAxLDggKzExODAyLDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
LSAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxTZWxlY3RWYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCkBAIC0xMTgyMyw4ICsxMTgyMyw3IEBACiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCi0gICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdp
bigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjEpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKSk7CkBAIC0xMTg0Miw4ICsxMTg0MSw3
IEBACiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCi0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICBwcm9jLCBTZWxlY3Qs
IE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9y
aWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
ICAgICBwcm9jLCBMZXNzVGhhbiwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVu
dEZQUjApLApAQCAtMTE4NzMsOCArMTE4NzEsNyBAQAogCiAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAotICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
b3Bjb2RlLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICBmbG9hdFZhbHVlMSwKQEAgLTExOTEx
LDggKzExOTA4LDcgQEAKIAogICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKLSAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxTZWxlY3RWYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgT3JpZ2luKCks
CiAgICAgICAgICAgICAgICAgZG91YmxlVmFsdWUxLApAQCAtMTE5MzksOCArMTE5MzUsNyBAQAog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAotICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmln
aW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAg
cHJvYywgRXF1YWwsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwK
QEAgLTExOTYxLDggKzExOTU2LDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAg
ICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxT
ZWxlY3RWYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MSkpKTsKQEAgLTExOTgwLDggKzExOTc0LDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
LSAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxTZWxlY3RWYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIExlc3NUaGFuLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCksCkBAIC0xMjAxMCw4ICsxMjAwMyw3IEBA
CiAKICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAg
ICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0
VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgICAgICBwcm9jLCBMZXNzVGhhbiwgT3JpZ2luKCksCiAgICAgICAgICAg
ICAgICAgZmxvYXRWYWx1ZTEsCkBAIC0xMjA0MSw4ICsxMjAzMyw3IEBACiAKICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCi0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICBwcm9jLCBTZWxlY3Qs
IE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9y
aWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
ICAgICBwcm9jLCBMZXNzVGhhbiwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgZmxvYXRWYWx1
ZTEsCkBAIC0xMjA2Nyw4ICsxMjA1OCw4IEBACiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKLSAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0
LCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4oCisg
ICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCBPcmlnaW4o
KSwKICAgICAgICAgICAgICAgICAgICAgYXJnMCwKQEAgLTEyMDkyLDcgKzEyMDgzLDcgQEAKICAg
ICAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMik7CiAgICAgICAgIFZhbHVlKiBhcmcz
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJ
bmZvOjphcmd1bWVudEZQUjMpOwogCi0gICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBhcmcw
LCBhcmcxKSwKICAgICAgICAgICAgIGFyZzIsCiAgICAgICAgICAgICBhcmczKTsKQEAgLTEyMTE5
LDcgKzEyMTEwLDcgQEAKICAgICAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMik7CiAg
ICAgICAgIFZhbHVlKiBhcmczID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjMpOwogCi0gICAgICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCisg
ICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8U2VsZWN0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNv
ZGUsIE9yaWdpbigpLCBhcmcwLCBhcmcxKSwKICAgICAgICAgICAgIGFyZzIsCiAgICAgICAgICAg
ICBhcmczKTsKQEAgLTEyMTQ2LDcgKzEyMTM3LDcgQEAKICAgICAgICAgVmFsdWUqIGFyZzIgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86
OmFyZ3VtZW50RlBSMik7CiAgICAgICAgIFZhbHVlKiBhcmczID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjMpOwog
Ci0gICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNl
bGVjdCwgT3JpZ2luKCksCisgICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBhcmcwLCBhcmcxKSwKICAgICAgICAgICAg
IGFyZzIsCiAgICAgICAgICAgICBhcmczKTsKQEAgLTEyMTc1LDggKzEyMTY2LDggQEAKIAogICAg
ICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAotICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAg
ICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFNlbGVjdFZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgICAg
ICBwcm9jLCBvcGNvZGUsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgICAgICBhcmcwLApAQCAt
MTIxOTksNyArMTIxOTAsNyBAQAogICAgICAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIx
KTsKICAgICAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMik7CiAKLSAgICAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU2VsZWN0LCBPcmlnaW4o
KSwKKyAgICAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4o
cHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IG9wY29kZSwgT3JpZ2luKCksIGFyZzAsIGFyZzEpLAogICAgICAgICAgICAgYXJnMiwKICAgICAg
ICAgICAgIGFyZzApOwpAQCAtMTIyNTMsOCArMTIyNDQsOCBAQAogCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
Ci0gICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgIHBy
b2MsIFNlbGVjdCwgT3JpZ2luKCksCisgICAgICAgICAgICByb290LT5hcHBlbmROZXc8U2VsZWN0
VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIHByb2MsIG9wY29k
ZSwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgICAgIGFyZzAsCkBAIC0xMjI4Niw3ICsxMjI3
Nyw3IEBACiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMykpKTsKIAotICAgICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTZWxlY3QsIE9yaWdp
bigpLAorICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
Yywgb3Bjb2RlLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSksCiAgICAgICAgICAgICBhcmcyLAogICAg
ICAgICAgICAgYXJnMyk7CkBAIC0xMjMyMSw3ICsxMjMxMiw3IEBACiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMykpKTsKIAotICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwgYXJn
MCwgYXJnMSksCiAgICAgICAgICAgICBhcmcyLAogICAgICAgICAgICAgYXJnMyk7CkBAIC0xMjM1
Niw3ICsxMjM0Nyw3IEBACiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMykpKTsKIAot
ICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTZWxl
Y3QsIE9yaWdpbigpLAorICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFNl
bGVjdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSksCiAgICAgICAgICAgICBh
cmcyLAogICAgICAgICAgICAgYXJnMyk7CkBAIC0xMjM5MSw4ICsxMjM4Miw4IEBACiAKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKLSAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAg
ICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxTZWxlY3RWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksCiAgICAg
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICAgICAg
cHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICAgICAgYXJnMCwKQEAgLTEy
NDIxLDcgKzEyNDEyLDcgQEAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSkpOwog
Ci0gICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNl
bGVjdCwgT3JpZ2luKCksCisgICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
U2VsZWN0VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBhcmcwLCBhcmcxKSwKICAgICAgICAgICAg
IGFyZzIsCiAgICAgICAgICAgICBhcmcwKTsKQEAgLTEyNDU5LDggKzEyNDUwLDcgQEAKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCks
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2Ms
IEVxdWFsLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQ
dHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwKQEAgLTEyNDc5LDggKzEyNDY5LDcgQEAK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKLSAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3Jp
Z2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAg
IHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KApAQCAtMTI1MDksOCArMTI0OTgsOCBAQAogICAgICAgICBwcm9jLCBDaGVjaywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBBZGQsIE9yaWdpbigpLAotICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAg
ICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFNlbGVjdFZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAg
ICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KApAQCAtMTI1NTMsOCArMTI1NDIsOCBAQAogICAgICAgICBwcm9jLCBD
aGVjaywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLAotICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKLSAgICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAorICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBP
cmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KApAQCAtMTI1ODEsOCArMTI1NzAsOCBAQAogICAgICAg
ICBwcm9jLCBDaGVjaywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLAotICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAor
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFNlbGVjdFZhbHVlPigKKyAgICAgICAgICAgICAg
ICBwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KApAQCAtMTI2MjQsOCArMTI2MTMsOCBA
QAogICAgICAgICByZXR1cm47CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKIAotICAgIGF1dG8qIHNlbGVjdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAg
ICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKKyAgICBhdXRvKiBzZWxlY3RWYWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxTZWxlY3RWYWx1ZT4oCisgICAgICAgIHByb2MsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuY3BwCShyZXZpc2lvbiAyNDMzMDEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJCM0ZlbmNlVmFsdWUuaCIKICNpbmNsdWRlICJCM01h
dGhFeHRyYXMuaCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCisjaW5jbHVkZSAiQjNTZWxl
Y3RWYWx1ZS5oIgogI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgogI2luY2x1ZGUgIkIzU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgpAQCAt
NjUxLDcgKzY1Miw3IEBACiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldHVybiBub3RUYWtl
bjsKICAgICB9Ci0gICAgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6VmFsdWU+KG1fcHJv
YywgQjM6OlNlbGVjdCwgb3JpZ2luKCksIHZhbHVlLCB0YWtlbiwgbm90VGFrZW4pOworICAgIHJl
dHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OlNlbGVjdFZhbHVlPihtX3Byb2MsIG9yaWdpbigp
LCB2YWx1ZSwgdGFrZW4sIG5vdFRha2VuKTsKIH0KIAogTFZhbHVlIE91dHB1dDo6YXRvbWljWGNo
Z0FkZChMVmFsdWUgb3BlcmFuZCwgVHlwZWRQb2ludGVyIHBvaW50ZXIsIFdpZHRoIHdpZHRoKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9y
LmNwcAkocmV2aXNpb24gMjQzMzAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUIzSVJHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5j
bHVkZSAiQjNGaXhTU0EuaCIKICNpbmNsdWRlICJCM0dlbmVyYXRlLmgiCiAjaW5jbHVkZSAiQjNJ
bnNlcnRpb25TZXQuaCIKKyNpbmNsdWRlICJCM1NlbGVjdFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNT
bG90QmFzZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaCIK
ICNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCkBAIC04OTEsNyArODkyLDcgQEAKIAogYXV0byBC
M0lSR2VuZXJhdG9yOjphZGRTZWxlY3QoRXhwcmVzc2lvblR5cGUgY29uZGl0aW9uLCBFeHByZXNz
aW9uVHlwZSBub25aZXJvLCBFeHByZXNzaW9uVHlwZSB6ZXJvLCBFeHByZXNzaW9uVHlwZSYgcmVz
dWx0KSAtPiBQYXJ0aWFsUmVzdWx0CiB7Ci0gICAgcmVzdWx0ID0gbV9jdXJyZW50QmxvY2stPmFw
cGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBCMzo6U2VsZWN0LCBvcmlnaW4oKSwgY29uZGl0aW9uLCBu
b25aZXJvLCB6ZXJvKTsKKyAgICByZXN1bHQgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIz
OjpTZWxlY3RWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgY29uZGl0aW9uLCBub25aZXJvLCB6ZXJv
KTsKICAgICByZXR1cm4geyB9OwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>