<?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>230820</bug_id>
          
          <creation_ts>2021-09-27 00:47:16 -0700</creation_ts>
          <short_desc>Remove ImplicitAddress</short_desc>
          <delta_ts>2021-10-12 01:02:55 -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>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>msaboff</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1797383</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-27 00:47:16 -0700</bug_when>
    <thetext>See what a gigantic waste of time I experienced in https://bugs.webkit.org/show_bug.cgi?id=229223 because of MSVC coercing regT0 to be nullptr instead of invoking the ImplicitAddress version of a function. We should just use Address(RegisterID) instead of relying on ImplicitAddress so we don&apos;t feel this pain in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799983</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-04 00:48:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/83826318&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802888</commentid>
    <comment_count>2</comment_count>
      <attachid>440859</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-11 16:45:20 -0700</bug_when>
    <thetext>Created attachment 440859
test EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802892</commentid>
    <comment_count>3</comment_count>
      <attachid>440860</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-11 17:00:32 -0700</bug_when>
    <thetext>Created attachment 440860
test EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802896</commentid>
    <comment_count>4</comment_count>
      <attachid>440863</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-11 17:09:23 -0700</bug_when>
    <thetext>Created attachment 440863
test EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802918</commentid>
    <comment_count>5</comment_count>
      <attachid>440868</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-11 18:55:38 -0700</bug_when>
    <thetext>Created attachment 440868
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802919</commentid>
    <comment_count>6</comment_count>
      <attachid>440868</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-11 18:57:45 -0700</bug_when>
    <thetext>Comment on attachment 440868
patch

r=me if EWS is green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803000</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-11 23:33:04 -0700</bug_when>
    <thetext>Committed r283970 (242817@main): &lt;https://commits.webkit.org/242817@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440868.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803017</commentid>
    <comment_count>8</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-10-12 01:02:55 -0700</bug_when>
    <thetext>Committed r283971 (242818@main): &lt;https://commits.webkit.org/242818@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440859</attachid>
            <date>2021-10-11 16:45:20 -0700</date>
            <delta_ts>2021-10-11 17:00:32 -0700</delta_ts>
            <desc>test EWS</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>64292</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzOTQ5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1OSBA
QAorMjAyMS0xMC0xMSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmUgSW1wbGljaXRBZGRyZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzA4MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODI2MzE4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYXNz
ZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QWJzdHJhY3RN
YWNyb0Fzc2VtYmxlcjo6SW1wbGljaXRBZGRyZXNzOjpJbXBsaWNpdEFkZHJlc3MpOiBEZWxldGVk
LgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlcjo6cHVzaFRvU2F2ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
Ojpwb3BUb1Jlc3RvcmUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6bG9hZFB0cik6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpzdG9yZVB0cik6CisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk02NDo6bG9hZDY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9h
ZDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZDE2KToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZDE2VW5hbGlnbmVkKToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZDE2U2lnbmVkRXh0ZW5kVG8zMik6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWQ4KToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NDo6bG9hZDhTaWduZWRFeHRlbmRUbzMyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmU2NCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNNjQ6OnN0b3JlMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpz
dG9yZTE2KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmU4KToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZERvdWJsZSk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OnN0b3JlRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk02NDo6c3RvcmVGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6
OnB1c2hUb1NhdmVJbW1lZGlhdGVXaXRob3V0VG91Y2hpbmdSZWdpc3RlcnMpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpwb3BUb1Jlc3RvcmUpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTTY0OjpwdXNoVG9TYXZlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk02NDo6c3RvcmVQdHJXaXRoUGF0Y2gpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
YmxlckFSTTY0Ojpsb2FkQWNxOFNpZ25lZEV4dGVuZFRvMzIpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlckFSTTY0Ojpsb2FkQWNxOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNNjQ6OnN0b3JlUmVsOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6Omxv
YWRBY3ExNlNpZ25lZEV4dGVuZFRvMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TTY0Ojpsb2FkQWNxMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9y
ZVJlbDE2KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZEFjcTMyKToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZEFjcTY0KToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVSZWwzMik6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlUmVsNjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
YmxlckFSTTY0Ojpsb2FkTGluazgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0
Ojpsb2FkTGlua0FjcTgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9y
ZUNvbmQ4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVDb25kUmVs
OCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRMaW5rMTYpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkTGlua0FjcTE2KToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVDb25kMTYpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZUNvbmRSZWwxNik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmxvYWRMaW5rMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTTY0Ojpsb2FkTGlua0FjcTMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02
NDo6c3RvcmVDb25kMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9y
ZUNvbmRSZWwzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRMaW5r
NjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkTGlua0FjcTY0KToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVDb25kNjQpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZUNvbmRSZWw2NCk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmV4dHJhY3RTaW1wbGVBZGRyZXNzKToKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NEUuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJBUk02NEU6OmF0b21pY1hjaGdBZGQ4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk02NEU6OmF0b21pY1hjaGdBZGQxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNNjRFOjphdG9taWNYY2hnQWRkMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTTY0RTo6YXRvbWljWGNoZ0FkZDY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJB
Uk02NEU6OmF0b21pY1hjaGdYb3I4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02
NEU6OmF0b21pY1hjaGdYb3IxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRF
OjphdG9taWNYY2hnWG9yMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6
YXRvbWljWGNoZ1hvcjY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NEU6OmF0
b21pY1hjaGdPcjgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWlj
WGNoZ09yMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljWGNo
Z09yMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljWGNoZ09y
NjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljWGNoZ0NsZWFy
OCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnQ2xlYXIx
Nik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnQ2xlYXIz
Mik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnQ2xlYXI2
NCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnOCk6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnMTYpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljWGNoZzMyKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk02NEU6OmF0b21pY1hjaGc2NCk6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNTdHJvbmdDQVM4KToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NEU6OmF0b21pY1N0cm9uZ0NBUzE2KToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NEU6OmF0b21pY1N0cm9uZ0NBUzMyKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NEU6OmF0b21pY1N0cm9uZ0NBUzY0KToKKyAgICAgICAgKiBhc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TXY3OjpvcjMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6bG9hZDMyKToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6bG9hZDgpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpsb2FkOFNpZ25lZEV4dGVuZFRvMzIpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpsb2FkMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlckFSTXY3Ojpsb2FkMTZTaWduZWRFeHRlbmRUbzMyKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk12Nzo6c3RvcmUzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNdjc6OnN0b3JlMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpsb2Fk
RG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6bG9hZEZsb2F0KToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3RvcmVEb3VibGUpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpzdG9yZUZsb2F0KToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3RvcmVQdHJXaXRoUGF0Y2gpOgorICAgICAgICAqIGFzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJN
SVBTOjpsb2FkOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bG9hZDhTaWdu
ZWRFeHRlbmRUbzMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkMzIp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWQxNik6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3RvcmU4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJNSVBTOjpzdG9yZTE2KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpz
dG9yZTMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzdG9yZVB0cldpdGhQ
YXRjaCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bG9hZEZsb2F0KToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkRG91YmxlKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzdG9yZUZsb2F0KToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJNSVBTOjpzdG9yZURvdWJsZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Ojpsb2FkMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6bG9hZDE2
VW5hbGlnbmVkKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmxvYWQ4
KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmxvYWQ4U2lnbmVkRXh0
ZW5kVG8zMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpsb2FkMTYp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmUzMik6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpzdG9yZTE2KToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmxvYWREb3VibGUpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6bG9hZEZsb2F0KToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJYODZDb21tb246OnN0b3JlRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJYODZDb21tb246OnN0b3JlRmxvYXQpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6bG9h
ZDgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6bG9hZDMyKToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnN0b3JlMzIpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlclg4Nl82NDo6bG9hZDY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJYODZfNjQ6OnN0b3JlNjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6
c3RvcmVQdHJXaXRoUGF0Y2gpOgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6Cisg
ICAgICAgIChKU0M6OnRlc3RCcmFuY2hUcnVuY2F0ZURvdWJsZVRvSW50MzIpOgorICAgICAgICAo
SlNDOjp0ZXN0TG9hZFByZVBvc3RJbmRleDMyKToKKyAgICAgICAgKEpTQzo6dGVzdExvYWRQcmVQ
b3N0SW5kZXg2NCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ1NsaWNlKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TdHJpbmcpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2xlYXJDYXRjaExvY2Fs
cyk6CisgICAgICAgICogZnRsL0ZUTExvY2F0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpM
b2NhdGlvbjo6cmVzdG9yZUludG8gY29uc3QpOgorICAgICAgICAqIGZ0bC9GVExUaHVua3MuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OmdlbmVyaWNHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IpOgor
ICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJs
eUhlbHBlcnM6OmRlYnVnQ2FsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6c2Fu
aXRpemVTdGFja0lubGluZSk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0R2V0VmFyRnJvbUluZGlyZWN0UG9pbnRlcik6CisgICAg
ICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5jcHA6CisgICAgICAgIChKU0M6OmFyaXR5Rml4dXBH
ZW5lcmF0b3IpOgorICAgICAgICAqIHdhc20vV2FzbUJpbmRpbmcuY3BwOgorICAgICAgICAoSlND
OjpXYXNtOjp3YXNtVG9XYXNtKToKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorCiAyMDIx
LTEwLTExICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0
IGJyYW5jaCBhcm91bmQgcmVnaXN0ZXIgYWxsb2NhdGlvbiBpbiBERkcgZW51bWVyYXRvciBnZXQg
YnkgdmFsIGFuZCBwYXNzIGluIHRoZSByaWdodCBMVmFsdWUgdHlwZSB0byBzdHJpY3RJbnQ1MlRv
SlNWYWx1ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHJldmlzaW9uIDI4MzkyMykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzksMzkgKzE3OSw2IEBAIHB1YmxpYzoKICAgICAgICAgaW50cHRyX3Qg
b2Zmc2V0OwogICAgIH07CiAKLSAgICAvLyBJbXBsaWNpdEFkZHJlc3M6Ci0gICAgLy8KLSAgICAv
LyBUaGlzIGNsYXNzIGlzIHVzZWQgZm9yIGV4cGxpY2l0ICdsb2FkJyBhbmQgJ3N0b3JlJyBvcGVy
YXRpb25zCi0gICAgLy8gKGFzIG9wcG9zZWQgdG8gc2l0dWF0aW9ucyBpbiB3aGljaCBhIG1lbW9y
eSBvcGVyYW5kIGlzIHByb3ZpZGVkCi0gICAgLy8gdG8gYSBnZW5lcmljIG9wZXJhdGlvbiwgc3Vj
aCBhcyBhbiBpbnRlZ2VyIGFyaXRobWV0aWMgaW5zdHJ1Y3Rpb24pLgotICAgIC8vCi0gICAgLy8g
SW4gdGhlIGNhc2Ugb2YgYSBsb2FkIChvciBzdG9yZSkgb3BlcmF0aW9uIHdlIHdhbnQgdG8gcGVy
bWl0Ci0gICAgLy8gYWRkcmVzc2VzIHRvIGJlIGltcGxpY2l0bHkgY29uc3RydWN0ZWQsIGUuZy4g
dGhlIHR3byBjYWxsczoKLSAgICAvLwotICAgIC8vICAgICBsb2FkMzIoQWRkcmVzcyhhZGRyUmVn
KSwgZGVzdFJlZyk7Ci0gICAgLy8gICAgIGxvYWQzMihhZGRyUmVnLCBkZXN0UmVnKTsKLSAgICAv
LwotICAgIC8vIEFyZSBlcXVpdmFsZW50LCBhbmQgdGhlIGV4cGxpY2l0IHdyYXBwaW5nIG9mIHRo
ZSBBZGRyZXNzIGluIHRoZSBmb3JtZXIKLSAgICAvLyBpcyB1bm5lY2Vzc2FyeS4KLSAgICBzdHJ1
Y3QgSW1wbGljaXRBZGRyZXNzIHsKLSAgICAgICAgSW1wbGljaXRBZGRyZXNzKFJlZ2lzdGVySUQg
YmFzZSkKLSAgICAgICAgICAgIDogYmFzZShiYXNlKQotICAgICAgICAgICAgLCBvZmZzZXQoMCkK
LSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGJhc2UgIT0gUmVnaXN0ZXJJRDo6SW52YWxp
ZEdQUlJlZyk7Ci0gICAgICAgIH0KLQotICAgICAgICBJbXBsaWNpdEFkZHJlc3MoQWRkcmVzcyBh
ZGRyZXNzKQotICAgICAgICAgICAgOiBiYXNlKGFkZHJlc3MuYmFzZSkKLSAgICAgICAgICAgICwg
b2Zmc2V0KGFkZHJlc3Mub2Zmc2V0KQotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoYmFz
ZSAhPSBSZWdpc3RlcklEOjpJbnZhbGlkR1BSUmVnKTsKLSAgICAgICAgfQotCi0gICAgICAgIFJl
Z2lzdGVySUQgYmFzZTsKLSAgICAgICAgaW50MzJfdCBvZmZzZXQ7Ci0gICAgfTsKLQogICAgIC8v
IEJhc2VJbmRleDoKICAgICAvLwogICAgIC8vIERlc2NyaWJlcyBhIGNvbXBsZXggYWRkcmVzc2lu
ZyBtb2RlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMjgzOTIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjksMTEgKzMy
OSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwdXNoVG9TYXZlKEZQUmVnaXN0ZXJJRCBzcmMpCiAg
ICAgewogICAgICAgICBzdWJQdHIoVHJ1c3RlZEltbTMyKHNpemVvZihkb3VibGUpKSwgc3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOwotICAgICAgICBzdG9yZURvdWJsZShzcmMsIHN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsKKyAgICAgICAgc3RvcmVEb3VibGUoc3JjLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJl
Z2lzdGVyKSk7CiAgICAgfQogICAgIHZvaWQgcG9wVG9SZXN0b3JlKEZQUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKLSAgICAgICAgbG9hZERvdWJsZShzdGFja1BvaW50ZXJSZWdpc3RlciwgZGVzdCk7
CisgICAgICAgIGxvYWREb3VibGUoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciksIGRlc3Qp
OwogICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHNpemVvZihkb3VibGUpKSwgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOwogICAgIH0KICAgICAKQEAgLTcwMiw3ICs3MDIsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHhvcjMyKHNyYywgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkUHRyKEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkUHRyKEFk
ZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbG9hZDMyKGFk
ZHJlc3MsIGRlc3QpOwogICAgIH0KQEAgLTc1Miw3ICs3NTIsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGNvbXBhcmUzMihjb25kLCBsZWZ0LCByaWdodCwgZGVzdCk7CiAgICAgfQogICAgIAotICAgIHZv
aWQgc3RvcmVQdHIoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAg
IHZvaWQgc3RvcmVQdHIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIHN0b3JlMzIoc3JjLCBhZGRyZXNzKTsKICAgICB9CkBAIC03NjcsNyArNzY3LDcgQEAg
cHVibGljOgogICAgICAgICBzdG9yZTMyKHNyYywgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9p
ZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisg
ICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAg
IHsKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoaW1tKSwgYWRkcmVzcyk7CiAgICAgfQpA
QCAtNzgyLDcgKzc4Miw3IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIo
aW1tKSwgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tMzIg
aW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlUHRyKFRydXN0ZWRJ
bW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIHN0b3JlMzIoaW1tLCBh
ZGRyZXNzKTsKICAgICB9CkBAIC0xMDUwLDcgKzEwNTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHhv
cjY0KFRydXN0ZWRJbW02NChpbW0pLCBzcmNEZXN0KTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWRQ
dHIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxv
YWRQdHIoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBs
b2FkNjQoYWRkcmVzcywgZGVzdCk7CiAgICAgfQpAQCAtMTA4OSw3ICsxMDg5LDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gbG9hZDY0V2l0aENvbXBhY3RBZGRyZXNzT2Zmc2V0UGF0Y2goYWRk
cmVzcywgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihSZWdpc3RlcklEIHNyYywg
SW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZVB0cihSZWdpc3RlcklEIHNy
YywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgc3RvcmU2NChzcmMsIGFkZHJlc3Mp
OwogICAgIH0KQEAgLTExMDQsMTIgKzExMDQsMTIgQEAgcHVibGljOgogICAgICAgICBzdG9yZTY0
KHNyYywgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRy
IGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZVB0cihUcnVzdGVk
SW1tUHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgc3RvcmU2NChUcnVz
dGVkSW1tNjQoaW1tKSwgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihUcnVz
dGVkSW1tMzIgaW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlUHRy
KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIHN0b3Jl
NjQoaW1tLCBhZGRyZXNzKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAkocmV2aXNpb24gMjgzOTIz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1MjIsNyArMTUyMiw3IEBAIHB1YmxpYzoKICAgICAgICAg
fQogICAgIH0KIAotICAgIHZvaWQgbG9hZDY0KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkNjQoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklE
IGRlc3QpCiAgICAgewogICAgICAgICBpZiAodHJ5TG9hZFdpdGhPZmZzZXQ8NjQ+KGRlc3QsIGFk
ZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTY3
Nyw3ICsxNjc3LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAot
ICAgIHZvaWQgbG9hZDMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3Qp
CisgICAgdm9pZCBsb2FkMzIoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBpZiAodHJ5TG9hZFdpdGhPZmZzZXQ8MzI+KGRlc3QsIGFkZHJlc3MuYmFzZSwg
YWRkcmVzcy5vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTczNiw3ICsxNzM2LDcg
QEAgcHVibGljOgogICAgICAgICBsb2FkMzIoYWRkcmVzcywgZGVzdCk7CiAgICAgfQogCi0gICAg
dm9pZCBsb2FkMTYoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB2b2lkIGxvYWQxNihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmICh0cnlMb2FkV2l0aE9mZnNldDwxNj4oZGVzdCwgYWRkcmVzcy5iYXNlLCBhZGRy
ZXNzLm9mZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzcyLDcgKzE3NzIsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGxvYWQ8MTY+KGFkZHJlc3MsIGRlc3QpOwogICAgIH0KIAotICAgIHZv
aWQgbG9hZDE2VW5hbGlnbmVkKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRl
c3QpCisgICAgdm9pZCBsb2FkMTZVbmFsaWduZWQoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklE
IGRlc3QpCiAgICAgewogICAgICAgICBsb2FkMTYoYWRkcmVzcywgZGVzdCk7CiAgICAgfQpAQCAt
MTc4Miw3ICsxNzgyLDcgQEAgcHVibGljOgogICAgICAgICBsb2FkMTYoYWRkcmVzcywgZGVzdCk7
CiAgICAgfQogCi0gICAgdm9pZCBsb2FkMTZTaWduZWRFeHRlbmRUbzMyKEltcGxpY2l0QWRkcmVz
cyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkMTZTaWduZWRFeHRlbmRU
bzMyKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaWYg
KHRyeUxvYWRTaWduZWRXaXRoT2Zmc2V0PDE2PihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mu
b2Zmc2V0KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE4MTUsNyArMTgxNSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3h0aDwzMj4oZGVzdCwgc3JjKTsKICAgICB9CiAKLSAg
ICB2b2lkIGxvYWQ4KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisg
ICAgdm9pZCBsb2FkOChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmICh0cnlMb2FkV2l0aE9mZnNldDw4PihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJl
c3Mub2Zmc2V0KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE4NTEsNyArMTg1MSw3IEBAIHB1
YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubGRyYihkZXN0LCBzcmMsIHNpbW0pOwogICAgIH0K
IAotICAgIHZvaWQgbG9hZDhTaWduZWRFeHRlbmRUbzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNz
LCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkOFNpZ25lZEV4dGVuZFRvMzIoQWRkcmVz
cyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAodHJ5TG9hZFNp
Z25lZFdpdGhPZmZzZXQ8OD4oZGVzdCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCiAg
ICAgICAgICAgICByZXR1cm47CkBAIC0xODkyLDcgKzE4OTIsNyBAQCBwdWJsaWM6CiAgICAgICAg
IG1fYXNzZW1ibGVyLnN4dGI8MzI+KGRlc3QsIHNyYyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9y
ZTY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0
b3JlNjQoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIGlm
ICh0cnlTdG9yZVdpdGhPZmZzZXQ8NjQ+KHNyYywgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNl
dCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xOTQxLDEyICsxOTQxLDEyIEBAIHB1YmxpYzoK
ICAgICAgICAgc3RvcmU2NChkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICB9CiAKLSAg
ICB2b2lkIHN0b3JlNjQoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Mp
CisgICAgdm9pZCBzdG9yZTY0KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAg
ICB7CiAgICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTY0KGltbS5tX3ZhbHVlKSwgYWRkcmVzcyk7
CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTY0KFRydXN0ZWRJbW02NCBpbW0sIEltcGxpY2l0QWRk
cmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmU2NChUcnVzdGVkSW1tNjQgaW1tLCBBZGRyZXNz
IGFkZHJlc3MpCiAgICAgewogICAgICAgICBpZiAoIWltbS5tX3ZhbHVlKSB7CiAgICAgICAgICAg
ICBzdG9yZTY0KEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7CkBAIC0yMDM2LDcgKzIwMzYs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlRG91YmxlKHNyYzIsIEFkZHJlc3MoZGVzdCwgb2Zm
c2V0Lm1fdmFsdWUgKyA4KSk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVySUQg
c3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMzIoUmVnaXN0ZXJJ
RCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIGlmICh0cnlTdG9yZVdpdGhP
ZmZzZXQ8MzI+KHNyYywgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0yMDY0LDcgKzIwNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlPDMy
PihzcmMsIGFkZHJlc3MpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmUzMihUcnVzdGVkSW1tMzIg
aW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZElt
bTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKCFpbW0ubV92YWx1
ZSkgewogICAgICAgICAgICAgc3RvcmUzMihBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwpA
QCAtMjExNSw3ICsyMTE1LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbGFiZWw7CiAgICAg
fQogCi0gICAgdm9pZCBzdG9yZTE2KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRk
cmVzcykKKyAgICB2b2lkIHN0b3JlMTYoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykK
ICAgICB7CiAgICAgICAgIGlmICh0cnlTdG9yZVdpdGhPZmZzZXQ8MTY+KHNyYywgYWRkcmVzcy5i
YXNlLCBhZGRyZXNzLm9mZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yMTc0LDcgKzIx
NzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0cmIoc3JjLCBtZW1vcnlUZW1w
UmVnaXN0ZXIsIDApOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmU4KFJlZ2lzdGVySUQgc3JjLCBJ
bXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlOChSZWdpc3RlcklEIHNyYywg
QWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKHRyeVN0b3JlV2l0aE9mZnNldDw4
PihzcmMsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMjE5NSw3ICsyMTk1LDcgQEAgcHVibGljOgogICAgICAgICBzdG9yZTgoZGF0YVRlbXBS
ZWdpc3RlciwgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMy
IGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTgoVHJ1c3RlZElt
bTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgVHJ1c3RlZEltbTMyIGlt
bTgoc3RhdGljX2Nhc3Q8aW50OF90PihpbW0ubV92YWx1ZSkpOwogICAgICAgICBpZiAoIWltbTgu
bV92YWx1ZSkgewpAQCAtMjQ2MCw3ICsyNDYwLDcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2Vt
Ymxlci5mZGl2PDMyPihkZXN0LCBvcDEsIG9wMik7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkRG91
YmxlKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lk
IGxvYWREb3VibGUoQWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmICh0cnlMb2FkV2l0aE9mZnNldDw2ND4oZGVzdCwgYWRkcmVzcy5iYXNlLCBhZGRy
ZXNzLm9mZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yNDg5LDcgKzI0ODksNyBAQCBw
dWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkcjw2ND4oZGVzdCwgbWVtb3J5VGVtcFJlZ2lz
dGVyLCBBUk02NFJlZ2lzdGVyczo6enIpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZEZsb2F0KElt
cGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRG
bG9hdChBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAg
aWYgKHRyeUxvYWRXaXRoT2Zmc2V0PDMyPihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zm
c2V0KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTI3NDIsNyArMjc0Miw3IEBAIHB1YmxpYzoK
ICAgICAgICAgbV9hc3NlbWJsZXIuZnNxcnQ8MzI+KGRlc3QsIHNyYyk7CiAgICAgfQogCi0gICAg
dm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVz
cykKKyAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVz
cykKICAgICB7CiAgICAgICAgIGlmICh0cnlTdG9yZVdpdGhPZmZzZXQ8NjQ+KHNyYywgYWRkcmVz
cy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yNzcxLDcg
KzI3NzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0cjw2ND4oc3JjLCBhZGRy
ZXNzLmJhc2UsIG1lbW9yeVRlbXBSZWdpc3Rlcik7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZUZs
b2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQg
c3RvcmVGbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAg
ICAgICBpZiAodHJ5U3RvcmVXaXRoT2Zmc2V0PDMyPihzcmMsIGFkZHJlc3MuYmFzZSwgYWRkcmVz
cy5vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjkyOCw3ICsyOTI4LDcgQEAgcHVi
bGljOgogCiAgICAgICAgIHB1c2hQYWlyKHJlZywgcmVnKTsKICAgICAgICAgbW92ZShpbW0sIHJl
Zyk7Ci0gICAgICAgIHN0b3JlNjQocmVnLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAg
IHN0b3JlNjQocmVnLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyKSk7CiAgICAgICAgIGxv
YWQ2NChBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCA4KSwgcmVnKTsKICAgICB9CiAKQEAg
LTI5NDYsMTQgKzI5NDYsMTQgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgcG9wVG9SZXN0b3Jl
KEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbG9hZERvdWJsZShzdGFja1BvaW50
ZXJSZWdpc3RlciwgZGVzdCk7CisgICAgICAgIGxvYWREb3VibGUoQWRkcmVzcyhzdGFja1BvaW50
ZXJSZWdpc3RlciksIGRlc3QpOwogICAgICAgICBhZGQ2NChUcnVzdGVkSW1tMzIoMTYpLCBzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgfQogICAgIAogICAgIHZvaWQgcHVzaFRvU2F2ZShGUFJl
Z2lzdGVySUQgc3JjKQogICAgIHsKICAgICAgICAgc3ViNjQoVHJ1c3RlZEltbTMyKDE2KSwgc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOwotICAgICAgICBzdG9yZURvdWJsZShzcmMsIHN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKKyAgICAgICAgc3RvcmVEb3VibGUoc3JjLCBBZGRyZXNzKHN0YWNrUG9pbnRl
clJlZ2lzdGVyKSk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBwdHJkaWZmX3QgcHVz
aFRvU2F2ZUJ5dGVPZmZzZXQoKSB7IHJldHVybiAxNjsgfQpAQCAtNDE2Myw3ICs0MTYzLDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gUGF0Y2hhYmxlSnVtcChyZXN1bHQpOwogICAgIH0KIAot
ICAgIEFMV0FZU19JTkxJTkUgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0aFBhdGNoKFRydXN0ZWRJ
bW1QdHIgaW5pdGlhbFZhbHVlLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICBBTFdBWVNf
SU5MSU5FIERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQYXRjaChUcnVzdGVkSW1tUHRyIGluaXRp
YWxWYWx1ZSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxhYmVsUHRyIGxh
YmVsKHRoaXMpOwogICAgICAgICBtb3ZlV2l0aEZpeGVkV2lkdGgoaW5pdGlhbFZhbHVlLCBnZXRD
YWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwpAQCAtNDE3MSw3ICs0MTcx
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbGFiZWw7CiAgICAgfQogCi0gICAgQUxXQVlT
X0lOTElORSBEYXRhTGFiZWxQdHIgc3RvcmVQdHJXaXRoUGF0Y2goSW1wbGljaXRBZGRyZXNzIGFk
ZHJlc3MpCisgICAgQUxXQVlTX0lOTElORSBEYXRhTGFiZWxQdHIgc3RvcmVQdHJXaXRoUGF0Y2go
QWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgcmV0dXJuIHN0b3JlUHRyV2l0aFBhdGNo
KFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIGFkZHJlc3MpOwogICAgIH0KQEAgLTQyMTYsMTM0ICs0
MjE2LDEzNCBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmRtYklTSCgpOwogICAgIH0K
ICAgICAKLSAgICB2b2lkIGxvYWRBY3E4U2lnbmVkRXh0ZW5kVG8zMihJbXBsaWNpdEFkZHJlc3Mg
YWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZEFjcThTaWduZWRFeHRlbmRU
bzMyKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9h
c3NlbWJsZXIubGRhcjw4PihkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAg
ICAgfQogICAgIAotICAgIHZvaWQgbG9hZEFjcTgoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJl
Z2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRBY3E4KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbG9hZEFjcThTaWduZWRFeHRlbmRUbzMyKGFkZHJl
c3MsIGRlc3QpOwogICAgICAgICBhbmQzMihUcnVzdGVkSW1tMzIoMHhmZiksIGRlc3QpOwogICAg
IH0KICAgICAKLSAgICB2b2lkIHN0b3JlUmVsOChSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRy
ZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZVJlbDgoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHI8OD4oc3JjLCBleHRyYWN0
U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgbG9hZEFjcTE2
U2lnbmVkRXh0ZW5kVG8zMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQorICAgIHZvaWQgbG9hZEFjcTE2U2lnbmVkRXh0ZW5kVG8zMihBZGRyZXNzIGFkZHJlc3MsIFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkYXI8MTY+KGRlc3Qs
IGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBs
b2FkQWNxMTYoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2
b2lkIGxvYWRBY3ExNihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGxvYWRBY3ExNlNpZ25lZEV4dGVuZFRvMzIoYWRkcmVzcywgZGVzdCk7CiAgICAgICAg
IGFuZDMyKFRydXN0ZWRJbW0zMigweGZmZmYpLCBkZXN0KTsKICAgICB9CiAgICAgCi0gICAgdm9p
ZCBzdG9yZVJlbDE2KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAg
ICB2b2lkIHN0b3JlUmVsMTYoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7
CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHI8MTY+KHNyYywgZXh0cmFjdFNpbXBsZUFkZHJlc3Mo
YWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIGxvYWRBY3EzMihJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZEFjcTMyKEFkZHJlc3Mg
YWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRh
cjwzMj4oZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAK
LSAgICB2b2lkIGxvYWRBY3E2NChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHZvaWQgbG9hZEFjcTY0KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRhcjw2ND4oZGVzdCwgZXh0cmFjdFNpbXBs
ZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlUmVsMzIoUmVn
aXN0ZXJJRCBkZXN0LCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlUmVs
MzIoUmVnaXN0ZXJJRCBkZXN0LCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBtX2Fz
c2VtYmxlci5zdGxyPDMyPihkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAg
ICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVSZWw2NChSZWdpc3RlcklEIGRlc3QsIEltcGxpY2l0
QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmVSZWw2NChSZWdpc3RlcklEIGRlc3QsIEFk
ZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHI8NjQ+KGRlc3Qs
IGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBs
b2FkTGluazgoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2
b2lkIGxvYWRMaW5rOChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLmxkeHI8OD4oZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRk
cmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIGxvYWRMaW5rQWNxOChJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZExpbmtBY3E4KEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIu
bGRheHI8OD4oZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAg
ICAKLSAgICB2b2lkIHN0b3JlQ29uZDgoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKKyAgICB2b2lkIHN0b3JlQ29uZDgoUmVnaXN0ZXJJ
RCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCByZXN1bHQpCiAgICAgewogICAgICAg
ICBtX2Fzc2VtYmxlci5zdHhyPDg+KHJlc3VsdCwgc3JjLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhh
ZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVDb25kUmVsOChSZWdpc3RlcklE
IHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgcmVzdWx0KQorICAgIHZv
aWQgc3RvcmVDb25kUmVsOChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3Rl
cklEIHJlc3VsdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHhyPDg+KHJlc3VsdCwg
c3JjLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZv
aWQgbG9hZExpbmsxNihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQor
ICAgIHZvaWQgbG9hZExpbmsxNihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAg
ICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkeHI8MTY+KGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRy
ZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBsb2FkTGlua0FjcTE2KEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkTGlua0Fj
cTE2KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9h
c3NlbWJsZXIubGRheHI8MTY+KGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsK
ICAgICB9CiAgICAgCi0gICAgdm9pZCBzdG9yZUNvbmQxNihSZWdpc3RlcklEIHNyYywgSW1wbGlj
aXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgcmVzdWx0KQorICAgIHZvaWQgc3RvcmVDb25k
MTYoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCByZXN1bHQpCiAg
ICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zdHhyPDE2PihyZXN1bHQsIHNyYywgZXh0cmFjdFNp
bXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlQ29uZFJl
bDE2KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBy
ZXN1bHQpCisgICAgdm9pZCBzdG9yZUNvbmRSZWwxNihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0
bHhyPDE2PihyZXN1bHQsIHNyYywgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAg
IH0KICAgICAKLSAgICB2b2lkIGxvYWRMaW5rMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJl
Z2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRMaW5rMzIoQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZHhyPDMyPihkZXN0LCBl
eHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgbG9h
ZExpbmtBY3EzMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAg
IHZvaWQgbG9hZExpbmtBY3EzMihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAg
ICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkYXhyPDMyPihkZXN0LCBleHRyYWN0U2ltcGxlQWRk
cmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVDb25kMzIoUmVnaXN0
ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKKyAg
ICB2b2lkIHN0b3JlQ29uZDMyKFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lz
dGVySUQgcmVzdWx0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3R4cjwzMj4ocmVzdWx0
LCBzcmMsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAg
dm9pZCBzdG9yZUNvbmRSZWwzMihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJl
c3MsIFJlZ2lzdGVySUQgcmVzdWx0KQorICAgIHZvaWQgc3RvcmVDb25kUmVsMzIoUmVnaXN0ZXJJ
RCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCByZXN1bHQpCiAgICAgewogICAgICAg
ICBtX2Fzc2VtYmxlci5zdGx4cjwzMj4ocmVzdWx0LCBzcmMsIGV4dHJhY3RTaW1wbGVBZGRyZXNz
KGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBsb2FkTGluazY0KEltcGxpY2l0QWRk
cmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkTGluazY0KEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIu
bGR4cjw2ND4oZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAg
ICAKLSAgICB2b2lkIGxvYWRMaW5rQWNxNjQoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lz
dGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRMaW5rQWNxNjQoQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGF4cjw2ND4oZGVzdCwg
ZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0
b3JlQ29uZDY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCByZXN1bHQpCisgICAgdm9pZCBzdG9yZUNvbmQ2NChSZWdpc3RlcklEIHNyYywgQWRkcmVz
cyBhZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVy
LnN0eHI8NjQ+KHJlc3VsdCwgc3JjLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAg
ICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVDb25kUmVsNjQoUmVnaXN0ZXJJRCBzcmMsIEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKKyAgICB2b2lkIHN0b3JlQ29u
ZFJlbDY0KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgcmVzdWx0
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3RseHI8NjQ+KHJlc3VsdCwgc3JjLCBleHRy
YWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQpAQCAtNTIwNCw3ICs1MjA0LDcgQEAg
cHJvdGVjdGVkOgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0K
ICAgICAKLSAgICBSZWdpc3RlcklEIGV4dHJhY3RTaW1wbGVBZGRyZXNzKEltcGxpY2l0QWRkcmVz
cyBhZGRyZXNzKQorICAgIFJlZ2lzdGVySUQgZXh0cmFjdFNpbXBsZUFkZHJlc3MoQWRkcmVzcyBh
ZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKCFhZGRyZXNzLm9mZnNldCkKICAgICAgICAgICAg
IHJldHVybiBhZGRyZXNzLmJhc2U7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNNjRFLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0RS5oCShyZXZpc2lvbiAyODM5MjMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjRF
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3MywxMjIgKzM3MywxMjIgQEAgcHVibGljOgogICAgICAg
ICAgICAgbV9hc3NlbWJsZXIucmV0YWIoKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdB
ZGQ4KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHZvaWQgYXRvbWljWGNoZ0FkZDgoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRk
cmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRhZGRh
bDw4PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAK
LSAgICB2b2lkIGF0b21pY1hjaGdBZGQxNihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNz
IGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdBZGQxNihSZWdp
c3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAg
ICAgICBtX2Fzc2VtYmxlci5sZGFkZGFsPDE2PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRy
ZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdBZGQzMihSZWdpc3Rl
cklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2
b2lkIGF0b21pY1hjaGdBZGQzMihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGFkZGFsPDMyPihzcmMs
IGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lk
IGF0b21pY1hjaGdBZGQ2NChSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Ms
IFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdBZGQ2NChSZWdpc3RlcklEIHNy
YywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fz
c2VtYmxlci5sZGFkZGFsPDY0PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJl
c3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdYb3I4KFJlZ2lzdGVySUQgc3JjLCBJ
bXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgYXRvbWlj
WGNoZ1hvcjgoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRlb3JhbDw4PihzcmMsIGRlc3QsIGV4dHJh
Y3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdY
b3IxNihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQg
ZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdYb3IxNihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGVv
cmFsPDE2PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9
CiAKLSAgICB2b2lkIGF0b21pY1hjaGdYb3IzMihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRy
ZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdYb3IzMihS
ZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewog
ICAgICAgICBtX2Fzc2VtYmxlci5sZGVvcmFsPDMyPihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVB
ZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdYb3I2NChSZWdp
c3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB2b2lkIGF0b21pY1hjaGdYb3I2NChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBS
ZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGVvcmFsPDY0Pihz
cmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2
b2lkIGF0b21pY1hjaGdPcjgoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNz
LCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBhdG9taWNYY2hnT3I4KFJlZ2lzdGVySUQgc3Jj
LCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLmxkc2V0YWw8OD4oc3JjLCBkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNz
KSk7CiAgICAgfQogCi0gICAgdm9pZCBhdG9taWNYY2hnT3IxNihSZWdpc3RlcklEIHNyYywgSW1w
bGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hj
aGdPcjE2KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkc2V0YWw8MTY+KHNyYywgZGVzdCwgZXh0cmFj
dFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KIAotICAgIHZvaWQgYXRvbWljWGNoZ09y
MzIoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRl
c3QpCisgICAgdm9pZCBhdG9taWNYY2hnT3IzMihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRy
ZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZHNldGFs
PDMyPihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAK
LSAgICB2b2lkIGF0b21pY1hjaGdPcjY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3Mg
YWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgYXRvbWljWGNoZ09yNjQoUmVnaXN0
ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAg
ICAgbV9hc3NlbWJsZXIubGRzZXRhbDw2ND4oc3JjLCBkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVz
cyhhZGRyZXNzKSk7CiAgICAgfQogCi0gICAgdm9pZCBhdG9taWNYY2hnQ2xlYXI4KFJlZ2lzdGVy
SUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZv
aWQgYXRvbWljWGNoZ0NsZWFyOChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGNscmFsPDg+KHNyYywg
ZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KIAotICAgIHZvaWQg
YXRvbWljWGNoZ0NsZWFyMTYoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNz
LCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBhdG9taWNYY2hnQ2xlYXIxNihSZWdpc3RlcklE
IHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBt
X2Fzc2VtYmxlci5sZGNscmFsPDE2PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFk
ZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdDbGVhcjMyKFJlZ2lzdGVySUQg
c3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQg
YXRvbWljWGNoZ0NsZWFyMzIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRjbHJhbDwzMj4oc3JjLCBk
ZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogCi0gICAgdm9pZCBh
dG9taWNYY2hnQ2xlYXI2NChSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Ms
IFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdDbGVhcjY0KFJlZ2lzdGVySUQg
c3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1f
YXNzZW1ibGVyLmxkY2xyYWw8NjQ+KHNyYywgZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRk
cmVzcykpOwogICAgIH0KIAotICAgIHZvaWQgYXRvbWljWGNoZzgoUmVnaXN0ZXJJRCBzcmMsIElt
cGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBhdG9taWNY
Y2hnOChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zd3BhbDw4PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1w
bGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGcxNihSZWdp
c3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB2b2lkIGF0b21pY1hjaGcxNihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zd3BhbDwxNj4oc3JjLCBk
ZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogCi0gICAgdm9pZCBh
dG9taWNYY2hnMzIoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCisgICAgdm9pZCBhdG9taWNYY2hnMzIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIu
c3dwYWw8MzI+KHNyYywgZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAg
IH0KIAotICAgIHZvaWQgYXRvbWljWGNoZzY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgYXRvbWljWGNoZzY0KFJlZ2lz
dGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAg
ICAgIG1fYXNzZW1ibGVyLnN3cGFsPDY0PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNz
KGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1N0cm9uZ0NBUzgoUmVnaXN0ZXJJ
RCBleHBlY3RlZEFuZFJlc3VsdCwgUmVnaXN0ZXJJRCBuZXdWYWx1ZSwgSW1wbGljaXRBZGRyZXNz
IGFkZHJlc3MpCisgICAgdm9pZCBhdG9taWNTdHJvbmdDQVM4KFJlZ2lzdGVySUQgZXhwZWN0ZWRB
bmRSZXN1bHQsIFJlZ2lzdGVySUQgbmV3VmFsdWUsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLmNhc2FsPDg+KGV4cGVjdGVkQW5kUmVzdWx0LCBuZXdWYWx1ZSwg
ZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KIAotICAgIHZvaWQgYXRvbWlj
U3Ryb25nQ0FTMTYoUmVnaXN0ZXJJRCBleHBlY3RlZEFuZFJlc3VsdCwgUmVnaXN0ZXJJRCBuZXdW
YWx1ZSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBhdG9taWNTdHJvbmdDQVMx
NihSZWdpc3RlcklEIGV4cGVjdGVkQW5kUmVzdWx0LCBSZWdpc3RlcklEIG5ld1ZhbHVlLCBBZGRy
ZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5jYXNhbDwxNj4oZXhwZWN0
ZWRBbmRSZXN1bHQsIG5ld1ZhbHVlLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAg
ICAgfQogCi0gICAgdm9pZCBhdG9taWNTdHJvbmdDQVMzMihSZWdpc3RlcklEIGV4cGVjdGVkQW5k
UmVzdWx0LCBSZWdpc3RlcklEIG5ld1ZhbHVlLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAg
ICB2b2lkIGF0b21pY1N0cm9uZ0NBUzMyKFJlZ2lzdGVySUQgZXhwZWN0ZWRBbmRSZXN1bHQsIFJl
Z2lzdGVySUQgbmV3VmFsdWUsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLmNhc2FsPDMyPihleHBlY3RlZEFuZFJlc3VsdCwgbmV3VmFsdWUsIGV4dHJhY3RTaW1w
bGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1N0cm9uZ0NBUzY0
KFJlZ2lzdGVySUQgZXhwZWN0ZWRBbmRSZXN1bHQsIFJlZ2lzdGVySUQgbmV3VmFsdWUsIEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgYXRvbWljU3Ryb25nQ0FTNjQoUmVnaXN0ZXJJ
RCBleHBlY3RlZEFuZFJlc3VsdCwgUmVnaXN0ZXJJRCBuZXdWYWx1ZSwgQWRkcmVzcyBhZGRyZXNz
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuY2FzYWw8NjQ+KGV4cGVjdGVkQW5kUmVzdWx0
LCBuZXdWYWx1ZSwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5oCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAkod29ya2luZyBjb3B5KQpAQCAtNDA5LDcgKzQw
OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG9yMzIoUmVnaXN0ZXJJRCBzcmMsIEFic29sdXRlQWRk
cmVzcyBkZXN0KQogICAgIHsKICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGRlc3QubV9wdHIp
LCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgbG9hZDMyKGFkZHJlc3NUZW1wUmVnaXN0
ZXIsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICBsb2FkMzIoQWRkcmVzcyhhZGRyZXNzVGVt
cFJlZ2lzdGVyKSwgZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgICAgIG9yMzIoc3JjLCBkYXRhVGVt
cFJlZ2lzdGVyKTsKICAgICAgICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVt
cFJlZ2lzdGVyKTsKICAgICB9CkBAIC00MTksMTYgKzQxOSwxNiBAQCBwdWJsaWM6CiAgICAgICAg
IEFSTVRodW1iSW1tZWRpYXRlIGFybUltbSA9IEFSTVRodW1iSW1tZWRpYXRlOjptYWtlRW5jb2Rl
ZEltbShpbW0ubV92YWx1ZSk7CiAgICAgICAgIGlmIChhcm1JbW0uaXNWYWxpZCgpKSB7CiAgICAg
ICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcy5tX3B0ciksIGFkZHJlc3NUZW1wUmVn
aXN0ZXIpOwotICAgICAgICAgICAgbG9hZDMyKGFkZHJlc3NUZW1wUmVnaXN0ZXIsIGRhdGFUZW1w
UmVnaXN0ZXIpOworICAgICAgICAgICAgbG9hZDMyKEFkZHJlc3MoYWRkcmVzc1RlbXBSZWdpc3Rl
ciksIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIub3JyKGRhdGFU
ZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGFybUltbSk7Ci0gICAgICAgICAgICBzdG9y
ZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAg
c3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVyLCBBZGRyZXNzKGFkZHJlc3NUZW1wUmVnaXN0ZXIpKTsK
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNz
Lm1fcHRyKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBsb2FkMzIoYWRkcmVz
c1RlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBsb2FkMzIoQWRk
cmVzcyhhZGRyZXNzVGVtcFJlZ2lzdGVyKSwgZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgICAgICAg
ICBtb3ZlKGltbSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5vcnIoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzc1RlbXBSZWdp
c3Rlcik7CiAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcy5tX3B0ciksIGFk
ZHJlc3NUZW1wUmVnaXN0ZXIpOwotICAgICAgICAgICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIHN0b3JlMzIoZGF0YVRlbXBSZWdp
c3RlciwgQWRkcmVzcyhhZGRyZXNzVGVtcFJlZ2lzdGVyKSk7CiAgICAgICAgIH0KICAgICB9CiAK
QEAgLTc1NCw3ICs3NTQsNyBAQCBwcml2YXRlOgogICAgIH0KIAogcHVibGljOgotICAgIHZvaWQg
bG9hZDMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9p
ZCBsb2FkMzIoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAg
ICBsb2FkMzIoc2V0dXBBcm1BZGRyZXNzKGFkZHJlc3MpLCBkZXN0KTsKICAgICB9CkBAIC04MDAs
MTIgKzgwMCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0g
ICAgdm9pZCBsb2FkOChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQor
ICAgIHZvaWQgbG9hZDgoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewog
ICAgICAgICBsb2FkOChzZXR1cEFybUFkZHJlc3MoYWRkcmVzcyksIGRlc3QpOwogICAgIH0KIAot
ICAgIHZvaWQgbG9hZDhTaWduZWRFeHRlbmRUbzMyKEltcGxpY2l0QWRkcmVzcywgUmVnaXN0ZXJJ
RCkKKyAgICB2b2lkIGxvYWQ4U2lnbmVkRXh0ZW5kVG8zMihBZGRyZXNzLCBSZWdpc3RlcklEKQog
ICAgIHsKICAgICAgICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7CiAgICAgfQpAQCAtODYy
LDcgKzg2Miw3IEBAIHB1YmxpYzoKICAgICAgICAgbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMihzZXR1
cEFybUFkZHJlc3MoYWRkcmVzcyksIGRlc3QpOwogICAgIH0KICAgICAKLSAgICB2b2lkIGxvYWQx
NihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9h
ZDE2KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgQVJN
VGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VVSW50MTIoYWRk
cmVzcy5vZmZzZXQpOwogICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkKQEAgLTg3Myw3ICs4
NzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgdm9pZCBsb2FkMTZT
aWduZWRFeHRlbmRUbzMyKEltcGxpY2l0QWRkcmVzcywgUmVnaXN0ZXJJRCkKKyAgICB2b2lkIGxv
YWQxNlNpZ25lZEV4dGVuZFRvMzIoQWRkcmVzcywgUmVnaXN0ZXJJRCkKICAgICB7CiAgICAgICAg
IFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpOwogICAgIH0KQEAgLTkwMyw3ICs5MDMsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBsYWJlbDsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlMzIo
UmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmUz
MihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgc3RvcmUz
MihzcmMsIHNldHVwQXJtQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQpAQCAtOTEzLDcgKzkxMyw3
IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMihzcmMsIHNldHVwQXJtQWRkcmVzcyhhZGRyZXNz
KSk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTMyKFRydXN0ZWRJbW0zMiBpbW0sIEltcGxpY2l0
QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmUzMihUcnVzdGVkSW1tMzIgaW1tLCBBZGRy
ZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBtb3ZlKGltbSwgZGF0YVRlbXBSZWdpc3Rlcik7
CiAgICAgICAgIHN0b3JlMzIoZGF0YVRlbXBSZWdpc3Rlciwgc2V0dXBBcm1BZGRyZXNzKGFkZHJl
c3MpKTsKQEAgLTk3Miw3ICs5NzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlOChzcmMsIEFy
bUFkZHJlc3MoYWRkcnJlZywgMCkpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlMTYoUmVn
aXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmUxNihS
ZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgc3RvcmUxNihz
cmMsIHNldHVwQXJtQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQpAQCAtMTA0Myw3ICsxMDQzLDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludEFicygpIHsg
cmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3Vu
ZGluZygpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2b2lkIGxvYWREb3VibGUoSW1wbGljaXRB
ZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZERvdWJsZShB
ZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgUmVnaXN0
ZXJJRCBiYXNlID0gYWRkcmVzcy5iYXNlOwogICAgICAgICBpbnQzMl90IG9mZnNldCA9IGFkZHJl
c3Mub2Zmc2V0OwpAQCAtMTA1OCw3ICsxMDU4LDcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2Vt
Ymxlci52bGRyKGRlc3QsIGJhc2UsIG9mZnNldCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkRmxv
YXQoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQg
bG9hZEZsb2F0KEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAg
ICAgICBSZWdpc3RlcklEIGJhc2UgPSBhZGRyZXNzLmJhc2U7CiAgICAgICAgIGludDMyX3Qgb2Zm
c2V0ID0gYWRkcmVzcy5vZmZzZXQ7CkBAIC0xMTEyLDcgKzExMTIsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIG1fYXNzZW1ibGVyLnZsZHIoZGVzdCwgYWRkcmVzc1RlbXBSZWdpc3RlciwgMCk7CiAgICAg
fQogCi0gICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEFkZHJl
c3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIFJlZ2lzdGVySUQgYmFzZSA9IGFkZHJlc3MuYmFz
ZTsKICAgICAgICAgaW50MzJfdCBvZmZzZXQgPSBhZGRyZXNzLm9mZnNldDsKQEAgLTExMjcsNyAr
MTEyNyw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIudnN0cihzcmMsIGJhc2UsIG9m
ZnNldCk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZUZsb2F0KEZQUmVnaXN0ZXJJRCBzcmMsIElt
cGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmVGbG9hdChGUFJlZ2lzdGVySUQg
c3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBSZWdpc3RlcklEIGJhc2UgPSBh
ZGRyZXNzLmJhc2U7CiAgICAgICAgIGludDMyX3Qgb2Zmc2V0ID0gYWRkcmVzcy5vZmZzZXQ7CkBA
IC0xMTQ1LDcgKzExNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lz
dGVySUQgc3JjLCBUcnVzdGVkSW1tUHRyIGFkZHJlc3MpCiAgICAgewogICAgICAgICBtb3ZlKGFk
ZHJlc3MsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwotICAgICAgICBzdG9yZURvdWJsZShzcmMsIGFk
ZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICBzdG9yZURvdWJsZShzcmMsIEFkZHJlc3MoYWRk
cmVzc1RlbXBSZWdpc3RlcikpOwogICAgIH0KIAogICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdp
c3RlcklEIHNyYywgQmFzZUluZGV4IGFkZHJlc3MpCkBAIC0yMTMyLDEzICsyMTMyLDEzIEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIFBhdGNoYWJsZUp1bXAocmVzdWx0KTsKICAgICB9CiAKLSAg
ICBBTFdBWVNfSU5MSU5FIERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQYXRjaChUcnVzdGVkSW1t
UHRyIGluaXRpYWxWYWx1ZSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgQUxXQVlTX0lO
TElORSBEYXRhTGFiZWxQdHIgc3RvcmVQdHJXaXRoUGF0Y2goVHJ1c3RlZEltbVB0ciBpbml0aWFs
VmFsdWUsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIERhdGFMYWJlbFB0ciBsYWJl
bCA9IG1vdmVXaXRoUGF0Y2goaW5pdGlhbFZhbHVlLCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICAg
ICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICAgICAgcmV0dXJuIGxh
YmVsOwogICAgIH0KLSAgICBBTFdBWVNfSU5MSU5FIERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQ
YXRjaChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykgeyByZXR1cm4gc3RvcmVQdHJXaXRoUGF0Y2go
VHJ1c3RlZEltbVB0cihudWxscHRyKSwgYWRkcmVzcyk7IH0KKyAgICBBTFdBWVNfSU5MSU5FIERh
dGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQYXRjaChBZGRyZXNzIGFkZHJlc3MpIHsgcmV0dXJuIHN0
b3JlUHRyV2l0aFBhdGNoKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIGFkZHJlc3MpOyB9CiAKICAg
ICB0ZW1wbGF0ZTxQdHJUYWcgcmVzdWx0VGFnLCBQdHJUYWcgbG9jYXRpb25UYWc+CiAgICAgc3Rh
dGljIEZ1bmN0aW9uUHRyPHJlc3VsdFRhZz4gcmVhZENhbGxUYXJnZXQoQ29kZUxvY2F0aW9uQ2Fs
bDxsb2NhdGlvblRhZz4gY2FsbCkKQEAgLTIyNDksMTUgKzIyNDksNiBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIHJldHVybiBBcm1BZGRyZXNzKGFkZHJlc3MuYmFzZSwgYWRkcmVzc1RlbXBSZWdpc3Rl
cik7CiAgICAgfQogCi0gICAgQXJtQWRkcmVzcyBzZXR1cEFybUFkZHJlc3MoSW1wbGljaXRBZGRy
ZXNzIGFkZHJlc3MpCi0gICAgewotICAgICAgICBpZiAoKGFkZHJlc3Mub2Zmc2V0ID49IC0weGZm
KSAmJiAoYWRkcmVzcy5vZmZzZXQgPD0gMHhmZmYpKQotICAgICAgICAgICAgcmV0dXJuIEFybUFk
ZHJlc3MoYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCk7Ci0KLSAgICAgICAgbW92ZShUcnVz
dGVkSW1tMzIoYWRkcmVzcy5vZmZzZXQpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAg
cmV0dXJuIEFybUFkZHJlc3MoYWRkcmVzcy5iYXNlLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAg
ICB9Ci0KICAgICBSZWdpc3RlcklEIG1ha2VCYXNlSW5kZXhCYXNlKEJhc2VJbmRleCBhZGRyZXNz
KQogICAgIHsKICAgICAgICAgaWYgKCFhZGRyZXNzLm9mZnNldCkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAkocmV2
aXNpb24gMjgzOTIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlck1JUFMuaAkod29ya2luZyBjb3B5KQpAQCAtOTE3LDcgKzkxNyw3IEBAIHB1YmxpYzoK
ICAgICAvLyByZWdpc3RlciBpcyBwYXNzZWQuCiAKICAgICAvKiBOZWVkIHRvIHVzZSB6ZXJvLWV4
dGVuZWQgbG9hZCBieXRlIGZvciBsb2FkOC4gICovCi0gICAgdm9pZCBsb2FkOChJbXBsaWNpdEFk
ZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZDgoQWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAoYWRkcmVzcy5vZmZz
ZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CiAgICAgICAgICAgICAmJiAh
bV9maXhlZFdpZHRoKQpAQCAtOTc2LDcgKzk3Niw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAg
IH0KIAotICAgIHZvaWQgbG9hZDhTaWduZWRFeHRlbmRUbzMyKEltcGxpY2l0QWRkcmVzcyBhZGRy
ZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkOFNpZ25lZEV4dGVuZFRvMzIoQWRk
cmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAoYWRkcmVz
cy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CiAgICAgICAgICAg
ICAmJiAhbV9maXhlZFdpZHRoKQpAQCAtMTAzNiw3ICsxMDM2LDcgQEAgcHVibGljOgogICAgIH0K
IAogCi0gICAgdm9pZCBsb2FkMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQg
ZGVzdCkKKyAgICB2b2lkIGxvYWQzMihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7CiAgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5v
ZmZzZXQgPD0gMzI3NjcKICAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpCkBAIC0xMjMzLDcg
KzEyMzMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgLyogTmVlZCB0byB1c2UgemVyby1leHRl
bmVkIGxvYWQgaGFsZi13b3JkIGZvciBsb2FkMTYuICAqLwotICAgIHZvaWQgbG9hZDE2KEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkMTYoQWRk
cmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAoYWRkcmVz
cy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CiAgICAgICAgICAg
ICAmJiAhbV9maXhlZFdpZHRoKQpAQCAtMTMyNyw3ICsxMzI3LDcgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gZGF0YUxhYmVsOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmU4KFJlZ2lzdGVySUQg
c3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlOChSZWdpc3RlcklE
IHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0
ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NwogICAgICAgICAgICAgJiYgIW1f
Zml4ZWRXaWR0aCkKQEAgLTE0MDYsNyArMTQwNiw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAg
IH0KIAotICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJbW0zMiBpbW0sIEltcGxpY2l0QWRkcmVzcyBh
ZGRyZXNzKQorICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVz
cykKICAgICB7CiAgICAgICAgIFRydXN0ZWRJbW0zMiBpbW04KHN0YXRpY19jYXN0PGludDhfdD4o
aW1tLm1fdmFsdWUpKTsKICAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBh
ZGRyZXNzLm9mZnNldCA8PSAzMjc2NwpAQCAtMTQ1MCw3ICsxNDUwLDcgQEAgcHVibGljOgogICAg
ICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTE2KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMTYoUmVnaXN0ZXJJRCBzcmMsIEFkZHJl
c3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3Njgg
JiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKICAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgp
IHsKQEAgLTE0ODgsNyArMTQ4OCw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAg
IHZvaWQgc3RvcmUzMihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisg
ICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewog
ICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9
IDMyNzY3CiAgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKQpAQCAtMTUyNiw3ICsxNTI2LDcg
QEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTMyKFRydXN0ZWRJ
bW0zMiBpbW0sIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmUzMihUcnVz
dGVkSW1tMzIgaW1tLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBpZiAoYWRkcmVz
cy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CiAgICAgICAgICAg
ICAmJiAhbV9maXhlZFdpZHRoKSB7CkBAIC0yOTEyLDcgKzI5MTIsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiB0ZW1wOwogICAgIH0KIAotICAgIERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQ
YXRjaChUcnVzdGVkSW1tUHRyIGluaXRpYWxWYWx1ZSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Mp
CisgICAgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0aFBhdGNoKFRydXN0ZWRJbW1QdHIgaW5pdGlh
bFZhbHVlLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBtX2ZpeGVkV2lkdGggPSB0
cnVlOwogICAgICAgICBEYXRhTGFiZWxQdHIgZGF0YUxhYmVsID0gbW92ZVdpdGhQYXRjaChpbml0
aWFsVmFsdWUsIGRhdGFUZW1wUmVnaXN0ZXIpOwpAQCAtMjkyMSw3ICsyOTIxLDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gZGF0YUxhYmVsOwogICAgIH0KIAotICAgIERhdGFMYWJlbFB0ciBz
dG9yZVB0cldpdGhQYXRjaChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICBEYXRhTGFiZWxQ
dHIgc3RvcmVQdHJXaXRoUGF0Y2goQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgcmV0
dXJuIHN0b3JlUHRyV2l0aFBhdGNoKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIGFkZHJlc3MpOwog
ICAgIH0KQEAgLTI5NDcsNyArMjk0Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAot
ICAgIHZvaWQgbG9hZEZsb2F0KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQg
ZGVzdCkKKyAgICB2b2lkIGxvYWRGbG9hdChBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBk
ZXN0KQogICAgIHsKICAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRy
ZXNzLm9mZnNldCA8PSAzMjc2NwogICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkgewpAQCAt
Mjk2NCw3ICsyOTY0LDcgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBs
b2FkRG91YmxlKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB2b2lkIGxvYWREb3VibGUoQWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAg
ICB7CiAjaWYgV1RGX01JUFNfSVNBKDEpCiAgICAgICAgIC8qCkBAIC0zMDg2LDcgKzMwODYsNyBA
QCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lkIHN0b3JlRmxvYXQoRlBSZWdp
c3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZUZsb2F0
KEZQUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIGlmIChh
ZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKICAgICAg
ICAgICAgICYmICFtX2ZpeGVkV2lkdGgpCkBAIC0zMTAzLDcgKzMxMDMsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMs
IEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3Rl
cklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICNpZiBXVEZfTUlQU19JU0EoMSkKICAg
ICAgICAgLyoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHJldmlzaW9uIDI4MzkyMykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAko
d29ya2luZyBjb3B5KQpAQCAtMTIxMCw3ICsxMjEwLDcgQEAgcHVibGljOgogICAgIC8vIG9wZXJh
bmQgb2JqZWN0cyB0byBsb2FkcyBhbmQgc3RvcmUgd2lsbCBiZSBpbXBsaWNpdGx5IGNvbnN0cnVj
dGVkIGlmIGEKICAgICAvLyByZWdpc3RlciBpcyBwYXNzZWQuCiAKLSAgICB2b2lkIGxvYWQzMihJ
bXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZDMy
KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3Nl
bWJsZXIubW92bF9tcihhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBkZXN0KTsKICAgICB9
CkBAIC0xMjI1LDcgKzEyMjUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGxvYWQzMihhZGRyZXNzLCBk
ZXN0KTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWQxNlVuYWxpZ25lZChJbXBsaWNpdEFkZHJlc3Mg
YWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZDE2VW5hbGlnbmVkKEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbG9hZDE2KGFkZHJl
c3MsIGRlc3QpOwogICAgIH0KQEAgLTEyNjgsNyArMTI2OCw3IEBAIHB1YmxpYzoKICAgICAgICAg
bV9hc3NlbWJsZXIubW92emJsX21yKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJl
c3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUsIGRlc3QpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZDgo
SW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWQ4
KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3Nl
bWJsZXIubW92emJsX21yKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGRlc3QpOwogICAg
IH0KQEAgLTEyNzgsNyArMTI3OCw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubW92
c2JsX21yKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJl
c3Muc2NhbGUsIGRlc3QpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZDhTaWduZWRFeHRlbmRUbzMy
KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2Fk
OFNpZ25lZEV4dGVuZFRvMzIoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZzYmxfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3Mu
YmFzZSwgZGVzdCk7CiAgICAgfQpAQCAtMTI5Myw3ICsxMjkzLDcgQEAgcHVibGljOgogICAgICAg
ICBtX2Fzc2VtYmxlci5tb3ZzYmxfcnIoc3JjLCBkZXN0KTsKICAgICB9CiAgICAgCi0gICAgdm9p
ZCBsb2FkMTYoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2
b2lkIGxvYWQxNihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAg
ICAgIG1fYXNzZW1ibGVyLm1vdnp3bF9tcihhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBk
ZXN0KTsKICAgICB9CkBAIC0xMzAzLDExICsxMzAzLDYgQEAgcHVibGljOgogICAgICAgICBtX2Fz
c2VtYmxlci5tb3Z6d2xfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5p
bmRleCwgYWRkcmVzcy5zY2FsZSwgZGVzdCk7CiAgICAgfQogICAgIAotICAgIHZvaWQgbG9hZDE2
KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQotICAgIHsKLSAgICAgICAgbV9hc3Nl
bWJsZXIubW92endsX21yKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGRlc3QpOwotICAg
IH0KLQogICAgIHZvaWQgbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMihCYXNlSW5kZXggYWRkcmVzcywg
UmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92c3dsX21yKGFk
ZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUs
IGRlc3QpOwpAQCAtMTM1Miw3ICsxMzQ3LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gRGF0
YUxhYmVsMzIodGhpcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVySUQgc3Jj
LCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMzIoUmVnaXN0ZXJJRCBz
cmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmxfcm0o
c3JjLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CkBAIC0xMzYyLDcgKzEz
NTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmxfcm0oc3JjLCBhZGRyZXNz
Lm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAg
ICB9CiAKLSAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNz
IGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTMyKFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRk
cmVzcykKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmxfaTMybShpbW0ubV92YWx1ZSwg
YWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQpAQCAtMTQ2OSw3ICsxNDY0LDcg
QEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5tb3Z3X2ltKHN0YXRpY19jYXN0PGludDE2
X3Q+KGltbS5tX3ZhbHVlKSwgYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5p
bmRleCwgYWRkcmVzcy5zY2FsZSk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTE2KFRydXN0ZWRJ
bW0zMiBpbW0sIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmUxNihUcnVz
dGVkSW1tMzIgaW1tLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxl
ci5tb3Z3X2ltKHN0YXRpY19jYXN0PGludDE2X3Q+KGltbS5tX3ZhbHVlKSwgYWRkcmVzcy5vZmZz
ZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQpAQCAtMTQ4OCwxMSArMTQ4MywxMSBAQCBwdWJsaWM6
CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNkX21yKGFkZHJlc3MuYXNQdHIoKSwgZGVzdCk7CiAj
ZWxzZQogICAgICAgICBtb3ZlKGFkZHJlc3MsIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAg
bG9hZERvdWJsZShzY3JhdGNoUmVnaXN0ZXIoKSwgZGVzdCk7CisgICAgICAgIGxvYWREb3VibGUo
QWRkcmVzcyhzY3JhdGNoUmVnaXN0ZXIoKSksIGRlc3QpOwogI2VuZGlmCiAgICAgfQogCi0gICAg
dm9pZCBsb2FkRG91YmxlKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVz
dCkKKyAgICB2b2lkIGxvYWREb3VibGUoQWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVz
dCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNkX21yKGFkZHJlc3Mub2Zmc2V0LCBh
ZGRyZXNzLmJhc2UsIGRlc3QpOwogICAgIH0KQEAgLTE1MDgsMTEgKzE1MDMsMTEgQEAgcHVibGlj
OgogICAgICAgICBtX2Fzc2VtYmxlci5tb3Zzc19tcihhZGRyZXNzLmFzUHRyKCksIGRlc3QpOwog
I2Vsc2UKICAgICAgICAgbW92ZShhZGRyZXNzLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAg
IGxvYWRGbG9hdChzY3JhdGNoUmVnaXN0ZXIoKSwgZGVzdCk7CisgICAgICAgIGxvYWRGbG9hdChB
ZGRyZXNzKHNjcmF0Y2hSZWdpc3RlcigpKSwgZGVzdCk7CiAjZW5kaWYKICAgICB9CiAKLSAgICB2
b2lkIGxvYWRGbG9hdChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3Qp
CisgICAgdm9pZCBsb2FkRmxvYXQoQWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNzX21yKGFkZHJlc3Mub2Zmc2V0LCBhZGRy
ZXNzLmJhc2UsIGRlc3QpOwogICAgIH0KQEAgLTE1MjIsNyArMTUxNyw3IEBAIHB1YmxpYzoKICAg
ICAgICAgbV9hc3NlbWJsZXIubW92c3NfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwg
YWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSwgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBz
dG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAg
ICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAg
ICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNkX3JtKHNyYywgYWRkcmVzcy5vZmZzZXQsIGFk
ZHJlc3MuYmFzZSk7CiAgICAgfQpAQCAtMTUzMiw3ICsxNTI3LDcgQEAgcHVibGljOgogICAgICAg
ICBtX2Fzc2VtYmxlci5tb3ZzZF9ybShzcmMsIGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2Us
IGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmVG
bG9hdChGUFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lk
IHN0b3JlRmxvYXQoRlBSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAg
ICAgICAgbV9hc3NlbWJsZXIubW92c3Nfcm0oc3JjLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5i
YXNlKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2XzY0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwNiw3ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkOChjb25z
dCB2b2lkKiBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtb3ZlKFRy
dXN0ZWRJbW1QdHIoYWRkcmVzcyksIGRlc3QpOwotICAgICAgICBsb2FkOChkZXN0LCBkZXN0KTsK
KyAgICAgICAgbG9hZDgoQWRkcmVzcyhkZXN0KSwgZGVzdCk7CiAgICAgfQogCiAgICAgdm9pZCBs
b2FkMTYoRXh0ZW5kZWRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTEzMiw3
ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZsX21FQVgoYWRk
cmVzcyk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFk
ZHJlc3MpLCBkZXN0KTsKLSAgICAgICAgICAgIGxvYWQzMihkZXN0LCBkZXN0KTsKKyAgICAgICAg
ICAgIGxvYWQzMihBZGRyZXNzKGRlc3QpLCBkZXN0KTsKICAgICAgICAgfQogICAgIH0KIApAQCAt
MTUxLDcgKzE1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZEltbTMyIGlt
bSwgdm9pZCogYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRy
ZXNzKSwgc2NyYXRjaFJlZ2lzdGVyKCkpOwotICAgICAgICBzdG9yZTMyKGltbSwgc2NyYXRjaFJl
Z2lzdGVyKCkpOworICAgICAgICBzdG9yZTMyKGltbSwgQWRkcmVzcyhzY3JhdGNoUmVnaXN0ZXIo
KSkpOwogICAgIH0KIAogICAgIHZvaWQgc3RvcmUzMihSZWdpc3RlcklEIHNvdXJjZSwgdm9pZCog
YWRkcmVzcykKQEAgLTE2MCw3ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5tb3ZsX0VBWG0oYWRkcmVzcyk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgbW92
ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAgICAg
ICBzdG9yZTMyKHNvdXJjZSwgc2NyYXRjaFJlZ2lzdGVyKCkpOworICAgICAgICAgICAgc3RvcmUz
Mihzb3VyY2UsIEFkZHJlc3Moc2NyYXRjaFJlZ2lzdGVyKCkpKTsKICAgICAgICAgfQogICAgIH0K
ICAgICAKQEAgLTkxOCw3ICs5MTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm5v
dHFfbShkZXN0Lm9mZnNldCwgZGVzdC5iYXNlLCBkZXN0LmluZGV4LCBkZXN0LnNjYWxlKTsKICAg
ICB9CiAKLSAgICB2b2lkIGxvYWQ2NChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJ
RCBkZXN0KQorICAgIHZvaWQgbG9hZDY0KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92cV9tcihhZGRyZXNzLm9mZnNldCwgYWRk
cmVzcy5iYXNlLCBkZXN0KTsKICAgICB9CkBAIC05MzQsNyArOTM0LDcgQEAgcHVibGljOgogICAg
ICAgICAgICAgbV9hc3NlbWJsZXIubW92cV9tRUFYKGFkZHJlc3MpOwogICAgICAgICBlbHNlIHsK
ICAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgZGVzdCk7Ci0gICAgICAg
ICAgICBsb2FkNjQoZGVzdCwgZGVzdCk7CisgICAgICAgICAgICBsb2FkNjQoQWRkcmVzcyhkZXN0
KSwgZGVzdCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTk1Miw3ICs5NTIsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBEYXRhTGFiZWxDb21wYWN0KHRoaXMpOwogICAgIH0KIAotICAgIHZv
aWQgc3RvcmU2NChSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAg
dm9pZCBzdG9yZTY0KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAg
ICAgICBtX2Fzc2VtYmxlci5tb3ZxX3JtKHNyYywgYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFz
ZSk7CiAgICAgfQpAQCAtOTY4LDExICs5NjgsMTEgQEAgcHVibGljOgogICAgICAgICAgICAgbV9h
c3NlbWJsZXIubW92cV9FQVhtKGFkZHJlc3MpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
IG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgc2NyYXRjaFJlZ2lzdGVyKCkpOwotICAgICAg
ICAgICAgc3RvcmU2NChzcmMsIHNjcmF0Y2hSZWdpc3RlcigpKTsKKyAgICAgICAgICAgIHN0b3Jl
NjQoc3JjLCBBZGRyZXNzKHNjcmF0Y2hSZWdpc3RlcigpKSk7CiAgICAgICAgIH0KICAgICB9CiAK
LSAgICB2b2lkIHN0b3JlNjQoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJl
c3MpCisgICAgdm9pZCBzdG9yZTY0KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykK
ICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnFfaTMybShpbW0ubV92YWx1ZSwgYWRkcmVz
cy5vZmZzZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQpAQCAtOTg3LDcgKzk4Nyw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKENBTl9TSUdOX0VYVEVORF8zMl82NChpbW0ubV92YWx1ZSkpIHsKICAg
ICAgICAgICAgIGF1dG8gYWRkcmVzc1JlZyA9IHNjcmF0Y2hSZWdpc3RlcigpOwogICAgICAgICAg
ICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRyZXNzUmVnKTsKLSAgICAgICAgICAg
IHN0b3JlNjQoVHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMyX3Q+KGltbS5tX3ZhbHVlKSks
IGFkZHJlc3NSZWcpOworICAgICAgICAgICAgc3RvcmU2NChUcnVzdGVkSW1tMzIoc3RhdGljX2Nh
c3Q8aW50MzJfdD4oaW1tLm1fdmFsdWUpKSwgQWRkcmVzcyhhZGRyZXNzUmVnKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtOTk4LDcgKzk5OCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgc3dhcChzcmMsIFg4NlJlZ2lzdGVyczo6ZWF4KTsKICAgICB9CiAKLSAgICB2b2lkIHN0
b3JlNjQoVHJ1c3RlZEltbTY0IGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9p
ZCBzdG9yZTY0KFRydXN0ZWRJbW02NCBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAg
ICAgIGlmIChDQU5fU0lHTl9FWFRFTkRfMzJfNjQoaW1tLm1fdmFsdWUpKSB7CiAgICAgICAgICAg
ICBzdG9yZTY0KFRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90PihpbW0ubV92YWx1ZSkp
LCBhZGRyZXNzKTsKQEAgLTE1MjQsNyArMTUyNCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGJyYW5jaDMyKGNvbmQsIGxlZnQsIHNjcmF0Y2hSZWdpc3RlcigpKTsKICAgICB9CiAKLSAgICBE
YXRhTGFiZWxQdHIgc3RvcmVQdHJXaXRoUGF0Y2goVHJ1c3RlZEltbVB0ciBpbml0aWFsVmFsdWUs
IEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQ
YXRjaChUcnVzdGVkSW1tUHRyIGluaXRpYWxWYWx1ZSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsK
ICAgICAgICAgRGF0YUxhYmVsUHRyIGxhYmVsID0gbW92ZVdpdGhQYXRjaChpbml0aWFsVmFsdWUs
IHNjcmF0Y2hSZWdpc3RlcigpKTsKICAgICAgICAgc3RvcmU2NChzY3JhdGNoUmVnaXN0ZXIoKSwg
YWRkcmVzcyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNt
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3Rt
YXNtLmNwcAkocmV2aXNpb24gMjgzOTIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci90ZXN0bWFzbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwMywxNiArMzAzLDE2IEBAIHZv
aWQgdGVzdEJyYW5jaFRydW5jYXRlRG91YmxlVG9JbnQzMihkb3UKICAgICAgICAgaml0LnN1YlB0
cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihzdGFja0FsaWdubWVudEJ5dGVzKCkpLCBNYWNy
b0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgICAgICBpZiAoaXNCaWdFbmRp
YW4pIHsKICAgICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMy
KHZhbEFzVUludCA+PiAzMiksCi0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OnN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpKTsKICAgICAgICAgICAgIGpp
dC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHZhbEFzVUludCAmIDB4ZmZmZmZm
ZmYpLAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1i
bGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgNCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIodmFsQXNVSW50ICYg
MHhmZmZmZmZmZiksCi0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNy
b0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpKTsKICAgICAgICAgICAgIGppdC5zdG9y
ZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHZhbEFzVUludCA+PiAzMiksCiAgICAgICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLCA0KSk7CiAgICAgICAgIH0KLSAgICAgICAgaml0LmxvYWREb3VibGUoTWFj
cm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAg
ICAgICAgaml0LmxvYWREb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJs
ZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKSwgRlBSSW5mbzo6ZnBSZWdUMCk7CiAKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgZG9uZTsKICAgICAgICAgZG9uZSA9IGppdC5icmFuY2hUcnVu
Y2F0ZURvdWJsZVRvSW50MzIoRlBSSW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIsIE1hY3JvQXNzZW1ibGVyOjpCcmFuY2hJZlRydW5jYXRlU3VjY2Vzc2Z1bCk7CkBAIC0yMzEz
LDcgKzIzMTMsNyBAQCB2b2lkIHRlc3RMb2FkUHJlUG9zdEluZGV4MzIoKQogCiAgICAgICAgICAg
ICAvLyByZXMgPSAqKytwMTsgKnAxID0gNDsgcmV0dXJuIHJlczsKICAgICAgICAgICAgIGppdC5s
b2FkMzIoQ0NhbGxIZWxwZXJzOjpQcmVJbmRleEFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIw
LCBpbmRleCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUz
MihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihyZXBsYWNlKSwgQ0NhbGxIZWxwZXJzOjpJbXBs
aWNpdEFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgICAgICAgICBqaXQuc3Rv
cmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihyZXBsYWNlKSwgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgICAgICAgICAgaml0Lm1vdmUoR1BS
SW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAKICAgICAgICAg
ICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CkBAIC0yMzMxLDcgKzIzMzEsNyBAQCB2b2lk
IHRlc3RMb2FkUHJlUG9zdEluZGV4MzIoKQogCiAgICAgICAgICAgICAvLyByZXMgPSAqcDIrKzsg
KnAyID0gNTsgcmV0dXJuIHJlczsKICAgICAgICAgICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJz
OjpQb3N0SW5kZXhBZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgaW5kZXgpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjEpOwotICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIocmVwbGFjZSksIENDYWxsSGVscGVyczo6SW1wbGljaXRBZGRyZXNzKEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpOworICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIocmVwbGFjZSksIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjph
cmd1bWVudEdQUjApKTsKICAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OmFyZ3VtZW50R1BS
MSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwogCiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25F
cGlsb2d1ZShqaXQpOwpAQCAtMjM1NSw3ICsyMzU1LDcgQEAgdm9pZCB0ZXN0TG9hZFByZVBvc3RJ
bmRleDY0KCkKIAogICAgICAgICAgICAgLy8gcmVzID0gKisrcDE7ICpwMSA9IDQ7IHJldHVybiBy
ZXM7CiAgICAgICAgICAgICBqaXQubG9hZDY0KENDYWxsSGVscGVyczo6UHJlSW5kZXhBZGRyZXNz
KEdQUkluZm86OmFyZ3VtZW50R1BSMCwgaW5kZXgpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwot
ICAgICAgICAgICAgaml0LnN0b3JlNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQocmVwbGFj
ZSksIENDYWxsSGVscGVyczo6SW1wbGljaXRBZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
OworICAgICAgICAgICAgaml0LnN0b3JlNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQocmVw
bGFjZSksIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAg
ICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIpOwogCiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwpAQCAt
MjM3Myw3ICsyMzczLDcgQEAgdm9pZCB0ZXN0TG9hZFByZVBvc3RJbmRleDY0KCkKIAogICAgICAg
ICAgICAgLy8gcmVzID0gKnAyKys7ICpwMiA9IDU7IHJldHVybiByZXM7CiAgICAgICAgICAgICBq
aXQubG9hZDY0KENDYWxsSGVscGVyczo6UG9zdEluZGV4QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVu
dEdQUjAsIGluZGV4KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICAgICAgICAgIGppdC5z
dG9yZTY0KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KHJlcGxhY2UpLCBDQ2FsbEhlbHBlcnM6
OkltcGxpY2l0QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICAgICAgICAgIGpp
dC5zdG9yZTY0KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KHJlcGxhY2UpLCBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgICAgICAgICBqaXQubW92
ZShHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKIAogICAg
ICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAyODM5MjMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTkxOCw3ICsxOTE4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVN0cmluZ1NsaWNlKAogCiAgICAgbV9qaXQubHNoaWZ0MzIoTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMihzaXplb2Yodm9pZCopID09IDQgPyAyIDogMyksIHRlbXBHUFIpOwogICAgIG1f
aml0LmFkZFB0cihUcnVzdGVkSW1tUHRyKHZtLnNtYWxsU3RyaW5ncy5zaW5nbGVDaGFyYWN0ZXJT
dHJpbmdzKCkpLCB0ZW1wR1BSKTsKLSAgICBtX2ppdC5sb2FkUHRyKHRlbXBHUFIsIHRlbXBHUFIp
OworICAgIG1faml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHRlbXBHUFIpLCB0ZW1w
R1BSKTsKIAogICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbChiaWdDaGFyYWN0
ZXIsIHRoaXMsIG9wZXJhdGlvblNpbmdsZUNoYXJhY3RlclN0cmluZywgdGVtcEdQUiwgJnZtLCB0
ZW1wR1BSKSk7CiAKQEAgLTI2MzQsNyArMjYzNCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVHZXRCeVZhbE9uU3QKICAgICBWTSYgdm0gPSB0aGlzLT52bSgpOwogICAgIG1faml0Lmxz
aGlmdDMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2l6ZW9mKHZvaWQqKSA9PSA0ID8g
MiA6IDMpLCBzY3JhdGNoUmVnKTsKICAgICBtX2ppdC5hZGRQdHIoVHJ1c3RlZEltbVB0cih2bS5z
bWFsbFN0cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5ncygpKSwgc2NyYXRjaFJlZyk7Ci0gICAg
bV9qaXQubG9hZFB0cihzY3JhdGNoUmVnLCBzY3JhdGNoUmVnKTsKKyAgICBtX2ppdC5sb2FkUHRy
KENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoUmVnKSwgc2NyYXRjaFJlZyk7CiAKICAgICBh
ZGRTbG93UGF0aEdlbmVyYXRvcigKICAgICAgICAgc2xvd1BhdGhDYWxsKApAQCAtMTUzMzIsNyAr
MTUzMzIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2xlYXJDYXRjaExvCiAgICAg
R1BSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7CiAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBzY3Jh
dGNoLmdwcigpOwogICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbVB0cihzY3JhdGNoQnVmZmVyLT5h
ZGRyZXNzT2ZBY3RpdmVMZW5ndGgoKSksIHNjcmF0Y2hHUFIpOwotICAgIG1faml0LnN0b3JlUHRy
KFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIHNjcmF0Y2hHUFIpOworICAgIG1faml0LnN0b3JlUHRy
KFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BS
KSk7CiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG9jYXRpb24uY3BwCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTksMTAgKzk5
LDEwIEBAIHZvaWQgTG9jYXRpb246OnJlc3RvcmVJbnRvKE1hY3JvQXNzZW1ibGUKICAgICAgICAg
ICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgcmVzdWx0
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtRnJhbWVz
VG9Qb3AgLSAxOyBpLS07KQotICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKHJlc3VsdCwgcmVz
dWx0KTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhyZXN1bHQpLCByZXN1bHQpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoZ3ByKCkg
PT0gTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKQotICAgICAgICAgICAgICAg
IGppdC5sb2FkUHRyKHJlc3VsdCwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFB0
cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZXN1bHQpLCByZXN1bHQpOwogICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgIGppdC5hZGRQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW1QdHIoc2l6ZW9mKHZvaWQqKSAqIDIpLCByZXN1bHQpOwogICAgICAgICB9IGVsc2UKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAJKHJldmlzaW9uIDI4MzkyMykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODAsNyArODAsNyBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5r
UHRyCiAgICAgCiAgICAgc2F2ZUFsbFJlZ2lzdGVycyhqaXQsIGJ1ZmZlcik7CiAKLSAgICBqaXQu
bG9hZFB0cihmcmFtZVBvaW50ZXJSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAg
ICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoZnJhbWVQb2ludGVyUmVnaXN0ZXIp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5wZWVrKAogICAgICAgICBHUFJJbmZv
Ojphcmd1bWVudEdQUjEsCiAgICAgICAgIChzdGFja01pc2FsaWdubWVudCAtIHB1c2hUb1NhdmVC
eXRlT2Zmc2V0KSAvIHNpemVvZih2b2lkKikpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAkocmV2aXNpb24gMjgzOTIzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDk2LDcgKzEwOTYsNyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6ZGVidWdDYWxsKFZNJiB2
bSwgCiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgRlBSSW5mbzo6bnVtYmVyT2ZSZWdp
c3RlcnM7ICsraSkgewogICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYnVmZmVyICsgR1BSSW5m
bzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBpKSwgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICBzdG9y
ZURvdWJsZShGUFJJbmZvOjp0b1JlZ2lzdGVyKGkpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAg
IHN0b3JlRG91YmxlKEZQUkluZm86OnRvUmVnaXN0ZXIoaSksIEFkZHJlc3MoR1BSSW5mbzo6cmVn
VDApKTsKICAgICB9CiAKICNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BV
KEFSTTY0KSB8fCBDUFUoTUlQUykKQEAgLTExMTMsNyArMTExMyw3IEBAIHZvaWQgQXNzZW1ibHlI
ZWxwZXJzOjpkZWJ1Z0NhbGwoVk0mIHZtLCAKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBGUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVyczsgKytpKSB7CiAgICAgICAgIG1vdmUoVHJ1c3Rl
ZEltbVB0cihidWZmZXIgKyBHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyArIGkpLCBHUFJJbmZv
OjpyZWdUMCk7Ci0gICAgICAgIGxvYWREb3VibGUoR1BSSW5mbzo6cmVnVDAsIEZQUkluZm86OnRv
UmVnaXN0ZXIoaSkpOworICAgICAgICBsb2FkRG91YmxlKEFkZHJlc3MoR1BSSW5mbzo6cmVnVDAp
LCBGUFJJbmZvOjp0b1JlZ2lzdGVyKGkpKTsKICAgICB9CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzOyArK2kpIHsKICNpZiBVU0UoSlNWQUxV
RTY0KQpAQCAtMTE2Myw3ICsxMTYzLDcgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OnNhbml0aXpl
U3RhY2tJbmxpbgogICAgIGxvYWRQdHIodm0uYWRkcmVzc09mTGFzdFN0YWNrVG9wKCksIHNjcmF0
Y2gpOwogICAgIEp1bXAgZG9uZSA9IGJyYW5jaFB0cihCZWxvd09yRXF1YWwsIHN0YWNrUG9pbnRl
clJlZ2lzdGVyLCBzY3JhdGNoKTsKICAgICBMYWJlbCBsb29wID0gbGFiZWwoKTsKLSAgICBzdG9y
ZVB0cihUcnVzdGVkSW1tUHRyKG51bGxwdHIpLCBzY3JhdGNoKTsKKyAgICBzdG9yZVB0cihUcnVz
dGVkSW1tUHRyKG51bGxwdHIpLCBBZGRyZXNzKHNjcmF0Y2gpKTsKICAgICBhZGRQdHIoVHJ1c3Rl
ZEltbVB0cihzaXplb2Yodm9pZCopKSwgc2NyYXRjaCk7CiAgICAgYnJhbmNoUHRyKEFib3ZlLCBz
dGFja1BvaW50ZXJSZWdpc3Rlciwgc2NyYXRjaCkubGlua1RvKGxvb3AsIHRoaXMpOwogICAgIGRv
bmUubGluayh0aGlzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVy
dHlBY2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
UHJvcGVydHlBY2Nlc3MuY3BwCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE4NSw3
ICsyMTg1LDcgQEAgdm9pZCBKSVQ6OmVtaXRHZXRWYXJGcm9tUG9pbnRlcihKU1ZhbHVlKgogdm9p
ZCBKSVQ6OmVtaXRHZXRWYXJGcm9tSW5kaXJlY3RQb2ludGVyKEpTVmFsdWUqKiBvcGVyYW5kLCBH
UFJSZWcgcmVnKQogewogICAgIGxvYWRQdHIob3BlcmFuZCwgcmVnKTsKLSAgICBsb2FkUHRyKHJl
ZywgcmVnKTsKKyAgICBsb2FkUHRyKEFkZHJlc3MocmVnKSwgcmVnKTsKIH0KIAogdm9pZCBKSVQ6
OmVtaXRHZXRDbG9zdXJlVmFyKFZpcnR1YWxSZWdpc3RlciBzY29wZSwgdWludHB0cl90IG9wZXJh
bmQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMu
Y3BwCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5r
R2VuZXJhdG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwMCw3ICs2MDAsNyBAQCBNYWNyb0Fz
c2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IGFyCiAKICAgICAvLyBNb3ZlIGN1cnJlbnQg
ZnJhbWUgZG93biBhcmd1bWVudEdQUjAgbnVtYmVyIG9mIHNsb3RzCiAgICAgSlNJbnRlcmZhY2VK
SVQ6OkxhYmVsIGNvcHlMb29wKGppdC5sYWJlbCgpKTsKLSAgICBqaXQubG9hZDY0KEpTSW50ZXJm
YWNlSklUOjpyZWdUMywgZXh0cmFUZW1wKTsKKyAgICBqaXQubG9hZDY0KENDYWxsSGVscGVyczo6
QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDMpLCBleHRyYVRlbXApOwogICAgIGppdC5zdG9y
ZTY0KGV4dHJhVGVtcCwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6
cmVnVDMsIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjAsIEpTSW50ZXJmYWNlSklUOjpUaW1l
c0VpZ2h0KSk7CiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgp
LCBKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwogICAgIGppdC5icmFuY2hTdWIzMihNYWNyb0Fzc2Vt
Ymxlcjo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZh
Y2VKSVQ6OmFyZ3VtZW50R1BSMikubGlua1RvKGNvcHlMb29wLCAmaml0KTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5jcHAJKHJldmlzaW9uIDI4MzkyMykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzQsNyArNzQsNyBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2Fz
bUVudHJ5CiAgICAgfQogCiAgICAgLy8gVGFpbCBjYWxsIGludG8gdGhlIGNhbGxlZSBXZWJBc3Nl
bWJseSBmdW5jdGlvbi4KLSAgICBqaXQubG9hZFB0cihzY3JhdGNoLCBzY3JhdGNoKTsKKyAgICBq
aXQubG9hZFB0cihKSVQ6OkFkZHJlc3Moc2NyYXRjaCksIHNjcmF0Y2gpOwogICAgIGppdC5mYXJK
dW1wKHNjcmF0Y2gsIFdhc21FbnRyeVB0clRhZyk7CiAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVm
ZmVyKGppdCwgR0xPQkFMX1RIVU5LX0lELCBMaW5rQnVmZmVyOjpQcm9maWxlOjpXYXNtVGh1bmss
IEpJVENvbXBpbGF0aW9uQ2FuRmFpbCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFy
ci9ZYXJySklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySklULmNwcAkocmV2aXNpb24gMjgzOTIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyckpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5Nyw3ICs2OTcsNyBAQCBjbGFzcyBZ
YXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKCiAKICAgICAgICAgSnVtcExpc3Qgbm90
VW5pY29kZTsKIAotICAgICAgICBsb2FkMTZVbmFsaWduZWQocmVnVW5pY29kZUlucHV0QW5kVHJh
aWwsIHJlc3VsdFJlZyk7CisgICAgICAgIGxvYWQxNlVuYWxpZ25lZChBZGRyZXNzKHJlZ1VuaWNv
ZGVJbnB1dEFuZFRyYWlsKSwgcmVzdWx0UmVnKTsKIAogICAgICAgICAvLyBJcyB0aGUgY2hhcmFj
dGVyIGEgbGVhZGluZyBzdXJyb2dhdGU/CiAgICAgICAgIGFuZDMyKHN1cnJvZ2F0ZVRhZ01hc2ss
IHJlc3VsdFJlZywgdW5pY29kZVRlbXApOwpAQCAtODc5LDcgKzg3OSw3IEBAIGNsYXNzIFlhcnJH
ZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckoKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9w
YXR0ZXJuLm1fYm9keS0+bV9oYXNGaXhlZFNpemUpOwogICAgICAgICBpZiAobV9jb21waWxlTW9k
ZSA9PSBKSVRDb21waWxlTW9kZTo6SW5jbHVkZVN1YnBhdHRlcm5zKQotICAgICAgICAgICAgc3Rv
cmUzMihyZWcsIG91dHB1dCk7CisgICAgICAgICAgICBzdG9yZTMyKHJlZywgQWRkcmVzcyhvdXRw
dXQpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbW92ZShyZWcsIG91dHB1dCk7CiAgICAg
fQpAQCAtODg3LDcgKzg4Nyw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMg
WWFyckoKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9wYXR0ZXJuLm1fYm9keS0+bV9oYXNGaXhl
ZFNpemUpOwogICAgICAgICBpZiAobV9jb21waWxlTW9kZSA9PSBKSVRDb21waWxlTW9kZTo6SW5j
bHVkZVN1YnBhdHRlcm5zKQotICAgICAgICAgICAgbG9hZDMyKG91dHB1dCwgcmVnKTsKKyAgICAg
ICAgICAgIGxvYWQzMihBZGRyZXNzKG91dHB1dCksIHJlZyk7CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIG1vdmUob3V0cHV0LCByZWcpOwogICAgIH0KQEAgLTI4MzAsNyArMjgzMCw3IEBAIGNs
YXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckoKIAogICAgICAgICAgICAgICAg
ICAgICBsb2FkRnJvbUZyYW1lKHBhcmVudGhlc2VzRnJhbWVMb2NhdGlvbiArIEJhY2tUcmFja0lu
Zm9QYXJlbnRoZXNlczo6cGFyZW5Db250ZXh0SGVhZEluZGV4KCksIGN1cnJQYXJlbkNvbnRleHRS
ZWcpOwogICAgICAgICAgICAgICAgICAgICBhbGxvY2F0ZVBhcmVuQ29udGV4dChuZXdQYXJlbkNv
bnRleHRSZWcpOwotICAgICAgICAgICAgICAgICAgICBzdG9yZVB0cihjdXJyUGFyZW5Db250ZXh0
UmVnLCBuZXdQYXJlbkNvbnRleHRSZWcpOworICAgICAgICAgICAgICAgICAgICBzdG9yZVB0cihj
dXJyUGFyZW5Db250ZXh0UmVnLCBBZGRyZXNzKG5ld1BhcmVuQ29udGV4dFJlZykpOwogICAgICAg
ICAgICAgICAgICAgICBzdG9yZVRvRnJhbWUobmV3UGFyZW5Db250ZXh0UmVnLCBwYXJlbnRoZXNl
c0ZyYW1lTG9jYXRpb24gKyBCYWNrVHJhY2tJbmZvUGFyZW50aGVzZXM6OnBhcmVuQ29udGV4dEhl
YWRJbmRleCgpKTsKICAgICAgICAgICAgICAgICAgICAgc2F2ZVBhcmVuQ29udGV4dChuZXdQYXJl
bkNvbnRleHRSZWcsIHJlZ1QyLCB0ZXJtLT5wYXJlbnRoZXNlcy5zdWJwYXR0ZXJuSWQsIHRlcm0t
PnBhcmVudGhlc2VzLmxhc3RTdWJwYXR0ZXJuSWQsIHBhcmVudGhlc2VzRnJhbWVMb2NhdGlvbik7
CiAgICAgICAgICAgICAgICAgICAgIHN0b3JlVG9GcmFtZShpbmRleCwgcGFyZW50aGVzZXNGcmFt
ZUxvY2F0aW9uICsgQmFja1RyYWNrSW5mb1BhcmVudGhlc2VzOjpiZWdpbkluZGV4KCkpOwo=
</data>
<flag name="commit-queue"
          id="464937"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440860</attachid>
            <date>2021-10-11 17:00:32 -0700</date>
            <delta_ts>2021-10-11 17:21:11 -0700</delta_ts>
            <desc>test EWS</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>66931</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzOTQ5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1OSBA
QAorMjAyMS0xMC0xMSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmUgSW1wbGljaXRBZGRyZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzA4MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODI2MzE4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYXNz
ZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QWJzdHJhY3RN
YWNyb0Fzc2VtYmxlcjo6SW1wbGljaXRBZGRyZXNzOjpJbXBsaWNpdEFkZHJlc3MpOiBEZWxldGVk
LgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlcjo6cHVzaFRvU2F2ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
Ojpwb3BUb1Jlc3RvcmUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6bG9hZFB0cik6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpzdG9yZVB0cik6CisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk02NDo6bG9hZDY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9h
ZDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZDE2KToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZDE2VW5hbGlnbmVkKToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZDE2U2lnbmVkRXh0ZW5kVG8zMik6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWQ4KToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NDo6bG9hZDhTaWduZWRFeHRlbmRUbzMyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmU2NCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNNjQ6OnN0b3JlMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpz
dG9yZTE2KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmU4KToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZERvdWJsZSk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OnN0b3JlRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk02NDo6c3RvcmVGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6
OnB1c2hUb1NhdmVJbW1lZGlhdGVXaXRob3V0VG91Y2hpbmdSZWdpc3RlcnMpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpwb3BUb1Jlc3RvcmUpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTTY0OjpwdXNoVG9TYXZlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk02NDo6c3RvcmVQdHJXaXRoUGF0Y2gpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
YmxlckFSTTY0Ojpsb2FkQWNxOFNpZ25lZEV4dGVuZFRvMzIpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlckFSTTY0Ojpsb2FkQWNxOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNNjQ6OnN0b3JlUmVsOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6Omxv
YWRBY3ExNlNpZ25lZEV4dGVuZFRvMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TTY0Ojpsb2FkQWNxMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9y
ZVJlbDE2KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZEFjcTMyKToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZEFjcTY0KToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVSZWwzMik6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlUmVsNjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
YmxlckFSTTY0Ojpsb2FkTGluazgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0
Ojpsb2FkTGlua0FjcTgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9y
ZUNvbmQ4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVDb25kUmVs
OCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRMaW5rMTYpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkTGlua0FjcTE2KToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVDb25kMTYpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZUNvbmRSZWwxNik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmxvYWRMaW5rMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTTY0Ojpsb2FkTGlua0FjcTMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02
NDo6c3RvcmVDb25kMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9y
ZUNvbmRSZWwzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRMaW5r
NjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkTGlua0FjcTY0KToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVDb25kNjQpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZUNvbmRSZWw2NCk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmV4dHJhY3RTaW1wbGVBZGRyZXNzKToKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NEUuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJBUk02NEU6OmF0b21pY1hjaGdBZGQ4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk02NEU6OmF0b21pY1hjaGdBZGQxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNNjRFOjphdG9taWNYY2hnQWRkMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTTY0RTo6YXRvbWljWGNoZ0FkZDY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJB
Uk02NEU6OmF0b21pY1hjaGdYb3I4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02
NEU6OmF0b21pY1hjaGdYb3IxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRF
OjphdG9taWNYY2hnWG9yMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6
YXRvbWljWGNoZ1hvcjY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NEU6OmF0
b21pY1hjaGdPcjgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWlj
WGNoZ09yMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljWGNo
Z09yMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljWGNoZ09y
NjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljWGNoZ0NsZWFy
OCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnQ2xlYXIx
Nik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnQ2xlYXIz
Mik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnQ2xlYXI2
NCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnOCk6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnMTYpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljWGNoZzMyKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk02NEU6OmF0b21pY1hjaGc2NCk6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNTdHJvbmdDQVM4KToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NEU6OmF0b21pY1N0cm9uZ0NBUzE2KToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NEU6OmF0b21pY1N0cm9uZ0NBUzMyKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NEU6OmF0b21pY1N0cm9uZ0NBUzY0KToKKyAgICAgICAgKiBhc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TXY3OjpvcjMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6bG9hZDMyKToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6bG9hZDgpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpsb2FkOFNpZ25lZEV4dGVuZFRvMzIpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpsb2FkMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlckFSTXY3Ojpsb2FkMTZTaWduZWRFeHRlbmRUbzMyKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk12Nzo6c3RvcmUzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNdjc6OnN0b3JlMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpsb2Fk
RG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6bG9hZEZsb2F0KToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3RvcmVEb3VibGUpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpzdG9yZUZsb2F0KToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3RvcmVQdHJXaXRoUGF0Y2gpOgorICAgICAgICAqIGFzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJN
SVBTOjpsb2FkOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bG9hZDhTaWdu
ZWRFeHRlbmRUbzMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkMzIp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWQxNik6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3RvcmU4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJNSVBTOjpzdG9yZTE2KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpz
dG9yZTMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzdG9yZVB0cldpdGhQ
YXRjaCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bG9hZEZsb2F0KToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkRG91YmxlKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzdG9yZUZsb2F0KToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJNSVBTOjpzdG9yZURvdWJsZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Ojpsb2FkMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6bG9hZDE2
VW5hbGlnbmVkKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmxvYWQ4
KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmxvYWQ4U2lnbmVkRXh0
ZW5kVG8zMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpsb2FkMTYp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmUzMik6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpzdG9yZTE2KToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmxvYWREb3VibGUpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6bG9hZEZsb2F0KToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJYODZDb21tb246OnN0b3JlRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJYODZDb21tb246OnN0b3JlRmxvYXQpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6bG9h
ZDgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6bG9hZDMyKToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnN0b3JlMzIpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlclg4Nl82NDo6bG9hZDY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJYODZfNjQ6OnN0b3JlNjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6
c3RvcmVQdHJXaXRoUGF0Y2gpOgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6Cisg
ICAgICAgIChKU0M6OnRlc3RCcmFuY2hUcnVuY2F0ZURvdWJsZVRvSW50MzIpOgorICAgICAgICAo
SlNDOjp0ZXN0TG9hZFByZVBvc3RJbmRleDMyKToKKyAgICAgICAgKEpTQzo6dGVzdExvYWRQcmVQ
b3N0SW5kZXg2NCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ1NsaWNlKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TdHJpbmcpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2xlYXJDYXRjaExvY2Fs
cyk6CisgICAgICAgICogZnRsL0ZUTExvY2F0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpM
b2NhdGlvbjo6cmVzdG9yZUludG8gY29uc3QpOgorICAgICAgICAqIGZ0bC9GVExUaHVua3MuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OmdlbmVyaWNHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IpOgor
ICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJs
eUhlbHBlcnM6OmRlYnVnQ2FsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6c2Fu
aXRpemVTdGFja0lubGluZSk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0R2V0VmFyRnJvbUluZGlyZWN0UG9pbnRlcik6CisgICAg
ICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5jcHA6CisgICAgICAgIChKU0M6OmFyaXR5Rml4dXBH
ZW5lcmF0b3IpOgorICAgICAgICAqIHdhc20vV2FzbUJpbmRpbmcuY3BwOgorICAgICAgICAoSlND
OjpXYXNtOjp3YXNtVG9XYXNtKToKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorCiAyMDIx
LTEwLTExICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0
IGJyYW5jaCBhcm91bmQgcmVnaXN0ZXIgYWxsb2NhdGlvbiBpbiBERkcgZW51bWVyYXRvciBnZXQg
YnkgdmFsIGFuZCBwYXNzIGluIHRoZSByaWdodCBMVmFsdWUgdHlwZSB0byBzdHJpY3RJbnQ1MlRv
SlNWYWx1ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHJldmlzaW9uIDI4MzkyMykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzksMzkgKzE3OSw2IEBAIHB1YmxpYzoKICAgICAgICAgaW50cHRyX3Qg
b2Zmc2V0OwogICAgIH07CiAKLSAgICAvLyBJbXBsaWNpdEFkZHJlc3M6Ci0gICAgLy8KLSAgICAv
LyBUaGlzIGNsYXNzIGlzIHVzZWQgZm9yIGV4cGxpY2l0ICdsb2FkJyBhbmQgJ3N0b3JlJyBvcGVy
YXRpb25zCi0gICAgLy8gKGFzIG9wcG9zZWQgdG8gc2l0dWF0aW9ucyBpbiB3aGljaCBhIG1lbW9y
eSBvcGVyYW5kIGlzIHByb3ZpZGVkCi0gICAgLy8gdG8gYSBnZW5lcmljIG9wZXJhdGlvbiwgc3Vj
aCBhcyBhbiBpbnRlZ2VyIGFyaXRobWV0aWMgaW5zdHJ1Y3Rpb24pLgotICAgIC8vCi0gICAgLy8g
SW4gdGhlIGNhc2Ugb2YgYSBsb2FkIChvciBzdG9yZSkgb3BlcmF0aW9uIHdlIHdhbnQgdG8gcGVy
bWl0Ci0gICAgLy8gYWRkcmVzc2VzIHRvIGJlIGltcGxpY2l0bHkgY29uc3RydWN0ZWQsIGUuZy4g
dGhlIHR3byBjYWxsczoKLSAgICAvLwotICAgIC8vICAgICBsb2FkMzIoQWRkcmVzcyhhZGRyUmVn
KSwgZGVzdFJlZyk7Ci0gICAgLy8gICAgIGxvYWQzMihhZGRyUmVnLCBkZXN0UmVnKTsKLSAgICAv
LwotICAgIC8vIEFyZSBlcXVpdmFsZW50LCBhbmQgdGhlIGV4cGxpY2l0IHdyYXBwaW5nIG9mIHRo
ZSBBZGRyZXNzIGluIHRoZSBmb3JtZXIKLSAgICAvLyBpcyB1bm5lY2Vzc2FyeS4KLSAgICBzdHJ1
Y3QgSW1wbGljaXRBZGRyZXNzIHsKLSAgICAgICAgSW1wbGljaXRBZGRyZXNzKFJlZ2lzdGVySUQg
YmFzZSkKLSAgICAgICAgICAgIDogYmFzZShiYXNlKQotICAgICAgICAgICAgLCBvZmZzZXQoMCkK
LSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGJhc2UgIT0gUmVnaXN0ZXJJRDo6SW52YWxp
ZEdQUlJlZyk7Ci0gICAgICAgIH0KLQotICAgICAgICBJbXBsaWNpdEFkZHJlc3MoQWRkcmVzcyBh
ZGRyZXNzKQotICAgICAgICAgICAgOiBiYXNlKGFkZHJlc3MuYmFzZSkKLSAgICAgICAgICAgICwg
b2Zmc2V0KGFkZHJlc3Mub2Zmc2V0KQotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoYmFz
ZSAhPSBSZWdpc3RlcklEOjpJbnZhbGlkR1BSUmVnKTsKLSAgICAgICAgfQotCi0gICAgICAgIFJl
Z2lzdGVySUQgYmFzZTsKLSAgICAgICAgaW50MzJfdCBvZmZzZXQ7Ci0gICAgfTsKLQogICAgIC8v
IEJhc2VJbmRleDoKICAgICAvLwogICAgIC8vIERlc2NyaWJlcyBhIGNvbXBsZXggYWRkcmVzc2lu
ZyBtb2RlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMjgzOTIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjksMTEgKzMy
OSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwdXNoVG9TYXZlKEZQUmVnaXN0ZXJJRCBzcmMpCiAg
ICAgewogICAgICAgICBzdWJQdHIoVHJ1c3RlZEltbTMyKHNpemVvZihkb3VibGUpKSwgc3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOwotICAgICAgICBzdG9yZURvdWJsZShzcmMsIHN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsKKyAgICAgICAgc3RvcmVEb3VibGUoc3JjLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJl
Z2lzdGVyKSk7CiAgICAgfQogICAgIHZvaWQgcG9wVG9SZXN0b3JlKEZQUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKLSAgICAgICAgbG9hZERvdWJsZShzdGFja1BvaW50ZXJSZWdpc3RlciwgZGVzdCk7
CisgICAgICAgIGxvYWREb3VibGUoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciksIGRlc3Qp
OwogICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHNpemVvZihkb3VibGUpKSwgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOwogICAgIH0KICAgICAKQEAgLTcwMiw3ICs3MDIsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHhvcjMyKHNyYywgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkUHRyKEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkUHRyKEFk
ZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbG9hZDMyKGFk
ZHJlc3MsIGRlc3QpOwogICAgIH0KQEAgLTc1Miw3ICs3NTIsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGNvbXBhcmUzMihjb25kLCBsZWZ0LCByaWdodCwgZGVzdCk7CiAgICAgfQogICAgIAotICAgIHZv
aWQgc3RvcmVQdHIoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAg
IHZvaWQgc3RvcmVQdHIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIHN0b3JlMzIoc3JjLCBhZGRyZXNzKTsKICAgICB9CkBAIC03NjcsNyArNzY3LDcgQEAg
cHVibGljOgogICAgICAgICBzdG9yZTMyKHNyYywgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9p
ZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisg
ICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAg
IHsKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoaW1tKSwgYWRkcmVzcyk7CiAgICAgfQpA
QCAtNzgyLDcgKzc4Miw3IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIo
aW1tKSwgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tMzIg
aW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlUHRyKFRydXN0ZWRJ
bW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIHN0b3JlMzIoaW1tLCBh
ZGRyZXNzKTsKICAgICB9CkBAIC0xMDUwLDcgKzEwNTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHhv
cjY0KFRydXN0ZWRJbW02NChpbW0pLCBzcmNEZXN0KTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWRQ
dHIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxv
YWRQdHIoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBs
b2FkNjQoYWRkcmVzcywgZGVzdCk7CiAgICAgfQpAQCAtMTA4OSw3ICsxMDg5LDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gbG9hZDY0V2l0aENvbXBhY3RBZGRyZXNzT2Zmc2V0UGF0Y2goYWRk
cmVzcywgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihSZWdpc3RlcklEIHNyYywg
SW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZVB0cihSZWdpc3RlcklEIHNy
YywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgc3RvcmU2NChzcmMsIGFkZHJlc3Mp
OwogICAgIH0KQEAgLTExMDQsMTIgKzExMDQsMTIgQEAgcHVibGljOgogICAgICAgICBzdG9yZTY0
KHNyYywgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRy
IGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZVB0cihUcnVzdGVk
SW1tUHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgc3RvcmU2NChUcnVz
dGVkSW1tNjQoaW1tKSwgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihUcnVz
dGVkSW1tMzIgaW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlUHRy
KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIHN0b3Jl
NjQoaW1tLCBhZGRyZXNzKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAkocmV2aXNpb24gMjgzOTIz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1MjIsNyArMTUyMiw3IEBAIHB1YmxpYzoKICAgICAgICAg
fQogICAgIH0KIAotICAgIHZvaWQgbG9hZDY0KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkNjQoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklE
IGRlc3QpCiAgICAgewogICAgICAgICBpZiAodHJ5TG9hZFdpdGhPZmZzZXQ8NjQ+KGRlc3QsIGFk
ZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTY3
Nyw3ICsxNjc3LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAot
ICAgIHZvaWQgbG9hZDMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3Qp
CisgICAgdm9pZCBsb2FkMzIoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBpZiAodHJ5TG9hZFdpdGhPZmZzZXQ8MzI+KGRlc3QsIGFkZHJlc3MuYmFzZSwg
YWRkcmVzcy5vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTczNiw3ICsxNzM2LDcg
QEAgcHVibGljOgogICAgICAgICBsb2FkMzIoYWRkcmVzcywgZGVzdCk7CiAgICAgfQogCi0gICAg
dm9pZCBsb2FkMTYoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB2b2lkIGxvYWQxNihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmICh0cnlMb2FkV2l0aE9mZnNldDwxNj4oZGVzdCwgYWRkcmVzcy5iYXNlLCBhZGRy
ZXNzLm9mZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzcyLDcgKzE3NzIsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGxvYWQ8MTY+KGFkZHJlc3MsIGRlc3QpOwogICAgIH0KIAotICAgIHZv
aWQgbG9hZDE2VW5hbGlnbmVkKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRl
c3QpCisgICAgdm9pZCBsb2FkMTZVbmFsaWduZWQoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklE
IGRlc3QpCiAgICAgewogICAgICAgICBsb2FkMTYoYWRkcmVzcywgZGVzdCk7CiAgICAgfQpAQCAt
MTc4Miw3ICsxNzgyLDcgQEAgcHVibGljOgogICAgICAgICBsb2FkMTYoYWRkcmVzcywgZGVzdCk7
CiAgICAgfQogCi0gICAgdm9pZCBsb2FkMTZTaWduZWRFeHRlbmRUbzMyKEltcGxpY2l0QWRkcmVz
cyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkMTZTaWduZWRFeHRlbmRU
bzMyKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaWYg
KHRyeUxvYWRTaWduZWRXaXRoT2Zmc2V0PDE2PihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mu
b2Zmc2V0KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE4MTUsNyArMTgxNSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3h0aDwzMj4oZGVzdCwgc3JjKTsKICAgICB9CiAKLSAg
ICB2b2lkIGxvYWQ4KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisg
ICAgdm9pZCBsb2FkOChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmICh0cnlMb2FkV2l0aE9mZnNldDw4PihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJl
c3Mub2Zmc2V0KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE4NTEsNyArMTg1MSw3IEBAIHB1
YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubGRyYihkZXN0LCBzcmMsIHNpbW0pOwogICAgIH0K
IAotICAgIHZvaWQgbG9hZDhTaWduZWRFeHRlbmRUbzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNz
LCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkOFNpZ25lZEV4dGVuZFRvMzIoQWRkcmVz
cyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAodHJ5TG9hZFNp
Z25lZFdpdGhPZmZzZXQ8OD4oZGVzdCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCiAg
ICAgICAgICAgICByZXR1cm47CkBAIC0xODkyLDcgKzE4OTIsNyBAQCBwdWJsaWM6CiAgICAgICAg
IG1fYXNzZW1ibGVyLnN4dGI8MzI+KGRlc3QsIHNyYyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9y
ZTY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0
b3JlNjQoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIGlm
ICh0cnlTdG9yZVdpdGhPZmZzZXQ8NjQ+KHNyYywgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNl
dCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xOTQxLDEyICsxOTQxLDEyIEBAIHB1YmxpYzoK
ICAgICAgICAgc3RvcmU2NChkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICB9CiAKLSAg
ICB2b2lkIHN0b3JlNjQoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Mp
CisgICAgdm9pZCBzdG9yZTY0KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAg
ICB7CiAgICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTY0KGltbS5tX3ZhbHVlKSwgYWRkcmVzcyk7
CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTY0KFRydXN0ZWRJbW02NCBpbW0sIEltcGxpY2l0QWRk
cmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmU2NChUcnVzdGVkSW1tNjQgaW1tLCBBZGRyZXNz
IGFkZHJlc3MpCiAgICAgewogICAgICAgICBpZiAoIWltbS5tX3ZhbHVlKSB7CiAgICAgICAgICAg
ICBzdG9yZTY0KEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7CkBAIC0yMDM2LDcgKzIwMzYs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlRG91YmxlKHNyYzIsIEFkZHJlc3MoZGVzdCwgb2Zm
c2V0Lm1fdmFsdWUgKyA4KSk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVySUQg
c3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMzIoUmVnaXN0ZXJJ
RCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIGlmICh0cnlTdG9yZVdpdGhP
ZmZzZXQ8MzI+KHNyYywgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0yMDY0LDcgKzIwNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlPDMy
PihzcmMsIGFkZHJlc3MpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmUzMihUcnVzdGVkSW1tMzIg
aW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZElt
bTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKCFpbW0ubV92YWx1
ZSkgewogICAgICAgICAgICAgc3RvcmUzMihBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwpA
QCAtMjExNSw3ICsyMTE1LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbGFiZWw7CiAgICAg
fQogCi0gICAgdm9pZCBzdG9yZTE2KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRk
cmVzcykKKyAgICB2b2lkIHN0b3JlMTYoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykK
ICAgICB7CiAgICAgICAgIGlmICh0cnlTdG9yZVdpdGhPZmZzZXQ8MTY+KHNyYywgYWRkcmVzcy5i
YXNlLCBhZGRyZXNzLm9mZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yMTc0LDcgKzIx
NzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0cmIoc3JjLCBtZW1vcnlUZW1w
UmVnaXN0ZXIsIDApOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmU4KFJlZ2lzdGVySUQgc3JjLCBJ
bXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlOChSZWdpc3RlcklEIHNyYywg
QWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKHRyeVN0b3JlV2l0aE9mZnNldDw4
PihzcmMsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMjE5NSw3ICsyMTk1LDcgQEAgcHVibGljOgogICAgICAgICBzdG9yZTgoZGF0YVRlbXBS
ZWdpc3RlciwgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMy
IGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTgoVHJ1c3RlZElt
bTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgVHJ1c3RlZEltbTMyIGlt
bTgoc3RhdGljX2Nhc3Q8aW50OF90PihpbW0ubV92YWx1ZSkpOwogICAgICAgICBpZiAoIWltbTgu
bV92YWx1ZSkgewpAQCAtMjQ2MCw3ICsyNDYwLDcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2Vt
Ymxlci5mZGl2PDMyPihkZXN0LCBvcDEsIG9wMik7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkRG91
YmxlKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lk
IGxvYWREb3VibGUoQWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmICh0cnlMb2FkV2l0aE9mZnNldDw2ND4oZGVzdCwgYWRkcmVzcy5iYXNlLCBhZGRy
ZXNzLm9mZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yNDg5LDcgKzI0ODksNyBAQCBw
dWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkcjw2ND4oZGVzdCwgbWVtb3J5VGVtcFJlZ2lz
dGVyLCBBUk02NFJlZ2lzdGVyczo6enIpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZEZsb2F0KElt
cGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRG
bG9hdChBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAg
aWYgKHRyeUxvYWRXaXRoT2Zmc2V0PDMyPihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zm
c2V0KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTI3NDIsNyArMjc0Miw3IEBAIHB1YmxpYzoK
ICAgICAgICAgbV9hc3NlbWJsZXIuZnNxcnQ8MzI+KGRlc3QsIHNyYyk7CiAgICAgfQogCi0gICAg
dm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVz
cykKKyAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVz
cykKICAgICB7CiAgICAgICAgIGlmICh0cnlTdG9yZVdpdGhPZmZzZXQ8NjQ+KHNyYywgYWRkcmVz
cy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yNzcxLDcg
KzI3NzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0cjw2ND4oc3JjLCBhZGRy
ZXNzLmJhc2UsIG1lbW9yeVRlbXBSZWdpc3Rlcik7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZUZs
b2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQg
c3RvcmVGbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAg
ICAgICBpZiAodHJ5U3RvcmVXaXRoT2Zmc2V0PDMyPihzcmMsIGFkZHJlc3MuYmFzZSwgYWRkcmVz
cy5vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjkyOCw3ICsyOTI4LDcgQEAgcHVi
bGljOgogCiAgICAgICAgIHB1c2hQYWlyKHJlZywgcmVnKTsKICAgICAgICAgbW92ZShpbW0sIHJl
Zyk7Ci0gICAgICAgIHN0b3JlNjQocmVnLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAg
IHN0b3JlNjQocmVnLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyKSk7CiAgICAgICAgIGxv
YWQ2NChBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCA4KSwgcmVnKTsKICAgICB9CiAKQEAg
LTI5NDYsMTQgKzI5NDYsMTQgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgcG9wVG9SZXN0b3Jl
KEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbG9hZERvdWJsZShzdGFja1BvaW50
ZXJSZWdpc3RlciwgZGVzdCk7CisgICAgICAgIGxvYWREb3VibGUoQWRkcmVzcyhzdGFja1BvaW50
ZXJSZWdpc3RlciksIGRlc3QpOwogICAgICAgICBhZGQ2NChUcnVzdGVkSW1tMzIoMTYpLCBzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgfQogICAgIAogICAgIHZvaWQgcHVzaFRvU2F2ZShGUFJl
Z2lzdGVySUQgc3JjKQogICAgIHsKICAgICAgICAgc3ViNjQoVHJ1c3RlZEltbTMyKDE2KSwgc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOwotICAgICAgICBzdG9yZURvdWJsZShzcmMsIHN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKKyAgICAgICAgc3RvcmVEb3VibGUoc3JjLCBBZGRyZXNzKHN0YWNrUG9pbnRl
clJlZ2lzdGVyKSk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBwdHJkaWZmX3QgcHVz
aFRvU2F2ZUJ5dGVPZmZzZXQoKSB7IHJldHVybiAxNjsgfQpAQCAtNDE2Myw3ICs0MTYzLDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gUGF0Y2hhYmxlSnVtcChyZXN1bHQpOwogICAgIH0KIAot
ICAgIEFMV0FZU19JTkxJTkUgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0aFBhdGNoKFRydXN0ZWRJ
bW1QdHIgaW5pdGlhbFZhbHVlLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICBBTFdBWVNf
SU5MSU5FIERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQYXRjaChUcnVzdGVkSW1tUHRyIGluaXRp
YWxWYWx1ZSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxhYmVsUHRyIGxh
YmVsKHRoaXMpOwogICAgICAgICBtb3ZlV2l0aEZpeGVkV2lkdGgoaW5pdGlhbFZhbHVlLCBnZXRD
YWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwpAQCAtNDE3MSw3ICs0MTcx
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbGFiZWw7CiAgICAgfQogCi0gICAgQUxXQVlT
X0lOTElORSBEYXRhTGFiZWxQdHIgc3RvcmVQdHJXaXRoUGF0Y2goSW1wbGljaXRBZGRyZXNzIGFk
ZHJlc3MpCisgICAgQUxXQVlTX0lOTElORSBEYXRhTGFiZWxQdHIgc3RvcmVQdHJXaXRoUGF0Y2go
QWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgcmV0dXJuIHN0b3JlUHRyV2l0aFBhdGNo
KFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIGFkZHJlc3MpOwogICAgIH0KQEAgLTQyMTYsMTM0ICs0
MjE2LDEzNCBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmRtYklTSCgpOwogICAgIH0K
ICAgICAKLSAgICB2b2lkIGxvYWRBY3E4U2lnbmVkRXh0ZW5kVG8zMihJbXBsaWNpdEFkZHJlc3Mg
YWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZEFjcThTaWduZWRFeHRlbmRU
bzMyKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9h
c3NlbWJsZXIubGRhcjw4PihkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAg
ICAgfQogICAgIAotICAgIHZvaWQgbG9hZEFjcTgoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJl
Z2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRBY3E4KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbG9hZEFjcThTaWduZWRFeHRlbmRUbzMyKGFkZHJl
c3MsIGRlc3QpOwogICAgICAgICBhbmQzMihUcnVzdGVkSW1tMzIoMHhmZiksIGRlc3QpOwogICAg
IH0KICAgICAKLSAgICB2b2lkIHN0b3JlUmVsOChSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRy
ZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZVJlbDgoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHI8OD4oc3JjLCBleHRyYWN0
U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgbG9hZEFjcTE2
U2lnbmVkRXh0ZW5kVG8zMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQorICAgIHZvaWQgbG9hZEFjcTE2U2lnbmVkRXh0ZW5kVG8zMihBZGRyZXNzIGFkZHJlc3MsIFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkYXI8MTY+KGRlc3Qs
IGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBs
b2FkQWNxMTYoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2
b2lkIGxvYWRBY3ExNihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGxvYWRBY3ExNlNpZ25lZEV4dGVuZFRvMzIoYWRkcmVzcywgZGVzdCk7CiAgICAgICAg
IGFuZDMyKFRydXN0ZWRJbW0zMigweGZmZmYpLCBkZXN0KTsKICAgICB9CiAgICAgCi0gICAgdm9p
ZCBzdG9yZVJlbDE2KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAg
ICB2b2lkIHN0b3JlUmVsMTYoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7
CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHI8MTY+KHNyYywgZXh0cmFjdFNpbXBsZUFkZHJlc3Mo
YWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIGxvYWRBY3EzMihJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZEFjcTMyKEFkZHJlc3Mg
YWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRh
cjwzMj4oZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAK
LSAgICB2b2lkIGxvYWRBY3E2NChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHZvaWQgbG9hZEFjcTY0KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRhcjw2ND4oZGVzdCwgZXh0cmFjdFNpbXBs
ZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlUmVsMzIoUmVn
aXN0ZXJJRCBkZXN0LCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlUmVs
MzIoUmVnaXN0ZXJJRCBkZXN0LCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBtX2Fz
c2VtYmxlci5zdGxyPDMyPihkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAg
ICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVSZWw2NChSZWdpc3RlcklEIGRlc3QsIEltcGxpY2l0
QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmVSZWw2NChSZWdpc3RlcklEIGRlc3QsIEFk
ZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHI8NjQ+KGRlc3Qs
IGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBs
b2FkTGluazgoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2
b2lkIGxvYWRMaW5rOChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLmxkeHI8OD4oZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRk
cmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIGxvYWRMaW5rQWNxOChJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZExpbmtBY3E4KEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIu
bGRheHI8OD4oZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAg
ICAKLSAgICB2b2lkIHN0b3JlQ29uZDgoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKKyAgICB2b2lkIHN0b3JlQ29uZDgoUmVnaXN0ZXJJ
RCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCByZXN1bHQpCiAgICAgewogICAgICAg
ICBtX2Fzc2VtYmxlci5zdHhyPDg+KHJlc3VsdCwgc3JjLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhh
ZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVDb25kUmVsOChSZWdpc3RlcklE
IHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgcmVzdWx0KQorICAgIHZv
aWQgc3RvcmVDb25kUmVsOChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3Rl
cklEIHJlc3VsdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHhyPDg+KHJlc3VsdCwg
c3JjLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZv
aWQgbG9hZExpbmsxNihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQor
ICAgIHZvaWQgbG9hZExpbmsxNihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAg
ICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkeHI8MTY+KGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRy
ZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBsb2FkTGlua0FjcTE2KEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkTGlua0Fj
cTE2KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9h
c3NlbWJsZXIubGRheHI8MTY+KGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsK
ICAgICB9CiAgICAgCi0gICAgdm9pZCBzdG9yZUNvbmQxNihSZWdpc3RlcklEIHNyYywgSW1wbGlj
aXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgcmVzdWx0KQorICAgIHZvaWQgc3RvcmVDb25k
MTYoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCByZXN1bHQpCiAg
ICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zdHhyPDE2PihyZXN1bHQsIHNyYywgZXh0cmFjdFNp
bXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlQ29uZFJl
bDE2KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBy
ZXN1bHQpCisgICAgdm9pZCBzdG9yZUNvbmRSZWwxNihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0
bHhyPDE2PihyZXN1bHQsIHNyYywgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAg
IH0KICAgICAKLSAgICB2b2lkIGxvYWRMaW5rMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJl
Z2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRMaW5rMzIoQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZHhyPDMyPihkZXN0LCBl
eHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgbG9h
ZExpbmtBY3EzMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAg
IHZvaWQgbG9hZExpbmtBY3EzMihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAg
ICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkYXhyPDMyPihkZXN0LCBleHRyYWN0U2ltcGxlQWRk
cmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVDb25kMzIoUmVnaXN0
ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKKyAg
ICB2b2lkIHN0b3JlQ29uZDMyKFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lz
dGVySUQgcmVzdWx0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3R4cjwzMj4ocmVzdWx0
LCBzcmMsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAg
dm9pZCBzdG9yZUNvbmRSZWwzMihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJl
c3MsIFJlZ2lzdGVySUQgcmVzdWx0KQorICAgIHZvaWQgc3RvcmVDb25kUmVsMzIoUmVnaXN0ZXJJ
RCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCByZXN1bHQpCiAgICAgewogICAgICAg
ICBtX2Fzc2VtYmxlci5zdGx4cjwzMj4ocmVzdWx0LCBzcmMsIGV4dHJhY3RTaW1wbGVBZGRyZXNz
KGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBsb2FkTGluazY0KEltcGxpY2l0QWRk
cmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkTGluazY0KEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIu
bGR4cjw2ND4oZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAg
ICAKLSAgICB2b2lkIGxvYWRMaW5rQWNxNjQoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lz
dGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRMaW5rQWNxNjQoQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGF4cjw2ND4oZGVzdCwg
ZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0
b3JlQ29uZDY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCByZXN1bHQpCisgICAgdm9pZCBzdG9yZUNvbmQ2NChSZWdpc3RlcklEIHNyYywgQWRkcmVz
cyBhZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVy
LnN0eHI8NjQ+KHJlc3VsdCwgc3JjLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAg
ICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVDb25kUmVsNjQoUmVnaXN0ZXJJRCBzcmMsIEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKKyAgICB2b2lkIHN0b3JlQ29u
ZFJlbDY0KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgcmVzdWx0
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3RseHI8NjQ+KHJlc3VsdCwgc3JjLCBleHRy
YWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQpAQCAtNTIwNCw3ICs1MjA0LDcgQEAg
cHJvdGVjdGVkOgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0K
ICAgICAKLSAgICBSZWdpc3RlcklEIGV4dHJhY3RTaW1wbGVBZGRyZXNzKEltcGxpY2l0QWRkcmVz
cyBhZGRyZXNzKQorICAgIFJlZ2lzdGVySUQgZXh0cmFjdFNpbXBsZUFkZHJlc3MoQWRkcmVzcyBh
ZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKCFhZGRyZXNzLm9mZnNldCkKICAgICAgICAgICAg
IHJldHVybiBhZGRyZXNzLmJhc2U7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNNjRFLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0RS5oCShyZXZpc2lvbiAyODM5MjMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjRF
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3MywxMjIgKzM3MywxMjIgQEAgcHVibGljOgogICAgICAg
ICAgICAgbV9hc3NlbWJsZXIucmV0YWIoKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdB
ZGQ4KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHZvaWQgYXRvbWljWGNoZ0FkZDgoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRk
cmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRhZGRh
bDw4PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAK
LSAgICB2b2lkIGF0b21pY1hjaGdBZGQxNihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNz
IGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdBZGQxNihSZWdp
c3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAg
ICAgICBtX2Fzc2VtYmxlci5sZGFkZGFsPDE2PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRy
ZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdBZGQzMihSZWdpc3Rl
cklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2
b2lkIGF0b21pY1hjaGdBZGQzMihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGFkZGFsPDMyPihzcmMs
IGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lk
IGF0b21pY1hjaGdBZGQ2NChSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Ms
IFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdBZGQ2NChSZWdpc3RlcklEIHNy
YywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fz
c2VtYmxlci5sZGFkZGFsPDY0PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJl
c3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdYb3I4KFJlZ2lzdGVySUQgc3JjLCBJ
bXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgYXRvbWlj
WGNoZ1hvcjgoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRlb3JhbDw4PihzcmMsIGRlc3QsIGV4dHJh
Y3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdY
b3IxNihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQg
ZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdYb3IxNihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGVv
cmFsPDE2PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9
CiAKLSAgICB2b2lkIGF0b21pY1hjaGdYb3IzMihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRy
ZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdYb3IzMihS
ZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewog
ICAgICAgICBtX2Fzc2VtYmxlci5sZGVvcmFsPDMyPihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVB
ZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdYb3I2NChSZWdp
c3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB2b2lkIGF0b21pY1hjaGdYb3I2NChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBS
ZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGVvcmFsPDY0Pihz
cmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2
b2lkIGF0b21pY1hjaGdPcjgoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNz
LCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBhdG9taWNYY2hnT3I4KFJlZ2lzdGVySUQgc3Jj
LCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLmxkc2V0YWw8OD4oc3JjLCBkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNz
KSk7CiAgICAgfQogCi0gICAgdm9pZCBhdG9taWNYY2hnT3IxNihSZWdpc3RlcklEIHNyYywgSW1w
bGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hj
aGdPcjE2KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkc2V0YWw8MTY+KHNyYywgZGVzdCwgZXh0cmFj
dFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KIAotICAgIHZvaWQgYXRvbWljWGNoZ09y
MzIoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRl
c3QpCisgICAgdm9pZCBhdG9taWNYY2hnT3IzMihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRy
ZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZHNldGFs
PDMyPihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAK
LSAgICB2b2lkIGF0b21pY1hjaGdPcjY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3Mg
YWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgYXRvbWljWGNoZ09yNjQoUmVnaXN0
ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAg
ICAgbV9hc3NlbWJsZXIubGRzZXRhbDw2ND4oc3JjLCBkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVz
cyhhZGRyZXNzKSk7CiAgICAgfQogCi0gICAgdm9pZCBhdG9taWNYY2hnQ2xlYXI4KFJlZ2lzdGVy
SUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZv
aWQgYXRvbWljWGNoZ0NsZWFyOChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGNscmFsPDg+KHNyYywg
ZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KIAotICAgIHZvaWQg
YXRvbWljWGNoZ0NsZWFyMTYoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNz
LCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBhdG9taWNYY2hnQ2xlYXIxNihSZWdpc3RlcklE
IHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBt
X2Fzc2VtYmxlci5sZGNscmFsPDE2PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFk
ZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdDbGVhcjMyKFJlZ2lzdGVySUQg
c3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQg
YXRvbWljWGNoZ0NsZWFyMzIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRjbHJhbDwzMj4oc3JjLCBk
ZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogCi0gICAgdm9pZCBh
dG9taWNYY2hnQ2xlYXI2NChSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Ms
IFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdDbGVhcjY0KFJlZ2lzdGVySUQg
c3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1f
YXNzZW1ibGVyLmxkY2xyYWw8NjQ+KHNyYywgZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRk
cmVzcykpOwogICAgIH0KIAotICAgIHZvaWQgYXRvbWljWGNoZzgoUmVnaXN0ZXJJRCBzcmMsIElt
cGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBhdG9taWNY
Y2hnOChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zd3BhbDw4PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1w
bGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGcxNihSZWdp
c3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB2b2lkIGF0b21pY1hjaGcxNihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zd3BhbDwxNj4oc3JjLCBk
ZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogCi0gICAgdm9pZCBh
dG9taWNYY2hnMzIoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCisgICAgdm9pZCBhdG9taWNYY2hnMzIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIu
c3dwYWw8MzI+KHNyYywgZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAg
IH0KIAotICAgIHZvaWQgYXRvbWljWGNoZzY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgYXRvbWljWGNoZzY0KFJlZ2lz
dGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAg
ICAgIG1fYXNzZW1ibGVyLnN3cGFsPDY0PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNz
KGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1N0cm9uZ0NBUzgoUmVnaXN0ZXJJ
RCBleHBlY3RlZEFuZFJlc3VsdCwgUmVnaXN0ZXJJRCBuZXdWYWx1ZSwgSW1wbGljaXRBZGRyZXNz
IGFkZHJlc3MpCisgICAgdm9pZCBhdG9taWNTdHJvbmdDQVM4KFJlZ2lzdGVySUQgZXhwZWN0ZWRB
bmRSZXN1bHQsIFJlZ2lzdGVySUQgbmV3VmFsdWUsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLmNhc2FsPDg+KGV4cGVjdGVkQW5kUmVzdWx0LCBuZXdWYWx1ZSwg
ZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KIAotICAgIHZvaWQgYXRvbWlj
U3Ryb25nQ0FTMTYoUmVnaXN0ZXJJRCBleHBlY3RlZEFuZFJlc3VsdCwgUmVnaXN0ZXJJRCBuZXdW
YWx1ZSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBhdG9taWNTdHJvbmdDQVMx
NihSZWdpc3RlcklEIGV4cGVjdGVkQW5kUmVzdWx0LCBSZWdpc3RlcklEIG5ld1ZhbHVlLCBBZGRy
ZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5jYXNhbDwxNj4oZXhwZWN0
ZWRBbmRSZXN1bHQsIG5ld1ZhbHVlLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAg
ICAgfQogCi0gICAgdm9pZCBhdG9taWNTdHJvbmdDQVMzMihSZWdpc3RlcklEIGV4cGVjdGVkQW5k
UmVzdWx0LCBSZWdpc3RlcklEIG5ld1ZhbHVlLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAg
ICB2b2lkIGF0b21pY1N0cm9uZ0NBUzMyKFJlZ2lzdGVySUQgZXhwZWN0ZWRBbmRSZXN1bHQsIFJl
Z2lzdGVySUQgbmV3VmFsdWUsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLmNhc2FsPDMyPihleHBlY3RlZEFuZFJlc3VsdCwgbmV3VmFsdWUsIGV4dHJhY3RTaW1w
bGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1N0cm9uZ0NBUzY0
KFJlZ2lzdGVySUQgZXhwZWN0ZWRBbmRSZXN1bHQsIFJlZ2lzdGVySUQgbmV3VmFsdWUsIEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgYXRvbWljU3Ryb25nQ0FTNjQoUmVnaXN0ZXJJ
RCBleHBlY3RlZEFuZFJlc3VsdCwgUmVnaXN0ZXJJRCBuZXdWYWx1ZSwgQWRkcmVzcyBhZGRyZXNz
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuY2FzYWw8NjQ+KGV4cGVjdGVkQW5kUmVzdWx0
LCBuZXdWYWx1ZSwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5oCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAkod29ya2luZyBjb3B5KQpAQCAtMzcwLDE2ICsz
NzAsMTYgQEAgcHVibGljOgogICAgICAgICBBUk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1U
aHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJbW0oaW1tLm1fdmFsdWUpOwogICAgICAgICBpZiAo
YXJtSW1tLmlzVmFsaWQoKSkgewogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJl
c3MubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIGxvYWQ4KGFkZHJl
c3NUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbG9hZDgoQWRk
cmVzcyhhZGRyZXNzVGVtcFJlZ2lzdGVyKSwgZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5vcnIoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgYXJt
SW1tKTsKLSAgICAgICAgICAgIHN0b3JlOChkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgICAgIHN0b3JlOChkYXRhVGVtcFJlZ2lzdGVyLCBBZGRyZXNzKGFk
ZHJlc3NUZW1wUmVnaXN0ZXIpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1vdmUo
VHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAg
ICAgICAgICBsb2FkOChhZGRyZXNzVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAg
ICAgICAgICAgIGxvYWQ4KEFkZHJlc3MoYWRkcmVzc1RlbXBSZWdpc3RlciksIGRhdGFUZW1wUmVn
aXN0ZXIpOwogICAgICAgICAgICAgbW92ZShpbW0sIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogICAg
ICAgICAgICAgbV9hc3NlbWJsZXIub3JyKGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0
ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRy
KGFkZHJlc3MubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIHN0b3Jl
OChkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIHN0
b3JlOChkYXRhVGVtcFJlZ2lzdGVyLCBBZGRyZXNzKGFkZHJlc3NUZW1wUmVnaXN0ZXIpKTsKICAg
ICAgICAgfQogICAgIH0KIApAQCAtMzg4LDE2ICszODgsMTYgQEAgcHVibGljOgogICAgICAgICBB
Uk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJ
bW0oaW1tLm1fdmFsdWUpOwogICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkgewogICAgICAg
ICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVy
KTsKLSAgICAgICAgICAgIGxvYWQxNihhZGRyZXNzVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lz
dGVyKTsKKyAgICAgICAgICAgIGxvYWQxNihBZGRyZXNzKGFkZHJlc3NUZW1wUmVnaXN0ZXIpLCBk
YXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm9ycihkYXRhVGVtcFJl
Z2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBhcm1JbW0pOwotICAgICAgICAgICAgc3RvcmUxNihk
YXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIHN0b3Jl
MTYoZGF0YVRlbXBSZWdpc3RlciwgQWRkcmVzcyhhZGRyZXNzVGVtcFJlZ2lzdGVyKSk7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoZGVzdC5tX3B0ciks
IGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwotICAgICAgICAgICAgbG9hZDE2KGFkZHJlc3NUZW1wUmVn
aXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbG9hZDE2KEFkZHJlc3MoYWRk
cmVzc1RlbXBSZWdpc3RlciksIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgbW92ZShp
bW0sIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIub3JyKGRh
dGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwog
ICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJl
Z2lzdGVyKTsKLSAgICAgICAgICAgIHN0b3JlMTYoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzc1Rl
bXBSZWdpc3Rlcik7CisgICAgICAgICAgICBzdG9yZTE2KGRhdGFUZW1wUmVnaXN0ZXIsIEFkZHJl
c3MoYWRkcmVzc1RlbXBSZWdpc3RlcikpOwogICAgICAgICB9CiAgICAgfQogCkBAIC00MDksOSAr
NDA5LDkgQEAgcHVibGljOgogICAgIHZvaWQgb3IzMihSZWdpc3RlcklEIHNyYywgQWJzb2x1dGVB
ZGRyZXNzIGRlc3QpCiAgICAgewogICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoZGVzdC5tX3B0
ciksIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwotICAgICAgICBsb2FkMzIoYWRkcmVzc1RlbXBSZWdp
c3RlciwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIGxvYWQzMihBZGRyZXNzKGFkZHJlc3NU
ZW1wUmVnaXN0ZXIpLCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgb3IzMihzcmMsIGRhdGFU
ZW1wUmVnaXN0ZXIpOwotICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NU
ZW1wUmVnaXN0ZXIpOworICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIEFkZHJlc3Mo
YWRkcmVzc1RlbXBSZWdpc3RlcikpOwogICAgIH0KIAogICAgIHZvaWQgb3IzMihUcnVzdGVkSW1t
MzIgaW1tLCBBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcykKQEAgLTQxOSwxNiArNDE5LDE2IEBAIHB1
YmxpYzoKICAgICAgICAgQVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlh
dGU6Om1ha2VFbmNvZGVkSW1tKGltbS5tX3ZhbHVlKTsKICAgICAgICAgaWYgKGFybUltbS5pc1Zh
bGlkKCkpIHsKICAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwg
YWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBsb2FkMzIoYWRkcmVzc1RlbXBSZWdp
c3RlciwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBsb2FkMzIoQWRkcmVzcyhhZGRy
ZXNzVGVtcFJlZ2lzdGVyKSwgZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5vcnIoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgYXJtSW1tKTsKLSAg
ICAgICAgICAgIHN0b3JlMzIoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7
CisgICAgICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIEFkZHJlc3MoYWRkcmVzc1Rl
bXBSZWdpc3RlcikpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbW92ZShUcnVzdGVk
SW1tUHRyKGFkZHJlc3MubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAg
IGxvYWQzMihhZGRyZXNzVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
ICAgIGxvYWQzMihBZGRyZXNzKGFkZHJlc3NUZW1wUmVnaXN0ZXIpLCBkYXRhVGVtcFJlZ2lzdGVy
KTsKICAgICAgICAgICAgIG1vdmUoaW1tLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLm9ycihkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRy
ZXNzLm1fcHRyKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBzdG9yZTMyKGRh
dGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgc3RvcmUz
MihkYXRhVGVtcFJlZ2lzdGVyLCBBZGRyZXNzKGFkZHJlc3NUZW1wUmVnaXN0ZXIpKTsKICAgICAg
ICAgfQogICAgIH0KIApAQCAtNzU0LDcgKzc1NCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiBwdWJs
aWM6Ci0gICAgdm9pZCBsb2FkMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQg
ZGVzdCkKKyAgICB2b2lkIGxvYWQzMihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7CiAgICAgICAgIGxvYWQzMihzZXR1cEFybUFkZHJlc3MoYWRkcmVzcyksIGRlc3QpOwog
ICAgIH0KQEAgLTgwMCwxMiArODAwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICB9CiAKLSAgICB2b2lkIGxvYWQ4KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkOChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQg
ZGVzdCkKICAgICB7CiAgICAgICAgIGxvYWQ4KHNldHVwQXJtQWRkcmVzcyhhZGRyZXNzKSwgZGVz
dCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkOFNpZ25lZEV4dGVuZFRvMzIoSW1wbGljaXRBZGRy
ZXNzLCBSZWdpc3RlcklEKQorICAgIHZvaWQgbG9hZDhTaWduZWRFeHRlbmRUbzMyKEFkZHJlc3Ms
IFJlZ2lzdGVySUQpCiAgICAgewogICAgICAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsK
ICAgICB9CkBAIC04MjMsNyArODIzLDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZDgoY29uc3Qg
dm9pZCogYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbW92ZShUcnVz
dGVkSW1tUHRyKGFkZHJlc3MpLCBkZXN0KTsKLSAgICAgICAgbG9hZDgoZGVzdCwgZGVzdCk7Cisg
ICAgICAgIGxvYWQ4KEFkZHJlc3MoZGVzdCksIGRlc3QpOwogICAgIH0KIAogICAgIERhdGFMYWJl
bDMyIGxvYWQzMldpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3Rl
cklEIGRlc3QpCkBAIC04NjIsNyArODYyLDcgQEAgcHVibGljOgogICAgICAgICBsb2FkMTZTaWdu
ZWRFeHRlbmRUbzMyKHNldHVwQXJtQWRkcmVzcyhhZGRyZXNzKSwgZGVzdCk7CiAgICAgfQogICAg
IAotICAgIHZvaWQgbG9hZDE2KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRl
c3QpCisgICAgdm9pZCBsb2FkMTYoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewogICAgICAgICBBUk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0
ZTo6bWFrZVVJbnQxMihhZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIGlmIChhcm1JbW0uaXNWYWxp
ZCgpKQpAQCAtODczLDcgKzg3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KICAgICAK
LSAgICB2b2lkIGxvYWQxNlNpZ25lZEV4dGVuZFRvMzIoSW1wbGljaXRBZGRyZXNzLCBSZWdpc3Rl
cklEKQorICAgIHZvaWQgbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMihBZGRyZXNzLCBSZWdpc3RlcklE
KQogICAgIHsKICAgICAgICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7CiAgICAgfQpAQCAt
OTAzLDcgKzkwMyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGxhYmVsOwogICAgIH0KIAot
ICAgIHZvaWQgc3RvcmUzMihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Mp
CisgICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAg
ewogICAgICAgICBzdG9yZTMyKHNyYywgc2V0dXBBcm1BZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9
CkBAIC05MTMsNyArOTEzLDcgQEAgcHVibGljOgogICAgICAgICBzdG9yZTMyKHNyYywgc2V0dXBB
cm1BZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZElt
bTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTMyKFRydXN0
ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1vdmUoaW1tLCBk
YXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVyLCBzZXR1
cEFybUFkZHJlc3MoYWRkcmVzcykpOwpAQCAtOTcyLDcgKzk3Miw3IEBAIHB1YmxpYzoKICAgICAg
ICAgc3RvcmU4KHNyYywgQXJtQWRkcmVzcyhhZGRycmVnLCAwKSk7CiAgICAgfQogICAgIAotICAg
IHZvaWQgc3RvcmUxNihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisg
ICAgdm9pZCBzdG9yZTE2KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewog
ICAgICAgICBzdG9yZTE2KHNyYywgc2V0dXBBcm1BZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CkBA
IC0xMDQzLDcgKzEwNDMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9h
dGluZ1BvaW50QWJzKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludFJvdW5kaW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgbG9h
ZERvdWJsZShJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAg
dm9pZCBsb2FkRG91YmxlKEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBSZWdpc3RlcklEIGJhc2UgPSBhZGRyZXNzLmJhc2U7CiAgICAgICAgIGludDMy
X3Qgb2Zmc2V0ID0gYWRkcmVzcy5vZmZzZXQ7CkBAIC0xMDU4LDcgKzEwNTgsNyBAQCBwdWJsaWM6
CiAgICAgICAgIG1fYXNzZW1ibGVyLnZsZHIoZGVzdCwgYmFzZSwgb2Zmc2V0KTsKICAgICB9CiAK
LSAgICB2b2lkIGxvYWRGbG9hdChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklE
IGRlc3QpCisgICAgdm9pZCBsb2FkRmxvYXQoQWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQg
ZGVzdCkKICAgICB7CiAgICAgICAgIFJlZ2lzdGVySUQgYmFzZSA9IGFkZHJlc3MuYmFzZTsKICAg
ICAgICAgaW50MzJfdCBvZmZzZXQgPSBhZGRyZXNzLm9mZnNldDsKQEAgLTExMTIsNyArMTExMiw3
IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIudmxkcihkZXN0LCBhZGRyZXNzVGVtcFJl
Z2lzdGVyLCAwKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBz
cmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdp
c3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgUmVnaXN0ZXJJRCBi
YXNlID0gYWRkcmVzcy5iYXNlOwogICAgICAgICBpbnQzMl90IG9mZnNldCA9IGFkZHJlc3Mub2Zm
c2V0OwpAQCAtMTEyNyw3ICsxMTI3LDcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci52
c3RyKHNyYywgYmFzZSwgb2Zmc2V0KTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlRmxvYXQoRlBS
ZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZUZs
b2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIFJl
Z2lzdGVySUQgYmFzZSA9IGFkZHJlc3MuYmFzZTsKICAgICAgICAgaW50MzJfdCBvZmZzZXQgPSBh
ZGRyZXNzLm9mZnNldDsKQEAgLTExNDUsNyArMTE0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0
b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIFRydXN0ZWRJbW1QdHIgYWRkcmVzcykKICAgICB7
CiAgICAgICAgIG1vdmUoYWRkcmVzcywgYWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAgICAgIHN0
b3JlRG91YmxlKHNyYywgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAgIHN0b3JlRG91Ymxl
KHNyYywgQWRkcmVzcyhhZGRyZXNzVGVtcFJlZ2lzdGVyKSk7CiAgICAgfQogCiAgICAgdm9pZCBz
dG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBCYXNlSW5kZXggYWRkcmVzcykKQEAgLTIxMzIs
MTMgKzIxMzIsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gUGF0Y2hhYmxlSnVtcChyZXN1
bHQpOwogICAgIH0KIAotICAgIEFMV0FZU19JTkxJTkUgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0
aFBhdGNoKFRydXN0ZWRJbW1QdHIgaW5pdGlhbFZhbHVlLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVz
cykKKyAgICBBTFdBWVNfSU5MSU5FIERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQYXRjaChUcnVz
dGVkSW1tUHRyIGluaXRpYWxWYWx1ZSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAg
RGF0YUxhYmVsUHRyIGxhYmVsID0gbW92ZVdpdGhQYXRjaChpbml0aWFsVmFsdWUsIGRhdGFUZW1w
UmVnaXN0ZXIpOwogICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwog
ICAgICAgICByZXR1cm4gbGFiZWw7CiAgICAgfQotICAgIEFMV0FZU19JTkxJTkUgRGF0YUxhYmVs
UHRyIHN0b3JlUHRyV2l0aFBhdGNoKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKSB7IHJldHVybiBz
dG9yZVB0cldpdGhQYXRjaChUcnVzdGVkSW1tUHRyKG51bGxwdHIpLCBhZGRyZXNzKTsgfQorICAg
IEFMV0FZU19JTkxJTkUgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0aFBhdGNoKEFkZHJlc3MgYWRk
cmVzcykgeyByZXR1cm4gc3RvcmVQdHJXaXRoUGF0Y2goVHJ1c3RlZEltbVB0cihudWxscHRyKSwg
YWRkcmVzcyk7IH0KIAogICAgIHRlbXBsYXRlPFB0clRhZyByZXN1bHRUYWcsIFB0clRhZyBsb2Nh
dGlvblRhZz4KICAgICBzdGF0aWMgRnVuY3Rpb25QdHI8cmVzdWx0VGFnPiByZWFkQ2FsbFRhcmdl
dChDb2RlTG9jYXRpb25DYWxsPGxvY2F0aW9uVGFnPiBjYWxsKQpAQCAtMjI0OSwxNSArMjI0OSw2
IEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIEFybUFkZHJlc3MoYWRkcmVzcy5iYXNlLCBh
ZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKLSAgICBBcm1BZGRyZXNzIHNldHVwQXJtQWRk
cmVzcyhJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIGlmICgoYWRkcmVz
cy5vZmZzZXQgPj0gLTB4ZmYpICYmIChhZGRyZXNzLm9mZnNldCA8PSAweGZmZikpCi0gICAgICAg
ICAgICByZXR1cm4gQXJtQWRkcmVzcyhhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KTsKLQot
ICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMihhZGRyZXNzLm9mZnNldCksIGFkZHJlc3NUZW1wUmVn
aXN0ZXIpOwotICAgICAgICByZXR1cm4gQXJtQWRkcmVzcyhhZGRyZXNzLmJhc2UsIGFkZHJlc3NU
ZW1wUmVnaXN0ZXIpOwotICAgIH0KLQogICAgIFJlZ2lzdGVySUQgbWFrZUJhc2VJbmRleEJhc2Uo
QmFzZUluZGV4IGFkZHJlc3MpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mub2Zmc2V0KQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyTUlQUy5oCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCSh3b3JraW5nIGNvcHkpCkBAIC05MTcsNyAr
OTE3LDcgQEAgcHVibGljOgogICAgIC8vIHJlZ2lzdGVyIGlzIHBhc3NlZC4KIAogICAgIC8qIE5l
ZWQgdG8gdXNlIHplcm8tZXh0ZW5lZCBsb2FkIGJ5dGUgZm9yIGxvYWQ4LiAgKi8KLSAgICB2b2lk
IGxvYWQ4KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9p
ZCBsb2FkOChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAg
IGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcK
ICAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpCkBAIC05NzYsNyArOTc2LDcgQEAgcHVibGlj
OgogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBsb2FkOFNpZ25lZEV4dGVuZFRvMzIoSW1w
bGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWQ4U2ln
bmVkRXh0ZW5kVG8zMihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0g
MzI3NjcKICAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpCkBAIC0xMDM2LDcgKzEwMzYsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiAKLSAgICB2b2lkIGxvYWQzMihJbXBsaWNpdEFkZHJlc3MgYWRk
cmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZDMyKEFkZHJlc3MgYWRkcmVzcywg
UmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0z
Mjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NwogICAgICAgICAgICAgJiYgIW1fZml4ZWRX
aWR0aCkKQEAgLTEyMzMsNyArMTIzMyw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvKiBOZWVk
IHRvIHVzZSB6ZXJvLWV4dGVuZWQgbG9hZCBoYWxmLXdvcmQgZm9yIGxvYWQxNi4gICovCi0gICAg
dm9pZCBsb2FkMTYoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB2b2lkIGxvYWQxNihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0g
MzI3NjcKICAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpCkBAIC0xMzI3LDcgKzEzMjcsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBkYXRhTGFiZWw7CiAgICAgfQogCi0gICAgdm9pZCBz
dG9yZTgoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQg
c3RvcmU4KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBp
ZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CiAg
ICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKQpAQCAtMTQwNiw3ICsxNDA2LDcgQEAgcHVibGlj
OgogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGltbSwg
SW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGlt
bSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgVHJ1c3RlZEltbTMyIGltbTgoc3Rh
dGljX2Nhc3Q8aW50OF90PihpbW0ubV92YWx1ZSkpOwogICAgICAgICBpZiAoYWRkcmVzcy5vZmZz
ZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CkBAIC0xNDUwLDcgKzE0NTAs
NyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lkIHN0b3JlMTYoUmVnaXN0
ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmUxNihSZWdp
c3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKGFkZHJlc3Mu
b2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NwogICAgICAgICAgICAg
JiYgIW1fZml4ZWRXaWR0aCkgewpAQCAtMTQ4OCw3ICsxNDg4LDcgQEAgcHVibGljOgogICAgICAg
ICB9CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFk
ZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMzIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcykKICAgICB7CiAgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYg
YWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKICAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpCkBA
IC0xNTI2LDcgKzE1MjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lk
IHN0b3JlMzIoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAg
dm9pZCBzdG9yZTMyKFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0g
MzI3NjcKICAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpIHsKQEAgLTI5MTIsNyArMjkxMiw3
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHRlbXA7CiAgICAgfQogCi0gICAgRGF0YUxhYmVs
UHRyIHN0b3JlUHRyV2l0aFBhdGNoKFRydXN0ZWRJbW1QdHIgaW5pdGlhbFZhbHVlLCBJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcykKKyAgICBEYXRhTGFiZWxQdHIgc3RvcmVQdHJXaXRoUGF0Y2goVHJ1
c3RlZEltbVB0ciBpbml0aWFsVmFsdWUsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAg
IG1fZml4ZWRXaWR0aCA9IHRydWU7CiAgICAgICAgIERhdGFMYWJlbFB0ciBkYXRhTGFiZWwgPSBt
b3ZlV2l0aFBhdGNoKGluaXRpYWxWYWx1ZSwgZGF0YVRlbXBSZWdpc3Rlcik7CkBAIC0yOTIxLDcg
KzI5MjEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBkYXRhTGFiZWw7CiAgICAgfQogCi0g
ICAgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0aFBhdGNoKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNz
KQorICAgIERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQYXRjaChBZGRyZXNzIGFkZHJlc3MpCiAg
ICAgewogICAgICAgICByZXR1cm4gc3RvcmVQdHJXaXRoUGF0Y2goVHJ1c3RlZEltbVB0cihudWxs
cHRyKSwgYWRkcmVzcyk7CiAgICAgfQpAQCAtMjk0Nyw3ICsyOTQ3LDcgQEAgcHVibGljOgogICAg
ICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBsb2FkRmxvYXQoSW1wbGljaXRBZGRyZXNzIGFkZHJl
c3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZEZsb2F0KEFkZHJlc3MgYWRkcmVz
cywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQg
Pj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CiAgICAgICAgICAgICAmJiAhbV9m
aXhlZFdpZHRoKSB7CkBAIC0yOTY0LDcgKzI5NjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICB2b2lkIGxvYWREb3VibGUoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIEZQUmVn
aXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZERvdWJsZShBZGRyZXNzIGFkZHJlc3MsIEZQUmVn
aXN0ZXJJRCBkZXN0KQogICAgIHsKICNpZiBXVEZfTUlQU19JU0EoMSkKICAgICAgICAgLyoKQEAg
LTMwODYsNyArMzA4Niw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAgIHZvaWQg
c3RvcmVGbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAg
ICB2b2lkIHN0b3JlRmxvYXQoRlBSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAg
IHsKICAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNl
dCA8PSAzMjc2NwogICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkKQEAgLTMxMDMsNyArMzEw
Myw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAgIHZvaWQgc3RvcmVEb3VibGUo
RlBSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9y
ZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogI2lmIFdU
Rl9NSVBTX0lTQSgxKQogICAgICAgICAvKgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkocmV2aXNp
b24gMjgzOTIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4NkNvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEwLDcgKzEyMTAsNyBAQCBwdWJs
aWM6CiAgICAgLy8gb3BlcmFuZCBvYmplY3RzIHRvIGxvYWRzIGFuZCBzdG9yZSB3aWxsIGJlIGlt
cGxpY2l0bHkgY29uc3RydWN0ZWQgaWYgYQogICAgIC8vIHJlZ2lzdGVyIGlzIHBhc3NlZC4KIAot
ICAgIHZvaWQgbG9hZDMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3Qp
CisgICAgdm9pZCBsb2FkMzIoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZsX21yKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJh
c2UsIGRlc3QpOwogICAgIH0KQEAgLTEyMjUsNyArMTIyNSw3IEBAIHB1YmxpYzoKICAgICAgICAg
bG9hZDMyKGFkZHJlc3MsIGRlc3QpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZDE2VW5hbGlnbmVk
KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2Fk
MTZVbmFsaWduZWQoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAg
ICAgICBsb2FkMTYoYWRkcmVzcywgZGVzdCk7CiAgICAgfQpAQCAtMTI2OCw3ICsxMjY4LDcgQEAg
cHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5tb3Z6YmxfbXIoYWRkcmVzcy5vZmZzZXQsIGFk
ZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSwgZGVzdCk7CiAgICAgfQog
Ci0gICAgdm9pZCBsb2FkOChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQorICAgIHZvaWQgbG9hZDgoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBtX2Fzc2VtYmxlci5tb3Z6YmxfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3Mu
YmFzZSwgZGVzdCk7CiAgICAgfQpAQCAtMTI3OCw3ICsxMjc4LDcgQEAgcHVibGljOgogICAgICAg
ICBtX2Fzc2VtYmxlci5tb3ZzYmxfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRk
cmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSwgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2Fk
OFNpZ25lZEV4dGVuZFRvMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVz
dCkKKyAgICB2b2lkIGxvYWQ4U2lnbmVkRXh0ZW5kVG8zMihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lz
dGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNibF9tcihhZGRyZXNz
Lm9mZnNldCwgYWRkcmVzcy5iYXNlLCBkZXN0KTsKICAgICB9CkBAIC0xMjkzLDcgKzEyOTMsNyBA
QCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNibF9ycihzcmMsIGRlc3QpOwogICAg
IH0KICAgICAKLSAgICB2b2lkIGxvYWQxNihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZDE2KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBk
ZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92endsX21yKGFkZHJlc3Mub2Zmc2V0
LCBhZGRyZXNzLmJhc2UsIGRlc3QpOwogICAgIH0KQEAgLTEzMDMsMTEgKzEzMDMsNiBAQCBwdWJs
aWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnp3bF9tcihhZGRyZXNzLm9mZnNldCwgYWRkcmVz
cy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlLCBkZXN0KTsKICAgICB9CiAgICAg
Ci0gICAgdm9pZCBsb2FkMTYoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCi0gICAg
ewotICAgICAgICBtX2Fzc2VtYmxlci5tb3Z6d2xfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3Mu
YmFzZSwgZGVzdCk7Ci0gICAgfQotCiAgICAgdm9pZCBsb2FkMTZTaWduZWRFeHRlbmRUbzMyKEJh
c2VJbmRleCBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2Vt
Ymxlci5tb3Zzd2xfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRl
eCwgYWRkcmVzcy5zY2FsZSwgZGVzdCk7CkBAIC0xMzUyLDcgKzEzNDcsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBEYXRhTGFiZWwzMih0aGlzKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3Jl
MzIoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3Rv
cmUzMihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbV9h
c3NlbWJsZXIubW92bF9ybShzcmMsIGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAg
IH0KQEAgLTEzNjIsNyArMTM1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubW92
bF9ybShzcmMsIGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFk
ZHJlc3Muc2NhbGUpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmUzMihUcnVzdGVkSW1tMzIgaW1t
LCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZEltbTMy
IGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92bF9p
MzJtKGltbS5tX3ZhbHVlLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CkBA
IC0xNDY5LDcgKzE0NjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdndfaW0o
c3RhdGljX2Nhc3Q8aW50MTZfdD4oaW1tLm1fdmFsdWUpLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVz
cy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAKLSAgICB2b2lk
IHN0b3JlMTYoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAg
dm9pZCBzdG9yZTE2KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLm1vdndfaW0oc3RhdGljX2Nhc3Q8aW50MTZfdD4oaW1tLm1fdmFs
dWUpLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CkBAIC0xNDg4LDExICsx
NDgzLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubW92c2RfbXIoYWRkcmVzcy5h
c1B0cigpLCBkZXN0KTsKICNlbHNlCiAgICAgICAgIG1vdmUoYWRkcmVzcywgc2NyYXRjaFJlZ2lz
dGVyKCkpOwotICAgICAgICBsb2FkRG91YmxlKHNjcmF0Y2hSZWdpc3RlcigpLCBkZXN0KTsKKyAg
ICAgICAgbG9hZERvdWJsZShBZGRyZXNzKHNjcmF0Y2hSZWdpc3RlcigpKSwgZGVzdCk7CiAjZW5k
aWYKICAgICB9CiAKLSAgICB2b2lkIGxvYWREb3VibGUoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Ms
IEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZERvdWJsZShBZGRyZXNzIGFkZHJlc3Ms
IEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92c2RfbXIo
YWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgZGVzdCk7CiAgICAgfQpAQCAtMTUwOCwxMSAr
MTUwMywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNzX21yKGFkZHJlc3Mu
YXNQdHIoKSwgZGVzdCk7CiAjZWxzZQogICAgICAgICBtb3ZlKGFkZHJlc3MsIHNjcmF0Y2hSZWdp
c3RlcigpKTsKLSAgICAgICAgbG9hZEZsb2F0KHNjcmF0Y2hSZWdpc3RlcigpLCBkZXN0KTsKKyAg
ICAgICAgbG9hZEZsb2F0KEFkZHJlc3Moc2NyYXRjaFJlZ2lzdGVyKCkpLCBkZXN0KTsKICNlbmRp
ZgogICAgIH0KIAotICAgIHZvaWQgbG9hZEZsb2F0KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBG
UFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRGbG9hdChBZGRyZXNzIGFkZHJlc3MsIEZQ
UmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92c3NfbXIoYWRk
cmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgZGVzdCk7CiAgICAgfQpAQCAtMTUyMiw3ICsxNTE3
LDcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5tb3Zzc19tcihhZGRyZXNzLm9mZnNl
dCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlLCBkZXN0KTsKICAg
ICB9CiAKLSAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRk
cmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgQWRk
cmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92c2Rfcm0oc3JjLCBh
ZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CkBAIC0xNTMyLDcgKzE1MjcsNyBA
QCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNkX3JtKHNyYywgYWRkcmVzcy5vZmZz
ZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CiAgICAgfQog
Ci0gICAgdm9pZCBzdG9yZUZsb2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBh
ZGRyZXNzKQorICAgIHZvaWQgc3RvcmVGbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFk
ZHJlc3MpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5tb3Zzc19ybShzcmMsIGFkZHJlc3Mu
b2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgJKHJldmlzaW9u
IDI4MzkyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJYODZfNjQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGxvYWQ4KGNvbnN0IHZvaWQqIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7
CiAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgZGVzdCk7Ci0gICAgICAgIGxv
YWQ4KGRlc3QsIGRlc3QpOworICAgICAgICBsb2FkOChBZGRyZXNzKGRlc3QpLCBkZXN0KTsKICAg
ICB9CiAKICAgICB2b2lkIGxvYWQxNihFeHRlbmRlZEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJ
RCBkZXN0KQpAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1i
bGVyLm1vdmxfbUVBWChhZGRyZXNzKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBtb3Zl
KFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIGRlc3QpOwotICAgICAgICAgICAgbG9hZDMyKGRlc3Qs
IGRlc3QpOworICAgICAgICAgICAgbG9hZDMyKEFkZHJlc3MoZGVzdCksIGRlc3QpOwogICAgICAg
ICB9CiAgICAgfQogCkBAIC0xNTEsNyArMTUxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc3RvcmUz
MihUcnVzdGVkSW1tMzIgaW1tLCB2b2lkKiBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbW92ZShU
cnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAgIHN0b3Jl
MzIoaW1tLCBzY3JhdGNoUmVnaXN0ZXIoKSk7CisgICAgICAgIHN0b3JlMzIoaW1tLCBBZGRyZXNz
KHNjcmF0Y2hSZWdpc3RlcigpKSk7CiAgICAgfQogCiAgICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVy
SUQgc291cmNlLCB2b2lkKiBhZGRyZXNzKQpAQCAtMTYwLDcgKzE2MCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmxfRUFYbShhZGRyZXNzKTsKICAgICAgICAgZWxzZSB7
CiAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIHNjcmF0Y2hSZWdpc3Rl
cigpKTsKLSAgICAgICAgICAgIHN0b3JlMzIoc291cmNlLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Cisg
ICAgICAgICAgICBzdG9yZTMyKHNvdXJjZSwgQWRkcmVzcyhzY3JhdGNoUmVnaXN0ZXIoKSkpOwog
ICAgICAgICB9CiAgICAgfQogICAgIApAQCAtOTE4LDcgKzkxOCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgbV9hc3NlbWJsZXIubm90cV9tKGRlc3Qub2Zmc2V0LCBkZXN0LmJhc2UsIGRlc3QuaW5kZXgs
IGRlc3Quc2NhbGUpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZDY0KEltcGxpY2l0QWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkNjQoQWRkcmVzcyBhZGRyZXNz
LCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZxX21yKGFk
ZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGRlc3QpOwogICAgIH0KQEAgLTkzNCw3ICs5MzQs
NyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZxX21FQVgoYWRkcmVzcyk7
CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3Mp
LCBkZXN0KTsKLSAgICAgICAgICAgIGxvYWQ2NChkZXN0LCBkZXN0KTsKKyAgICAgICAgICAgIGxv
YWQ2NChBZGRyZXNzKGRlc3QpLCBkZXN0KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtOTUyLDcg
Kzk1Miw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIERhdGFMYWJlbENvbXBhY3QodGhpcyk7
CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlNjQoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRk
cmVzcykKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnFfcm0oc3JjLCBhZGRyZXNzLm9m
ZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CkBAIC05NjgsMTEgKzk2OCwxMSBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZxX0VBWG0oYWRkcmVzcyk7CiAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBzY3JhdGNoUmVn
aXN0ZXIoKSk7Ci0gICAgICAgICAgICBzdG9yZTY0KHNyYywgc2NyYXRjaFJlZ2lzdGVyKCkpOwor
ICAgICAgICAgICAgc3RvcmU2NChzcmMsIEFkZHJlc3Moc2NyYXRjaFJlZ2lzdGVyKCkpKTsKICAg
ICAgICAgfQogICAgIH0KIAotICAgIHZvaWQgc3RvcmU2NChUcnVzdGVkSW1tMzIgaW1tLCBJbXBs
aWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlNjQoVHJ1c3RlZEltbTMyIGltbSwg
QWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92cV9pMzJtKGlt
bS5tX3ZhbHVlLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CkBAIC05ODcs
NyArOTg3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoQ0FOX1NJR05fRVhURU5EXzMyXzY0KGlt
bS5tX3ZhbHVlKSkgewogICAgICAgICAgICAgYXV0byBhZGRyZXNzUmVnID0gc2NyYXRjaFJlZ2lz
dGVyKCk7CiAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIGFkZHJlc3NS
ZWcpOwotICAgICAgICAgICAgc3RvcmU2NChUcnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJf
dD4oaW1tLm1fdmFsdWUpKSwgYWRkcmVzc1JlZyk7CisgICAgICAgICAgICBzdG9yZTY0KFRydXN0
ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90PihpbW0ubV92YWx1ZSkpLCBBZGRyZXNzKGFkZHJl
c3NSZWcpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC05OTgsNyArOTk4
LDcgQEAgcHVibGljOgogICAgICAgICBzd2FwKHNyYywgWDg2UmVnaXN0ZXJzOjplYXgpOwogICAg
IH0KIAotICAgIHZvaWQgc3RvcmU2NChUcnVzdGVkSW1tNjQgaW1tLCBJbXBsaWNpdEFkZHJlc3Mg
YWRkcmVzcykKKyAgICB2b2lkIHN0b3JlNjQoVHJ1c3RlZEltbTY0IGltbSwgQWRkcmVzcyBhZGRy
ZXNzKQogICAgIHsKICAgICAgICAgaWYgKENBTl9TSUdOX0VYVEVORF8zMl82NChpbW0ubV92YWx1
ZSkpIHsKICAgICAgICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMy
X3Q+KGltbS5tX3ZhbHVlKSksIGFkZHJlc3MpOwpAQCAtMTUyNCw3ICsxNTI0LDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29uZCwgbGVmdCwgc2NyYXRjaFJlZ2lzdGVyKCkp
OwogICAgIH0KIAotICAgIERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQYXRjaChUcnVzdGVkSW1t
UHRyIGluaXRpYWxWYWx1ZSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgRGF0YUxhYmVs
UHRyIHN0b3JlUHRyV2l0aFBhdGNoKFRydXN0ZWRJbW1QdHIgaW5pdGlhbFZhbHVlLCBBZGRyZXNz
IGFkZHJlc3MpCiAgICAgewogICAgICAgICBEYXRhTGFiZWxQdHIgbGFiZWwgPSBtb3ZlV2l0aFBh
dGNoKGluaXRpYWxWYWx1ZSwgc2NyYXRjaFJlZ2lzdGVyKCkpOwogICAgICAgICBzdG9yZTY0KHNj
cmF0Y2hSZWdpc3RlcigpLCBhZGRyZXNzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvdGVzdG1hc20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAz
LDE2ICszMDMsMTYgQEAgdm9pZCB0ZXN0QnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKGRvdQog
ICAgICAgICBqaXQuc3ViUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHN0YWNrQWxpZ25t
ZW50Qnl0ZXMoKSksIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAg
ICAgIGlmIChpc0JpZ0VuZGlhbikgewogICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIodmFsQXNVSW50ID4+IDMyKSwKLSAgICAgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcikp
OwogICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIodmFs
QXNVSW50ICYgMHhmZmZmZmZmZiksCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCA0KSk7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMih2YWxBc1VJbnQgJiAweGZmZmZmZmZmKSwKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlcikpOwogICAg
ICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIodmFsQXNVSW50
ID4+IDMyKSwKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fz
c2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDQpKTsKICAgICAgICAgfQotICAgICAgICBq
aXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEZQUklu
Zm86OmZwUmVnVDApOworICAgICAgICBqaXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpLCBGUFJJbmZvOjpmcFJl
Z1QwKTsKIAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkb25lOwogICAgICAgICBkb25l
ID0gaml0LmJyYW5jaFRydW5jYXRlRG91YmxlVG9JbnQzMihGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OkJyYW5jaElmVHJ1bmNhdGVTdWNj
ZXNzZnVsKTsKQEAgLTIzMTMsNyArMjMxMyw3IEBAIHZvaWQgdGVzdExvYWRQcmVQb3N0SW5kZXgz
MigpCiAKICAgICAgICAgICAgIC8vIHJlcyA9ICorK3AxOyAqcDEgPSA0OyByZXR1cm4gcmVzOwog
ICAgICAgICAgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OlByZUluZGV4QWRkcmVzcyhHUFJJ
bmZvOjphcmd1bWVudEdQUjAsIGluZGV4KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICAg
ICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHJlcGxhY2UpLCBD
Q2FsbEhlbHBlcnM6OkltcGxpY2l0QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAg
ICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHJlcGxhY2Up
LCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgICAg
ICAgICBqaXQubW92ZShHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OnJldHVyblZhbHVl
R1BSKTsKIAogICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKQEAgLTIzMzEs
NyArMjMzMSw3IEBAIHZvaWQgdGVzdExvYWRQcmVQb3N0SW5kZXgzMigpCiAKICAgICAgICAgICAg
IC8vIHJlcyA9ICpwMisrOyAqcDIgPSA1OyByZXR1cm4gcmVzOwogICAgICAgICAgICAgaml0Lmxv
YWQzMihDQ2FsbEhlbHBlcnM6OlBvc3RJbmRleEFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIw
LCBpbmRleCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUz
MihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihyZXBsYWNlKSwgQ0NhbGxIZWxwZXJzOjpJbXBs
aWNpdEFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgICAgICAgICBqaXQuc3Rv
cmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihyZXBsYWNlKSwgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgICAgICAgICAgaml0Lm1vdmUoR1BS
SW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAKICAgICAgICAg
ICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CkBAIC0yMzU1LDcgKzIzNTUsNyBAQCB2b2lk
IHRlc3RMb2FkUHJlUG9zdEluZGV4NjQoKQogCiAgICAgICAgICAgICAvLyByZXMgPSAqKytwMTsg
KnAxID0gNDsgcmV0dXJuIHJlczsKICAgICAgICAgICAgIGppdC5sb2FkNjQoQ0NhbGxIZWxwZXJz
OjpQcmVJbmRleEFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBpbmRleCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMSk7Ci0gICAgICAgICAgICBqaXQuc3RvcmU2NChDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW02NChyZXBsYWNlKSwgQ0NhbGxIZWxwZXJzOjpJbXBsaWNpdEFkZHJlc3MoR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSk7CisgICAgICAgICAgICBqaXQuc3RvcmU2NChDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW02NChyZXBsYWNlKSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpOwogICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6YXJndW1lbnRHUFIx
LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAKICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVw
aWxvZ3VlKGppdCk7CkBAIC0yMzczLDcgKzIzNzMsNyBAQCB2b2lkIHRlc3RMb2FkUHJlUG9zdElu
ZGV4NjQoKQogCiAgICAgICAgICAgICAvLyByZXMgPSAqcDIrKzsgKnAyID0gNTsgcmV0dXJuIHJl
czsKICAgICAgICAgICAgIGppdC5sb2FkNjQoQ0NhbGxIZWxwZXJzOjpQb3N0SW5kZXhBZGRyZXNz
KEdQUkluZm86OmFyZ3VtZW50R1BSMCwgaW5kZXgpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwot
ICAgICAgICAgICAgaml0LnN0b3JlNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQocmVwbGFj
ZSksIENDYWxsSGVscGVyczo6SW1wbGljaXRBZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
OworICAgICAgICAgICAgaml0LnN0b3JlNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQocmVw
bGFjZSksIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAg
ICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIpOwogCiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJ
KHJldmlzaW9uIDI4MzkyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTE4LDcgKzE5MTgsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nU2xpY2UoCiAKICAgICBtX2ppdC5sc2hpZnQzMihN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHNpemVvZih2b2lkKikgPT0gNCA/IDIgOiAzKSwg
dGVtcEdQUik7CiAgICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW1QdHIodm0uc21hbGxTdHJpbmdz
LnNpbmdsZUNoYXJhY3RlclN0cmluZ3MoKSksIHRlbXBHUFIpOwotICAgIG1faml0LmxvYWRQdHIo
dGVtcEdQUiwgdGVtcEdQUik7CisgICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJl
c3ModGVtcEdQUiksIHRlbXBHUFIpOwogCiAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1Bh
dGhDYWxsKGJpZ0NoYXJhY3RlciwgdGhpcywgb3BlcmF0aW9uU2luZ2xlQ2hhcmFjdGVyU3RyaW5n
LCB0ZW1wR1BSLCAmdm0sIHRlbXBHUFIpKTsKIApAQCAtMjYzNCw3ICsyNjM0LDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TdAogICAgIFZNJiB2bSA9IHRoaXMtPnZt
KCk7CiAgICAgbV9qaXQubHNoaWZ0MzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihzaXpl
b2Yodm9pZCopID09IDQgPyAyIDogMyksIHNjcmF0Y2hSZWcpOwogICAgIG1faml0LmFkZFB0cihU
cnVzdGVkSW1tUHRyKHZtLnNtYWxsU3RyaW5ncy5zaW5nbGVDaGFyYWN0ZXJTdHJpbmdzKCkpLCBz
Y3JhdGNoUmVnKTsKLSAgICBtX2ppdC5sb2FkUHRyKHNjcmF0Y2hSZWcsIHNjcmF0Y2hSZWcpOwor
ICAgIG1faml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hSZWcpLCBzY3Jh
dGNoUmVnKTsKIAogICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAogICAgICAgICBzbG93UGF0aENh
bGwoCkBAIC0xNTMzMiw3ICsxNTMzMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVD
bGVhckNhdGNoTG8KICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKICAgICBHUFJSZWcg
c2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3ByKCk7CiAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRy
KHNjcmF0Y2hCdWZmZXItPmFkZHJlc3NPZkFjdGl2ZUxlbmd0aCgpKSwgc2NyYXRjaEdQUik7Ci0g
ICAgbV9qaXQuc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihudWxscHRyKSwgc2NyYXRjaEdQUik7Cisg
ICAgbV9qaXQuc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihudWxscHRyKSwgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHNjcmF0Y2hHUFIpKTsKICAgICBub1Jlc3VsdChub2RlKTsKIH0KIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb2NhdGlvbi5jcHAJKHJldmlzaW9uIDI4MzkyMykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG9jYXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05OSwxMCArOTksMTAgQEAgdm9pZCBMb2NhdGlvbjo6cmVzdG9yZUludG8oTWFjcm9B
c3NlbWJsZQogICAgICAgICAgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRl
clJlZ2lzdGVyLCByZXN1bHQpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSBudW1GcmFtZXNUb1BvcCAtIDE7IGktLTspCi0gICAgICAgICAgICAgICAgaml0Lmxv
YWRQdHIocmVzdWx0LCByZXN1bHQpOworICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdCksIHJlc3VsdCk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIGlmIChncHIoKSA9PSBNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIp
Ci0gICAgICAgICAgICAgICAgaml0LmxvYWRQdHIocmVzdWx0LCByZXN1bHQpOworICAgICAgICAg
ICAgICAgIGppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdCksIHJlc3Vs
dCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgaml0LmFkZFB0cihNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzaXplb2Yodm9pZCopICogMiksIHJlc3VsdCk7CiAgICAg
ICAgIH0gZWxzZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAko
cmV2aXNpb24gMjgzOTIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8SklUVGh1bmtQdHIKICAgICAKICAgICBzYXZlQWxsUmVnaXN0ZXJzKGppdCwgYnVm
ZmVyKTsKIAotICAgIGppdC5sb2FkUHRyKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOworICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhmcmFt
ZVBvaW50ZXJSZWdpc3RlciksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgaml0LnBlZWso
CiAgICAgICAgIEdQUkluZm86OmFyZ3VtZW50R1BSMSwKICAgICAgICAgKHN0YWNrTWlzYWxpZ25t
ZW50IC0gcHVzaFRvU2F2ZUJ5dGVPZmZzZXQpIC8gc2l6ZW9mKHZvaWQqKSk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCShyZXZpc2lvbiAy
ODM5MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEwOTYsNyArMTA5Niw3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJz
OjpkZWJ1Z0NhbGwoVk0mIHZtLCAKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBGUFJJ
bmZvOjpudW1iZXJPZlJlZ2lzdGVyczsgKytpKSB7CiAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0
cihidWZmZXIgKyBHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyArIGkpLCBHUFJJbmZvOjpyZWdU
MCk7Ci0gICAgICAgIHN0b3JlRG91YmxlKEZQUkluZm86OnRvUmVnaXN0ZXIoaSksIEdQUkluZm86
OnJlZ1QwKTsKKyAgICAgICAgc3RvcmVEb3VibGUoRlBSSW5mbzo6dG9SZWdpc3RlcihpKSwgQWRk
cmVzcyhHUFJJbmZvOjpyZWdUMCkpOwogICAgIH0KIAogI2lmIENQVShYODZfNjQpIHx8IENQVShB
Uk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpIHx8IENQVShNSVBTKQpAQCAtMTExMyw3ICsxMTEzLDcg
QEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmRlYnVnQ2FsbChWTSYgdm0sIAogCiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IEZQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzOyArK2kpIHsKICAg
ICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGJ1ZmZlciArIEdQUkluZm86Om51bWJlck9mUmVnaXN0
ZXJzICsgaSksIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgbG9hZERvdWJsZShHUFJJbmZvOjpy
ZWdUMCwgRlBSSW5mbzo6dG9SZWdpc3RlcihpKSk7CisgICAgICAgIGxvYWREb3VibGUoQWRkcmVz
cyhHUFJJbmZvOjpyZWdUMCksIEZQUkluZm86OnRvUmVnaXN0ZXIoaSkpOwogICAgIH0KICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnM7ICsraSkg
ewogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0xMTYzLDcgKzExNjMsNyBAQCB2b2lkIEFzc2VtYmx5
SGVscGVyczo6c2FuaXRpemVTdGFja0lubGluCiAgICAgbG9hZFB0cih2bS5hZGRyZXNzT2ZMYXN0
U3RhY2tUb3AoKSwgc2NyYXRjaCk7CiAgICAgSnVtcCBkb25lID0gYnJhbmNoUHRyKEJlbG93T3JF
cXVhbCwgc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNjcmF0Y2gpOwogICAgIExhYmVsIGxvb3AgPSBs
YWJlbCgpOwotICAgIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIHNjcmF0Y2gpOwor
ICAgIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIEFkZHJlc3Moc2NyYXRjaCkpOwog
ICAgIGFkZFB0cihUcnVzdGVkSW1tUHRyKHNpemVvZih2b2lkKikpLCBzY3JhdGNoKTsKICAgICBi
cmFuY2hQdHIoQWJvdmUsIHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzY3JhdGNoKS5saW5rVG8obG9v
cCwgdGhpcyk7CiAgICAgZG9uZS5saW5rKHRoaXMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHJldmlzaW9uIDI4MzkyMykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTg1LDcgKzIxODUsNyBAQCB2b2lkIEpJVDo6ZW1pdEdldFZhckZyb21Qb2lu
dGVyKEpTVmFsdWUqCiB2b2lkIEpJVDo6ZW1pdEdldFZhckZyb21JbmRpcmVjdFBvaW50ZXIoSlNW
YWx1ZSoqIG9wZXJhbmQsIEdQUlJlZyByZWcpCiB7CiAgICAgbG9hZFB0cihvcGVyYW5kLCByZWcp
OwotICAgIGxvYWRQdHIocmVnLCByZWcpOworICAgIGxvYWRQdHIoQWRkcmVzcyhyZWcpLCByZWcp
OwogfQogCiB2b2lkIEpJVDo6ZW1pdEdldENsb3N1cmVWYXIoVmlydHVhbFJlZ2lzdGVyIHNjb3Bl
LCB1aW50cHRyX3Qgb3BlcmFuZCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1
bmtHZW5lcmF0b3JzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAJKHJldmlzaW9uIDI4MzkyMykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAwLDcg
KzYwMCw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gYXIKIAogICAg
IC8vIE1vdmUgY3VycmVudCBmcmFtZSBkb3duIGFyZ3VtZW50R1BSMCBudW1iZXIgb2Ygc2xvdHMK
ICAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgY29weUxvb3Aoaml0LmxhYmVsKCkpOwotICAgIGpp
dC5sb2FkNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBleHRyYVRlbXApOworICAgIGppdC5sb2Fk
NjQoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMyksIGV4dHJhVGVt
cCk7CiAgICAgaml0LnN0b3JlNjQoZXh0cmFUZW1wLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4
KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCwgSlNJ
bnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklU
OjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CiAgICAgaml0LmJyYW5j
aFN1YjMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZElt
bTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIyKS5saW5rVG8oY29weUxvb3AsICZq
aXQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcAko
cmV2aXNpb24gMjgzOTIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRp
bmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCw3ICs3NCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxXYXNtRW50cnkKICAgICB9CiAKICAgICAvLyBUYWlsIGNhbGwgaW50byB0
aGUgY2FsbGVlIFdlYkFzc2VtYmx5IGZ1bmN0aW9uLgotICAgIGppdC5sb2FkUHRyKHNjcmF0Y2gs
IHNjcmF0Y2gpOworICAgIGppdC5sb2FkUHRyKEpJVDo6QWRkcmVzcyhzY3JhdGNoKSwgc2NyYXRj
aCk7CiAgICAgaml0LmZhckp1bXAoc2NyYXRjaCwgV2FzbUVudHJ5UHRyVGFnKTsKIAogICAgIExp
bmtCdWZmZXIgcGF0Y2hCdWZmZXIoaml0LCBHTE9CQUxfVEhVTktfSUQsIExpbmtCdWZmZXI6OlBy
b2ZpbGU6Oldhc21UaHVuaywgSklUQ29tcGlsYXRpb25DYW5GYWlsKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjk3LDcg
KzY5Nyw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckoKIAogICAg
ICAgICBKdW1wTGlzdCBub3RVbmljb2RlOwogCi0gICAgICAgIGxvYWQxNlVuYWxpZ25lZChyZWdV
bmljb2RlSW5wdXRBbmRUcmFpbCwgcmVzdWx0UmVnKTsKKyAgICAgICAgbG9hZDE2VW5hbGlnbmVk
KEFkZHJlc3MocmVnVW5pY29kZUlucHV0QW5kVHJhaWwpLCByZXN1bHRSZWcpOwogCiAgICAgICAg
IC8vIElzIHRoZSBjaGFyYWN0ZXIgYSBsZWFkaW5nIHN1cnJvZ2F0ZT8KICAgICAgICAgYW5kMzIo
c3Vycm9nYXRlVGFnTWFzaywgcmVzdWx0UmVnLCB1bmljb2RlVGVtcCk7CkBAIC04NzksNyArODc5
LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySgogICAgIHsKICAg
ICAgICAgQVNTRVJUKCFtX3BhdHRlcm4ubV9ib2R5LT5tX2hhc0ZpeGVkU2l6ZSk7CiAgICAgICAg
IGlmIChtX2NvbXBpbGVNb2RlID09IEpJVENvbXBpbGVNb2RlOjpJbmNsdWRlU3VicGF0dGVybnMp
Ci0gICAgICAgICAgICBzdG9yZTMyKHJlZywgb3V0cHV0KTsKKyAgICAgICAgICAgIHN0b3JlMzIo
cmVnLCBBZGRyZXNzKG91dHB1dCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtb3ZlKHJl
Zywgb3V0cHV0KTsKICAgICB9CkBAIC04ODcsNyArODg3LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRv
ciBmaW5hbCA6IHB1YmxpYyBZYXJySgogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX3BhdHRlcm4u
bV9ib2R5LT5tX2hhc0ZpeGVkU2l6ZSk7CiAgICAgICAgIGlmIChtX2NvbXBpbGVNb2RlID09IEpJ
VENvbXBpbGVNb2RlOjpJbmNsdWRlU3VicGF0dGVybnMpCi0gICAgICAgICAgICBsb2FkMzIob3V0
cHV0LCByZWcpOworICAgICAgICAgICAgbG9hZDMyKEFkZHJlc3Mob3V0cHV0KSwgcmVnKTsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgbW92ZShvdXRwdXQsIHJlZyk7CiAgICAgfQpAQCAtMjgz
MCw3ICsyODMwLDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySgog
CiAgICAgICAgICAgICAgICAgICAgIGxvYWRGcm9tRnJhbWUocGFyZW50aGVzZXNGcmFtZUxvY2F0
aW9uICsgQmFja1RyYWNrSW5mb1BhcmVudGhlc2VzOjpwYXJlbkNvbnRleHRIZWFkSW5kZXgoKSwg
Y3VyclBhcmVuQ29udGV4dFJlZyk7CiAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRlUGFyZW5D
b250ZXh0KG5ld1BhcmVuQ29udGV4dFJlZyk7Ci0gICAgICAgICAgICAgICAgICAgIHN0b3JlUHRy
KGN1cnJQYXJlbkNvbnRleHRSZWcsIG5ld1BhcmVuQ29udGV4dFJlZyk7CisgICAgICAgICAgICAg
ICAgICAgIHN0b3JlUHRyKGN1cnJQYXJlbkNvbnRleHRSZWcsIEFkZHJlc3MobmV3UGFyZW5Db250
ZXh0UmVnKSk7CiAgICAgICAgICAgICAgICAgICAgIHN0b3JlVG9GcmFtZShuZXdQYXJlbkNvbnRl
eHRSZWcsIHBhcmVudGhlc2VzRnJhbWVMb2NhdGlvbiArIEJhY2tUcmFja0luZm9QYXJlbnRoZXNl
czo6cGFyZW5Db250ZXh0SGVhZEluZGV4KCkpOwogICAgICAgICAgICAgICAgICAgICBzYXZlUGFy
ZW5Db250ZXh0KG5ld1BhcmVuQ29udGV4dFJlZywgcmVnVDIsIHRlcm0tPnBhcmVudGhlc2VzLnN1
YnBhdHRlcm5JZCwgdGVybS0+cGFyZW50aGVzZXMubGFzdFN1YnBhdHRlcm5JZCwgcGFyZW50aGVz
ZXNGcmFtZUxvY2F0aW9uKTsKICAgICAgICAgICAgICAgICAgICAgc3RvcmVUb0ZyYW1lKGluZGV4
LCBwYXJlbnRoZXNlc0ZyYW1lTG9jYXRpb24gKyBCYWNrVHJhY2tJbmZvUGFyZW50aGVzZXM6OmJl
Z2luSW5kZXgoKSk7Cg==
</data>
<flag name="commit-queue"
          id="464942"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440863</attachid>
            <date>2021-10-11 17:09:23 -0700</date>
            <delta_ts>2021-10-11 18:55:38 -0700</delta_ts>
            <desc>test EWS</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>67983</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzOTQ5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1OSBA
QAorMjAyMS0xMC0xMSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmUgSW1wbGljaXRBZGRyZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzA4MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODI2MzE4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYXNz
ZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QWJzdHJhY3RN
YWNyb0Fzc2VtYmxlcjo6SW1wbGljaXRBZGRyZXNzOjpJbXBsaWNpdEFkZHJlc3MpOiBEZWxldGVk
LgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlcjo6cHVzaFRvU2F2ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
Ojpwb3BUb1Jlc3RvcmUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6bG9hZFB0cik6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpzdG9yZVB0cik6CisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk02NDo6bG9hZDY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9h
ZDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZDE2KToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZDE2VW5hbGlnbmVkKToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZDE2U2lnbmVkRXh0ZW5kVG8zMik6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWQ4KToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NDo6bG9hZDhTaWduZWRFeHRlbmRUbzMyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmU2NCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNNjQ6OnN0b3JlMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpz
dG9yZTE2KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmU4KToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZERvdWJsZSk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OnN0b3JlRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk02NDo6c3RvcmVGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6
OnB1c2hUb1NhdmVJbW1lZGlhdGVXaXRob3V0VG91Y2hpbmdSZWdpc3RlcnMpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpwb3BUb1Jlc3RvcmUpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTTY0OjpwdXNoVG9TYXZlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk02NDo6c3RvcmVQdHJXaXRoUGF0Y2gpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
YmxlckFSTTY0Ojpsb2FkQWNxOFNpZ25lZEV4dGVuZFRvMzIpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlckFSTTY0Ojpsb2FkQWNxOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNNjQ6OnN0b3JlUmVsOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6Omxv
YWRBY3ExNlNpZ25lZEV4dGVuZFRvMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TTY0Ojpsb2FkQWNxMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9y
ZVJlbDE2KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZEFjcTMyKToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZEFjcTY0KToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVSZWwzMik6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlUmVsNjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
YmxlckFSTTY0Ojpsb2FkTGluazgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0
Ojpsb2FkTGlua0FjcTgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9y
ZUNvbmQ4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVDb25kUmVs
OCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRMaW5rMTYpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkTGlua0FjcTE2KToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVDb25kMTYpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZUNvbmRSZWwxNik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmxvYWRMaW5rMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTTY0Ojpsb2FkTGlua0FjcTMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02
NDo6c3RvcmVDb25kMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9y
ZUNvbmRSZWwzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRMaW5r
NjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkTGlua0FjcTY0KToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVDb25kNjQpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZUNvbmRSZWw2NCk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmV4dHJhY3RTaW1wbGVBZGRyZXNzKToKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NEUuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJBUk02NEU6OmF0b21pY1hjaGdBZGQ4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk02NEU6OmF0b21pY1hjaGdBZGQxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNNjRFOjphdG9taWNYY2hnQWRkMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTTY0RTo6YXRvbWljWGNoZ0FkZDY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJB
Uk02NEU6OmF0b21pY1hjaGdYb3I4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02
NEU6OmF0b21pY1hjaGdYb3IxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRF
OjphdG9taWNYY2hnWG9yMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6
YXRvbWljWGNoZ1hvcjY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NEU6OmF0
b21pY1hjaGdPcjgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWlj
WGNoZ09yMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljWGNo
Z09yMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljWGNoZ09y
NjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljWGNoZ0NsZWFy
OCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnQ2xlYXIx
Nik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnQ2xlYXIz
Mik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnQ2xlYXI2
NCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnOCk6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnMTYpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljWGNoZzMyKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk02NEU6OmF0b21pY1hjaGc2NCk6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNTdHJvbmdDQVM4KToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NEU6OmF0b21pY1N0cm9uZ0NBUzE2KToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NEU6OmF0b21pY1N0cm9uZ0NBUzMyKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NEU6OmF0b21pY1N0cm9uZ0NBUzY0KToKKyAgICAgICAgKiBhc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TXY3OjpvcjMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6bG9hZDMyKToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6bG9hZDgpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpsb2FkOFNpZ25lZEV4dGVuZFRvMzIpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpsb2FkMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlckFSTXY3Ojpsb2FkMTZTaWduZWRFeHRlbmRUbzMyKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk12Nzo6c3RvcmUzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNdjc6OnN0b3JlMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpsb2Fk
RG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6bG9hZEZsb2F0KToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3RvcmVEb3VibGUpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpzdG9yZUZsb2F0KToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk12Nzo6c3RvcmVQdHJXaXRoUGF0Y2gpOgorICAgICAgICAqIGFzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJN
SVBTOjpsb2FkOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bG9hZDhTaWdu
ZWRFeHRlbmRUbzMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkMzIp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWQxNik6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3RvcmU4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJNSVBTOjpzdG9yZTE2KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpz
dG9yZTMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzdG9yZVB0cldpdGhQ
YXRjaCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bG9hZEZsb2F0KToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkRG91YmxlKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpzdG9yZUZsb2F0KToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJNSVBTOjpzdG9yZURvdWJsZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Ojpsb2FkMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6bG9hZDE2
VW5hbGlnbmVkKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmxvYWQ4
KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmxvYWQ4U2lnbmVkRXh0
ZW5kVG8zMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpsb2FkMTYp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3RvcmUzMik6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpzdG9yZTE2KToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmxvYWREb3VibGUpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6bG9hZEZsb2F0KToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJYODZDb21tb246OnN0b3JlRG91YmxlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJYODZDb21tb246OnN0b3JlRmxvYXQpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6bG9h
ZDgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6bG9hZDMyKToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnN0b3JlMzIpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlclg4Nl82NDo6bG9hZDY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJYODZfNjQ6OnN0b3JlNjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6
c3RvcmVQdHJXaXRoUGF0Y2gpOgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6Cisg
ICAgICAgIChKU0M6OnRlc3RCcmFuY2hUcnVuY2F0ZURvdWJsZVRvSW50MzIpOgorICAgICAgICAo
SlNDOjp0ZXN0TG9hZFByZVBvc3RJbmRleDMyKToKKyAgICAgICAgKEpTQzo6dGVzdExvYWRQcmVQ
b3N0SW5kZXg2NCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ1NsaWNlKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TdHJpbmcpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2xlYXJDYXRjaExvY2Fs
cyk6CisgICAgICAgICogZnRsL0ZUTExvY2F0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpM
b2NhdGlvbjo6cmVzdG9yZUludG8gY29uc3QpOgorICAgICAgICAqIGZ0bC9GVExUaHVua3MuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OmdlbmVyaWNHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IpOgor
ICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJs
eUhlbHBlcnM6OmRlYnVnQ2FsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6c2Fu
aXRpemVTdGFja0lubGluZSk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0R2V0VmFyRnJvbUluZGlyZWN0UG9pbnRlcik6CisgICAg
ICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5jcHA6CisgICAgICAgIChKU0M6OmFyaXR5Rml4dXBH
ZW5lcmF0b3IpOgorICAgICAgICAqIHdhc20vV2FzbUJpbmRpbmcuY3BwOgorICAgICAgICAoSlND
OjpXYXNtOjp3YXNtVG9XYXNtKToKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorCiAyMDIx
LTEwLTExICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0
IGJyYW5jaCBhcm91bmQgcmVnaXN0ZXIgYWxsb2NhdGlvbiBpbiBERkcgZW51bWVyYXRvciBnZXQg
YnkgdmFsIGFuZCBwYXNzIGluIHRoZSByaWdodCBMVmFsdWUgdHlwZSB0byBzdHJpY3RJbnQ1MlRv
SlNWYWx1ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHJldmlzaW9uIDI4MzkyMykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzksMzkgKzE3OSw2IEBAIHB1YmxpYzoKICAgICAgICAgaW50cHRyX3Qg
b2Zmc2V0OwogICAgIH07CiAKLSAgICAvLyBJbXBsaWNpdEFkZHJlc3M6Ci0gICAgLy8KLSAgICAv
LyBUaGlzIGNsYXNzIGlzIHVzZWQgZm9yIGV4cGxpY2l0ICdsb2FkJyBhbmQgJ3N0b3JlJyBvcGVy
YXRpb25zCi0gICAgLy8gKGFzIG9wcG9zZWQgdG8gc2l0dWF0aW9ucyBpbiB3aGljaCBhIG1lbW9y
eSBvcGVyYW5kIGlzIHByb3ZpZGVkCi0gICAgLy8gdG8gYSBnZW5lcmljIG9wZXJhdGlvbiwgc3Vj
aCBhcyBhbiBpbnRlZ2VyIGFyaXRobWV0aWMgaW5zdHJ1Y3Rpb24pLgotICAgIC8vCi0gICAgLy8g
SW4gdGhlIGNhc2Ugb2YgYSBsb2FkIChvciBzdG9yZSkgb3BlcmF0aW9uIHdlIHdhbnQgdG8gcGVy
bWl0Ci0gICAgLy8gYWRkcmVzc2VzIHRvIGJlIGltcGxpY2l0bHkgY29uc3RydWN0ZWQsIGUuZy4g
dGhlIHR3byBjYWxsczoKLSAgICAvLwotICAgIC8vICAgICBsb2FkMzIoQWRkcmVzcyhhZGRyUmVn
KSwgZGVzdFJlZyk7Ci0gICAgLy8gICAgIGxvYWQzMihhZGRyUmVnLCBkZXN0UmVnKTsKLSAgICAv
LwotICAgIC8vIEFyZSBlcXVpdmFsZW50LCBhbmQgdGhlIGV4cGxpY2l0IHdyYXBwaW5nIG9mIHRo
ZSBBZGRyZXNzIGluIHRoZSBmb3JtZXIKLSAgICAvLyBpcyB1bm5lY2Vzc2FyeS4KLSAgICBzdHJ1
Y3QgSW1wbGljaXRBZGRyZXNzIHsKLSAgICAgICAgSW1wbGljaXRBZGRyZXNzKFJlZ2lzdGVySUQg
YmFzZSkKLSAgICAgICAgICAgIDogYmFzZShiYXNlKQotICAgICAgICAgICAgLCBvZmZzZXQoMCkK
LSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGJhc2UgIT0gUmVnaXN0ZXJJRDo6SW52YWxp
ZEdQUlJlZyk7Ci0gICAgICAgIH0KLQotICAgICAgICBJbXBsaWNpdEFkZHJlc3MoQWRkcmVzcyBh
ZGRyZXNzKQotICAgICAgICAgICAgOiBiYXNlKGFkZHJlc3MuYmFzZSkKLSAgICAgICAgICAgICwg
b2Zmc2V0KGFkZHJlc3Mub2Zmc2V0KQotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoYmFz
ZSAhPSBSZWdpc3RlcklEOjpJbnZhbGlkR1BSUmVnKTsKLSAgICAgICAgfQotCi0gICAgICAgIFJl
Z2lzdGVySUQgYmFzZTsKLSAgICAgICAgaW50MzJfdCBvZmZzZXQ7Ci0gICAgfTsKLQogICAgIC8v
IEJhc2VJbmRleDoKICAgICAvLwogICAgIC8vIERlc2NyaWJlcyBhIGNvbXBsZXggYWRkcmVzc2lu
ZyBtb2RlLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMjgzOTIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjksMTEgKzMy
OSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwdXNoVG9TYXZlKEZQUmVnaXN0ZXJJRCBzcmMpCiAg
ICAgewogICAgICAgICBzdWJQdHIoVHJ1c3RlZEltbTMyKHNpemVvZihkb3VibGUpKSwgc3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOwotICAgICAgICBzdG9yZURvdWJsZShzcmMsIHN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsKKyAgICAgICAgc3RvcmVEb3VibGUoc3JjLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJl
Z2lzdGVyKSk7CiAgICAgfQogICAgIHZvaWQgcG9wVG9SZXN0b3JlKEZQUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKLSAgICAgICAgbG9hZERvdWJsZShzdGFja1BvaW50ZXJSZWdpc3RlciwgZGVzdCk7
CisgICAgICAgIGxvYWREb3VibGUoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciksIGRlc3Qp
OwogICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHNpemVvZihkb3VibGUpKSwgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOwogICAgIH0KICAgICAKQEAgLTcwMiw3ICs3MDIsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHhvcjMyKHNyYywgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkUHRyKEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkUHRyKEFk
ZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbG9hZDMyKGFk
ZHJlc3MsIGRlc3QpOwogICAgIH0KQEAgLTc1Miw3ICs3NTIsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGNvbXBhcmUzMihjb25kLCBsZWZ0LCByaWdodCwgZGVzdCk7CiAgICAgfQogICAgIAotICAgIHZv
aWQgc3RvcmVQdHIoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAg
IHZvaWQgc3RvcmVQdHIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIHN0b3JlMzIoc3JjLCBhZGRyZXNzKTsKICAgICB9CkBAIC03NjcsNyArNzY3LDcgQEAg
cHVibGljOgogICAgICAgICBzdG9yZTMyKHNyYywgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9p
ZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisg
ICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAg
IHsKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoaW1tKSwgYWRkcmVzcyk7CiAgICAgfQpA
QCAtNzgyLDcgKzc4Miw3IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIo
aW1tKSwgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tMzIg
aW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlUHRyKFRydXN0ZWRJ
bW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIHN0b3JlMzIoaW1tLCBh
ZGRyZXNzKTsKICAgICB9CkBAIC0xMDUwLDcgKzEwNTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHhv
cjY0KFRydXN0ZWRJbW02NChpbW0pLCBzcmNEZXN0KTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWRQ
dHIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxv
YWRQdHIoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBs
b2FkNjQoYWRkcmVzcywgZGVzdCk7CiAgICAgfQpAQCAtMTA4OSw3ICsxMDg5LDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gbG9hZDY0V2l0aENvbXBhY3RBZGRyZXNzT2Zmc2V0UGF0Y2goYWRk
cmVzcywgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihSZWdpc3RlcklEIHNyYywg
SW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZVB0cihSZWdpc3RlcklEIHNy
YywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgc3RvcmU2NChzcmMsIGFkZHJlc3Mp
OwogICAgIH0KQEAgLTExMDQsMTIgKzExMDQsMTIgQEAgcHVibGljOgogICAgICAgICBzdG9yZTY0
KHNyYywgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRy
IGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZVB0cihUcnVzdGVk
SW1tUHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgc3RvcmU2NChUcnVz
dGVkSW1tNjQoaW1tKSwgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihUcnVz
dGVkSW1tMzIgaW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlUHRy
KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIHN0b3Jl
NjQoaW1tLCBhZGRyZXNzKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAkocmV2aXNpb24gMjgzOTIz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1MjIsNyArMTUyMiw3IEBAIHB1YmxpYzoKICAgICAgICAg
fQogICAgIH0KIAotICAgIHZvaWQgbG9hZDY0KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkNjQoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklE
IGRlc3QpCiAgICAgewogICAgICAgICBpZiAodHJ5TG9hZFdpdGhPZmZzZXQ8NjQ+KGRlc3QsIGFk
ZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTY3
Nyw3ICsxNjc3LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAot
ICAgIHZvaWQgbG9hZDMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3Qp
CisgICAgdm9pZCBsb2FkMzIoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBpZiAodHJ5TG9hZFdpdGhPZmZzZXQ8MzI+KGRlc3QsIGFkZHJlc3MuYmFzZSwg
YWRkcmVzcy5vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTczNiw3ICsxNzM2LDcg
QEAgcHVibGljOgogICAgICAgICBsb2FkMzIoYWRkcmVzcywgZGVzdCk7CiAgICAgfQogCi0gICAg
dm9pZCBsb2FkMTYoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB2b2lkIGxvYWQxNihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmICh0cnlMb2FkV2l0aE9mZnNldDwxNj4oZGVzdCwgYWRkcmVzcy5iYXNlLCBhZGRy
ZXNzLm9mZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzcyLDcgKzE3NzIsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGxvYWQ8MTY+KGFkZHJlc3MsIGRlc3QpOwogICAgIH0KIAotICAgIHZv
aWQgbG9hZDE2VW5hbGlnbmVkKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRl
c3QpCisgICAgdm9pZCBsb2FkMTZVbmFsaWduZWQoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklE
IGRlc3QpCiAgICAgewogICAgICAgICBsb2FkMTYoYWRkcmVzcywgZGVzdCk7CiAgICAgfQpAQCAt
MTc4Miw3ICsxNzgyLDcgQEAgcHVibGljOgogICAgICAgICBsb2FkMTYoYWRkcmVzcywgZGVzdCk7
CiAgICAgfQogCi0gICAgdm9pZCBsb2FkMTZTaWduZWRFeHRlbmRUbzMyKEltcGxpY2l0QWRkcmVz
cyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkMTZTaWduZWRFeHRlbmRU
bzMyKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaWYg
KHRyeUxvYWRTaWduZWRXaXRoT2Zmc2V0PDE2PihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mu
b2Zmc2V0KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE4MTUsNyArMTgxNSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3h0aDwzMj4oZGVzdCwgc3JjKTsKICAgICB9CiAKLSAg
ICB2b2lkIGxvYWQ4KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisg
ICAgdm9pZCBsb2FkOChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmICh0cnlMb2FkV2l0aE9mZnNldDw4PihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJl
c3Mub2Zmc2V0KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE4NTEsNyArMTg1MSw3IEBAIHB1
YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubGRyYihkZXN0LCBzcmMsIHNpbW0pOwogICAgIH0K
IAotICAgIHZvaWQgbG9hZDhTaWduZWRFeHRlbmRUbzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNz
LCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkOFNpZ25lZEV4dGVuZFRvMzIoQWRkcmVz
cyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAodHJ5TG9hZFNp
Z25lZFdpdGhPZmZzZXQ8OD4oZGVzdCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCiAg
ICAgICAgICAgICByZXR1cm47CkBAIC0xODkyLDcgKzE4OTIsNyBAQCBwdWJsaWM6CiAgICAgICAg
IG1fYXNzZW1ibGVyLnN4dGI8MzI+KGRlc3QsIHNyYyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9y
ZTY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0
b3JlNjQoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIGlm
ICh0cnlTdG9yZVdpdGhPZmZzZXQ8NjQ+KHNyYywgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNl
dCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xOTQxLDEyICsxOTQxLDEyIEBAIHB1YmxpYzoK
ICAgICAgICAgc3RvcmU2NChkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICB9CiAKLSAg
ICB2b2lkIHN0b3JlNjQoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Mp
CisgICAgdm9pZCBzdG9yZTY0KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAg
ICB7CiAgICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTY0KGltbS5tX3ZhbHVlKSwgYWRkcmVzcyk7
CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTY0KFRydXN0ZWRJbW02NCBpbW0sIEltcGxpY2l0QWRk
cmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmU2NChUcnVzdGVkSW1tNjQgaW1tLCBBZGRyZXNz
IGFkZHJlc3MpCiAgICAgewogICAgICAgICBpZiAoIWltbS5tX3ZhbHVlKSB7CiAgICAgICAgICAg
ICBzdG9yZTY0KEFSTTY0UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7CkBAIC0yMDM2LDcgKzIwMzYs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlRG91YmxlKHNyYzIsIEFkZHJlc3MoZGVzdCwgb2Zm
c2V0Lm1fdmFsdWUgKyA4KSk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVySUQg
c3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMzIoUmVnaXN0ZXJJ
RCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIGlmICh0cnlTdG9yZVdpdGhP
ZmZzZXQ8MzI+KHNyYywgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0yMDY0LDcgKzIwNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlPDMy
PihzcmMsIGFkZHJlc3MpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmUzMihUcnVzdGVkSW1tMzIg
aW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZElt
bTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKCFpbW0ubV92YWx1
ZSkgewogICAgICAgICAgICAgc3RvcmUzMihBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwpA
QCAtMjExNSw3ICsyMTE1LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbGFiZWw7CiAgICAg
fQogCi0gICAgdm9pZCBzdG9yZTE2KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRk
cmVzcykKKyAgICB2b2lkIHN0b3JlMTYoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykK
ICAgICB7CiAgICAgICAgIGlmICh0cnlTdG9yZVdpdGhPZmZzZXQ8MTY+KHNyYywgYWRkcmVzcy5i
YXNlLCBhZGRyZXNzLm9mZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yMTc0LDcgKzIx
NzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0cmIoc3JjLCBtZW1vcnlUZW1w
UmVnaXN0ZXIsIDApOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmU4KFJlZ2lzdGVySUQgc3JjLCBJ
bXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlOChSZWdpc3RlcklEIHNyYywg
QWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKHRyeVN0b3JlV2l0aE9mZnNldDw4
PihzcmMsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMjE5NSw3ICsyMTk1LDcgQEAgcHVibGljOgogICAgICAgICBzdG9yZTgoZGF0YVRlbXBS
ZWdpc3RlciwgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMy
IGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTgoVHJ1c3RlZElt
bTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgVHJ1c3RlZEltbTMyIGlt
bTgoc3RhdGljX2Nhc3Q8aW50OF90PihpbW0ubV92YWx1ZSkpOwogICAgICAgICBpZiAoIWltbTgu
bV92YWx1ZSkgewpAQCAtMjQ2MCw3ICsyNDYwLDcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2Vt
Ymxlci5mZGl2PDMyPihkZXN0LCBvcDEsIG9wMik7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkRG91
YmxlKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lk
IGxvYWREb3VibGUoQWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmICh0cnlMb2FkV2l0aE9mZnNldDw2ND4oZGVzdCwgYWRkcmVzcy5iYXNlLCBhZGRy
ZXNzLm9mZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yNDg5LDcgKzI0ODksNyBAQCBw
dWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkcjw2ND4oZGVzdCwgbWVtb3J5VGVtcFJlZ2lz
dGVyLCBBUk02NFJlZ2lzdGVyczo6enIpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZEZsb2F0KElt
cGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRG
bG9hdChBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAg
aWYgKHRyeUxvYWRXaXRoT2Zmc2V0PDMyPihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zm
c2V0KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTI3NDIsNyArMjc0Miw3IEBAIHB1YmxpYzoK
ICAgICAgICAgbV9hc3NlbWJsZXIuZnNxcnQ8MzI+KGRlc3QsIHNyYyk7CiAgICAgfQogCi0gICAg
dm9pZCBzdG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVz
cykKKyAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVz
cykKICAgICB7CiAgICAgICAgIGlmICh0cnlTdG9yZVdpdGhPZmZzZXQ8NjQ+KHNyYywgYWRkcmVz
cy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yNzcxLDcg
KzI3NzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0cjw2ND4oc3JjLCBhZGRy
ZXNzLmJhc2UsIG1lbW9yeVRlbXBSZWdpc3Rlcik7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZUZs
b2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQg
c3RvcmVGbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAg
ICAgICBpZiAodHJ5U3RvcmVXaXRoT2Zmc2V0PDMyPihzcmMsIGFkZHJlc3MuYmFzZSwgYWRkcmVz
cy5vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjkyOCw3ICsyOTI4LDcgQEAgcHVi
bGljOgogCiAgICAgICAgIHB1c2hQYWlyKHJlZywgcmVnKTsKICAgICAgICAgbW92ZShpbW0sIHJl
Zyk7Ci0gICAgICAgIHN0b3JlNjQocmVnLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAg
IHN0b3JlNjQocmVnLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyKSk7CiAgICAgICAgIGxv
YWQ2NChBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCA4KSwgcmVnKTsKICAgICB9CiAKQEAg
LTI5NDYsMTQgKzI5NDYsMTQgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgcG9wVG9SZXN0b3Jl
KEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbG9hZERvdWJsZShzdGFja1BvaW50
ZXJSZWdpc3RlciwgZGVzdCk7CisgICAgICAgIGxvYWREb3VibGUoQWRkcmVzcyhzdGFja1BvaW50
ZXJSZWdpc3RlciksIGRlc3QpOwogICAgICAgICBhZGQ2NChUcnVzdGVkSW1tMzIoMTYpLCBzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgfQogICAgIAogICAgIHZvaWQgcHVzaFRvU2F2ZShGUFJl
Z2lzdGVySUQgc3JjKQogICAgIHsKICAgICAgICAgc3ViNjQoVHJ1c3RlZEltbTMyKDE2KSwgc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOwotICAgICAgICBzdG9yZURvdWJsZShzcmMsIHN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKKyAgICAgICAgc3RvcmVEb3VibGUoc3JjLCBBZGRyZXNzKHN0YWNrUG9pbnRl
clJlZ2lzdGVyKSk7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBwdHJkaWZmX3QgcHVz
aFRvU2F2ZUJ5dGVPZmZzZXQoKSB7IHJldHVybiAxNjsgfQpAQCAtNDE2Myw3ICs0MTYzLDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gUGF0Y2hhYmxlSnVtcChyZXN1bHQpOwogICAgIH0KIAot
ICAgIEFMV0FZU19JTkxJTkUgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0aFBhdGNoKFRydXN0ZWRJ
bW1QdHIgaW5pdGlhbFZhbHVlLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICBBTFdBWVNf
SU5MSU5FIERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQYXRjaChUcnVzdGVkSW1tUHRyIGluaXRp
YWxWYWx1ZSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxhYmVsUHRyIGxh
YmVsKHRoaXMpOwogICAgICAgICBtb3ZlV2l0aEZpeGVkV2lkdGgoaW5pdGlhbFZhbHVlLCBnZXRD
YWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwpAQCAtNDE3MSw3ICs0MTcx
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbGFiZWw7CiAgICAgfQogCi0gICAgQUxXQVlT
X0lOTElORSBEYXRhTGFiZWxQdHIgc3RvcmVQdHJXaXRoUGF0Y2goSW1wbGljaXRBZGRyZXNzIGFk
ZHJlc3MpCisgICAgQUxXQVlTX0lOTElORSBEYXRhTGFiZWxQdHIgc3RvcmVQdHJXaXRoUGF0Y2go
QWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgcmV0dXJuIHN0b3JlUHRyV2l0aFBhdGNo
KFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIGFkZHJlc3MpOwogICAgIH0KQEAgLTQyMTYsMTM0ICs0
MjE2LDEzNCBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmRtYklTSCgpOwogICAgIH0K
ICAgICAKLSAgICB2b2lkIGxvYWRBY3E4U2lnbmVkRXh0ZW5kVG8zMihJbXBsaWNpdEFkZHJlc3Mg
YWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZEFjcThTaWduZWRFeHRlbmRU
bzMyKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9h
c3NlbWJsZXIubGRhcjw4PihkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAg
ICAgfQogICAgIAotICAgIHZvaWQgbG9hZEFjcTgoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJl
Z2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRBY3E4KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbG9hZEFjcThTaWduZWRFeHRlbmRUbzMyKGFkZHJl
c3MsIGRlc3QpOwogICAgICAgICBhbmQzMihUcnVzdGVkSW1tMzIoMHhmZiksIGRlc3QpOwogICAg
IH0KICAgICAKLSAgICB2b2lkIHN0b3JlUmVsOChSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRy
ZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZVJlbDgoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHI8OD4oc3JjLCBleHRyYWN0
U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgbG9hZEFjcTE2
U2lnbmVkRXh0ZW5kVG8zMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQorICAgIHZvaWQgbG9hZEFjcTE2U2lnbmVkRXh0ZW5kVG8zMihBZGRyZXNzIGFkZHJlc3MsIFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkYXI8MTY+KGRlc3Qs
IGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBs
b2FkQWNxMTYoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2
b2lkIGxvYWRBY3ExNihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGxvYWRBY3ExNlNpZ25lZEV4dGVuZFRvMzIoYWRkcmVzcywgZGVzdCk7CiAgICAgICAg
IGFuZDMyKFRydXN0ZWRJbW0zMigweGZmZmYpLCBkZXN0KTsKICAgICB9CiAgICAgCi0gICAgdm9p
ZCBzdG9yZVJlbDE2KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAg
ICB2b2lkIHN0b3JlUmVsMTYoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7
CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHI8MTY+KHNyYywgZXh0cmFjdFNpbXBsZUFkZHJlc3Mo
YWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIGxvYWRBY3EzMihJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZEFjcTMyKEFkZHJlc3Mg
YWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRh
cjwzMj4oZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAK
LSAgICB2b2lkIGxvYWRBY3E2NChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHZvaWQgbG9hZEFjcTY0KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRhcjw2ND4oZGVzdCwgZXh0cmFjdFNpbXBs
ZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlUmVsMzIoUmVn
aXN0ZXJJRCBkZXN0LCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlUmVs
MzIoUmVnaXN0ZXJJRCBkZXN0LCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBtX2Fz
c2VtYmxlci5zdGxyPDMyPihkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAg
ICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVSZWw2NChSZWdpc3RlcklEIGRlc3QsIEltcGxpY2l0
QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmVSZWw2NChSZWdpc3RlcklEIGRlc3QsIEFk
ZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHI8NjQ+KGRlc3Qs
IGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBs
b2FkTGluazgoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2
b2lkIGxvYWRMaW5rOChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLmxkeHI8OD4oZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRk
cmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIGxvYWRMaW5rQWNxOChJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZExpbmtBY3E4KEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIu
bGRheHI8OD4oZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAg
ICAKLSAgICB2b2lkIHN0b3JlQ29uZDgoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKKyAgICB2b2lkIHN0b3JlQ29uZDgoUmVnaXN0ZXJJ
RCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCByZXN1bHQpCiAgICAgewogICAgICAg
ICBtX2Fzc2VtYmxlci5zdHhyPDg+KHJlc3VsdCwgc3JjLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhh
ZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVDb25kUmVsOChSZWdpc3RlcklE
IHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgcmVzdWx0KQorICAgIHZv
aWQgc3RvcmVDb25kUmVsOChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3Rl
cklEIHJlc3VsdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHhyPDg+KHJlc3VsdCwg
c3JjLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZv
aWQgbG9hZExpbmsxNihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQor
ICAgIHZvaWQgbG9hZExpbmsxNihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAg
ICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkeHI8MTY+KGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRy
ZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBsb2FkTGlua0FjcTE2KEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkTGlua0Fj
cTE2KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9h
c3NlbWJsZXIubGRheHI8MTY+KGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsK
ICAgICB9CiAgICAgCi0gICAgdm9pZCBzdG9yZUNvbmQxNihSZWdpc3RlcklEIHNyYywgSW1wbGlj
aXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgcmVzdWx0KQorICAgIHZvaWQgc3RvcmVDb25k
MTYoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCByZXN1bHQpCiAg
ICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zdHhyPDE2PihyZXN1bHQsIHNyYywgZXh0cmFjdFNp
bXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlQ29uZFJl
bDE2KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBy
ZXN1bHQpCisgICAgdm9pZCBzdG9yZUNvbmRSZWwxNihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0
bHhyPDE2PihyZXN1bHQsIHNyYywgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAg
IH0KICAgICAKLSAgICB2b2lkIGxvYWRMaW5rMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJl
Z2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRMaW5rMzIoQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZHhyPDMyPihkZXN0LCBl
eHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgbG9h
ZExpbmtBY3EzMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAg
IHZvaWQgbG9hZExpbmtBY3EzMihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAg
ICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkYXhyPDMyPihkZXN0LCBleHRyYWN0U2ltcGxlQWRk
cmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVDb25kMzIoUmVnaXN0
ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKKyAg
ICB2b2lkIHN0b3JlQ29uZDMyKFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lz
dGVySUQgcmVzdWx0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3R4cjwzMj4ocmVzdWx0
LCBzcmMsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAg
dm9pZCBzdG9yZUNvbmRSZWwzMihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJl
c3MsIFJlZ2lzdGVySUQgcmVzdWx0KQorICAgIHZvaWQgc3RvcmVDb25kUmVsMzIoUmVnaXN0ZXJJ
RCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCByZXN1bHQpCiAgICAgewogICAgICAg
ICBtX2Fzc2VtYmxlci5zdGx4cjwzMj4ocmVzdWx0LCBzcmMsIGV4dHJhY3RTaW1wbGVBZGRyZXNz
KGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBsb2FkTGluazY0KEltcGxpY2l0QWRk
cmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkTGluazY0KEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIu
bGR4cjw2ND4oZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAg
ICAKLSAgICB2b2lkIGxvYWRMaW5rQWNxNjQoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lz
dGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRMaW5rQWNxNjQoQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGF4cjw2ND4oZGVzdCwg
ZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0
b3JlQ29uZDY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCByZXN1bHQpCisgICAgdm9pZCBzdG9yZUNvbmQ2NChSZWdpc3RlcklEIHNyYywgQWRkcmVz
cyBhZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVy
LnN0eHI8NjQ+KHJlc3VsdCwgc3JjLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAg
ICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVDb25kUmVsNjQoUmVnaXN0ZXJJRCBzcmMsIEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKKyAgICB2b2lkIHN0b3JlQ29u
ZFJlbDY0KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgcmVzdWx0
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3RseHI8NjQ+KHJlc3VsdCwgc3JjLCBleHRy
YWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQpAQCAtNTIwNCw3ICs1MjA0LDcgQEAg
cHJvdGVjdGVkOgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0K
ICAgICAKLSAgICBSZWdpc3RlcklEIGV4dHJhY3RTaW1wbGVBZGRyZXNzKEltcGxpY2l0QWRkcmVz
cyBhZGRyZXNzKQorICAgIFJlZ2lzdGVySUQgZXh0cmFjdFNpbXBsZUFkZHJlc3MoQWRkcmVzcyBh
ZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKCFhZGRyZXNzLm9mZnNldCkKICAgICAgICAgICAg
IHJldHVybiBhZGRyZXNzLmJhc2U7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNNjRFLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0RS5oCShyZXZpc2lvbiAyODM5MjMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjRF
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3MywxMjIgKzM3MywxMjIgQEAgcHVibGljOgogICAgICAg
ICAgICAgbV9hc3NlbWJsZXIucmV0YWIoKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdB
ZGQ4KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHZvaWQgYXRvbWljWGNoZ0FkZDgoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRk
cmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRhZGRh
bDw4PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAK
LSAgICB2b2lkIGF0b21pY1hjaGdBZGQxNihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNz
IGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdBZGQxNihSZWdp
c3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAg
ICAgICBtX2Fzc2VtYmxlci5sZGFkZGFsPDE2PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRy
ZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdBZGQzMihSZWdpc3Rl
cklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2
b2lkIGF0b21pY1hjaGdBZGQzMihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGFkZGFsPDMyPihzcmMs
IGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lk
IGF0b21pY1hjaGdBZGQ2NChSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Ms
IFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdBZGQ2NChSZWdpc3RlcklEIHNy
YywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fz
c2VtYmxlci5sZGFkZGFsPDY0PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJl
c3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdYb3I4KFJlZ2lzdGVySUQgc3JjLCBJ
bXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgYXRvbWlj
WGNoZ1hvcjgoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRlb3JhbDw4PihzcmMsIGRlc3QsIGV4dHJh
Y3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdY
b3IxNihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQg
ZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdYb3IxNihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGVv
cmFsPDE2PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9
CiAKLSAgICB2b2lkIGF0b21pY1hjaGdYb3IzMihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRy
ZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdYb3IzMihS
ZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewog
ICAgICAgICBtX2Fzc2VtYmxlci5sZGVvcmFsPDMyPihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVB
ZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdYb3I2NChSZWdp
c3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB2b2lkIGF0b21pY1hjaGdYb3I2NChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBS
ZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGVvcmFsPDY0Pihz
cmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2
b2lkIGF0b21pY1hjaGdPcjgoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNz
LCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBhdG9taWNYY2hnT3I4KFJlZ2lzdGVySUQgc3Jj
LCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLmxkc2V0YWw8OD4oc3JjLCBkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNz
KSk7CiAgICAgfQogCi0gICAgdm9pZCBhdG9taWNYY2hnT3IxNihSZWdpc3RlcklEIHNyYywgSW1w
bGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hj
aGdPcjE2KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkc2V0YWw8MTY+KHNyYywgZGVzdCwgZXh0cmFj
dFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KIAotICAgIHZvaWQgYXRvbWljWGNoZ09y
MzIoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRl
c3QpCisgICAgdm9pZCBhdG9taWNYY2hnT3IzMihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRy
ZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZHNldGFs
PDMyPihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAK
LSAgICB2b2lkIGF0b21pY1hjaGdPcjY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3Mg
YWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgYXRvbWljWGNoZ09yNjQoUmVnaXN0
ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAg
ICAgbV9hc3NlbWJsZXIubGRzZXRhbDw2ND4oc3JjLCBkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVz
cyhhZGRyZXNzKSk7CiAgICAgfQogCi0gICAgdm9pZCBhdG9taWNYY2hnQ2xlYXI4KFJlZ2lzdGVy
SUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZv
aWQgYXRvbWljWGNoZ0NsZWFyOChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGNscmFsPDg+KHNyYywg
ZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KIAotICAgIHZvaWQg
YXRvbWljWGNoZ0NsZWFyMTYoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNz
LCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBhdG9taWNYY2hnQ2xlYXIxNihSZWdpc3RlcklE
IHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBt
X2Fzc2VtYmxlci5sZGNscmFsPDE2PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFk
ZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdDbGVhcjMyKFJlZ2lzdGVySUQg
c3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQg
YXRvbWljWGNoZ0NsZWFyMzIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRjbHJhbDwzMj4oc3JjLCBk
ZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogCi0gICAgdm9pZCBh
dG9taWNYY2hnQ2xlYXI2NChSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Ms
IFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdDbGVhcjY0KFJlZ2lzdGVySUQg
c3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1f
YXNzZW1ibGVyLmxkY2xyYWw8NjQ+KHNyYywgZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRk
cmVzcykpOwogICAgIH0KIAotICAgIHZvaWQgYXRvbWljWGNoZzgoUmVnaXN0ZXJJRCBzcmMsIElt
cGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBhdG9taWNY
Y2hnOChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zd3BhbDw4PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1w
bGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGcxNihSZWdp
c3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB2b2lkIGF0b21pY1hjaGcxNihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zd3BhbDwxNj4oc3JjLCBk
ZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogCi0gICAgdm9pZCBh
dG9taWNYY2hnMzIoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCisgICAgdm9pZCBhdG9taWNYY2hnMzIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIu
c3dwYWw8MzI+KHNyYywgZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAg
IH0KIAotICAgIHZvaWQgYXRvbWljWGNoZzY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgYXRvbWljWGNoZzY0KFJlZ2lz
dGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAg
ICAgIG1fYXNzZW1ibGVyLnN3cGFsPDY0PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNz
KGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1N0cm9uZ0NBUzgoUmVnaXN0ZXJJ
RCBleHBlY3RlZEFuZFJlc3VsdCwgUmVnaXN0ZXJJRCBuZXdWYWx1ZSwgSW1wbGljaXRBZGRyZXNz
IGFkZHJlc3MpCisgICAgdm9pZCBhdG9taWNTdHJvbmdDQVM4KFJlZ2lzdGVySUQgZXhwZWN0ZWRB
bmRSZXN1bHQsIFJlZ2lzdGVySUQgbmV3VmFsdWUsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLmNhc2FsPDg+KGV4cGVjdGVkQW5kUmVzdWx0LCBuZXdWYWx1ZSwg
ZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KIAotICAgIHZvaWQgYXRvbWlj
U3Ryb25nQ0FTMTYoUmVnaXN0ZXJJRCBleHBlY3RlZEFuZFJlc3VsdCwgUmVnaXN0ZXJJRCBuZXdW
YWx1ZSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBhdG9taWNTdHJvbmdDQVMx
NihSZWdpc3RlcklEIGV4cGVjdGVkQW5kUmVzdWx0LCBSZWdpc3RlcklEIG5ld1ZhbHVlLCBBZGRy
ZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5jYXNhbDwxNj4oZXhwZWN0
ZWRBbmRSZXN1bHQsIG5ld1ZhbHVlLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAg
ICAgfQogCi0gICAgdm9pZCBhdG9taWNTdHJvbmdDQVMzMihSZWdpc3RlcklEIGV4cGVjdGVkQW5k
UmVzdWx0LCBSZWdpc3RlcklEIG5ld1ZhbHVlLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAg
ICB2b2lkIGF0b21pY1N0cm9uZ0NBUzMyKFJlZ2lzdGVySUQgZXhwZWN0ZWRBbmRSZXN1bHQsIFJl
Z2lzdGVySUQgbmV3VmFsdWUsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLmNhc2FsPDMyPihleHBlY3RlZEFuZFJlc3VsdCwgbmV3VmFsdWUsIGV4dHJhY3RTaW1w
bGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1N0cm9uZ0NBUzY0
KFJlZ2lzdGVySUQgZXhwZWN0ZWRBbmRSZXN1bHQsIFJlZ2lzdGVySUQgbmV3VmFsdWUsIEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgYXRvbWljU3Ryb25nQ0FTNjQoUmVnaXN0ZXJJ
RCBleHBlY3RlZEFuZFJlc3VsdCwgUmVnaXN0ZXJJRCBuZXdWYWx1ZSwgQWRkcmVzcyBhZGRyZXNz
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuY2FzYWw8NjQ+KGV4cGVjdGVkQW5kUmVzdWx0
LCBuZXdWYWx1ZSwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5oCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAkod29ya2luZyBjb3B5KQpAQCAtMzcwLDE2ICsz
NzAsMTYgQEAgcHVibGljOgogICAgICAgICBBUk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1U
aHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJbW0oaW1tLm1fdmFsdWUpOwogICAgICAgICBpZiAo
YXJtSW1tLmlzVmFsaWQoKSkgewogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJl
c3MubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIGxvYWQ4KGFkZHJl
c3NUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbG9hZDgoQWRk
cmVzcyhhZGRyZXNzVGVtcFJlZ2lzdGVyKSwgZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5vcnIoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgYXJt
SW1tKTsKLSAgICAgICAgICAgIHN0b3JlOChkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgICAgIHN0b3JlOChkYXRhVGVtcFJlZ2lzdGVyLCBBZGRyZXNzKGFk
ZHJlc3NUZW1wUmVnaXN0ZXIpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1vdmUo
VHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAg
ICAgICAgICBsb2FkOChhZGRyZXNzVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAg
ICAgICAgICAgIGxvYWQ4KEFkZHJlc3MoYWRkcmVzc1RlbXBSZWdpc3RlciksIGRhdGFUZW1wUmVn
aXN0ZXIpOwogICAgICAgICAgICAgbW92ZShpbW0sIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogICAg
ICAgICAgICAgbV9hc3NlbWJsZXIub3JyKGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0
ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRy
KGFkZHJlc3MubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIHN0b3Jl
OChkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIHN0
b3JlOChkYXRhVGVtcFJlZ2lzdGVyLCBBZGRyZXNzKGFkZHJlc3NUZW1wUmVnaXN0ZXIpKTsKICAg
ICAgICAgfQogICAgIH0KIApAQCAtMzg4LDE2ICszODgsMTYgQEAgcHVibGljOgogICAgICAgICBB
Uk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJ
bW0oaW1tLm1fdmFsdWUpOwogICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkgewogICAgICAg
ICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVy
KTsKLSAgICAgICAgICAgIGxvYWQxNihhZGRyZXNzVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lz
dGVyKTsKKyAgICAgICAgICAgIGxvYWQxNihBZGRyZXNzKGFkZHJlc3NUZW1wUmVnaXN0ZXIpLCBk
YXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm9ycihkYXRhVGVtcFJl
Z2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBhcm1JbW0pOwotICAgICAgICAgICAgc3RvcmUxNihk
YXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIHN0b3Jl
MTYoZGF0YVRlbXBSZWdpc3RlciwgQWRkcmVzcyhhZGRyZXNzVGVtcFJlZ2lzdGVyKSk7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoZGVzdC5tX3B0ciks
IGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwotICAgICAgICAgICAgbG9hZDE2KGFkZHJlc3NUZW1wUmVn
aXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbG9hZDE2KEFkZHJlc3MoYWRk
cmVzc1RlbXBSZWdpc3RlciksIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgbW92ZShp
bW0sIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIub3JyKGRh
dGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwog
ICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJl
Z2lzdGVyKTsKLSAgICAgICAgICAgIHN0b3JlMTYoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzc1Rl
bXBSZWdpc3Rlcik7CisgICAgICAgICAgICBzdG9yZTE2KGRhdGFUZW1wUmVnaXN0ZXIsIEFkZHJl
c3MoYWRkcmVzc1RlbXBSZWdpc3RlcikpOwogICAgICAgICB9CiAgICAgfQogCkBAIC00MDksOSAr
NDA5LDkgQEAgcHVibGljOgogICAgIHZvaWQgb3IzMihSZWdpc3RlcklEIHNyYywgQWJzb2x1dGVB
ZGRyZXNzIGRlc3QpCiAgICAgewogICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoZGVzdC5tX3B0
ciksIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwotICAgICAgICBsb2FkMzIoYWRkcmVzc1RlbXBSZWdp
c3RlciwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIGxvYWQzMihBZGRyZXNzKGFkZHJlc3NU
ZW1wUmVnaXN0ZXIpLCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgb3IzMihzcmMsIGRhdGFU
ZW1wUmVnaXN0ZXIpOwotICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NU
ZW1wUmVnaXN0ZXIpOworICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIEFkZHJlc3Mo
YWRkcmVzc1RlbXBSZWdpc3RlcikpOwogICAgIH0KIAogICAgIHZvaWQgb3IzMihUcnVzdGVkSW1t
MzIgaW1tLCBBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcykKQEAgLTQxOSwxNiArNDE5LDE2IEBAIHB1
YmxpYzoKICAgICAgICAgQVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlh
dGU6Om1ha2VFbmNvZGVkSW1tKGltbS5tX3ZhbHVlKTsKICAgICAgICAgaWYgKGFybUltbS5pc1Zh
bGlkKCkpIHsKICAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwg
YWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBsb2FkMzIoYWRkcmVzc1RlbXBSZWdp
c3RlciwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBsb2FkMzIoQWRkcmVzcyhhZGRy
ZXNzVGVtcFJlZ2lzdGVyKSwgZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5vcnIoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgYXJtSW1tKTsKLSAg
ICAgICAgICAgIHN0b3JlMzIoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7
CisgICAgICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIEFkZHJlc3MoYWRkcmVzc1Rl
bXBSZWdpc3RlcikpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbW92ZShUcnVzdGVk
SW1tUHRyKGFkZHJlc3MubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAg
IGxvYWQzMihhZGRyZXNzVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
ICAgIGxvYWQzMihBZGRyZXNzKGFkZHJlc3NUZW1wUmVnaXN0ZXIpLCBkYXRhVGVtcFJlZ2lzdGVy
KTsKICAgICAgICAgICAgIG1vdmUoaW1tLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLm9ycihkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRy
ZXNzLm1fcHRyKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBzdG9yZTMyKGRh
dGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgc3RvcmUz
MihkYXRhVGVtcFJlZ2lzdGVyLCBBZGRyZXNzKGFkZHJlc3NUZW1wUmVnaXN0ZXIpKTsKICAgICAg
ICAgfQogICAgIH0KIApAQCAtNzU0LDcgKzc1NCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiBwdWJs
aWM6Ci0gICAgdm9pZCBsb2FkMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQg
ZGVzdCkKKyAgICB2b2lkIGxvYWQzMihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7CiAgICAgICAgIGxvYWQzMihzZXR1cEFybUFkZHJlc3MoYWRkcmVzcyksIGRlc3QpOwog
ICAgIH0KQEAgLTgwMCwxMiArODAwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICB9CiAKLSAgICB2b2lkIGxvYWQ4KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkOChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQg
ZGVzdCkKICAgICB7CiAgICAgICAgIGxvYWQ4KHNldHVwQXJtQWRkcmVzcyhhZGRyZXNzKSwgZGVz
dCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkOFNpZ25lZEV4dGVuZFRvMzIoSW1wbGljaXRBZGRy
ZXNzLCBSZWdpc3RlcklEKQorICAgIHZvaWQgbG9hZDhTaWduZWRFeHRlbmRUbzMyKEFkZHJlc3Ms
IFJlZ2lzdGVySUQpCiAgICAgewogICAgICAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsK
ICAgICB9CkBAIC04MjMsNyArODIzLDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZDgoY29uc3Qg
dm9pZCogYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbW92ZShUcnVz
dGVkSW1tUHRyKGFkZHJlc3MpLCBkZXN0KTsKLSAgICAgICAgbG9hZDgoZGVzdCwgZGVzdCk7Cisg
ICAgICAgIGxvYWQ4KEFkZHJlc3MoZGVzdCksIGRlc3QpOwogICAgIH0KIAogICAgIERhdGFMYWJl
bDMyIGxvYWQzMldpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3Rl
cklEIGRlc3QpCkBAIC04NjIsNyArODYyLDcgQEAgcHVibGljOgogICAgICAgICBsb2FkMTZTaWdu
ZWRFeHRlbmRUbzMyKHNldHVwQXJtQWRkcmVzcyhhZGRyZXNzKSwgZGVzdCk7CiAgICAgfQogICAg
IAotICAgIHZvaWQgbG9hZDE2KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRl
c3QpCisgICAgdm9pZCBsb2FkMTYoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewogICAgICAgICBBUk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0
ZTo6bWFrZVVJbnQxMihhZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIGlmIChhcm1JbW0uaXNWYWxp
ZCgpKQpAQCAtODczLDcgKzg3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KICAgICAK
LSAgICB2b2lkIGxvYWQxNlNpZ25lZEV4dGVuZFRvMzIoSW1wbGljaXRBZGRyZXNzLCBSZWdpc3Rl
cklEKQorICAgIHZvaWQgbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMihBZGRyZXNzLCBSZWdpc3RlcklE
KQogICAgIHsKICAgICAgICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7CiAgICAgfQpAQCAt
OTAzLDcgKzkwMyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGxhYmVsOwogICAgIH0KIAot
ICAgIHZvaWQgc3RvcmUzMihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Mp
CisgICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAg
ewogICAgICAgICBzdG9yZTMyKHNyYywgc2V0dXBBcm1BZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9
CkBAIC05MTMsNyArOTEzLDcgQEAgcHVibGljOgogICAgICAgICBzdG9yZTMyKHNyYywgc2V0dXBB
cm1BZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZElt
bTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTMyKFRydXN0
ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1vdmUoaW1tLCBk
YXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVyLCBzZXR1
cEFybUFkZHJlc3MoYWRkcmVzcykpOwpAQCAtOTcyLDcgKzk3Miw3IEBAIHB1YmxpYzoKICAgICAg
ICAgc3RvcmU4KHNyYywgQXJtQWRkcmVzcyhhZGRycmVnLCAwKSk7CiAgICAgfQogICAgIAotICAg
IHZvaWQgc3RvcmUxNihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisg
ICAgdm9pZCBzdG9yZTE2KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewog
ICAgICAgICBzdG9yZTE2KHNyYywgc2V0dXBBcm1BZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CkBA
IC0xMDQzLDcgKzEwNDMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9h
dGluZ1BvaW50QWJzKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
RmxvYXRpbmdQb2ludFJvdW5kaW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgbG9h
ZERvdWJsZShJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAg
dm9pZCBsb2FkRG91YmxlKEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBSZWdpc3RlcklEIGJhc2UgPSBhZGRyZXNzLmJhc2U7CiAgICAgICAgIGludDMy
X3Qgb2Zmc2V0ID0gYWRkcmVzcy5vZmZzZXQ7CkBAIC0xMDU4LDcgKzEwNTgsNyBAQCBwdWJsaWM6
CiAgICAgICAgIG1fYXNzZW1ibGVyLnZsZHIoZGVzdCwgYmFzZSwgb2Zmc2V0KTsKICAgICB9CiAK
LSAgICB2b2lkIGxvYWRGbG9hdChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklE
IGRlc3QpCisgICAgdm9pZCBsb2FkRmxvYXQoQWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQg
ZGVzdCkKICAgICB7CiAgICAgICAgIFJlZ2lzdGVySUQgYmFzZSA9IGFkZHJlc3MuYmFzZTsKICAg
ICAgICAgaW50MzJfdCBvZmZzZXQgPSBhZGRyZXNzLm9mZnNldDsKQEAgLTExMTIsNyArMTExMiw3
IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIudmxkcihkZXN0LCBhZGRyZXNzVGVtcFJl
Z2lzdGVyLCAwKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBz
cmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdp
c3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgUmVnaXN0ZXJJRCBi
YXNlID0gYWRkcmVzcy5iYXNlOwogICAgICAgICBpbnQzMl90IG9mZnNldCA9IGFkZHJlc3Mub2Zm
c2V0OwpAQCAtMTEyNyw3ICsxMTI3LDcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci52
c3RyKHNyYywgYmFzZSwgb2Zmc2V0KTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlRmxvYXQoRlBS
ZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZUZs
b2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIFJl
Z2lzdGVySUQgYmFzZSA9IGFkZHJlc3MuYmFzZTsKICAgICAgICAgaW50MzJfdCBvZmZzZXQgPSBh
ZGRyZXNzLm9mZnNldDsKQEAgLTExNDUsNyArMTE0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0
b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIFRydXN0ZWRJbW1QdHIgYWRkcmVzcykKICAgICB7
CiAgICAgICAgIG1vdmUoYWRkcmVzcywgYWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAgICAgIHN0
b3JlRG91YmxlKHNyYywgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAgIHN0b3JlRG91Ymxl
KHNyYywgQWRkcmVzcyhhZGRyZXNzVGVtcFJlZ2lzdGVyKSk7CiAgICAgfQogCiAgICAgdm9pZCBz
dG9yZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBCYXNlSW5kZXggYWRkcmVzcykKQEAgLTIxMzIs
MTMgKzIxMzIsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gUGF0Y2hhYmxlSnVtcChyZXN1
bHQpOwogICAgIH0KIAotICAgIEFMV0FZU19JTkxJTkUgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0
aFBhdGNoKFRydXN0ZWRJbW1QdHIgaW5pdGlhbFZhbHVlLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVz
cykKKyAgICBBTFdBWVNfSU5MSU5FIERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQYXRjaChUcnVz
dGVkSW1tUHRyIGluaXRpYWxWYWx1ZSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAg
RGF0YUxhYmVsUHRyIGxhYmVsID0gbW92ZVdpdGhQYXRjaChpbml0aWFsVmFsdWUsIGRhdGFUZW1w
UmVnaXN0ZXIpOwogICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwog
ICAgICAgICByZXR1cm4gbGFiZWw7CiAgICAgfQotICAgIEFMV0FZU19JTkxJTkUgRGF0YUxhYmVs
UHRyIHN0b3JlUHRyV2l0aFBhdGNoKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKSB7IHJldHVybiBz
dG9yZVB0cldpdGhQYXRjaChUcnVzdGVkSW1tUHRyKG51bGxwdHIpLCBhZGRyZXNzKTsgfQorICAg
IEFMV0FZU19JTkxJTkUgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0aFBhdGNoKEFkZHJlc3MgYWRk
cmVzcykgeyByZXR1cm4gc3RvcmVQdHJXaXRoUGF0Y2goVHJ1c3RlZEltbVB0cihudWxscHRyKSwg
YWRkcmVzcyk7IH0KIAogICAgIHRlbXBsYXRlPFB0clRhZyByZXN1bHRUYWcsIFB0clRhZyBsb2Nh
dGlvblRhZz4KICAgICBzdGF0aWMgRnVuY3Rpb25QdHI8cmVzdWx0VGFnPiByZWFkQ2FsbFRhcmdl
dChDb2RlTG9jYXRpb25DYWxsPGxvY2F0aW9uVGFnPiBjYWxsKQpAQCAtMjI0OSwxNSArMjI0OSw2
IEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIEFybUFkZHJlc3MoYWRkcmVzcy5iYXNlLCBh
ZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKLSAgICBBcm1BZGRyZXNzIHNldHVwQXJtQWRk
cmVzcyhJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIGlmICgoYWRkcmVz
cy5vZmZzZXQgPj0gLTB4ZmYpICYmIChhZGRyZXNzLm9mZnNldCA8PSAweGZmZikpCi0gICAgICAg
ICAgICByZXR1cm4gQXJtQWRkcmVzcyhhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KTsKLQot
ICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMihhZGRyZXNzLm9mZnNldCksIGFkZHJlc3NUZW1wUmVn
aXN0ZXIpOwotICAgICAgICByZXR1cm4gQXJtQWRkcmVzcyhhZGRyZXNzLmJhc2UsIGFkZHJlc3NU
ZW1wUmVnaXN0ZXIpOwotICAgIH0KLQogICAgIFJlZ2lzdGVySUQgbWFrZUJhc2VJbmRleEJhc2Uo
QmFzZUluZGV4IGFkZHJlc3MpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mub2Zmc2V0KQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyTUlQUy5oCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCSh3b3JraW5nIGNvcHkpCkBAIC05MTcsNyAr
OTE3LDcgQEAgcHVibGljOgogICAgIC8vIHJlZ2lzdGVyIGlzIHBhc3NlZC4KIAogICAgIC8qIE5l
ZWQgdG8gdXNlIHplcm8tZXh0ZW5lZCBsb2FkIGJ5dGUgZm9yIGxvYWQ4LiAgKi8KLSAgICB2b2lk
IGxvYWQ4KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9p
ZCBsb2FkOChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAg
IGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcK
ICAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpCkBAIC05NzYsNyArOTc2LDcgQEAgcHVibGlj
OgogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBsb2FkOFNpZ25lZEV4dGVuZFRvMzIoSW1w
bGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWQ4U2ln
bmVkRXh0ZW5kVG8zMihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0g
MzI3NjcKICAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpCkBAIC0xMDM2LDcgKzEwMzYsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiAKLSAgICB2b2lkIGxvYWQzMihJbXBsaWNpdEFkZHJlc3MgYWRk
cmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZDMyKEFkZHJlc3MgYWRkcmVzcywg
UmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0z
Mjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NwogICAgICAgICAgICAgJiYgIW1fZml4ZWRX
aWR0aCkKQEAgLTEyMzMsNyArMTIzMyw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvKiBOZWVk
IHRvIHVzZSB6ZXJvLWV4dGVuZWQgbG9hZCBoYWxmLXdvcmQgZm9yIGxvYWQxNi4gICovCi0gICAg
dm9pZCBsb2FkMTYoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB2b2lkIGxvYWQxNihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0g
MzI3NjcKICAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpCkBAIC0xMzI3LDcgKzEzMjcsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBkYXRhTGFiZWw7CiAgICAgfQogCi0gICAgdm9pZCBz
dG9yZTgoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQg
c3RvcmU4KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBp
ZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CiAg
ICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKQpAQCAtMTQwNiw3ICsxNDA2LDcgQEAgcHVibGlj
OgogICAgICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGltbSwg
SW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGlt
bSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgVHJ1c3RlZEltbTMyIGltbTgoc3Rh
dGljX2Nhc3Q8aW50OF90PihpbW0ubV92YWx1ZSkpOwogICAgICAgICBpZiAoYWRkcmVzcy5vZmZz
ZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CkBAIC0xNDUwLDcgKzE0NTAs
NyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lkIHN0b3JlMTYoUmVnaXN0
ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmUxNihSZWdp
c3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKGFkZHJlc3Mu
b2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NwogICAgICAgICAgICAg
JiYgIW1fZml4ZWRXaWR0aCkgewpAQCAtMTQ4OCw3ICsxNDg4LDcgQEAgcHVibGljOgogICAgICAg
ICB9CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFk
ZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMzIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcykKICAgICB7CiAgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYg
YWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKICAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpCkBA
IC0xNTI2LDcgKzE1MjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lk
IHN0b3JlMzIoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAg
dm9pZCBzdG9yZTMyKFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0g
MzI3NjcKICAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpIHsKQEAgLTI5MTIsNyArMjkxMiw3
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHRlbXA7CiAgICAgfQogCi0gICAgRGF0YUxhYmVs
UHRyIHN0b3JlUHRyV2l0aFBhdGNoKFRydXN0ZWRJbW1QdHIgaW5pdGlhbFZhbHVlLCBJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcykKKyAgICBEYXRhTGFiZWxQdHIgc3RvcmVQdHJXaXRoUGF0Y2goVHJ1
c3RlZEltbVB0ciBpbml0aWFsVmFsdWUsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAg
IG1fZml4ZWRXaWR0aCA9IHRydWU7CiAgICAgICAgIERhdGFMYWJlbFB0ciBkYXRhTGFiZWwgPSBt
b3ZlV2l0aFBhdGNoKGluaXRpYWxWYWx1ZSwgZGF0YVRlbXBSZWdpc3Rlcik7CkBAIC0yOTIxLDcg
KzI5MjEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBkYXRhTGFiZWw7CiAgICAgfQogCi0g
ICAgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0aFBhdGNoKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNz
KQorICAgIERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQYXRjaChBZGRyZXNzIGFkZHJlc3MpCiAg
ICAgewogICAgICAgICByZXR1cm4gc3RvcmVQdHJXaXRoUGF0Y2goVHJ1c3RlZEltbVB0cihudWxs
cHRyKSwgYWRkcmVzcyk7CiAgICAgfQpAQCAtMjk0Nyw3ICsyOTQ3LDcgQEAgcHVibGljOgogICAg
ICAgICB9CiAgICAgfQogCi0gICAgdm9pZCBsb2FkRmxvYXQoSW1wbGljaXRBZGRyZXNzIGFkZHJl
c3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZEZsb2F0KEFkZHJlc3MgYWRkcmVz
cywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQg
Pj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CiAgICAgICAgICAgICAmJiAhbV9m
aXhlZFdpZHRoKSB7CkBAIC0yOTY0LDcgKzI5NjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICB2b2lkIGxvYWREb3VibGUoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIEZQUmVn
aXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZERvdWJsZShBZGRyZXNzIGFkZHJlc3MsIEZQUmVn
aXN0ZXJJRCBkZXN0KQogICAgIHsKICNpZiBXVEZfTUlQU19JU0EoMSkKICAgICAgICAgLyoKQEAg
LTMwODYsNyArMzA4Niw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAgIHZvaWQg
c3RvcmVGbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAg
ICB2b2lkIHN0b3JlRmxvYXQoRlBSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAg
IHsKICAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNl
dCA8PSAzMjc2NwogICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkKQEAgLTMxMDMsNyArMzEw
Myw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAgIHZvaWQgc3RvcmVEb3VibGUo
RlBSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9y
ZURvdWJsZShGUFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogI2lmIFdU
Rl9NSVBTX0lTQSgxKQogICAgICAgICAvKgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkocmV2aXNp
b24gMjgzOTIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4NkNvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEwLDcgKzEyMTAsNyBAQCBwdWJs
aWM6CiAgICAgLy8gb3BlcmFuZCBvYmplY3RzIHRvIGxvYWRzIGFuZCBzdG9yZSB3aWxsIGJlIGlt
cGxpY2l0bHkgY29uc3RydWN0ZWQgaWYgYQogICAgIC8vIHJlZ2lzdGVyIGlzIHBhc3NlZC4KIAot
ICAgIHZvaWQgbG9hZDMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3Qp
CisgICAgdm9pZCBsb2FkMzIoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZsX21yKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJh
c2UsIGRlc3QpOwogICAgIH0KQEAgLTEyMjUsNyArMTIyNSw3IEBAIHB1YmxpYzoKICAgICAgICAg
bG9hZDMyKGFkZHJlc3MsIGRlc3QpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZDE2VW5hbGlnbmVk
KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2Fk
MTZVbmFsaWduZWQoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAg
ICAgICBsb2FkMTYoYWRkcmVzcywgZGVzdCk7CiAgICAgfQpAQCAtMTI2OCw3ICsxMjY4LDcgQEAg
cHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5tb3Z6YmxfbXIoYWRkcmVzcy5vZmZzZXQsIGFk
ZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSwgZGVzdCk7CiAgICAgfQog
Ci0gICAgdm9pZCBsb2FkOChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQorICAgIHZvaWQgbG9hZDgoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBtX2Fzc2VtYmxlci5tb3Z6YmxfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3Mu
YmFzZSwgZGVzdCk7CiAgICAgfQpAQCAtMTI3OCw3ICsxMjc4LDcgQEAgcHVibGljOgogICAgICAg
ICBtX2Fzc2VtYmxlci5tb3ZzYmxfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRk
cmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSwgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2Fk
OFNpZ25lZEV4dGVuZFRvMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVz
dCkKKyAgICB2b2lkIGxvYWQ4U2lnbmVkRXh0ZW5kVG8zMihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lz
dGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNibF9tcihhZGRyZXNz
Lm9mZnNldCwgYWRkcmVzcy5iYXNlLCBkZXN0KTsKICAgICB9CkBAIC0xMjkzLDcgKzEyOTMsNyBA
QCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNibF9ycihzcmMsIGRlc3QpOwogICAg
IH0KICAgICAKLSAgICB2b2lkIGxvYWQxNihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZDE2KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBk
ZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92endsX21yKGFkZHJlc3Mub2Zmc2V0
LCBhZGRyZXNzLmJhc2UsIGRlc3QpOwogICAgIH0KQEAgLTEzMDMsMTEgKzEzMDMsNiBAQCBwdWJs
aWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnp3bF9tcihhZGRyZXNzLm9mZnNldCwgYWRkcmVz
cy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlLCBkZXN0KTsKICAgICB9CiAgICAg
Ci0gICAgdm9pZCBsb2FkMTYoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCi0gICAg
ewotICAgICAgICBtX2Fzc2VtYmxlci5tb3Z6d2xfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3Mu
YmFzZSwgZGVzdCk7Ci0gICAgfQotCiAgICAgdm9pZCBsb2FkMTZTaWduZWRFeHRlbmRUbzMyKEJh
c2VJbmRleCBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2Vt
Ymxlci5tb3Zzd2xfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRl
eCwgYWRkcmVzcy5zY2FsZSwgZGVzdCk7CkBAIC0xMzUyLDcgKzEzNDcsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBEYXRhTGFiZWwzMih0aGlzKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3Jl
MzIoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3Rv
cmUzMihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbV9h
c3NlbWJsZXIubW92bF9ybShzcmMsIGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAg
IH0KQEAgLTEzNjIsNyArMTM1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubW92
bF9ybShzcmMsIGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFk
ZHJlc3Muc2NhbGUpOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmUzMihUcnVzdGVkSW1tMzIgaW1t
LCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZEltbTMy
IGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92bF9p
MzJtKGltbS5tX3ZhbHVlLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CkBA
IC0xNDY5LDcgKzE0NjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdndfaW0o
c3RhdGljX2Nhc3Q8aW50MTZfdD4oaW1tLm1fdmFsdWUpLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVz
cy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAKLSAgICB2b2lk
IHN0b3JlMTYoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAg
dm9pZCBzdG9yZTE2KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLm1vdndfaW0oc3RhdGljX2Nhc3Q8aW50MTZfdD4oaW1tLm1fdmFs
dWUpLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CkBAIC0xNDg4LDExICsx
NDgzLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubW92c2RfbXIoYWRkcmVzcy5h
c1B0cigpLCBkZXN0KTsKICNlbHNlCiAgICAgICAgIG1vdmUoYWRkcmVzcywgc2NyYXRjaFJlZ2lz
dGVyKCkpOwotICAgICAgICBsb2FkRG91YmxlKHNjcmF0Y2hSZWdpc3RlcigpLCBkZXN0KTsKKyAg
ICAgICAgbG9hZERvdWJsZShBZGRyZXNzKHNjcmF0Y2hSZWdpc3RlcigpKSwgZGVzdCk7CiAjZW5k
aWYKICAgICB9CiAKLSAgICB2b2lkIGxvYWREb3VibGUoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Ms
IEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZERvdWJsZShBZGRyZXNzIGFkZHJlc3Ms
IEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92c2RfbXIo
YWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgZGVzdCk7CiAgICAgfQpAQCAtMTUwOCwxMSAr
MTUwMywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNzX21yKGFkZHJlc3Mu
YXNQdHIoKSwgZGVzdCk7CiAjZWxzZQogICAgICAgICBtb3ZlKGFkZHJlc3MsIHNjcmF0Y2hSZWdp
c3RlcigpKTsKLSAgICAgICAgbG9hZEZsb2F0KHNjcmF0Y2hSZWdpc3RlcigpLCBkZXN0KTsKKyAg
ICAgICAgbG9hZEZsb2F0KEFkZHJlc3Moc2NyYXRjaFJlZ2lzdGVyKCkpLCBkZXN0KTsKICNlbmRp
ZgogICAgIH0KIAotICAgIHZvaWQgbG9hZEZsb2F0KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBG
UFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRGbG9hdChBZGRyZXNzIGFkZHJlc3MsIEZQ
UmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92c3NfbXIoYWRk
cmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgZGVzdCk7CiAgICAgfQpAQCAtMTUyMiw3ICsxNTE3
LDcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5tb3Zzc19tcihhZGRyZXNzLm9mZnNl
dCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlLCBkZXN0KTsKICAg
ICB9CiAKLSAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRk
cmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgQWRk
cmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92c2Rfcm0oc3JjLCBh
ZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CkBAIC0xNTMyLDcgKzE1MjcsNyBA
QCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNkX3JtKHNyYywgYWRkcmVzcy5vZmZz
ZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CiAgICAgfQog
Ci0gICAgdm9pZCBzdG9yZUZsb2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBh
ZGRyZXNzKQorICAgIHZvaWQgc3RvcmVGbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFk
ZHJlc3MpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5tb3Zzc19ybShzcmMsIGFkZHJlc3Mu
b2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgJKHJldmlzaW9u
IDI4MzkyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJYODZfNjQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGxvYWQ4KGNvbnN0IHZvaWQqIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7
CiAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgZGVzdCk7Ci0gICAgICAgIGxv
YWQ4KGRlc3QsIGRlc3QpOworICAgICAgICBsb2FkOChBZGRyZXNzKGRlc3QpLCBkZXN0KTsKICAg
ICB9CiAKICAgICB2b2lkIGxvYWQxNihFeHRlbmRlZEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJ
RCBkZXN0KQpAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1i
bGVyLm1vdmxfbUVBWChhZGRyZXNzKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBtb3Zl
KFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIGRlc3QpOwotICAgICAgICAgICAgbG9hZDMyKGRlc3Qs
IGRlc3QpOworICAgICAgICAgICAgbG9hZDMyKEFkZHJlc3MoZGVzdCksIGRlc3QpOwogICAgICAg
ICB9CiAgICAgfQogCkBAIC0xNTEsNyArMTUxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc3RvcmUz
MihUcnVzdGVkSW1tMzIgaW1tLCB2b2lkKiBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbW92ZShU
cnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAgIHN0b3Jl
MzIoaW1tLCBzY3JhdGNoUmVnaXN0ZXIoKSk7CisgICAgICAgIHN0b3JlMzIoaW1tLCBBZGRyZXNz
KHNjcmF0Y2hSZWdpc3RlcigpKSk7CiAgICAgfQogCiAgICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVy
SUQgc291cmNlLCB2b2lkKiBhZGRyZXNzKQpAQCAtMTYwLDcgKzE2MCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmxfRUFYbShhZGRyZXNzKTsKICAgICAgICAgZWxzZSB7
CiAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIHNjcmF0Y2hSZWdpc3Rl
cigpKTsKLSAgICAgICAgICAgIHN0b3JlMzIoc291cmNlLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Cisg
ICAgICAgICAgICBzdG9yZTMyKHNvdXJjZSwgQWRkcmVzcyhzY3JhdGNoUmVnaXN0ZXIoKSkpOwog
ICAgICAgICB9CiAgICAgfQogICAgIApAQCAtOTE4LDcgKzkxOCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgbV9hc3NlbWJsZXIubm90cV9tKGRlc3Qub2Zmc2V0LCBkZXN0LmJhc2UsIGRlc3QuaW5kZXgs
IGRlc3Quc2NhbGUpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZDY0KEltcGxpY2l0QWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkNjQoQWRkcmVzcyBhZGRyZXNz
LCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZxX21yKGFk
ZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGRlc3QpOwogICAgIH0KQEAgLTkzNCw3ICs5MzQs
NyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZxX21FQVgoYWRkcmVzcyk7
CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3Mp
LCBkZXN0KTsKLSAgICAgICAgICAgIGxvYWQ2NChkZXN0LCBkZXN0KTsKKyAgICAgICAgICAgIGxv
YWQ2NChBZGRyZXNzKGRlc3QpLCBkZXN0KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtOTUyLDcg
Kzk1Miw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIERhdGFMYWJlbENvbXBhY3QodGhpcyk7
CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlNjQoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRk
cmVzcykKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnFfcm0oc3JjLCBhZGRyZXNzLm9m
ZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CkBAIC05NjgsMTEgKzk2OCwxMSBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZxX0VBWG0oYWRkcmVzcyk7CiAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBzY3JhdGNoUmVn
aXN0ZXIoKSk7Ci0gICAgICAgICAgICBzdG9yZTY0KHNyYywgc2NyYXRjaFJlZ2lzdGVyKCkpOwor
ICAgICAgICAgICAgc3RvcmU2NChzcmMsIEFkZHJlc3Moc2NyYXRjaFJlZ2lzdGVyKCkpKTsKICAg
ICAgICAgfQogICAgIH0KIAotICAgIHZvaWQgc3RvcmU2NChUcnVzdGVkSW1tMzIgaW1tLCBJbXBs
aWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlNjQoVHJ1c3RlZEltbTMyIGltbSwg
QWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92cV9pMzJtKGlt
bS5tX3ZhbHVlLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CkBAIC05ODcs
NyArOTg3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoQ0FOX1NJR05fRVhURU5EXzMyXzY0KGlt
bS5tX3ZhbHVlKSkgewogICAgICAgICAgICAgYXV0byBhZGRyZXNzUmVnID0gc2NyYXRjaFJlZ2lz
dGVyKCk7CiAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIGFkZHJlc3NS
ZWcpOwotICAgICAgICAgICAgc3RvcmU2NChUcnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJf
dD4oaW1tLm1fdmFsdWUpKSwgYWRkcmVzc1JlZyk7CisgICAgICAgICAgICBzdG9yZTY0KFRydXN0
ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90PihpbW0ubV92YWx1ZSkpLCBBZGRyZXNzKGFkZHJl
c3NSZWcpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC05OTgsNyArOTk4
LDcgQEAgcHVibGljOgogICAgICAgICBzd2FwKHNyYywgWDg2UmVnaXN0ZXJzOjplYXgpOwogICAg
IH0KIAotICAgIHZvaWQgc3RvcmU2NChUcnVzdGVkSW1tNjQgaW1tLCBJbXBsaWNpdEFkZHJlc3Mg
YWRkcmVzcykKKyAgICB2b2lkIHN0b3JlNjQoVHJ1c3RlZEltbTY0IGltbSwgQWRkcmVzcyBhZGRy
ZXNzKQogICAgIHsKICAgICAgICAgaWYgKENBTl9TSUdOX0VYVEVORF8zMl82NChpbW0ubV92YWx1
ZSkpIHsKICAgICAgICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMy
X3Q+KGltbS5tX3ZhbHVlKSksIGFkZHJlc3MpOwpAQCAtMTUyNCw3ICsxNTI0LDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29uZCwgbGVmdCwgc2NyYXRjaFJlZ2lzdGVyKCkp
OwogICAgIH0KIAotICAgIERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQYXRjaChUcnVzdGVkSW1t
UHRyIGluaXRpYWxWYWx1ZSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgRGF0YUxhYmVs
UHRyIHN0b3JlUHRyV2l0aFBhdGNoKFRydXN0ZWRJbW1QdHIgaW5pdGlhbFZhbHVlLCBBZGRyZXNz
IGFkZHJlc3MpCiAgICAgewogICAgICAgICBEYXRhTGFiZWxQdHIgbGFiZWwgPSBtb3ZlV2l0aFBh
dGNoKGluaXRpYWxWYWx1ZSwgc2NyYXRjaFJlZ2lzdGVyKCkpOwogICAgICAgICBzdG9yZTY0KHNj
cmF0Y2hSZWdpc3RlcigpLCBhZGRyZXNzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvdGVzdG1hc20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAz
LDE2ICszMDMsMTYgQEAgdm9pZCB0ZXN0QnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKGRvdQog
ICAgICAgICBqaXQuc3ViUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHN0YWNrQWxpZ25t
ZW50Qnl0ZXMoKSksIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAg
ICAgIGlmIChpc0JpZ0VuZGlhbikgewogICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIodmFsQXNVSW50ID4+IDMyKSwKLSAgICAgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcikp
OwogICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIodmFs
QXNVSW50ICYgMHhmZmZmZmZmZiksCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCA0KSk7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW0zMih2YWxBc1VJbnQgJiAweGZmZmZmZmZmKSwKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlcikpOwogICAg
ICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIodmFsQXNVSW50
ID4+IDMyKSwKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fz
c2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDQpKTsKICAgICAgICAgfQotICAgICAgICBq
aXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEZQUklu
Zm86OmZwUmVnVDApOworICAgICAgICBqaXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpLCBGUFJJbmZvOjpmcFJl
Z1QwKTsKIAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkb25lOwogICAgICAgICBkb25l
ID0gaml0LmJyYW5jaFRydW5jYXRlRG91YmxlVG9JbnQzMihGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OkJyYW5jaElmVHJ1bmNhdGVTdWNj
ZXNzZnVsKTsKQEAgLTIzMTMsNyArMjMxMyw3IEBAIHZvaWQgdGVzdExvYWRQcmVQb3N0SW5kZXgz
MigpCiAKICAgICAgICAgICAgIC8vIHJlcyA9ICorK3AxOyAqcDEgPSA0OyByZXR1cm4gcmVzOwog
ICAgICAgICAgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OlByZUluZGV4QWRkcmVzcyhHUFJJ
bmZvOjphcmd1bWVudEdQUjAsIGluZGV4KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICAg
ICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHJlcGxhY2UpLCBD
Q2FsbEhlbHBlcnM6OkltcGxpY2l0QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAg
ICAgICAgICAgIGppdC5zdG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHJlcGxhY2Up
LCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgICAg
ICAgICBqaXQubW92ZShHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OnJldHVyblZhbHVl
R1BSKTsKIAogICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKQEAgLTIzMzEs
NyArMjMzMSw3IEBAIHZvaWQgdGVzdExvYWRQcmVQb3N0SW5kZXgzMigpCiAKICAgICAgICAgICAg
IC8vIHJlcyA9ICpwMisrOyAqcDIgPSA1OyByZXR1cm4gcmVzOwogICAgICAgICAgICAgaml0Lmxv
YWQzMihDQ2FsbEhlbHBlcnM6OlBvc3RJbmRleEFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIw
LCBpbmRleCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUz
MihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihyZXBsYWNlKSwgQ0NhbGxIZWxwZXJzOjpJbXBs
aWNpdEFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgICAgICAgICBqaXQuc3Rv
cmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihyZXBsYWNlKSwgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgICAgICAgICAgaml0Lm1vdmUoR1BS
SW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAKICAgICAgICAg
ICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CkBAIC0yMzU1LDcgKzIzNTUsNyBAQCB2b2lk
IHRlc3RMb2FkUHJlUG9zdEluZGV4NjQoKQogCiAgICAgICAgICAgICAvLyByZXMgPSAqKytwMTsg
KnAxID0gNDsgcmV0dXJuIHJlczsKICAgICAgICAgICAgIGppdC5sb2FkNjQoQ0NhbGxIZWxwZXJz
OjpQcmVJbmRleEFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBpbmRleCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMSk7Ci0gICAgICAgICAgICBqaXQuc3RvcmU2NChDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW02NChyZXBsYWNlKSwgQ0NhbGxIZWxwZXJzOjpJbXBsaWNpdEFkZHJlc3MoR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSk7CisgICAgICAgICAgICBqaXQuc3RvcmU2NChDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW02NChyZXBsYWNlKSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpOwogICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6YXJndW1lbnRHUFIx
LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAKICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVw
aWxvZ3VlKGppdCk7CkBAIC0yMzczLDcgKzIzNzMsNyBAQCB2b2lkIHRlc3RMb2FkUHJlUG9zdElu
ZGV4NjQoKQogCiAgICAgICAgICAgICAvLyByZXMgPSAqcDIrKzsgKnAyID0gNTsgcmV0dXJuIHJl
czsKICAgICAgICAgICAgIGppdC5sb2FkNjQoQ0NhbGxIZWxwZXJzOjpQb3N0SW5kZXhBZGRyZXNz
KEdQUkluZm86OmFyZ3VtZW50R1BSMCwgaW5kZXgpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwot
ICAgICAgICAgICAgaml0LnN0b3JlNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQocmVwbGFj
ZSksIENDYWxsSGVscGVyczo6SW1wbGljaXRBZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
OworICAgICAgICAgICAgaml0LnN0b3JlNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQocmVw
bGFjZSksIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAg
ICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIpOwogCiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJ
KHJldmlzaW9uIDI4MzkyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTE4LDcgKzE5MTgsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nU2xpY2UoCiAKICAgICBtX2ppdC5sc2hpZnQzMihN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHNpemVvZih2b2lkKikgPT0gNCA/IDIgOiAzKSwg
dGVtcEdQUik7CiAgICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW1QdHIodm0uc21hbGxTdHJpbmdz
LnNpbmdsZUNoYXJhY3RlclN0cmluZ3MoKSksIHRlbXBHUFIpOwotICAgIG1faml0LmxvYWRQdHIo
dGVtcEdQUiwgdGVtcEdQUik7CisgICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJl
c3ModGVtcEdQUiksIHRlbXBHUFIpOwogCiAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1Bh
dGhDYWxsKGJpZ0NoYXJhY3RlciwgdGhpcywgb3BlcmF0aW9uU2luZ2xlQ2hhcmFjdGVyU3RyaW5n
LCB0ZW1wR1BSLCAmdm0sIHRlbXBHUFIpKTsKIApAQCAtMjYzNCw3ICsyNjM0LDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TdAogICAgIFZNJiB2bSA9IHRoaXMtPnZt
KCk7CiAgICAgbV9qaXQubHNoaWZ0MzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihzaXpl
b2Yodm9pZCopID09IDQgPyAyIDogMyksIHNjcmF0Y2hSZWcpOwogICAgIG1faml0LmFkZFB0cihU
cnVzdGVkSW1tUHRyKHZtLnNtYWxsU3RyaW5ncy5zaW5nbGVDaGFyYWN0ZXJTdHJpbmdzKCkpLCBz
Y3JhdGNoUmVnKTsKLSAgICBtX2ppdC5sb2FkUHRyKHNjcmF0Y2hSZWcsIHNjcmF0Y2hSZWcpOwor
ICAgIG1faml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hSZWcpLCBzY3Jh
dGNoUmVnKTsKIAogICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAogICAgICAgICBzbG93UGF0aENh
bGwoCkBAIC0xNTMzMiw3ICsxNTMzMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVD
bGVhckNhdGNoTG8KICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKICAgICBHUFJSZWcg
c2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3ByKCk7CiAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRy
KHNjcmF0Y2hCdWZmZXItPmFkZHJlc3NPZkFjdGl2ZUxlbmd0aCgpKSwgc2NyYXRjaEdQUik7Ci0g
ICAgbV9qaXQuc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihudWxscHRyKSwgc2NyYXRjaEdQUik7Cisg
ICAgbV9qaXQuc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihudWxscHRyKSwgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHNjcmF0Y2hHUFIpKTsKICAgICBub1Jlc3VsdChub2RlKTsKIH0KIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb2NhdGlvbi5jcHAJKHJldmlzaW9uIDI4MzkyMykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG9jYXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05OSwxMCArOTksMTAgQEAgdm9pZCBMb2NhdGlvbjo6cmVzdG9yZUludG8oTWFjcm9B
c3NlbWJsZQogICAgICAgICAgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRl
clJlZ2lzdGVyLCByZXN1bHQpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSBudW1GcmFtZXNUb1BvcCAtIDE7IGktLTspCi0gICAgICAgICAgICAgICAgaml0Lmxv
YWRQdHIocmVzdWx0LCByZXN1bHQpOworICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdCksIHJlc3VsdCk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIGlmIChncHIoKSA9PSBNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIp
Ci0gICAgICAgICAgICAgICAgaml0LmxvYWRQdHIocmVzdWx0LCByZXN1bHQpOworICAgICAgICAg
ICAgICAgIGppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdCksIHJlc3Vs
dCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgaml0LmFkZFB0cihNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzaXplb2Yodm9pZCopICogMiksIHJlc3VsdCk7CiAgICAg
ICAgIH0gZWxzZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAko
cmV2aXNpb24gMjgzOTIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8SklUVGh1bmtQdHIKICAgICAKICAgICBzYXZlQWxsUmVnaXN0ZXJzKGppdCwgYnVm
ZmVyKTsKIAotICAgIGppdC5sb2FkUHRyKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOworICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhmcmFt
ZVBvaW50ZXJSZWdpc3RlciksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgaml0LnBlZWso
CiAgICAgICAgIEdQUkluZm86OmFyZ3VtZW50R1BSMSwKICAgICAgICAgKHN0YWNrTWlzYWxpZ25t
ZW50IC0gcHVzaFRvU2F2ZUJ5dGVPZmZzZXQpIC8gc2l6ZW9mKHZvaWQqKSk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCShyZXZpc2lvbiAy
ODM5MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEwOTYsNyArMTA5Niw3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJz
OjpkZWJ1Z0NhbGwoVk0mIHZtLCAKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBGUFJJ
bmZvOjpudW1iZXJPZlJlZ2lzdGVyczsgKytpKSB7CiAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0
cihidWZmZXIgKyBHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycyArIGkpLCBHUFJJbmZvOjpyZWdU
MCk7Ci0gICAgICAgIHN0b3JlRG91YmxlKEZQUkluZm86OnRvUmVnaXN0ZXIoaSksIEdQUkluZm86
OnJlZ1QwKTsKKyAgICAgICAgc3RvcmVEb3VibGUoRlBSSW5mbzo6dG9SZWdpc3RlcihpKSwgQWRk
cmVzcyhHUFJJbmZvOjpyZWdUMCkpOwogICAgIH0KIAogI2lmIENQVShYODZfNjQpIHx8IENQVShB
Uk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpIHx8IENQVShNSVBTKQpAQCAtMTExMyw3ICsxMTEzLDcg
QEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmRlYnVnQ2FsbChWTSYgdm0sIAogCiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IEZQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzOyArK2kpIHsKICAg
ICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGJ1ZmZlciArIEdQUkluZm86Om51bWJlck9mUmVnaXN0
ZXJzICsgaSksIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgbG9hZERvdWJsZShHUFJJbmZvOjpy
ZWdUMCwgRlBSSW5mbzo6dG9SZWdpc3RlcihpKSk7CisgICAgICAgIGxvYWREb3VibGUoQWRkcmVz
cyhHUFJJbmZvOjpyZWdUMCksIEZQUkluZm86OnRvUmVnaXN0ZXIoaSkpOwogICAgIH0KICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnM7ICsraSkg
ewogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0xMTYzLDcgKzExNjMsNyBAQCB2b2lkIEFzc2VtYmx5
SGVscGVyczo6c2FuaXRpemVTdGFja0lubGluCiAgICAgbG9hZFB0cih2bS5hZGRyZXNzT2ZMYXN0
U3RhY2tUb3AoKSwgc2NyYXRjaCk7CiAgICAgSnVtcCBkb25lID0gYnJhbmNoUHRyKEJlbG93T3JF
cXVhbCwgc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNjcmF0Y2gpOwogICAgIExhYmVsIGxvb3AgPSBs
YWJlbCgpOwotICAgIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIHNjcmF0Y2gpOwor
ICAgIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIEFkZHJlc3Moc2NyYXRjaCkpOwog
ICAgIGFkZFB0cihUcnVzdGVkSW1tUHRyKHNpemVvZih2b2lkKikpLCBzY3JhdGNoKTsKICAgICBi
cmFuY2hQdHIoQWJvdmUsIHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzY3JhdGNoKS5saW5rVG8obG9v
cCwgdGhpcyk7CiAgICAgZG9uZS5saW5rKHRoaXMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHJldmlzaW9uIDI4MzkyMykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTg1LDcgKzIxODUsNyBAQCB2b2lkIEpJVDo6ZW1pdEdldFZhckZyb21Qb2lu
dGVyKEpTVmFsdWUqCiB2b2lkIEpJVDo6ZW1pdEdldFZhckZyb21JbmRpcmVjdFBvaW50ZXIoSlNW
YWx1ZSoqIG9wZXJhbmQsIEdQUlJlZyByZWcpCiB7CiAgICAgbG9hZFB0cihvcGVyYW5kLCByZWcp
OwotICAgIGxvYWRQdHIocmVnLCByZWcpOworICAgIGxvYWRQdHIoQWRkcmVzcyhyZWcpLCByZWcp
OwogfQogCiB2b2lkIEpJVDo6ZW1pdEdldENsb3N1cmVWYXIoVmlydHVhbFJlZ2lzdGVyIHNjb3Bl
LCB1aW50cHRyX3Qgb3BlcmFuZCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1
bmtHZW5lcmF0b3JzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAJKHJldmlzaW9uIDI4MzkyMykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAwLDcg
KzYwMCw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gYXIKIAogICAg
IC8vIE1vdmUgY3VycmVudCBmcmFtZSBkb3duIGFyZ3VtZW50R1BSMCBudW1iZXIgb2Ygc2xvdHMK
ICAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgY29weUxvb3Aoaml0LmxhYmVsKCkpOwotICAgIGpp
dC5sb2FkNjQoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzLCBleHRyYVRlbXApOworICAgIGppdC5sb2Fk
NjQoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMyksIGV4dHJhVGVt
cCk7CiAgICAgaml0LnN0b3JlNjQoZXh0cmFUZW1wLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4
KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCwgSlNJ
bnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklU
OjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CiAgICAgaml0LmJyYW5j
aFN1YjMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZElt
bTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIyKS5saW5rVG8oY29weUxvb3AsICZq
aXQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcAko
cmV2aXNpb24gMjgzOTIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRp
bmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCw3ICs3NCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxXYXNtRW50cnkKICAgICB9CiAKICAgICAvLyBUYWlsIGNhbGwgaW50byB0
aGUgY2FsbGVlIFdlYkFzc2VtYmx5IGZ1bmN0aW9uLgotICAgIGppdC5sb2FkUHRyKHNjcmF0Y2gs
IHNjcmF0Y2gpOworICAgIGppdC5sb2FkUHRyKEpJVDo6QWRkcmVzcyhzY3JhdGNoKSwgc2NyYXRj
aCk7CiAgICAgaml0LmZhckp1bXAoc2NyYXRjaCwgV2FzbUVudHJ5UHRyVGFnKTsKIAogICAgIExp
bmtCdWZmZXIgcGF0Y2hCdWZmZXIoaml0LCBHTE9CQUxfVEhVTktfSUQsIExpbmtCdWZmZXI6OlBy
b2ZpbGU6Oldhc21UaHVuaywgSklUQ29tcGlsYXRpb25DYW5GYWlsKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjk3LDcg
KzY5Nyw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckoKIAogICAg
ICAgICBKdW1wTGlzdCBub3RVbmljb2RlOwogCi0gICAgICAgIGxvYWQxNlVuYWxpZ25lZChyZWdV
bmljb2RlSW5wdXRBbmRUcmFpbCwgcmVzdWx0UmVnKTsKKyAgICAgICAgbG9hZDE2VW5hbGlnbmVk
KEFkZHJlc3MocmVnVW5pY29kZUlucHV0QW5kVHJhaWwpLCByZXN1bHRSZWcpOwogCiAgICAgICAg
IC8vIElzIHRoZSBjaGFyYWN0ZXIgYSBsZWFkaW5nIHN1cnJvZ2F0ZT8KICAgICAgICAgYW5kMzIo
c3Vycm9nYXRlVGFnTWFzaywgcmVzdWx0UmVnLCB1bmljb2RlVGVtcCk7CkBAIC04NzksNyArODc5
LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySgogICAgIHsKICAg
ICAgICAgQVNTRVJUKCFtX3BhdHRlcm4ubV9ib2R5LT5tX2hhc0ZpeGVkU2l6ZSk7CiAgICAgICAg
IGlmIChtX2NvbXBpbGVNb2RlID09IEpJVENvbXBpbGVNb2RlOjpJbmNsdWRlU3VicGF0dGVybnMp
Ci0gICAgICAgICAgICBzdG9yZTMyKHJlZywgb3V0cHV0KTsKKyAgICAgICAgICAgIHN0b3JlMzIo
cmVnLCBBZGRyZXNzKG91dHB1dCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtb3ZlKHJl
Zywgb3V0cHV0KTsKICAgICB9CkBAIC04ODcsNyArODg3LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRv
ciBmaW5hbCA6IHB1YmxpYyBZYXJySgogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX3BhdHRlcm4u
bV9ib2R5LT5tX2hhc0ZpeGVkU2l6ZSk7CiAgICAgICAgIGlmIChtX2NvbXBpbGVNb2RlID09IEpJ
VENvbXBpbGVNb2RlOjpJbmNsdWRlU3VicGF0dGVybnMpCi0gICAgICAgICAgICBsb2FkMzIob3V0
cHV0LCByZWcpOworICAgICAgICAgICAgbG9hZDMyKEFkZHJlc3Mob3V0cHV0KSwgcmVnKTsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgbW92ZShvdXRwdXQsIHJlZyk7CiAgICAgfQpAQCAtMjgz
MCw3ICsyODMwLDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySgog
CiAgICAgICAgICAgICAgICAgICAgIGxvYWRGcm9tRnJhbWUocGFyZW50aGVzZXNGcmFtZUxvY2F0
aW9uICsgQmFja1RyYWNrSW5mb1BhcmVudGhlc2VzOjpwYXJlbkNvbnRleHRIZWFkSW5kZXgoKSwg
Y3VyclBhcmVuQ29udGV4dFJlZyk7CiAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRlUGFyZW5D
b250ZXh0KG5ld1BhcmVuQ29udGV4dFJlZyk7Ci0gICAgICAgICAgICAgICAgICAgIHN0b3JlUHRy
KGN1cnJQYXJlbkNvbnRleHRSZWcsIG5ld1BhcmVuQ29udGV4dFJlZyk7CisgICAgICAgICAgICAg
ICAgICAgIHN0b3JlUHRyKGN1cnJQYXJlbkNvbnRleHRSZWcsIEFkZHJlc3MobmV3UGFyZW5Db250
ZXh0UmVnKSk7CiAgICAgICAgICAgICAgICAgICAgIHN0b3JlVG9GcmFtZShuZXdQYXJlbkNvbnRl
eHRSZWcsIHBhcmVudGhlc2VzRnJhbWVMb2NhdGlvbiArIEJhY2tUcmFja0luZm9QYXJlbnRoZXNl
czo6cGFyZW5Db250ZXh0SGVhZEluZGV4KCkpOwogICAgICAgICAgICAgICAgICAgICBzYXZlUGFy
ZW5Db250ZXh0KG5ld1BhcmVuQ29udGV4dFJlZywgcmVnVDIsIHRlcm0tPnBhcmVudGhlc2VzLnN1
YnBhdHRlcm5JZCwgdGVybS0+cGFyZW50aGVzZXMubGFzdFN1YnBhdHRlcm5JZCwgcGFyZW50aGVz
ZXNGcmFtZUxvY2F0aW9uKTsKICAgICAgICAgICAgICAgICAgICAgc3RvcmVUb0ZyYW1lKGluZGV4
LCBwYXJlbnRoZXNlc0ZyYW1lTG9jYXRpb24gKyBCYWNrVHJhY2tJbmZvUGFyZW50aGVzZXM6OmJl
Z2luSW5kZXgoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGls
ZXIuY3BwCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0
b3JDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwODEsOSArMjA4MSw5IEBAIHZvaWQg
U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVNlbGUKICAgICBpZiAobV9zZWxlY3RvckNv
bnRleHQgPT0gU2VsZWN0b3JDb250ZXh0OjpSdWxlQ29sbGVjdG9yKSB7CiAgICAgICAgIHVuc2ln
bmVkIHNwZWNpZmljaXR5ID0gbV9zZWxlY3RvckZyYWdtZW50cy5zdGF0aWNTcGVjaWZpY2l0eTsK
ICAgICAgICAgaWYgKG1fZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6U2VsZWN0b3JDaGVj
a2VyV2l0aENoZWNraW5nQ29udGV4dCkKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN0b3JlMzIo
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc3BlY2lmaWNpdHkpLCBKU0M6OkdQUkluZm86OmFyZ3Vt
ZW50R1BSMik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdG9yZTMyKEFzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyKHNwZWNpZmljaXR5KSwgQXNzZW1ibGVyOjpBZGRyZXNzKEpTQzo6R1BSSW5mbzo6
YXJndW1lbnRHUFIyKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN0
b3JlMzIoQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc3BlY2lmaWNpdHkpLCBKU0M6OkdQUkluZm86
OmFyZ3VtZW50R1BSMSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdG9yZTMyKEFzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyKHNwZWNpZmljaXR5KSwgQXNzZW1ibGVyOjpBZGRyZXNzKEpTQzo6R1BS
SW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgfQogCiAgICAgY29tcHV0ZUJhY2t0cmFja2luZ01l
bW9yeVJlcXVpcmVtZW50cyhtX3NlbGVjdG9yRnJhZ21lbnRzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440868</attachid>
            <date>2021-10-11 18:55:38 -0700</date>
            <delta_ts>2021-10-11 23:33:06 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>69279</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzOTYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3NCBA
QAorMjAyMS0xMC0xMSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmUgSW1wbGljaXRBZGRyZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzA4MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODI2MzE4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlY2F1
c2Ugd2UgcmVseSBvbiBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gUmVnaXN0ZXJJRCB0byBpbnQg
dmFsdWVzLAorICAgICAgICBzb21lIGNvbXBpbGVycyAoYWthIE1TVkMpIG1pZ2h0IGNvbnZlcnQg
YSBjb25zdGFudCBSZWdpc3RlcklEIHRoYXQncyBwYXNzZWQgaW4KKyAgICAgICAgdG8gbnVsbHB0
ciBpbnN0ZWFkIG9mIGNhbGxpbmcgdGhlIGltcGxpY2l0IGNvbnN0cnVjdG9yIGluIEltcGxpY2l0
QWRkcmVzcy4KKyAgICAgICAgCisgICAgICAgIEZvciBleGFtcGxlLCBJIGdvdCBiaXQgYnkgdGhp
cyB3aGVuIEkgaGFkIGNvZGUgdGhhdCBkaWQ6CisgICAgICAgIGxvYWRQdHIocmVnVDAsIHh5eikK
KyAgICAgICAgCisgICAgICAgIFRoaXMgY2FsbGVkIHRoZSBsb2FkUHRyKHZvaWQqLCBSZWdpc3Rl
cklEKSBmdW5jdGlvbiB3aXRoIG51bGxwdHIgcGFzc2VkIGFzCisgICAgICAgIHRoZSBmaXJzdCBh
cmd1bWVudCBpbnN0ZWFkIG9mIHRoZSBsb2FkUHRyKEltcGxpY2l0QWRkcmVzcywgUmVnaXN0ZXJJ
RCkKKyAgICAgICAgZnVuY3Rpb24uCisgICAgICAgIAorICAgICAgICBMZXQncyBhdm9pZCBhbnkg
c3VjaCBwcm9ibGVtcyBpbiB0aGUgZnV0dXJlIGJ5IGp1c3Qgbm90IHVzaW5nIEltcGxpY2l0QWRk
cmVzcy4KKworICAgICAgICAqIGFzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmg6Cisg
ICAgICAgIChKU0M6OkFic3RyYWN0TWFjcm9Bc3NlbWJsZXI6OkltcGxpY2l0QWRkcmVzczo6SW1w
bGljaXRBZGRyZXNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXIuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnB1c2hUb1NhdmUpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6cG9wVG9SZXN0b3JlKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXI6OmxvYWRQdHIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6c3Rv
cmVQdHIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWQ2NCk6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWQzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNNjQ6OmxvYWQxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWQx
NlVuYWxpZ25lZCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWQxNlNp
Z25lZEV4dGVuZFRvMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2Fk
OCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWQ4U2lnbmVkRXh0ZW5k
VG8zMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlNjQpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZTMyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmUxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNNjQ6OnN0b3JlOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6Omxv
YWREb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkRmxvYXQp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZURvdWJsZSk6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlRmxvYXQpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpwdXNoVG9TYXZlSW1tZWRpYXRlV2l0aG91dFRvdWNoaW5n
UmVnaXN0ZXJzKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6cG9wVG9SZXN0
b3JlKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6cHVzaFRvU2F2ZSk6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlUHRyV2l0aFBhdGNoKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZEFjcThTaWduZWRFeHRlbmRUbzMy
KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZEFjcTgpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVJlbDgpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkQWNxMTZTaWduZWRFeHRlbmRUbzMyKToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZEFjcTE2KToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVSZWwxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNNjQ6OmxvYWRBY3EzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6
OmxvYWRBY3E2NCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlUmVs
MzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVJlbDY0KToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZExpbms4KToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZExpbmtBY3E4KToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVDb25kOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNNjQ6OnN0b3JlQ29uZFJlbDgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TTY0Ojpsb2FkTGluazE2KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9h
ZExpbmtBY3ExNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlQ29u
ZDE2KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVDb25kUmVsMTYp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkTGluazMyKToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZExpbmtBY3EzMik6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlQ29uZDMyKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVDb25kUmVsMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlckFSTTY0Ojpsb2FkTGluazY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJB
Uk02NDo6bG9hZExpbmtBY3E2NCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6
OnN0b3JlQ29uZDY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6c3RvcmVD
b25kUmVsNjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpleHRyYWN0U2lt
cGxlQWRkcmVzcyk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjRFLmg6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnQWRkOCk6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnQWRkMTYpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljWGNoZ0FkZDMyKToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NEU6OmF0b21pY1hjaGdBZGQ2NCk6CisgICAgICAg
IChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnWG9yOCk6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnWG9yMTYpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljWGNoZ1hvcjMyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NEU6OmF0b21pY1hjaGdYb3I2NCk6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hnT3I4KToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJBUk02NEU6OmF0b21pY1hjaGdPcjE2KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk02NEU6OmF0b21pY1hjaGdPcjMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk02NEU6OmF0b21pY1hjaGdPcjY0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJB
Uk02NEU6OmF0b21pY1hjaGdDbGVhcjgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TTY0RTo6YXRvbWljWGNoZ0NsZWFyMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TTY0RTo6YXRvbWljWGNoZ0NsZWFyMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TTY0RTo6YXRvbWljWGNoZ0NsZWFyNjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TTY0RTo6YXRvbWljWGNoZzgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6
YXRvbWljWGNoZzE2KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NEU6OmF0b21p
Y1hjaGczMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNYY2hn
NjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0RTo6YXRvbWljU3Ryb25nQ0FT
OCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNTdHJvbmdDQVMx
Nik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNTdHJvbmdDQVMz
Mik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjRFOjphdG9taWNTdHJvbmdDQVM2
NCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6b3I4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk12Nzo6b3IxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6Om9y
MzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpsb2FkMzIpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpsb2FkOCk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OmxvYWQ4U2lnbmVkRXh0ZW5kVG8zMik6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNdjc6OmxvYWQxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNdjc6OmxvYWQxNlNpZ25lZEV4dGVuZFRvMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
YmxlckFSTXY3OjpzdG9yZTMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6
c3RvcmUxNik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmxvYWREb3VibGUp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpsb2FkRmxvYXQpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpzdG9yZURvdWJsZSk6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN0b3JlRmxvYXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlckFSTXY3OjpzdG9yZVB0cldpdGhQYXRjaCk6CisgICAgICAgICogYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6Omxv
YWQ4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkOFNpZ25lZEV4dGVu
ZFRvMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWQzMik6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6bG9hZDE2KToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJNSVBTOjpzdG9yZTgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1J
UFM6OnN0b3JlMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OnN0b3JlMzIp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OnN0b3JlUHRyV2l0aFBhdGNoKToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJNSVBTOjpsb2FkRmxvYXQpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmxvYWREb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlck1JUFM6OnN0b3JlRmxvYXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ck1JUFM6OnN0b3JlRG91YmxlKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmxvYWQz
Mik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpsb2FkMTZVbmFsaWdu
ZWQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6bG9hZDgpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6bG9hZDhTaWduZWRFeHRlbmRUbzMy
KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmxvYWQxNik6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpzdG9yZTMyKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnN0b3JlMTYpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbjo6bG9hZERvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uOjpsb2FkRmxvYXQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
clg4NkNvbW1vbjo6c3RvcmVEb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbjo6c3RvcmVGbG9hdCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
WDg2XzY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2XzY0Ojpsb2FkOCk6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2XzY0Ojpsb2FkMzIpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6c3RvcmUzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyWDg2XzY0Ojpsb2FkNjQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82
NDo6c3RvcmU2NCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2XzY0OjpzdG9yZVB0
cldpdGhQYXRjaCk6CisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAg
KEpTQzo6dGVzdEJyYW5jaFRydW5jYXRlRG91YmxlVG9JbnQzMik6CisgICAgICAgIChKU0M6OnRl
c3RMb2FkUHJlUG9zdEluZGV4MzIpOgorICAgICAgICAoSlNDOjp0ZXN0TG9hZFByZVBvc3RJbmRl
eDY0KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nU2xpY2UpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPblN0cmluZyk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDbGVhckNhdGNoTG9jYWxzKToKKyAg
ICAgICAgKiBmdGwvRlRMTG9jYXRpb24uY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkxvY2F0aW9u
OjpyZXN0b3JlSW50byBjb25zdCk6CisgICAgICAgICogZnRsL0ZUTFRodW5rcy5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6Z2VuZXJpY0dlbmVyYXRpb25UaHVua0dlbmVyYXRvcik6CisgICAgICAg
ICogaml0L0Fzc2VtYmx5SGVscGVycy5jcHA6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVy
czo6ZGVidWdDYWxsKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpzYW5pdGl6ZVN0
YWNrSW5saW5lKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRHZXRWYXJGcm9tSW5kaXJlY3RQb2ludGVyKToKKyAgICAgICAgKiBq
aXQvVGh1bmtHZW5lcmF0b3JzLmNwcDoKKyAgICAgICAgKEpTQzo6YXJpdHlGaXh1cEdlbmVyYXRv
cik6CisgICAgICAgICogd2FzbS9XYXNtQmluZGluZy5jcHA6CisgICAgICAgIChKU0M6Oldhc206
Ondhc21Ub1dhc20pOgorICAgICAgICAqIHlhcnIvWWFyckpJVC5jcHA6CisKIDIwMjEtMTAtMTEg
IFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgU2hhcmUgbW9yZSBj
b2RlIHRoYXQgdXNlcyBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgaW4gdGhlIElDcwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyLmgJKHJldmlzaW9uIDI4MzkyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzksMzkgKzE3OSw2IEBAIHB1YmxpYzoKICAgICAgICAgaW50cHRyX3Qgb2Zmc2V0OwogICAgIH07
CiAKLSAgICAvLyBJbXBsaWNpdEFkZHJlc3M6Ci0gICAgLy8KLSAgICAvLyBUaGlzIGNsYXNzIGlz
IHVzZWQgZm9yIGV4cGxpY2l0ICdsb2FkJyBhbmQgJ3N0b3JlJyBvcGVyYXRpb25zCi0gICAgLy8g
KGFzIG9wcG9zZWQgdG8gc2l0dWF0aW9ucyBpbiB3aGljaCBhIG1lbW9yeSBvcGVyYW5kIGlzIHBy
b3ZpZGVkCi0gICAgLy8gdG8gYSBnZW5lcmljIG9wZXJhdGlvbiwgc3VjaCBhcyBhbiBpbnRlZ2Vy
IGFyaXRobWV0aWMgaW5zdHJ1Y3Rpb24pLgotICAgIC8vCi0gICAgLy8gSW4gdGhlIGNhc2Ugb2Yg
YSBsb2FkIChvciBzdG9yZSkgb3BlcmF0aW9uIHdlIHdhbnQgdG8gcGVybWl0Ci0gICAgLy8gYWRk
cmVzc2VzIHRvIGJlIGltcGxpY2l0bHkgY29uc3RydWN0ZWQsIGUuZy4gdGhlIHR3byBjYWxsczoK
LSAgICAvLwotICAgIC8vICAgICBsb2FkMzIoQWRkcmVzcyhhZGRyUmVnKSwgZGVzdFJlZyk7Ci0g
ICAgLy8gICAgIGxvYWQzMihhZGRyUmVnLCBkZXN0UmVnKTsKLSAgICAvLwotICAgIC8vIEFyZSBl
cXVpdmFsZW50LCBhbmQgdGhlIGV4cGxpY2l0IHdyYXBwaW5nIG9mIHRoZSBBZGRyZXNzIGluIHRo
ZSBmb3JtZXIKLSAgICAvLyBpcyB1bm5lY2Vzc2FyeS4KLSAgICBzdHJ1Y3QgSW1wbGljaXRBZGRy
ZXNzIHsKLSAgICAgICAgSW1wbGljaXRBZGRyZXNzKFJlZ2lzdGVySUQgYmFzZSkKLSAgICAgICAg
ICAgIDogYmFzZShiYXNlKQotICAgICAgICAgICAgLCBvZmZzZXQoMCkKLSAgICAgICAgewotICAg
ICAgICAgICAgQVNTRVJUKGJhc2UgIT0gUmVnaXN0ZXJJRDo6SW52YWxpZEdQUlJlZyk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBJbXBsaWNpdEFkZHJlc3MoQWRkcmVzcyBhZGRyZXNzKQotICAgICAg
ICAgICAgOiBiYXNlKGFkZHJlc3MuYmFzZSkKLSAgICAgICAgICAgICwgb2Zmc2V0KGFkZHJlc3Mu
b2Zmc2V0KQotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoYmFzZSAhPSBSZWdpc3RlcklE
OjpJbnZhbGlkR1BSUmVnKTsKLSAgICAgICAgfQotCi0gICAgICAgIFJlZ2lzdGVySUQgYmFzZTsK
LSAgICAgICAgaW50MzJfdCBvZmZzZXQ7Ci0gICAgfTsKLQogICAgIC8vIEJhc2VJbmRleDoKICAg
ICAvLwogICAgIC8vIERlc2NyaWJlcyBhIGNvbXBsZXggYWRkcmVzc2luZyBtb2RlLgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAko
cmV2aXNpb24gMjgzOTIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjksMTEgKzMyOSwxMSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBwdXNoVG9TYXZlKEZQUmVnaXN0ZXJJRCBzcmMpCiAgICAgewogICAgICAgICBz
dWJQdHIoVHJ1c3RlZEltbTMyKHNpemVvZihkb3VibGUpKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIp
OwotICAgICAgICBzdG9yZURvdWJsZShzcmMsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAg
ICAgc3RvcmVEb3VibGUoc3JjLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyKSk7CiAgICAg
fQogICAgIHZvaWQgcG9wVG9SZXN0b3JlKEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAg
ICAgbG9hZERvdWJsZShzdGFja1BvaW50ZXJSZWdpc3RlciwgZGVzdCk7CisgICAgICAgIGxvYWRE
b3VibGUoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciksIGRlc3QpOwogICAgICAgICBhZGRQ
dHIoVHJ1c3RlZEltbTMyKHNpemVvZihkb3VibGUpKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwog
ICAgIH0KICAgICAKQEAgLTcwMiw3ICs3MDIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHhvcjMyKHNy
YywgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkUHRyKEltcGxpY2l0QWRkcmVzcyBhZGRy
ZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkUHRyKEFkZHJlc3MgYWRkcmVzcywg
UmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbG9hZDMyKGFkZHJlc3MsIGRlc3QpOwog
ICAgIH0KQEAgLTc1Miw3ICs3NTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbXBhcmUzMihjb25k
LCBsZWZ0LCByaWdodCwgZGVzdCk7CiAgICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVQdHIoUmVn
aXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmVQdHIo
UmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIHN0b3JlMzIo
c3JjLCBhZGRyZXNzKTsKICAgICB9CkBAIC03NjcsNyArNzY3LDcgQEAgcHVibGljOgogICAgICAg
ICBzdG9yZTMyKHNyYywgYWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihUcnVz
dGVkSW1tUHRyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZVB0
cihUcnVzdGVkSW1tUHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgc3Rv
cmUzMihUcnVzdGVkSW1tMzIoaW1tKSwgYWRkcmVzcyk7CiAgICAgfQpAQCAtNzgyLDcgKzc4Miw3
IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoaW1tKSwgYWRkcmVzcyk7
CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tMzIgaW1tLCBJbXBsaWNpdEFk
ZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlUHRyKFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJl
c3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIHN0b3JlMzIoaW1tLCBhZGRyZXNzKTsKICAgICB9
CkBAIC0xMDUwLDcgKzEwNTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHhvcjY0KFRydXN0ZWRJbW02
NChpbW0pLCBzcmNEZXN0KTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWRQdHIoSW1wbGljaXRBZGRy
ZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRQdHIoQWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBsb2FkNjQoYWRkcmVzcywg
ZGVzdCk7CiAgICAgfQpAQCAtMTA4OSw3ICsxMDg5LDcgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gbG9hZDY0V2l0aENvbXBhY3RBZGRyZXNzT2Zmc2V0UGF0Y2goYWRkcmVzcywgZGVzdCk7CiAg
ICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNz
IGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZVB0cihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRy
ZXNzKQogICAgIHsKICAgICAgICAgc3RvcmU2NChzcmMsIGFkZHJlc3MpOwogICAgIH0KQEAgLTEx
MDQsMTIgKzExMDQsMTIgQEAgcHVibGljOgogICAgICAgICBzdG9yZTY0KHNyYywgYWRkcmVzcyk7
CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRyIGltbSwgSW1wbGljaXRB
ZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRyIGltbSwgQWRk
cmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgc3RvcmU2NChUcnVzdGVkSW1tNjQoaW1tKSwg
YWRkcmVzcyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tMzIgaW1tLCBJ
bXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlUHRyKFRydXN0ZWRJbW0zMiBp
bW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIHN0b3JlNjQoaW1tLCBhZGRyZXNz
KTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAkocmV2aXNpb24gMjgzOTIzKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE1MjIsNyArMTUyMiw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAg
IHZvaWQgbG9hZDY0KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisg
ICAgdm9pZCBsb2FkNjQoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewog
ICAgICAgICBpZiAodHJ5TG9hZFdpdGhPZmZzZXQ8NjQ+KGRlc3QsIGFkZHJlc3MuYmFzZSwgYWRk
cmVzcy5vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTY3Nyw3ICsxNjc3LDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIHZvaWQgbG9hZDMy
KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2Fk
MzIoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAo
dHJ5TG9hZFdpdGhPZmZzZXQ8MzI+KGRlc3QsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQp
KQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTczNiw3ICsxNzM2LDcgQEAgcHVibGljOgogICAg
ICAgICBsb2FkMzIoYWRkcmVzcywgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkMTYoSW1w
bGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWQxNihB
ZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGlmICh0cnlM
b2FkV2l0aE9mZnNldDwxNj4oZGVzdCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCiAg
ICAgICAgICAgICByZXR1cm47CkBAIC0xNzcyLDcgKzE3NzIsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGxvYWQ8MTY+KGFkZHJlc3MsIGRlc3QpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZDE2VW5hbGln
bmVkKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBs
b2FkMTZVbmFsaWduZWQoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewog
ICAgICAgICBsb2FkMTYoYWRkcmVzcywgZGVzdCk7CiAgICAgfQpAQCAtMTc4Miw3ICsxNzgyLDcg
QEAgcHVibGljOgogICAgICAgICBsb2FkMTYoYWRkcmVzcywgZGVzdCk7CiAgICAgfQogCi0gICAg
dm9pZCBsb2FkMTZTaWduZWRFeHRlbmRUbzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkMTZTaWduZWRFeHRlbmRUbzMyKEFkZHJlc3MgYWRk
cmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaWYgKHRyeUxvYWRTaWduZWRX
aXRoT2Zmc2V0PDE2PihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KSkKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTE4MTUsNyArMTgxNSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9h
c3NlbWJsZXIuc3h0aDwzMj4oZGVzdCwgc3JjKTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWQ4KElt
cGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkOChB
ZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGlmICh0cnlM
b2FkV2l0aE9mZnNldDw4PihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KSkKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTE4NTEsNyArMTg1MSw3IEBAIHB1YmxpYzoKICAgICAgICAg
bV9hc3NlbWJsZXIubGRyYihkZXN0LCBzcmMsIHNpbW0pOwogICAgIH0KIAotICAgIHZvaWQgbG9h
ZDhTaWduZWRFeHRlbmRUbzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRl
c3QpCisgICAgdm9pZCBsb2FkOFNpZ25lZEV4dGVuZFRvMzIoQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAodHJ5TG9hZFNpZ25lZFdpdGhPZmZzZXQ8
OD4oZGVzdCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCiAgICAgICAgICAgICByZXR1
cm47CkBAIC0xODkyLDcgKzE4OTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnN4
dGI8MzI+KGRlc3QsIHNyYyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTY0KFJlZ2lzdGVySUQg
c3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlNjQoUmVnaXN0ZXJJ
RCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIGlmICh0cnlTdG9yZVdpdGhP
ZmZzZXQ8NjQ+KHNyYywgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0xOTQxLDEyICsxOTQxLDEyIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmU2
NChkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlNjQo
VHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9y
ZTY0KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIHN0
b3JlNjQoVHJ1c3RlZEltbTY0KGltbS5tX3ZhbHVlKSwgYWRkcmVzcyk7CiAgICAgfQogCi0gICAg
dm9pZCBzdG9yZTY0KFRydXN0ZWRJbW02NCBpbW0sIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQor
ICAgIHZvaWQgc3RvcmU2NChUcnVzdGVkSW1tNjQgaW1tLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAg
ewogICAgICAgICBpZiAoIWltbS5tX3ZhbHVlKSB7CiAgICAgICAgICAgICBzdG9yZTY0KEFSTTY0
UmVnaXN0ZXJzOjp6ciwgYWRkcmVzcyk7CkBAIC0yMDM2LDcgKzIwMzYsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHN0b3JlRG91YmxlKHNyYzIsIEFkZHJlc3MoZGVzdCwgb2Zmc2V0Lm1fdmFsdWUgKyA4
KSk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFk
ZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMzIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcykKICAgICB7CiAgICAgICAgIGlmICh0cnlTdG9yZVdpdGhPZmZzZXQ8MzI+KHNyYywg
YWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0y
MDY0LDcgKzIwNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlPDMyPihzcmMsIGFkZHJlc3Mp
OwogICAgIH0KIAotICAgIHZvaWQgc3RvcmUzMihUcnVzdGVkSW1tMzIgaW1tLCBJbXBsaWNpdEFk
ZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVz
cyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKCFpbW0ubV92YWx1ZSkgewogICAgICAgICAg
ICAgc3RvcmUzMihBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwpAQCAtMjExNSw3ICsyMTE1
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbGFiZWw7CiAgICAgfQogCi0gICAgdm9pZCBz
dG9yZTE2KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lk
IHN0b3JlMTYoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAg
IGlmICh0cnlTdG9yZVdpdGhPZmZzZXQ8MTY+KHNyYywgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9m
ZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yMTc0LDcgKzIxNzQsNyBAQCBwdWJsaWM6
CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0cmIoc3JjLCBtZW1vcnlUZW1wUmVnaXN0ZXIsIDApOwog
ICAgIH0KIAotICAgIHZvaWQgc3RvcmU4KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3Mg
YWRkcmVzcykKKyAgICB2b2lkIHN0b3JlOChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNz
KQogICAgIHsKICAgICAgICAgaWYgKHRyeVN0b3JlV2l0aE9mZnNldDw4PihzcmMsIGFkZHJlc3Mu
YmFzZSwgYWRkcmVzcy5vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjE5NSw3ICsy
MTk1LDcgQEAgcHVibGljOgogICAgICAgICBzdG9yZTgoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVz
cyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRB
ZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVz
cyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgVHJ1c3RlZEltbTMyIGltbTgoc3RhdGljX2Nhc3Q8
aW50OF90PihpbW0ubV92YWx1ZSkpOwogICAgICAgICBpZiAoIWltbTgubV92YWx1ZSkgewpAQCAt
MjQ2MCw3ICsyNDYwLDcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5mZGl2PDMyPihk
ZXN0LCBvcDEsIG9wMik7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkRG91YmxlKEltcGxpY2l0QWRk
cmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWREb3VibGUoQWRk
cmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGlmICh0cnlM
b2FkV2l0aE9mZnNldDw2ND4oZGVzdCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCiAg
ICAgICAgICAgICByZXR1cm47CkBAIC0yNDg5LDcgKzI0ODksNyBAQCBwdWJsaWM6CiAgICAgICAg
IG1fYXNzZW1ibGVyLmxkcjw2ND4oZGVzdCwgbWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02NFJlZ2lz
dGVyczo6enIpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZEZsb2F0KEltcGxpY2l0QWRkcmVzcyBh
ZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRGbG9hdChBZGRyZXNzIGFk
ZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaWYgKHRyeUxvYWRXaXRo
T2Zmc2V0PDMyPihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KSkKICAgICAgICAg
ICAgIHJldHVybjsKQEAgLTI3NDIsNyArMjc0Miw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3Nl
bWJsZXIuZnNxcnQ8MzI+KGRlc3QsIHNyYyk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZURvdWJs
ZShGUFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0
b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAg
ICAgIGlmICh0cnlTdG9yZVdpdGhPZmZzZXQ8NjQ+KHNyYywgYWRkcmVzcy5iYXNlLCBhZGRyZXNz
Lm9mZnNldCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yNzcxLDcgKzI3NzEsNyBAQCBwdWJs
aWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0cjw2ND4oc3JjLCBhZGRyZXNzLmJhc2UsIG1lbW9y
eVRlbXBSZWdpc3Rlcik7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZUZsb2F0KEZQUmVnaXN0ZXJJ
RCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmVGbG9hdChGUFJl
Z2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBpZiAodHJ5U3Rv
cmVXaXRoT2Zmc2V0PDMyPihzcmMsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpKQogICAg
ICAgICAgICAgcmV0dXJuOwpAQCAtMjkyOCw3ICsyOTI4LDcgQEAgcHVibGljOgogCiAgICAgICAg
IHB1c2hQYWlyKHJlZywgcmVnKTsKICAgICAgICAgbW92ZShpbW0sIHJlZyk7Ci0gICAgICAgIHN0
b3JlNjQocmVnLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIHN0b3JlNjQocmVnLCBB
ZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyKSk7CiAgICAgICAgIGxvYWQ2NChBZGRyZXNzKHN0
YWNrUG9pbnRlclJlZ2lzdGVyLCA4KSwgcmVnKTsKICAgICB9CiAKQEAgLTI5NDYsMTQgKzI5NDYs
MTQgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgcG9wVG9SZXN0b3JlKEZQUmVnaXN0ZXJJRCBk
ZXN0KQogICAgIHsKLSAgICAgICAgbG9hZERvdWJsZShzdGFja1BvaW50ZXJSZWdpc3RlciwgZGVz
dCk7CisgICAgICAgIGxvYWREb3VibGUoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciksIGRl
c3QpOwogICAgICAgICBhZGQ2NChUcnVzdGVkSW1tMzIoMTYpLCBzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CiAgICAgfQogICAgIAogICAgIHZvaWQgcHVzaFRvU2F2ZShGUFJlZ2lzdGVySUQgc3JjKQog
ICAgIHsKICAgICAgICAgc3ViNjQoVHJ1c3RlZEltbTMyKDE2KSwgc3RhY2tQb2ludGVyUmVnaXN0
ZXIpOwotICAgICAgICBzdG9yZURvdWJsZShzcmMsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAg
ICAgICAgc3RvcmVEb3VibGUoc3JjLCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyKSk7CiAg
ICAgfQogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBwdHJkaWZmX3QgcHVzaFRvU2F2ZUJ5dGVPZmZz
ZXQoKSB7IHJldHVybiAxNjsgfQpAQCAtNDE2Myw3ICs0MTYzLDcgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gUGF0Y2hhYmxlSnVtcChyZXN1bHQpOwogICAgIH0KIAotICAgIEFMV0FZU19JTkxJ
TkUgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0aFBhdGNoKFRydXN0ZWRJbW1QdHIgaW5pdGlhbFZh
bHVlLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICBBTFdBWVNfSU5MSU5FIERhdGFMYWJl
bFB0ciBzdG9yZVB0cldpdGhQYXRjaChUcnVzdGVkSW1tUHRyIGluaXRpYWxWYWx1ZSwgQWRkcmVz
cyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxhYmVsUHRyIGxhYmVsKHRoaXMpOwogICAg
ICAgICBtb3ZlV2l0aEZpeGVkV2lkdGgoaW5pdGlhbFZhbHVlLCBnZXRDYWNoZWREYXRhVGVtcFJl
Z2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwpAQCAtNDE3MSw3ICs0MTcxLDcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gbGFiZWw7CiAgICAgfQogCi0gICAgQUxXQVlTX0lOTElORSBEYXRhTGFi
ZWxQdHIgc3RvcmVQdHJXaXRoUGF0Y2goSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgQUxX
QVlTX0lOTElORSBEYXRhTGFiZWxQdHIgc3RvcmVQdHJXaXRoUGF0Y2goQWRkcmVzcyBhZGRyZXNz
KQogICAgIHsKICAgICAgICAgcmV0dXJuIHN0b3JlUHRyV2l0aFBhdGNoKFRydXN0ZWRJbW1QdHIo
bnVsbHB0ciksIGFkZHJlc3MpOwogICAgIH0KQEAgLTQyMTYsMTM0ICs0MjE2LDEzNCBAQCBwdWJs
aWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmRtYklTSCgpOwogICAgIH0KICAgICAKLSAgICB2b2lk
IGxvYWRBY3E4U2lnbmVkRXh0ZW5kVG8zMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZEFjcThTaWduZWRFeHRlbmRUbzMyKEFkZHJlc3MgYWRk
cmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRhcjw4
PihkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAg
IHZvaWQgbG9hZEFjcTgoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkK
KyAgICB2b2lkIGxvYWRBY3E4KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKICAgICAgICAgbG9hZEFjcThTaWduZWRFeHRlbmRUbzMyKGFkZHJlc3MsIGRlc3QpOwogICAg
ICAgICBhbmQzMihUcnVzdGVkSW1tMzIoMHhmZiksIGRlc3QpOwogICAgIH0KICAgICAKLSAgICB2
b2lkIHN0b3JlUmVsOChSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisg
ICAgdm9pZCBzdG9yZVJlbDgoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7
CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHI8OD4oc3JjLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhh
ZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgbG9hZEFjcTE2U2lnbmVkRXh0ZW5kVG8z
MihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9h
ZEFjcTE2U2lnbmVkRXh0ZW5kVG8zMihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkYXI8MTY+KGRlc3QsIGV4dHJhY3RTaW1wbGVB
ZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBsb2FkQWNxMTYoSW1wbGlj
aXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRBY3ExNihB
ZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGxvYWRBY3Ex
NlNpZ25lZEV4dGVuZFRvMzIoYWRkcmVzcywgZGVzdCk7CiAgICAgICAgIGFuZDMyKFRydXN0ZWRJ
bW0zMigweGZmZmYpLCBkZXN0KTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBzdG9yZVJlbDE2KFJl
Z2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlUmVs
MTYoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLnN0bHI8MTY+KHNyYywgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAg
IH0KICAgICAKLSAgICB2b2lkIGxvYWRBY3EzMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVn
aXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZEFjcTMyKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRhcjwzMj4oZGVzdCwgZXh0
cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIGxvYWRB
Y3E2NChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQg
bG9hZEFjcTY0KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAg
ICAgbV9hc3NlbWJsZXIubGRhcjw2ND4oZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVz
cykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlUmVsMzIoUmVnaXN0ZXJJRCBkZXN0LCBJ
bXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlUmVsMzIoUmVnaXN0ZXJJRCBk
ZXN0LCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zdGxyPDMy
PihkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAg
IHZvaWQgc3RvcmVSZWw2NChSZWdpc3RlcklEIGRlc3QsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNz
KQorICAgIHZvaWQgc3RvcmVSZWw2NChSZWdpc3RlcklEIGRlc3QsIEFkZHJlc3MgYWRkcmVzcykK
ICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHI8NjQ+KGRlc3QsIGV4dHJhY3RTaW1wbGVB
ZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBsb2FkTGluazgoSW1wbGlj
aXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWRMaW5rOChB
ZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1i
bGVyLmxkeHI8OD4oZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0K
ICAgICAKLSAgICB2b2lkIGxvYWRMaW5rQWNxOChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVn
aXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZExpbmtBY3E4KEFkZHJlc3MgYWRkcmVzcywgUmVn
aXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRheHI8OD4oZGVzdCwg
ZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0
b3JlQ29uZDgoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3Rl
cklEIHJlc3VsdCkKKyAgICB2b2lkIHN0b3JlQ29uZDgoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcywgUmVnaXN0ZXJJRCByZXN1bHQpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5z
dHhyPDg+KHJlc3VsdCwgc3JjLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAg
fQogICAgIAotICAgIHZvaWQgc3RvcmVDb25kUmVsOChSZWdpc3RlcklEIHNyYywgSW1wbGljaXRB
ZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgcmVzdWx0KQorICAgIHZvaWQgc3RvcmVDb25kUmVs
OChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKICAg
ICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHhyPDg+KHJlc3VsdCwgc3JjLCBleHRyYWN0U2lt
cGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgbG9hZExpbmsxNihJ
bXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZExp
bmsxNihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1f
YXNzZW1ibGVyLmxkeHI8MTY+KGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsK
ICAgICB9CiAgICAgCi0gICAgdm9pZCBsb2FkTGlua0FjcTE2KEltcGxpY2l0QWRkcmVzcyBhZGRy
ZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkTGlua0FjcTE2KEFkZHJlc3MgYWRk
cmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRheHI8
MTY+KGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0g
ICAgdm9pZCBzdG9yZUNvbmQxNihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJl
c3MsIFJlZ2lzdGVySUQgcmVzdWx0KQorICAgIHZvaWQgc3RvcmVDb25kMTYoUmVnaXN0ZXJJRCBz
cmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCByZXN1bHQpCiAgICAgewogICAgICAgICBt
X2Fzc2VtYmxlci5zdHhyPDE2PihyZXN1bHQsIHNyYywgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRk
cmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlQ29uZFJlbDE2KFJlZ2lzdGVySUQg
c3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCByZXN1bHQpCisgICAgdm9p
ZCBzdG9yZUNvbmRSZWwxNihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3Rl
cklEIHJlc3VsdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0bHhyPDE2PihyZXN1bHQs
IHNyYywgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2
b2lkIGxvYWRMaW5rMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkK
KyAgICB2b2lkIGxvYWRMaW5rMzIoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZHhyPDMyPihkZXN0LCBleHRyYWN0U2ltcGxlQWRk
cmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgbG9hZExpbmtBY3EzMihJbXBs
aWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9hZExpbmtB
Y3EzMihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1f
YXNzZW1ibGVyLmxkYXhyPDMyPihkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7
CiAgICAgfQogICAgIAotICAgIHZvaWQgc3RvcmVDb25kMzIoUmVnaXN0ZXJJRCBzcmMsIEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKKyAgICB2b2lkIHN0b3JlQ29u
ZDMyKFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgcmVzdWx0KQog
ICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3R4cjwzMj4ocmVzdWx0LCBzcmMsIGV4dHJhY3RT
aW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBzdG9yZUNvbmRS
ZWwzMihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQg
cmVzdWx0KQorICAgIHZvaWQgc3RvcmVDb25kUmVsMzIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
YWRkcmVzcywgUmVnaXN0ZXJJRCByZXN1bHQpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5z
dGx4cjwzMj4ocmVzdWx0LCBzcmMsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAg
ICB9CiAgICAgCi0gICAgdm9pZCBsb2FkTGluazY0KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBS
ZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkTGluazY0KEFkZHJlc3MgYWRkcmVzcywgUmVn
aXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGR4cjw2ND4oZGVzdCwg
ZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIGxv
YWRMaW5rQWNxNjQoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB2b2lkIGxvYWRMaW5rQWNxNjQoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGF4cjw2ND4oZGVzdCwgZXh0cmFjdFNpbXBsZUFk
ZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlQ29uZDY0KFJlZ2lz
dGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCByZXN1bHQpCisg
ICAgdm9pZCBzdG9yZUNvbmQ2NChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIHJlc3VsdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0eHI8NjQ+KHJlc3Vs
dCwgc3JjLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAotICAg
IHZvaWQgc3RvcmVDb25kUmVsNjQoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRy
ZXNzLCBSZWdpc3RlcklEIHJlc3VsdCkKKyAgICB2b2lkIHN0b3JlQ29uZFJlbDY0KFJlZ2lzdGVy
SUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgcmVzdWx0KQogICAgIHsKICAgICAg
ICAgbV9hc3NlbWJsZXIuc3RseHI8NjQ+KHJlc3VsdCwgc3JjLCBleHRyYWN0U2ltcGxlQWRkcmVz
cyhhZGRyZXNzKSk7CiAgICAgfQpAQCAtNTIwNCw3ICs1MjA0LDcgQEAgcHJvdGVjdGVkOgogICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KICAgICAKLSAgICBSZWdp
c3RlcklEIGV4dHJhY3RTaW1wbGVBZGRyZXNzKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAg
IFJlZ2lzdGVySUQgZXh0cmFjdFNpbXBsZUFkZHJlc3MoQWRkcmVzcyBhZGRyZXNzKQogICAgIHsK
ICAgICAgICAgaWYgKCFhZGRyZXNzLm9mZnNldCkKICAgICAgICAgICAgIHJldHVybiBhZGRyZXNz
LmJhc2U7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjRFLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTTY0RS5oCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjRFLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM3MywxMjIgKzM3MywxMjIgQEAgcHVibGljOgogICAgICAgICAgICAgbV9hc3NlbWJs
ZXIucmV0YWIoKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdBZGQ4KFJlZ2lzdGVySUQg
c3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQg
YXRvbWljWGNoZ0FkZDgoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJ
RCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRhZGRhbDw4PihzcmMsIGRlc3Qs
IGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21p
Y1hjaGdBZGQxNihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lz
dGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdBZGQxNihSZWdpc3RlcklEIHNyYywgQWRk
cmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxl
ci5sZGFkZGFsPDE2PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsK
ICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdBZGQzMihSZWdpc3RlcklEIHNyYywgSW1wbGlj
aXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdB
ZGQzMihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGFkZGFsPDMyPihzcmMsIGRlc3QsIGV4dHJhY3RT
aW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdBZGQ2
NChSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVz
dCkKKyAgICB2b2lkIGF0b21pY1hjaGdBZGQ2NChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRy
ZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGFkZGFs
PDY0PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAK
LSAgICB2b2lkIGF0b21pY1hjaGdYb3I4KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3Mg
YWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgYXRvbWljWGNoZ1hvcjgoUmVnaXN0
ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAg
ICAgbV9hc3NlbWJsZXIubGRlb3JhbDw4PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNz
KGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdYb3IxNihSZWdpc3RlcklE
IHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lk
IGF0b21pY1hjaGdYb3IxNihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3Rl
cklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGVvcmFsPDE2PihzcmMsIGRl
c3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0
b21pY1hjaGdYb3IzMihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJl
Z2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdYb3IzMihSZWdpc3RlcklEIHNyYywg
QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2Vt
Ymxlci5sZGVvcmFsPDMyPihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3Mp
KTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdYb3I2NChSZWdpc3RlcklEIHNyYywgSW1w
bGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hj
aGdYb3I2NChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGVvcmFsPDY0PihzcmMsIGRlc3QsIGV4dHJh
Y3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGdP
cjgoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRl
c3QpCisgICAgdm9pZCBhdG9taWNYY2hnT3I4KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJl
c3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkc2V0YWw8
OD4oc3JjLCBkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogCi0g
ICAgdm9pZCBhdG9taWNYY2hnT3IxNihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFk
ZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hjaGdPcjE2KFJlZ2lzdGVy
SUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAg
IG1fYXNzZW1ibGVyLmxkc2V0YWw8MTY+KHNyYywgZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3Mo
YWRkcmVzcykpOwogICAgIH0KIAotICAgIHZvaWQgYXRvbWljWGNoZ09yMzIoUmVnaXN0ZXJJRCBz
cmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBh
dG9taWNYY2hnT3IzMihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklE
IGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZHNldGFsPDMyPihzcmMsIGRlc3Qs
IGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21p
Y1hjaGdPcjY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHZvaWQgYXRvbWljWGNoZ09yNjQoUmVnaXN0ZXJJRCBzcmMsIEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIu
bGRzZXRhbDw2ND4oc3JjLCBkZXN0LCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAg
ICAgfQogCi0gICAgdm9pZCBhdG9taWNYY2hnQ2xlYXI4KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgYXRvbWljWGNoZ0Ns
ZWFyOChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGNscmFsPDg+KHNyYywgZGVzdCwgZXh0cmFjdFNp
bXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KIAotICAgIHZvaWQgYXRvbWljWGNoZ0NsZWFy
MTYoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRl
c3QpCisgICAgdm9pZCBhdG9taWNYY2hnQ2xlYXIxNihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5sZGNs
cmFsPDE2PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9
CiAKLSAgICB2b2lkIGF0b21pY1hjaGdDbGVhcjMyKFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFk
ZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgYXRvbWljWGNoZ0NsZWFy
MzIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKICAgICAgICAgbV9hc3NlbWJsZXIubGRjbHJhbDwzMj4oc3JjLCBkZXN0LCBleHRyYWN0U2lt
cGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogCi0gICAgdm9pZCBhdG9taWNYY2hnQ2xlYXI2
NChSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVz
dCkKKyAgICB2b2lkIGF0b21pY1hjaGdDbGVhcjY0KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFk
ZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkY2xy
YWw8NjQ+KHNyYywgZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0K
IAotICAgIHZvaWQgYXRvbWljWGNoZzgoUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBhdG9taWNYY2hnOChSZWdpc3RlcklE
IHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBt
X2Fzc2VtYmxlci5zd3BhbDw4PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJl
c3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1hjaGcxNihSZWdpc3RlcklEIHNyYywgSW1w
bGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGF0b21pY1hj
aGcxNihSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zd3BhbDwxNj4oc3JjLCBkZXN0LCBleHRyYWN0U2lt
cGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogCi0gICAgdm9pZCBhdG9taWNYY2hnMzIoUmVn
aXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisg
ICAgdm9pZCBhdG9taWNYY2hnMzIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcywgUmVn
aXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3dwYWw8MzI+KHNyYywg
ZGVzdCwgZXh0cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KIAotICAgIHZvaWQg
YXRvbWljWGNoZzY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVn
aXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgYXRvbWljWGNoZzY0KFJlZ2lzdGVySUQgc3JjLCBBZGRy
ZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVy
LnN3cGFsPDY0PihzcmMsIGRlc3QsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJlc3MpKTsKICAg
ICB9CiAKLSAgICB2b2lkIGF0b21pY1N0cm9uZ0NBUzgoUmVnaXN0ZXJJRCBleHBlY3RlZEFuZFJl
c3VsdCwgUmVnaXN0ZXJJRCBuZXdWYWx1ZSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAg
dm9pZCBhdG9taWNTdHJvbmdDQVM4KFJlZ2lzdGVySUQgZXhwZWN0ZWRBbmRSZXN1bHQsIFJlZ2lz
dGVySUQgbmV3VmFsdWUsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fYXNzZW1i
bGVyLmNhc2FsPDg+KGV4cGVjdGVkQW5kUmVzdWx0LCBuZXdWYWx1ZSwgZXh0cmFjdFNpbXBsZUFk
ZHJlc3MoYWRkcmVzcykpOwogICAgIH0KIAotICAgIHZvaWQgYXRvbWljU3Ryb25nQ0FTMTYoUmVn
aXN0ZXJJRCBleHBlY3RlZEFuZFJlc3VsdCwgUmVnaXN0ZXJJRCBuZXdWYWx1ZSwgSW1wbGljaXRB
ZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBhdG9taWNTdHJvbmdDQVMxNihSZWdpc3RlcklEIGV4
cGVjdGVkQW5kUmVzdWx0LCBSZWdpc3RlcklEIG5ld1ZhbHVlLCBBZGRyZXNzIGFkZHJlc3MpCiAg
ICAgewogICAgICAgICBtX2Fzc2VtYmxlci5jYXNhbDwxNj4oZXhwZWN0ZWRBbmRSZXN1bHQsIG5l
d1ZhbHVlLCBleHRyYWN0U2ltcGxlQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogCi0gICAgdm9p
ZCBhdG9taWNTdHJvbmdDQVMzMihSZWdpc3RlcklEIGV4cGVjdGVkQW5kUmVzdWx0LCBSZWdpc3Rl
cklEIG5ld1ZhbHVlLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIGF0b21pY1N0
cm9uZ0NBUzMyKFJlZ2lzdGVySUQgZXhwZWN0ZWRBbmRSZXN1bHQsIFJlZ2lzdGVySUQgbmV3VmFs
dWUsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmNhc2FsPDMy
PihleHBlY3RlZEFuZFJlc3VsdCwgbmV3VmFsdWUsIGV4dHJhY3RTaW1wbGVBZGRyZXNzKGFkZHJl
c3MpKTsKICAgICB9CiAKLSAgICB2b2lkIGF0b21pY1N0cm9uZ0NBUzY0KFJlZ2lzdGVySUQgZXhw
ZWN0ZWRBbmRSZXN1bHQsIFJlZ2lzdGVySUQgbmV3VmFsdWUsIEltcGxpY2l0QWRkcmVzcyBhZGRy
ZXNzKQorICAgIHZvaWQgYXRvbWljU3Ryb25nQ0FTNjQoUmVnaXN0ZXJJRCBleHBlY3RlZEFuZFJl
c3VsdCwgUmVnaXN0ZXJJRCBuZXdWYWx1ZSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAg
ICAgbV9hc3NlbWJsZXIuY2FzYWw8NjQ+KGV4cGVjdGVkQW5kUmVzdWx0LCBuZXdWYWx1ZSwgZXh0
cmFjdFNpbXBsZUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCShyZXZp
c2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaAkod29ya2luZyBjb3B5KQpAQCAtMzcwLDE2ICszNzAsMTYgQEAgcHVibGlj
OgogICAgICAgICBBUk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6
bWFrZUVuY29kZWRJbW0oaW1tLm1fdmFsdWUpOwogICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQo
KSkgewogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MubV9wdHIpLCBhZGRy
ZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIGxvYWQ4KGFkZHJlc3NUZW1wUmVnaXN0ZXIs
IGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbG9hZDgoQWRkcmVzcyhhZGRyZXNzVGVt
cFJlZ2lzdGVyKSwgZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5v
cnIoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgYXJtSW1tKTsKLSAgICAgICAg
ICAgIHN0b3JlOChkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAg
ICAgICAgIHN0b3JlOChkYXRhVGVtcFJlZ2lzdGVyLCBBZGRyZXNzKGFkZHJlc3NUZW1wUmVnaXN0
ZXIpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihh
ZGRyZXNzLm1fcHRyKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBsb2FkOChh
ZGRyZXNzVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGxvYWQ4
KEFkZHJlc3MoYWRkcmVzc1RlbXBSZWdpc3RlciksIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgICAg
ICAgICAgbW92ZShpbW0sIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgbV9hc3Nl
bWJsZXIub3JyKGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NUZW1w
UmVnaXN0ZXIpOwogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MubV9wdHIp
LCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIHN0b3JlOChkYXRhVGVtcFJlZ2lz
dGVyLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIHN0b3JlOChkYXRhVGVtcFJl
Z2lzdGVyLCBBZGRyZXNzKGFkZHJlc3NUZW1wUmVnaXN0ZXIpKTsKICAgICAgICAgfQogICAgIH0K
IApAQCAtMzg4LDE2ICszODgsMTYgQEAgcHVibGljOgogICAgICAgICBBUk1UaHVtYkltbWVkaWF0
ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJbW0oaW1tLm1fdmFsdWUp
OwogICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkgewogICAgICAgICAgICAgbW92ZShUcnVz
dGVkSW1tUHRyKGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAg
IGxvYWQxNihhZGRyZXNzVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
ICAgIGxvYWQxNihBZGRyZXNzKGFkZHJlc3NUZW1wUmVnaXN0ZXIpLCBkYXRhVGVtcFJlZ2lzdGVy
KTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm9ycihkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVt
cFJlZ2lzdGVyLCBhcm1JbW0pOwotICAgICAgICAgICAgc3RvcmUxNihkYXRhVGVtcFJlZ2lzdGVy
LCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIHN0b3JlMTYoZGF0YVRlbXBSZWdp
c3RlciwgQWRkcmVzcyhhZGRyZXNzVGVtcFJlZ2lzdGVyKSk7CiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoZGVzdC5tX3B0ciksIGFkZHJlc3NUZW1wUmVn
aXN0ZXIpOwotICAgICAgICAgICAgbG9hZDE2KGFkZHJlc3NUZW1wUmVnaXN0ZXIsIGRhdGFUZW1w
UmVnaXN0ZXIpOworICAgICAgICAgICAgbG9hZDE2KEFkZHJlc3MoYWRkcmVzc1RlbXBSZWdpc3Rl
ciksIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgbW92ZShpbW0sIGFkZHJlc3NUZW1w
UmVnaXN0ZXIpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIub3JyKGRhdGFUZW1wUmVnaXN0ZXIs
IGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgbW92
ZShUcnVzdGVkSW1tUHRyKGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAg
ICAgICAgIHN0b3JlMTYoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7Cisg
ICAgICAgICAgICBzdG9yZTE2KGRhdGFUZW1wUmVnaXN0ZXIsIEFkZHJlc3MoYWRkcmVzc1RlbXBS
ZWdpc3RlcikpOwogICAgICAgICB9CiAgICAgfQogCkBAIC00MDksOSArNDA5LDkgQEAgcHVibGlj
OgogICAgIHZvaWQgb3IzMihSZWdpc3RlcklEIHNyYywgQWJzb2x1dGVBZGRyZXNzIGRlc3QpCiAg
ICAgewogICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoZGVzdC5tX3B0ciksIGFkZHJlc3NUZW1w
UmVnaXN0ZXIpOwotICAgICAgICBsb2FkMzIoYWRkcmVzc1RlbXBSZWdpc3RlciwgZGF0YVRlbXBS
ZWdpc3Rlcik7CisgICAgICAgIGxvYWQzMihBZGRyZXNzKGFkZHJlc3NUZW1wUmVnaXN0ZXIpLCBk
YXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgb3IzMihzcmMsIGRhdGFUZW1wUmVnaXN0ZXIpOwot
ICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwor
ICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIEFkZHJlc3MoYWRkcmVzc1RlbXBSZWdp
c3RlcikpOwogICAgIH0KIAogICAgIHZvaWQgb3IzMihUcnVzdGVkSW1tMzIgaW1tLCBBYnNvbHV0
ZUFkZHJlc3MgYWRkcmVzcykKQEAgLTQxOSwxNiArNDE5LDE2IEBAIHB1YmxpYzoKICAgICAgICAg
QVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VFbmNvZGVk
SW1tKGltbS5tX3ZhbHVlKTsKICAgICAgICAgaWYgKGFybUltbS5pc1ZhbGlkKCkpIHsKICAgICAg
ICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgYWRkcmVzc1RlbXBSZWdp
c3Rlcik7Ci0gICAgICAgICAgICBsb2FkMzIoYWRkcmVzc1RlbXBSZWdpc3RlciwgZGF0YVRlbXBS
ZWdpc3Rlcik7CisgICAgICAgICAgICBsb2FkMzIoQWRkcmVzcyhhZGRyZXNzVGVtcFJlZ2lzdGVy
KSwgZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5vcnIoZGF0YVRl
bXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgYXJtSW1tKTsKLSAgICAgICAgICAgIHN0b3Jl
MzIoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBz
dG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIEFkZHJlc3MoYWRkcmVzc1RlbXBSZWdpc3RlcikpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3Mu
bV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIGxvYWQzMihhZGRyZXNz
VGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGxvYWQzMihBZGRy
ZXNzKGFkZHJlc3NUZW1wUmVnaXN0ZXIpLCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAg
IG1vdmUoaW1tLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVy
Lm9ycihkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVtcFJlZ2lz
dGVyKTsKICAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgYWRk
cmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIs
IGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lz
dGVyLCBBZGRyZXNzKGFkZHJlc3NUZW1wUmVnaXN0ZXIpKTsKICAgICAgICAgfQogICAgIH0KIApA
QCAtNzU0LDcgKzc1NCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiBwdWJsaWM6Ci0gICAgdm9pZCBs
b2FkMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lk
IGxvYWQzMihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAg
IGxvYWQzMihzZXR1cEFybUFkZHJlc3MoYWRkcmVzcyksIGRlc3QpOwogICAgIH0KQEAgLTgwMCwx
MiArODAwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAg
ICB2b2lkIGxvYWQ4KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisg
ICAgdm9pZCBsb2FkOChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIGxvYWQ4KHNldHVwQXJtQWRkcmVzcyhhZGRyZXNzKSwgZGVzdCk7CiAgICAgfQogCi0g
ICAgdm9pZCBsb2FkOFNpZ25lZEV4dGVuZFRvMzIoSW1wbGljaXRBZGRyZXNzLCBSZWdpc3RlcklE
KQorICAgIHZvaWQgbG9hZDhTaWduZWRFeHRlbmRUbzMyKEFkZHJlc3MsIFJlZ2lzdGVySUQpCiAg
ICAgewogICAgICAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsKICAgICB9CkBAIC04MjMs
NyArODIzLDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZDgoY29uc3Qgdm9pZCogYWRkcmVzcywg
UmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJl
c3MpLCBkZXN0KTsKLSAgICAgICAgbG9hZDgoZGVzdCwgZGVzdCk7CisgICAgICAgIGxvYWQ4KEFk
ZHJlc3MoZGVzdCksIGRlc3QpOwogICAgIH0KIAogICAgIERhdGFMYWJlbDMyIGxvYWQzMldpdGhB
ZGRyZXNzT2Zmc2V0UGF0Y2goQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCkBAIC04
NjIsNyArODYyLDcgQEAgcHVibGljOgogICAgICAgICBsb2FkMTZTaWduZWRFeHRlbmRUbzMyKHNl
dHVwQXJtQWRkcmVzcyhhZGRyZXNzKSwgZGVzdCk7CiAgICAgfQogICAgIAotICAgIHZvaWQgbG9h
ZDE2KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBs
b2FkMTYoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBB
Uk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZVVJbnQxMihh
ZGRyZXNzLm9mZnNldCk7CiAgICAgICAgIGlmIChhcm1JbW0uaXNWYWxpZCgpKQpAQCAtODczLDcg
Kzg3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICB2b2lkIGxvYWQx
NlNpZ25lZEV4dGVuZFRvMzIoSW1wbGljaXRBZGRyZXNzLCBSZWdpc3RlcklEKQorICAgIHZvaWQg
bG9hZDE2U2lnbmVkRXh0ZW5kVG8zMihBZGRyZXNzLCBSZWdpc3RlcklEKQogICAgIHsKICAgICAg
ICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7CiAgICAgfQpAQCAtOTAzLDcgKzkwMyw3IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGxhYmVsOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmUz
MihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9y
ZTMyKFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBzdG9y
ZTMyKHNyYywgc2V0dXBBcm1BZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CkBAIC05MTMsNyArOTEz
LDcgQEAgcHVibGljOgogICAgICAgICBzdG9yZTMyKHNyYywgc2V0dXBBcm1BZGRyZXNzKGFkZHJl
c3MpKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGlj
aXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTMyKFRydXN0ZWRJbW0zMiBpbW0sIEFk
ZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1vdmUoaW1tLCBkYXRhVGVtcFJlZ2lzdGVy
KTsKICAgICAgICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVyLCBzZXR1cEFybUFkZHJlc3MoYWRk
cmVzcykpOwpAQCAtOTcyLDcgKzk3Miw3IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmU4KHNyYywg
QXJtQWRkcmVzcyhhZGRycmVnLCAwKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgc3RvcmUxNihS
ZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTE2
KFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBzdG9yZTE2
KHNyYywgc2V0dXBBcm1BZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CkBAIC0xMDQzLDcgKzEwNDMs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50QWJzKCkg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFJv
dW5kaW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgbG9hZERvdWJsZShJbXBsaWNp
dEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkRG91Ymxl
KEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBSZWdp
c3RlcklEIGJhc2UgPSBhZGRyZXNzLmJhc2U7CiAgICAgICAgIGludDMyX3Qgb2Zmc2V0ID0gYWRk
cmVzcy5vZmZzZXQ7CkBAIC0xMDU4LDcgKzEwNTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNz
ZW1ibGVyLnZsZHIoZGVzdCwgYmFzZSwgb2Zmc2V0KTsKICAgICB9CiAKLSAgICB2b2lkIGxvYWRG
bG9hdChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9p
ZCBsb2FkRmxvYXQoQWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAg
ICAgICAgIFJlZ2lzdGVySUQgYmFzZSA9IGFkZHJlc3MuYmFzZTsKICAgICAgICAgaW50MzJfdCBv
ZmZzZXQgPSBhZGRyZXNzLm9mZnNldDsKQEAgLTExMTIsNyArMTExMiw3IEBAIHB1YmxpYzoKICAg
ICAgICAgbV9hc3NlbWJsZXIudmxkcihkZXN0LCBhZGRyZXNzVGVtcFJlZ2lzdGVyLCAwKTsKICAg
ICB9CiAKLSAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRk
cmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgQWRk
cmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgUmVnaXN0ZXJJRCBiYXNlID0gYWRkcmVzcy5i
YXNlOwogICAgICAgICBpbnQzMl90IG9mZnNldCA9IGFkZHJlc3Mub2Zmc2V0OwpAQCAtMTEyNyw3
ICsxMTI3LDcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci52c3RyKHNyYywgYmFzZSwg
b2Zmc2V0KTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlRmxvYXQoRlBSZWdpc3RlcklEIHNyYywg
SW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZUZsb2F0KEZQUmVnaXN0ZXJJ
RCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIFJlZ2lzdGVySUQgYmFzZSA9
IGFkZHJlc3MuYmFzZTsKICAgICAgICAgaW50MzJfdCBvZmZzZXQgPSBhZGRyZXNzLm9mZnNldDsK
QEAgLTExNDUsNyArMTE0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVn
aXN0ZXJJRCBzcmMsIFRydXN0ZWRJbW1QdHIgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1vdmUo
YWRkcmVzcywgYWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAgICAgIHN0b3JlRG91YmxlKHNyYywg
YWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAgIHN0b3JlRG91YmxlKHNyYywgQWRkcmVzcyhh
ZGRyZXNzVGVtcFJlZ2lzdGVyKSk7CiAgICAgfQogCiAgICAgdm9pZCBzdG9yZURvdWJsZShGUFJl
Z2lzdGVySUQgc3JjLCBCYXNlSW5kZXggYWRkcmVzcykKQEAgLTIxMzIsMTMgKzIxMzIsMTMgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gUGF0Y2hhYmxlSnVtcChyZXN1bHQpOwogICAgIH0KIAot
ICAgIEFMV0FZU19JTkxJTkUgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0aFBhdGNoKFRydXN0ZWRJ
bW1QdHIgaW5pdGlhbFZhbHVlLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICBBTFdBWVNf
SU5MSU5FIERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQYXRjaChUcnVzdGVkSW1tUHRyIGluaXRp
YWxWYWx1ZSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgRGF0YUxhYmVsUHRyIGxh
YmVsID0gbW92ZVdpdGhQYXRjaChpbml0aWFsVmFsdWUsIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAg
ICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgICAgICByZXR1cm4g
bGFiZWw7CiAgICAgfQotICAgIEFMV0FZU19JTkxJTkUgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0
aFBhdGNoKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKSB7IHJldHVybiBzdG9yZVB0cldpdGhQYXRj
aChUcnVzdGVkSW1tUHRyKG51bGxwdHIpLCBhZGRyZXNzKTsgfQorICAgIEFMV0FZU19JTkxJTkUg
RGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0aFBhdGNoKEFkZHJlc3MgYWRkcmVzcykgeyByZXR1cm4g
c3RvcmVQdHJXaXRoUGF0Y2goVHJ1c3RlZEltbVB0cihudWxscHRyKSwgYWRkcmVzcyk7IH0KIAog
ICAgIHRlbXBsYXRlPFB0clRhZyByZXN1bHRUYWcsIFB0clRhZyBsb2NhdGlvblRhZz4KICAgICBz
dGF0aWMgRnVuY3Rpb25QdHI8cmVzdWx0VGFnPiByZWFkQ2FsbFRhcmdldChDb2RlTG9jYXRpb25D
YWxsPGxvY2F0aW9uVGFnPiBjYWxsKQpAQCAtMjI0OSwxNSArMjI0OSw2IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgcmV0dXJuIEFybUFkZHJlc3MoYWRkcmVzcy5iYXNlLCBhZGRyZXNzVGVtcFJlZ2lz
dGVyKTsKICAgICB9CiAKLSAgICBBcm1BZGRyZXNzIHNldHVwQXJtQWRkcmVzcyhJbXBsaWNpdEFk
ZHJlc3MgYWRkcmVzcykKLSAgICB7Ci0gICAgICAgIGlmICgoYWRkcmVzcy5vZmZzZXQgPj0gLTB4
ZmYpICYmIChhZGRyZXNzLm9mZnNldCA8PSAweGZmZikpCi0gICAgICAgICAgICByZXR1cm4gQXJt
QWRkcmVzcyhhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KTsKLQotICAgICAgICBtb3ZlKFRy
dXN0ZWRJbW0zMihhZGRyZXNzLm9mZnNldCksIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwotICAgICAg
ICByZXR1cm4gQXJtQWRkcmVzcyhhZGRyZXNzLmJhc2UsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwot
ICAgIH0KLQogICAgIFJlZ2lzdGVySUQgbWFrZUJhc2VJbmRleEJhc2UoQmFzZUluZGV4IGFkZHJl
c3MpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mub2Zmc2V0KQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCShy
ZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyTUlQUy5oCSh3b3JraW5nIGNvcHkpCkBAIC05MTcsNyArOTE3LDcgQEAgcHVibGlj
OgogICAgIC8vIHJlZ2lzdGVyIGlzIHBhc3NlZC4KIAogICAgIC8qIE5lZWQgdG8gdXNlIHplcm8t
ZXh0ZW5lZCBsb2FkIGJ5dGUgZm9yIGxvYWQ4LiAgKi8KLSAgICB2b2lkIGxvYWQ4KEltcGxpY2l0
QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkOChBZGRyZXNz
IGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGlmIChhZGRyZXNzLm9m
ZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKICAgICAgICAgICAgICYm
ICFtX2ZpeGVkV2lkdGgpCkBAIC05NzYsNyArOTc2LDcgQEAgcHVibGljOgogICAgICAgICB9CiAg
ICAgfQogCi0gICAgdm9pZCBsb2FkOFNpZ25lZEV4dGVuZFRvMzIoSW1wbGljaXRBZGRyZXNzIGFk
ZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWQ4U2lnbmVkRXh0ZW5kVG8zMihB
ZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGlmIChhZGRy
ZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKICAgICAgICAg
ICAgICYmICFtX2ZpeGVkV2lkdGgpCkBAIC0xMDM2LDcgKzEwMzYsNyBAQCBwdWJsaWM6CiAgICAg
fQogCiAKLSAgICB2b2lkIGxvYWQzMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJ
RCBkZXN0KQorICAgIHZvaWQgbG9hZDMyKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKICAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNz
Lm9mZnNldCA8PSAzMjc2NwogICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkKQEAgLTEyMzMs
NyArMTIzMyw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvKiBOZWVkIHRvIHVzZSB6ZXJvLWV4
dGVuZWQgbG9hZCBoYWxmLXdvcmQgZm9yIGxvYWQxNi4gICovCi0gICAgdm9pZCBsb2FkMTYoSW1w
bGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxvYWQxNihB
ZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGlmIChhZGRy
ZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKICAgICAgICAg
ICAgICYmICFtX2ZpeGVkV2lkdGgpCkBAIC0xMzI3LDcgKzEzMjcsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBkYXRhTGFiZWw7CiAgICAgfQogCi0gICAgdm9pZCBzdG9yZTgoUmVnaXN0ZXJJ
RCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmU4KFJlZ2lzdGVy
SUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBpZiAoYWRkcmVzcy5vZmZz
ZXQgPj0gLTMyNzY4ICYmIGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CiAgICAgICAgICAgICAmJiAh
bV9maXhlZFdpZHRoKQpAQCAtMTQwNiw3ICsxNDA2LDcgQEAgcHVibGljOgogICAgICAgICB9CiAg
ICAgfQogCi0gICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNz
IGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBhZGRy
ZXNzKQogICAgIHsKICAgICAgICAgVHJ1c3RlZEltbTMyIGltbTgoc3RhdGljX2Nhc3Q8aW50OF90
PihpbW0ubV92YWx1ZSkpOwogICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYm
IGFkZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CkBAIC0xNDUwLDcgKzE0NTAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lkIHN0b3JlMTYoUmVnaXN0ZXJJRCBzcmMsIEltcGxp
Y2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmUxNihSZWdpc3RlcklEIHNyYywgQWRk
cmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2
OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NwogICAgICAgICAgICAgJiYgIW1fZml4ZWRXaWR0
aCkgewpAQCAtMTQ4OCw3ICsxNDg4LDcgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0g
ICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykK
KyAgICB2b2lkIHN0b3JlMzIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7
CiAgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQg
PD0gMzI3NjcKICAgICAgICAgICAgICYmICFtX2ZpeGVkV2lkdGgpCkBAIC0xNTI2LDcgKzE1MjYs
NyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lkIHN0b3JlMzIoVHJ1c3Rl
ZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTMyKFRy
dXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIGlmIChhZGRy
ZXNzLm9mZnNldCA+PSAtMzI3NjggJiYgYWRkcmVzcy5vZmZzZXQgPD0gMzI3NjcKICAgICAgICAg
ICAgICYmICFtX2ZpeGVkV2lkdGgpIHsKQEAgLTI5MTIsNyArMjkxMiw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIHRlbXA7CiAgICAgfQogCi0gICAgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0
aFBhdGNoKFRydXN0ZWRJbW1QdHIgaW5pdGlhbFZhbHVlLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVz
cykKKyAgICBEYXRhTGFiZWxQdHIgc3RvcmVQdHJXaXRoUGF0Y2goVHJ1c3RlZEltbVB0ciBpbml0
aWFsVmFsdWUsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fZml4ZWRXaWR0aCA9
IHRydWU7CiAgICAgICAgIERhdGFMYWJlbFB0ciBkYXRhTGFiZWwgPSBtb3ZlV2l0aFBhdGNoKGlu
aXRpYWxWYWx1ZSwgZGF0YVRlbXBSZWdpc3Rlcik7CkBAIC0yOTIxLDcgKzI5MjEsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBkYXRhTGFiZWw7CiAgICAgfQogCi0gICAgRGF0YUxhYmVsUHRy
IHN0b3JlUHRyV2l0aFBhdGNoKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIERhdGFMYWJl
bFB0ciBzdG9yZVB0cldpdGhQYXRjaChBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBy
ZXR1cm4gc3RvcmVQdHJXaXRoUGF0Y2goVHJ1c3RlZEltbVB0cihudWxscHRyKSwgYWRkcmVzcyk7
CiAgICAgfQpAQCAtMjk0Nyw3ICsyOTQ3LDcgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQog
Ci0gICAgdm9pZCBsb2FkRmxvYXQoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJ
RCBkZXN0KQorICAgIHZvaWQgbG9hZEZsb2F0KEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklE
IGRlc3QpCiAgICAgewogICAgICAgICBpZiAoYWRkcmVzcy5vZmZzZXQgPj0gLTMyNzY4ICYmIGFk
ZHJlc3Mub2Zmc2V0IDw9IDMyNzY3CiAgICAgICAgICAgICAmJiAhbV9maXhlZFdpZHRoKSB7CkBA
IC0yOTY0LDcgKzI5NjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lk
IGxvYWREb3VibGUoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQor
ICAgIHZvaWQgbG9hZERvdWJsZShBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQog
ICAgIHsKICNpZiBXVEZfTUlQU19JU0EoMSkKICAgICAgICAgLyoKQEAgLTMwODYsNyArMzA4Niw3
IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAgIHZvaWQgc3RvcmVGbG9hdChGUFJl
Z2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlRmxv
YXQoRlBSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYg
KGFkZHJlc3Mub2Zmc2V0ID49IC0zMjc2OCAmJiBhZGRyZXNzLm9mZnNldCA8PSAzMjc2NwogICAg
ICAgICAgICAgJiYgIW1fZml4ZWRXaWR0aCkKQEAgLTMxMDMsNyArMzEwMyw3IEBAIHB1YmxpYzoK
ICAgICAgICAgfQogICAgIH0KIAotICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3RlcklEIHNy
YywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZURvdWJsZShGUFJlZ2lz
dGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogI2lmIFdURl9NSVBTX0lTQSgxKQog
ICAgICAgICAvKgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4NkNvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkocmV2aXNpb24gMjgzOTIzKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjEwLDcgKzEyMTAsNyBAQCBwdWJsaWM6CiAgICAgLy8gb3Bl
cmFuZCBvYmplY3RzIHRvIGxvYWRzIGFuZCBzdG9yZSB3aWxsIGJlIGltcGxpY2l0bHkgY29uc3Ry
dWN0ZWQgaWYgYQogICAgIC8vIHJlZ2lzdGVyIGlzIHBhc3NlZC4KIAotICAgIHZvaWQgbG9hZDMy
KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2Fk
MzIoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fz
c2VtYmxlci5tb3ZsX21yKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGRlc3QpOwogICAg
IH0KQEAgLTEyMjUsNyArMTIyNSw3IEBAIHB1YmxpYzoKICAgICAgICAgbG9hZDMyKGFkZHJlc3Ms
IGRlc3QpOwogICAgIH0KIAotICAgIHZvaWQgbG9hZDE2VW5hbGlnbmVkKEltcGxpY2l0QWRkcmVz
cyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBsb2FkMTZVbmFsaWduZWQoQWRk
cmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBsb2FkMTYoYWRk
cmVzcywgZGVzdCk7CiAgICAgfQpAQCAtMTI2OCw3ICsxMjY4LDcgQEAgcHVibGljOgogICAgICAg
ICBtX2Fzc2VtYmxlci5tb3Z6YmxfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRk
cmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSwgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2Fk
OChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgbG9h
ZDgoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fz
c2VtYmxlci5tb3Z6YmxfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgZGVzdCk7CiAg
ICAgfQpAQCAtMTI3OCw3ICsxMjc4LDcgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5t
b3ZzYmxfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRk
cmVzcy5zY2FsZSwgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkOFNpZ25lZEV4dGVuZFRv
MzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB2b2lkIGxv
YWQ4U2lnbmVkRXh0ZW5kVG8zMihBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAg
ICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNibF9tcihhZGRyZXNzLm9mZnNldCwgYWRkcmVz
cy5iYXNlLCBkZXN0KTsKICAgICB9CkBAIC0xMjkzLDcgKzEyOTMsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIG1fYXNzZW1ibGVyLm1vdnNibF9ycihzcmMsIGRlc3QpOwogICAgIH0KICAgICAKLSAgICB2
b2lkIGxvYWQxNihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAg
IHZvaWQgbG9hZDE2KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAg
ICAgICAgbV9hc3NlbWJsZXIubW92endsX21yKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2Us
IGRlc3QpOwogICAgIH0KQEAgLTEzMDMsMTEgKzEzMDMsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1f
YXNzZW1ibGVyLm1vdnp3bF9tcihhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNz
LmluZGV4LCBhZGRyZXNzLnNjYWxlLCBkZXN0KTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBsb2Fk
MTYoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCi0gICAgewotICAgICAgICBtX2Fz
c2VtYmxlci5tb3Z6d2xfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgZGVzdCk7Ci0g
ICAgfQotCiAgICAgdm9pZCBsb2FkMTZTaWduZWRFeHRlbmRUbzMyKEJhc2VJbmRleCBhZGRyZXNz
LCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5tb3Zzd2xfbXIo
YWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2Fs
ZSwgZGVzdCk7CkBAIC0xMzUyLDcgKzEzNDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBE
YXRhTGFiZWwzMih0aGlzKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlMzIoUmVnaXN0ZXJJRCBz
cmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZvaWQgc3RvcmUzMihSZWdpc3RlcklE
IHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92bF9y
bShzcmMsIGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KQEAgLTEzNjIsNyAr
MTM1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubW92bF9ybShzcmMsIGFkZHJl
c3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOwog
ICAgIH0KIAotICAgIHZvaWQgc3RvcmUzMihUcnVzdGVkSW1tMzIgaW1tLCBJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBh
ZGRyZXNzKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92bF9pMzJtKGltbS5tX3ZhbHVl
LCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CkBAIC0xNDY5LDcgKzE0NjQs
NyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdndfaW0oc3RhdGljX2Nhc3Q8aW50
MTZfdD4oaW1tLm1fdmFsdWUpLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNz
LmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JlMTYoVHJ1c3Rl
ZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTE2KFRy
dXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1fYXNzZW1i
bGVyLm1vdndfaW0oc3RhdGljX2Nhc3Q8aW50MTZfdD4oaW1tLm1fdmFsdWUpLCBhZGRyZXNzLm9m
ZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CkBAIC0xNDg4LDExICsxNDgzLDExIEBAIHB1Ymxp
YzoKICAgICAgICAgbV9hc3NlbWJsZXIubW92c2RfbXIoYWRkcmVzcy5hc1B0cigpLCBkZXN0KTsK
ICNlbHNlCiAgICAgICAgIG1vdmUoYWRkcmVzcywgc2NyYXRjaFJlZ2lzdGVyKCkpOwotICAgICAg
ICBsb2FkRG91YmxlKHNjcmF0Y2hSZWdpc3RlcigpLCBkZXN0KTsKKyAgICAgICAgbG9hZERvdWJs
ZShBZGRyZXNzKHNjcmF0Y2hSZWdpc3RlcigpKSwgZGVzdCk7CiAjZW5kaWYKICAgICB9CiAKLSAg
ICB2b2lkIGxvYWREb3VibGUoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHZvaWQgbG9hZERvdWJsZShBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBk
ZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92c2RfbXIoYWRkcmVzcy5vZmZzZXQs
IGFkZHJlc3MuYmFzZSwgZGVzdCk7CiAgICAgfQpAQCAtMTUwOCwxMSArMTUwMywxMSBAQCBwdWJs
aWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNzX21yKGFkZHJlc3MuYXNQdHIoKSwgZGVzdCk7
CiAjZWxzZQogICAgICAgICBtb3ZlKGFkZHJlc3MsIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAg
ICAgbG9hZEZsb2F0KHNjcmF0Y2hSZWdpc3RlcigpLCBkZXN0KTsKKyAgICAgICAgbG9hZEZsb2F0
KEFkZHJlc3Moc2NyYXRjaFJlZ2lzdGVyKCkpLCBkZXN0KTsKICNlbmRpZgogICAgIH0KIAotICAg
IHZvaWQgbG9hZEZsb2F0KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVz
dCkKKyAgICB2b2lkIGxvYWRGbG9hdChBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92c3NfbXIoYWRkcmVzcy5vZmZzZXQsIGFk
ZHJlc3MuYmFzZSwgZGVzdCk7CiAgICAgfQpAQCAtMTUyMiw3ICsxNTE3LDcgQEAgcHVibGljOgog
ICAgICAgICBtX2Fzc2VtYmxlci5tb3Zzc19tcihhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNl
LCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlLCBkZXN0KTsKICAgICB9CiAKLSAgICB2b2lk
IHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQor
ICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQog
ICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92c2Rfcm0oc3JjLCBhZGRyZXNzLm9mZnNldCwg
YWRkcmVzcy5iYXNlKTsKICAgICB9CkBAIC0xNTMyLDcgKzE1MjcsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIG1fYXNzZW1ibGVyLm1vdnNkX3JtKHNyYywgYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFz
ZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CiAgICAgfQogCi0gICAgdm9pZCBzdG9y
ZUZsb2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHZv
aWQgc3RvcmVGbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewog
ICAgICAgICBtX2Fzc2VtYmxlci5tb3Zzc19ybShzcmMsIGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNz
LmJhc2UpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODZfNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgJKHJldmlzaW9uIDI4MzkyMykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAkod29y
a2luZyBjb3B5KQpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvYWQ4KGNv
bnN0IHZvaWQqIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1vdmUo
VHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgZGVzdCk7Ci0gICAgICAgIGxvYWQ4KGRlc3QsIGRlc3Qp
OworICAgICAgICBsb2FkOChBZGRyZXNzKGRlc3QpLCBkZXN0KTsKICAgICB9CiAKICAgICB2b2lk
IGxvYWQxNihFeHRlbmRlZEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQpAQCAtMTMy
LDcgKzEzMiw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmxfbUVBWChh
ZGRyZXNzKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIo
YWRkcmVzcyksIGRlc3QpOwotICAgICAgICAgICAgbG9hZDMyKGRlc3QsIGRlc3QpOworICAgICAg
ICAgICAgbG9hZDMyKEFkZHJlc3MoZGVzdCksIGRlc3QpOwogICAgICAgICB9CiAgICAgfQogCkBA
IC0xNTEsNyArMTUxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc3RvcmUzMihUcnVzdGVkSW1tMzIg
aW1tLCB2b2lkKiBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFk
ZHJlc3MpLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAgIHN0b3JlMzIoaW1tLCBzY3JhdGNo
UmVnaXN0ZXIoKSk7CisgICAgICAgIHN0b3JlMzIoaW1tLCBBZGRyZXNzKHNjcmF0Y2hSZWdpc3Rl
cigpKSk7CiAgICAgfQogCiAgICAgdm9pZCBzdG9yZTMyKFJlZ2lzdGVySUQgc291cmNlLCB2b2lk
KiBhZGRyZXNzKQpAQCAtMTYwLDcgKzE2MCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLm1vdmxfRUFYbShhZGRyZXNzKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBt
b3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAg
ICAgIHN0b3JlMzIoc291cmNlLCBzY3JhdGNoUmVnaXN0ZXIoKSk7CisgICAgICAgICAgICBzdG9y
ZTMyKHNvdXJjZSwgQWRkcmVzcyhzY3JhdGNoUmVnaXN0ZXIoKSkpOwogICAgICAgICB9CiAgICAg
fQogICAgIApAQCAtOTE4LDcgKzkxOCw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIu
bm90cV9tKGRlc3Qub2Zmc2V0LCBkZXN0LmJhc2UsIGRlc3QuaW5kZXgsIGRlc3Quc2NhbGUpOwog
ICAgIH0KIAotICAgIHZvaWQgbG9hZDY0KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3Rl
cklEIGRlc3QpCisgICAgdm9pZCBsb2FkNjQoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRl
c3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZxX21yKGFkZHJlc3Mub2Zmc2V0LCBh
ZGRyZXNzLmJhc2UsIGRlc3QpOwogICAgIH0KQEAgLTkzNCw3ICs5MzQsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZxX21FQVgoYWRkcmVzcyk7CiAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBkZXN0KTsKLSAgICAg
ICAgICAgIGxvYWQ2NChkZXN0LCBkZXN0KTsKKyAgICAgICAgICAgIGxvYWQ2NChBZGRyZXNzKGRl
c3QpLCBkZXN0KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtOTUyLDcgKzk1Miw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIERhdGFMYWJlbENvbXBhY3QodGhpcyk7CiAgICAgfQogCi0gICAg
dm9pZCBzdG9yZTY0KFJlZ2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAg
ICB2b2lkIHN0b3JlNjQoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLm1vdnFfcm0oc3JjLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5i
YXNlKTsKICAgICB9CkBAIC05NjgsMTEgKzk2OCwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5tb3ZxX0VBWG0oYWRkcmVzcyk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAg
ICAgICAgICBzdG9yZTY0KHNyYywgc2NyYXRjaFJlZ2lzdGVyKCkpOworICAgICAgICAgICAgc3Rv
cmU2NChzcmMsIEFkZHJlc3Moc2NyYXRjaFJlZ2lzdGVyKCkpKTsKICAgICAgICAgfQogICAgIH0K
IAotICAgIHZvaWQgc3RvcmU2NChUcnVzdGVkSW1tMzIgaW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRk
cmVzcykKKyAgICB2b2lkIHN0b3JlNjQoVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBhZGRyZXNz
KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92cV9pMzJtKGltbS5tX3ZhbHVlLCBhZGRy
ZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CkBAIC05ODcsNyArOTg3LDcgQEAgcHVi
bGljOgogICAgICAgICBpZiAoQ0FOX1NJR05fRVhURU5EXzMyXzY0KGltbS5tX3ZhbHVlKSkgewog
ICAgICAgICAgICAgYXV0byBhZGRyZXNzUmVnID0gc2NyYXRjaFJlZ2lzdGVyKCk7CiAgICAgICAg
ICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIGFkZHJlc3NSZWcpOwotICAgICAgICAg
ICAgc3RvcmU2NChUcnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaW1tLm1fdmFsdWUp
KSwgYWRkcmVzc1JlZyk7CisgICAgICAgICAgICBzdG9yZTY0KFRydXN0ZWRJbW0zMihzdGF0aWNf
Y2FzdDxpbnQzMl90PihpbW0ubV92YWx1ZSkpLCBBZGRyZXNzKGFkZHJlc3NSZWcpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC05OTgsNyArOTk4LDcgQEAgcHVibGljOgog
ICAgICAgICBzd2FwKHNyYywgWDg2UmVnaXN0ZXJzOjplYXgpOwogICAgIH0KIAotICAgIHZvaWQg
c3RvcmU2NChUcnVzdGVkSW1tNjQgaW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB2
b2lkIHN0b3JlNjQoVHJ1c3RlZEltbTY0IGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAg
ICAgICAgaWYgKENBTl9TSUdOX0VYVEVORF8zMl82NChpbW0ubV92YWx1ZSkpIHsKICAgICAgICAg
ICAgIHN0b3JlNjQoVHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMyX3Q+KGltbS5tX3ZhbHVl
KSksIGFkZHJlc3MpOwpAQCAtMTUyNCw3ICsxNTI0LDcgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gYnJhbmNoMzIoY29uZCwgbGVmdCwgc2NyYXRjaFJlZ2lzdGVyKCkpOwogICAgIH0KIAotICAg
IERhdGFMYWJlbFB0ciBzdG9yZVB0cldpdGhQYXRjaChUcnVzdGVkSW1tUHRyIGluaXRpYWxWYWx1
ZSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgRGF0YUxhYmVsUHRyIHN0b3JlUHRyV2l0
aFBhdGNoKFRydXN0ZWRJbW1QdHIgaW5pdGlhbFZhbHVlLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAg
ewogICAgICAgICBEYXRhTGFiZWxQdHIgbGFiZWwgPSBtb3ZlV2l0aFBhdGNoKGluaXRpYWxWYWx1
ZSwgc2NyYXRjaFJlZ2lzdGVyKCkpOwogICAgICAgICBzdG9yZTY0KHNjcmF0Y2hSZWdpc3Rlcigp
LCBhZGRyZXNzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1h
c20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVz
dG1hc20uY3BwCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL3Rlc3RtYXNtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAzLDE2ICszMDMsMTYgQEAg
dm9pZCB0ZXN0QnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKGRvdQogICAgICAgICBqaXQuc3Vi
UHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHN0YWNrQWxpZ25tZW50Qnl0ZXMoKSksIE1h
Y3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgIGlmIChpc0JpZ0Vu
ZGlhbikgewogICAgICAgICAgICAgaml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIodmFsQXNVSW50ID4+IDMyKSwKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlcikpOwogICAgICAgICAgICAg
aml0LnN0b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIodmFsQXNVSW50ICYgMHhmZmZm
ZmZmZiksCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3Nl
bWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCA0KSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMih2YWxBc1VJbnQg
JiAweGZmZmZmZmZmKSwKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1h
Y3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlcikpOwogICAgICAgICAgICAgaml0LnN0
b3JlMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIodmFsQXNVSW50ID4+IDMyKSwKICAgICAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIsIDQpKTsKICAgICAgICAgfQotICAgICAgICBqaXQubG9hZERvdWJsZShN
YWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEZQUkluZm86OmZwUmVnVDApOwor
ICAgICAgICBqaXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2Vt
Ymxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpLCBGUFJJbmZvOjpmcFJlZ1QwKTsKIAogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkb25lOwogICAgICAgICBkb25lID0gaml0LmJyYW5jaFRy
dW5jYXRlRG91YmxlVG9JbnQzMihGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OkJyYW5jaElmVHJ1bmNhdGVTdWNjZXNzZnVsKTsKQEAgLTIz
MTMsNyArMjMxMyw3IEBAIHZvaWQgdGVzdExvYWRQcmVQb3N0SW5kZXgzMigpCiAKICAgICAgICAg
ICAgIC8vIHJlcyA9ICorK3AxOyAqcDEgPSA0OyByZXR1cm4gcmVzOwogICAgICAgICAgICAgaml0
LmxvYWQzMihDQ2FsbEhlbHBlcnM6OlByZUluZGV4QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQ
UjAsIGluZGV4KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICAgICAgICAgIGppdC5zdG9y
ZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHJlcGxhY2UpLCBDQ2FsbEhlbHBlcnM6Oklt
cGxpY2l0QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICAgICAgICAgIGppdC5z
dG9yZTMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHJlcGxhY2UpLCBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgICAgICAgICBqaXQubW92ZShH
UFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKIAogICAgICAg
ICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKQEAgLTIzMzEsNyArMjMzMSw3IEBAIHZv
aWQgdGVzdExvYWRQcmVQb3N0SW5kZXgzMigpCiAKICAgICAgICAgICAgIC8vIHJlcyA9ICpwMisr
OyAqcDIgPSA1OyByZXR1cm4gcmVzOwogICAgICAgICAgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBl
cnM6OlBvc3RJbmRleEFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBpbmRleCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW0zMihyZXBsYWNlKSwgQ0NhbGxIZWxwZXJzOjpJbXBsaWNpdEFkZHJlc3MoR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgICAgICAgICBqaXQuc3RvcmUzMihDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihyZXBsYWNlKSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpOwogICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6YXJndW1lbnRH
UFIxLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAKICAgICAgICAgICAgIGVtaXRGdW5jdGlv
bkVwaWxvZ3VlKGppdCk7CkBAIC0yMzU1LDcgKzIzNTUsNyBAQCB2b2lkIHRlc3RMb2FkUHJlUG9z
dEluZGV4NjQoKQogCiAgICAgICAgICAgICAvLyByZXMgPSAqKytwMTsgKnAxID0gNDsgcmV0dXJu
IHJlczsKICAgICAgICAgICAgIGppdC5sb2FkNjQoQ0NhbGxIZWxwZXJzOjpQcmVJbmRleEFkZHJl
c3MoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBpbmRleCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7
Ci0gICAgICAgICAgICBqaXQuc3RvcmU2NChDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChyZXBs
YWNlKSwgQ0NhbGxIZWxwZXJzOjpJbXBsaWNpdEFkZHJlc3MoR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSk7CisgICAgICAgICAgICBqaXQuc3RvcmU2NChDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChy
ZXBsYWNlKSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwog
ICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUik7CiAKICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CkBA
IC0yMzczLDcgKzIzNzMsNyBAQCB2b2lkIHRlc3RMb2FkUHJlUG9zdEluZGV4NjQoKQogCiAgICAg
ICAgICAgICAvLyByZXMgPSAqcDIrKzsgKnAyID0gNTsgcmV0dXJuIHJlczsKICAgICAgICAgICAg
IGppdC5sb2FkNjQoQ0NhbGxIZWxwZXJzOjpQb3N0SW5kZXhBZGRyZXNzKEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCwgaW5kZXgpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgICAgICAgICAgaml0
LnN0b3JlNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQocmVwbGFjZSksIENDYWxsSGVscGVy
czo6SW1wbGljaXRBZGRyZXNzKEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgICAgICAgICAg
aml0LnN0b3JlNjQoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQocmVwbGFjZSksIENDYWxsSGVs
cGVyczo6QWRkcmVzcyhHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICAgICAgICAgIGppdC5t
b3ZlKEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwogCiAg
ICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDI4Mzky
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xOTE4LDcgKzE5MTgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlU3RyaW5nU2xpY2UoCiAKICAgICBtX2ppdC5sc2hpZnQzMihNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyKHNpemVvZih2b2lkKikgPT0gNCA/IDIgOiAzKSwgdGVtcEdQUik7CiAgICAg
bV9qaXQuYWRkUHRyKFRydXN0ZWRJbW1QdHIodm0uc21hbGxTdHJpbmdzLnNpbmdsZUNoYXJhY3Rl
clN0cmluZ3MoKSksIHRlbXBHUFIpOwotICAgIG1faml0LmxvYWRQdHIodGVtcEdQUiwgdGVtcEdQ
Uik7CisgICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3ModGVtcEdQUiksIHRl
bXBHUFIpOwogCiAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKGJpZ0NoYXJh
Y3RlciwgdGhpcywgb3BlcmF0aW9uU2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCB0ZW1wR1BSLCAmdm0s
IHRlbXBHUFIpKTsKIApAQCAtMjYzNCw3ICsyNjM0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEJ5VmFsT25TdAogICAgIFZNJiB2bSA9IHRoaXMtPnZtKCk7CiAgICAgbV9qaXQu
bHNoaWZ0MzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihzaXplb2Yodm9pZCopID09IDQg
PyAyIDogMyksIHNjcmF0Y2hSZWcpOwogICAgIG1faml0LmFkZFB0cihUcnVzdGVkSW1tUHRyKHZt
LnNtYWxsU3RyaW5ncy5zaW5nbGVDaGFyYWN0ZXJTdHJpbmdzKCkpLCBzY3JhdGNoUmVnKTsKLSAg
ICBtX2ppdC5sb2FkUHRyKHNjcmF0Y2hSZWcsIHNjcmF0Y2hSZWcpOworICAgIG1faml0LmxvYWRQ
dHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hSZWcpLCBzY3JhdGNoUmVnKTsKIAogICAg
IGFkZFNsb3dQYXRoR2VuZXJhdG9yKAogICAgICAgICBzbG93UGF0aENhbGwoCkBAIC0xNTMzMiw3
ICsxNTMzMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDbGVhckNhdGNoTG8KICAg
ICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNj
cmF0Y2guZ3ByKCk7CiAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRyKHNjcmF0Y2hCdWZmZXIt
PmFkZHJlc3NPZkFjdGl2ZUxlbmd0aCgpKSwgc2NyYXRjaEdQUik7Ci0gICAgbV9qaXQuc3RvcmVQ
dHIoVHJ1c3RlZEltbVB0cihudWxscHRyKSwgc2NyYXRjaEdQUik7CisgICAgbV9qaXQuc3RvcmVQ
dHIoVHJ1c3RlZEltbVB0cihudWxscHRyKSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hH
UFIpKTsKICAgICBub1Jlc3VsdChub2RlKTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb2NhdGlvbi5jcHAJKHJldmlzaW9uIDI4MzkyMykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG9jYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSwxMCAr
OTksMTAgQEAgdm9pZCBMb2NhdGlvbjo6cmVzdG9yZUludG8oTWFjcm9Bc3NlbWJsZQogICAgICAg
ICAgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCByZXN1
bHQpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1GcmFt
ZXNUb1BvcCAtIDE7IGktLTspCi0gICAgICAgICAgICAgICAgaml0LmxvYWRQdHIocmVzdWx0LCBy
ZXN1bHQpOworICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKHJlc3VsdCksIHJlc3VsdCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChncHIo
KSA9PSBNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIpCi0gICAgICAgICAgICAg
ICAgaml0LmxvYWRQdHIocmVzdWx0LCByZXN1bHQpOworICAgICAgICAgICAgICAgIGppdC5sb2Fk
UHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdCksIHJlc3VsdCk7CiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgaml0LmFkZFB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbVB0cihzaXplb2Yodm9pZCopICogMiksIHJlc3VsdCk7CiAgICAgICAgIH0gZWxzZQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcAkocmV2aXNpb24gMjgzOTIz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1
bmtQdHIKICAgICAKICAgICBzYXZlQWxsUmVnaXN0ZXJzKGppdCwgYnVmZmVyKTsKIAotICAgIGpp
dC5sb2FkUHRyKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwor
ICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhmcmFtZVBvaW50ZXJSZWdpc3Rl
ciksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgaml0LnBlZWsoCiAgICAgICAgIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSwKICAgICAgICAgKHN0YWNrTWlzYWxpZ25tZW50IC0gcHVzaFRvU2F2
ZUJ5dGVPZmZzZXQpIC8gc2l6ZW9mKHZvaWQqKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwOTYsNyArMTA5Niw3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpkZWJ1Z0NhbGwoVk0m
IHZtLCAKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBGUFJJbmZvOjpudW1iZXJPZlJl
Z2lzdGVyczsgKytpKSB7CiAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihidWZmZXIgKyBHUFJJ
bmZvOjpudW1iZXJPZlJlZ2lzdGVycyArIGkpLCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgIHN0
b3JlRG91YmxlKEZQUkluZm86OnRvUmVnaXN0ZXIoaSksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAg
ICAgc3RvcmVEb3VibGUoRlBSSW5mbzo6dG9SZWdpc3RlcihpKSwgQWRkcmVzcyhHUFJJbmZvOjpy
ZWdUMCkpOwogICAgIH0KIAogI2lmIENQVShYODZfNjQpIHx8IENQVShBUk1fVEhVTUIyKSB8fCBD
UFUoQVJNNjQpIHx8IENQVShNSVBTKQpAQCAtMTExMyw3ICsxMTEzLDcgQEAgdm9pZCBBc3NlbWJs
eUhlbHBlcnM6OmRlYnVnQ2FsbChWTSYgdm0sIAogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IEZQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzOyArK2kpIHsKICAgICAgICAgbW92ZShUcnVz
dGVkSW1tUHRyKGJ1ZmZlciArIEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzICsgaSksIEdQUklu
Zm86OnJlZ1QwKTsKLSAgICAgICAgbG9hZERvdWJsZShHUFJJbmZvOjpyZWdUMCwgRlBSSW5mbzo6
dG9SZWdpc3RlcihpKSk7CisgICAgICAgIGxvYWREb3VibGUoQWRkcmVzcyhHUFJJbmZvOjpyZWdU
MCksIEZQUkluZm86OnRvUmVnaXN0ZXIoaSkpOwogICAgIH0KICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnM7ICsraSkgewogI2lmIFVTRShKU1ZB
TFVFNjQpCkBAIC0xMTYzLDcgKzExNjMsNyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6c2FuaXRp
emVTdGFja0lubGluCiAgICAgbG9hZFB0cih2bS5hZGRyZXNzT2ZMYXN0U3RhY2tUb3AoKSwgc2Ny
YXRjaCk7CiAgICAgSnVtcCBkb25lID0gYnJhbmNoUHRyKEJlbG93T3JFcXVhbCwgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIHNjcmF0Y2gpOwogICAgIExhYmVsIGxvb3AgPSBsYWJlbCgpOwotICAgIHN0
b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIHNjcmF0Y2gpOworICAgIHN0b3JlUHRyKFRy
dXN0ZWRJbW1QdHIobnVsbHB0ciksIEFkZHJlc3Moc2NyYXRjaCkpOwogICAgIGFkZFB0cihUcnVz
dGVkSW1tUHRyKHNpemVvZih2b2lkKikpLCBzY3JhdGNoKTsKICAgICBicmFuY2hQdHIoQWJvdmUs
IHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzY3JhdGNoKS5saW5rVG8obG9vcCwgdGhpcyk7CiAgICAg
ZG9uZS5saW5rKHRoaXMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9w
ZXJ0eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHJldmlzaW9uIDI4MzkyMykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTg1
LDcgKzIxODUsNyBAQCB2b2lkIEpJVDo6ZW1pdEdldFZhckZyb21Qb2ludGVyKEpTVmFsdWUqCiB2
b2lkIEpJVDo6ZW1pdEdldFZhckZyb21JbmRpcmVjdFBvaW50ZXIoSlNWYWx1ZSoqIG9wZXJhbmQs
IEdQUlJlZyByZWcpCiB7CiAgICAgbG9hZFB0cihvcGVyYW5kLCByZWcpOwotICAgIGxvYWRQdHIo
cmVnLCByZWcpOworICAgIGxvYWRQdHIoQWRkcmVzcyhyZWcpLCByZWcpOwogfQogCiB2b2lkIEpJ
VDo6ZW1pdEdldENsb3N1cmVWYXIoVmlydHVhbFJlZ2lzdGVyIHNjb3BlLCB1aW50cHRyX3Qgb3Bl
cmFuZCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9y
cy5jcHAJKHJldmlzaW9uIDI4MzkyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1
bmtHZW5lcmF0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAwLDcgKzYwMCw3IEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gYXIKIAogICAgIC8vIE1vdmUgY3VycmVu
dCBmcmFtZSBkb3duIGFyZ3VtZW50R1BSMCBudW1iZXIgb2Ygc2xvdHMKICAgICBKU0ludGVyZmFj
ZUpJVDo6TGFiZWwgY29weUxvb3Aoaml0LmxhYmVsKCkpOwotICAgIGppdC5sb2FkNjQoSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QzLCBleHRyYVRlbXApOworICAgIGppdC5sb2FkNjQoQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMyksIGV4dHJhVGVtcCk7CiAgICAgaml0LnN0
b3JlNjQoZXh0cmFUZW1wLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklU
OjpyZWdUMywgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCwgSlNJbnRlcmZhY2VKSVQ6OlRp
bWVzRWlnaHQpKTsKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIo
OCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CiAgICAgaml0LmJyYW5jaFN1YjMyKE1hY3JvQXNz
ZW1ibGVyOjpOb25aZXJvLCBKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVy
ZmFjZUpJVDo6YXJndW1lbnRHUFIyKS5saW5rVG8oY29weUxvb3AsICZqaXQpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmNwcAkocmV2aXNpb24gMjgzOTIz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03NCw3ICs3NCw3IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxX
YXNtRW50cnkKICAgICB9CiAKICAgICAvLyBUYWlsIGNhbGwgaW50byB0aGUgY2FsbGVlIFdlYkFz
c2VtYmx5IGZ1bmN0aW9uLgotICAgIGppdC5sb2FkUHRyKHNjcmF0Y2gsIHNjcmF0Y2gpOworICAg
IGppdC5sb2FkUHRyKEpJVDo6QWRkcmVzcyhzY3JhdGNoKSwgc2NyYXRjaCk7CiAgICAgaml0LmZh
ckp1bXAoc2NyYXRjaCwgV2FzbUVudHJ5UHRyVGFnKTsKIAogICAgIExpbmtCdWZmZXIgcGF0Y2hC
dWZmZXIoaml0LCBHTE9CQUxfVEhVTktfSUQsIExpbmtCdWZmZXI6OlByb2ZpbGU6Oldhc21UaHVu
aywgSklUQ29tcGlsYXRpb25DYW5GYWlsKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJKSVQuY3BwCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
eWFyci9ZYXJySklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjk3LDcgKzY5Nyw3IEBAIGNsYXNz
IFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckoKIAogICAgICAgICBKdW1wTGlzdCBu
b3RVbmljb2RlOwogCi0gICAgICAgIGxvYWQxNlVuYWxpZ25lZChyZWdVbmljb2RlSW5wdXRBbmRU
cmFpbCwgcmVzdWx0UmVnKTsKKyAgICAgICAgbG9hZDE2VW5hbGlnbmVkKEFkZHJlc3MocmVnVW5p
Y29kZUlucHV0QW5kVHJhaWwpLCByZXN1bHRSZWcpOwogCiAgICAgICAgIC8vIElzIHRoZSBjaGFy
YWN0ZXIgYSBsZWFkaW5nIHN1cnJvZ2F0ZT8KICAgICAgICAgYW5kMzIoc3Vycm9nYXRlVGFnTWFz
aywgcmVzdWx0UmVnLCB1bmljb2RlVGVtcCk7CkBAIC04NzksNyArODc5LDcgQEAgY2xhc3MgWWFy
ckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySgogICAgIHsKICAgICAgICAgQVNTRVJUKCFt
X3BhdHRlcm4ubV9ib2R5LT5tX2hhc0ZpeGVkU2l6ZSk7CiAgICAgICAgIGlmIChtX2NvbXBpbGVN
b2RlID09IEpJVENvbXBpbGVNb2RlOjpJbmNsdWRlU3VicGF0dGVybnMpCi0gICAgICAgICAgICBz
dG9yZTMyKHJlZywgb3V0cHV0KTsKKyAgICAgICAgICAgIHN0b3JlMzIocmVnLCBBZGRyZXNzKG91
dHB1dCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtb3ZlKHJlZywgb3V0cHV0KTsKICAg
ICB9CkBAIC04ODcsNyArODg3LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1Ymxp
YyBZYXJySgogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX3BhdHRlcm4ubV9ib2R5LT5tX2hhc0Zp
eGVkU2l6ZSk7CiAgICAgICAgIGlmIChtX2NvbXBpbGVNb2RlID09IEpJVENvbXBpbGVNb2RlOjpJ
bmNsdWRlU3VicGF0dGVybnMpCi0gICAgICAgICAgICBsb2FkMzIob3V0cHV0LCByZWcpOworICAg
ICAgICAgICAgbG9hZDMyKEFkZHJlc3Mob3V0cHV0KSwgcmVnKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgbW92ZShvdXRwdXQsIHJlZyk7CiAgICAgfQpAQCAtMjgzMCw3ICsyODMwLDcgQEAg
Y2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySgogCiAgICAgICAgICAgICAg
ICAgICAgIGxvYWRGcm9tRnJhbWUocGFyZW50aGVzZXNGcmFtZUxvY2F0aW9uICsgQmFja1RyYWNr
SW5mb1BhcmVudGhlc2VzOjpwYXJlbkNvbnRleHRIZWFkSW5kZXgoKSwgY3VyclBhcmVuQ29udGV4
dFJlZyk7CiAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRlUGFyZW5Db250ZXh0KG5ld1BhcmVu
Q29udGV4dFJlZyk7Ci0gICAgICAgICAgICAgICAgICAgIHN0b3JlUHRyKGN1cnJQYXJlbkNvbnRl
eHRSZWcsIG5ld1BhcmVuQ29udGV4dFJlZyk7CisgICAgICAgICAgICAgICAgICAgIHN0b3JlUHRy
KGN1cnJQYXJlbkNvbnRleHRSZWcsIEFkZHJlc3MobmV3UGFyZW5Db250ZXh0UmVnKSk7CiAgICAg
ICAgICAgICAgICAgICAgIHN0b3JlVG9GcmFtZShuZXdQYXJlbkNvbnRleHRSZWcsIHBhcmVudGhl
c2VzRnJhbWVMb2NhdGlvbiArIEJhY2tUcmFja0luZm9QYXJlbnRoZXNlczo6cGFyZW5Db250ZXh0
SGVhZEluZGV4KCkpOwogICAgICAgICAgICAgICAgICAgICBzYXZlUGFyZW5Db250ZXh0KG5ld1Bh
cmVuQ29udGV4dFJlZywgcmVnVDIsIHRlcm0tPnBhcmVudGhlc2VzLnN1YnBhdHRlcm5JZCwgdGVy
bS0+cGFyZW50aGVzZXMubGFzdFN1YnBhdHRlcm5JZCwgcGFyZW50aGVzZXNGcmFtZUxvY2F0aW9u
KTsKICAgICAgICAgICAgICAgICAgICAgc3RvcmVUb0ZyYW1lKGluZGV4LCBwYXJlbnRoZXNlc0Zy
YW1lTG9jYXRpb24gKyBCYWNrVHJhY2tJbmZvUGFyZW50aGVzZXM6OmJlZ2luSW5kZXgoKSk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODM5MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0xMSAgU2FhbSBCYXJh
dGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgSW1wbGljaXRBZGRyZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4MjAK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzODI2MzE4PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJh
dG9yOjpnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlcik6CisKIDIwMjEtMTAtMTEgIEJlbiBOaGFtICA8
bmhhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHB1c2ggcmVnaXN0cmF0aW9uIHN0dWJzCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCShyZXZpc2lv
biAyODM5MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIwODEsOSArMjA4MSw5IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2Vu
ZXJhdG9yOjpnZW5lcmF0ZVNlbGUKICAgICBpZiAobV9zZWxlY3RvckNvbnRleHQgPT0gU2VsZWN0
b3JDb250ZXh0OjpSdWxlQ29sbGVjdG9yKSB7CiAgICAgICAgIHVuc2lnbmVkIHNwZWNpZmljaXR5
ID0gbV9zZWxlY3RvckZyYWdtZW50cy5zdGF0aWNTcGVjaWZpY2l0eTsKICAgICAgICAgaWYgKG1f
ZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5n
Q29udGV4dCkKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN0b3JlMzIoQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIoc3BlY2lmaWNpdHkpLCBKU0M6OkdQUkluZm86OmFyZ3VtZW50R1BSMik7CisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5zdG9yZTMyKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHNwZWNp
ZmljaXR5KSwgQXNzZW1ibGVyOjpBZGRyZXNzKEpTQzo6R1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN0b3JlMzIoQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoc3BlY2lmaWNpdHkpLCBKU0M6OkdQUkluZm86OmFyZ3VtZW50R1BSMSk7
CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdG9yZTMyKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KHNwZWNpZmljaXR5KSwgQXNzZW1ibGVyOjpBZGRyZXNzKEpTQzo6R1BSSW5mbzo6YXJndW1lbnRH
UFIxKSk7CiAgICAgfQogCiAgICAgY29tcHV0ZUJhY2t0cmFja2luZ01lbW9yeVJlcXVpcmVtZW50
cyhtX3NlbGVjdG9yRnJhZ21lbnRzKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>