<?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>196110</bug_id>
          
          <creation_ts>2019-03-21 13:42:10 -0700</creation_ts>
          <short_desc>Make a ReturnValue subclass of B3::Value</short_desc>
          <delta_ts>2019-03-21 14:06:43 -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>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1519889</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-21 13:42:10 -0700</bug_when>
    <thetext>Useful for https://bugs.webkit.org/show_bug.cgi?id=196091
Also happens to make some progress on https://bugs.webkit.org/show_bug.cgi?id=159440</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519898</commentid>
    <comment_count>1</comment_count>
      <attachid>365607</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-21 13:47:34 -0700</bug_when>
    <thetext>Created attachment 365607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519926</commentid>
    <comment_count>2</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-21 14:06:43 -0700</bug_when>
    <thetext>Phil suggested a better approach in https://bugs.webkit.org/show_bug.cgi?id=196091</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365607</attachid>
            <date>2019-03-21 13:47:34 -0700</date>
            <delta_ts>2019-03-21 13:47:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch196110</filename>
            <type>text/plain</type>
            <size>335035</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQzMzIyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0NiBA
QAorMjAxOS0wMy0yMSAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgorCisg
ICAgICAgIE1ha2UgYSBSZXR1cm5WYWx1ZSBzdWJjbGFzcyBvZiBCMzo6VmFsdWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjExMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgcGFy
dCBvZiBhIHJlZmFjdG9yaW5nIG9mIEIzOjpWYWx1ZSB0byByZWR1Y2UgaXRzIHNpemUgKGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTYwOTEpLgorICAgICAgICBJdCBh
bHNvIHJlbW92ZXMgb25lIG9mIHRoZSB2ZXJzaW9ucyBvZiBhcHBlbmROZXdDb250cm9sVmFsdWUo
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ0MCkuCisgICAgICAg
IENvbnRyYXJ5IHRvIGFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIC4uKSwgYXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCAuLikgZG9lcyBub3QgY2xlYXIgdGhlIHN1Y2Nlc3Nv
cnMgb2YgdGhlIGN1cnJlbnQgYmxvY2suCisgICAgICAgIEl0IGlzIGZpbmUgYmVjYXVzZSBub25l
IG9mIHRoZSBwbGFjZXMgdGhhdCB3ZXJlIHVzaW5nIGl0IHNlZW0gbGlrZSB0aGV5IGhhZCBhbnl0
aGluZyB0byBjbGVhciBpbiB0aGUgZmlyc3QgcGxhY2UuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFNvdXJjZXMudHh0Ogor
ICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjphcHBlbmROZXdDb250cm9sVmFsdWUpOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5o
OgorICAgICAgICAqIGIzL0IzRWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMuY3BwOgorICAg
ICAgICAqIGIzL0IzTWF0aEV4dHJhcy5oOgorICAgICAgICAqIGIzL0IzUmV0dXJuVmFsdWUuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QjM6OlJldHVyblZhbHVlOjp+UmV0dXJuVmFsdWUpOgor
ICAgICAgICAoSlNDOjpCMzo6UmV0dXJuVmFsdWU6OmNsb25lSW1wbCBjb25zdCk6CisgICAgICAg
ICogYjMvQjNSZXR1cm5WYWx1ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBiMy9CM1ZhbHVlLmNwcDoK
KyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjp0eXBlRm9yKToKKyAgICAgICAgKiBiMy9CM1ZhbHVl
Lmg6CisgICAgICAgICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OnRlc3Q0Mik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZDQyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RM
b2FkQWNxNDIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExvYWRXaXRoT2Zmc2V0SW1wbCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0QXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSZXR1cm5D
b25zdDY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSZXR1cm5Wb2lkKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RBZGRBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ3MpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRk
SW1tQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdNZW0pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdEFkZE1lbUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkSW1tTWVtKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
QWRkQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdNZW0zMik6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0QWRkTWVtQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZElt
bU1lbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGROZWcxKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RBZGROZWcyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdaZXJvSW1tWkRl
Zik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkTG9hZFR3aWNlKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RBZGRBcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ3NEb3Vi
bGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ0ltbURvdWJsZSk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0QWRkSW1tQXJnRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRJ
bW1zRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdGbG9hdCk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0QWRkQXJnc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRG
UFJBcmdzRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ0ltbUZsb2F0KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RBZGRJbW1BcmdGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0QWRkSW1tc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdGbG9hdFdpdGhV
c2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJnc0Zs
b2F0V2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RB
ZGRBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0TXVsQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdTdG9yZSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsQWRkQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RN
dWxBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdJbW0pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdE11bEltbUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsQXJnczMyKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxMb2FkVHdpY2UpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdE11bEFkZEFyZ3NMZWZ0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBZGRBcmdzUmln
aHQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFkZEFyZ3NMZWZ0MzIpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdE11bEFkZEFyZ3NSaWdodDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RN
dWxTdWJBcmdzTGVmdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsU3ViQXJnc1JpZ2h0KToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxTdWJBcmdzTGVmdDMyKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RNdWxTdWJBcmdzUmlnaHQzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsTmVn
QXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsTmVnQXJnczMyKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RNdWxBcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZ3NE
b3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZ0ltbURvdWJsZSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0TXVsSW1tQXJnRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RN
dWxJbW1zRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdGbG9hdCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0TXVsQXJnc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RN
dWxBcmdJbW1GbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsSW1tQXJnRmxvYXQpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEltbXNGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0TXVsQXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdE11bEFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0TXVsQXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZlcnNp
b24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERpdkFyZ0RvdWJsZSk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0RGl2QXJnc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGl2QXJnSW1t
RG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REaXZJbW1BcmdEb3VibGUpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdERpdkltbXNEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERp
dkFyZ0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REaXZBcmdzRmxvYXQpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdERpdkFyZ0ltbUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RE
aXZJbW1BcmdGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGl2SW1tc0Zsb2F0KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RNb2RBcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dE1vZEFyZ3NEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZEFyZ0ltbURvdWJsZSk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kSW1tQXJnRG91YmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RNb2RJbW1zRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RBcmdGbG9h
dCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kQXJnc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RNb2RBcmdJbW1GbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kSW1tQXJn
RmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZEltbXNGbG9hdCk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0RGl2QXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdERpdkFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lv
bik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGl2QXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJs
ZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFVEaXZBcmdzSW50MzIpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFVEaXZBcmdzSW50NjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dFVNb2RBcmdzSW50MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFVNb2RBcmdzSW50NjQpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3Vi
QXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnSW1tKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RTdWJOZWcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE5lZ1N1Yik6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0TmVnVmFsdWVTdWJPbmUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1
YkltbUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnTWVtKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RTdWJNZW1BcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkltbU1lbSk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViTWVtSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTdWJBcmdzMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkFyZ0ltbTMyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTdWJJbW1BcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3Vi
TWVtQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkFyZ01lbTMyKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RTdWJJbW1NZW0zMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViTWVt
SW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE5lZ1ZhbHVlU3ViT25lMzIpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdFN1YkFyZ0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3Vi
QXJnc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnSW1tRG91YmxlKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RTdWJJbW1BcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFN1YkltbXNEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkFyZ0Zsb2F0KToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJBcmdzRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFN1YkFyZ0ltbUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJJbW1BcmdGbG9h
dCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViSW1tc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RTdWJBcmdGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0U3ViQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9uKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91YmxlQ29u
dmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VGVybmFyeVN1Ykluc3RydWN0aW9uU2Vs
ZWN0aW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3ROZWdEb3VibGUpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdE5lZ0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3ROZWdGbG9hdFdpdGhV
c2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kQXJn
cyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kU2FtZUFyZyk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0Qml0QW5kTm90Tm90KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmROb3RJ
bW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEltbXMpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEJpdEFuZEFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kSW1tQXJn
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRCaXRBbmRBcmdJbW1JbW0pOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEJpdEFuZEltbUJpdEFuZEFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Qml0QW5kQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRTYW1lQXJn
MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEltbXMzMik6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0Qml0QW5kQXJnSW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZElt
bUFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRCaXRBbmRBcmdJbW1JbW0zMik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kSW1tQml0QW5kQXJnSW1tMzIpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEJpdEFuZFdpdGhNYXNrUmV0dXJuc0Jvb2xlYW5zKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RCaXRBbmRBcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJp
dEFuZEFyZ3NEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFyZ0ltbURvdWJs
ZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kSW1tc0RvdWJsZSk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0Qml0QW5kQXJnRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFu
ZEFyZ3NGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kQXJnSW1tRmxvYXQpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEltbXNGbG9hdCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Qml0QW5kQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9uKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCaXRPckFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9y
U2FtZUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JBbmRBbmRBcmdzKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCaXRPckFuZFNhbWVBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RCaXRPck5vdE5vdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JOb3RJbW0pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEJpdE9ySW1tcyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0
T3JBcmdJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9ySW1tQXJnKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RCaXRPckJpdE9yQXJnSW1tSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RCaXRPckltbUJpdE9yQXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPckFyZ3Mz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JTYW1lQXJnMzIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdEJpdE9ySW1tczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPckFyZ0lt
bTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPckltbUFyZzMyKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RCaXRPckJpdE9yQXJnSW1tSW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEJpdE9ySW1tQml0T3JBcmdJbW0zMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JBcmdE
b3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9yQXJnc0RvdWJsZSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0Qml0T3JBcmdJbW1Eb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEJpdE9ySW1tc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JBcmdGbG9hdCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JBcmdzRmxvYXQpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEJpdE9yQXJnSW1tRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9ySW1t
c0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPckFyZ3NGbG9hdFdpdGhVc2VsZXNz
RG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9yQXJncyk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9yU2FtZUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0Qml0WG9yQW5kQW5kQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9yQW5kU2Ft
ZUFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhvckltbXMpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdEJpdFhvckFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9ySW1t
QXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JCaXRYb3JBcmdJbW1JbW0pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEJpdFhvckltbUJpdFhvckFyZ0ltbSk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0Qml0WG9yQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JTYW1l
QXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhvckltbXMzMik6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0Qml0WG9yQXJnSW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhv
ckltbUFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JCaXRYb3JBcmdJbW1JbW0z
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9ySW1tQml0WG9yQXJnSW1tMzIpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEJpdE5vdEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0
Tm90SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXROb3RNZW0pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdEJpdE5vdEFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXROb3RJbW0z
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0Tm90TWVtMzIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdE5vdE9uQm9vbGVhbkFuZEJyYW5jaDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RC
aXROb3RPbkJvb2xlYW5BbmRCcmFuY2gzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2hsQXJn
cyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2hsSW1tcyk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0U2hsQXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaGxTU2hyQXJnSW1tKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RTaGxBcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2hs
QXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaGxJbW1zMzIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFNobEFyZ0ltbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaGxaU2hyQXJn
SW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNTaHJBcmdzKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RTU2hySW1tcyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U1NockFyZ0ltbSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0U1NockFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RT
U2hyQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTU2hySW1tczMyKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RTU2hyQXJnSW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFpTaHJB
cmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RaU2hySW1tcyk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0WlNockFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0WlNockFyZzMyKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RaU2hyQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3Ra
U2hySW1tczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RaU2hyQXJnSW1tMzIpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdENsekFyZzY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDbHpNZW02
NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2x6QXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdENsek1lbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBYnNBcmcpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdEFic0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWJzTWVtKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RBYnNBYnNBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFi
c05lZ0FyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWJzQml0d2lzZUNhc3RBcmcpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEJpdHdpc2VDYXN0QWJzQml0d2lzZUNhc3RBcmcpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEFic0FyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0QWJzQXJnV2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZlcnNpb24pOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENl
aWxJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxNZW0pOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdENlaWxDZWlsQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9vckNlaWxBcmcp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxJVG9ENjQpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdENlaWxJVG9EMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxBcmdXaXRoVXNlbGVz
c0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxBcmdXaXRoRWZm
ZWN0ZnVsRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JBcmcp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZsb29ySW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RGbG9vck1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JGbG9vckFyZyk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0Q2VpbEZsb29yQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RG
bG9vcklUb0Q2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JJVG9EMzIpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEZsb29yQXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9uKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RGbG9vckFyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZXJzaW9u
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcXJ0QXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTcXJ0SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcXJ0TWVtKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RTcXJ0QXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RTcXJ0QXJnV2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZlcnNpb24pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdENvbXBhcmVUd29GbG9hdFRvRG91YmxlKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RDb21wYXJlT25lRmxvYXRUb0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0Q29tcGFyZUZsb2F0VG9Eb3VibGVUaHJvdWdoUGhpKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3REb3VibGVUb0Zsb2F0VGhyb3VnaFBoaSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UmVkdWNl
RmxvYXRUb0RvdWJsZVZhbGlkYXRlcyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RG91YmxlUHJv
ZHVjZXJQaGlUb0Zsb2F0Q29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RG91Ymxl
UHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVyc2lvbldpdGhEb3VibGVDb25zdW1lcik6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0RG91YmxlUHJvZHVjZXJQaGlXaXRoTm9uRmxvYXRDb25zdCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0RG91YmxlQXJnVG9JbnQ2NEJpdHdpc2VDYXN0KToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3REb3VibGVJbW1Ub0ludDY0Qml0d2lzZUNhc3QpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFR3b0JpdHdpc2VDYXN0T25Eb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEJpdHdpc2VDYXN0T25Eb3VibGVJbk1lbW9yeSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0
d2lzZUNhc3RPbkRvdWJsZUluTWVtb3J5SW5kZXhlZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
SW50NjRCQXJnVG9Eb3VibGVCaXR3aXNlQ2FzdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SW50
NjRCSW1tVG9Eb3VibGVCaXR3aXNlQ2FzdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VHdvQml0
d2lzZUNhc3RPbkludDY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXR3aXNlQ2FzdE9uSW50
NjRJbk1lbW9yeSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0d2lzZUNhc3RPbkludDY0SW5N
ZW1vcnlJbmRleGVkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9hdEltbVRvSW50MzJCaXR3
aXNlQ2FzdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0d2lzZUNhc3RPbkZsb2F0SW5NZW1v
cnkpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEludDMyQkFyZ1RvRmxvYXRCaXR3aXNlQ2FzdCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SW50MzJCSW1tVG9GbG9hdEJpdHdpc2VDYXN0KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RUd29CaXR3aXNlQ2FzdE9uSW50MzIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdEJpdHdpc2VDYXN0T25JbnQzMkluTWVtb3J5KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RDb252ZXJ0RG91YmxlVG9GbG9hdEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q29u
dmVydERvdWJsZVRvRmxvYXRJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENvbnZlcnREb3Vi
bGVUb0Zsb2F0TWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDb252ZXJ0RmxvYXRUb0RvdWJs
ZUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q29udmVydEZsb2F0VG9Eb3VibGVJbW0pOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdENvbnZlcnRGbG9hdFRvRG91YmxlTWVtKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RDb252ZXJ0RG91YmxlVG9GbG9hdFRvRG91YmxlVG9GbG9hdCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0TG9hZEZsb2F0Q29udmVydERvdWJsZUNvbnZlcnRGbG9hdFN0b3Jl
RmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZyb3VuZEFyZyk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0RnJvdW5kTWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9ENjRBcmcpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0Y2NEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
SVRvRDMyQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9GMzJBcmcpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdElUb0Q2NE1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRjY0TWVt
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9EMzJNZW0pOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdElUb0YzMk1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRDY0SW1tKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RJVG9GNjRJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0Qz
MkltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRjMySW1tKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RJVG9EUmVkdWNlZFRvSVRvRjY0QXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJ
VG9EUmVkdWNlZFRvSVRvRjMyQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZTMyKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUNvbnN0YW50KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTdG9yZUNvbnN0YW50UHRyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZThBcmcp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlOEltbSk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0U3RvcmVQYXJ0aWFsOEJpdFJlZ2lzdGVyT25YODYpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dFN0b3JlMTZBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlMTZJbW0pOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdFRydW5jKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGQxKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RBZGQxUHRyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3ROZWcz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TmVnUHRyKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTdG9yZUFkZExvYWQzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVSZWxBZGRMb2Fk
QWNxMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZEltbTMyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFkZExvYWQ4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RT
dG9yZVJlbEFkZExvYWRBY3E4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZVJlbEFkZEZl
bmNlTG9hZEFjcTgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZEltbTgpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZDE2KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTdG9yZVJlbEFkZExvYWRBY3ExNik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVB
ZGRMb2FkSW1tMTYpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZDY0KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZVJlbEFkZExvYWRBY3E2NCk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0U3RvcmVBZGRMb2FkSW1tNjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3Jl
QWRkTG9hZDMySW5kZXgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZEltbTMy
SW5kZXgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZDhJbmRleCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkSW1tOEluZGV4KToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RTdG9yZUFkZExvYWQxNkluZGV4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9y
ZUFkZExvYWRJbW0xNkluZGV4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFkZExvYWQ2
NEluZGV4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFkZExvYWRJbW02NEluZGV4KToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZVN1YkxvYWQpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFN0b3JlQWRkTG9hZEludGVyZmVyZW5jZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3Rv
cmVBZGRBbmRMb2FkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZU5lZ0xvYWQzMik6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVOZWdMb2FkUHRyKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RBZGQxVW5jb21tdXRlZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZE9mZnNldCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZE9mZnNldE5vdENvbnN0YW50KToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RMb2FkT2Zmc2V0VXNpbmdBZGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dExvYWRPZmZzZXRVc2luZ0FkZEludGVyZmVyZW5jZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
TG9hZE9mZnNldFVzaW5nQWRkTm90Q29uc3RhbnQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExv
YWRBZGRyU2hpZnQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZyYW1lUG9pbnRlcik6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0T3ZlcnJpZGVGcmFtZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFN0YWNrU2xvdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZEZyb21GcmFtZVBv
aW50ZXIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlTG9hZFN0YWNrU2xvdCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0TG9hZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVGbG9h
dCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVEb3VibGVDb25zdGFudEFzRmxvYXQpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFNwaWxsR1ApOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNw
aWxsRlApOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0
ZXJTdGFsbCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SW50MzJUb0RvdWJsZVBhcnRpYWxSZWdp
c3RlcldpdGhvdXRTdGFsbCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hQdHIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERpYW1v
bmQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaE5vdEVxdWFsKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RCcmFuY2hOb3RFcXVhbENvbW11dGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEJyYW5jaE5vdEVxdWFsTm90RXF1YWwpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaEVx
dWFsKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hFcXVhbEVxdWFsKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RCcmFuY2hFcXVhbENvbW11dGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEJyYW5jaEVxdWFsRXF1YWwxKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hFcXVhbE9y
VW5vcmRlcmVkQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoTm90RXF1YWxBbmRP
cmRlcmVkQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJl
ZERvdWJsZUFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoRXF1YWxPclVub3Jk
ZXJlZEZsb2F0QXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hFcXVhbE9yVW5v
cmRlcmVkRG91YmxlSW1tcyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoRXF1YWxPclVu
b3JkZXJlZEZsb2F0SW1tcyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoRXF1YWxPclVu
b3JkZXJlZEZsb2F0V2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RCcmFuY2hGb2xkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REaWFtb25kRm9sZCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoTm90RXF1YWxGb2xkUHRyKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RCcmFuY2hFcXVhbEZvbGRQdHIpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEJyYW5jaExvYWRQdHIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaExvYWQzMik6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoTG9hZDhTKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RCcmFuY2hMb2FkOFopOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaExvYWQxNlMpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaExvYWQxNlopOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdEJyYW5jaDhXaXRoTG9hZDhaSW5kZXgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENvbXBs
ZXgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNpbXBsZVBhdGNocG9pbnQpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdFNpbXBsZVBhdGNocG9pbnRXaXRob3V0T3VwdXRDbG9iYmVyc0dQQXJncyk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhPdXB1dENsb2JiZXJz
R1BBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaW1wbGVQYXRjaHBvaW50V2l0aG91dE91
cHV0Q2xvYmJlcnNGUEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNpbXBsZVBhdGNocG9p
bnRXaXRoT3VwdXRDbG9iYmVyc0ZQQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hw
b2ludFdpdGhFYXJseUNsb2JiZXIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFBhdGNocG9pbnRD
YWxsQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RQYXRjaHBvaW50Rml4ZWRSZWdpc3Rlcik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hwb2ludEFueSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0UGF0Y2hwb2ludEdQU2NyYXRjaCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hw
b2ludEZQU2NyYXRjaCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hwb2ludExvdHNPZkxh
dGVBbnlzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RQYXRjaHBvaW50QW55SW1tKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RQYXRjaHBvaW50TWFueUltbXMpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFBhdGNocG9pbnRXaXRoUmVnaXN0ZXJSZXN1bHQpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dFBhdGNocG9pbnRXaXRoU3RhY2tBcmd1bWVudFJlc3VsdCk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0UGF0Y2hwb2ludFdpdGhBbnlSZXN1bHQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNpbXBs
ZUNoZWNrKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja0ZhbHNlKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RDaGVja1RydWUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTGVzc1Ro
YW4pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTWVnYUNvbWJvKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RDaGVja1RyaWNreU1lZ2FDb21ibyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Q2hlY2tUd29NZWdhQ29tYm9zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja1R3b05vblJl
ZHVuZGFudE1lZ2FDb21ib3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrQWRkSW1tKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja0FkZEltbUNvbW11dGUpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdENoZWNrQWRkSW1tU29tZVJlZ2lzdGVyKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RDaGVja0FkZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tBZGQ2NCk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0Q2hlY2tBZGRGb2xkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVj
a0FkZEZvbGRGYWlsKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja0FkZEFyZ3VtZW50QWxp
YXNpbmc2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tBZGRBcmd1bWVudEFsaWFzaW5n
MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrQWRkU2VsZk92ZXJmbG93NjQpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdENoZWNrQWRkU2VsZk92ZXJmbG93MzIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdENoZWNrU3ViSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja1N1YkJh
ZEltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tTdWIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdENoZWNrU3ViNjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU3ViRm9sZCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tTdWJGb2xkRmFpbCk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0Q2hlY2tOZWcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTmVnNjQpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTXVsKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RD
aGVja011bE1lbW9yeSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tNdWwyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RDaGVja011bDY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVj
a011bEZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTXVsRm9sZEZhaWwpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTXVsQXJndW1lbnRBbGlhc2luZzY0KToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RDaGVja011bEFyZ3VtZW50QWxpYXNpbmczMik6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0Q2hlY2tNdWw2NFNTaHIpOgorICAgICAgICAoSlNDOjpCMzo6Z2VuZXJpY1Rlc3RD
b21wYXJlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RFcXVhbERvdWJsZSk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0Q2FsbFNpbXBsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2FsbFJhcmUp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdENhbGxSYXJlTGl2ZSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Q2FsbFNpbXBsZVB1cmUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENhbGxGdW5jdGlv
bldpdGhIZWxsYUFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2FsbEZ1bmN0aW9u
V2l0aEhlbGxhQXJndW1lbnRzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2FsbEZ1bmN0aW9u
V2l0aEhlbGxhQXJndW1lbnRzMyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UmV0dXJuRG91Ymxl
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSZXR1cm5GbG9hdCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Q2FsbFNpbXBsZURvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2FsbFNpbXBs
ZUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDYWxsRnVuY3Rpb25XaXRoSGVsbGFEb3Vi
bGVBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENhbGxGdW5jdGlvbldpdGhIZWxs
YUZsb2F0QXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMaW5lYXJTY2FuV2l0aENh
bGxlZU9uU3RhY2spOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoaWxsRGl2KToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RDaGlsbERpdlR3aWNlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGls
bERpdjY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RBcmcpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdE1vZEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZEltbXMpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdE1vZEFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RBcmdz
MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZEltbXMzMik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Q2hpbGxNb2RBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoaWxsTW9kQXJncyk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hpbGxNb2RJbW1zKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RDaGlsbE1vZEFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGlsbE1vZEFyZ3Mz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hpbGxNb2RJbW1zMzIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdExvb3BXaXRoTXVsdGlwbGVIZWFkZXJFZGdlcyk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U3dpdGNoKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTd2l0Y2hTYW1lQ2FzZUFzRGVm
YXVsdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3dpdGNoQ2hpbGxEaXYpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdFN3aXRjaFRhcmdldHRpbmdTYW1lQmxvY2spOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFN3aXRjaFRhcmdldHRpbmdTYW1lQmxvY2tGb2xkUGF0aENvbnN0YW50KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RUcnVuY0ZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFpFeHQz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0WkV4dDMyRm9sZCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U0V4dDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTRXh0MzJGb2xkKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RUcnVuY1pFeHQzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VHJ1
bmNTRXh0MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQ4KToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RTRXh0OEZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQ4U0V4dDgpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQ4U0V4dDE2KToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTRXh0OEJpdEFuZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kU0V4dDgpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFNFeHQxNik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U0V4dDE2
Rm9sZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U0V4dDE2U0V4dDE2KToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RTRXh0MTZTRXh0OCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U0V4dDE2Qml0
QW5kKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRTRXh0MTYpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFNFeHQzMkJpdEFuZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kU0V4
dDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCYXNpY1NlbGVjdCk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0U2VsZWN0VGVzdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0Q29tcGFy
ZURvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0Q29tcGFyZUZsb2F0KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3RDb21wYXJlRmxvYXRUb0RvdWJsZSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0U2VsZWN0RG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxl
Y3REb3VibGVUZXN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3REb3VibGVDb21wYXJl
RG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3REb3VibGVDb21wYXJlRmxvYXQp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTZWxlY3RGb2xkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxl
Y3RJbnZlcnQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU2VsZWN0KToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RDaGVja1NlbGVjdENoZWNrU2VsZWN0KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RDaGVja1NlbGVjdEFuZENTRSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UG93RG91Ymxl
QnlJbnRlZ2VyTG9vcCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VHJ1bmNPckhpZ2gpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFRydW5jT3JMb3cpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJp
dEFuZE9ySGlnaCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kT3JMb3cpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEJyYW5jaDY0RXF1YWwpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJy
YW5jaDY0RXF1YWxJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaDY0RXF1YWxNZW0p
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaDY0RXF1YWxNZW1JbW0pOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdFN0b3JlOExvYWQ4Wik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmUx
NkxvYWQxNlopOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNTaHJTaGwzMik6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0U1NoclNobDY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSb3RSKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RSb3RMKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSb3RSV2l0
aEltbVNoaWZ0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSb3RMV2l0aEltbVNoaWZ0KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RGb2xkUGF0aEVxdWFsKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RMU2hpZnRTZWxmMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFJTaGlmdFNlbGYzMik6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0VVJTaGlmdFNlbGYzMik6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0TFNoaWZ0U2VsZjY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSU2hpZnRTZWxmNjQpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFVSU2hpZnRTZWxmNjQpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFBhdGNocG9pbnREb3VibGVSZWdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcGlsbERl
ZlNtYWxsZXJUaGFuVXNlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcGlsbFVzZUxhcmdlclRo
YW5EZWYpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExhdGVSZWdpc3Rlcik6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0SW50ZXJwcmV0ZXIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFJlZHVjZVN0
cmVuZ3RoQ2hlY2tCb3R0b21Vc2VJbkFub3RoZXJCbG9jayk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0RW50cnlTd2l0Y2hTaW1wbGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEVudHJ5U3dpdGNo
Tm9FbnRyeVN3aXRjaCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RW50cnlTd2l0Y2hXaXRoQ29t
bW9uUGF0aHMpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEVudHJ5U3dpdGNoV2l0aENvbW1vblBh
dGhzQW5kTm9uVHJpdmlhbEVudHJ5cG9pbnQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEVudHJ5
U3dpdGNoTG9vcCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U29tZUVhcmx5UmVnaXN0ZXIpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFRlcm1pbmFsUGF0Y2hwb2ludFRoYXROZWVkc1RvQmVTcGls
bGVkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RUZXJtaW5hbFBhdGNocG9pbnRUaGF0TmVlZHNU
b0JlU3BpbGxlZDIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFBhdGNocG9pbnRUZXJtaW5hbFJl
dHVyblZhbHVlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNZW1vcnlGZW5jZSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0U3RvcmVGZW5jZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZEZl
bmNlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RUcmFwcGluZ0xvYWQpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFRyYXBwaW5nU3RvcmUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFRyYXBwaW5n
TG9hZEFkZFN0b3JlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RUcmFwcGluZ0xvYWREQ0UpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFRyYXBwaW5nU3RvcmVFbGltaW5hdGlvbik6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0TW92ZUNvbnN0YW50cyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UENP
cmlnaW5NYXBEb2VzbnRJbnNlcnROb3BzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RQaW5SZWdp
c3RlcnMpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFg4NkxlYUFkZEFkZFNobExlZnQpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFg4NkxlYUFkZEFkZFNobFJpZ2h0KToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RYODZMZWFBZGRBZGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFg4NkxlYUFkZFNo
bFJpZ2h0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RYODZMZWFBZGRTaGxMZWZ0U2NhbGUxKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RYODZMZWFBZGRTaGxMZWZ0U2NhbGUyKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RYODZMZWFBZGRTaGxMZWZ0U2NhbGU0KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RYODZMZWFBZGRTaGxMZWZ0U2NhbGU4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRT
aGwzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkU2hsNjQpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEFkZFNobDY1KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSZWR1Y2VTdHJlbmd0aFJl
YXNzb2NpYXRpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExvYWRCYXNlSW5kZXhTaGlmdDIp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdExvYWRCYXNlSW5kZXhTaGlmdDMyKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RPcHRpbWl6ZU1hdGVyaWFsaXphdGlvbik6CisgICAgICAgIChKU0M6OkIz
OjpnZW5lcmF0ZUxvb3ApOgorICAgICAgICAoSlNDOjpCMzo6Z2VuZXJhdGVMb29wTm90QmFja3dh
cmRzRG9taW5hbnQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEF0b21pY1dlYWtDQVMpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEF0b21pY1N0cm9uZ0NBUyk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0QXRvbWljWGNoZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGVwZW5kMzIpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdERlcGVuZDY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RXYXNtQm91
bmRzQ2hlY2spOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFdhc21BZGRyZXNzKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RGYXN0VExTTG9hZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RmFzdFRM
U1N0b3JlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REb3VibGVMaXRlcmFsQ29tcGFyaXNvbik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RmxvYXRFcXVhbE9yVW5vcmRlcmVkRm9sZGluZyk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0RmxvYXRFcXVhbE9yVW5vcmRlcmVkRm9sZGluZ05hTik6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0RmxvYXRFcXVhbE9yVW5vcmRlcmVkRG9udEZvbGQpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFNodWZmbGVEb2VzbnRUcmFzaENhbGxlZVNhdmVzKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3REZW1vdGVQYXRjaHBvaW50VGVybWluYWwpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFJlcG9ydFVzZWRSZWdpc3RlcnNMYXRlVXNlRm9sbG93ZWRCeUVhcmx5RGVmRG9l
c05vdE1hcmtVc2VBc0RlYWQpOgorICAgICAgICAqIGZ0bC9GVExPdXRwdXQuY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6Ok91dHB1dDo6cmV0KToKKyAgICAgICAgKiB3YXNtL1dhc21CM0lSR2VuZXJh
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6YWRkUmV0dXJuKToK
KwogMjAxOS0wMy0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtKU0NdIERvIG5vdCBjcmVhdGUgSklUIHJlbGF0ZWQgZGF0YSB1bmRlciBub24tSklUIG1v
ZGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNDMzMDEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtODUxLDYgKzg1MSw3IEBACiAJCTJBRDg5MzJCMTdF
Mzg2OEYwMDY2ODI3NiAvKiBIZWFwSXRlcmF0aW9uU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBRDg5MzI5MTdFMzg2OEYwMDY2ODI3NiAvKiBI
ZWFwSXRlcmF0aW9uU2NvcGUuaCAqLzsgfTsKIAkJMkFGNzM4MkQxOEJCQkY5MjAwOEE1QTM3IC8q
IFN0cnVjdHVyZUlEVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJBRjczODJCMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQzNDJG
MzZGNzI0NDA5NjgwNEFEQjI0IC8qIFNvdXJjZU9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDI1QkExMzM3RTQzNDRFMUIyNjlBNjcxIC8qIFNv
dXJjZU9yaWdpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTMzRTc4REVDMjI0NDI3QTUwMDRBRUU5RiAvKiBCM1JldHVyblZhbHVlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0U3OERFQTIyNDQyN0E0
MDA0QUVFOUYgLyogQjNSZXR1cm5WYWx1ZS5oICovOyB9OwogCQkzNzFEODQyRDE3Qzk4QjZFMDBF
Q0Y5OTQgLyogbGliei5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDM3MUQ4NDJDMTdDOThCNkUwMEVDRjk5NCAvKiBsaWJ6LmR5bGliICovOyB9
OwogCQkzN0M3MzhEMjFFREI1NkU0MDAzRjJCMEIgLyogUGFyc2VJbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3QzczOEQxMUVEQjU2NzIwMDNGMkIw
QiAvKiBQYXJzZUludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQxMjk1Mjc3MUQyQ0Y2QkMwMEU3OEI4OSAvKiBidWlsdGluc19nZW5lcmF0ZV9p
bnRlcm5hbHNfd3JhcHBlcl9oZWFkZXIucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTI5NTI3MzFEMkNGNkFDMDBFNzhCODkgLyogYnVpbHRpbnNfZ2Vu
ZXJhdGVfaW50ZXJuYWxzX3dyYXBwZXJfaGVhZGVyLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zMzMzLDYgKzMzMzQsOCBAQAogCQkyQUY3Mzgy
QjE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVJRFRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTMwMzIxNzVERjFBRDQ3RDg5OThCMzRFMSAvKiBKU1NvdXJjZUNvZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTb3VyY2VDb2RlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTMwQTVGNDAzRjExQzRGNTk5Q0Q1OTZENSAvKiBXYXNtU2lnbmF0
dXJlSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNtU2lnbmF0
dXJlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzM0U3OERFQTIyNDQy
N0E0MDA0QUVFOUYgLyogQjNSZXR1cm5WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBCM1JldHVyblZhbHVlLmg7IHBhdGggPSBiMy9CM1JldHVyblZhbHVlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzRTc4REVCMjI0NDI3QTQwMDRBRUU5RiAvKiBCM1Jl
dHVyblZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzUmV0
dXJuVmFsdWUuY3BwOyBwYXRoID0gYjMvQjNSZXR1cm5WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTM3MTE5QTc3MjBDQ0I1REMwMDJDNkRDOSAvKiBXZWJLaXRUYXJnZXRD
b25kaXRpb25hbHMueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViS2l0VGFyZ2V0Q29uZGl0aW9u
YWxzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzFEODQyQzE3Qzk4
QjZFMDBFQ0Y5OTQgLyogbGliei5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0gbGliei5k
eWxpYjsgcGF0aCA9IHVzci9saWIvbGliei5keWxpYjsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07
CiAJCTM3QzczOEQxMUVEQjU2NzIwMDNGMkIwQiAvKiBQYXJzZUludC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYXJzZUludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNTQxMyw2ICs1NDE2LDggQEAKIAkJCQk0MzQyMkE2NTFDMTYyMjFFMDBFMkVCOTggLyog
QjNSZWR1Y2VEb3VibGVUb0Zsb2F0LmggKi8sCiAJCQkJMEZFQzg1QjcxQkUxNDYyRjAwODBGRjc0
IC8qIEIzUmVkdWNlU3RyZW5ndGguY3BwICovLAogCQkJCTBGRUM4NUI4MUJFMTQ2MkYwMDgwRkY3
NCAvKiBCM1JlZHVjZVN0cmVuZ3RoLmggKi8sCisJCQkJMzNFNzhERUIyMjQ0MjdBNDAwNEFFRTlG
IC8qIEIzUmV0dXJuVmFsdWUuY3BwICovLAorCQkJCTMzRTc4REVBMjI0NDI3QTQwMDRBRUU5RiAv
KiBCM1JldHVyblZhbHVlLmggKi8sCiAJCQkJMEZFQzg0RUExQkRBQ0RBQzAwODBGRjc0IC8qIEIz
U2xvdEJhc2VWYWx1ZS5jcHAgKi8sCiAJCQkJMEZFQzg0RUIxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
U2xvdEJhc2VWYWx1ZS5oICovLAogCQkJCTBGMkJCRDkxMUM1RkYzRjUwMDIzRUYyMyAvKiBCM1Nw
YXJzZUNvbGxlY3Rpb24uaCAqLywKQEAgLTk4MDMsNiArOTgwOCw3IEBACiAJCQkJMTRBQjY2NzYx
REVDRjQwOTAwQTU2QzI2IC8qIFVubGlua2VkU291cmNlQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyRTg5MkMxNkQwMjhBRDAwOUU0RkQyIC8qIFVudXNlZFBvaW50ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk5REEwMEIxMUJENTk5NEUwMEY0NTc1QyAvKiBVcGRhdGVDb250ZW50cy5weSBp
biBIZWFkZXJzICovLAorCQkJCTMzRTc4REVDMjI0NDI3QTUwMDRBRUU5RiAvKiBCM1JldHVyblZh
bHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk2M0IzODEzRkM2RkU5MDAwMkQ5QjIgLyogVmFs
dWVQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQyNkE0ODE0NjBDQkIzMDAxMzFGOEYg
LyogVmFsdWVSZWNvdmVyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzlFRTBDMDAxQjRBRkI4NTAw
MDM4NUM5IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjQzMzAxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNTMsNiArMTUzLDcgQEAK
IGIzL0IzUHVyZUNTRS5jcHAKIGIzL0IzUmVkdWNlRG91YmxlVG9GbG9hdC5jcHAKIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwCitiMy9CM1JldHVyblZhbHVlLmNwcAogYjMvQjNTU0FDYWxjdWxhdG9y
LmNwcAogYjMvQjNTbG90QmFzZVZhbHVlLmNwcAogYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAko
cmV2aXNpb24gMjQzMzAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9j
ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MSwxOCArMTcxLDExIEBACiAKIFZhbHVlKiBCYXNp
Y0Jsb2NrOjphcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiBwcm9jLCBPcGNvZGUgb3Bj
b2RlLCBPcmlnaW4gb3JpZ2luKQogewotICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBPb3Bz
IHx8IG9wY29kZSA9PSBSZXR1cm4pOworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBPb3Bz
KTsKICAgICBjbGVhclN1Y2Nlc3NvcnMoKTsKICAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBvcGNvZGUsIG9yaWdpbik7CiB9CiAKLVZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmROZXdD
b250cm9sVmFsdWUoUHJvY2VkdXJlJiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2lu
LCBWYWx1ZSogdmFsdWUpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQob3Bjb2RlID09IFJldHVybik7
Ci0gICAgY2xlYXJTdWNjZXNzb3JzKCk7Ci0gICAgcmV0dXJuIGFwcGVuZE5ldzxWYWx1ZT4ocHJv
Yywgb3Bjb2RlLCBvcmlnaW4sIHZhbHVlKTsKLX0KLQogVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBv
cmlnaW4sIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQogewogICAgIFJFTEVBU0VfQVNT
RVJUKG9wY29kZSA9PSBKdW1wKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jh
c2ljQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNp
Y0Jsb2NrLmgJKHJldmlzaW9uIDI0MzMwMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0Jhc2ljQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDggKzE1NSw2IEBACiAgICAgCiAg
ICAgLy8gVXNlIHRoaXMgZm9yIE9vcHMuCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmLCBPcGNvZGUsIE9yaWdpbik7Ci0gICAgLy8g
VXNlIHRoaXMgZm9yIFJldHVybi4KLSAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5k
TmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYsIE9wY29kZSwgT3JpZ2luLCBWYWx1ZSopOwogICAg
IC8vIFVzZSB0aGlzIGZvciBKdW1wLgogICAgIEpTX0VYUE9SVF9QUklWQVRFIFZhbHVlKiBhcHBl
bmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiwgT3Bjb2RlLCBPcmlnaW4sIGNvbnN0IEZyZXF1
ZW50ZWRCbG9jayYpOwogICAgIC8vIFVzZSB0aGlzIGZvciBCcmFuY2guCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9ucy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWxpbWluYXRlQ29tbW9uU3Vi
ZXhwcmVzc2lvbnMuY3BwCShyZXZpc2lvbiAyNDMzMDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9ucy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI1OCw3ICsyNTgsNyBAQAogICAgICAgICAgICAgcHJvY2Vzc01lbW9yeUFmdGVyQ2xvYmJl
cihtZW1vcnkpOwogICAgIH0KIAotICAgIC8vIFJldHVybiB0cnVlIGlmIHdlIGdvdCByaWQgb2Yg
dGhlIG9wZXJhdGlvbi4gSWYgeW91IGNoYW5nZWQgSVIgaW4gdGhpcyBmdW5jdGlvbiwgeW91IGhh
dmUgdG8KKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgd2UgZ290IHJpZCBvZiB0aGUgb3BlcmF0aW9u
LiBJZiB5b3UgY2hhbmdlZCBJUiBpbiB0aGlzIGZ1bmN0aW9uLCB5b3UgaGF2ZSB0bwogICAgIC8v
IHNldCBtX2NoYW5nZWQgZXZlbiBpZiB5b3UgYWxzbyByZXR1cm4gdHJ1ZS4KICAgICBib29sIHBy
b2Nlc3NNZW1vcnlCZWZvcmVDbG9iYmVyKE1lbW9yeVZhbHVlKiBtZW1vcnkpCiAgICAgewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01hdGhFeHRyYXMuaAkocmV2aXNpb24gMjQzMzAx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiw3ICszNiw3IEBACiBjbGFzcyBWYWx1ZTsKIAogLy8gUmFpc2UgIngiIHRvICJ5
IiBwb3dlci4KLS8vIFJldHVybiBhIG5ldyBibG9jayBjb250aW51aW5nIHRoZSBmbG93IGFuZCB0
aGUgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQuCisvLyBSZXR1cm5zIGEgbmV3IGJsb2Nr
IGNvbnRpbnVpbmcgdGhlIGZsb3cgYW5kIHRoZSB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIHJlc3Vs
dC4KIEpTX0VYUE9SVF9QUklWQVRFIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dE
b3VibGVJbnQzMihQcm9jZWR1cmUmLCBCYXNpY0Jsb2NrKiwgT3JpZ2luLCBWYWx1ZSogeCwgVmFs
dWUqIHkpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1JldHVyblZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNSZXR1cm5WYWx1ZS5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzUmV0dXJuVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNS
ZXR1cm5WYWx1ZS5oIgorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7CisKK1JldHVyblZhbHVlOjp+UmV0dXJuVmFsdWUoKQoreworfQorCitWYWx1
ZSogUmV0dXJuVmFsdWU6OmNsb25lSW1wbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG5ldyBSZXR1
cm5WYWx1ZSgqdGhpcyk7Cit9CisgICAgCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2Vu
ZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzUmV0dXJuVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNSZXR1cm5WYWx1ZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1JldHVyblZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIz
VmFsdWUuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisgICAgCitjbGFzcyBK
U19FWFBPUlRfUFJJVkFURSBSZXR1cm5WYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIGJvb2wgYWNjZXB0cyhLaW5kIGtpbmQpIHsgcmV0dXJuIGtpbmQgPT0gUmV0dXJu
OyB9CisgICAgCisgICAgflJldHVyblZhbHVlKCk7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgVmFs
dWUqIGNsb25lSW1wbCgpIGNvbnN0IG92ZXJyaWRlOworICAgIAorcHJpdmF0ZToKKyAgICBmcmll
bmQgY2xhc3MgUHJvY2VkdXJlOworICAgIAorICAgIFJldHVyblZhbHVlKE9yaWdpbiBvcmlnaW4s
IFZhbHVlKiB2YWx1ZSkKKyAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBSZXR1cm4sIFZv
aWQsIG9yaWdpbiwgdmFsdWUpCisgICAgeworICAgIH0KKyAgICAKKyAgICBSZXR1cm5WYWx1ZShP
cmlnaW4gb3JpZ2luKQorICAgICAgICA6IFZhbHVlKENoZWNrZWRPcGNvZGUsIFJldHVybiwgVm9p
ZCwgb3JpZ2luKQorICAgIHsKKyAgICB9Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMK
KworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYWx1ZS5jcHAJKHJldmlzaW9uIDI0MzMwMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODk5LDcgKzg5OSw2IEBACiAgICAgY2Fz
ZSBOb3A6CiAgICAgY2FzZSBKdW1wOgogICAgIGNhc2UgQnJhbmNoOgotICAgIGNhc2UgUmV0dXJu
OgogICAgIGNhc2UgT29wczoKICAgICBjYXNlIEVudHJ5U3dpdGNoOgogICAgIGNhc2UgV2FzbUJv
dW5kc0NoZWNrOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCShyZXZpc2lvbiAy
NDMzMDEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMjUsMTAgKzMyNSw2IEBACiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkobnVtQXJn
cykpCiAgICAgICAgICAgICAgICAgYmFkS2luZChraW5kLCBudW1BcmdzKTsKICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFJldHVybjoKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWShu
dW1BcmdzID4gMSkpCi0gICAgICAgICAgICAgICAgYmFkS2luZChraW5kLCBudW1BcmdzKTsKLSAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIElkZW50aXR5OgogICAgICAgICBjYXNlIE9w
YXF1ZToKICAgICAgICAgY2FzZSBOZWc6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
LmNwcAkocmV2aXNpb24gMjQzMzAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
My5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJCM05hdGl2
ZVRyYWl0cy5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNSZWR1Y2VT
dHJlbmd0aC5oIgorI2luY2x1ZGUgIkIzUmV0dXJuVmFsdWUuaCIKICNpbmNsdWRlICJCM1Nsb3RC
YXNlVmFsdWUuaCIKICNpbmNsdWRlICJCM1N0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkIzU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zLmgiCkBAIC0yOTAsNyArMjkxLDcgQEAKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiBjb25zdDQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDQyKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY29uc3Q0Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgY29uc3Q0Mik7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYykg
PT0gNDIpOwogfQpAQCAtMzAwLDggKzMwMSw3IEBACiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgeCA9IDQyOwotICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
TG9hZCwgSW50MzIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmeCkpKTsKQEAgLTMxNCw4ICszMTQsNyBAQAogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgaW50IHggPSA0MjsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZh
bHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJngpLApAQCAt
MzM0LDggKzMzMyw3IEBACiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgICAgIGludDY0X3QgeCA9IC00MjsKICAgICAgICAgVmFsdWUqIGJhc2UgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxS
ZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4o
KSwKICAgICAgICAgICAgICAgICBiYXNlLApAQCAtMzQ5LDggKzM0Nyw3IEBACiAgICAgICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIGludDMyX3QgeCA9IC00
MjsKICAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAg
ICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICBiYXNlLApA
QCAtNDAyLDggKzM5OSw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3
PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCBhcmd1bWVudCkgPT0gYXJndW1l
bnQpOwpAQCAtNDEzLDggKzQwOSw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSk7CiAKICAgICBDSEVDSyhj
b21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MpID09IHZhbHVlKTsKQEAgLTQyNCw3ICs0MTksNyBA
QAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2lu
KCkpOwogICAgIGNvbXBpbGVBbmRSdW48dm9pZD4ocHJvYyk7CiB9CiAKQEAgLTQzMyw4ICs0Mjgs
NyBAQAogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
KyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1
ZSkpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEpID09IGEgKyBhKTsK
QEAgLTQ0NCw4ICs0MzgsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5l
dzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApLApAQCAtNDU4LDggKzQ1MSw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAg
cm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCkBAIC00NzIsOCArNDY0LDcgQEAKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRk
LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhKSwKQEAgLTQ5Miw3ICs0ODMsNyBAQAogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCksCiAgICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxS
ZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYjsKICAg
ICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBhLCAmaW5wdXRPdXRwdXQpKTsK
QEAgLTUwOCw3ICs0OTksNyBAQAogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksCiAgICAgICAgIGxvYWQsCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIxKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRf
dD4ocHJvYywgJmEsIGIpID09IGEgKyBiKTsKIH0KQEAgLTUyMyw3ICs1MTQsNyBAQAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCiAgICAg
ICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUs
IE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYjsKICAgICBDSEVDSyghY29t
cGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAtNTM2LDggKzUyNyw3IEBA
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFs
dWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0g
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIAogICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50Pihwcm9jLCBhKSA9PSBhICsgYSk7CkBAIC01NDcsOCArNTM3LDcgQEAKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
QWRkLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC01
NzEsNyArNTYwLDcgQEAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmd1bWVu
dCwgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwg
T3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGEsICZpbnB1dE91dHB1dCkpOwpAQCAtNTg3LDcgKzU3
Niw3IEBACiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgbG9h
ZCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsICZhLCBiKSA9PSBhICsgYik7CiB9CkBAIC02MDIsNyArNTkxLDcgQEAKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAg
ICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3Jl
LCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+
KHByb2MsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNv
bXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTYxMyw4ICs2MDIsNyBA
QAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJv
YywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBBZGQsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBOZWcsIE9yaWdpbigpLApAQCAtNjI4LDggKzYxNiw3IEBACiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3Jp
Z2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCkBAIC02NDcsOCArNjM0LDcgQEAK
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
OwogICAgIFZhbHVlKiBjb25zdFplcm8gPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5W
YWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLAogICAgICAgICAgICAgYXJnLApAQCAtNjY3
LDggKzY1Myw3IEBACiAgICAgICAgIFZhbHVlKiBsb2FkID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnZh
bHVlKSk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5W
YWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIGxvYWQsIGxvYWQpKTsKIAogICAgICAgICBhdXRvIGNvZGUg
PSBjb21waWxlUHJvYyhwcm9jKTsKQEAgLTY4Myw4ICs2NjgsNyBAQAogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8
UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBhICsgYSkpOwpAQCAtNjk2
LDggKzY4MCw3IEBACiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86
OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhLCBiKSwgYSArIGIpKTsKQEAgLTcwOSw4ICs2
OTIsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZUEsIHZh
bHVlQikpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHBy
b2MsIGEpLCBhICsgYikpOwpAQCAtNzIyLDggKzcwNCw3IEBACiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVC
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJ
bmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJu
VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYiksIGEgKyBiKSk7CkBAIC03MzUsOCAr
NzE2LDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3Vi
bGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIGEgKyBiKSk7CkBAIC03
NTEsNyArNzMxLDcgQEAKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBm
bG9hdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSArIGEpKSk7CkBAIC03NjksNyArNzQ5LDcgQEAKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1l
bnQyaW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFkZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFs
dWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwog
fQpAQCAtNzgzLDcgKzc2Myw3IEBACiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFk
ZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5h
cHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYSwgYiksIGEgKyBiKSk7
CiB9CkBAIC03OTgsNyArNzc4LDcgQEAKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBmbG9h
dFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBi
KSkpOwogfQpAQCAtODEzLDcgKzc5Myw3IEBACiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290
LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwg
Y29uc3RWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
ICsgYikpKTsKIH0KQEAgLTgyNiw3ICs4MDYsNyBAQAogICAgIFZhbHVlKiBjb25zdFZhbHVlMiA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdp
bigpLCBjb25zdFZhbHVlMSwgY29uc3RWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAtODQy
LDcgKzgyMiw3IEBACiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQWRkLCBPcmlnaW4oKSwgYXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxv
YXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9y
aWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1
bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsg
YSkpKTsKIH0KQEAgLTg2Miw3ICs4NDIsNyBAQAogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFzRG91YmxlMSwgYXNEb3VibGUy
KTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9h
dFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAt
ODg0LDcgKzg2NCw3IEBACiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
Mik7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2lu
KCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSArIGIpKSk7CkBAIC04OTcsOCArODc3LDcgQEAKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigp
LCB2YWx1ZSwgdmFsdWUpKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCBh
KSA9PSBhICogYSk7CkBAIC05MjQsOCArOTAzLDcgQEAKICAgICAgICAgcHJvYywgU3RvcmUsIE9y
aWdpbigpLCBtdWwsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgJm11bFNsb3QpLCAwKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0
dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9j
LCBhKSk7CiAgICAgQ0hFQ0sobXVsU2xvdCA9PSBhICogYSk7CkBAIC05MzksOCArOTE3LDcgQEAK
ICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAor
ICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigp
LCB2YWx1ZSwgdmFsdWUpLApAQCAtOTUzLDggKzkzMCw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisg
ICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCkBAIC05NjcsOCArOTQzLDcgQEAKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
TXVsLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKQEAgLTk4MSw4ICs5
NTYsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLApAQCAtOTk1LDggKzk2OSw3IEBACiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIE11bCwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KApA
QCAtMTAxOCw4ICs5OTEsNyBAQAogICAgICAgICBWYWx1ZSogbG9hZCA9IHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksICZ2YWx1ZSkpOwotICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAg
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8
UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBsb2FkLCBsb2FkKSk7CiAKICAgICAgICAgYXV0
byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CkBAIC0xMDM5LDcgKzEwMTEsNyBAQAogICAgIFZh
bHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsKICAg
ICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZVByb2MocHJvYyk7CiAKQEAgLTEwNjMsNyArMTAzNSw3IEBACiAgICAgVmFsdWUqIGFyZzIgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMik7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRl
ZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMCwgbXVs
dGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsK
IApAQCAtMTA5MCw3ICsxMDYyLDcgQEAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKTsKICAgICBW
YWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmln
aW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBtdWx0aXBsaWVkLCBhcmcyKTsKLSAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAg
IHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFkZGVkKTsKIAog
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogCkBAIC0xMTE3LDcgKzEwODksNyBA
QAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAg
ICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIGFyZzAsIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZVByb2MocHJvYyk7CiAKQEAgLTExNDEsNyArMTExMyw3IEBACiAgICAgVmFsdWUqIGFyZzIgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMik7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBhZGRl
ZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbXVsdGlwbGll
ZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsK
IApAQCAtMTE2NSw3ICsxMTM3LDcgQEAKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIy
KTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
TXVsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBhcmcwLCBtdWx0aXBsaWVkKTsKLSAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRk
ZWQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFk
ZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogCkBAIC0xMTkyLDcg
KzExNjQsNyBAQAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBs
aWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBh
cmcxKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1
YiwgT3JpZ2luKCksIG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2Rl
ID0gY29tcGlsZVByb2MocHJvYyk7CiAKQEAgLTEyMTksNyArMTE5MSw3IEBACiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRl
ZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgYXJnMCwgbXVs
dGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsK
IApAQCAtMTI0Myw3ICsxMjE1LDcgQEAKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFs
dWUqIHplcm8gPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIs
IE9yaWdpbigpLCB6ZXJvLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5l
dzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGVQcm9jKHByb2MpOwogCkBAIC0xMjY3LDcgKzEyMzksNyBAQAogICAgIFZhbHVlKiBt
dWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBh
cmcwLCBhcmcxKTsKICAgICBWYWx1ZSogemVybyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHplcm8sIG11bHRpcGxpZWQpOwotICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYWRkZWQp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAKQEAgLTEyODQsOCArMTI1
Niw3IEBACiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgdmFsdWUsIHZh
bHVlKSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJv
YywgYSksIGEgKiBhKSk7CkBAIC0xMjk3LDggKzEyNjgsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIw
KTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICBy
b290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSwg
YiksIGEgKiBiKSk7CkBAIC0xMzEwLDggKzEyODAsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsK
ICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZh
bHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBNdWwsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBhICogYikpOwpAQCAtMTMyMyw4ICsx
MjkyLDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgdmFsdWVBLCB2
YWx1ZUIpKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihw
cm9jLCBiKSwgYSAqIGIpKTsKQEAgLTEzMzYsOCArMTMwNCw3IEBACiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFs
dWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBi
KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigp
LCB2YWx1ZUEsIHZhbHVlQikpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxkb3VibGU+KHByb2MpLCBhICogYikpOwpAQCAtMTM1Miw3ICsxMzE5LDcgQEAKICAgICBWYWx1
ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBmbG9hdFZhbHVlKTsK
ICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5l
dzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGEpKSk7CkBAIC0xMzcwLDcgKzEz
MzcsNyBAQAogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgZmxv
YXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMzg1LDcgKzEzNTIsNyBA
QAogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xNDAwLDcgKzEz
NjcsNyBAQAogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0Rmxv
YXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFs
dWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xNDEz
LDcgKzEzODAsNyBAQAogICAgIFZhbHVlKiBjb25zdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBjb25zdFZhbHVlMSwg
Y29uc3RWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAg
cm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwogfQpAQCAtMTQyOSw3ICsxMzk2LDcgQEAKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdp
bigpLCBhc0RvdWJsZSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7
CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBhKSkpOwogfQpAQCAtMTQ0
OSw3ICsxNDE2LDcgQEAKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBNdWwsIE9yaWdpbigpLCBhc0RvdWJsZTEsIGFzRG91YmxlMik7CiAgICAgVmFsdWUq
IGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihi
KSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKIH0KQEAgLTE0NzEsNyArMTQzOCw3
IEBACiAgICAgVmFsdWUqIGRvdWJsZU11bHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwg
ZG91YmxlTXVscmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAq
IGIpKSk7CkBAIC0xNDgzLDggKzE0NTAsNyBAQAogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+
KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERp
diwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBhIC8gYSkpOwpAQCAtMTQ5Niw4ICsxNDYyLDcg
QEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2
YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRG
UFIxKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdp
bigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxkb3VibGU+KHByb2MsIGEsIGIpLCBhIC8gYikpOwpAQCAtMTUwOSw4ICsxNDc0LDcgQEAK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1
ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQ
UkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwg
YSAvIGIpKTsKQEAgLTE1MjIsOCArMTQ4Niw3IEBACiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+
KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERp
diwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYiksIGEgLyBiKSk7CkBAIC0xNTM1LDggKzE0OTgs
NyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxS
ZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSwgYSAvIGIpKTsKQEAgLTE1NTEs
NyArMTUxMyw3IEBACiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgZmxv
YXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1
bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEg
LyBhKSkpOwpAQCAtMTU2OSw3ICsxNTMxLDcgQEAKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1l
bnQyaW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIERpdiwgT3JpZ2luKCksIGZsb2F0VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFs
dWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkpOwog
fQpAQCAtMTU4NCw3ICsxNTQ2LDcgQEAKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBmbG9h
dFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBi
KSkpOwogfQpAQCAtMTU5OSw3ICsxNTYxLDcgQEAKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigp
LCBjb25zdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJf
dD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEgLyBiKSkpOwogfQpAQCAtMTYxMiw3ICsxNTc0LDcgQEAKICAgICBWYWx1ZSogY29uc3RWYWx1
ZTIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBP
cmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYyksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAg
LTE2MjIsOCArMTU4NCw3IEBACiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4o
KSwgdmFsdWUsIHZhbHVlKSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGRvdWJsZT4ocHJvYywgYSksIGZtb2QoYSwgYSkpKTsKQEAgLTE2MzUsOCArMTU5Niw3IEBACiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVB
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJ
bmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwg
dmFsdWVBLCB2YWx1ZUIpKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZG91YmxlPihwcm9jLCBhLCBiKSwgZm1vZChhLCBiKSkpOwpAQCAtMTY0OCw4ICsxNjA4LDcgQEAK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1
ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQ
UkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwg
Zm1vZChhLCBiKSkpOwpAQCAtMTY2MSw4ICsxNjIwLDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8
Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5W
YWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBiKSwgZm1vZChhLCBiKSkpOwpAQCAtMTY3
NCw4ICsxNjMyLDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29u
c3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5h
cHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIGZtb2QoYSwg
YikpKTsKQEAgLTE2OTAsNyArMTY0Nyw3IEBACiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQz
Mik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9k
LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmbW9kKGEsIGEpKSkpKTsKQEAgLTE3MDgs
NyArMTY2NSw3IEBACiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigp
LCBmbG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZm1vZChhLCBi
KSkpKSk7CiB9CkBAIC0xNzIzLDcgKzE2ODAsNyBAQAogICAgIFZhbHVlKiBjb25zdFZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2lu
KCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTczOCw3ICsxNjk1
LDcgQEAKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVl
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVu
ZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmbW9k
KGEsIGIpKSkpKTsKIH0KQEAgLTE3NTEsNyArMTcwOCw3IEBACiAgICAgVmFsdWUqIGNvbnN0VmFs
dWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwg
T3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8Zmxv
YXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTc2Nyw3ICsxNzI0LDcgQEAKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBhc0Rv
dWJsZSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxS
ZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBhKSkpOwogfQpAQCAtMTc4Nyw3ICsxNzQ0
LDcgQEAKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBE
aXYsIE9yaWdpbigpLCBhc0RvdWJsZTEsIGFzRG91YmxlMik7CiAgICAgVmFsdWUqIGZsb2F0UmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4o
KSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE4MDksNyArMTc2Niw3IEBACiAgICAg
VmFsdWUqIGRvdWJsZURpdnJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlRGl2
cmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CkBA
IC0xODI5LDcgKzE3ODYsNyBAQAogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEp
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBVRGl2
LCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0tfRVEo
Y29tcGlsZUFuZFJ1bjx1aW50MzJfdD4ocHJvYywgYSwgYiksIGEgLyBiKTsKIH0KQEAgLTE4NDUs
NyArMTgwMiw3IEBACiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFVEaXYsIE9yaWdpbigpLCBhcmd1bWVudDEs
IGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywg
T3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDS19FUShjb21waWxlQW5kUnVuPHVpbnQ2NF90
Pihwcm9jLCBhLCBiKSwgYSAvIGIpOwogfQpAQCAtMTg2Myw3ICsxODIwLDcgQEAKICAgICBWYWx1
ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVU1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1l
bnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgcmVzdWx0KTsKIAogICAgIENIRUNLX0VRKGNvbXBpbGVBbmRSdW48dWludDMyX3Q+KHByb2Ms
IGEsIGIpLCBhICUgYik7CiB9CkBAIC0xODc5LDcgKzE4MzYsNyBAQAogICAgIFZhbHVlKiBhcmd1
bWVudDEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIxKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBVTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5h
cHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIAogICAg
IENIRUNLX0VRKGNvbXBpbGVBbmRSdW48dWludDY0X3Q+KHByb2MsIGEsIGIpLCBhICUgYik7CiB9
CkBAIC0xODg5LDggKzE4NDYsNyBAQAogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3Jp
Z2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihw
cm9jLCBhKSk7CkBAIC0xOTAwLDggKzE4NTYsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApLApAQCAtMTkxNCw4ICsxODY5LDcgQEAKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3Vi
LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKQEAgLTE5MjgsOCArMTg4
Miw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCks
CkBAIC0xOTQzLDggKzE4OTYsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVu
ZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBOZWcsIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTk2NSw3ICsx
OTE3LDcgQEAKICAgICBWYWx1ZSogbmVnQXJndW1lbnRNaW51c09uZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwKICAgICAgICAgbmVnQXJndW1lbnQsCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIG5l
Z0FyZ3VtZW50TWludXNPbmUpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJv
YywgT3JpZ2luKCksIG5lZ0FyZ3VtZW50TWludXNPbmUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48aW50Pihwcm9jLCBhKSA9PSAtYSAtIDEpOwogfQogCkBAIC0xOTczLDggKzE5MjUsNyBAQAog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBTdWIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLApAQCAtMTk5Miw3ICsxOTQzLDcgQEAKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIGxvYWQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAg
ICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGEsICZiKSA9PSBhIC0gYik7CiB9
CkBAIC0yMDA3LDcgKzE5NTgsNyBAQAogICAgICAgICBsb2FkLAogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMSkpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9y
aWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJv
YywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYTsKICAgICBDSEVDSyghY29tcGls
ZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmaW5wdXRPdXRwdXQsIGIpKTsKQEAgLTIwMjQsNyArMTk3
NSw3IEBACiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCBhKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3
PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDY0X3QgaW5wdXRPdXRwdXQgPSBiOwog
ICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC0y
MDQxLDcgKzE5OTIsNyBAQAogICAgICAgICBsb2FkLAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3Qt
PmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0
cHV0ID0gYTsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1
dCkpOwpAQCAtMjA1Myw4ICsyMDA0LDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5h
cHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC0yMDcxLDggKzIwMjEsNyBAQAogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBT
dWIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKQEAgLTIw
ODcsOCArMjAzNiw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
Ci0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJl
dHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCkBAIC0yMTA5LDcgKzIw
NTcsNyBAQAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGxvYWQsIGFyZ3VtZW50
KTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4o
KSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9y
aWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgJmlucHV0T3V0cHV0LCBiKSk7CkBAIC0yMTI1LDcgKzIwNzMsNyBA
QAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1
bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFyZ3VtZW50
LCBsb2FkKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBhLCAmYikgPT0gYSAtIGIpOwogfQpAQCAtMjE0MCw3ICsyMDg4LDcgQEAKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAgICAg
ICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBP
cmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBp
bGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTIxNTcsNyArMjEwNSw3IEBA
CiAgICAgICAgIGxvYWQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBiKSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBhOwogICAgIENI
RUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC0yMTc2LDcg
KzIxMjQsNyBAQAogICAgIFZhbHVlKiBuZWdBcmd1bWVudE1pbnVzT25lID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLAogICAgICAgICBuZWdBcmd1bWVudCwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsK
LSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
bmVnQXJndW1lbnRNaW51c09uZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgbmVnQXJndW1lbnRNaW51c09uZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQ+KHByb2MsIGEpID09IC1hIC0gMSk7CiB9CiAKQEAgLTIxODUsOCArMjEzMyw3IEBA
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAg
IHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSks
IGEgLSBhKSk7CkBAIC0yMTk4LDggKzIxNDUsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAg
ICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5h
cHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSwgYiksIGEg
LSBiKSk7CkBAIC0yMjExLDggKzIxNTcsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBW
YWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIs
IE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBhIC0gYikpOwpAQCAtMjIyNCw4ICsyMTY5LDcg
QEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2
YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAg
IHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIp
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBi
KSwgYSAtIGIpKTsKQEAgLTIyMzcsOCArMjE4MSw3IEBACiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1
ZUEsIHZhbHVlQikpOwogICAgIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZG91YmxlPihwcm9jKSwgYSAtIGIpKTsKQEAgLTIyNTMsNyArMjE5Niw3IEBACiAgICAgVmFsdWUq
IGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAg
ICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXc8
UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBhKSkpOwpAQCAtMjI3MSw3ICsyMjE0
LDcgQEAKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGZsb2F0
VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1
bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjI4Niw3ICsyMjI5LDcgQEAK
ICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxS
ZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjMwMSw3ICsyMjQ0
LDcgQEAKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVl
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVu
ZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjMxNCw3
ICsyMjU3LDcgQEAKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29u
c3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNv
bnN0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYyksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIzMzAsNyArMjI3Myw3IEBACiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4o
KSwgYXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBl
bmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYSkpKTsKIH0KQEAgLTIzNTAs
NyArMjI5Myw3IEBACiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3ViLCBPcmlnaW4oKSwgYXNEb3VibGUxLCBhc0RvdWJsZTIpOwogICAgIFZhbHVlKiBm
bG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwg
T3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBAIC0yMzcyLDcgKzIzMTUsNyBA
QAogICAgIFZhbHVlKiBkb3VibGVTdWJyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRv
dWJsZVN1YnJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
KyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGIpLCAmZWZmZWN0KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBi
KSkpOwpAQCAtMjM5Miw4ICsyMzM1LDcgQEAKICAgICAgICAgcmlnaHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIHZhbHVlTW9kaWZpZXIsIHZhbHVlVHlwZSwgT3JpZ2luKCksIHJpZ2h0
KTsKICAgICB9CiAKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIs
IE9yaWdpbigpLCBsZWZ0LCByaWdodCkpOwogCiAgICAgbG93ZXJUb0FpckZvclRlc3RpbmcocHJv
Yyk7CkBAIC0yNDE2LDggKzIzNTgsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFw
cGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBOZWcsIE9yaWdpbigpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJ
bmZvOjphcmd1bWVudEZQUjApKSk7CkBAIC0yNDMyLDggKzIzNzMsNyBAQAogICAgIFZhbHVlKiBh
cmd1bWVudDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQz
Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTmVnLCBPcmlnaW4o
KSwgZmxvYXRWYWx1ZSkpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxm
bG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgLWEpKTsKQEAgLTI0NDksNyAr
MjM4OSw3IEBACiAgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTmVnLCBPcmlnaW4oKSwgYXNEb3Vi
bGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICBy
b290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCAtYSkpOwogfQpAQCAtMjQ1OCw4ICsyMzk4LDcgQEAKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQml0QW5kLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKQEAgLTI0
NzMsOCArMjQxMiw3IEBACiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICAgICAgYXJndW1lbnQsCkBAIC0yNDkxLDggKzI0
MjksNyBAQAogICAgIFZhbHVlKiBhcmdCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIFZhbHVlKiBu
b3RBID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRYb3IsIE9yaWdpbigpLCBhcmdB
LCByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpKTsKICAg
ICBWYWx1ZSogbm90QiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0WG9yLCBPcmln
aW4oKSwgYXJnQiwgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IC0xKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICAgICAgbm90QSwKQEAgLTI1MDgsOCArMjQ0
NSw3IEBACiAgICAgVmFsdWUqIGFyZ0EgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIG5v
dEEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdFhvciwgT3JpZ2luKCksIGFyZ0Es
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSkpOwogICAg
IFZhbHVlKiBjc3RCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0QW5kLCBPcmlnaW4oKSwKICAgICAgICAgICAgIG5vdEEsCkBAIC0yNTIyLDggKzI0
NTgsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLApAQCAtMjUzNiw4ICsyNDcxLDcg
QEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwK
QEAgLTI1NTAsOCArMjQ4NCw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5k
TmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCkBAIC0y
NTY4LDggKzI1MDEsNyBAQAogICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAot
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1
cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICAgICAgaW5uZXJC
aXRBbmQsCkBAIC0yNTg2LDggKzI1MTgsNyBAQAogICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFw
cGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLApA
QCAtMjYwMCw4ICsyNTMxLDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC0yNjIwLDggKzI1NTAsNyBAQAogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICAgICAgYXJndW1lbnQsCkBAIC0y
NjM0LDggKzI1NjMsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxS
ZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLApAQCAtMjY0OCw4
ICsyNTc2LDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJu
VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCkBAIC0yNjY0LDggKzI1OTEsNyBAQAogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAor
ICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdp
bigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGEpLApAQCAtMjY4Niw4ICsyNjEyLDcgQEAKICAgICAgICAgICAgIHByb2MsIFRydW5j
LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAor
ICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdp
bigpLAogICAgICAgICAgICAgaW5uZXJCaXRBbmQsCkBAIC0yNzA2LDggKzI2MzEsNyBAQAogICAg
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9j
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCkBAIC0yNzMzLDcgKzI2NTcsNyBAQAogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTUp
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBzZWxlY3QpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIHNlbGVjdCk7CiAKICAgICBpbnQ2NF90IGV4cGVjdGVkID0gKGEgPT0gYikgPyAtNSA6
IDQyOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYSwgYikgPT0gZXhw
ZWN0ZWQpOwpAQCAtMjc1MCw3ICsyNjc0LDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9y
aWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5l
dzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGJpdEFuZERvdWJsZShhLCBh
KSkpOwogfQpAQCAtMjc2Miw3ICsyNjg2LDcgQEAKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBP
cmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVu
ZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSwgYiksIGJpdEFuZERvdWJs
ZShhLCBiKSkpOwogfQpAQCAtMjc3NCw3ICsyNjk4LDcgQEAKICAgICBWYWx1ZSogYXJndW1lbnRB
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJ
bmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3Vt
ZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFs
dWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEsIGIpLCBiaXRBbmREb3VibGUoYSwgYikpKTsKIH0K
QEAgLTI3ODYsNyArMjcxMCw3IEBACiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIGFy
Z3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIGJpdEFuZERv
dWJsZShhLCBiKSkpOwogfQpAQCAtMjgwNCw3ICsyNzI4LDcgQEAKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAg
IHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdCk7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXRBbmRGbG9hdChhLCBhKSkpOwogfQpAQCAtMjgyMCw3ICsy
NzQ0LDcgQEAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVu
dEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGIpKSwgYml0QW5kRmxvYXQoYSwgYikpKTsKIH0KQEAgLTI4MzQsNyArMjc1
OCw3IEBACiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKTsKICAgICBWYWx1ZSogYXJndW1l
bnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFu
ZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5h
cHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXRBbmRGbG9hdChhLCBiKSkp
OwogfQpAQCAtMjg0Niw3ICsyNzcwLDcgQEAKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVl
KiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAg
IHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdCk7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSwgYml0QW5k
RmxvYXQoYSwgYikpKTsKIH0KQEAgLTI4NjUsNyArMjc4OSw3IEBACiAgICAgVmFsdWUqIGFyZ3Vt
ZW50QmFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91Ymxl
LCBPcmlnaW4oKSwgYXJndW1lbnRCKTsKICAgICBWYWx1ZSogZG91YmxlUmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEFhc0RvdWJs
ZSwgYXJndW1lbnRCYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGRvdWJsZVJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGZsb2F0UmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBkb3VibGUgZG91YmxlQSA9IGE7CiAgICAg
ZG91YmxlIGRvdWJsZUIgPSBiOwpAQCAtMjg3Nyw4ICsyODAxLDcgQEAKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9y
aWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLApAQCAtMjg5Miw4ICsyODE1LDcg
QEAKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmln
aW4oKSwKICAgICAgICAgICAgIGFyZ3VtZW50LApAQCAtMjkxOSw4ICsyODQxLDcgQEAKICAgICAg
ICAgICAgIDogcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBh
cmdCLCBhcmdBKTsKICAgICAgICAgVmFsdWUqIGFuZEFDID0gaSAmIDEgPyByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ0EsIGFyZ0MpCiAgICAgICAgICAg
ICA6IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJnQywg
YXJnQSk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5W
YWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAg
ICBhbmRBQiwKQEAgLTI5NDYsNyArMjg2Nyw3IEBACiAgICAgICAgICAgICA6IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJnQiwgYXJnQSk7CiAgICAgICAg
IFZhbHVlKiByZXN1bHQgPSBpICYgMiA/IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
T3IsIE9yaWdpbigpLCBhbmRBQiwgYXJnQSkKICAgICAgICAgICAgIDogcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXRPciwgT3JpZ2luKCksIGFyZ0EsIGFuZEFCKTsKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJl
c3VsdCk7CiAKICAgICAgICAgQ0hFQ0tfRVEoY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBh
LCBiKSwgKChhICYgYikgfCBhKSk7CiAgICAgfQpAQCAtMjk2MCw4ICsyODgxLDcgQEAKICAgICBW
YWx1ZSogYXJnQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICBWYWx1ZSogbm90QSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0WG9yLCBPcmlnaW4oKSwgYXJnQSwgcm9vdC0+YXBwZW5k
TmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKSk7CiAgICAgVmFsdWUqIG5vdEIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdFhvciwgT3JpZ2luKCksIGFyZ0IsIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSkpOwotICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9y
aWdpbigpLAogICAgICAgICAgICAgbm90QSwKQEAgLTI5NzcsOCArMjg5Nyw3IEBACiAgICAgVmFs
dWUqIGFyZ0EgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIG5vdEEgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdFhvciwgT3JpZ2luKCksIGFyZ0EsIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSkpOwogICAgIFZhbHVlKiBjc3RCID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9y
aWdpbigpLAogICAgICAgICAgICAgbm90QSwKQEAgLTI5OTEsOCArMjkxMCw3IEBACiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dE9yLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhKSwKQEAgLTMwMDUsOCArMjkyMyw3IEBACiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKQEAgLTMwMTksOCArMjkzNiw3
IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKSwKQEAgLTMwMzcsOCArMjk1Myw3IEBACiAg
ICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikp
OwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0T3IsIE9yaWdpbigpLAogICAgICAgICAgICAgaW5uZXJCaXRPciwKQEAgLTMwNTUsOCArMjk3
MCw3IEBACiAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0T3IsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLApAQCAtMzA2OSw4ICsyOTgzLDcgQEAKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQml0T3IsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
QEAgLTMwOTAsOCArMzAwMyw3IEBACiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZh
bHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKICAgICAgICAgICAgIGFyZ3VtZW50LApA
QCAtMzEwNCw4ICszMDE2LDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLApAQCAtMzEx
OCw4ICszMDI5LDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
LSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0
dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKQEAgLTMxMzQsOCArMzA0NCw3IEBACiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmln
aW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBhKSwKQEAgLTMxNTYsOCArMzA2NSw3IEBACiAgICAgICAgICAgICBwcm9jLCBUcnVu
YywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
KyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdp
bigpLAogICAgICAgICAgICAgaW5uZXJCaXRPciwKQEAgLTMxNzYsOCArMzA4NCw3IEBACiAgICAg
ICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0T3IsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLApAQCAtMzE5Nyw3ICszMTA0LDcgQEAKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5m
bzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXRPciwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBh
KSwgYml0T3JEb3VibGUoYSwgYSkpKTsKIH0KQEAgLTMyMDksNyArMzExNiw3IEBACiAgICAgVmFs
dWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZv
Ojphcmd1bWVudEZQUjEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdE9yLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3Vs
dCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywg
YSwgYiksIGJpdE9yRG91YmxlKGEsIGIpKSk7CiB9CkBAIC0zMjIxLDcgKzMxMjgsNyBAQAogICAg
IFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50
QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0T3Is
IE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhLCBiKSwgYml0T3JEb3Vi
bGUoYSwgYikpKTsKIH0KQEAgLTMyMzMsNyArMzE0MCw3IEBACiAgICAgVmFsdWUqIGFyZ3VtZW50
QSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7
CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0T3IsIE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
cmVzdWx0KTsKICAgICAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJs
ZT4ocHJvYyksIGJpdE9yRG91YmxlKGEsIGIpKSk7CiB9CkBAIC0zMjUxLDcgKzMxNTgsNyBAQAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdE9yLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50
KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdp
bigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9h
dD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0T3JGbG9hdChhLCBhKSkpOwog
fQpAQCAtMzI2Nyw3ICszMTc0LDcgQEAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpKTsKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRPciwgT3Jp
Z2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXRPckZsb2F0KGEsIGIpKSk7CiB9CkBA
IC0zMjgxLDcgKzMxODgsNyBAQAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSk7CiAgICAg
VmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXRPciwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXRPckZs
b2F0KGEsIGIpKSk7CiB9CkBAIC0zMjkzLDcgKzMyMDAsNyBAQAogICAgIFZhbHVlKiBhcmd1bWVu
dEEgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7
CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXRPciwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBy
ZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJv
YyksIGJpdE9yRmxvYXQoYSwgYikpKTsKIH0KQEAgLTMzMTIsNyArMzIxOSw3IEBACiAgICAgVmFs
dWUqIGFyZ3VtZW50QmFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9h
dFRvRG91YmxlLCBPcmlnaW4oKSwgYXJndW1lbnRCKTsKICAgICBWYWx1ZSogZG91YmxlUmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRPciwgT3JpZ2luKCksIGFyZ3VtZW50
QWFzRG91YmxlLCBhcmd1bWVudEJhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgZG91
YmxlUmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKICAgICAKICAgICBkb3VibGUgZG91Ymxl
QSA9IGE7CiAgICAgZG91YmxlIGRvdWJsZUIgPSBiOwpAQCAtMzMyNCw4ICszMjMxLDcgQEAKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQml0WG9yLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKQEAgLTMz
MzksOCArMzI0NSw3IEBACiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRYb3IsIE9yaWdpbigpLAogICAgICAgICAgICAgYXJndW1lbnQsCkBAIC0zMzY2LDggKzMy
NzEsNyBAQAogICAgICAgICAgICAgOiByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFu
ZCwgT3JpZ2luKCksIGFyZ0IsIGFyZ0EpOwogICAgICAgICBWYWx1ZSogYW5kQUMgPSBpICYgMSA/
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJnQSwgYXJn
QykKICAgICAgICAgICAgIDogcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9y
aWdpbigpLCBhcmdDLCBhcmdBKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAotICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgICAgICBhbmRBQiwKQEAgLTMzOTMsNyArMzI5Nyw3IEBACiAgICAgICAgICAg
ICA6IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJnQiwg
YXJnQSk7CiAgICAgICAgIFZhbHVlKiByZXN1bHQgPSBpICYgMiA/IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0WG9yLCBPcmlnaW4oKSwgYW5kQUIsIGFyZ0EpCiAgICAgICAgICAgICA6
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0WG9yLCBPcmlnaW4oKSwgYXJnQSwgYW5k
QUIpOwotICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgCiAgICAgICAgIENIRUNLX0VRKGNvbXBp
bGVBbmRSdW48aW50NjRfdD4ocHJvYywgYSwgYiksICgoYSAmIGIpIF4gYSkpOwogICAgIH0KQEAg
LTM0MDMsOCArMzMwNyw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3
PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCkBAIC0zNDE3
LDggKzMzMjAsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAot
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1
cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApLApAQCAtMzQzMSw4ICszMzMzLDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICBy
b290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhKSwKQEAgLTM0NDksOCArMzM1MCw3IEBACiAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCiAgICAgICAg
ICAgICBpbm5lckJpdFhvciwKQEAgLTM0NjcsOCArMzM2Nyw3IEBACiAgICAgICAgIHByb2MsIEJp
dFhvciwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisg
ICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2lu
KCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYSksCkBAIC0zNDgxLDggKzMzODAsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKQEAgLTM1MDIsOCArMzQwMCw3IEBA
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
cHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhv
ciwgT3JpZ2luKCksCiAgICAgICAgICAgICBhcmd1bWVudCwKQEAgLTM1MTYsOCArMzQxMyw3IEBA
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9j
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEJpdFhvciwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCkBAIC0zNTMwLDggKzM0MjYsNyBAQAogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRYb3IsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
QEAgLTM1NDYsOCArMzQ0MSw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5k
TmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCkBAIC0z
NTY4LDggKzM0NjIsNyBAQAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5k
TmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCiAgICAgICAgICAg
ICBpbm5lckJpdFhvciwKQEAgLTM1ODgsOCArMzQ4MSw3IEBACiAgICAgICAgICAgICBwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhKSwKQEAgLTM2MDIsOCArMzQ5NCw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisg
ICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2lu
KCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgLTEpLApAQCAtMzYxNiw4ICszNTA3LDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICBy
b290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCAtMSksCkBAIC0zNjM2LDcgKzM1MjYsNyBAQAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpLAogICAgICAgICBsb2FkKTsKICAgICByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgbm90TG9hZCwg
YWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGlu
dDY0X3QgaW5wdXQgPSBhOwogICAgIGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmlucHV0
KTsKQEAgLTM2NDksOCArMzUzOSw3IEBACiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRYb3IsIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwK
ICAgICAgICAgICAgIGFyZ3VtZW50KSk7CkBAIC0zNjYxLDggKzM1NTAsNyBAQAogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRY
b3IsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIC0xKSwKQEAgLTM2ODEsNyArMzU2OSw3IEBACiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSksCiAgICAgICAgIGxv
YWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdp
bigpLCBub3RMb2FkLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCiAgICAgaW50MzJfdCBpbnB1dCA9IGE7CiAgICAgY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCAmaW5wdXQpOwpAQCAtMzcwOSwxMiArMzU5NywxMCBAQAogICAgICAgICBhcmdzQXJl
Tm90RXF1YWwsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRC
bG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
LSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtNDIp
KTsKIAogICAgIGludDMyX3QgZXhwZWN0ZWRWYWx1ZSA9IChhICE9IGIpID8gNDIgOiAtNDI7CkBA
IC0zNzQwLDEwICszNjI2LDEwIEBACiAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGJpdE5vdEFyZ3NBcmVFcXVhbCwgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksCisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAg
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIp
KTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmln
aW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAtNDIpKTsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgaW50MzJfdCBleHBlY3RlZFZh
bHVlID0gNDI7CkBAIC0zNzU0LDggKzM2NDAsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApLApAQCAtMzc3MCw4ICszNjU1LDcgQEAKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hs
LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhKSwKQEAgLTM3ODUsOCArMzY2OSw3IEBACiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2lu
KCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCkBAIC0zODAzLDggKzM2ODYsNyBAQAog
ICAgIFZhbHVlKiBhcmdBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBjb25zdEIgPSBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFs
dWUqIGlubmVyU2hpZnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNTaHIsIE9yaWdp
bigpLCBhcmdBLCBjb25zdEIpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJu
VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKICAgICAgICAgICAgIGlubmVyU2hpZnQs
CkBAIC0zODIxLDggKzM3MDMsNyBAQAogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTaGws
IE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYSkgPT0gKGEgPDwgYSkpOwpAQCAtMzgzMiw4ICszNzEzLDcgQEAKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
U2hsLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC0z
ODUwLDggKzM3MzAsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxS
ZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLApAQCAtMzg2NSw4ICsz
NzQ0LDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFs
dWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCkBAIC0zODg3LDggKzM3NjUsNyBAQAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
OwogICAgIFZhbHVlKiBjb25zdEIgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIGlubmVyU2hpZnQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFpTaHIsIE9yaWdpbigpLCBhcmdBLCBjb25zdEIpOwotICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAg
ICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIGlubmVyU2hpZnQsCkBAIC0zOTAyLDggKzM3NzksNyBAQAogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hy
LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKQEAgLTM5MTgsOCArMzc5
NCw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLApAQCAtMzkzMiw4ICszODA3LDcgQEAK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU1NociwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCkBAIC0z
OTQ5LDggKzM4MjMsNyBAQAogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTU2hyLCBPcmln
aW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGEpID09IChhID4+IChhICYgMzEpKSk7CkBAIC0zOTYwLDggKzM4MzMsNyBAQAogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTU2hyLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBA
IC0zOTc4LDggKzM4NTAsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5l
dzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKSwKQEAgLTM5OTIs
OCArMzg2Myw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0g
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKQEAgLTQwMDgsOCArMzg3OCw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisg
ICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLApAQCAtNDAyNCw4ICszODkzLDcgQEAKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgWlNociwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCkBAIC00MDM4LDggKzM5MDYsNyBAQAogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hy
LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKQEAgLTQwNTUsOCArMzky
Miw3IEBACiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFpTaHIsIE9yaWdpbigpLCB2YWx1
ZSwgdmFsdWUpKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48dWludDMyX3Q+KHByb2MsIGEp
ID09IChhID4+IChhICYgMzEpKSk7CkBAIC00MDY2LDggKzM5MzIsNyBAQAogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC00MDg0LDgg
KzM5NDksNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5W
YWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKSwKQEAgLTQwOTgsOCArMzk2Miw3
IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKQEAgLTQxMzEsNyArMzk5NCw3IEBACiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAg
VmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdp
bigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGNselZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1
bnNpZ25lZD4ocHJvYywgYSkgPT0gY291bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTQxNDIs
NyArNDAwNSw3IEBACiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAg
TWVtb3J5VmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjbHpWYWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2x6LCBPcmlnaW4oKSwgdmFsdWUpOwotICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1
ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY2x6
VmFsdWUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48dW5zaWduZWQ+KHByb2MsICZhKSA9PSBj
b3VudExlYWRpbmdaZXJvKGEpKTsKIH0KIApAQCAtNDE1Myw3ICs0MDE2LDcgQEAKICAgICBWYWx1
ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogY2x6VmFsdWUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENseiwgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFs
dWUpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNs
elZhbHVlKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPHVuc2lnbmVkPihwcm9jLCBhKSA9PSBj
b3VudExlYWRpbmdaZXJvKGEpKTsKIH0KIApAQCAtNDE2NCw3ICs0MDI3LDcgQEAKICAgICBWYWx1
ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogdmFsdWUgPSBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwg
YWRkcmVzcyk7CiAgICAgVmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBDbHosIE9yaWdpbigpLCB2YWx1ZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZhbHVlKTsKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgJmEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwog
fQogCkBAIC00MTcyLDggKzQwMzUsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFw
cGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBYnMsIE9yaWdpbigpLAogICAgICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIwKSkpOwpAQCAtNDE4Niw4ICs0MDQ4LDcgQEAKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWJzLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48ZG91YmxlPihwcm9jKSwgZmFicyhhKSkpOwpAQCAtNDE5OSw4ICs0MDYwLDcgQEAK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhZGRy
ZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBh
ZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9j
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9y
aWdpbigpLCBsb2FkRG91YmxlKSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGRvdWJsZT4ocHJvYywgJmEpLCBmYWJzKGEpKSk7CkBAIC00MjEzLDcgKzQwNzMsNyBAQAog
ICAgIFZhbHVlKiBmaXJzdEFicyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsKICAgICBWYWx1ZSogc2Vjb25kQWJz
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBmaXJzdEFicyk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNlY29uZEFicyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmln
aW4oKSwgc2Vjb25kQWJzKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZG91YmxlPihwcm9jLCBhKSwgZmFicyhmYWJzKGEpKSkpOwogfQpAQCAtNDIyNSw3ICs0MDg1LDcg
QEAKICAgICBWYWx1ZSogbmVnID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBOZWcsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiBhYnMgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIG5lZyk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFicyk7CisgICAg
cm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYWJzKTsKICAgICAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGZh
YnMoLSBhKSkpOwogfQpAQCAtNDIzNyw3ICs0MDk3LDcgQEAKICAgICBWYWx1ZSogYXJndW1lbnRB
c0ludDY0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91YmxlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3Vt
ZW50QXNJbnQ2NCk7CiAgICAgVmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudEFzRG91YmxlKTsKLSAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJzVmFsdWUpOworICAg
IHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFic1ZhbHVlKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50NjRfdD4oYSkpLCBmYWJzKGEpKSk7CiB9CkBAIC00MjUxLDcgKzQxMTEsNyBA
QAogICAgIFZhbHVlKiBhYnNWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJz
LCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJsZSk7CiAgICAgVmFsdWUqIHJlc3VsdEFzSW50NjQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYWJz
VmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdEFzSW50NjQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdEFzSW50NjQpOwogCiAgICAgaW50NjRfdCBleHBlY3Rl
ZFJlc3VsdCA9IGJpdHdpc2VfY2FzdDxpbnQ2NF90PihmYWJzKGEpKTsKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQ2NF90
PihhKSksIGV4cGVjdGVkUmVzdWx0KSk7CkBAIC00MjY2LDcgKzQxMjYsNyBAQAogICAgIFZhbHVl
KiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKSk7CiB9CkBAIC00Mjc4
LDcgKzQxMzgsNyBAQAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAg
VmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0
dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKSk7
CiB9CkBAIC00MjkxLDcgKzQxNTEsNyBAQAogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwg
YWRkcmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWJzLCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsK
LSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+
KGZhYnMoYSkpKSkpOwogfQpAQCAtNDMwNSw3ICs0MTY1LDcgQEAKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0QWJzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZEFicyA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgZmlyc3RBYnMpOwot
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
ZWNvbmRBYnMpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIHNlY29uZEFicyk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZs
b2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBzdGF0aWNfY2FzdDxmbG9hdD4o
ZmFicyhmYWJzKGEpKSkpKTsKIH0KQEAgLTQzMTksNyArNDE3OSw3IEBACiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBuZWcgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIE5lZywgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogYWJzID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBuZWcpOwotICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhYnMpOworICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFicyk7CiAgICAgCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEpKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoLSBhKSkpKTsKIH0KQEAg
LTQzMzIsNyArNDE5Miw3IEBACiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUq
IGFyZ3VtZW50QXNmbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBhcmd1bWVudEFzSW50MzIpOwogICAgIFZhbHVlKiBhYnNWYWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnRBc2Zsb2F0
KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgYWJzVmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGFic1ZhbHVlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIHN0YXRpY19jYXN0PGZsb2F0
PihmYWJzKGEpKSkpOwogfQpAQCAtNDM0Nyw3ICs0MjA3LDcgQEAKICAgICBWYWx1ZSogYWJzVmFs
dWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50
QXNmbG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdEFzSW50NjQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYWJzVmFsdWUpOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdEFzSW50
NjQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJl
c3VsdEFzSW50NjQpOwogCiAgICAgaW50MzJfdCBleHBlY3RlZFJlc3VsdCA9IGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpOwogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpKSwgZXhwZWN0ZWRSZXN1bHQpKTsKQEAgLTQzNjQsNyArNDIyNCw3IEBACiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXNE
b3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0KQEAg
LTQzODIsNyArNDI0Miw3IEBACiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKICAgICBW
YWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVBZGRy
ZXNzKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIGludDMy
X3QgcmVzdWx0VmFsdWUgPSBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhKSwgJmVmZmVjdCk7CkBAIC00Mzk0LDggKzQyNTQsNyBAQAogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBDZWls
LCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpKTsKQEAgLTQ0MDgs
OCArNDI2Nyw3IEBACiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwotICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290
LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBjZWlsKGEpKSk7
CkBAIC00NDIxLDggKzQyNzksNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5
VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExv
YWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBl
bmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBsb2FkRG91YmxlKSk7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJmEpLCBjZWlsKGEpKSk7
CkBAIC00NDM1LDcgKzQyOTIsNyBAQAogICAgIFZhbHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MCkpOwogICAgIFZhbHVlKiBzZWNvbmRDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBDZWlsLCBPcmlnaW4oKSwgZmlyc3RDZWlsKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQ2VpbCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgc2Vjb25kQ2VpbCk7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGNlaWwoYSkp
KTsKIH0KQEAgLTQ0NDcsNyArNDMwNCw3IEBACiAgICAgVmFsdWUqIGZpcnN0Q2VpbCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1l
bnRGUFIwKSk7CiAgICAgVmFsdWUqIHdyYXBwaW5nRmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgZmlyc3RDZWlsKTsKLSAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgd3JhcHBpbmdG
bG9vcik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJv
YywgYSksIGNlaWwoYSkpKTsKIH0KQEAgLTQ0NTksOCArNDMxNiw3IEBACiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91YmxlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgYXJndW1lbnQpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCks
IGFyZ3VtZW50QXNEb3VibGUpKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48ZG91YmxlPihwcm9jLCBhKSwgY2VpbChzdGF0aWNfY2FzdDxkb3VibGU+KGEpKSkpOwpAQCAt
NDQ3NCw4ICs0MzMwLDcgQEAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSog
YXJndW1lbnRBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3Jp
Z2luKCksIGFyZ3VtZW50KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJu
VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudEFzRG91YmxlKSk7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGNlaWwoc3RhdGljX2Nhc3Q8
ZG91YmxlPihhKSkpKTsKQEAgLTQ0OTAsNyArNDM0NSw3IEBACiAgICAgVmFsdWUqIGFyZ3VtZW50
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFy
Z3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihjZWlsZihhKSkpKTsKIH0KQEAgLTQ1MDIsNyArNDM1Nyw3IEBACiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENl
aWwsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihj
ZWlsZihhKSkpKTsKIH0KQEAgLTQ1MTUsNyArNDM3MCw3IEBACiAgICAgTWVtb3J5VmFsdWUqIGxv
YWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQs
IE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBWYWx1ZSogcmVz
dWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2VpbGYo
YSkpKSk7CiB9CkBAIC00NTI5LDcgKzQzODQsNyBAQAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVu
dDMyKTsKICAgICBWYWx1ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmRDZWlsID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgZmlyc3RDZWlsKTsKLSAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vj
b25kQ2VpbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgc2Vjb25kQ2VpbCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZs
b2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBjZWlsZihhKSkpOwogfQpAQCAt
NDU0Myw3ICs0Mzk4LDcgQEAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFs
dWUqIGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2lu
KCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogd3JhcHBpbmdGbG9vciA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Zsb29y
KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCB3cmFw
cGluZ0Zsb29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGNlaWxmKGEpKSk7CiB9CkBAIC00NTU5
LDcgKzQ0MTQsNyBAQAogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIENlaWwsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwg
cmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAg
cm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2VpbGYoYSkpKSk7
CiB9CkBAIC00NTc3LDcgKzQ0MzIsNyBAQAogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7
CiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91
YmxlQWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+
KHByb2MsIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAg
ICBpbnQzMl90IHJlc3VsdFZhbHVlID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSksICZlZmZlY3QpOwpAQCAtNDU4OSw4ICs0NDQ0LDcgQEAKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgRmxvb3IsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSkpOwpA
QCAtNDYwMyw4ICs0NDU3LDcgQEAKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAor
ICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCkp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBm
bG9vcihhKSkpOwpAQCAtNDYxNiw4ICs0NDY5LDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwog
ICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAg
cm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGxvYWREb3VibGUpKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmYSks
IGZsb29yKGEpKSk7CkBAIC00NjMwLDcgKzQ0ODIsNyBAQAogICAgIFZhbHVlKiBmaXJzdEZsb29y
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5m
bzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHNlY29uZEZsb29yID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Rmxvb3IpOwotICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9v
cik7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgc2Vj
b25kRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+
KHByb2MsIGEpLCBmbG9vcihhKSkpOwogfQpAQCAtNDY0Miw3ICs0NDk0LDcgQEAKICAgICBWYWx1
ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiB3cmFwcGluZ0NlaWwg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdEZsb29y
KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgd3JhcHBpbmdDZWlsKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBmbG9vcihhKSkpOwogfQpAQCAtNDY1NCw4ICs0NTA2
LDcgQEAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUq
IGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9y
aWdpbigpLCBhcmd1bWVudCk7CiAKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0g
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgZmxvb3Ioc3RhdGljX2Nh
c3Q8ZG91YmxlPihhKSkpKTsKQEAgLTQ2NjksOCArNDUyMCw3IEBACiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAKLSAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAg
cm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3Vi
bGUpKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9j
LCBhKSwgZmxvb3Ioc3RhdGljX2Nhc3Q8ZG91YmxlPihhKSkpKTsKQEAgLTQ2ODUsNyArNDUzNSw3
IEBACiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOwog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAtNDY5Nyw3
ICs0NTQ3LDcgQEAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RG
bG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAg
VmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0
dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihmbG9vcmYoYSkpKSk7CiB9CkBAIC00NzEwLDcgKzQ1
NjAsNyBAQAogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigp
LCBsb2FkRmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAg
cm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmYSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihmbG9vcmYoYSkpKSk7CiB9CkBAIC00NzI0LDcgKzQ1NzQs
NyBAQAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmlyc3RGbG9v
ciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVu
dCk7CiAgICAgVmFsdWUqIHNlY29uZEZsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Rmxvb3IpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9vcik7CisgICAgcm9vdC0+
YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOwogCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEpKSwgZmxvb3JmKGEpKSk7CiB9CkBAIC00NzM4LDcgKzQ1ODgsNyBAQAog
ICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAg
ICAgVmFsdWUqIHdyYXBwaW5nQ2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2Vp
bCwgT3JpZ2luKCksIGZpcnN0Rmxvb3IpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOworICAgIHJvb3QtPmFwcGVu
ZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHdyYXBwaW5nQ2VpbCk7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBmbG9vcmYoYSkpKTsKIH0KQEAgLTQ3NTQsNyArNDYwNCw3IEBACiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdp
bigpLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJl
dHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAtNDc3Miw3ICs0
NjIyLDcgQEAKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogICAgIFZhbHVlKiBkb3Vi
bGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwotICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50MzJfdCByZXN1bHRW
YWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpLCAmZWZmZWN0KTsKQEAgLTQ3OTUsOCArNDY0NSw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisg
ICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNxcnQsIE9yaWdpbigp
LAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSkpOwpAQCAtNDgwOSw4ICs0NjU4LDcg
QEAKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJs
ZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5l
dzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgU3FydCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIGNvcnJlY3RTcXJ0KGEpKSk7CkBA
IC00ODIyLDggKzQ2NzAsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFs
dWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQs
IERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBsb2FkRG91YmxlKSk7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJmEpLCBjb3JyZWN0U3FydChh
KSkpOwpAQCAtNDgzOCw3ICs0Njg1LDcgQEAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwg
T3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRp
Y19jYXN0PGZsb2F0Pihjb3JyZWN0U3FydChhKSkpKSk7CiB9CkBAIC00ODUwLDcgKzQ2OTcsNyBA
QAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvcnJlY3RTcXJ0KGEpKSkpKTsKIH0K
QEAgLTQ4NjMsNyArNDcxMCw3IEBACiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRy
ZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBT
cXJ0LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJf
dD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNv
cnJlY3RTcXJ0KGEpKSkpKTsKIH0KQEAgLTQ4NzksNyArNDcyNiw3IEBACiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3JpZ2luKCksIGFzRG91
YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBm
bG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+
KHByb2MsIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oY29ycmVjdFNxcnQoYSkpKSkpOwog
fQpAQCAtNDg5Nyw3ICs0NzQ0LDcgQEAKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwog
ICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJs
ZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAg
aW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTQ5MjIsNyArNDc2OSw3IEBACiAgICAg
VmFsdWUqIGFyZzJBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRU
b0RvdWJsZSwgT3JpZ2luKCksIGFyZzJGbG9hdCk7CiAgICAgVmFsdWUqIGVxdWFsID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzFBc0RvdWJsZSwgYXJn
MkFzRG91YmxlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBlcXVhbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgZXF1YWwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90
Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihi
KSkgPT0gKGEgPT0gYikpOwogfQpAQCAtNDk0MCw3ICs0Nzg3LDcgQEAKICAgICBWYWx1ZSogYXJn
MkFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBlcXVhbCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxQXNEb3VibGUsIGFyZzJB
c0RvdWJsZSk7CiAKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgZXF1YWwpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGVxdWFsKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiKSA9PSAoYSA9PSBiKSk7CiB9CkBAIC00
OTgwLDcgKzQ4MjcsNyBAQAogICAgIHRoZW5WYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKICAg
ICBlbHNlVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CiAgICAgVmFsdWUqIGVxdWFsID0gdGFp
bC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGRvdWJsZUlucHV0LCBh
cmcyQXNGUm91bmRlZERvdWJsZSk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKKyAgICB0YWlsLT5hcHBlbmROZXc8UmV0dXJu
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBlcXVhbCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
UHJvYyhwcm9jKTsKICAgICBpbnQzMl90IGludGVnZXJBID0gYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpOwpAQCAtNTAyOSw3ICs0ODc2LDcgQEAKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJ
bnB1dCk7CiAgICAgZWxzZVZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwogICAgIFZhbHVlKiBm
bG9hdFJlc3VsdCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwg
T3JpZ2luKCksIGRvdWJsZUlucHV0KTsKLSAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHRhaWwtPmFwcGVuZE5l
dzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxm
bG9hdD4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCB2YWx1ZSArIDQy
LjVmKSk7CkBAIC01MDg0LDcgKzQ5MzEsNyBAQAogICAgIHJlc3VsdCA9IHRhaWwtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgCiAgICAgICAgICAgICBwaGksCiAgICAgICAg
ICAgICByZXN1bHQpOwotICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHRhaWwtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhw
cm9jKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZmxvYXQ+KCpjb2RlLCAxKSwgMTEu
NWYgKiAxMS41ZiArIHN0YXRpY19jYXN0PGZsb2F0PihiaXR3aXNlX2Nhc3Q8ZG91YmxlPihzdGF0
aWNfY2FzdDx1aW50NjRfdD4oMSkpKSArIDExLjVmKSk7CkBAIC01MTI0LDcgKzQ5NzEsNyBAQAog
ICAgIFZhbHVlKiBhcmdBc0RvdWJsZUFnYWluID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIGZpbmFs
QWRkID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkb3VibGVJ
bnB1dCwgYXJnQXNEb3VibGVBZ2Fpbik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gdGFpbC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgZmluYWxBZGQp
OwotICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBmbG9hdFJlc3VsdCk7CisgICAgdGFpbC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJv
Yyk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0PigqY29kZSwgMSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KHZhbHVlKSksIHZhbHVlICsgdmFsdWUpKTsKQEAgLTUxNzMsNyArNTAy
MCw3IEBACiAgICAgLy8gVGhpcyBvbmUgKmNhbm5vdCogYmUgZWxpbWluYXRlZAogICAgIFZhbHVl
KiBkb3VibGVBZGQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCks
IGRvdWJsZUlucHV0LCBkb3VibGVSZXN1bHQpOwogCi0gICAgdGFpbC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGRvdWJsZUFkZCk7CisgICAgdGFpbC0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZG91YmxlQWRkKTsKIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9r
ZTxkb3VibGU+KCpjb2RlLCAxLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgKHZhbHVl
ICsgdmFsdWUpICsgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKQEAgLTUyMTMsNyArNTA2
MCw3IEBACiAgICAgVmFsdWUqIGFyZ0FzRG91YmxlQWdhaW4gPSB0YWlsLT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1
ZSogZmluYWxBZGQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCks
IGRvdWJsZUlucHV0LCBhcmdBc0RvdWJsZUFnYWluKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQg
PSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBm
aW5hbEFkZCk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICB0YWlsLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
UHJvYyhwcm9jKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZmxvYXQ+KCpjb2RlLCAx
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgdmFsdWUgKyB2YWx1ZSkpOwpAQCAtNTIy
Niw4ICs1MDczLDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICBy
b290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudCkpOwogCkBAIC01MjQwLDggKzUwODYsNyBAQAogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKIApAQCAtNTI1NSw3ICs1MTAwLDcgQEAKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGZpcnN0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
KTsKICAgICBWYWx1ZSogc2Vjb25kID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGZpcnN0KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKKyAgICByb290LT5hcHBlbmROZXc8
UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBzZWNvbmQpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIHZhbHVlKSwgdmFsdWUpKTsKIH0KQEAg
LTUyNjcsNyArNTExMiw3IEBACiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBj
YXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGxvYWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50NjRfdD4ocHJvYywgJnZhbHVlKSwgYml0d2lzZV9jYXN0PGludDY0X3Q+KHZhbHVlKSkp
OwogfQpAQCAtNTI4NCw3ICs1MTI5LDcgQEAKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZSwgc2NhbGVkT2Zmc2V0KTsK
ICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNh
c3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
bG9hZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxpbnQ2NF90Pihwcm9jLCAmdmFsdWUsIDApLCBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4odmFsdWUp
KSk7CiB9CkBAIC01Mjk1LDggKzUxNDAsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CiAKQEAgLTUzMDksOCArNTE1Myw3IEBACiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CiAKQEAgLTUzMjQsNyArNTE2Nyw3
IEBACiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBm
aXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgc2Vjb25kKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgdmFsdWUpLCB2YWx1
ZSkpOwogfQpAQCAtNTMzNiw3ICs1MTc5LDcgQEAKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAg
ICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJnZhbHVlKSwgYml0d2lzZV9jYXN0PGRvdWJsZT4o
dmFsdWUpKSk7CiB9CkBAIC01MzUzLDcgKzUxOTYsNyBAQAogICAgIFZhbHVlKiBhZGRyZXNzID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlLCBzY2FsZWRP
ZmZzZXQpOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZh
bHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGxvYWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUsIDApLCBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih2
YWx1ZSkpKTsKIH0KQEAgLTUzNjQsOCArNTIwNyw3IEBACiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAg
IHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGFyZ3VtZW50KSk7CiAKQEAgLTUzNzksNyArNTIyMSw3IEBACiAgICAgVmFsdWUqIGFk
ZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBh
ZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBl
bmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJnZhbHVlKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KHZhbHVlKSkpOwogfQpAQCAtNTM5MCw4ICs1MjMyLDcgQEAKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFs
dWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCkBAIC01
NDA0LDggKzUyNDUsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
LSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0
dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwog
CkBAIC01NDE5LDcgKzUyNTksNyBAQAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICBWYWx1ZSogZmlyc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmlyc3QpOwot
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
ZWNvbmQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IHNlY29uZCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIHZhbHVlKSwgdmFsdWUpKTsKIH0KQEAgLTU0MzEsNyArNTI3MSw3IEBACiAgICAgVmFs
dWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9h
dCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdp
bigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRmxvYXQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290
LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsICZ2YWx1ZSksIGJpdHdp
c2VfY2FzdDxmbG9hdD4odmFsdWUpKSk7CiB9CkBAIC01NDQyLDcgKzUyODIsNyBAQAogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZv
Ojphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0KTsK
KyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhc0Zsb2F0
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIHZh
bHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNTQ1Myw3ICs1MjkzLDcg
QEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgdmFsdWUpOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0KTsKKyAgICBy
b290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhc0Zsb2F0KTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4odmFsdWUpKSk7CiB9CkBAIC01NDY1LDcgKzUzMDUsNyBAQAogICAgIFZhbHVl
KiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWREb3Vi
bGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3Jp
Z2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgbG9hZGVkRG91YmxlKTsKLSAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9h
dCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNG
bG9hdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9j
LCAmdmFsdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSk7CiB9CkBAIC01NDc4LDcgKzUz
MTgsNyBAQAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFy
Z3VtZW50MzIpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwotICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNEb3VibGUp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkp
OwogfQpAQCAtNTQ4OSw3ICs1MzI5LDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZs
b2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIGFzRG91YmxlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJn
dW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxkb3VibGU+KHByb2MpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAt
NTUwMSw3ICs1MzQxLDcgQEAKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGFz
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmln
aW4oKSwgbG9hZGVkRmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsICZ2YWx1ZSksIHN0YXRpY19jYXN0PGRvdWJs
ZT4odmFsdWUpKSk7CiB9CkBAIC01NTE0LDcgKzUzNTQsNyBAQAogICAgIFZhbHVlKiBhc0Zsb2F0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwg
YXJndW1lbnQpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFzRmxvYXQpOwogICAgIFZhbHVlKiBhc0Zs
b2F0QWdhaW4gPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9y
aWdpbigpLCBhc0RvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXRBZ2Fpbik7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJl
dHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNGbG9hdEFnYWluKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNTUzMCw3ICs1MzcwLDcgQEAKICAgICBWYWx1ZSogYXNG
bG9hdEFnYWluID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBP
cmlnaW4oKSwgYXNEb3VibGUpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgU3RvcmUsIE9yaWdpbigpLCBhc0Zsb2F0QWdhaW4sIGRzdCk7CiAKLSAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXc8
UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgZmxvYXQgaW5wdXQgPSB2YWx1ZTsKICAgICBm
bG9hdCBvdXRwdXQgPSAwLjsKQEAgLTU1NDUsNyArNTM4NSw3IEBACiAgICAgVmFsdWUqIGFyZ3Vt
ZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBG
UFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAg
IFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0Rv
dWJsZSwgT3JpZ2luKCksIGFzRmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3
PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8
ZG91YmxlPihzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSkpOwogfQpAQCAtNTU1OCw3ICs1Mzk4
LDcgQEAKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBW
YWx1ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9h
dCwgT3JpZ2luKCksIGxvYWRlZERvdWJsZSk7CiAgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXNGbG9hdCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGFzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRv
dWJsZT4ocHJvYywgJnZhbHVlKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihzdGF0aWNfY2FzdDxmbG9h
dD4odmFsdWUpKSkpOwogfQpAQCAtNTU2OSw3ICs1NDA5LDcgQEAKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJ
VG9ELCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ldzxS
ZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKIAogICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQ2NE9w
ZXJhbmRzKCkpCkBAIC01NTgyLDcgKzU0MjIsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBW
YWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3Jp
Z2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZVByb2MocHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDY0T3BlcmFuZHMoKSkK
QEAgLTU1OTYsNyArNTQzNiw3IEBACiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwog
ICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRv
RCwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0
dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlUHJvYyhwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50MzJPcGVy
YW5kcygpKQpAQCAtNTYxMCw3ICs1NDUwLDcgQEAKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIElUb0YsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKIAogICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQz
Mk9wZXJhbmRzKCkpCkBAIC01NjI0LDcgKzU0NjQsNyBAQAogICAgIFZhbHVlKiBhZGRyZXNzID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMgPSByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7
CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJ
VG9ELCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVu
ZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIGludDY0X3QgaW5NZW1vcnlWYWx1ZTsK
QEAgLTU2NDIsNyArNTQ4Miw3IEBACiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSog
c3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCks
IGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZVByb2MocHJvYyk7CiAgICAgaW50NjRfdCBpbk1lbW9yeVZhbHVlOwpAQCAtNTY2MCw3ICs1NTAw
LDcgQEAKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlW
YWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2Fk
LCBJbnQzMiwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNy
Y0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsK
ICAgICBpbnQzMl90IGluTWVtb3J5VmFsdWU7CkBAIC01Njc4LDcgKzU1MTgsNyBAQAogICAgIFZh
bHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRT
cmMgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmln
aW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBsb2FkZWRTcmMpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKyAg
ICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBzcmNBc0Zsb2F0
KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIGludDMyX3QgaW5N
ZW1vcnlWYWx1ZTsKQEAgLTU2OTUsNyArNTUzNSw3IEBACiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdGlu
Z1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3Jj
KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOwogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1
ZSkpKTsKIH0KIApAQCAtNTcwNSw3ICs1NTQ1LDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2
NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5n
UG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMp
OwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBzcmNBc0Zsb2F0aW5nUG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkp
KTsKIH0KIApAQCAtNTcxNSw3ICs1NTU1LDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5nUG9p
bnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwot
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
cmNBc0Zsb2F0aW5nUG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJv
YywgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkp
OwogfQogCkBAIC01NzI1LDcgKzU1NjUsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2lu
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIHNyYyk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNy
Y0FzRmxvYXRpbmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwog
fQogCkBAIC01NzM2LDcgKzU1NzYsNyBAQAogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBJVG9ELCBPcmlnaW4oKSwgc3JjKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBzcmNBc0RvdWJs
ZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGZsb2F0UmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhw
cm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50NjRPcGVyYW5kcygpKQpAQCAtNTc1
MSw3ICs1NTkxLDcgQEAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogc3Jj
QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBz
cmMpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKLSAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGZsb2F0UmVz
dWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIGZvciAoYXV0
byB0ZXN0VmFsdWUgOiBpbnQzMk9wZXJhbmRzKCkpCkBAIC01NzY5LDggKzU2MDksNyBAQAogICAg
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAmc2xvdCksIDApOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCB2YWx1ZSkpOwog
ICAgIENIRUNLKHNsb3QgPT0gdmFsdWUpOwpAQCAtNTc4NSw4ICs1NjI0LDcgQEAKICAgICAgICAg
cHJvYywgU3RvcmUsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90KSwgMCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFw
cGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1
bjxpbnQ+KHByb2MpKTsKICAgICBDSEVDSyhzbG90ID09IHZhbHVlKTsKQEAgLTU4MDYsOCArNTY0
NCw3IEBACiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3QpLCAwKTsK
LSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENI
RUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYykpOwogICAgIENIRUNLKHNsb3QgPT0gdmFsdWUp
OwpAQCAtNTgyNCw3ICs1NjYxLDcgQEAKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBT
dG9yZTgsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKIAogICAg
ICAgICBpbnQ4X3Qgc3RvcmFnZSA9IDA7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50
NjRfdD4ocHJvYywgNDIsICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01ODQ1LDcgKzU2ODIsNyBAQAog
ICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKIAogICAgICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHZhbHVlLCBhZGRy
ZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDhfdCBzdG9yYWdlID0gMDsKICAg
ICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCA0MiwgJnN0b3JhZ2UsIDEp
ID09IDQyKTsKQEAgLTU4NjMsNyArNTcwMCw3IEBACiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgU3RvcmU4LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAg
ICAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7
CiAKICAgICAgICAgaW50OF90IHN0b3JhZ2UgPSAwOwogICAgICAgICBDSEVDSyhjb21waWxlQW5k
UnVuPGludDY0X3Q+KHByb2MsICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01ODgzLDcgKzU3MjAsNyBA
QAogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKIAogICAgICAgICByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHZhbHVlLCBh
ZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDhfdCBzdG9yYWdlID0gMDsK
ICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc3RvcmFnZSwgMSkg
PT0gNDIpOwpAQCAtNTkzNSw3ICs1NzcyLDcgQEAKICAgICAvLyBpZiB3ZSB1c2UgWDg2IHBhcnRp
YWwgcmVnaXN0ZXJzLgogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3Rv
cmU4LCBPcmlnaW4oKSwgcGF0Y2hwb2ludCwgd2hlcmVUb1N0b3JlKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXR1cm5WYWx1ZSk7
CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmV0dXJu
VmFsdWUpOwogCiAgICAgaW50OF90IHN0b3JhZ2UgPSAweGZmOwogICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50NjRfdD4ocHJvYywgMHgxMjM0NTY3OGFiY2RlZjEyLCAmc3RvcmFnZSkgPT0gMHgx
MjM0NTY3OGFiY2RlZjEyKTsKQEAgLTU5NTMsNyArNTc5MCw3IEBACiAgICAgICAgIFZhbHVlKiBh
ZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgU3RvcmUxNiwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZh
bHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgdmFsdWUpOwogCiAgICAgICAgIGludDE2X3Qgc3RvcmFnZSA9IC0xOwogICAgICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDQyLCAmc3RvcmFnZSkgPT0gNDIpOwpAQCAt
NTk3NCw3ICs1ODExLDcgQEAKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7
CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBP
cmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBl
bmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50
MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4o
cHJvYywgNDIsICZzdG9yYWdlLCAxKSA9PSA0Mik7CkBAIC01OTkyLDcgKzU4MjksNyBAQAogICAg
ICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKIAogICAgICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlMTYsIE9yaWdpbigpLCB2YWx1ZSwgYWRk
cmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQxNl90IHN0b3JhZ2UgPSAtMTsK
ICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc3RvcmFnZSkgPT0g
NDIpOwpAQCAtNjAxMiw3ICs1ODQ5LDcgQEAKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFjZW1lbnQs
IG9mZnNldCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBT
dG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICBy
b290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAg
ICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50NjRfdD4ocHJvYywgJnN0b3JhZ2UsIDEpID09IDQyKTsKQEAgLTYwMjQsOCArNTg2MSw3IEBA
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9j
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpOwpA
QCAtNjAzNyw4ICs1ODczLDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC02MDUzLDggKzU4ODgsNyBAQAogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9y
aWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLApAQCAtNjA2Nyw4ICs1OTAxLDcg
QEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSwKQEAgLTYwODMsOCArNTkxNiw3IEBACiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFN1YiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApLApAQCAtNjEwOCw4ICs1OTQwLDcgQEAKICAgICAgICAgICAg
ICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKSksCiAgICAgICAgIHNsb3RQdHIsIDApOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVB
bmRSdW48aW50Pihwcm9jLCBhbW91bnQpKTsKQEAgLTYxMzIsOCArNTk2Myw3IEBACiAgICAgICAg
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyLCAwLCBIZWFwUmFuZ2UoNDIpLCBIZWFwUmFuZ2Uo
NDIpKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwpAQCAtNjE2
MCw4ICs1OTkwLDcgQEAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAg
ICAgc2xvdFB0ciwgMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHBy
b2MpKTsKQEAgLTYxODMsOCArNjAxMiw3IEBACiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMs
IE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBz
bG90UHRyLCAwKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywg
YW1vdW50KSk7CkBAIC02MjA3LDggKzYwMzUsNyBAQAogICAgICAgICAgICAgICAgIHByb2MsIFRy
dW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAg
ICAgc2xvdFB0ciwgMCwgSGVhcFJhbmdlKDQyKSwgSGVhcFJhbmdlKDQyKSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAor
ICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKQEAgLTYyNDgsOCArNjA3NSw3IEBACiAg
ICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyLCAwLCBIZWFwUmFuZ2UoNDIpLCBIZWFw
UmFuZ2UoNDIpKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwpA
QCAtNjI3Niw4ICs2MTAyLDcgQEAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgbG9hZE9wY29kZSwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAog
ICAgICAgICBzbG90UHRyLCAwKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0g
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGlu
dD4ocHJvYykpOwpAQCAtNjI5OSw4ICs2MTI0LDcgQEAKICAgICAgICAgICAgICAgICBwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAg
ICAgIHNsb3RQdHIsIDApOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFs
dWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihw
cm9jLCBhbW91bnQpKTsKQEAgLTYzMjMsOCArNjE0Nyw3IEBACiAgICAgICAgICAgICAgICAgcHJv
YywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAog
ICAgICAgICBzbG90UHRyLCAwLCBIZWFwUmFuZ2UoNDIpLCBIZWFwUmFuZ2UoNDIpKTsKLSAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwpAQCAtNjM1MSw4ICs2MTc0LDcg
QEAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9hZE9w
Y29kZSwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyLCAw
KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYykpOwpAQCAtNjM3
Miw4ICs2MTk0LDcgQEAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSksCiAgICAgICAgIHNsb3RQdHIsIDApOwotICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5h
cHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNv
bXBpbGVBbmRSdW48aW50Pihwcm9jLCBhbW91bnQpKTsKQEAgLTYzOTQsOCArNjIxNSw3IEBACiAg
ICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90UHRyLCAwLCBI
ZWFwUmFuZ2UoNDIpLCBIZWFwUmFuZ2UoNDIpKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSksCiAgICAgICAgIHNsb3RQdHIsIDAsIEhlYXBSYW5nZSg0MiksIEhlYXBSYW5nZSg0MikpOwot
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CkBAIC02NDIyLDggKzYy
NDIsNyBAQAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkLCBJbnQ2NCwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90
UHRyLCAwKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9j
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYykpOwpA
QCAtNjQ1NCw4ICs2MjczLDcgQEAKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2lu
KCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIs
IDApOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCBhbW91bnQp
KTsKQEAgLTY0ODQsOCArNjMwMiw3IEBACiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50
KSksCiAgICAgICAgIHNsb3RQdHIsIDApOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8
UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRS
dW48aW50Pihwcm9jKSk7CkBAIC02NTE2LDggKzYzMzMsNyBAQAogICAgICAgICAgICAgICAgIHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwK
ICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5W
YWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+
KHByb2MsIGFtb3VudCkpOwpAQCAtNjU0Niw4ICs2MzYyLDcgQEAKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9hZE9wY29kZSwgT3JpZ2luKCksIHNsb3RQ
dHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+
YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFj
b21waWxlQW5kUnVuPGludD4ocHJvYykpOwpAQCAtNjU3OCw4ICs2MzkzLDcgQEAKICAgICAgICAg
ICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVB
bmRSdW48aW50Pihwcm9jLCBhbW91bnQpKTsKQEAgLTY2MDgsOCArNjQyMiw3IEBACiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIGxvYWRPcGNvZGUsIE9yaWdp
bigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAor
ICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAg
ICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpKTsKQEAgLTY2MzgsOCArNjQ1MSw3IEBA
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIElu
dDY0LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAog
ICAgICAgICBzbG90UHRyLCAwKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0g
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGlu
dD4ocHJvYywgYW1vdW50KSk7CkBAIC02NjY4LDggKzY0ODAsNyBAQAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIHNs
b3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyLCAwKTsKLSAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAg
cm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENI
RUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYykpOwpAQCAtNjY5Miw4ICs2NTAzLDcgQEAKICAg
ICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIsIDApOwotICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290
LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0so
IWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCBhbW91bnQpKTsKQEAgLTY3MTksOCArNjUyOSw3IEBA
CiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLAogICAgICAgICAgICAgbG9hZCwgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAg
ICAgICBzbG90UHRyLCAwKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZh
bHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4o
cHJvYywgJnNsb3QpKTsKQEAgLTY3NDMsOCArNjU1Miw3IEBACiAgICAgICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG1h
c2spKSwKICAgICAgICAgc2xvdFB0ciwgMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5l
dzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFu
ZFJ1bjxpbnQ+KHByb2MpKTsKQEAgLTY3NjgsOCArNjU3Niw3IEBACiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgc2xv
dFB0cikpLAogICAgICAgICBzbG90UHRyLCAwKTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5k
TmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MpKTsKICAgICBDSEVDSyhzbG90ID09IC12YWx1ZSk7CkBAIC02NzkyLDggKzY1
OTksNyBAQAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgc2xvdFB0cikpLAogICAgICAgICBzbG90UHRy
LCAwKTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpKTsKICAgICBDSEVD
SyhzbG90ID09IC12YWx1ZSk7CkBAIC02ODAzLDggKzY2MDksNyBAQAogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdp
bigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDEpLApAQCAtNjgyMSw4ICs2NjI2LDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIGludCBhcnJheVtdID0geyAxLCAyIH07CiAgICAgQ29uc3RQ
dHJWYWx1ZSogYXJyYXlQdHIgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGFycmF5KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZh
bHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYXJyYXlQdHIsIDAp
LApAQCAtNjgzNyw4ICs2NjQxLDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIGludCBhcnJheVtdID0geyAxLCAyIH07CiAgICAgVmFsdWUqIGFycmF5UHRy
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJu
VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBhcnJheVB0ciwg
MCksCkBAIC02ODUzLDggKzY2NTYsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgaW50IGFycmF5W10gPSB7IDEsIDIgfTsKICAgICBDb25zdFB0clZhbHVl
KiBhcnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYXJyYXkpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4oCkBAIC02ODk0LDggKzY2OTYsNyBAQAogICAgICAgICBwcm9jLCBTdG9yZSwgT3Jp
Z2luKCksIHRoZU51bWJlck9mVGhlQmVhc3QsIG90aGVyQXJyYXlQdHIsIDApOwogICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwg
dGhlTnVtYmVyT2ZUaGVCZWFzdCwgb3RoZXJBcnJheVB0ciwgc3RhdGljX2Nhc3Q8aW50MzJfdD4o
c2l6ZW9mKGludCkpKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksIGxlZnQsIHJpZ2h0KSk7CiAgICAgCkBAIC02OTEw
LDggKzY3MTEsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgaW50IGFycmF5W10gPSB7IDEsIDIgfTsKICAgICBWYWx1ZSogYXJyYXlQdHIgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJv
YywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBBZGQsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPigKQEAgLTY5NDYsOCArNjc0Niw3IEBACiAKICAgICAqc2xvdCA9IDg2NzUzMDk7CiAg
ICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KApAQCAtNjk2Miw4ICs2NzYxLDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICBy
b290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZyYW1lUG9pbnRlciwgT3JpZ2luKCkpKTsKIAogICAg
IHZvaWQqIGZwID0gY29tcGlsZUFuZFJ1bjx2b2lkKj4ocHJvYyk7CkBAIC02OTg1LDcgKzY3ODMs
NyBAQAogICAgICAgICBWYWx1ZSogZnAgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZy
YW1lUG9pbnRlciwgT3JpZ2luKCkpOwogICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmcCwgb2Zmc2V0KTsKIAotICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgcmVzdWx0KTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAx
KSk7CiAgICAgfQogICAgIHsKQEAgLTcwMDEsNyArNjc5OSw3IEBACiAgICAgICAgIFZhbHVlKiBv
ZmZzZXRBcmcgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIG9m
ZnNldCwgYXJnKTsKICAgICAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgb2Zmc2V0QXJnLCBvZmZzZXRGUCk7CiAKLSAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IHJlc3VsdCk7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgMSwg
MikpOwogICAgIH0KIH0KQEAgLTcwMTAsOCArNjgwOCw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisg
ICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFNsb3RCYXNlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBwcm9jLmFkZFN0
YWNrU2xvdCgxKSkpOwogCiAgICAgdm9pZCogc3RhY2tTbG90ID0gY29tcGlsZUFuZFJ1bjx2b2lk
Kj4ocHJvYyk7CkBAIC03MDIzLDggKzY4MjAsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVy
VHlwZSgpLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRnJhbWVQb2ludGVyLCBPcmlnaW4oKSkpKTsKQEAgLTcwNTAsOCArNjg0Niw3IEBACiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBzdGFjaywgMCk7CiAgICAgCi0gICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9y
aWdpbigpLCBzdGFjaykpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIHZh
bHVlKSA9PSB2YWx1ZSk7CkBAIC03MDg1LDggKzY4ODAsNyBAQAogICAgICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAg
ICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgdHlwZSwgT3JpZ2luKCksCiAgICAg
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAmdmFsdWUpKSk7CkBAIC03MDk5LDggKzY4OTMsNyBAQAogICAgICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAg
Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgdHlwZSwgT3JpZ2luKCksCiAgICAgICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSk7CkBAIC03MTEzLDggKzY5MDYsNyBAQAogICAgICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAg
ICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgdHlwZSwgT3Jp
Z2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLApAQCAtNzEyOCw4ICs2OTIw
LDcgQEAKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAotICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCB0eXBl
LCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KApAQCAt
NzE0OCw4ICs2OTM5LDcgQEAKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAotICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
b3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KApAQCAtNzE4OCw3ICs2OTc4LDcgQEAKICAgICAgICAgVmFsdWUqIGRlc3RpbmF0aW9u
QWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIGFyZ3VtZW50QXNGbG9hdCwgZGVzdGluYXRp
b25BZGRyZXNzKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIAogICAgICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKICAgICAgICAgQ0hFQ0soIWNvbXBpbGVB
bmRSdW48aW50NjRfdD4ocHJvYywgaW5wdXQsICZvdXRwdXQpKTsKQEAgLTcyMTIsNyArNzAwMiw3
IEBACiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwg
T3JpZ2luKCksIGFyZ3VtZW50QXNGbG9hdCwgZGVzdGluYXRpb25BZGRyZXNzKTsKIAotICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgICAgICBmbG9hdCBv
dXRwdXQgPSAwLjsKICAgICAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywg
aW5wdXQsICZvdXRwdXQgLSAxLCAxKSk7CkBAIC03MjMyLDcgKzcwMjIsNyBAQAogCiAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlQXNG
bG9hdCwgZGVzdGluYXRpb25BZGRyZXNzKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKICAgICBDSEVDSyghY29tcGlsZUFu
ZFJ1bjxpbnQ2NF90Pihwcm9jLCBpbnB1dCwgJm91dHB1dCkpOwpAQCAtNzI1OCw3ICs3MDQ4LDcg
QEAKICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6IHNvdXJjZXMpCiAgICAgICAgIHRvdGFsID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB0b3RhbCwgdmFsdWUpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHRvdGFsKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigp
LCB0b3RhbCk7CiAgICAgY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpOwogfQogCkBAIC03
MjgxLDcgKzcwNzEsNyBAQAogICAgIGZvciAoVmFsdWUqIHZhbHVlIDogc291cmNlcykKICAgICAg
ICAgdG90YWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHRv
dGFsLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgdG90YWwpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHRvdGFsKTsKICAgICBjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywg
MS4xLCAyLjUpOwogfQogCkBAIC03MzIwLDcgKzcxMTAsNyBAQAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sobG9vcCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CiAKICAgICAvLyBUYWlsLgotICAg
IGRvbmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB1cGRh
dGVkVG90YWwpOworICAgIGRvbmUtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIHVwZGF0ZWRUb3RhbCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxk
b3VibGU+KHByb2MsIDEwMDAwMCksIDUwMDAwNTAwMDAuKSk7CiB9CiAKQEAgLTczODAsNyArNzE3
MCw3IEBACiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wKSwgRnJlcXVlbnRlZEJsb2NrKGRv
bmUpKTsKIAogICAgIC8vIFRhaWwuCi0gICAgZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHVwZGF0ZWRUb3RhbCk7CisgICAgZG9uZS0+YXBwZW5kTmV3
PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMTAwMDAwKSwgNTAwMDA1MDAw
MC4pKTsKIH0KIApAQCAtNzM5OCwxMiArNzE4OCwxMCBAQAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAot
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CkBAIC03NDIzLDEyICs3MjExLDEw
IEBACiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsK
IAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJv
YywgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7
CkBAIC03NDYyLDcgKzcyNDgsNyBAQAogICAgIFZhbHVlKiBwaGkgPSBkb25lLT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICB0aGVuUmVzdWx0LT5zZXRQ
aGkocGhpKTsKICAgICBlbHNlUmVzdWx0LT5zZXRQaGkocGhpKTsKLSAgICBkb25lLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKKyAgICBkb25lLT5h
cHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBwaGkpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAgICAgQ0hFQ0soaW52b2tlPGludD4oKmNvZGUsIDQy
KSA9PSAxKTsKQEAgLTc0ODYsMTIgKzcyNzIsMTAgQEAKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8UmV0dXJu
VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQ
cm9jKHByb2MpOwpAQCAtNzUxNiwxMiArNzMwMCwxMCBAQAogICAgICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVu
dGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
KyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAg
ICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKQEAgLTc1NDksMTIgKzcz
MzEsMTAgQEAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAog
ICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwpAQCAtNzU3OSwxMiAr
NzM1OSwxMCBAQAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJl
cXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAotICAgIGVsc2VD
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
CiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMSkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CkBAIC03NjEyLDEy
ICs3MzkwLDEwIEBACiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxz
ZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKQEAgLTc2NDIs
MTIgKzc0MTgsMTAgQEAKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7
CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCiAgICAgYXV0byBjb2Rl
ID0gY29tcGlsZVByb2MocHJvYyk7CkBAIC03Njc1LDEyICs3NDQ5LDEwIEBACiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2Up
KTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKQEAgLTc3MDUsMTIgKzc0NzcsMTAgQEAKICAgICAgICAg
ICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwK
ICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAtMTMpKTsKIAogICAgIGludDY0X3QgZXhwZWN0ZWQgPSAoc3RkOjppc3Vub3JkZXJlZChhLCBi
KSB8fCBhID09IGIpID8gNDIgOiAtMTM7CkBAIC03NzM3LDEyICs3NTA3LDEwIEBACiAgICAgICAg
ICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVx
dWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VD
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
CiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgLTEzKSk7CiAKICAgICBpbnQ2NF90IGV4cGVjdGVkID0gKHN0ZDo6aXN1bm9yZGVyZWQoYSwg
YikgfHwgYSA9PSBiKSA/IDQyIDogLTEzOwpAQCAtNzc3MSwxMiArNzUzOSwxMCBAQAogICAgICAg
ICBub3RFcXVhbEFuZE9yZGVyZWQsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAg
ZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmln
aW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAtMTMpKTsKIAogICAgIGludDY0X3QgZXhwZWN0ZWQgPSAoIXN0ZDo6aXN1bm9yZGVy
ZWQoYSwgYikgJiYgYSAhPSBiKSA/IDQyIDogLTEzOwpAQCAtNzgwNywxMiArNzU3MywxMCBAQAog
ICAgICAgICBub3RFcXVhbEFuZE9yZGVyZWQsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVu
Q2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwog
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9j
LCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAtMTMpKTsKIAogICAgIGludDY0X3QgZXhwZWN0ZWQgPSAoIXN0ZDo6aXN1
bm9yZGVyZWQoYSwgYikgJiYgYSAhPSBiKSA/IDQyIDogLTEzOwpAQCAtNzgzNiwxMiArNzYwMCwx
MCBAQAogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7
CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIC0xMykpOwogCiAgICAgaW50NjRfdCBleHBlY3RlZCA9IChzdGQ6Omlz
dW5vcmRlcmVkKGEsIGIpIHx8IGEgPT0gYikgPyA0MiA6IC0xMzsKQEAgLTc4NjcsMTIgKzc2Mjks
MTAgQEAKICAgICAgICAgICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0
aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0Mikp
OwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIAogICAgIGludDY0X3QgZXhwZWN0ZWQgPSAoc3RkOjpp
c3Vub3JkZXJlZChhLCBiKSB8fCBhID09IGIpID8gNDIgOiAtMTM7CkBAIC03ODk2LDEyICs3NjU2
LDEwIEBACiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAg
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIp
KTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKICAgICBpbnQ2NF90IGV4cGVjdGVkID0gKHN0ZDo6
aXN1bm9yZGVyZWQoYSwgYikgfHwgYSA9PSBiKSA/IDQyIDogLTEzOwpAQCAtNzkyNiwxMiArNzY4
NCwxMCBAQAogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAor
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAg
ICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQy
KSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+
KHByb2MsIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCiAgICAgaW50NjRfdCBleHBlY3RlZCA9IChzdGQ6
OmlzdW5vcmRlcmVkKGEsIGIpIHx8IGEgPT0gYikgPyA0MiA6IC0xMzsKQEAgLTc5NjAsMTIgKzc3
MTYsMTAgQEAKICAgICAgICAgICAgIGFyZ3VtZW50MkFzRG91YmxlKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdp
bigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8UmV0
dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCiAgICAgaW50NjRfdCBleHBlY3Rl
ZCA9IChzdGQ6OmlzdW5vcmRlcmVkKGEsIGIpIHx8IGEgPT0gYikgPyA0MiA6IC0xMzsKQEAgLTc5
ODQsMTIgKzc3MzgsMTAgQEAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHZhbHVlKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNl
KSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAg
IGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpID09ICEh
dmFsdWUpOwpAQCAtODAxOSw3ICs3NzcxLDcgQEAKICAgICBWYWx1ZSogcGhpID0gZG9uZS0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgdGhlblJlc3Vs
dC0+c2V0UGhpKHBoaSk7CiAgICAgZWxzZVJlc3VsdC0+c2V0UGhpKHBoaSk7Ci0gICAgZG9uZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CisgICAg
ZG9uZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcGhpKTsKIAogICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSA9PSAhIXZhbHVlKTsKIH0KQEAgLTgwMzks
MTIgKzc3OTEsMTAgQEAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2Up
LCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAg
ZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmln
aW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYykgPT0gISF2
YWx1ZSk7CkBAIC04MDY1LDEyICs3ODE1LDEwIEBACiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigp
LAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxSZXR1cm5W
YWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ+KHByb2MpID09ICF2YWx1ZSk7CkBAIC04MDkwLDEyICs3ODM4LDEwIEBACiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxz
ZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKQEAgLTgxMjAs
MTIgKzc4NjYsMTAgQEAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0g
ICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAot
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNv
bXBpbGVQcm9jKHByb2MpOwpAQCAtODE1MCwxMiArNzg5NCwxMCBAQAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVl
bnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CkBAIC04MTgwLDEyICs3
OTIyLDEwIEBACiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVu
dGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2lu
KCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
UHJvYyhwcm9jKTsKQEAgLTgyMTAsMTIgKzc5NTAsMTAgQEAKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRC
bG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
LSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwpAQCAtODI0MCwxMiArNzk3OCwx
MCBAQAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJs
b2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAog
ICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2Mo
cHJvYyk7CkBAIC04MjgwLDEyICs4MDE2LDEwIEBACiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMjUwKSksCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8UmV0dXJu
VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQ
cm9jKHByb2MpOwpAQCAtODQyMyw3ICs4MTU3LDcgQEAKICAgICAgICAgfQogICAgIH0KIAotICAg
IGN1cnJlbnQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2
YXJzWzBdKTsKKyAgICBjdXJyZW50LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdp
bigpLCB2YXJzWzBdKTsKIAogICAgIGNvbXBpbGVQcm9jKHByb2MpOwogCkBAIC04NDQ5LDcgKzgx
ODMsNyBAQAogICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzJdLmlzR1BSKCkpOwogICAgICAgICAg
ICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFyYW1zWzBd
LmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxS
ZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtODQ4MCw3ICs4MjE0LDcg
QEAKICAgICAgICAgfSk7CiAKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKLSAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290
LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAg
Q0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtODUzNiw3
ICs4MjcwLDcgQEAKIAogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIHBhdGNocG9pbnQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJnMikpOwotICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAg
IHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdCk7CiAK
ICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gNTgpOwogfQpAQCAt
ODU2Nyw3ICs4MzAxLDcgQEAKICAgICAgICAgfSk7CiAKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKLSAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBy
ZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEuNSwgMi41
KSA9PSA0KTsKIH0KQEAgLTg2MTUsNyArODM0OSw3IEBACiAKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBwYXRjaHBvaW50LAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzEs
IGFyZzIpKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHBy
b2MsIDEuNSwgMi41KSA9PSA1OS42KTsKIH0KQEAgLTg2NDMsNyArODM3Nyw3IEBACiAgICAgICAg
ICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFy
YW1zWzBdLmdwcigpKTsKICAgICAgICAgICAgIH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcGF0Y2hwb2lu
dCk7CiAKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMp
OwogICAgIH07CkBAIC04Njc2LDcgKzg0MTAsNyBAQAogICAgICAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgcGFyYW1zWzJdLm9mZnNl
dEZyb21GUCgpKSwKICAgICAgICAgICAgICAgICBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9
KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJv
YywgMSwgMikgPT0gMyk7CiB9CkBAIC04Njk5LDcgKzg0MzMsNyBAQAogICAgICAgICAgICAgQ0hF
Q0socGFyYW1zWzJdID09IFZhbHVlUmVwKEdQUkluZm86OnJlZ1QxKSk7CiAgICAgICAgICAgICBh
ZGQzMihqaXQsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgcGFyYW1zWzBdLmdwcigp
KTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5W
YWx1ZT4ocHJvYywgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtODcyMyw3ICs4NDU3LDcgQEAKICAg
ICAgICAgICAgIENIRUNLKHBhcmFtc1syXS5pc0dQUigpKTsKICAgICAgICAgICAgIGFkZDMyKGpp
dCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAg
ICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTg3NTksNyArODQ5Myw3IEBACiAgICAgICAg
ICAgICBDSEVDSyghcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCkuZ2V0KHBhcmFtcy5ncFNj
cmF0Y2goMSkpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJh
bXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsK
KyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBwYXRjaHBv
aW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsK
IH0KQEAgLTg3ODksNyArODUyMyw3IEBACiAgICAgICAgICAgICBDSEVDSyghcGFyYW1zLnVuYXZh
aWxhYmxlUmVnaXN0ZXJzKCkuZ2V0KHBhcmFtcy5mcFNjcmF0Y2goMSkpKTsKICAgICAgICAgICAg
IGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5n
cHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0
dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBp
bGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTg4MzEsNyArODU2NSw3IEBA
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9KTsKLSAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2lu
dCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcGF0
Y2hwb2ludCk7CiAKICAgICBDSEVDSyhzdGF0aWNfY2FzdDxzaXplX3Q+KGNvbXBpbGVBbmRSdW48
aW50Pihwcm9jKSkgPT0gKHRoaW5ncy5zaXplKCkgKiAodGhpbmdzLnNpemUoKSAtIDEpKSAvIDIp
OwogfQpAQCAtODg1OSw3ICs4NTkzLDcgQEAKICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90PihwYXJhbXNbMl0udmFsdWUoKSkpLAog
ICAgICAgICAgICAgICAgIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAg
ICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJv
YywgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+
KHByb2MsIDEpID09IDQzKTsKIH0KQEAgLTg4ODUsOCArODYxOSw3IEBACiAgICAgICAgICAgICBD
SEVDSyhwYXJhbXNbMl0gPT0gVmFsdWVSZXA6OmNvbnN0YW50KDQzMDAwMDAwMDAwMDAwbGwpKTsK
ICAgICAgICAgICAgIENIRUNLKHBhcmFtc1szXSA9PSBWYWx1ZVJlcDo6Y29uc3RhbnQoYml0d2lz
ZV9jYXN0PGludDY0X3Q+KDQyLjUpKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290
LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0so
IWNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSk7CkBAIC04OTExLDcgKzg2NDQsNyBAQAogICAgICAg
ICAgICAgQ0hFQ0socGFyYW1zWzJdLmlzR1BSKCkpOwogICAgICAgICAgICAgYWRkMzIoaml0LCBw
YXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAg
ICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTg5MzcsNyArODY3MCw3IEBACiAgICAgICAg
ICAgICBqaXQuYWRkMzIocGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIGppdC5zY3Jh
dGNoUmVnaXN0ZXIoKSk7CiAgICAgICAgICAgICBqaXQuc3RvcmUzMihqaXQuc2NyYXRjaFJlZ2lz
dGVyKCksIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyLCAwKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTg5NjYsNyArODY5
OSw3IEBACiAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoR1BSSW5mbzo6cmVn
VDAsIEZQUkluZm86OmZwUmVnVDApOwogICAgICAgICAgICAgaml0LnN0b3JlRG91YmxlKEZQUklu
Zm86OmZwUmVnVDAsIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgcGFyYW1zWzBdLm9mZnNldEZyb21GUCgpKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50
KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBwYXRj
aHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAxLCAyKSA9
PSAzKTsKIH0KQEAgLTg5OTAsOCArODcyMyw3IEBACiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0
aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwor
ICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKICAgICAKQEAgLTkwMTEsOCArODc0Myw3IEBACiAgICAg
ICAgICAgICBpZiAob3B0TGV2ZWwgPiAxKQogICAgICAgICAgICAgICAgIENIRUNLKCEiVGhpcyBz
aG91bGQgbm90IGhhdmUgZXhlY3V0ZWQiKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFw
cGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
UHJvYyhwcm9jKTsKICAgICAKQEAgLTkwNDEsOCArODc3Miw3IEBACiAgICAgICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKICAgICAKQEAgLTkwNzQsOCArODgwNCw3
IEBACiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAg
IGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5W
YWx1ZT4ocHJvYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKICAg
ICAKQEAgLTkxMjIsOCArODg1MSw3IEBACiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlUHJvYyhwcm9jKTsKIApAQCAtOTE3OSw4ICs4OTA3LDcgQEAKICAgICAgICAgICAgIGpp
dC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAg
ICB9KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAog
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogCkBAIC05MjQ1LDggKzg5NzIsNyBA
QAogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
LSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFs
dWU+KHByb2MsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAKQEAg
LTkzMTMsOCArOTAzOSw3IEBACiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUo
KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MykpOworICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQzKSk7CiAKICAgICBD
aGVja1ZhbHVlKiBjaGVjazIgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2Ms
IENoZWNrLCBPcmlnaW4oKSwgY2hlY2tQcmVkaWNhdGUpOwogICAgIGNoZWNrMi0+c2V0R2VuZXJh
dG9yKApAQCAtOTMyOCw4ICs5MDUzLDcgQEAKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQ1
KSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDUpKTsK
IAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogCkBAIC05Mzg0LDggKzkxMDgs
NyBAQAogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAg
ICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8
UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZVByb2MocHJvYyk7CkBAIC05NDIyLDggKzkxNDUsNyBAQAogICAgICAgICAgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
IH0pOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdp
bigpLCBjaGVja0FkZCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CkBA
IC05NDU5LDggKzkxODEsNyBAQAogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICBy
b290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCiAg
ICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CkBAIC05NDk4LDggKzkyMTksNyBAQAog
ICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJu
VmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZVByb2MocHJvYyk7CkBAIC05NTMzLDggKzkyNTMsNyBAQAogICAgICAgICAgICAgaml0LmVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwot
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBj
aGVja0FkZCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CkBAIC05NTU4
LDcgKzkyNzcsNyBAQAogICAgICAgICAgICAgaWYgKG9wdExldmVsID4gMSkKICAgICAgICAgICAg
ICAgICBDSEVDSyghIlNob3VsZCBoYXZlIGJlZW4gZm9sZGVkIik7CiAgICAgICAgIH0pOwotICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVj
a0FkZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
Y2hlY2tBZGQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAKQEAgLTk1
ODEsNyArOTMwMCw3IEBACiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsK
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKKyAgICByb290
LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjaGVja0FkZCk7CiAKICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKIApAQCAtOTYyMCw3ICs5MzM5LDcgQEAK
ICAgICBDaGVja1ZhbHVlKiBjaGVja0FkZDMgPSByb290LT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4o
cHJvYywgQ2hlY2tBZGQsIE9yaWdpbigpLCBjaGVja0FkZDEsIGNoZWNrQWRkMik7CiAgICAgY2hl
Y2tBZGQzLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zJikgeyBqaXQub29wcygpOyB9KTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZDMpOworICAg
IHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNoZWNrQWRkMyk7
CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDEsIDIsIDMpID09IDgp
OwogfQpAQCAtOTY2Myw3ICs5MzgyLDcgQEAKICAgICBDaGVja1ZhbHVlKiBjaGVja0FkZDMgPSBy
b290LT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hlY2tBZGQsIE9yaWdpbigpLCBjaGVj
a0FkZDEsIGNoZWNrQWRkMik7CiAgICAgY2hlY2tBZGQzLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2Fs
bEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyBqaXQub29w
cygpOyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjaGVja0FkZDMpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGNoZWNrQWRkMyk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIDEsIDIsIDMpID09IDgpOwogfQpAQCAtOTY5MCw3ICs5NDA5LDcgQEAKICAg
ICBvcGFxdWVVc2UtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZywgVmFsdWVSZXA6OlNvbWVS
ZWdpc3RlcikpOwogICAgIG9wYXF1ZVVzZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJz
JiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY2hlY2tBZGQp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAKQEAgLTk3MjMsNyArOTQ0
Miw3IEBACiAgICAgb3BhcXVlVXNlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcsIFZhbHVl
UmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICBvcGFxdWVVc2UtPnNldEdlbmVyYXRvcihbJl0gKEND
YWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hl
Y2tBZGQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGNoZWNrQWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogCkBAIC05
NzU4LDggKzk0NzcsNyBAQAogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7
CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290
LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CkBAIC05ODAyLDggKzk1MjAsNyBAQAogICAg
ICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0
KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFs
dWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IElUb0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVBy
b2MocHJvYyk7CkBAIC05ODQxLDggKzk1NTgsNyBAQAogICAgICAgICAgICAgaml0LmVtaXRGdW5j
dGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVj
a1N1YikpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CkBAIC05ODgxLDgg
Kzk1OTcsNyBAQAogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAg
ICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBl
bmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZVByb2MocHJvYyk7CkBAIC05OTA2LDcgKzk2MjEsNyBAQAogICAgICAgICAg
ICAgaWYgKG9wdExldmVsID4gMSkKICAgICAgICAgICAgICAgICBDSEVDSyghIlNob3VsZCBoYXZl
IGJlZW4gZm9sZGVkIik7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja1N1Yik7CisgICAgcm9vdC0+YXBwZW5k
TmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY2hlY2tTdWIpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAKQEAgLTk5MjksNyArOTY0NCw3IEBACiAgICAgICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGNoZWNrU3ViKTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBjaGVja1N1Yik7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJv
Yyhwcm9jKTsKIApAQCAtOTk1OCw4ICs5NjczLDcgQEAKICAgICAgICAgICAgIGppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hl
Y2tOZWcpKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwpAQCAtOTk5MCw4
ICs5NzA0LDcgQEAKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tOZWcpKTsKIAogICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwpAQCAtMTAwMjksOCArOTc0Miw3IEBACiAgICAgICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRv
RCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhw
cm9jKTsKQEAgLTEwMDcyLDggKzk3ODQsNyBAQAogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja011
bCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CkBAIC0xMDEyMSw4ICs5
ODMyLDcgQEAKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAg
ICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5k
TmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIAogICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGVQcm9jKHByb2MpOwpAQCAtMTAxNTYsOCArOTg2Niw3IEBACiAgICAgICAgICAg
ICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAg
ICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJv
YywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwg
T3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9j
KTsKQEAgLTEwMTgxLDcgKzk4OTAsNyBAQAogICAgICAgICAgICAgaWYgKG9wdExldmVsID4gMSkK
ICAgICAgICAgICAgICAgICBDSEVDSyghIlNob3VsZCBoYXZlIGJlZW4gZm9sZGVkIik7CiAgICAg
ICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBjaGVja011bCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgY2hlY2tNdWwpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJv
Yyk7CiAKQEAgLTEwMjA0LDcgKzk5MTMsNyBAQAogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011
bCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY2hl
Y2tNdWwpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAKQEAgLTEwMjQz
LDcgKzk5NTIsNyBAQAogICAgIENoZWNrVmFsdWUqIGNoZWNrTXVsMyA9IHJvb3QtPmFwcGVuZE5l
dzxDaGVja1ZhbHVlPihwcm9jLCBDaGVja011bCwgT3JpZ2luKCksIGNoZWNrTXVsMSwgY2hlY2tN
dWwyKTsKICAgICBjaGVja011bDMtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYgaml0
LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IGppdC5vb3BzKCk7IH0pOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNo
ZWNrTXVsMyk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgY2hlY2tNdWwzKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywg
MiwgMywgNCkgPT0gNzIpOwogfQpAQCAtMTAyODYsNyArOTk5NSw3IEBACiAgICAgQ2hlY2tWYWx1
ZSogY2hlY2tNdWwzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrTXVs
LCBPcmlnaW4oKSwgY2hlY2tNdWwxLCBjaGVja011bDIpOwogICAgIGNoZWNrTXVsMy0+c2V0R2Vu
ZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwzKTsKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjaGVja011bDMpOwogCiAgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAyLCAzLCA0KSA9PSA3Mik7CiB9CkBAIC0xMDMy
MCw4ICsxMDAyOSw3IEBACiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsK
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3Qt
PmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKQEAgLTEwMzQ2LDggKzEwMDU0LDcgQEAKICAg
ICAgICAgVmFsdWUqIHJpZ2h0VmFsdWUgPSByaWdodEZ1bmN0b3Iocm9vdCwgcHJvYyk7CiAgICAg
ICAgIFZhbHVlKiBjb21wYXJpc29uUmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBvcGNvZGUsIE9yaWdpbigpLCBsZWZ0VmFsdWUsIHJpZ2h0VmFsdWUpOwogICAgICAgICAKLSAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9j
LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIGNvbXBh
cmlzb25SZXN1bHQsCkBAIC0xMDM4MCwxMCArMTAwODcsOSBAQAogICAgICAgICAgICAgICAgIENI
RUNLKHBhcmFtc1swXS5pc0dQUigpKTsKICAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgICAgIH0p
OwotICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKLSAgICAgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCisgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdp
bigpLAogICAgICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2Ms
IGxlZnQsIHJpZ2h0KSA9PSByZXN1bHQpOwpAQCAtMTA2MjEsOCArMTAzMjcsNyBAQAogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBF
cXVhbCwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCksCkBAIC0xMDY0MCw4
ICsxMDM0NSw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0g
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENDYWxsVmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgSW50MzIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB0YWdDRnVuY3Rpb25Q
dHI8dm9pZCo+KHNpbXBsZUZ1bmN0aW9uLCBCM0NDYWxsUHRyVGFnKSksCkBAIC0xMDY2NCwxMSAr
MTAzNjgsOSBAQAogICAgICAgICBGcmVxdWVudGVkQmxvY2socmFyZSwgRnJlcXVlbmN5Q2xhc3M6
OlJhcmUpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2soY29tbW9uKSk7CiAKLSAgICBjb21tb24t
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y29tbW9uLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAg
IGNvbW1vbi0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY29tbW9uLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogICAgIAotICAgIHJh
cmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKKyAgICByYXJlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAg
ICAgICByYXJlLT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBJbnQz
MiwgT3JpZ2luKCksCiAgICAgICAgICAgICByYXJlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHRhZ0NGdW5jdGlvblB0cjx2b2lkKj4oc2ltcGxlRnVuY3Rpb24sIEIz
Q0NhbGxQdHJUYWcpKSwKQEAgLTEwNjkxLDExICsxMDM5Myw5IEBACiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayhyYXJlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSksCiAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayhjb21tb24pKTsKIAotICAgIGNvbW1vbi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjb21tb24tPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgY29tbW9uLT5hcHBlbmROZXc8UmV0dXJuVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBjb21tb24tPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAgICAgCi0gICAgcmFyZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAot
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJhcmUtPmFwcGVuZE5ldzxSZXR1
cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJhcmUtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLAogICAgICAgICAgICAgcmFyZS0+YXBw
ZW5kTmV3PENDYWxsVmFsdWU+KApAQCAtMTA3MTQsOCArMTA0MTQsNyBAQAogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIElu
dDMyLCBPcmlnaW4oKSwgRWZmZWN0czo6bm9uZSgpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB0YWdDRnVuY3Rpb25QdHI8dm9pZCo+
KHNpbXBsZUZ1bmN0aW9uLCBCM0NDYWxsUHRyVGFnKSksCkBAIC0xMDc0NCw3ICsxMDQ0Myw3IEBA
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
dGFnQ0Z1bmN0aW9uUHRyPHZvaWQqPihmdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cywgQjNDQ2Fs
bFB0clRhZykpKTsKICAgICBjYWxsLT5jaGlsZHJlbigpLmFwcGVuZFZlY3RvcihhcmdzKTsKICAg
ICAKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2FsbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgY2FsbCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYykgPT0gZnVuY3Rp
b25XaXRoSGVsbGFBcmd1bWVudHMoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAx
MiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2
KSk7CiB9CkBAIC0xMDc3MCw3ICsxMDQ2OSw3IEBACiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdGFnQ0Z1bmN0aW9uUHRyPHZvaWQqPihmdW5j
dGlvbldpdGhIZWxsYUFyZ3VtZW50czIsIEIzQ0NhbGxQdHJUYWcpKSk7CiAgICAgY2FsbC0+Y2hp
bGRyZW4oKS5hcHBlbmRWZWN0b3IoYXJncyk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOworICAgIHJvb3QtPmFwcGVu
ZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNhbGwpOwogCiAgICAgYXV0byBhID0g
Y29tcGlsZUFuZFJ1bjx1aW50NjRfdD4ocHJvYyk7CiAgICAgYXV0byBiID0gZnVuY3Rpb25XaXRo
SGVsbGFBcmd1bWVudHMyKGxpbWl0LCBsaW1pdC0xLCBsaW1pdC0yLCBsaW1pdC0zLCBsaW1pdC00
LCBsaW1pdC01LCBsaW1pdC02LCBsaW1pdC03LCBsaW1pdC04LCBsaW1pdC05LCBsaW1pdC0xMCwg
bGltaXQtMTEsIGxpbWl0LTEyLCBsaW1pdC0xMywgbGltaXQtMTQsIGxpbWl0LTE1LCBsaW1pdC0x
NiwgbGltaXQtMTcsIGxpbWl0LTE4LCBsaW1pdC0xOSwgbGltaXQtMjAsIGxpbWl0LTIxLCBsaW1p
dC0yMiwgbGltaXQtMjMsIGxpbWl0LTI0LCBsaW1pdC0yNSk7CkBAIC0xMDc5Miw3ICsxMDQ5MSw3
IEBACiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgdGFnQ0Z1bmN0aW9uUHRyPHZvaWQqPihmdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50czMsIEIz
Q0NhbGxQdHJUYWcpKSk7CiAgICAgY2FsbC0+Y2hpbGRyZW4oKS5hcHBlbmRWZWN0b3IoYXJncyk7
CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNhbGwpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGNhbGwpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbXBpbGF0aW9uPiBjb21waWxh
dGlvbiA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIENIRUNLKGludm9rZTxpbnQ+KCpjb21waWxh
dGlvbikgPT0gaW52b2tlPGludD4oKmNvbXBpbGF0aW9uKSk7CkBAIC0xMDgwOSw4ICsxMDUwOCw3
IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+
KHByb2MsIE9yaWdpbigpLCB2YWx1ZSkpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxkb3VibGU+KHByb2MpLCB2YWx1ZSkpOwpAQCAtMTA4MjAsOCArMTA1MTgsNyBAQAog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCB2YWx1ZSkpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxmbG9hdD4ocHJvYyksIHZhbHVlKSk7CkBAIC0xMDgzNiw4ICsxMDUzMyw3IEBACiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgRG91YmxlLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0
clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdGFnQ0Z1bmN0aW9uUHRyPHZvaWQqPihzaW1wbGVGdW5j
dGlvbkRvdWJsZSwgQjNDQ2FsbFB0clRhZykpLApAQCAtMTA4NjIsOCArMTA1NTgsNyBAQAogICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlMSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDFpbnQz
Mik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKLSAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAg
cm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRmxvYXQsIE9yaWdp
bigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCB0YWdDRnVuY3Rpb25QdHI8dm9pZCo+KHNpbXBsZUZ1bmN0aW9uRmxvYXQsIEIzQ0Nh
bGxQdHJUYWcpKSwKQEAgLTEwODkyLDcgKzEwNTg3LDcgQEAKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB0YWdDRnVuY3Rpb25QdHI8dm9pZCo+
KGZ1bmN0aW9uV2l0aEhlbGxhRG91YmxlQXJndW1lbnRzLCBCM0NDYWxsUHRyVGFnKSkpOwogICAg
IGNhbGwtPmNoaWxkcmVuKCkuYXBwZW5kVmVjdG9yKGFyZ3MpOwogICAgIAotICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKKyAgICBy
b290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjYWxsKTsKIAogICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSA9PSBmdW5jdGlvbldpdGhIZWxsYURv
dWJsZUFyZ3VtZW50cygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywg
MTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYpKTsKIH0K
QEAgLTEwOTE2LDcgKzEwNjExLDcgQEAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCB0YWdDRnVuY3Rpb25QdHI8dm9pZCo+KGZ1bmN0aW9uV2l0
aEhlbGxhRmxvYXRBcmd1bWVudHMsIEIzQ0NhbGxQdHJUYWcpKSk7CiAgICAgY2FsbC0+Y2hpbGRy
ZW4oKS5hcHBlbmRWZWN0b3IoYXJncyk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOworICAgIHJvb3QtPmFwcGVuZE5l
dzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNhbGwpOwogCiAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjxmbG9hdD4ocHJvYykgPT0gZnVuY3Rpb25XaXRoSGVsbGFGbG9hdEFyZ3VtZW50cygx
LCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcs
IDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYpKTsKIH0KQEAgLTEwOTMyLDggKzEw
NjI3LDcgQEAKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEludDMyLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdGFnQ0Z1bmN0aW9uUHRyPHZv
aWQqPihzaW1wbGVGdW5jdGlvbiwgQjNDQ2FsbFB0clRhZykpLApAQCAtMTA5NTksOCArMTA2NTMs
NyBAQAogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKLSAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIGNoaWxsKERpdiks
IE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC0x
MDk3OCw4ICsxMDY3MSw3IEBACiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJv
YywgY2hpbGwoRGl2KSwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG51bSksCkBAIC0xMDk5NCw4ICsxMDY4Niw3
IEBACiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCkBAIC0xMTAyOCw4ICsxMDcxOSw3IEBACiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAg
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICAgICAgcHJvYywgY2hpbGwoRGl2KSwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApLApAQCAtMTEwNDMsOCArMTA3MzMsNyBAQAogICAgICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAg
Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgICAgIHByb2MsIGNoaWxsKERpdiksIE9yaWdpbigpLAogICAgICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBudW0pLApAQCAt
MTEwNjQsNyArMTA3NTMsNyBAQAogCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1v
ZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNL
KCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIHZhbHVlKSk7CiB9CkBAIC0xMTA4Miw3ICsx
MDc3MSw3IEBACiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBW
YWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJn
dW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihw
cm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBudW1lcmF0b3IgJSBkZW5vbWluYXRvcik7
CiB9CkBAIC0xMTEwMCw3ICsxMDc4OSw3IEBACiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBudW1lcmF0b3IpOwogICAg
IFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgZGVub21pbmF0b3IpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBy
ZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBudW1lcmF0
b3IsIGRlbm9taW5hdG9yKSA9PSBudW1lcmF0b3IgJSBkZW5vbWluYXRvcik7CiB9CkBAIC0xMTEx
Niw3ICsxMDgwNSw3IEBACiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmln
aW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8
UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soIWNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgdmFsdWUpKTsKIH0KQEAgLTExMTM2LDcgKzEwODI1LDcg
QEAKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1l
bnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IG51bWVyYXRvciAlIGRlbm9t
aW5hdG9yKTsKIH0KQEAgLTExMTU0LDcgKzEwODQzLDcgQEAKICAgICBWYWx1ZSogYXJndW1lbnQx
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG51bWVyYXRv
cik7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBkZW5vbWluYXRvcik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVu
dDIpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKIH0K
QEAgLTExMTY2LDcgKzEwODU1LDcgQEAKIAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBjaGlsbChNb2QpLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAg
ICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQpOwog
CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgdmFsdWUpKTsKIH0KQEAg
LTExMTc5LDcgKzEwODY4LDcgQEAKICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgY2hpbGwoTW9kKSwgT3JpZ2lu
KCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8
UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBjaGlsbE1v
ZChudW1lcmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBAIC0xMTE5Miw3ICsxMDg4MSw3IEBACiAg
ICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBudW1lcmF0b3IpOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBl
bmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVub21pbmF0b3IpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIGNoaWxsKE1vZCksIE9y
aWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gY2hp
bGxNb2QobnVtZXJhdG9yLCBkZW5vbWluYXRvcikpOwogfQpAQCAtMTEyMDUsNyArMTA4OTQsNyBA
QAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1
bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIGNoaWxsKE1vZCksIE9yaWdpbigpLCBh
cmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5W
YWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAtMTEyMjAsNyArMTA5MDksNyBAQAogICAg
IFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBjaGlsbChNb2QpLCBPcmlnaW4oKSwgYXJndW1l
bnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IGNoaWxsTW9kKG51bWVyYXRv
ciwgZGVub21pbmF0b3IpKTsKIH0KQEAgLTExMjMzLDcgKzEwOTIyLDcgQEAKICAgICBWYWx1ZSog
YXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IG51bWVyYXRvcik7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZW5vbWluYXRvcik7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgY2hpbGwoTW9kKSwgT3JpZ2luKCksIGFy
Z3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJu
VmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBjaGlsbE1vZChudW1l
cmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBAIC0xMTI3Myw4ICsxMDk2Miw3IEBACiAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2sob3V0ZXJIZWFkZXIpKTsKIAogICAgIGlubmVyRW5kLT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhvdXRlckVuZCkpOwotICAg
IGVuZC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAorICAgIGVuZC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAg
ICAgICAgZW5kLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNTY3OCkp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7IC8vIFRoaXMgc2hvdWxkbid0
IGNyYXNoIGluIGNvbXB1dGluZyBOYXR1cmFsTG9vcHMuCkBAIC0xMTI4Nyw4ICsxMDk3NSw3IEBA
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAogICAgIEJhc2ljQmxv
Y2sqIHRlcm1pbmF0ZSA9IHByb2MuYWRkQmxvY2soKTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICB0ZXJt
aW5hdGUtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHRl
cm1pbmF0ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAog
ICAgIFN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxTd2l0Y2hWYWx1
ZT4oCkBAIC0xMTI5Nyw4ICsxMDk4NCw3IEBACiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgZGVncmVlOyArK2kpIHsKICAgICAgICAgQmFzaWNCbG9jayogbmV3QmxvY2sgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAg
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICBuZXdCbG9jay0+YXBwZW5k
TmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIG5ld0Jsb2NrLT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2lu
KCksIChpICYgMSkgPyBHUFJJbmZvOjphcmd1bWVudEdQUjIgOiBHUFJJbmZvOjphcmd1bWVudEdQ
UjEpKTsKICAgICAgICAgc3dpdGNoVmFsdWUtPmFwcGVuZENhc2UoU3dpdGNoQ2FzZShnYXAgKiBp
LCBGcmVxdWVudGVkQmxvY2sobmV3QmxvY2spKSk7CkBAIC0xMTMyNSwxNSArMTEwMTEsMTMgQEAK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCiAgICAgQmFzaWNCbG9j
ayogcmV0dXJuMTAgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcmV0dXJuMTAtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByZXR1cm4x
MC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcmV0dXJu
MTAtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxMCkpOwogCiAgICAg
VmFsdWUqIHN3aXRjaE9wZXJhbmQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKICAgICBCYXNpY0Jsb2Nr
KiBjYXNlQW5kRGVmYXVsdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBjYXNlQW5kRGVmYXVsdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCAK
KyAgICBjYXNlQW5kRGVmYXVsdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIGNhc2VBbmREZWZhdWx0LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICBzd2l0Y2hP
cGVyYW5kLCBjYXNlQW5kRGVmYXVsdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSkpOwpAQCAtMTEzNjYsOCArMTEwNTAsNyBAQAogICAgIFZhbHVlKiByaWdodCA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIyKTsKIAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxSZXR1cm5W
YWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIFN3aXRjaFZhbHVlKiBzd2l0Y2hW
YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxTd2l0Y2hWYWx1ZT4oCkBAIC0xMTM3Nyw4ICsxMTA2MCw3
IEBACiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7CiAgICAgICAg
IEJhc2ljQmxvY2sqIG5ld0Jsb2NrID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgICAgIG5ld0Js
b2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAorICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgICAgIHByb2MsIGNoaWxsKERpdiksIE9yaWdpbigpLCAoaSAmIDEpID8gcmlnaHQgOiBs
ZWZ0LCAoaSAmIDEpID8gbGVmdCA6IHJpZ2h0KSk7CiAgICAgICAgIApAQCAtMTE0MDksOCArMTEw
OTEsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKICAgICBC
YXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWluYXRlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisg
ICAgdGVybWluYXRlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAg
ICAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA1
KSk7CiAKICAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSByb290LT5hcHBlbmROZXc8U3dp
dGNoVmFsdWU+KApAQCAtMTE0MTgsOCArMTEwOTksNyBAQAogICAgIHN3aXRjaFZhbHVlLT5zZXRG
YWxsVGhyb3VnaChGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CiAKICAgICBCYXNpY0Jsb2Nr
KiBvdGhlclRhcmdldCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBvdGhlclRhcmdldC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIG90
aGVyVGFyZ2V0LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAg
ICBvdGhlclRhcmdldC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQy
KSk7CiAgICAgc3dpdGNoVmFsdWUtPmFwcGVuZENhc2UoU3dpdGNoQ2FzZSgzLCBGcmVxdWVudGVk
QmxvY2sob3RoZXJUYXJnZXQpKSk7CiAgICAgc3dpdGNoVmFsdWUtPmFwcGVuZENhc2UoU3dpdGNo
Q2FzZSgxMywgRnJlcXVlbnRlZEJsb2NrKG90aGVyVGFyZ2V0KSkpOwpAQCAtMTE0MzgsOCArMTEx
MTgsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKICAgICBC
YXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWluYXRlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisg
ICAgdGVybWluYXRlLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAg
ICAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0
MikpOwogCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwpAQCAtMTE0NDcs
OCArMTExMjYsNyBAQAogICAgIHN3aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3VnaChGcmVxdWVudGVk
QmxvY2sodGVybWluYXRlKSk7CiAKICAgICBCYXNpY0Jsb2NrKiBvdGhlclRhcmdldCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICBvdGhlclRhcmdldC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhcmd1bWVudCk7CisgICAgb3RoZXJUYXJnZXQt
PmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBz
d2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDMsIEZyZXF1ZW50ZWRCbG9jayhvdGhl
clRhcmdldCkpKTsKICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDEzLCBG
cmVxdWVudGVkQmxvY2sob3RoZXJUYXJnZXQpKSk7CiAKQEAgLTExNDY0LDggKzExMTQyLDcgQEAK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSkpOwpAQCAtMTE0NzcsOCArMTExNTQsNyBA
QAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJv
YywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBaRXh0MzIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKQEAgLTExNDkyLDggKzExMTY4LDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290
LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWkV4dDMyLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2
YWx1ZSkpKTsKQEAgLTExNTA1LDggKzExMTgwLDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICBy
b290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDMyLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC0xMTUyMCw4ICsxMTE5NCw3
IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNFeHQzMiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpKSk7CkBAIC0xMTUzMyw4ICsxMTIw
Niw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCkBAIC0xMTU1MCw4ICsxMTIyMiw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAg
cm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC0xMTU2Nyw4ICsxMTIzOCw3
IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCkBAIC0xMTU4Miw4ICsxMTI1Miw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9v
dC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2
YWx1ZSkpKTsKQEAgLTExNTk1LDggKzExMjY0LDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICBy
b290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDgsIE9yaWdpbigpLAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKQEAgLTExNjEyLDggKzExMjgwLDcg
QEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU0V4dDgsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKQEAgLTExNjI5LDggKzExMjk2LDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290
LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDgsIE9yaWdpbigpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKQEAgLTExNjQ3LDggKzExMzEzLDcgQEAK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0QW5kLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCkBAIC0xMTY2NSw4ICsxMTMzMCw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+
YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KApAQCAtMTE2ODAsOCArMTEzNDQsNyBAQAog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBTRXh0MTYsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSkpOwpAQCAtMTE2OTMsOCArMTEzNTYsNyBA
QAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJv
YywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKQEAgLTExNzEwLDggKzExMzcyLDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290
LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDE2LCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC0xMTcyNyw4ICsxMTM4OCw3IEBA
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9j
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KApAQCAtMTE3NDUsOCArMTE0MDUsNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3Qt
PmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKQEAgLTExNzYzLDggKzExNDIyLDcgQEAK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU0V4dDMyLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCkBAIC0xMTc4MSw4ICsxMTQzOSw3IEBACiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+
YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KApAQCAtMTE3OTksOCArMTE0NTYsNyBAQAog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBTZWxlY3QsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKQEAgLTExODIxLDggKzExNDc3LDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5h
cHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKQEAgLTExODQwLDggKzExNDk1LDcgQEAKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2Vs
ZWN0LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC0x
MTg3MSw4ICsxMTUyNSw3IEBACiAgICAgVmFsdWUqIGZsb2F0VmFsdWUxID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MWludDMyKTsK
ICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKQEAgLTExOTA5LDggKzExNTYyLDcg
QEAKICAgICBWYWx1ZSogZG91YmxlVmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEpOwogICAgIFZhbHVlKiBkb3Vi
bGVWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9y
aWdpbigpLCBmbG9hdFZhbHVlMik7CiAKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
Ci0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJl
dHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KApAQCAtMTE5MzcsOCArMTE1ODksNyBAQAogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3Qs
IE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKQEAgLTExOTU5
LDggKzExNjEwLDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
LSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0
dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSwKQEAgLTExOTc4LDggKzExNjI4LDcgQEAKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAg
ICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC0xMjAwOCw4ICsxMTY1
Nyw3IEBACiAgICAgVmFsdWUqIGZsb2F0VmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MWludDMyKTsKICAgICBWYWx1ZSog
ZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5l
dzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKQEAgLTEyMDM5LDggKzExNjg3LDcgQEAKICAgICBWYWx1
ZSogZmxvYXRWYWx1ZTMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgYXJndW1lbnQzaW50MzIpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlNCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVu
dDRpbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KApAQCAtMTIwNjUsOCArMTE3MTIsNyBAQAogICAgICAgICBWYWx1ZSogYXJnMiA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6
YXJndW1lbnRGUFIyKTsKICAgICAgICAgVmFsdWUqIGFyZzMgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMyk7CiAK
LSAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KApAQCAtMTIxMDEsNyArMTE3NDcsNyBAQAogICAgICAgICBrZWVw
VmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVS
ZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0Nh
bGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAg
ICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmln
aW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAK
ICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4o
KSkgewpAQCAtMTIxMjgsNyArMTE3NzQsNyBAQAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBw
ZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAg
ICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29u
c3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0KTsK
ICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAKICAgICAgICAgZm9yIChh
dXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTIxNTYs
NyArMTE4MDIsNyBAQAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVk
VmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVz
TGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5l
cmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBj
b2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxv
YXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTIxNzMsOCArMTE4MTksNyBAQAog
ICAgICAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKICAgICAgICAgVmFsdWUqIGFy
ZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQ
UkluZm86OmFyZ3VtZW50RlBSMik7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAotICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4o
KSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KApAQCAtMTIyMDgsNyAr
MTE4NTMsNyBAQAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFs
dWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2
ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0
aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2Rl
ID0gY29tcGlsZVByb2MocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRp
bmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTIyNTEsOCArMTE4OTYsNyBAQAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAg
ICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpKSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAotICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgU2Vs
ZWN0LCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KApA
QCAtMTIyOTUsNyArMTE5MzksNyBAQAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENv
bnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBr
ZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAg
ICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBs
ZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7CkBAIC0xMjMzMCw3ICsxMTk3
NCw3IEBACiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShh
cmczLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5z
ZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXc8UmV0
dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBj
b21waWxlUHJvYyhwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1Bv
aW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTEyMzY2LDcgKzEyMDEwLDcgQEAKICAgICAgICAg
a2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzMsIFZhbHVlUmVwOjpT
b21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0g
KENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAK
LSAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywg
T3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2Mp
OwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9h
dD4oKSkgewpAQCAtMTIzODksOCArMTIwMzMsNyBAQAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjIpKSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAg
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKICAgICAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KApAQCAtMTI0MzAsNyArMTIwNzMsNyBA
QAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMiwg
VmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2Vu
ZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
JikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGls
ZVByb2MocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9w
ZXJhbmRzPGZsb2F0PigpKSB7CkBAIC0xMjQ1Nyw4ICsxMjEwMCw3IEBACiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwg
T3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KApAQCAtMTI0Nzcs
OCArMTIxMTksNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAot
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1
cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKQEAgLTEyNTMyLDggKzEyMTczLDcgQEAKICAgICAgICAgICAgIGpp
dC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5l
dzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21w
aWxlUHJvYyhwcm9jKTsKQEAgLTEyNjA1LDggKzEyMjQ1LDcgQEAKICAgICAgICAgICAgIGppdC5y
ZXQoKTsKICAgICAgICAgfSk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxS
ZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
UHJvYyhwcm9jKTsKQEAgLTEyNjUzLDggKzEyMjkyLDcgQEAKIAogICAgIGF1dG8qIGFkZFZhbHVl
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgc2VsZWN0VmFs
dWUsIGNvbnN0YW50KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFs
dWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFkZCwgT3JpZ2luKCksIGFkZFZhbHVlLCBhZGRWYWx1ZTIpKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGVQcm9jKHByb2MpOwpAQCAtMTI2ODcsNyArMTIzMjUsNyBAQAogICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpOwogICAgIGF1dG8gcmVzdWx0ID0gcG93RG91YmxlSW50MzIocHJvYywgcm9v
dCwgT3JpZ2luKCksIHgsIHkpOwogICAgIEJhc2ljQmxvY2sqIGNvbnRpbnVhdGlvbiA9IHJlc3Vs
dC5maXJzdDsKLSAgICBjb250aW51YXRpb24tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQuc2Vjb25kKTsKKyAgICBjb250aW51YXRpb24tPmFwcGVu
ZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdC5zZWNvbmQpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIHhPcGVyYW5kLCB5
T3BlcmFuZCksIGIzUG93KHhPcGVyYW5kLCB5T3BlcmFuZCkpKTsKIH0KQEAgLTEyNjk3LDggKzEy
MzM1LDcgQEAKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KApAQCAtMTI3MTUsOCArMTIzNTIsNyBAQAogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAg
cm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC0xMjczMyw4ICsxMjM2OSw3
IEBACiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCkBAIC0xMjc1Miw4ICsxMjM4Nyw3IEBACiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290
LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCkBAIC0xMjc4MSwxNSArMTI0MTUsMTMg
QEAKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVs
c2VDYXNlKSk7CiAKICAgICBib29sIHRydWVSZXN1bHQgPSB0cnVlOwotICAgIHRoZW5DYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAg
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
TG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQ
dHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNl
UmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PFJl
dHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAg
ICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
JmVsc2VSZXN1bHQpKSk7CkBAIC0xMjgxMiwxNSArMTI0NDQsMTMgQEAKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBi
b29sIHRydWVSZXN1bHQgPSB0cnVlOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0g
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJmVsc2VSZXN1bHQpKSk7CkBA
IC0xMjg0NSwxNSArMTI0NzUsMTMgQEAKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNl
KSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBib29sIHRydWVSZXN1bHQgPSB0
cnVlOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4o
cHJvYywgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0
KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2Fk
OFosIE9yaWdpbigpLAogICAgICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdFB0clZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgJmVsc2VSZXN1bHQpKSk7CkBAIC0xMjg3OCwxNSArMTI1MDYs
MTMgQEAKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2Nr
KGVsc2VDYXNlKSk7CiAKICAgICBib29sIHRydWVSZXN1bHQgPSB0cnVlOwotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAg
ICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
c3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBl
bHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
LSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAg
ICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgJmVsc2VSZXN1bHQpKSk7CkBAIC0xMjkwOSw4ICsxMjUzNSw3IEBACiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBwdHIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFw
cGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZDhaLCBPcmlnaW4oKSwgcHRyKSk7CiAKICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIHZhbHVlKSA9PSBzdGF0aWNfY2FzdDx1
aW50OF90Pih2YWx1ZSkpOwpAQCAtMTI5MzEsOCArMTI1NTYsNyBAQAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKSwKICAgICAgICAgcHRyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBl
bmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQxNlosIE9yaWdpbigpLCBwdHIpKTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgdmFsdWUpID09IHN0YXRpY19jYXN0PHVp
bnQxNl90Pih2YWx1ZSkpOwpAQCAtMTI5NDMsOCArMTI1NjcsNyBAQAogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdp
bigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKQEAgLTEyOTY1LDggKzEy
NTg4LDcgQEAKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCkBAIC0xMjk5Miw3ICsxMjYxNCw3IEBACiAKICAgICBWYWx1ZSogYW1tb3VudCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMSkpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUm90UiwgT3Jp
Z2luKCksIHZhbHVlLCBhbW1vdW50KSk7CiAKICAgICBDSEVDS19FUShjb21waWxlQW5kUnVuPFQ+
KHByb2MsIHZhbHVlSW50LCBzaGlmdCksIHJvdGF0ZVJpZ2h0KHZhbHVlSW50LCBzaGlmdCkpOwpA
QCAtMTMwMTAsNyArMTI2MzIsNyBAQAogCiAgICAgVmFsdWUqIGFtbW91bnQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjEpKTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJvdEwsIE9yaWdpbigpLCB2YWx1
ZSwgYW1tb3VudCkpOwogCiAgICAgQ0hFQ0tfRVEoY29tcGlsZUFuZFJ1bjxUPihwcm9jLCB2YWx1
ZUludCwgc2hpZnQpLCByb3RhdGVMZWZ0KHZhbHVlSW50LCBzaGlmdCkpOwpAQCAtMTMwMjcsNyAr
MTI2NDksNyBAQAogICAgICAgICB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
VHJ1bmMsIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICBWYWx1ZSogYW1tb3VudCA9IHJvb3QtPmFw
cGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBJbnQzMiwgc2hpZnQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3Qt
PmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgUm90UiwgT3JpZ2luKCksIHZhbHVlLCBhbW1vdW50KSk7CiAK
ICAgICBDSEVDS19FUShjb21waWxlQW5kUnVuPFQ+KHByb2MsIHZhbHVlSW50LCBzaGlmdCksIHJv
dGF0ZVJpZ2h0KHZhbHVlSW50LCBzaGlmdCkpOwpAQCAtMTMwNDQsNyArMTI2NjYsNyBAQAogICAg
ICAgICB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigp
LCB2YWx1ZSk7CiAKICAgICBWYWx1ZSogYW1tb3VudCA9IHJvb3QtPmFwcGVuZEludENvbnN0YW50
KHByb2MsIE9yaWdpbigpLCBJbnQzMiwgc2hpZnQpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1
cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgUm90TCwgT3JpZ2luKCksIHZhbHVlLCBhbW1vdW50KSk7CiAKICAgICBDSEVDS19FUShj
b21waWxlQW5kUnVuPFQ+KHByb2MsIHZhbHVlSW50LCBzaGlmdCksIHJvdGF0ZUxlZnQodmFsdWVJ
bnQsIHNoaWZ0KSk7CkBAIC0xMzA4MSwxMyArMTI3MDMsMTEgQEAKICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIGFyZywgRnJl
cXVlbnRlZEJsb2NrKHRoZW5CbG9jayksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQmxvY2spKTsKIAot
ICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAotICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAorICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9j
LCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcsIHRoZW5CbG9jay0+YXBwZW5kTmV3PENv
bnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSkpOwogCi0gICAgZWxzZUJsb2NrLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAg
ZWxzZUJsb2NrLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAg
ICBlbHNlQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwg
T3JpZ2luKCksIGFyZywgZWxzZUJsb2NrLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKSk7CiAKQEAgLTEzMTA0LDggKzEyNzI0LDcgQEAKICAgICBWYWx1ZSogYXJn
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFNobCwgT3JpZ2luKCksIGFyZywgYXJnKSk7CiAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlUHJvYyhwcm9jKTsKQEAgLTEzMTI3LDggKzEyNzQ2LDcgQEAKICAgICBWYWx1ZSog
YXJnID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBl
bmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFNTaHIsIE9yaWdpbigpLCBhcmcsIGFyZykpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZVByb2MocHJvYyk7CkBAIC0xMzE1MCw4ICsxMjc2OCw3IEBACiAgICAgVmFs
dWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+
YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBaU2hyLCBPcmlnaW4oKSwgYXJnLCBhcmcpKTsKIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwpAQCAtMTMxNzEsOCArMTI3ODgsNyBAQAogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+
YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksIGFyZywgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksIGFyZykpKTsKIApAQCAt
MTMxOTUsOCArMTI4MTEsNyBAQAogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFNTaHIsIE9yaWdpbigpLCBhcmcsIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMs
IE9yaWdpbigpLCBhcmcpKSk7CiAKQEAgLTEzMjE5LDggKzEyODM0LDcgQEAKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5l
dzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwgYXJnLCByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYXJnKSkpOwogCkBAIC0xMzI1NSw3
ICsxMjg2OSw3IEBACiAgICAgICAgICAgICBudW1DYWxscysrOwogICAgICAgICB9KTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRj
aHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBwYXRjaHBvaW50KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAg
IENIRUNLKG51bUNhbGxzID09IDEpOwpAQCAtMTMyODgsNyArMTI5MDIsNyBAQAogCiAgICAgLy8g
T24geDg2LCBTdWIgYWRtaXQgYW4gYWRkcmVzcyBmb3IgYW55IG9wZXJhbmQuIElmIGl0IHVzZXMg
dGhlIHN0YWNrLCB0aGUgdG9wIGJpdHMgbXVzdCBiZSB6ZXJvLgogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGZvcmNlU3BpbGws
IGFyZzY0KTsKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7
CiAgICAgQ0hFQ0soaW52b2tlPGludDY0X3Q+KCpjb2RlLCAweGZmZmZmZmZmMDAwMDAwMDApID09
IDApOwpAQCAtMTMzNDIsNyArMTI5NTYsNyBAQAogICAgIFZhbHVlKiBwaGkgPSB0YWlsLT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50NjQsIE9yaWdpbigpKTsKICAgICB0aGVuUmVzdWx0
LT5zZXRQaGkocGhpKTsKICAgICBlbHNlUmVzdWx0LT5zZXRQaGkocGhpKTsKLSAgICB0YWlsLT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKKyAgICB0
YWlsLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBwaGkpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAgICAgQ0hFQ0soaW52b2tlPHVpbnQ2NF90
PigqY29kZSwgMSwgMHhmZmZmZmZmZjAwMDAwMDAwKSA9PSAwKTsKQEAgLTEzNDMxLDcgKzEzMDQ1
LDcgQEAKICAgICAgICAgICAgIGppdC5ub3AoKTsKICAgICAgICAgICAgIGppdC5ub3AoKTsKICAg
ICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHNlY29uZFBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5W
YWx1ZT4ocHJvYywgT3JpZ2luKCksIHNlY29uZFBhdGNocG9pbnQpOwogICAgIAogICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIENIRUNLKGludm9rZTx1aW50NjRfdD4oKmNv
ZGUpID09IHJlc3VsdCk7CkBAIC0xMzYwNiw4ICsxMzIyMCw3IEBACiAgICAgcHJpbnQtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRp
c3BhdGNoKSk7CiAgICAgCiAgICAgLy8gU3RvcDogcmV0dXJucy4KLSAgICBzdG9wLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgc3Rv
cC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgc3RvcC0+
YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIDApKTsKICAg
ICAKICAgICBhdXRvIGludGVycHJldGVyID0gY29tcGlsZVByb2MocHJvYyk7CkBAIC0xMzY5Nyw3
ICsxMzMxMCw3IEBACiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zJikgewogICAgICAgICAgICAgQ0hFQ0soISJTaG91bGQgbm90IGV4ZWN1
dGUiKTsKICAgICAgICAgfSk7Ci0gICAgdHdvLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2hlY2spOworICAgIHR3by0+YXBwZW5kTmV3PFJldHVyblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgY2hlY2spOwogICAgIAogICAgIHByb2MucmVzZXRSZWFjaGFiaWxp
dHkoKTsKICAgICByZWR1Y2VTdHJlbmd0aChwcm9jKTsKQEAgLTEzNzM3LDIyICsxMzM1MCwxOSBA
QAogICAgIHJvb3QtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2sodHdvKSk7CiAgICAg
cm9vdC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayh0aHJlZSkpOwogICAgIAotICAg
IG9uZS0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
KyAgICBvbmUtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAg
IG9uZS0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCks
CiAgICAgICAgICAgICBvbmUtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgICAgIG9uZS0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEp
KSk7CiAgICAgCi0gICAgdHdvLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAorICAgIHR3by0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmln
aW4oKSwKICAgICAgICAgdHdvLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
U3ViLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHR3by0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICAgICAg
dHdvLT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMSkpKTsKICAgICAKLSAgICB0aHJlZS0+YXBwZW5kTmV3PFZhbHVlPigKLSAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICB0aHJlZS0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgdGhyZWUtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLAogICAgICAgICAgICAgdGhyZWUtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSwKQEAgLTEzNzg0LDggKzEzMzk0LDcgQEAKICAgICAKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
Ci0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgcm9vdC0+YXBwZW5kTmV3PFJl
dHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCksCkBAIC0xMzg3MCw4ICsxMzQ3OSw3IEBACiAgICAgdXBzaWxvblR3by0+c2V0UGhp
KHBoaSk7CiAgICAgdXBzaWxvblRocmVlLT5zZXRQaGkocGhpKTsKICAgICAKLSAgICBlbmQtPmFw
cGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgZW5k
LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICBlbmQtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBjaGlsbChNb2QpLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIHBoaSwgZW5kLT5hcHBlbmROZXc8VmFsdWU+KApAQCAtMTM5ODcsOCArMTM1
OTUsNyBAQAogICAgIHVwc2lsb25Ud28tPnNldFBoaShwaGkpOwogICAgIHVwc2lsb25UaHJlZS0+
c2V0UGhpKHBoaSk7CiAgICAgCi0gICAgZW5kLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgIGVuZC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwKICAgICAgICAgZW5kLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgY2hpbGwoTW9kKSwgT3JpZ2luKCksCiAgICAgICAgICAgICBwaGksIGVuZC0+YXBw
ZW5kTmV3PFZhbHVlPigKQEAgLTE0MDcxLDcgKzEzNjc4LDcgQEAKICAgICAgICAgICAgIGxvb3BG
b290ZXItPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxMDApKSk7CiAg
ICAgbG9vcEZvb3Rlci0+c2V0U3VjY2Vzc29ycyhsb29wSGVhZGVyLCBlbmQpOwogICAgIAotICAg
IGVuZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBuZXdWYWx1ZSk7
CisgICAgZW5kLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBuZXdWYWx1
ZSk7CiAgICAgCiAgICAgcHJlcGFyZUZvckdlbmVyYXRpb24ocHJvYyk7CiAgICAgCkBAIC0xNDEy
NSw3ICsxMzczMiw3IEBACiAgICAgICAgICAgICAgICAgcmFuU2Vjb25kUGF0Y2hwb2ludCA9IHRy
dWU7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogICAg
ICAgICAKICAgICAgICAgY29tcGlsZVByb2MocHJvYyk7CiAgICAgICAgIENIRUNLKHJhbkZpcnN0
UGF0Y2hwb2ludCk7CkBAIC0xNDIzNCw5ICsxMzg0MSw5IEBACiAgICAgICAgIHAtPnNldEdlbmVy
YXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYp
IHsgfSk7CiAgICAgfQogCi0gICAgc3VjY2Vzcy0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzdWNjZXNzLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMTApKTsKKyAgICBzdWNjZXNzLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBzdWNjZXNzLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MTApKTsKICAgICAKLSAgICBzbG93UGF0aC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBzbG93UGF0aC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDIwKSk7CisgICAgc2xvd1BhdGgtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIHNsb3dQYXRoLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MjApKTsKICAgICAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKICAgICBDSEVD
S19FUShpbnZva2U8aW50PigqY29kZSksIDEwKTsKQEAgLTE0MzE4LDkgKzEzOTI1LDkgQEAKICAg
ICAgICAgcC0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKICAgICB9CiAKLSAgICBzdWNjZXNzLT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHN1Y2Nlc3Mt
PmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogICAg
IAotICAgIHNsb3dQYXRoLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGFyZyk7CisgICAgc2xvd1BhdGgtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGFyZyk7CiAgICAgCiAgICAgYXV0byBvcmlnaW5hbDEgPSBPcHRpb25zOjptYXhCM1RhaWxE
dXBCbG9ja1NpemUoKTsKICAgICBhdXRvIG9yaWdpbmFsMiA9IE9wdGlvbnM6Om1heEIzVGFpbER1
cEJsb2NrU3VjY2Vzc29ycygpOwpAQCAtMTQ0MDIsNyArMTQwMDksNyBAQAogICAgIFZhbHVlKiBw
aGkgPSBjb250aW51YXRpb24tPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3Jp
Z2luKCkpOwogICAgIHN1Y2Nlc3NVcHNpbG9uLT5zZXRQaGkocGhpKTsKICAgICBzbG93UGF0aFVw
c2lsb24tPnNldFBoaShwaGkpOwotICAgIGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwaGkpOworICAgIGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3
PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcGhpKTsKICAgICAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlUHJvYyhwcm9jKTsKICAgICBDSEVDS19FUShpbnZva2U8aW50PigqY29kZSwgMCks
IDMxKTsKQEAgLTE0NDIwLDcgKzE0MDI3LDcgQEAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIAogICAgIHJvb3QtPmFwcGVuZE5ldzxGZW5jZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByb290LT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgSW50MzIsIDQy
KSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcm9v
dC0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIEludDMyLCA0MikpOwogICAgIAog
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIENIRUNLX0VRKGludm9rZTxp
bnQ+KCpjb2RlKSwgNDIpOwpAQCAtMTQ0MzksNyArMTQwNDYsNyBAQAogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgCiAgICAgcm9vdC0+YXBwZW5kTmV3PEZlbmNl
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBIZWFwUmFuZ2U6OnRvcCgpLCBIZWFwUmFuZ2UoKSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgSW50MzIsIDQyKSk7CisgICAgcm9vdC0+
YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kSW50Q29u
c3RhbnQocHJvYywgT3JpZ2luKCksIEludDMyLCA0MikpOwogICAgIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpjb2RlKSwgNDIp
OwpAQCAtMTQ0NTYsNyArMTQwNjMsNyBAQAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgCiAgICAgcm9vdC0+YXBwZW5kTmV3PEZlbmNlVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBIZWFwUmFuZ2UoKSwgSGVhcFJhbmdlOjp0b3AoKSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmRJbnRDb25zdGFu
dChwcm9jLCBPcmlnaW4oKSwgSW50MzIsIDQyKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3Jp
Z2luKCksIEludDMyLCA0MikpOwogICAgIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHBy
b2MpOwogICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpjb2RlKSwgNDIpOwpAQCAtMTQ0ODQsNyAr
MTQwOTEsNyBAQAogICAgIHZhbHVlLT5zZXRSYW5nZShIZWFwUmFuZ2UoMCkpOwogICAgIENIRUNL
X0VRKHZhbHVlLT5yYW5nZSgpLCBIZWFwUmFuZ2UoMCkpOwogICAgIENIRUNLX0VRKHZhbHVlLT5l
ZmZlY3RzKCksIGV4cGVjdGVkRWZmZWN0cyk7IC8vIFdlIHN0aWxsIHJlYWRzIHRvcCEKLSAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAg
ICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAg
ICAgQ0hFQ0tfRVEoY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpLCA0Mik7CiAgICAgdW5zaWduZWQg
dHJhcHNDb3VudCA9IDA7CiAgICAgZm9yIChBaXI6OkJhc2ljQmxvY2sqIGJsb2NrIDogcHJvYy5j
b2RlKCkpIHsKQEAgLTE0NTE2LDcgKzE0MTIzLDcgQEAKICAgICBDSEVDS19FUSh2YWx1ZS0+cmFu
Z2UoKSwgSGVhcFJhbmdlKDApKTsKICAgICBleHBlY3RlZEVmZmVjdHMud3JpdGVzID0gSGVhcFJh
bmdlKDApOwogICAgIENIRUNLX0VRKHZhbHVlLT5lZmZlY3RzKCksIGV4cGVjdGVkRWZmZWN0cyk7
IC8vIFdlIHN0aWxsIHJlYWRzIHRvcCEKLSAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJv
YywgT3JpZ2luKCkpOwogICAgIGNvbXBpbGVBbmRSdW48aW50Pihwcm9jKTsKICAgICBDSEVDS19F
USh4LCAxMTEpOwogICAgIHVuc2lnbmVkIHRyYXBzQ291bnQgPSAwOwpAQCAtMTQ1NDIsNyArMTQx
NDksNyBAQAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCB0
cmFwcGluZyhMb2FkKSwgSW50MzIsIE9yaWdpbigpLCBwdHIpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDMpKSwKICAgICAgICAgcHRy
LCAwKTsKLSAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCkp
OworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCkpOwogICAg
IGNvbXBpbGVBbmRSdW48aW50Pihwcm9jKTsKICAgICBDSEVDS19FUSh4LCA0NSk7CiAgICAgYm9v
bCB0cmFwcyA9IGZhbHNlOwpAQCAtMTQ1NjMsNyArMTQxNzAsNyBAQAogICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgIHByb2MsIHRyYXBwaW5nKExvYWQpLCBJbnQzMiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgJngpKTsKLSAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2lu
KCkpOwogICAgIGNvbXBpbGVBbmRSdW48aW50Pihwcm9jKTsKICAgICB1bnNpZ25lZCB0cmFwc0Nv
dW50ID0gMDsKICAgICBmb3IgKEFpcjo6QmFzaWNCbG9jayogYmxvY2sgOiBwcm9jLmNvZGUoKSkg
ewpAQCAtMTQ1ODksNyArMTQxOTYsNyBAQAogICAgICAgICBwcm9jLCB0cmFwcGluZyhTdG9yZSks
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgNDQpLAogICAgICAgICBwdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSk7CiAgICAgY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpOwogICAgIHVu
c2lnbmVkIHN0b3JlQ291bnQgPSAwOwogICAgIGZvciAoVmFsdWUqIHZhbHVlIDogcHJvYy52YWx1
ZXMoKSkgewpAQCAtMTQ2NDIsNyArMTQyNDksNyBAQAogICAgICAgICAgICAgcHJvYywgTG9hZCwg
cG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDB4MTIzNDEyMzQxMzM0KSk7CiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPihwcm9jLCBWb2lkLCBPcmlnaW4oKSwgYSwgYik7Ci0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSk7Cisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCkpOwogICAg
ICAgICBjaGVjayhwcm9jKTsKICAgICB9CiAgICAgCkBAIC0xNDY1NSw3ICsxNDI2Miw3IEBACiAg
ICAgICAgIFZhbHVlKiBiID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEFkZCwgT3JpZ2luKCksIHgsIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgLTB4MTIzNDEyMzQxMjM0KSk7CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
Q2FsbFZhbHVlPihwcm9jLCBWb2lkLCBPcmlnaW4oKSwgYSwgYik7Ci0gICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSk7CisgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCkpOwogICAgICAgICBjaGVjayhwcm9j
KTsKICAgICB9CiB9CkBAIC0xNDY4MSw3ICsxNDI4OCw3IEBACiAgICAgICAgICAgICBDSEVDSyh3
YXRjaHBvaW50TGFiZWwgPT0gbGFiZWxJZ25vcmluZ1dhdGNocG9pbnRzKTsKICAgICAgICAgfSk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCkpOwor
ICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCkpOwogCiAgICAg
Y29tcGlsZVByb2MocHJvYyk7CiB9CkBAIC0xNDcxOSw3ICsxNDMyNiw3IEBACiAgICAgICAgICAg
ICAgICAgaWYgKG9wdExldmVsID4gMSkKICAgICAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEocGFy
YW1zWzBdLmdwcigpLCBHUFJJbmZvOjpyZWdDUzApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSk7CisgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCkpOwogICAgICAgICBh
dXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKICAgICAgICAgYm9vbCB1c2VzQ1NScyA9IGZh
bHNlOwogICAgICAgICBmb3IgKEFpcjo6QmFzaWNCbG9jayogYmxvY2sgOiBwcm9jLmNvZGUoKSkg
ewpAQCAtMTQ3NjIsNyArMTQzNjksNyBAQAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAyKSksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDEwMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9j
KHByb2MpOwogICAgIGlmIChwcm9jLm9wdExldmVsKCkgPiAxKQpAQCAtMTQ3ODcsNyArMTQzOTQs
NyBAQAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSwKICAgICAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMikpKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxMDApKTsK
LSAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVz
dWx0KTsKICAgICAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKICAgICBpZiAo
cHJvYy5vcHRMZXZlbCgpID4gMSkKQEAgLTE0ODA5LDcgKzE0NDE2LDcgQEAKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIxKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMTAwKSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJlc3Vs
dCk7CiAgICAgCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAgICAgQ0hFQ0tf
RVEoaW52b2tlPGludHB0cl90PigqY29kZSwgMSwgMiksICgxICsgMikgKyAxMDApOwpAQCAtMTQ4
MzYsNyArMTQ0NDMsNyBAQAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIxKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAyKSkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8
UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIAogICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIGlmIChwcm9jLm9wdExldmVsKCkgPiAxKQpAQCAt
MTQ4NTgsNyArMTQ0NjUsNyBAQAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmRO
ZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIAogICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIENIRUNLX0VRKGludm9rZTxpbnRwdHJfdD4o
KmNvZGUsIDEsIDIpLCAxICsgMik7CkBAIC0xNDg4NSw3ICsxNDQ5Miw3IEBACiAgICAgICAgICAg
ICBwcm9jLCBTaGwsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEp
KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IHJlc3VsdCk7CiAgICAgCiAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAgICAg
aWYgKHByb2Mub3B0TGV2ZWwoKSA+IDEpCkBAIC0xNDkwNyw3ICsxNDUxNCw3IEBACiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMikpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCByZXN1
bHQpOwogICAgIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIGlmIChw
cm9jLm9wdExldmVsKCkgPiAxKQpAQCAtMTQ5MjksNyArMTQ1MzYsNyBAQAogICAgICAgICAgICAg
cHJvYywgU2hsLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAzKSkp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBy
ZXN1bHQpOwogICAgIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIGlm
IChwcm9jLm9wdExldmVsKCkgPiAxKQpAQCAtMTQ5NTEsNyArMTQ1NTgsNyBAQAogICAgICAgICAg
ICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAz
MikpKTsKLSAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgcmVzdWx0KTsKICAgICAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKICAg
ICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4oKmNvZGUsIDEsIDIpLCAxICsgKHN0YXRpY19jYXN0
PGludDY0X3Q+KDIpIDw8IHN0YXRpY19jYXN0PGludDY0X3Q+KDMyKSkpOwpAQCAtMTQ5NjksNyAr
MTQ1NzYsNyBAQAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIxKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCA2NCkpKTsKLSAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVy
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlUHJvYyhwcm9jKTsKICAgICBDSEVDS19FUShpbnZva2U8aW50cHRyX3Q+KCpjb2RlLCAx
LCAyKSwgMSArIDIpOwpAQCAtMTQ5ODcsNyArMTQ1OTQsNyBAQAogICAgICAgICAgICAgcHJvYywg
U2hsLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA2NSkpKTsKLSAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmVzdWx0
KTsKICAgICAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKICAgICBDSEVDS19F
UShpbnZva2U8aW50cHRyX3Q+KCpjb2RlLCAxLCAyKSwgMSArICgyIDw8IDEpKTsKQEAgLTE1MDEz
LDcgKzE0NjIwLDcgQEAKICAgICBlbHNlCiAgICAgICAgIG91dGVyQWRkID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBpbm5lckFkZCwgYXJnMik7CiAgICAgCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBvdXRlckFk
ZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgb3V0
ZXJBZGQpOwogICAgIAogICAgIHByb2MucmVzZXRSZWFjaGFiaWxpdHkoKTsKIApAQCAtMTUwNDIs
OCArMTQ2NDksNyBAQAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFs
dWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKQEAgLTE1MDY3LDggKzE0NjczLDcgQEAKICNpZiBDUFUo
QUREUkVTUzY0KQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHBy
b2MsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKQEAgLTE1MDk3LDcgKzE0NzAyLDcgQEAKICAgICAgICAgcHJvYywg
Vm9pZCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMHgxMjM0MjM0NTM0NTZsbHUpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDB4MTIzNDIzNDUzNDU2bGx1ICsgMzUp
KTsKLSAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCkpOwor
ICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCkpOwogICAgIAog
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgIGJvb2wgZm91bmQgPSBmYWxz
ZTsKQEAgLTE1MTQwLDcgKzE0NzQ1LDcgQEAKICAgICAgICAgICAgIGxvb3AtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxMDApKSk7CiAgICAgbG9vcC0+c2V0U3VjY2Vz
c29ycyhsb29wLCBlbmQpOwogICAgIAotICAgIGVuZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpKTsKKyAgICBlbmQtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywg
T3JpZ2luKCkpOwogfQogCiBzdGQ6OmFycmF5PGludCwgMTAwPiBtYWtlQXJyYXlGb3JMb29wcygp
CkBAIC0xNTIwNCw3ICsxNDgwOSw3IEBACiAgICAgICAgICAgICBsb29wRm9vdGVyLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMTAwKSkpOwogICAgIGxvb3BGb290ZXIt
PnNldFN1Y2Nlc3NvcnMobG9vcEhlYWRlciwgZW5kKTsKICAgICAKLSAgICBlbmQtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSk7CisgICAgZW5kLT5hcHBlbmROZXc8UmV0
dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpKTsKIH0KIAogc3RhdGljIGludCBvbmVGdW5jdGlvbihp
bnQqIGNhbGxDb3VudCkKQEAgLTE1NzMwLDcgKzE1MzM1LDcgQEAKICAgICAgICAgICAgICAgICBw
dHIpKTsKICAgICAgICAgcmVsb29wLT5zZXRTdWNjZXNzb3JzKGRvbmUsIHJlbG9vcCk7CiAgICAg
ICAgIAotICAgICAgICBkb25lLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCkpOworICAgICAgICBkb25lLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigp
KTsKICAgICAgICAgCiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAg
ICAgICBUIHZhbHVlWzJdOwpAQCAtMTU3NjEsNyArMTUzNjYsNyBAQAogICAgICAgICAgICAgICAg
IHB0ciwgMCwgSGVhcFJhbmdlKDQyKSwgSGVhcFJhbmdlKCkpKTsKICAgICAgICAgcmVsb29wLT5z
ZXRTdWNjZXNzb3JzKGRvbmUsIHJlbG9vcCk7CiAgICAgICAgIAotICAgICAgICBkb25lLT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCkpOworICAgICAgICBkb25lLT5hcHBl
bmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpKTsKICAgICAgICAgCiAgICAgICAgIGF1
dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgICAgICBUIHZhbHVlWzJdOwpAQCAtMTU3
OTMsOSArMTUzOTgsOSBAQAogICAgICAgICAgICAgcHJvYywgc3RvcmVPcGNvZGUoR1AsIHdpZHRo
KSwgT3JpZ2luKCksCiAgICAgICAgICAgICBzdWNjLT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBP
cmlnaW4oKSwgdHlwZSwgMTAwKSwKICAgICAgICAgICAgIHB0cik7Ci0gICAgICAgIHN1Y2MtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSk7CisgICAgICAgIHN1Y2MtPmFw
cGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCkpOwogICAgICAgICAKLSAgICAgICAg
ZmFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpKTsKKyAgICAgICAg
ZmFpbC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSk7CiAgICAgICAgIAog
ICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9jKTsKICAgICAgICAgVCB2YWx1ZVsy
XTsKQEAgLTE1ODM1LDkgKzE1NDQwLDkgQEAKICAgICAgICAgICAgIHByb2MsIHN0b3JlT3Bjb2Rl
KEdQLCB3aWR0aCksIE9yaWdpbigpLAogICAgICAgICAgICAgc3VjYy0+YXBwZW5kSW50Q29uc3Rh
bnQocHJvYywgT3JpZ2luKCksIHR5cGUsIDEwMCksCiAgICAgICAgICAgICBwdHIpOwotICAgICAg
ICBzdWNjLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCkpOworICAgICAg
ICBzdWNjLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpKTsKICAgICAgICAg
Ci0gICAgICAgIGZhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSk7
CisgICAgICAgIGZhaWwtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCkpOwog
ICAgICAgICAKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAgICAgICAg
IFQgdmFsdWVbMl07CkBAIC0xNTg1Nyw4ICsxNTQ2Miw3IEBACiAgICAgewogICAgICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywg
T3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXRvbWljVmFsdWU+KAogICAg
ICAgICAgICAgICAgIHByb2MsIEF0b21pY1dlYWtDQVMsIE9yaWdpbigpLCB3aWR0aCwKICAgICAg
ICAgICAgICAgICByb290LT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgdHlwZSwg
NDIpLApAQCAtMTU4ODMsOCArMTU0ODcsNyBAQAogICAgIHsKICAgICAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBw
cm9jLCBFcXVhbCwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEF0
b21pY1ZhbHVlPigKQEAgLTE1OTEyLDggKzE1NTE1LDcgQEAKICAgICB7CiAgICAgICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBdG9taWNWYWx1ZT4oCiAgICAg
ICAgICAgICAgICAgcHJvYywgQXRvbWljV2Vha0NBUywgT3JpZ2luKCksIHdpZHRoLAogICAgICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCB0eXBlLCA0
MiksCkBAIC0xNTk4MSw5ICsxNTU4Myw5IEBACiAgICAgICAgICAgICBwcm9jLCBzdG9yZU9wY29k
ZShHUCwgd2lkdGgpLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHN1Y2MtPmFwcGVuZEludENvbnN0
YW50KHByb2MsIE9yaWdpbigpLCB0eXBlLCAxMDApLAogICAgICAgICAgICAgcHRyKTsKLSAgICAg
ICAgc3VjYy0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpKTsKKyAgICAg
ICAgc3VjYy0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSk7CiAgICAgICAg
IAotICAgICAgICBmYWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCkp
OworICAgICAgICBmYWlsLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpKTsK
ICAgICAgICAgCiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGVQcm9jKHByb2MpOwogICAgICAg
ICBUIHZhbHVlWzJdOwpAQCAtMTYwMjIsOSArMTU2MjQsOSBAQAogICAgICAgICAgICAgcHJvYywg
c3RvcmVPcGNvZGUoR1AsIHdpZHRoKSwgT3JpZ2luKCksCiAgICAgICAgICAgICBzdWNjLT5hcHBl
bmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgdHlwZSwgMTAwKSwKICAgICAgICAgICAgIHB0
cik7Ci0gICAgICAgIHN1Y2MtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSk7CisgICAgICAgIHN1Y2MtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCkp
OwogICAgICAgICAKLSAgICAgICAgZmFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpKTsKKyAgICAgICAgZmFpbC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBP
cmlnaW4oKSk7CiAgICAgICAgIAogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJvYyhwcm9j
KTsKICAgICAgICAgVCB2YWx1ZVsyXTsKQEAgLTE2MDYzLDkgKzE1NjY1LDkgQEAKICAgICAgICAg
ICAgIHByb2MsIHN0b3JlT3Bjb2RlKEdQLCB3aWR0aCksIE9yaWdpbigpLAogICAgICAgICAgICAg
c3VjYy0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHR5cGUsIDEwMCksCiAgICAg
ICAgICAgICBwdHIpOwotICAgICAgICBzdWNjLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCkpOworICAgICAgICBzdWNjLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2Ms
IE9yaWdpbigpKTsKICAgICAgICAgCi0gICAgICAgIGZhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSk7CisgICAgICAgIGZhaWwtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCkpOwogICAgICAgICAKICAgICAgICAgYXV0byBjb2RlID0gY29tcGls
ZVByb2MocHJvYyk7CiAgICAgICAgIFQgdmFsdWVbMl07CkBAIC0xNjA4NCw4ICsxNTY4Niw3IEBA
CiAgICAgewogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAg
ICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXRvbWljVmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIEF0b21pY1N0cm9uZ0NBUywg
T3JpZ2luKCksIHdpZHRoLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZEludENvbnN0YW50
KHByb2MsIE9yaWdpbigpLCB0eXBlLCA0MiksCkBAIC0xNjExNSw4ICsxNTcxNiw3IEBACiAgICAg
ICAgIAogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxS
ZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCiAgICAgICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEF0b21pY1ZhbHVlPigKQEAgLTE2MTQ5LDggKzE1NzQ5
LDcgQEAKICAgICB7CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAotICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLAog
ICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBdG9taWNWYWx1ZT4oCkBAIC0xNjE3Nyw4
ICsxNTc3Niw3IEBACiAgICAgewogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKLSAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmln
aW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KApAQCAtMTYyNjUs
OCArMTU4NjMsNyBAQAogICAgIHsKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCi0gICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICBy
b290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEF0b21pY1ZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBvcGNv
ZGUsIE9yaWdpbigpLCB3aWR0aCwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmRJbnRDb25z
dGFudChwcm9jLCBPcmlnaW4oKSwgdHlwZSwgMSksCkBAIC0xNjI4NSw4ICsxNTg4Miw3IEBACiAg
ICAgewogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxS
ZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
QXRvbWljVmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgT3JpZ2luKCksIHdp
ZHRoLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdp
bigpLCB0eXBlLCA0MiksCkBAIC0xNjMwOSw3ICsxNTkwNSw3IEBACiAgICAgICAgICAgICBwcm9j
LCBvcGNvZGUsIE9yaWdpbigpLCB3aWR0aCwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZEludENv
bnN0YW50KHByb2MsIE9yaWdpbigpLCB0eXBlLCA0MiksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOwotICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCkpOworICAgICAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdp
bigpKTsKICAgICAKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAgICAg
ICAgIFQgdmFsdWVbMl07CkBAIC0xNjMyOSw3ICsxNTkyNSw3IEBACiAgICAgICAgICAgICByb290
LT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgdHlwZSwgNDIpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICAgICAgMCwgSGVhcFJhbmdlKDQyKSwgSGVhcFJh
bmdlKCkpOwotICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCkpOworICAgICAgICByb290LT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdp
bigpKTsKICAgICAKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZVByb2MocHJvYyk7CiAgICAg
ICAgIFQgdmFsdWVbMl07CkBAIC0xNjM1Niw4ICsxNTk1Miw3IEBACiAgICAgICAgICAgICAgICAg
cHJvYywgWkV4dDMyLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIERlcGVuZCwgT3JpZ2luKCksIGZpcnN0KSkpLAogICAgICAgICA0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZmlyc3QsIHNl
Y29uZCkpOwogICAgIAogICAgIGludDMyX3QgdmFsdWVzWzJdOwpAQCAtMTYzODYsOCArMTU5ODEs
NyBAQAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwgcHRyLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEZXBlbmQsIE9yaWdpbigpLCBmaXJzdCkpLAog
ICAgICAgICA4KTsKLSAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAorICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgZmlyc3QsIHNlY29uZCkpOwogICAgIAogICAgIGludDY0X3QgdmFsdWVzWzJdOwpAQCAt
MTY0MjgsNyArMTYwMjIsNyBAQAogICAgICAgICBsZWZ0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBUcnVuYywgT3JpZ2luKCksIGxlZnQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxXYXNt
Qm91bmRzQ2hlY2tWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHBpbm5lZCwgbGVmdCwgb2Zmc2V0KTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDB4NDIpOwotICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1
ZT4ocHJvYywgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlUHJv
Yyhwcm9jKTsKICAgICB1aW50MzJfdCBib3VuZCA9IDIgKyBvZmZzZXQ7CkBAIC0xNjQ4MCw3ICsx
NjA3NCw3IEBACiAgICAgYm9keS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9y
aWdpbigpLCBoZWFkZXIpOwogCiAgICAgLy8gQ29udGludWF0aW9uCi0gICAgY29udGludWF0aW9u
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSk7CisgICAgY29u
dGludWF0aW9uLT5hcHBlbmROZXc8UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpKTsKIAogICAg
IGJlZ2luVXBzaWxvbi0+c2V0UGhpKGluZGV4UGhpKTsKICAgICBpbmNVcHNpbG9uLT5zZXRQaGko
aW5kZXhQaGkpOwpAQCAtMTY1MDgsNyArMTYxMDIsNyBAQAogICAgICAgICAgICAgaml0LmxvYWRG
cm9tVExTUHRyKGZhc3RUTFNPZmZzZXRGb3JLZXkoV1RGX1RFU1RJTkdfS0VZKSwgcGFyYW1zWzBd
LmdwcigpKTsKICAgICAgICAgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ldzxSZXR1
cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogICAgIAogICAgIENIRUNLX0VR
KGNvbXBpbGVBbmRSdW48dWludHB0cl90Pihwcm9jKSwgc3RhdGljX2Nhc3Q8dWludHB0cl90Pigw
eGJlZWYpKTsKICNlbmRpZgpAQCAtMTY1MzEsNyArMTYxMjUsNyBAQAogICAgICAgICAgICAgaml0
LnN0b3JlVG9UTFNQdHIoc2NyYXRjaCwgZmFzdFRMU09mZnNldEZvcktleShXVEZfVEVTVElOR19L
RVkpKTsKICAgICAgICAgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihw
cm9jLCBPcmlnaW4oKSk7CiAKICAgICBjb21waWxlQW5kUnVuPHZvaWQ+KHByb2MpOwogICAgIENI
RUNLX0VRKGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KF9wdGhyZWFkX2dldHNwZWNpZmljX2RpcmVj
dChXVEZfVEVTVElOR19LRVkpKSwgc3RhdGljX2Nhc3Q8dWludHB0cl90PigweGRlYWQpKTsKQEAg
LTE2NTY4LDggKzE2MTYyLDcgQEAKICAgICAgICAgVmFsdWUqIHZhbHVlQyA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMC4wKTsKICAgICAgICAgVmFs
dWUqIHZhbHVlQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9G
bG9hdCwgT3JpZ2luKCksIHZhbHVlQyk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAotICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCiAgICAgICAg
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgc3RkOjpnZXQ8MD4odGVz
dCksIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQiksCiAgICAgICAgICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCB2YWx1ZUFzRmxvYXQsIHZh
bHVlQXNGbG9hdCkpKTsKQEAgLTE2NTkwLDcgKzE2MTgzLDcgQEAKICAgICAgICAgICAgIFZhbHVl
KiBjb25zdEEgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYSk7CiAgICAgICAgICAgICBWYWx1ZSogY29uc3RCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogCi0gICAgICAgICAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgcHJvYywgRXF1
YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0QSwKQEAg
LTE2NjIxLDcgKzE2MjE0LDcgQEAKICAgICAgICAgaWYgKGkgJSAyKQogICAgICAgICAgICAgc3Rk
Ojpzd2FwKGEsIGIpOwogICAgICAgICArK2k7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICByb290LT5hcHBlbmROZXc8
UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwgYSwgYikpOwogICAgICAg
ICBDSEVDSyghIWNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgc3RhdGljX2Nhc3Q8ZG91Ymxl
PigxLjApKSk7CiAgICAgfQpAQCAtMTY2MzYsNyArMTYyMjksNyBAQAogICAgICAgICBWYWx1ZSog
Y29uc3RBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGEpOwogICAgICAgICBWYWx1ZSogYiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91
YmxlVG9GbG9hdCwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwotICAg
ICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
RXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksIGNvbnN0QSwgYikpOwogCkBAIC0xNjcxMyw3ICsx
NjMwNiw3IEBACiAKICAgICAvLyBOZXZlciBleGVjdXRlcy4KICAgICBWYWx1ZSogY29uc3Q0MiA9
IGxpa2VseS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKTsKLSAg
ICBsaWtlbHktPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
b25zdDQyKTsKKyAgICBsaWtlbHktPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGNvbnN0NDIpOwogCiAgICAgLy8gQWx3YXlzIGV4ZWN1dGVzLgogICAgIFZhbHVlKiBjb25z
dE51bWJlciA9IHVubGlrZWx5LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMHgxKTsKQEAgLTE2NzM1LDcgKzE2MzI4LDcgQEAKICAgICB2b2lkUGF0Y2gtPmFwcGVuZFNv
bWVSZWdpc3Rlcihhcmc2KTsKICAgICB2b2lkUGF0Y2gtPnNldEdlbmVyYXRvcihbPV0gKENDYWxs
SGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICB1
bmxpa2VseS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksCisg
ICAgdW5saWtlbHktPmFwcGVuZE5ldzxSZXR1cm5WYWx1ZT4ocHJvYywgT3JpZ2luKCksCiAgICAg
ICAgIHVubGlrZWx5LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBP
cmlnaW4oKSwgcHRyKSk7CiAKICAgICBpbnQzMl90KiBpbnB1dFB0ciA9IHN0YXRpY19jYXN0PGlu
dDMyX3QqPihmYXN0TWFsbG9jKHNpemVvZihpbnQzMl90KSkpOwpAQCAtMTY3NTUsNyArMTYzNDgs
NyBAQAogICAgIHBhdGNocG9pbnQtPmVmZmVjdHMudGVybWluYWwgPSB0cnVlOwogICAgIHJvb3Qt
PnNldFN1Y2Nlc3NvcnMoZG9uZSk7CiAgICAgCi0gICAgZG9uZS0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICBkb25lLT5hcHBlbmROZXc8
UmV0dXJuVmFsdWU+KHByb2MsIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKICAgICAKICAgICBwcm9j
LnJlc2V0UmVhY2hhYmlsaXR5KCk7CiAgICAgYnJlYWtDcml0aWNhbEVkZ2VzKHByb2MpOwpAQCAt
MTY4MDcsNyArMTY0MDAsNyBAQAogICAgICAgICB9KTsKICAgICB9CiAKLSAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3PFJldHVyblZhbHVlPihwcm9jLCBPcmlnaW4oKSk7CiAKICAgICBjb21waWxlQW5kUnVu
PHZvaWQ+KHByb2MpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRw
dXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0
LmNwcAkocmV2aXNpb24gMjQzMzAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
dXRwdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiQjNG
ZW5jZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNNYXRoRXh0cmFzLmgiCiAjaW5jbHVkZSAiQjNNZW1v
cnlWYWx1ZS5oIgorI2luY2x1ZGUgIkIzUmV0dXJuVmFsdWUuaCIKICNpbmNsdWRlICJCM1Nsb3RC
YXNlVmFsdWUuaCIKICNpbmNsdWRlICJCM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIgogI2lu
Y2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKQEAgLTczMCw3ICs3MzEsNyBAQAogCiB2b2lkIE91dHB1
dDo6cmV0KExWYWx1ZSB2YWx1ZSkKIHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFs
dWUobV9wcm9jLCBCMzo6UmV0dXJuLCBvcmlnaW4oKSwgdmFsdWUpOworICAgIG1fYmxvY2stPmFw
cGVuZE5ldzxSZXR1cm5WYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgdmFsdWUpOwogfQogCiB2b2lk
IE91dHB1dDo6dW5yZWFjaGFibGUoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUIzSVJHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjQzMzAxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQjNGaXhTU0EuaCIKICNpbmNsdWRlICJCM0dl
bmVyYXRlLmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXQuaCIKKyNpbmNsdWRlICJCM1JldHVy
blZhbHVlLmgiCiAjaW5jbHVkZSAiQjNTbG90QmFzZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMuaCIKICNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCkBAIC0x
MDA2LDkgKzEwMDcsOSBAQAogewogICAgIEFTU0VSVChyZXR1cm5WYWx1ZXMuc2l6ZSgpIDw9IDEp
OwogICAgIGlmIChyZXR1cm5WYWx1ZXMuc2l6ZSgpKQotICAgICAgICBtX2N1cnJlbnRCbG9jay0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6OlJldHVybiwgb3JpZ2luKCksIHJldHVy
blZhbHVlc1swXSk7CisgICAgICAgIG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8UmV0dXJuVmFs
dWU+KG1fcHJvYywgb3JpZ2luKCksIHJldHVyblZhbHVlc1swXSk7CiAgICAgZWxzZQotICAgICAg
ICBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6OlJldHVy
biwgb3JpZ2luKCkpOworICAgICAgICBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFJldHVyblZh
bHVlPihtX3Byb2MsIG9yaWdpbigpKTsKICAgICByZXR1cm4geyB9OwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>