<?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>233094</bug_id>
          
          <creation_ts>2021-11-13 19:13:28 -0800</creation_ts>
          <short_desc>[libpas] update to 48d608bf31ba92f8059d2c76488f00c52aaca15a: changes to support universal isoheaps</short_desc>
          <delta_ts>2021-11-14 10:35:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>bmalloc</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>231938</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1814824</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-11-13 19:13:28 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814825</commentid>
    <comment_count>1</comment_count>
      <attachid>444161</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-11-13 19:24:31 -0800</bug_when>
    <thetext>Created attachment 444161
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814847</commentid>
    <comment_count>2</comment_count>
      <attachid>444161</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-14 01:55:42 -0800</bug_when>
    <thetext>Comment on attachment 444161
the patch

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

r=me

&gt; Source/bmalloc/libpas/README:1
&gt; +# libpas - Phil&apos;s Awesome System

NICE

&gt; Source/bmalloc/libpas/src/libpas/pas_segregated_heap.c:535
&gt; +    static const bool verbose = false;

Maybe we do not need `static` here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814866</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-11-14 10:30:07 -0800</bug_when>
    <thetext>Seems like the one EWS failure is most likely fallout from Michael&apos;s change:

stdout:

stderr:
ASSERTION FAILED: m_regs.regT2 != MacroAssembler::InvalidGPRReg
./yarr/YarrJIT.cpp(4336) : void JSC::Yarr::YarrGenerator&lt;JSC::Yarr::YarrJITRegisters&gt;::compileInline(JSC::Yarr::YarrBoyerMoyerData &amp;) [YarrJITRegs = JSC::Yarr::YarrJITRegisters]
1   0x1081255d9 WTFCrash
2   0x108ae71db WTFCrashWithInfo(int, char const*, char const*, int)
3   0x10a4c052c JSC::Yarr::YarrGenerator&lt;JSC::Yarr::YarrJITRegisters&gt;::compileInline(JSC::Yarr::YarrBoyerMoyerData&amp;)
4   0x10a4c021e JSC::Yarr::jitCompileInlinedTest(WTF::StackCheck*, WTF::String const&amp;, WTF::OptionSet&lt;JSC::Yarr::Flags&gt;, JSC::Yarr::CharSize, JSC::VM const*, JSC::Yarr::YarrBoyerMoyerData&amp;, JSC::MacroAssembler&amp;, JSC::Yarr::YarrJITRegisters&amp;)
5   0x10859f6ae JSC::DFG::SpeculativeJIT::compileRegExpTestInline(JSC::DFG::Node*)::$_9::operator()() const
6   0x10859ed69 JSC::DFG::SpeculativeJIT::compileRegExpTestInline(JSC::DFG::Node*)
7   0x1085a3533 JSC::DFG::SpeculativeJIT::compile(JSC::DFG::Node*)
8   0x10832d40c JSC::DFG::SpeculativeJIT::compileCurrentBlock()
9   0x108346b78 JSC::DFG::SpeculativeJIT::compile()
10  0x10932ee66 JSC::DFG::JITCompiler::compileBody()
11  0x1093326b7 JSC::DFG::JITCompiler::compileFunction()
12  0x1093fd7ee JSC::DFG::Plan::compileInThreadImpl()
13  0x10992ef2c JSC::JITPlan::compileInThread(JSC::JITWorklistThread*)
14  0x1099b3051 JSC::JITWorklistThread::work()
15  0x10813cc63 WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::$_0::operator()() const
16  0x10813c7fe WTF::Detail::CallableWrapper&lt;WTF::AutomaticThread::start(WTF::AbstractLocker const&amp;)::$_0, void&gt;::call()
17  0x108153b42 WTF::Function&lt;void ()&gt;::operator()() const
18  0x10822e158 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
19  0x10823bfb8 WTF::wtfThreadEntryPoint(void*)
20  0x7fff72a30109 _pthread_start
21  0x7fff72a2bb8b thread_start</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814867</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-11-14 10:34:27 -0800</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/285789/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814868</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-14 10:35:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/85391423&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444161</attachid>
            <date>2021-11-13 19:24:31 -0800</date>
            <delta_ts>2021-11-14 01:55:42 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>629660</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyOCBAQAorMjAyMS0xMS0xMyAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFtsaWJwYXNdIHVwZGF0ZSB0byA0
OGQ2MDhiZjMxYmE5MmY4MDU5ZDJjNzY0ODhmMDBjNTJhYWNhMTVhOiBjaGFuZ2VzIHRvIHN1cHBv
cnQgdW5pdmVyc2FsIGlzb2hlYXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzMwOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIGluY2x1ZGVzIGEgYnVuY2ggb2YgY2hhbmdlcyB0byBtYWtlIGl0
IHBvc3NpYmxlIHRvIHVzZSBpc29oZWFwcyB1bml2ZXJzYWxseToKKworICAgICAgICAtIFRoZSBi
bWFsbG9jX2hlYXAgQVBJIG5vdyBzdXBwb3J0cyBpc29oZWFwZWQgYXJyYXkgYWxsb2NhdGlvbnMg
YW5kIGlzb2hlYXBlZCBvYmplY3RzIHdpdGggZmxleGlibGUKKyAgICAgICAgICBhcnJheSBtZW1i
ZXJzIChpLmUuIGZsZXgpLgorCisgICAgICAgIC0gQXJyYXkgYWxsb2NhdGlvbnMgYXJlIG5vdyBi
eXRlLWJhc2VkLCBub3QgY291bnQtYmFzZWQsIGJ5IGRlZmF1bHQuIFdoZW4gSSBmaXJzdCB3cm90
ZSBsaWJwYXMsIEkgd2FzCisgICAgICAgICAgc3VyZSB0aGF0IGl0IHdvdWxkIGJlIGVhc2llciBm
b3IgZXZlcnlvbmUgaWYgYXJyYXkgYWxsb2NhdGlvbiB3YXMgZW5naW5lZXJlZCB0byB0YWtlIHRo
ZSBhcnJheSBsZW5ndGgsCisgICAgICAgICAgYW5kIHRoZSBhbGxvY2F0b3Igd29ya2VkIHRoaW5n
cyBvdXQgZnJvbSB0aGVyZS4gQnV0IHRoaXMgZG9lc24ndCB3b3JrIHdlbGwgd2hlbiB0aGUgcnVi
YmVyIGhpdHMgdGhlCisgICAgICAgICAgcm9hZDoKKworICAgICAgICAgIC0+IEFycmF5IGFsbG9j
YXRpb24gc2l0ZXMgYWxyZWFkeSBrbm93IHRoZSBzaXplIGluIGJ5dGVzLCBhbmQgb2Z0ZW4gZG9u
J3QgZXZlbiBoYXZlIGEgY29udmVuaWVudCB3YXkKKyAgICAgICAgICAgICBvZiBwYXNzaW5nIHRo
ZSBsZW5ndGggdG8gdGhlIGFsbG9jYXRvci4KKworICAgICAgICAgIC0+IFBlcmZvcm1pbmcgdGhl
IG11bHRpcGxpY2F0aW9uIGF0IHRoZSBhbGxvY2F0aW9uIHNpdGUgbWVhbnMgd2UgYXJlIG11bHRp
cGx5aW5nIGJ5IGEgY29uc3RhbnQgcmF0aGVyCisgICAgICAgICAgICAgdGhhbiBtdWx0aXBseWlu
ZyBieSBhIHZhcmlhYmxlLgorCisgICAgICAgICAgLT4gQysrIG9wZXJhdG9yIG5ld1tdIHRha2Vz
IHRoZSBzaXplLCBub3QgdGhlIGNvdW50ICh0aG91Z2ggdGhpcyBtYXR0ZXJzIGxlc3MsIHNpbmNl
IG9wZXJhdG9yIG5ld1tdCisgICAgICAgICAgICAgaXNuJ3QgdXNlZnVsIGZvciBpc29oZWFwcyBh
bnl3YXkpLgorCisgICAgICAgIC0gQWxsIGFsbG9jYXRpb24gc2l0ZXMgbm93IGhhdmUgdGhlIGZh
c3QgcGF0aCBoYWNrcyB0aGF0IHRoZSBpbnRyaW5zaWMgYWxsb2NhdGlvbiBmYXN0IHBhdGggaGFk
LgorICAgICAgICAgIFNwZWNpZmljYWxseSwgdGhleSBhbGwgbm93IGNvbXBpbGUgdG8gc29tZXRo
aW5nIHRoYXQgaGFzIG5vIHN0YWNrIGZyYW1lIGFuZCBkb2Vzbid0IHJlcXVpcmUgUEFDLiBUaGUK
KyAgICAgICAgICBzbG93IHBhdGggaXMgYSB0YWlsIGNhbGwuCisKKyAgICAgICAgLSBTaXplIGNs
YXNzIGxvb2t1cCB0YWJsZXMgY2FuIG5vdyBiZSBkZWNvbW1pdHRlZC4gVGhpcyBpcyBhY2NvbXBs
aXNoZWQgdXNpbmcgYSB0aGluZyBjYWxsZWQKKyAgICAgICAgICBwYXNfZXhwZW5kYWJsZV9tZW1v
cnkuCisKKyAgICAgICAgLSBUaGUgc3RhdHVzIHJlcG9ydGVyIGNhbiBub3cgcmVwb3J0IHRoZSB0
eXBlIG5hbWUgb2YgaXNvaGVhcHMuIFRoaXMgcmVsaWVzIG9uIGJtYWxsb2NfaGVhcCBub3cgdXNp
bmcKKyAgICAgICAgICBpdHMgb3duIGtpbmQgb2YgdHlwZSwgcmF0aGVyIHRoYW4gdGhlIGdlbmVy
aWMgbGlicGFzIHBhc19zaW1wbGVfdHlwZSwgc28gdGhhdCBpdCBjYW4gaGF2ZSBhIHN0cmluZy4K
KyAgICAgICAgICBUaGlzIGNoYW5nZSByZXF1aXJlZCBjb3JyZXNwb25kaW5nIGNoYW5nZXMgaW4g
SXNvSGVhcC5oIGFuZCBibWFsbG9jLmNwcC4KKworICAgICAgICAqIGJtYWxsb2MueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBibWFsbG9jL0lzb0hlYXAuaDoKKyAgICAgICAg
KGJtYWxsb2M6OmFwaTo6SXNvSGVhcDo6YWxsb2NhdGUpOgorICAgICAgICAoYm1hbGxvYzo6YXBp
OjpJc29IZWFwOjp0cnlBbGxvY2F0ZSk6CisgICAgICAgIChibWFsbG9jOjphcGk6Oklzb0hlYXA6
OnByb3ZpZGVIZWFwKToKKyAgICAgICAgKiBibWFsbG9jL2JtYWxsb2MuY3BwOgorICAgICAgICAo
Ym1hbGxvYzo6YXBpOjptYWxsb2NPdXRPZkxpbmUpOgorICAgICAgICAqIGxpYnBhcy8uZ2l0aWdu
b3JlOgorICAgICAgICAqIGxpYnBhcy9DTWFrZUxpc3RzLnR4dDogQWRkZWQuCisgICAgICAgICog
bGlicGFzL1JFQURNRTogQWRkZWQuCisgICAgICAgICogbGlicGFzL2NsZWFuLnNoOiBBZGRlZC4K
KyAgICAgICAgKiBsaWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmM6CisgICAgICAgIChibWFsbG9j
X3RyeV9hbGxvY2F0ZV9jYXN1YWwpOgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV9jYXN1YWwp
OgorICAgICAgICAoYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2Nhc3VhbCk6CisgICAgICAgIChi
bWFsbG9jX2lzb19hbGxvY2F0ZV9jYXN1YWwpOgorICAgICAgICAoYm1hbGxvY190cnlfYWxsb2Nh
dGVfYXJyYXlfYnlfc2l6ZV93aXRoX2FsaWdubWVudF9jYXN1YWwpOgorICAgICAgICAoYm1hbGxv
Y19hbGxvY2F0ZV9hcnJheV9ieV9zaXplX3dpdGhfYWxpZ25tZW50X2Nhc3VhbCk6CisgICAgICAg
IChibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfYXJyYXlfYnlfc2l6ZSk6CisgICAgICAgIChibWFs
bG9jX2lzb19hbGxvY2F0ZV9hcnJheV9ieV9zaXplKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2lz
b19hbGxvY2F0ZV96ZXJvZWRfYXJyYXlfYnlfc2l6ZSk6CisgICAgICAgIChibWFsbG9jX2lzb19h
bGxvY2F0ZV96ZXJvZWRfYXJyYXlfYnlfc2l6ZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9pc29f
YWxsb2NhdGVfYXJyYXlfYnlfc2l6ZV93aXRoX2FsaWdubWVudCk6CisgICAgICAgIChibWFsbG9j
X2lzb19hbGxvY2F0ZV9hcnJheV9ieV9zaXplX3dpdGhfYWxpZ25tZW50KToKKyAgICAgICAgKGJt
YWxsb2NfdHJ5X2lzb19yZWFsbG9jYXRlX2FycmF5X2J5X3NpemUpOgorICAgICAgICAoYm1hbGxv
Y19pc29fcmVhbGxvY2F0ZV9hcnJheV9ieV9zaXplKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2lz
b19hbGxvY2F0ZV9hcnJheV9ieV9jb3VudCk6CisgICAgICAgIChibWFsbG9jX2lzb19hbGxvY2F0
ZV9hcnJheV9ieV9jb3VudCk6CisgICAgICAgIChibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfYXJy
YXlfYnlfY291bnRfd2l0aF9hbGlnbm1lbnQpOgorICAgICAgICAoYm1hbGxvY19pc29fYWxsb2Nh
dGVfYXJyYXlfYnlfY291bnRfd2l0aF9hbGlnbm1lbnQpOgorICAgICAgICAoYm1hbGxvY190cnlf
aXNvX3JlYWxsb2NhdGVfYXJyYXlfYnlfY291bnQpOgorICAgICAgICAoYm1hbGxvY19pc29fcmVh
bGxvY2F0ZV9hcnJheV9ieV9jb3VudCk6CisgICAgICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV9m
bGV4X3dpdGhfYWxpZ25tZW50X2Nhc3VhbCk6CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX2Zs
ZXhfd2l0aF9hbGlnbm1lbnRfY2FzdWFsKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2FsbG9jYXRl
X2ZsZXgpOgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV9mbGV4KToKKyAgICAgICAgKGJtYWxs
b2NfdHJ5X2FsbG9jYXRlX3plcm9lZF9mbGV4KToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVf
emVyb2VkX2ZsZXgpOgorICAgICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVfZmxleF93aXRoX2Fs
aWdubWVudCk6CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX2ZsZXhfd2l0aF9hbGlnbm1lbnQp
OgorICAgICAgICAoYm1hbGxvY190cnlfcmVhbGxvY2F0ZV9mbGV4KToKKyAgICAgICAgKGJtYWxs
b2NfcmVhbGxvY2F0ZV9mbGV4KToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGls
aWFyeV93aXRoX2FsaWdubWVudF9jYXN1YWwpOgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV9h
dXhpbGlhcnlfd2l0aF9hbGlnbm1lbnRfY2FzdWFsKToKKyAgICAgICAgKGJtYWxsb2NfaGVhcF9y
ZWZfZ2V0X3R5cGVfc2l6ZSk6CisgICAgICAgIChibWFsbG9jX2dldF9hbGxvY2F0aW9uX3NpemUp
OgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV9zbG93KTogRGVsZXRlZC4KKyAgICAgICAgKGJt
YWxsb2NfdHJ5X2lzb19hbGxvY2F0ZV9hcnJheSk6IERlbGV0ZWQuCisgICAgICAgIChibWFsbG9j
X2lzb19hbGxvY2F0ZV9hcnJheSk6IERlbGV0ZWQuCisgICAgICAgIChibWFsbG9jX3RyeV9pc29f
YWxsb2NhdGVfYXJyYXlfd2l0aF9hbGlnbm1lbnQpOiBEZWxldGVkLgorICAgICAgICAoYm1hbGxv
Y19pc29fYWxsb2NhdGVfYXJyYXlfd2l0aF9hbGlnbm1lbnQpOiBEZWxldGVkLgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5oOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL2JtYWxsb2NfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9ibWFsbG9jX2hlYXBfaW5saW5lcy5oOgorICAgICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVf
aW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfaW5saW5lKToKKyAgICAgICAgKGJt
YWxsb2NfdHJ5X2lzb19hbGxvY2F0ZV9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY19pc29fYWxs
b2NhdGVfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2lzb19hbGxvY2F0ZV9hcnJheV9i
eV9zaXplX2lubGluZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfemVyb2Vk
X2FycmF5X2J5X3NpemVfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2lzb19hbGxvY2F0
ZV9hcnJheV9ieV9zaXplX3dpdGhfYWxpZ25tZW50X2lubGluZSk6CisgICAgICAgIChibWFsbG9j
X3RyeV9pc29fYWxsb2NhdGVfYXJyYXlfYnlfY291bnRfaW5saW5lKToKKyAgICAgICAgKGJtYWxs
b2NfdHJ5X2lzb19hbGxvY2F0ZV9hcnJheV9ieV9jb3VudF93aXRoX2FsaWdubWVudF9pbmxpbmUp
OgorICAgICAgICAoYm1hbGxvY19pc29fYWxsb2NhdGVfYXJyYXlfYnlfc2l6ZV9pbmxpbmUpOgor
ICAgICAgICAoYm1hbGxvY19pc29fYWxsb2NhdGVfemVyb2VkX2FycmF5X2J5X3NpemVfaW5saW5l
KToKKyAgICAgICAgKGJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5X2J5X3NpemVfd2l0aF9hbGln
bm1lbnRfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5X2J5X2Nv
dW50X2lubGluZSk6CisgICAgICAgIChibWFsbG9jX2lzb19hbGxvY2F0ZV9hcnJheV9ieV9jb3Vu
dF93aXRoX2FsaWdubWVudF9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY190cnlfaXNvX3JlYWxs
b2NhdGVfYXJyYXlfYnlfc2l6ZV9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY19pc29fcmVhbGxv
Y2F0ZV9hcnJheV9ieV9zaXplX2lubGluZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9pc29fcmVh
bGxvY2F0ZV9hcnJheV9ieV9jb3VudF9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY19pc29fcmVh
bGxvY2F0ZV9hcnJheV9ieV9jb3VudF9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY190cnlfYWxs
b2NhdGVfZmxleF9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV9mbGV4X2lubGlu
ZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV96ZXJvZWRfZmxleF9pbmxpbmUpOgor
ICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV96ZXJvZWRfZmxleF9pbmxpbmUpOgorICAgICAgICAo
Ym1hbGxvY190cnlfYWxsb2NhdGVfZmxleF93aXRoX2FsaWdubWVudF9pbmxpbmUpOgorICAgICAg
ICAoYm1hbGxvY19hbGxvY2F0ZV9mbGV4X3dpdGhfYWxpZ25tZW50X2lubGluZSk6CisgICAgICAg
IChibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2ZsZXhfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2Nf
cmVhbGxvY2F0ZV9mbGV4X2lubGluZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV9h
dXhpbGlhcnlfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X2lu
bGluZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9hbGln
bm1lbnRfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3dpdGhf
YWxpZ25tZW50X2lubGluZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfYXJy
YXlfaW5saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKGJtYWxsb2NfdHJ5X2lzb19hbGxvY2F0ZV9h
cnJheV93aXRoX2FsaWdubWVudF9pbmxpbmUpOiBEZWxldGVkLgorICAgICAgICAoYm1hbGxvY19p
c29fYWxsb2NhdGVfYXJyYXlfaW5saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKGJtYWxsb2NfaXNv
X2FsbG9jYXRlX2FycmF5X3dpdGhfYWxpZ25tZW50X2lubGluZSk6IERlbGV0ZWQuCisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2lubmFyZHMuaDoKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfcmVmLmg6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvYm1hbGxvY190eXBlLmM6IEFkZGVkLgorICAgICAgICAoYm1hbGxvY190eXBlX2Ny
ZWF0ZSk6CisgICAgICAgIChibWFsbG9jX3R5cGVfdHJ5X25hbWVfZHVtcCk6CisgICAgICAgIChi
bWFsbG9jX3R5cGVfbmFtZV9kdW1wKToKKyAgICAgICAgKGJtYWxsb2NfdHlwZV9kdW1wKToKKyAg
ICAgICAgKGJtYWxsb2NfdHlwZV9hc19oZWFwX3R5cGVfZHVtcCk6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvYm1hbGxvY190eXBlLmg6IEFkZGVkLgorICAgICAgICAoYm1hbGxvY190eXBl
X3NpemUpOgorICAgICAgICAoYm1hbGxvY190eXBlX2FsaWdubWVudCk6CisgICAgICAgIChibWFs
bG9jX3R5cGVfbmFtZSk6CisgICAgICAgIChibWFsbG9jX3R5cGVfYXNfaGVhcF90eXBlX2dldF90
eXBlX3NpemUpOgorICAgICAgICAoYm1hbGxvY190eXBlX2FzX2hlYXBfdHlwZV9nZXRfdHlwZV9h
bGlnbm1lbnQpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwX2NvbmZp
Zy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwLmM6CisgICAgICAgIChp
c29faGVhcF9yZWZfY29uc3RydWN0KToKKyAgICAgICAgKGlzb190cnlfYWxsb2NhdGVfYXJyYXlf
YnlfY291bnQpOgorICAgICAgICAoaXNvX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50KToKKyAgICAg
ICAgKGlzb190cnlfYWxsb2NhdGVfYXJyYXlfYnlfY291bnRfemVyb2VkKToKKyAgICAgICAgKGlz
b19hbGxvY2F0ZV9hcnJheV9ieV9jb3VudF96ZXJvZWQpOgorICAgICAgICAoaXNvX3RyeV9yZWFs
bG9jYXRlX2FycmF5X2J5X2NvdW50KToKKyAgICAgICAgKGlzb19yZWFsbG9jYXRlX2FycmF5X2J5
X2NvdW50KToKKyAgICAgICAgKGlzb19wcmltaXRpdmVfaGVhcF9yZWZfY29uc3RydWN0KToKKyAg
ICAgICAgKGlzb190cnlfYWxsb2NhdGVfYXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoaXNvX2Fs
bG9jYXRlX2FycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKGlzb190cnlfYWxsb2NhdGVfYXJyYXlf
emVyb2VkKTogRGVsZXRlZC4KKyAgICAgICAgKGlzb19hbGxvY2F0ZV9hcnJheV96ZXJvZWQpOiBE
ZWxldGVkLgorICAgICAgICAoaXNvX3RyeV9yZWFsbG9jYXRlX2FycmF5KTogRGVsZXRlZC4KKyAg
ICAgICAgKGlzb19yZWFsbG9jYXRlX2FycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9pc29faGVhcC5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2lzb19o
ZWFwX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2lubGlu
ZXMuaDoKKyAgICAgICAgKGlzb190cnlfYWxsb2NhdGVfaW5saW5lKToKKyAgICAgICAgKGlzb19h
bGxvY2F0ZV9pbmxpbmUpOgorICAgICAgICAoaXNvX3RyeV9hbGxvY2F0ZV9hcnJheV9ieV9jb3Vu
dF9pbmxpbmUpOgorICAgICAgICAoaXNvX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50X2lubGluZSk6
CisgICAgICAgIChpc29fdHJ5X2FsbG9jYXRlX2FycmF5X2J5X2NvdW50X3plcm9lZF9pbmxpbmUp
OgorICAgICAgICAoaXNvX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50X3plcm9lZF9pbmxpbmUpOgor
ICAgICAgICAoaXNvX3RyeV9yZWFsbG9jYXRlX2FycmF5X2J5X2NvdW50X2lubGluZSk6CisgICAg
ICAgIChpc29fcmVhbGxvY2F0ZV9hcnJheV9ieV9jb3VudF9pbmxpbmUpOgorICAgICAgICAoaXNv
X3RyeV9hbGxvY2F0ZV9hcnJheV9pbmxpbmUpOiBEZWxldGVkLgorICAgICAgICAoaXNvX2FsbG9j
YXRlX2FycmF5X2lubGluZSk6IERlbGV0ZWQuCisgICAgICAgIChpc29fdHJ5X2FsbG9jYXRlX2Fy
cmF5X3plcm9lZF9pbmxpbmUpOiBEZWxldGVkLgorICAgICAgICAoaXNvX2FsbG9jYXRlX2FycmF5
X3plcm9lZF9pbmxpbmUpOiBEZWxldGVkLgorICAgICAgICAoaXNvX3RyeV9yZWFsbG9jYXRlX2Fy
cmF5X2lubGluZSk6IERlbGV0ZWQuCisgICAgICAgIChpc29fcmVhbGxvY2F0ZV9hcnJheV9pbmxp
bmUpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX3JlZi5o
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXAuYzoKKyAgICAgICAg
KGlzb190ZXN0X2FsbG9jYXRlKToKKyAgICAgICAgKGlzb190ZXN0X2FsbG9jYXRlX2FycmF5X2J5
X2NvdW50KToKKyAgICAgICAgKGlzb190ZXN0X2FsbG9jYXRlX2FycmF5KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwLmg6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuYzoKKyAgICAgICAgKGppdF90eXBlX2R1bXApOgor
ICAgICAgICAoaml0X2hlYXBfY29uZmlnX2R1bXBfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2FyZyk6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmg6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwLmM6CisgICAgICAgIChtaW5hbGln
bjMyX2FsbG9jYXRlKToKKyAgICAgICAgKG1pbmFsaWduMzJfYWxsb2NhdGVfYXJyYXlfYnlfY291
bnQpOgorICAgICAgICAobWluYWxpZ24zMl9hbGxvY2F0ZV9hcnJheSk6IERlbGV0ZWQuCisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwLmg6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXAuYzoKKyAgICAgICAgKHBhZ2VzaXplNjRrX2Fs
bG9jYXRlKToKKyAgICAgICAgKHBhZ2VzaXplNjRrX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50KToK
KyAgICAgICAgKHBhZ2VzaXplNjRrX2FsbG9jYXRlX2FycmF5KTogRGVsZXRlZC4KKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYWdlc2l6ZTY0a19oZWFwLmg6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmM6CisgICAgICAgIChpbml0
aWFsaXplKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYmFzaWNfc2VncmVnYXRl
ZF9wYWdlX2NhY2hlcy5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmM6IEFkZGVkLgorICAgICAgICAocGFzX2NvbXBh
Y3RfZXhwZW5kYWJsZV9tZW1vcnlfYWxsb2NhdGUpOgorICAgICAgICAocGFzX2NvbXBhY3RfZXhw
ZW5kYWJsZV9tZW1vcnlfY29tbWl0X2lmX25lY2Vzc2FyeSk6CisgICAgICAgIChwYXNfY29tcGFj
dF9leHBlbmRhYmxlX21lbW9yeV9zY2F2ZW5nZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuaDogQWRkZWQuCisgICAgICAgIChwYXNf
Y29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV9ub3RlX3VzZSk6CisgICAgICAgIChwYXNfY29tcGFj
dF9leHBlbmRhYmxlX21lbW9yeV90b3VjaCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyLmg6IFJlbW92ZWQuCisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX3B0ci5oOiBSZW1v
dmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb25maWcuaDoKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY291bnRfbG9va3VwX21vZGUuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5j
OgorICAgICAgICAoc2V0X3VwX3JhbmdlKToKKyAgICAgICAgKHBhc19kZXNpZ25hdGVkX2ludHJp
bnNpY19oZWFwX2luaXRpYWxpemUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19k
ZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaDoKKyAgICAgICAgKHBhc19kZXNpZ25h
dGVkX2luZGV4X3Jlc3VsdF9nZXRfYWxsb2NhdG9yX2luZGV4KToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfZW5zdXJlX2hlYXBfd2l0aF9wYWdlX2NhY2hlcy5jOgorICAgICAgICAo
cGFzX2Vuc3VyZV9oZWFwX3dpdGhfcGFnZV9jYWNoZXMpOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5jOgorICAgICAgICAocGFzX2Vu
dW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfZXhwZW5kYWJsZV9tZW1vcnkuYzogQWRkZWQuCisgICAgICAgIChwYXNfZXhwZW5kYWJsZV9t
ZW1vcnlfY29uc3RydWN0KToKKyAgICAgICAgKHBhc19leHBlbmRhYmxlX21lbW9yeV90cnlfYWxs
b2NhdGUpOgorICAgICAgICAocGFzX2V4cGVuZGFibGVfbWVtb3J5X2FsbG9jYXRlKToKKyAgICAg
ICAgKHBhc19leHBlbmRhYmxlX21lbW9yeV9jb21taXRfaWZfbmVjZXNzYXJ5KToKKyAgICAgICAg
KHNjYXZlbmdlX2ltcGwpOgorICAgICAgICAocGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdl
KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZXhwZW5kYWJsZV9tZW1vcnkuaDog
QWRkZWQuCisgICAgICAgIChwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfZ2V0X2tpbmQpOgor
ICAgICAgICAocGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX2dldF92ZXJzaW9uKToKKyAgICAg
ICAgKHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9jcmVhdGUpOgorICAgICAgICAocGFzX2V4
cGVuZGFibGVfbWVtb3J5X3N0YXRlX3dpdGhfa2luZCk6CisgICAgICAgIChwYXNfZXhwZW5kYWJs
ZV9tZW1vcnlfc3RhdGVfd2l0aF92ZXJzaW9uKToKKyAgICAgICAgKHBhc19leHBlbmRhYmxlX21l
bW9yeV9ub3RlX3VzZV9pbXBsKToKKyAgICAgICAgKHBhc19leHBlbmRhYmxlX21lbW9yeV9ub3Rl
X3VzZSk6CisgICAgICAgIChwYXNfZXhwZW5kYWJsZV9tZW1vcnlfbnVtX3BhZ2VzKToKKyAgICAg
ICAgKHBhc19leHBlbmRhYmxlX21lbW9yeV9udW1fcGFnZXNfaW5fdXNlKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5jOgorICAgICAgICAocGFzX2hlYXBfcmVzZXRfaGVh
cF9yZWYpOgorICAgICAgICAocGFzX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9zaXpl
X3Nsb3cpOgorICAgICAgICAocGFzX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3Vu
dF9zbG93KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5o
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZy5oOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmg6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmg6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfaW5saW5lcy5oOgorICAgICAgICAocGFzX2hlYXBf
ZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9zaXplKToKKyAgICAgICAgKHBhc19oZWFwX2Vuc3Vy
ZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19oZWFwX2tpbmQuaDoKKyAgICAgICAgKHBhc19oZWFwX2tpbmRfZ2V0X3N0
cmluZyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcmVmX3ByZWZpeC5o
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRlcm5hbF9jb25maWcuaDoKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydC5oOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5j
OiBBZGRlZC4KKyAgICAgICAgKGFsbG9jYXRlX25ld19sYXJnZV9leHBlbmRhYmxlX21lbW9yeSk6
CisgICAgICAgIChwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnlfYWxsb2NhdGUpOgorICAgICAg
ICAocGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5X2NvbW1pdF9pZl9uZWNlc3NhcnkpOgorICAg
ICAgICAocGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaDogQWRkZWQuCisg
ICAgICAgIChwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnlfcGF5bG9hZCk6CisgICAgICAgIChw
YXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnlfaGVhZGVyX2Zvcl9vYmplY3QpOgorICAgICAgICAo
cGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5X25vdGVfdXNlKToKKyAgICAgICAgKHBhc19sYXJn
ZV9leHBlbmRhYmxlX21lbW9yeV90b3VjaCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xhcmdlX2hlYXAuYzoKKyAgICAgICAgKGFsbG9jYXRlX2ltcGwpOgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuYzoKKyAgICAgICAgKHBhc19sb2Nh
bF9hbGxvY2F0b3JfY29uc3RydWN0X3Vuc2VsZWN0ZWQpOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kLmg6CisgICAgICAgIChwYXNfbG9jYWxf
YWxsb2NhdG9yX2NvbmZpZ19raW5kX2dldF9zdHJpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oOgorICAgICAgICAocGFzX2xvY2Fs
X2FsbG9jYXRvcl9zdGFydF9hbGxvY2F0aW5nX2luX3ByaW1vcmRpYWxfcGFydGlhbF92aWV3KToK
KyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhfa25vd25fY29uZmlnKToK
KyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3Nsb3dfaW1wbCk6Cisg
ICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZSk6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xvY2tfZnJlZV9yZWFkX2hhc2h0YWJsZS5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19vYmplY3Rfc2l6ZV9tb2RlLmg6IFJlbW92
ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9jLmM6CisgICAg
ICAgIChwYXNfcGFnZV9tYWxsb2NfY29tbWl0KToKKyAgICAgICAgKGRlY29tbWl0X2ltcGwpOgor
ICAgICAgICAocGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0KToKKyAgICAgICAgKHBhc19wYWdlX21h
bGxvY19kZWNvbW1pdF9hc3ltbWV0cmljKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfcGFnZV9tYWxsb2MuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9z
aGFyaW5nX3Bvb2wuYzoKKyAgICAgICAgKHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF90
YWtlX2Zvcl9wYWdlX2NvbmZpZyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3Jl
ZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5jOgorICAgICAgICAocGFzX3JlZHVuZGFudF9s
b2NhbF9hbGxvY2F0b3Jfbm9kZV9jcmVhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19zY2F2ZW5nZXIuYzoKKyAgICAgICAgKHNjYXZlbmdlcl90aHJlYWRfbWFpbik6CisgICAg
ICAgIChwYXNfc2NhdmVuZ2VyX2RlY29tbWl0X2V4cGVuZGFibGVfbWVtb3J5KToKKyAgICAgICAg
KHBhc19zY2F2ZW5nZXJfcnVuX3N5bmNocm9ub3VzbHlfbm93KToKKyAgICAgICAgKHBhc19zY2F2
ZW5nZXJfcGVyZm9ybV9zeW5jaHJvbm91c19vcGVyYXRpb24pOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmg6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3RlX2VsaWdpYmlsaXR5KToKKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmM6CisgICAgICAgIChtYXhfb2JqZWN0
X3NpemVfZm9yX3BhZ2VfY29uZmlnKToKKyAgICAgICAgKG1heF9iaXRmaXRfb2JqZWN0X3NpemVf
Zm9yX2hlYXBfY29uZmlnKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfY29uc3RydWN0
KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfZ2V0X2NhY2hlZF9pbmRleF9mb3JfaGVh
cF90eXBlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfY2FjaGVkX2luZGV4X2lzX3Nl
dCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX2dldF9jYWNoZWRfaW5kZXgpOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9pc19jYWNoZWRfaW5kZXhfYW5kX2NhY2hl
ZF9pbmRleF9pc19zZXQpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9pc19j
YWNoZWRfaW5kZXhfb3JfY2FjaGVkX2luZGV4X2lzX3Vuc2V0KToKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX2hlYXBfaW5kZXhfaXNfbm90X2NhY2hlZF9pbmRleF9hbmRfY2FjaGVkX2luZGV4X2lz
X3NldCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2lzX2dyZWF0ZXJfdGhh
bl9jYWNoZWRfaW5kZXhfYW5kX2NhY2hlZF9pbmRleF9pc19zZXQpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9pbmRleF9pc19ncmVhdGVyX2VxdWFsX2NhY2hlZF9pbmRleF9hbmRfY2Fj
aGVkX2luZGV4X2lzX3NldCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX3NpemVfZGly
ZWN0b3J5X2Zvcl9pbmRleF9zbG93KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfbWVk
aXVtX2FsbG9jYXRvcl9pbmRleF9mb3JfaW5kZXgpOgorICAgICAgICAoY29tcHV0ZV9zbWFsbF9p
bmRleF91cHBlcl9ib3VuZCk6CisgICAgICAgIChlbnN1cmVfc2l6ZV9sb29rdXApOgorICAgICAg
ICAoc2l6ZV9kaXJlY3RvcnlfbWluX2hlYXBfY29tcGFyZSk6CisgICAgICAgIChzaXplX2RpcmVj
dG9yeV9taW5faGVhcF9nZXRfaW5kZXgpOgorICAgICAgICAoc2l6ZV9kaXJlY3RvcnlfbWluX2hl
YXBfc2V0X2luZGV4KToKKyAgICAgICAgKHJlY29tcHV0ZV9zaXplX2xvb2t1cCk6CisgICAgICAg
IChyZW1hdGVyaWFsaXplX3NpemVfbG9va3VwX3NldF9pbmRleF90b19zbWFsbF9hbGxvY2F0b3Jf
aW5kZXgpOgorICAgICAgICAocmVtYXRlcmlhbGl6ZV9zaXplX2xvb2t1cF9zZXRfaW5kZXhfdG9f
c21hbGxfc2l6ZV9kaXJlY3RvcnkpOgorICAgICAgICAocmVtYXRlcmlhbGl6ZV9zaXplX2xvb2t1
cF9zZXRfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSk6CisgICAgICAgIChyZW1hdGVyaWFsaXplX3Np
emVfbG9va3VwX2lmX25lY2Vzc2FyeSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX2Vu
c3VyZV9hbGxvY2F0b3JfaW5kZXgpOgorICAgICAgICAoY29tcHV0ZV9pZGVhbF9vYmplY3Rfc2l6
ZSk6CisgICAgICAgIChlbnN1cmVfc2l6ZV9sb29rdXBfaWZfbmVjZXNzYXJ5KToKKyAgICAgICAg
KGNoZWNrX3NpemVfbG9va3VwX3JlY29tcHV0YXRpb25fZGlkX2JlY29tZV9ub3RfYWxsX2dvb2Qp
OgorICAgICAgICAoY2hlY2tfc2l6ZV9sb29rdXBfcmVjb21wdXRhdGlvbl9zZXRfaW5kZXhfdG9f
c21hbGxfYWxsb2NhdG9yX2luZGV4KToKKyAgICAgICAgKGNoZWNrX3NpemVfbG9va3VwX3JlY29t
cHV0YXRpb25fc2V0X2luZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5KToKKyAgICAgICAgKGNo
ZWNrX3NpemVfbG9va3VwX3JlY29tcHV0YXRpb25fc2V0X21lZGl1bV9kaXJlY3RvcnlfdHVwbGUp
OgorICAgICAgICAoY2hlY2tfc2l6ZV9sb29rdXBfcmVjb21wdXRhdGlvbik6CisgICAgICAgIChw
YXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3Jfc2l6ZSk6CisgICAg
ICAgIChtYXhfY291bnRfZm9yX3BhZ2VfY29uZmlnKTogRGVsZXRlZC4KKyAgICAgICAgKG1heF9z
bWFsbF9jb3VudF9mb3JfaGVhcF9jb25maWcpOiBEZWxldGVkLgorICAgICAgICAoZW5zdXJlX2Nv
dW50X2xvb2t1cCk6IERlbGV0ZWQuCisgICAgICAgIChlbnN1cmVfY291bnRfbG9va3VwX2lmX25l
Y2Vzc2FyeSk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9z
aXplX2RpcmVjdG9yeV9mb3JfY291bnQpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hl
YXBfaW5kZXhfZm9yX3NpemUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaXplX2Zv
cl9pbmRleCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX2FsbG9jYXRvcl9pbmRleF9m
b3JfaW5kZXhfaW5saW5lX29ubHkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9hbGxv
Y2F0b3JfaW5kZXhfZm9yX2luZGV4KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfYWxs
b2NhdG9yX2luZGV4X2Zvcl9zaXplX2lubGluZV9vbmx5KToKKyAgICAgICAgKHBhc19zZWdyZWdh
dGVkX2hlYXBfYWxsb2NhdG9yX2luZGV4X2Zvcl9zaXplKToKKyAgICAgICAgKHBhc19zZWdyZWdh
dGVkX2hlYXBfaW5kZXhfZm9yX3ByaW1pdGl2ZV9jb3VudCk6IERlbGV0ZWQuCisgICAgICAgIChw
YXNfc2VncmVnYXRlZF9oZWFwX3ByaW1pdGl2ZV9jb3VudF9mb3JfaW5kZXgpOiBEZWxldGVkLgor
ICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9mb3JfY291bnQpOiBEZWxldGVkLgor
ICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9jb3VudF9mb3JfaW5kZXgpOiBEZWxldGVkLgor
ICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9hbGxvY2F0b3JfaW5kZXhfZm9yX2NvdW50X25v
dF9wcmltaXRpdmUpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9z
aXplX2RpcmVjdG9yeV9mb3JfaW5kZXgpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9z
aXplX2RpcmVjdG9yeV9mb3Jfc2l6ZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX3Rv
dWNoX2xvb2t1cF90YWJsZXMpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaXplX2Rp
cmVjdG9yeV9mb3JfY291bnQpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX21vZGUuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmM6CisgICAgICAgIChw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbnN0cnVjdCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX3BsYWNl
bWVudF9tb2RlLmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmM6CisgICAgICAgICh0YWtlX2xhc3RfZW1w
dHlfY29uc2lkZXJfdmlldyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5Lmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYzoKKyAgICAgICAgKHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9lbnN1cmVfZGF0YSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcik6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX3ZpZXdfY2FjaGUpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcl9zbG93KToKKyAgICAgICAgKHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9hbGxvY2F0b3JfZnJvbV90bGMpOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZHVtcF9yZWZlcmVuY2UpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Lmg6
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kZWNvZGVfYmFzZWxpbmVf
YWxsb2NhdG9yX2luZGV4KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2RlY29kZV9taW5faW5kZXgpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZW5jb2RlX3N0dWZmKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2FzX3ZpZXcpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYWxpZ25t
ZW50KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Jhc2VsaW5lX2Fs
bG9jYXRvcl9pbmRleCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9t
aW5faW5kZXgpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2V0X2Jh
c2VsaW5lX2FsbG9jYXRvcl9pbmRleCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9jb21wYXJlX2FuZF9zd2FwX2Jhc2VsaW5lX2FsbG9jYXRvcl9pbmRleF93ZWFrKToK
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NldF9taW5faW5kZXgpOgor
ICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaGFzX3RsY19hbGxvY2F0b3Ip
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2lubGluZXMuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Nl
bGVjdF9hbGxvY2F0b3IpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zaGFyZWRf
aGFuZGxlX29yX3BhZ2UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2lubGluZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuYzoKKyAg
ICAgICAgKHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZV9nZXQpOgorICAgICAgICAo
cGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplX2R1bXBfZGlyZWN0b3J5X2FyZyk6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9z
aXplLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NpbXBsZV90eXBlLmM6IEFk
ZGVkLgorICAgICAgICAocGFzX3NpbXBsZV90eXBlX2R1bXApOgorICAgICAgICAocGFzX3NpbXBs
ZV90eXBlX2FzX2hlYXBfdHlwZV9kdW1wKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2ltcGxlX3R5cGUuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2l6ZV9s
b29rdXBfbW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKHBhc19zaXplX2xvb2t1cF9tb2RlX2dldF9z
dHJpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zaXplX3RodW5rLmg6IFJl
bW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NraXBfbGlzdC5jOiBSZW1v
dmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19za2lwX2xpc3QuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2tpcF9saXN0X2lubGluZXMuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVy
LmM6CisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9zaGFyZWRf
cGFnZV9kaXJlY3RvcnkpOgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2hlYXAp
OgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RocmVhZF9sb2NhbF9jYWNoZXMp
OgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2NvbmZpZ3VyYXRpb24pOgorICAg
ICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29s
KToKKyAgICAgICAgKGR1bXBfZXhwZW5kYWJsZV9tZW1vcnkpOgorICAgICAgICAocGFzX3N0YXR1
c19yZXBvcnRlcl9kdW1wX2V4cGVuZGFibGVfbWVtb3JpZXMpOgorICAgICAgICAocGFzX3N0YXR1
c19yZXBvcnRlcl9kdW1wX2V2ZXJ5dGhpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19zdGF0dXNfcmVwb3J0ZXIuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
dGhyZWFkX2xvY2FsX2NhY2hlLmM6CisgICAgICAgIChhbGxvY2F0ZV9jYWNoZSk6CisgICAgICAg
IChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2NyZWF0ZSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3Jfc2xvdyk6CisgICAgICAgIChwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaWZfY2FuX3NldF9jYWNoZV9mb3JfcG9z
c2libHlfdW5pbml0aWFsaXplZF9pbmRleF9zbG93KToKKyAgICAgICAgKHN0b3BfbG9jYWxfYWxs
b2NhdG9yc19pZl9uZWNlc3Nhcnlfc2V0X2JpdF9jYWxsYmFjayk6CisgICAgICAgIChwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2lmX2Nhbl9zZXRfY2FjaGVfc2xvdyk6IERlbGV0ZWQuCisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oOgorICAg
ICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdF93
aXRob3V0X2FueV9jaGVja3Nfd2hhdHNvZXZlcik6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0X2Zvcl9pbml0aWFsaXphdGlvbik6Cisg
ICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0
X3VuY2hlY2tlZCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9h
bGxvY2F0b3JfZGlyZWN0KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xv
Y2FsX2FsbG9jYXRvcl9mb3JfcG9zc2libHlfdW5pbml0aWFsaXplZF9idXRfbm90X3Vuc2VsZWN0
ZWRfaW5kZXgpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxs
b2NhdG9yX2Zvcl9pbml0aWFsaXplZF9pbmRleCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZm9yX3Bvc3NpYmx5X3VuaW5pdGlhbGl6ZWRfaW5k
ZXgpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xvY2FsX2FsbG9j
YXRvcl9vcl91bnNlbGVjdGVkX2Zvcl91bmluaXRpYWxpemVkX2luZGV4KToKKyAgICAgICAgKHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldF9sb2NhbF9hbGxvY2F0b3JfZm9yX3Bvc3NpYmx5
X3VuaW5pdGlhbGl6ZWRfYnV0X25vdF91bnNlbGVjdGVkX2luZGV4KToKKyAgICAgICAgKHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pZl9jYW5fc2V0X2NhY2hlX2Zv
cl9wb3NzaWJseV91bmluaXRpYWxpemVkX2luZGV4KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcik6IERlbGV0ZWQuCisgICAg
ICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXRfbG9jYWxfYWxsb2NhdG9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRv
cl9pZl9jYW5fc2V0X2NhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jOgorICAgICAgICAocGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfYWRkX25vZGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYzoKKyAgICAgICAgKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY29uc3RydWN0KToKKyAgICAgICAgKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbW92ZSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX3N0b3ApOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc190cnlfYWxsb2NhdGUuaDoKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfaW1wbF9jYXN1
YWxfY2FzZSk6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ltcGxfaW5saW5lX29ubHkpOgor
ICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9pbXBsX3NpemVfdGh1bmspOiBEZWxldGVkLgorICAg
ICAgICAocGFzX3RyeV9hbGxvY2F0ZV9pbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2FycmF5Lmg6CisgICAgICAgIChwYXNfdHJ5X2Fs
bG9jYXRlX2FycmF5X2ltcGxfY2FzdWFsX2Nhc2Vfd2l0aF9oZWFwKToKKyAgICAgICAgKHBhc190
cnlfYWxsb2NhdGVfYXJyYXlfaW1wbF9pbmxpbmVfb25seV93aXRoX2hlYXApOgorICAgICAgICAo
cGFzX3RyeV9hbGxvY2F0ZV9hcnJheV9pbXBsX2lubGluZV9vbmx5KToKKyAgICAgICAgKHBhc190
cnlfYWxsb2NhdGVfYXJyYXlfaW1wbCk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9jb21tb24uaDoKKyAgICAgICAgKHBhc190cnlfYWxsb2Nh
dGVfY29tcHV0ZV9hbGlnbmVkX3NpemUpOgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9jb21t
b25faW1wbF9mYXN0KToKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xv
dyk6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oOgorICAgICAgICAo
cGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfaW1wbF9jYXN1YWxfY2FzZSk6CisgICAgICAgIChw
YXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19pbXBsX2lubGluZV9vbmx5KToKKyAgICAgICAgKHBh
c190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfbWVkaXVtX3Nsb3dfY2FzZSk6IERlbGV0ZWQu
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUu
aDoKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGxfY2FzdWFsX2Nhc2Up
OgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbF9pbmxpbmVfb25seSk6
CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X3JlYWxsb2NhdGUuaDoKKyAgICAgICAg
KHBhc190cnlfYWxsb2NhdGVfZm9yX3JlYWxsb2NhdGVfYW5kX2NvcHkpOgorICAgICAgICAocGFz
X3RyeV9yZWFsbG9jYXRlX3RhYmxlX3NlZ3JlZ2F0ZWRfY2FzZSk6CisgICAgICAgIChwYXNfdHJ5
X3JlYWxsb2NhdGVfdGFibGVfYml0Zml0X2Nhc2UpOgorICAgICAgICAocGFzX3RyeV9yZWFsbG9j
YXRlKToKKyAgICAgICAgKHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfYWxsb2NhdGVfY2Fs
bGJhY2spOgorICAgICAgICAocGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpYyk6CisgICAgICAg
IChwYXNfdHJ5X3JlYWxsb2NhdGVfc2luZ2xlX2FsbG9jYXRlX2NhbGxiYWNrKToKKyAgICAgICAg
KHBhc190cnlfcmVhbGxvY2F0ZV9zaW5nbGUpOgorICAgICAgICAocGFzX3RyeV9yZWFsbG9jYXRl
X2FycmF5X2FsbG9jYXRlX2NhbGxiYWNrKToKKyAgICAgICAgKHBhc190cnlfcmVhbGxvY2F0ZV9h
cnJheV9ieV9zaXplKToKKyAgICAgICAgKHBhc190cnlfcmVhbGxvY2F0ZV9hcnJheV9ieV9jb3Vu
dCk6CisgICAgICAgIChwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlX2FsbG9jYXRlX2NhbGxi
YWNrKToKKyAgICAgICAgKHBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUpOgorICAgICAgICAo
cGFzX3RyeV9yZWFsbG9jYXRlX2FycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwLmM6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuYzoKKyAgICAgICAgKHBhc191dGls
aXR5X2hlYXBfY29uZmlnX2R1bXBfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2FyZyk6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaDoKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuYzoKKyAgICAgICAgKHBhc19yZWFsbG9jYXRp
b25fZGlkX2ZhaWwpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5oOgor
ICAgICAgICAocGFzX2NvbXBhcmVfYW5kX3N3YXBfdWludDhfd2Vhayk6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzX3ByZWZpeC5oOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3RoaW5neV9oZWFwLmM6CisgICAgICAgICh0aGluZ3lfdHJ5X2FsbG9jYXRlKToKKyAg
ICAgICAgKHRoaW5neV90cnlfYWxsb2NhdGVfemVyb2VkKToKKyAgICAgICAgKHRoaW5neV90cnlf
YWxsb2NhdGVfYXJyYXkpOgorICAgICAgICAodGhpbmd5X3RyeV9hbGxvY2F0ZV96ZXJvZWRfYXJy
YXkpOgorICAgICAgICAodGhpbmd5X3RyeV9yZWFsbG9jYXRlX2FycmF5KToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMv
c3JjL3Rlc3QvRXhwZW5kYWJsZU1lbW9yeVRlc3RzLmNwcDogQWRkZWQuCisgICAgICAgIChzdGQ6
OnRlc3RQYXlsb2FkSW1wbCk6CisgICAgICAgIChzdGQ6OmZvckVhY2hFeHBlbmRhYmxlTWVtb3J5
KToKKyAgICAgICAgKHN0ZDo6Y2hlY2tBbGxEZWNvbW1pdHRlZCk6CisgICAgICAgIChzdGQ6OmNo
ZWNrQWxsSW5Vc2VDb21taXR0ZWQpOgorICAgICAgICAoc3RkOjp0ZXN0U3luY2hyb25vdXNTY2F2
ZW5naW5nRXhwZW5kc0V4cGVuZGFibGVNZW1vcnkpOgorICAgICAgICAoc3RkOjpzY2F2ZW5nZXJX
aWxsU2h1dERvd24pOgorICAgICAgICAoc3RkOjp0ZXN0U2NhdmVuZ2VyRXhwZW5kc0V4cGVuZGFi
bGVNZW1vcnkpOgorICAgICAgICAoc3RkOjp0ZXN0U29NYW55SGVhcHMpOgorICAgICAgICAoYWRk
RXhwZW5kYWJsZU1lbW9yeVRlc3RzKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvSGVhcFJl
ZkFsbG9jYXRvckluZGV4VGVzdHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKGFkZEhlYXBSZWZBbGxv
Y2F0b3JJbmRleFRlc3RzKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9z
VGVzdHMuY3BwOgorICAgICAgICAoc3RkOjpjcmVhdGVJc29IZWFwUmVmRm9yU2l6ZSk6CisgICAg
ICAgIChzdGQ6OmNyZWF0ZUJtYWxsb2NIZWFwUmVmRm9yU2l6ZSk6CisgICAgICAgIChzdGQ6OnRl
c3RBbGxvY2F0aW9uQ2hhb3MpOgorICAgICAgICAoc3RkOjphZGRJc29UZXN0cyk6CisgICAgICAg
IChzdGQ6OmFkZEFsbFRlc3RzKToKKyAgICAgICAgKGFkZElzb0hlYXBDaGFvc1Rlc3RzKToKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwOgorICAg
ICAgICAoc3RkOjp0ZXN0TGFyZ2VIZWFwVGFrZXNQYWdlc0Zyb21Db3JyZWN0TGFyZ2VIZWFwV2l0
aEZhbmN5T3JkZXIpOgorICAgICAgICAoc3RkOjphZGRBbGxUZXN0cyk6CisgICAgICAgICogbGli
cGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHA6CisgICAgICAg
IChzdGQ6OmFkZFNjYXZlbmdlckRlcGVuZGVudFRlc3RzKToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L3Rlc3QvVFNEVGVzdHMuY3BwOgorICAgICAgICAoc3RkOjpkZXN0cnVjdG9yKToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwOgorICAgICAgICAoRW5hYmxlUGFnZUJh
bGFuY2luZzo6RW5hYmxlUGFnZUJhbGFuY2luZyk6CisgICAgICAgIChEaXNhYmxlUGFnZUJhbGFu
Y2luZzo6RGlzYWJsZVBhZ2VCYWxhbmNpbmcpOgorICAgICAgICAobWFpbik6CisgICAgICAgICog
bGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmg6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0
L1RoaW5neUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRlc3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6
dmVyaWZ5SGVhcEVtcHR5KToKKyAgICAgICAgKHN0ZDo6Y3JlYXRlSXNvbGF0ZWRIZWFwUmVmKToK
KyAgICAgICAgKHN0ZDo6YWRkU21hbGxIZWFwVGVzdHMpOgorCiAyMDIxLTExLTEyICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHNvcnQtWGNvZGUtcHJvamVj
dC1maWxlIGlkZW1wb3RlbnQKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
OTEsNyArOTEsNiBAQAogCQkwRjdDOTJFQzI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfbm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY3QzkyREMyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25v
ZGUuaCAqLzsgfTsKIAkJMEY3QzkyRUQyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkREMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3QzkyRUUyNkU1N0Y3NTAwNkFGMDEy
IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJERTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3Zp
ZXdfY2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQkwRjdDOTJFRjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2tfZnJlZV9yZWFkX2hhc2h0
YWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3
QzkyREYyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9oYXNodGFibGUuaCAq
LzsgfTsKIAkJMEY3QzkyRjAyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jf
a2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3
QzkyRTAyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGN0M5MkYxMjZF
NTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmMgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJFMTI2RTU3Rjc1MDA2QUYw
MTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jICovOyB9OwogCQkwRjdFQjgyMzFGOTU0
MUIwMDBGMUFCQ0IgLyogRWxpZ2liaWxpdHlSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0VCN0ZDMUY5NTQxQUQwMEYxQUJDQiAvKiBFbGln
aWJpbGl0eVJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0yNjAsNyArMjU5LDYgQEAKIAkJMEY4RTgzMzEyNDkyRUFGMzAwNDZEN0Y4IC8q
IHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU4MzI5MjQ5MkVBRjMwMDQ2RDdGOCAvKiBw
YXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmMgKi87IH07CiAJCTBGOEU4MzMyMjQ5
MkVBRjMwMDQ2RDdGOCAvKiBwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFODMyQTI0OTJF
QUYzMDA0NkQ3RjggLyogcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOEU4MzMzMjQ5
MkVBRjMwMDQ2RDdGOCAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFODMyQjI0
OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5saW5lcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGOTlG
OTg3MjVDQjJDRDEwMEVFRTQ0OSAvKiBwYXNfc2l6ZV90aHVuay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5OUY5ODYyNUNCMkNEMTAwRUVFNDQ5IC8q
IHBhc19zaXplX3RodW5rLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEZBQkRERDYyNDhBQjA5MjAwQTg0MEIzIC8qIHBhc19jb21wYWN0X2xhcmdl
X3V0aWxpdHlfZnJlZV9oZWFwLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRkFCRERDRDI0OEFCMDgzMDBBODQwQjMgLyogcGFzX2NvbXBhY3RfbGFyZ2Vf
dXRpbGl0eV9mcmVlX2hlYXAuYyAqLzsgfTsKIAkJMEZBQkRERDcyNDhBQjA5MjAwQTg0MEIzIC8q
IHBhc19jb21wYWN0X2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkFCRERDQjI0OEFCMDgzMDBBODQwQjMgLyog
cGFzX2NvbXBhY3RfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkFCREREODI0OEFCMDkyMDBBODQwQjMg
LyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWNsYXJhdGlvbnMuZGVmIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBQkREQ0YyNDhBQjA4NDAwQTg0MEIzIC8q
IHBhc19sYXJnZV9mcmVlX2hlYXBfZGVjbGFyYXRpb25zLmRlZiAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjk1LDcgKzI5Myw2IEBACiAJCTBGQzQw
OUQwMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY2FyZXNfYWJvdXRfc2l6ZV9tb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MDk3QTI0NTE0OTVG
MDA4NzZEQTAgLyogcGFzX2NhcmVzX2Fib3V0X3NpemVfbW9kZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQwOUQxMjQ1MTQ5NjQwMDg3NkRB
MCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MDk3QjI0NTE0OTVGMDA4NzZEQTAgLyogcGFz
X2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQwOUQyMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29t
cGFjdF9oZWFwX3Jlc2VydmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkM0MDk3QzI0NTE0OTVGMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfaGVh
cF9yZXNlcnZhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTBGQzQwOUQzMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9za2lwX2xp
c3Rfbm9kZV9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGQzQwOTdEMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9k
ZV9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRkM0MDlENDI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jhc2ljX2hlYXBfcnVudGltZV9jb25m
aWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQw
OTdFMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfYmFzaWNfaGVhcF9ydW50aW1lX2NvbmZpZy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQwOUQ1
MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9oZWFwX3Jlc2VydmF0aW9uLmMgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MDk3RjI0NTE0OTVG
MDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfaGVhcF9yZXNlcnZhdGlvbi5jICovOyB9OwogCQkwRkM0
MDlENjI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwLmMg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MDk4MDI0
NTE0OTVGMDA4NzZEQTAgLyogcGFzX2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwLmMgKi87IH07
CkBAIC0zMTcsMTAgKzMxNCw4IEBACiAJCTBGQzQwOUU4MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNf
Ym9vdHN0cmFwX2hlYXBfcGFnZV9wcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDA5OTIyNDUxNDk2MDAwODc2REEwIC8qIHBhc19ib290
c3RyYXBfaGVhcF9wYWdlX3Byb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDA5RTkyNDUxNDk2NDAwODc2REEwIC8qIHBhc19lbnN1
cmVfaGVhcF93aXRoX3BhZ2VfY2FjaGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkM0MDk5MzI0NTE0OTYwMDA4NzZEQTAgLyogcGFzX2Vuc3VyZV9o
ZWFwX3dpdGhfcGFnZV9jYWNoZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRkM0MDlFQTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Vuc3VyZV9o
ZWFwX2ZvcmNlZF9pbnRvX3Jlc2VydmVkX21lbW9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDA5OTQyNDUxNDk2MTAwODc2REEwIC8qIHBhc19l
bnN1cmVfaGVhcF9mb3JjZWRfaW50b19yZXNlcnZlZF9tZW1vcnkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRkM0MDlFQzI0NTE0OTY0MDA4NzZE
QTAgLyogcGFzX2Jhc2ljX3NlZ3JlZ2F0ZWRfcGFnZV9jYWNoZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwOTk2MjQ1MTQ5NjEwMDg3NkRBMCAv
KiBwYXNfYmFzaWNfc2VncmVnYXRlZF9wYWdlX2NhY2hlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQwOUVEMjQ1MTQ5NjQwMDg3NkRBMCAv
KiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MDk5NzI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2Jh
c2VsaW5lX2FsbG9jYXRvcl90YWJsZS5jICovOyB9OwogCQkwRkM0MDlFRTI0NTE0OTY0MDA4NzZE
QTAgLyogcGFzX2RlYWxsb2NhdGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGQzQwOTk4MjQ1MTQ5NjEwMDg3NkRBMCAvKiBwYXNfZGVhbGxvY2F0ZS5j
ICovOyB9OwotCQkwRkM0MDlFRjI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3Rfc2tpcF9s
aXN0X25vZGVfcHRyX3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZDNDA5OTkyNDUxNDk2MTAwODc2REEwIC8qIHBhc19jb21wYWN0X3NraXBfbGlz
dF9ub2RlX3B0cl9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwRkM0MDlGMDI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfdW5zaWdu
ZWRfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkM0MDk5QTI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfdW5zaWduZWRfcHRyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDA5RjEy
NDUxNDk2NDAwODc2REEwIC8qIHBhc19kZWFsbG9jYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MDk5QjI0NTE0OTYxMDA4NzZEQTAgLyogcGFz
X2RlYWxsb2NhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRkM0MDlGMjI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2V4dGVuZGVkX2djZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDA5OUMyNDUx
NDk2MTAwODc2REEwIC8qIHBhc19leHRlbmRlZF9nY2QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzQwLDcgKzMzNSw2IEBACiAJCTBGQzQwQTAw
MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdG9yX2NvdW50cy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDA5QUEyNDUxNDk2MjAwODc2REEw
IC8qIHBhc19hbGxvY2F0b3JfY291bnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDBBMDEyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwOUFCMjQ1MTQ5NjIwMDg3NkRBMCAv
KiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfcHRyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDBBMDIyNDUx
NDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X2hlYXBfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MDlBQzI0NTE0OTYyMDA4NzZEQTAgLyog
cGFzX2NvbXBhY3RfaGVhcF9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQkwRkM0MEEwMzI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvdW50X2xv
b2t1cF9tb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkM0MDlBRDI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2NvdW50X2xvb2t1cF9tb2RlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDBBMDQy
NDUxNDk2NDAwODc2REEwIC8qIHBhc19keW5hbWljX3ByaW1pdGl2ZV9oZWFwX21hcC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDA5QUUyNDUxNDk2
MjAwODc2REEwIC8qIHBhc19keW5hbWljX3ByaW1pdGl2ZV9oZWFwX21hcC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQwQTA1MjQ1MTQ5NjQw
MDg3NkRBMCAvKiBwYXNfZXBvY2guYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGQzQwOUFGMjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfZXBvY2guYyAqLzsg
fTsKIAkJMEZDNDBBMDYyNDUxNDk2NDAwODc2REEwIC8qIHBhc19leGNsdXNpdmVfdmlld190ZW1w
bGF0ZV9tZW1vX3RhYmxlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkM0MDlCMDI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2V4Y2x1c2l2ZV92aWV3X3Rl
bXBsYXRlX21lbW9fdGFibGUuYyAqLzsgfTsKQEAgLTM3NSw3ICszNjksNiBAQAogCQkwRkM0MEIw
NTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NpbXBsZV90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEEyNjI0NTE0OTg1MDA4NzZEQTAgLyog
cGFzX3NpbXBsZV90eXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEZDNDBCMDYyNDUxNDk5NDAwODc2REEwIC8qIHBhc19yYW5nZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBMjcyNDUxNDk4
NTAwODc2REEwIC8qIHBhc19yYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGQzQwQjA3MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbG9jYWxf
YWxsb2NhdG9yLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkM0MEEyODI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5jICovOyB9
OwotCQkwRkM0MEIwOTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NraXBfbGlzdF9pbmxpbmVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEEyQTI0
NTE0OTg1MDA4NzZEQTAgLyogcGFzX3NraXBfbGlzdF9pbmxpbmVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDBCMEEyNDUxNDk5NDAwODc2
REEwIC8qIHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEEyQjI0NTE0OTg1MDA4NzZEQTAgLyogcGFz
X3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRkM0MEIwQjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3V0aWxp
dHlfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGQzQwQTJDMjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfdXRpbGl0eV9oZWFwX2NvbmZp
Zy5jICovOyB9OwogCQkwRkM0MEIwQzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3ZlcnNpb25lZF9m
aWVsZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZD
NDBBMkQyNDUxNDk4NjAwODc2REEwIC8qIHBhc192ZXJzaW9uZWRfZmllbGQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzkyLDcgKzM4NSw2IEBA
CiAJCTBGQzQwQjE3MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEEzODI0NTE0
OTg2MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQwQjE4MjQ1MTQ5OTQwMDg3NkRBMCAv
KiBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBMzkyNDUxNDk4NjAwODc2REEwIC8qIHBhc190cnlfYWxs
b2NhdGVfY29tbW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEZDNDBCMTkyNDUxNDk5NDAwODc2REEwIC8qIHBhc19nZW5lcmljX2xhcmdlX2Zy
ZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZDNDBBM0EyNDUxNDk4NjAwODc2REEwIC8qIHBhc19nZW5lcmljX2xhcmdlX2ZyZWVfaGVhcC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGQzQw
QjFBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfb2JqZWN0X3NpemVfbW9kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBM0IyNDUxNDk4NjAwODc2
REEwIC8qIHBhc19vYmplY3Rfc2l6ZV9tb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDBCMUIyNDUxNDk5NDAwODc2REEwIC8qIHBhc19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZDNDBBM0MyNDUxNDk4NzAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVk
X3BhcnRpYWxfdmlldy5jICovOyB9OwogCQkwRkM0MEIxRDI0NTE0OTk0MDA4NzZEQTAgLyogcGFz
X3NpbXBsZV9mcmVlX2hlYXBfaGVscGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBM0UyNDUxNDk4NzAwODc2REEwIC8qIHBhc19zaW1wbGVf
ZnJlZV9oZWFwX2hlbHBlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRkM0MEIxRTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3N0cmluZ19zdHJl
YW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQw
QTNGMjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfc3RyaW5nX3N0cmVhbS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00MTksNyArNDExLDYgQEAKIAkJ
MEZDNDBCMzQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hh
c2h0YWJsZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZDNDBBNTYyNDUxNDk4ODAwODc2REEwIC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hh
c2h0YWJsZS5jICovOyB9OwogCQkwRkM0MEIzNTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NjYXZl
bmdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZD
NDBBNTcyNDUxNDk4ODAwODc2REEwIC8qIHBhc19zY2F2ZW5nZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM0MEIzNjI0NTE0OTk0MDA4NzZE
QTAgLyogcGFzX2hlYXBfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQTU4MjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfaGVhcF9j
b25maWdfa2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTBGQzQwQjM3MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwX3Bh
Z2Vfc2hhcmluZ19tb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkM0MEE1OTI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9w
YWdlX3NoYXJpbmdfbW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGQzQwQjM4MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkM0MEE1QTI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfa2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGQzQwQjM5MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2ltcGxlX2ZyZWVfaGVhcF9o
ZWxwZXJzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkM0MEE1QjI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX3NpbXBsZV9mcmVlX2hlYXBfaGVscGVycy5j
ICovOyB9OwogCQkwRkM0MEIzQTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3V0aWxzX3ByZWZpeC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBNUMy
NDUxNDk4OTAwODc2REEwIC8qIHBhc191dGlsc19wcmVmaXguaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDMxLDcgKzQyMiw2IEBACiAJCTBGQzQw
QjQxMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfaW1tb3J0YWxfaGVhcC5jIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBNjQyNDUxNDk4OTAwODc2REEw
IC8qIHBhc19pbW1vcnRhbF9oZWFwLmMgKi87IH07CiAJCTBGQzQwQjQyMjQ1MTQ5OTQwMDg3NkRB
MCAvKiBwYXNfdHJ5X2FsbG9jYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkM0MEE2NTI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX3RyeV9hbGxvY2F0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
QzQwQjQzMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfaGVhcF9yZWYuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQTY2MjQ1MTQ5ODkwMDg3NkRBMCAv
KiBwYXNfaGVhcF9yZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQkwRkM0MEI0NDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9oZWFkZXJfcGxhY2VtZW50X21vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGQzQwQTY3MjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQwQjQ1MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNf
c3RyZWFtLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkM0MEE2ODI0NTE0OThBMDA4NzZEQTAgLyogcGFzX3N0cmVhbS5jICovOyB9OwogCQkwRkM0MEI0
NjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2hlYXBfY29uZmlnX2tpbmQuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQTY5MjQ1MTQ5OEEwMDg3NkRB
MCAvKiBwYXNfaGVhcF9jb25maWdfa2luZC5jICovOyB9OwogCQkwRkM0MEI0NzI0NTE0OTk0MDA4
NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBNkEyNDUxNDk4QTAwODc2REEwIC8q
IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDQ4LDcgKzQzOCw2IEBACiAJCTBGQzQwQjUyMjQ1
MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcmFuZ2UxNi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBNzUyNDUxNDk4QjAwODc2REEwIC8qIHBhc19yYW5n
ZTE2LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MEZDNDBCNTMyNDUxNDk5NDAwODc2REEwIC8qIHBhc19oZWFwX2Zvcl9jb25maWcuYyBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQTc3MjQ1MTQ5OEIw
MDg3NkRBMCAvKiBwYXNfaGVhcF9mb3JfY29uZmlnLmMgKi87IH07CiAJCTBGQzQwQjU0MjQ1MTQ5
OTQwMDg3NkRBMCAvKiBwYXNfdGlueV9sYXJnZV9tYXBfZW50cnkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQTc4MjQ1MTQ5OEIwMDg3NkRBMCAv
KiBwYXNfdGlueV9sYXJnZV9tYXBfZW50cnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQkwRkM0MEI1NTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3R5
cGVkX2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkM0MEE3OTI0NTE0OThCMDA4NzZEQTAgLyogcGFzX3R5cGVkX2FsbG9j
YXRpb25fcmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEZDNDBCNTYyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sYXJnZV9oZWFwLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEE3QTI0NTE0
OThCMDA4NzZEQTAgLyogcGFzX2xhcmdlX2hlYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM0MEI1NzI0NTE0OTk0MDA4NzZEQTAgLyogcGFz
X2hlYXBfbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZDNDBBN0IyNDUxNDk4QjAwODc2REEwIC8qIHBhc19oZWFwX2xvY2suaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM0MEI1ODI0NTE0OTk0
MDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBN0MyNDUxNDk4QjAwODc2REEwIC8qIHBh
c190aHJlYWRfbG9jYWxfY2FjaGUuYyAqLzsgfTsKQEAgLTQ3Nyw3ICs0NjYsNiBAQAogCQkwRkM0
MEI3MTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2dldF9hbGxvY2F0aW9uX3NpemUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQTk2MjQ1MTQ5OEQw
MDg3NkRBMCAvKiBwYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQwQjcyMjQ1MTQ5OTQwMDg3NkRBMCAv
KiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBOTcyNDUxNDk4RDAwODc2REEwIC8qIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDBCNzMyNDUxNDk5NDAwODc2REEwIC8qIHBh
c19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBOTgyNDUxNDk4RDAwODc2REEwIC8qIHBhc19sb2NhbF9h
bGxvY2F0b3JfaW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTBGQzQwQjc0MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlX2dyYW51bGVfdXNlX2NvdW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkM0MEE5OTI0NTE0OThEMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9ncmFudWxlX3VzZV9jb3VudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGQzQwQjc1MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfaGVhcF9m
b3JfY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkM0MEE5QTI0NTE0OThEMDA4NzZEQTAgLyogcGFzX2hlYXBfZm9yX2NvbmZpZy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQwQjc2MjQ1
MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBOUIyNDUxNDk4RDAwODc2
REEwIC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDBCNzcyNDUxNDk5NDAwODc2REEwIC8q
IHBhc19sYXJnZV9mcmVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkM0MEE5QzI0NTE0OThEMDA4NzZEQTAgLyogcGFzX2xhcmdlX2ZyZWUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDk2LDggKzQ4
NCw2IEBACiAJCTBGQzQwQjg1MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQUFBMjQ1
MTQ5OEUwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM0MEI4NjI0NTE0OTk0MDA4NzZEQTAgLyog
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQUFCMjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jICovOyB9OwogCQkwRkM0MEI4NzI0NTE0OTk0MDA4NzZE
QTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9lbXB0aW5lc3Nfa2luZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBQUMyNDUxNDk4RTAwODc2REEw
IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfZW1wdGluZXNzX2tpbmQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRkM0MEI4ODI0NTE0OTk0MDA4NzZE
QTAgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEFBRDI0NTE0OThFMDA4NzZEQTAg
LyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9pbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEZDNDBCODkyNDUxNDk5NDAwODc2REEw
IC8qIHBhc19za2lwX2xpc3QuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGQzQwQUFFMjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfc2tpcF9saXN0LmMgKi87
IH07CiAJCTBGQzQwQjhBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wu
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQUFG
MjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuYyAqLzsgfTsKIAkJMEZD
NDBCOEIyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hh
cmluZ19jYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZDNDBBQjAyNDUxNDk4RjAwODc2REEwIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3Bh
Z2Vfc2hhcmluZ19jYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGQzQwQjhEMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2ltcGxlX2xhcmdl
X2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZDNDBBQjIyNDUxNDk4RjAwODc2REEwIC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFw
LmMgKi87IH07CkBAIC01MTEsMTEgKzQ5Nyw5IEBACiAJCTBGQzQwQjk4MjQ1MTQ5OTQwMDg3NkRB
MCAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Vwb2NoX3VwZGF0ZV9tb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEFCRDI0NTE0OTkwMDA4
NzZEQTAgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRhdGVfbW9kZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQwQjk5MjQ1
MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdmlydHVhbF9yYW5nZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBQkUyNDUxNDk5MDAwODc2REEwIC8qIHBh
c192aXJ0dWFsX3JhbmdlLmMgKi87IH07CiAJCTBGQzQwQjlBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBw
YXNfcmVkX2JsYWNrX3RyZWUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGQzQwQUJGMjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfcmVkX2JsYWNrX3RyZWUu
YyAqLzsgfTsKLQkJMEZDNDBCOUIyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zaGFyZWRfaGFuZGxl
X29yX3BhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQzQwQUMwMjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDBC
OUMyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQUMxMjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfbG9n
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZD
NDBCOUQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19mb3VuZF9iaXRfaW5kZXguaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQUMyMjQ1MTQ5OTAwMDg3
NkRBMCAvKiBwYXNfZm91bmRfYml0X2luZGV4LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDBCOUUyNDUxNDk5NDAwODc2REEwIC8qIHBhc19w
dHJfaGFzaF9zZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGQzQwQUMzMjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfcHRyX2hhc2hfc2V0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEZDNDBCOUYyNDUx
NDk5NDAwODc2REEwIC8qIHBhc19za2lwX2xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQUM0MjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfc2tp
cF9saXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEZDNDBCQTAyNDUxNDk5NDAwODc2REEwIC8qIHBhc190cmVlX2RpcmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBQzUyNDUxNDk5
MDAwODc2REEwIC8qIHBhc190cmVlX2RpcmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQwQkExMjQ1MTQ5OTQwMDg3NkRBMCAvKiBw
YXNfaGVhcF90YWJsZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZDNDBBQzYyNDUxNDk5MDAwODc2REEwIC8qIHBhc19oZWFwX3RhYmxlLmMgKi87IH07
CiAJCTBGQzQwQkEyMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEFDNzI0
NTE0OTkwMDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02MjEsNiArNjA1LDE2IEBACiAJ
CTE0RjI3MUM1MThFQTM5N0UwMDhDMTUyRiAvKiBEZWFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDVGNjg1OTE3OURDOTAyMDBENjU1
OTggLyogRGVhbGxvY2F0b3IuY3BwICovOyB9OwogCQkxNEYyNzFDNzE4RUEzOTkwMDA4QzE1MkYg
LyogSGVhcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNERBMzIwRTE4ODc1RDlGMDA3MjY5RTAgLyogSGVhcC5jcHAgKi87IH07CiAJCTE0RjI3MUM4
MThFQTM5OTAwMDhDMTUyRiAvKiBPYmplY3RUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MTA1RTgzMThFMTQzNzQwMDNBMTA2RSAvKiBPYmpl
Y3RUeXBlLmNwcCAqLzsgfTsKKwkJMkMxMUU4OTUyNzI4REUyNzAwMjE2MkQwIC8qIGJtYWxsb2Nf
dHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMx
MUU4OTIyNzI4REUyNzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJDMTFFODk2MjcyOERFMjcwMDIxNjJE
MCAvKiBibWFsbG9jX3R5cGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJDMTFFODkzMjcyOERFMjcwMDIxNjJEMCAvKiBibWFsbG9jX3R5cGUuYyAqLzsg
fTsKKwkJMkMxMUU4OTcyNzI4REUyNzAwMjE2MkQwIC8qIHBhc19zaW1wbGVfdHlwZS5jIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMxMUU4OTQyNzI4REUy
NzAwMjE2MkQwIC8qIHBhc19zaW1wbGVfdHlwZS5jICovOyB9OworCQkyQzQ4MTM0MDI3NDA2QTNF
MDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ4MTMzQTI3NDA2QTNFMDA2Q0FCNTUgLyogcGFz
X2V4cGVuZGFibGVfbWVtb3J5LmMgKi87IH07CisJCTJDNDgxMzQxMjc0MDZBM0UwMDZDQUI1NSAv
KiBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDNDgxMzNCMjc0MDZBM0UwMDZDQUI1NSAvKiBwYXNfbGFy
Z2VfZXhwZW5kYWJsZV9tZW1vcnkuYyAqLzsgfTsKKwkJMkM0ODEzNDIyNzQwNkEzRTAwNkNBQjU1
IC8qIHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ4MTMzQzI3NDA2QTNFMDA2Q0FCNTUgLyogcGFz
X2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuYyAqLzsgfTsKKwkJMkM0ODEzNDMyNzQwNkEzRTAw
NkNBQjU1IC8qIHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ4MTMzRDI3NDA2QTNFMDA2Q0FCNTUg
LyogcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyQzQ4MTM0NDI3NDA2QTNFMDA2Q0FCNTUgLyog
cGFzX2V4cGVuZGFibGVfbWVtb3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyQzQ4MTMzRTI3NDA2QTNFMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVf
bWVtb3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJMkM0ODEzNDUyNzQwNkEzRTAwNkNBQjU1IC8qIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9y
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0ODEz
M0YyNzQwNkEzRTAwNkNBQjU1IC8qIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJDOTFFNTUyMjcx
Q0U0N0EwMEQ2N0ZGOSAvKiBwYXNfc2l6ZV9sb29rdXBfbW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5MUU1NTEyNzFDRTQ3QTAwRDY3RkY5IC8q
IHBhc19zaXplX2xvb2t1cF9tb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNDQyNkUyODAxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyNkUyN0Ux
QzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuY3BwICovOyB9OwogCQk0NDI2RTI4MTFDODM4RUUw
MDA4RUIwNDIgLyogTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDQyNkUyN0YxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkY0NzI0OTIxMEJB
MzAyMDBCNzMwQkIgLyogTWVtb3J5U3RhdHVzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkY0NzI0ODIxMEJBMkY1MDBCNzMwQkIgLyogTWVtb3J5
U3RhdHVzU1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTczOCw3ICs3MzIsNiBAQAogCQkwRjdDOTJEQzI2RTU3Rjc1MDA2QUYwMTIgLyogcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGN0M5MkREMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9jcmVhdGlvbl9tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaDsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3QzkyREUyNkU1N0Y3NTAwNkFGMDEyIC8q
IHBhc19sb2NhbF92aWV3X2NhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IHBhc19sb2NhbF92aWV3X2NhY2hlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9j
YWxfdmlld19jYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjdDOTJERjI2
RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2tfZnJlZV9yZWFkX2hhc2h0YWJsZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfbG9ja19mcmVlX3JlYWRfaGFzaHRhYmxlLmg7
IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9ja19mcmVlX3JlYWRfaGFzaHRhYmxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGN0M5MkUwMjZFNTdGNzUwMDZBRjAxMiAv
KiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY3QzkyRTEyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUu
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
bm9kZS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9k
ZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjdFQjdGQzFGOTU0MUFEMDBGMUFC
Q0IgLyogRWxpZ2liaWxpdHlSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gRWxpZ2liaWxpdHlSZXN1bHQuaDsgcGF0aCA9IGJtYWxsb2MvRWxpZ2liaWxpdHlSZXN1bHQu
aDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAtOTA4LDcgKzkwMSw2IEBACiAJCTBG
OEU4MzI5MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9u
b2RlLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19yZWR1bmRhbnRfbG9j
YWxfYWxsb2NhdG9yX25vZGUuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19yZWR1bmRh
bnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY4RTgzMkEyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9y
X25vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3JlZHVuZGFudF9s
b2NhbF9hbGxvY2F0b3Jfbm9kZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3JlZHVu
ZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjhFODMyQjI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hl
YXBfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfZGVzaWdu
YXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTBGOTlGOTg2MjVDQjJDRDEwMEVFRTQ0OSAvKiBwYXNfc2l6ZV90aHVuay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2l6ZV90aHVuay5oOyBwYXRo
ID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3NpemVfdGh1bmsuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEZBQkREQ0EyNDhBQjA4MzAwQTg0MEIzIC8qIHBhc19sYXJnZV9mcmVlX2hl
YXBfZGVmaW5pdGlvbnMuZGVmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgZmlsZUVuY29kaW5nID0gNDsgbmFtZSA9IHBhc19s
YXJnZV9mcmVlX2hlYXBfZGVmaW5pdGlvbnMuZGVmOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZpbml0aW9ucy5kZWY7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGQUJERENCMjQ4QUIwODMwMEE4NDBCMyAvKiBwYXNfY29tcGFjdF9sYXJnZV91
dGlsaXR5X2ZyZWVfaGVhcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNf
Y29tcGFjdF9sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJw
YXMvcGFzX2NvbXBhY3RfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEZBQkREQ0MyNDhBQjA4MzAwQTg0MEIzIC8qIHBhc19sYXJnZV9mcmVl
X2hlYXBfaGVscGVycy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfbGFy
Z2VfZnJlZV9oZWFwX2hlbHBlcnMuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJn
ZV9mcmVlX2hlYXBfaGVscGVycy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTQz
LDcgKzkzNSw2IEBACiAJCTBGQzQwOTdBMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfY2FyZXNfYWJv
dXRfc2l6ZV9tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jYXJl
c19hYm91dF9zaXplX21vZGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jYXJlc19h
Ym91dF9zaXplX21vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDA5N0Iy
NDUxNDk1RjAwODc2REEwIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5o
OyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MDk3QzI0NTE0OTVGMDA4NzZEQTAg
LyogcGFzX2NvbXBhY3RfaGVhcF9yZXNlcnZhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBwYXNfY29tcGFjdF9oZWFwX3Jlc2VydmF0aW9uLmg7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfY29tcGFjdF9oZWFwX3Jlc2VydmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTBGQzQwOTdEMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9z
a2lwX2xpc3Rfbm9kZV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFz
X2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEZDNDA5N0UyNDUxNDk1RjAwODc2REEwIC8qIHBhc19iYXNpY19oZWFwX3J1bnRpbWVf
Y29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iYXNpY19oZWFw
X3J1bnRpbWVfY29uZmlnLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYmFzaWNfaGVh
cF9ydW50aW1lX2NvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MDk3
RjI0NTE0OTVGMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfaGVhcF9yZXNlcnZhdGlvbi5jICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfY29tcGFjdF9oZWFwX3Jlc2VydmF0aW9u
LmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9oZWFwX3Jlc2VydmF0aW9u
LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwOTgwMjQ1MTQ5NUYwMDg3NkRB
MCAvKiBwYXNfZHluYW1pY19wcmltaXRpdmVfaGVhcF9tYXAuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBuYW1lID0gcGFzX2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwLmM7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfZHluYW1pY19wcmltaXRpdmVfaGVhcF9tYXAuYzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk2NSwxMCArOTU2LDggQEAKIAkJMEZDNDA5OTIyNDUx
NDk2MDAwODc2REEwIC8qIHBhc19ib290c3RyYXBfaGVhcF9wYWdlX3Byb3ZpZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19ib290c3RyYXBfaGVhcF9wYWdlX3Byb3Zp
ZGVyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYm9vdHN0cmFwX2hlYXBfcGFnZV9w
cm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MDk5MzI0NTE0OTYw
MDA4NzZEQTAgLyogcGFzX2Vuc3VyZV9oZWFwX3dpdGhfcGFnZV9jYWNoZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2Vuc3VyZV9oZWFwX3dpdGhfcGFnZV9jYWNoZXMu
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnN1cmVfaGVhcF93aXRoX3BhZ2VfY2Fj
aGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwOTk0MjQ1MTQ5NjEwMDg3
NkRBMCAvKiBwYXNfZW5zdXJlX2hlYXBfZm9yY2VkX2ludG9fcmVzZXJ2ZWRfbWVtb3J5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19lbnN1cmVfaGVhcF9mb3JjZWRfaW50
b19yZXNlcnZlZF9tZW1vcnkuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnN1cmVf
aGVhcF9mb3JjZWRfaW50b19yZXNlcnZlZF9tZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMEZDNDA5OTYyNDUxNDk2MTAwODc2REEwIC8qIHBhc19iYXNpY19zZWdyZWdhdGVk
X3BhZ2VfY2FjaGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iYXNp
Y19zZWdyZWdhdGVkX3BhZ2VfY2FjaGVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
YmFzaWNfc2VncmVnYXRlZF9wYWdlX2NhY2hlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRkM0MDk5NzI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90
YWJsZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfYmFzZWxpbmVfYWxs
b2NhdG9yX3RhYmxlLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYmFzZWxpbmVfYWxs
b2NhdG9yX3RhYmxlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwOTk4MjQ1
MTQ5NjEwMDg3NkRBMCAvKiBwYXNfZGVhbGxvY2F0ZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
LmM7IG5hbWUgPSBwYXNfZGVhbGxvY2F0ZS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFz
X2RlYWxsb2NhdGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEZDNDA5OTkyNDUx
NDk2MTAwODc2REEwIC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9wdHIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVf
cHRyX3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc2tpcF9saXN0
X25vZGVfcHRyX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MDk5QTI0
NTE0OTYxMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfdW5zaWduZWRfcHRyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X3Vuc2lnbmVkX3B0ci5oOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfdW5zaWduZWRfcHRyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwOTlCMjQ1MTQ5NjEwMDg3NkRBMCAvKiBwYXNfZGVhbGxv
Y2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfZGVhbGxvY2F0ZS5o
OyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlYWxsb2NhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDA5OUMyNDUxNDk2MTAwODc2REEwIC8qIHBhc19leHRlbmRl
ZF9nY2QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2V4dGVuZGVkX2dj
ZC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2V4dGVuZGVkX2djZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTg4LDcgKzk3Nyw2IEBACiAJCTBGQzQwOUFBMjQ1MTQ5
NjIwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdG9yX2NvdW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBwYXNfYWxsb2NhdG9yX2NvdW50cy5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2FsbG9jYXRvcl9jb3VudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEZDNDA5QUIyNDUxNDk2MjAwODc2REEwIC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX3BhcnRpYWxfdmlld19wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3B0ci5oOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfcGFydGlhbF92
aWV3X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MDlBQzI0NTE0OTYy
MDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfaGVhcF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gcGFzX2NvbXBhY3RfaGVhcF9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19jb21wYWN0X2hlYXBfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTBGQzQwOUFEMjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfY291bnRfbG9va3VwX21vZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvdW50X2xvb2t1cF9tb2RlLmg7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY291bnRfbG9va3VwX21vZGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDA5QUUyNDUxNDk2MjAwODc2REEwIC8qIHBhc19keW5h
bWljX3ByaW1pdGl2ZV9oZWFwX21hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBwYXNfZHluYW1pY19wcmltaXRpdmVfaGVhcF9tYXAuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19keW5hbWljX3ByaW1pdGl2ZV9oZWFwX21hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRkM0MDlBRjI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2Vwb2NoLmMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19lcG9jaC5jOyBwYXRoID0gbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2Vwb2NoLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQw
OUIwMjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190
YWJsZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfZXhjbHVzaXZlX3Zp
ZXdfdGVtcGxhdGVfbWVtb190YWJsZS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2V4
Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEwMjMsNyArMTAxMSw2IEBACiAJCTBGQzQwQTI2MjQ1MTQ5ODUwMDg3NkRBMCAv
KiBwYXNfc2ltcGxlX3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFz
X3NpbXBsZV90eXBlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2ltcGxlX3R5cGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBMjcyNDUxNDk4NTAwODc2REEw
IC8qIHBhc19yYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfcmFu
Z2UuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19yYW5nZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkM0MEEyODI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX2xvY2FsX2Fs
bG9jYXRvci5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfbG9jYWxfYWxs
b2NhdG9yLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGQzQwQTJBMjQ1MTQ5ODUwMDg3NkRBMCAv
KiBwYXNfc2tpcF9saXN0X2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gcGFzX3NraXBfbGlzdF9pbmxpbmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2tpcF9saXN0X2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBB
MkIyNDUxNDk4NTAwODc2REEwIC8qIHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmg7
IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MEEyQzI0NTE0OTg1MDA4NzZEQTAgLyog
cGFzX3V0aWxpdHlfaGVhcF9jb25maWcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1l
ID0gcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c191dGlsaXR5X2hlYXBfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
QzQwQTJEMjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc192ZXJzaW9uZWRfZmllbGQuaDsgcGF0aCA9IGxp
YnBhcy9zcmMvbGlicGFzL3Bhc192ZXJzaW9uZWRfZmllbGQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEwNDAsNyArMTAyNyw2IEBACiAJCTBGQzQwQTM4MjQ1MTQ5ODYwMDg3NkRB
MCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2UuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX3BhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBMzky
NDUxNDk4NjAwODc2REEwIC8qIHBhc190cnlfYWxsb2NhdGVfY29tbW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc190cnlfYWxsb2NhdGVfY29tbW9uLmg7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkM0MEEzQTI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX2dlbmVyaWNf
bGFyZ2VfZnJlZV9oZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19n
ZW5lcmljX2xhcmdlX2ZyZWVfaGVhcC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2dl
bmVyaWNfbGFyZ2VfZnJlZV9oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBG
QzQwQTNCMjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfb2JqZWN0X3NpemVfbW9kZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfb2JqZWN0X3NpemVfbW9kZS5oOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX29iamVjdF9zaXplX21vZGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEZDNDBBM0MyNDUxNDk4NzAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVk
X3BhcnRpYWxfdmlldy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfc2Vn
cmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3BhcnRpYWxfdmlldy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0
MEEzRTI0NTE0OTg3MDA4NzZEQTAgLyogcGFzX3NpbXBsZV9mcmVlX2hlYXBfaGVscGVycy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2ltcGxlX2ZyZWVfaGVhcF9oZWxw
ZXJzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2ltcGxlX2ZyZWVfaGVhcF9oZWxw
ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQTNGMjQ1MTQ5ODcwMDg3
NkRBMCAvKiBwYXNfc3RyaW5nX3N0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBwYXNfc3RyaW5nX3N0cmVhbS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0
cmluZ19zdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNjgsNyArMTA1
NCw2IEBACiAJCTBGQzQwQTU2MjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfbG9ja19mcmVlX3JlYWRf
cHRyX3B0cl9oYXNodGFibGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFz
X2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBNTcyNDUxNDk4ODAwODc2REEwIC8qIHBhc19zY2F2ZW5n
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NjYXZlbmdlci5oOyBw
YXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRkM0MEE1ODI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX2hlYXBfY29uZmln
X2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2hlYXBfY29uZmln
X2tpbmQuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ19raW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGQzQwQTU5MjQ1MTQ5ODkwMDg3NkRBMCAv
KiBwYXNfc2VncmVnYXRlZF9oZWFwX3BhZ2Vfc2hhcmluZ19tb2RlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX21vZGUu
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFy
aW5nX21vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBNUEyNDUxNDk4
OTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5o
OyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2lu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MEE1QjI0NTE0OTg5MDA4NzZE
QTAgLyogcGFzX3NpbXBsZV9mcmVlX2hlYXBfaGVscGVycy5jICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IG5hbWUgPSBwYXNfc2ltcGxlX2ZyZWVfaGVhcF9oZWxwZXJzLmM7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2ltcGxlX2ZyZWVfaGVhcF9oZWxwZXJzLmM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQTVDMjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfdXRpbHNf
cHJlZml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc191dGlsc19wcmVm
aXguaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsc19wcmVmaXguaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwODEsNyArMTA2Niw2IEBACiAJCTBGQzQwQTY0MjQ1
MTQ5ODkwMDg3NkRBMCAvKiBwYXNfaW1tb3J0YWxfaGVhcC5jICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IG5hbWUgPSBwYXNfaW1tb3J0YWxfaGVhcC5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJw
YXMvcGFzX2ltbW9ydGFsX2hlYXAuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZD
NDBBNjUyNDUxNDk4OTAwODc2REEwIC8qIHBhc190cnlfYWxsb2NhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3RyeV9hbGxvY2F0ZS5oOyBwYXRoID0gbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRkM0MEE2NjI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX2hlYXBfcmVmLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19oZWFwX3JlZi5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2hlYXBfcmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGQzQw
QTY3MjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2hlYWRlcl9wbGFjZW1l
bnRfbW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2VncmVnYXRl
ZF9wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9oZWFkZXJfcGxhY2VtZW50X21vZGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBNjgyNDUxNDk4QTAwODc2REEwIC8qIHBhc19zdHJlYW0u
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3N0cmVhbS5jOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX3N0cmVhbS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRkM0MEE2OTI0NTE0OThBMDA4NzZEQTAgLyogcGFzX2hlYXBfY29uZmlnX2tpbmQuYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2hlYXBfY29uZmlnX2tpbmQuYzsg
cGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ19raW5kLmM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQTZBMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfaGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEwOTksNyArMTA4Myw2IEBACiAJCTBGQzQwQTc2MjQ1MTQ5OEIwMDg3NkRBMCAvKiBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmRlZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGZpbGVFbmNvZGluZyA9
IDQ7IG5hbWUgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmRlZjsgcGF0aCA9IGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuZGVmOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MEE3NzI0NTE0OThCMDA4NzZEQTAgLyogcGFz
X2hlYXBfZm9yX2NvbmZpZy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNf
aGVhcF9mb3JfY29uZmlnLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9mb3Jf
Y29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQTc4MjQ1MTQ5OEIw
MDg3NkRBMCAvKiBwYXNfdGlueV9sYXJnZV9tYXBfZW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gcGFzX3RpbnlfbGFyZ2VfbWFwX2VudHJ5Lmg7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfdGlueV9sYXJnZV9tYXBfZW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMEZDNDBBNzkyNDUxNDk4QjAwODc2REEwIC8qIHBhc190eXBlZF9hbGxvY2F0
aW9uX3Jlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfdHlwZWRf
YWxsb2NhdGlvbl9yZXN1bHQuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc190eXBlZF9h
bGxvY2F0aW9uX3Jlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MEE3
QTI0NTE0OThCMDA4NzZEQTAgLyogcGFzX2xhcmdlX2hlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gcGFzX2xhcmdlX2hlYXAuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19sYXJnZV9oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQTdC
MjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfaGVhcF9sb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IHBhc19oZWFwX2xvY2suaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19oZWFwX2xvY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBN0MyNDUx
NDk4QjAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGUuYyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5jOyBuYW1lID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jOyBwYXRoID0gbGlicGFz
L3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTEyOSw3ICsxMTEyLDYgQEAKIAkJMEZDNDBBOTYyNDUxNDk4RDAwODc2REEw
IC8qIHBhc19nZXRfYWxsb2NhdGlvbl9zaXplLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IHBhc19nZXRfYWxsb2NhdGlvbl9zaXplLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRkM0MEE5NzI0NTE0OThEMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
dXRpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfdXRpbHMuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX3V0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
QzQwQTk4MjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxp
bmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGlu
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEZDNDBBOTkyNDUxNDk4RDAwODc2
REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ncmFudWxlX3VzZV9j
b3VudC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ncmFu
dWxlX3VzZV9jb3VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MEE5QTI0
NTE0OThEMDA4NzZEQTAgLyogcGFzX2hlYXBfZm9yX2NvbmZpZy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBwYXNfaGVhcF9mb3JfY29uZmlnLmg7IHBhdGggPSBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfaGVhcF9mb3JfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGQzQwQTlCMjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVh
cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2ltcGxlX2xhcmdlX2Zy
ZWVfaGVhcC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3NpbXBsZV9sYXJnZV9mcmVl
X2hlYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBOUMyNDUxNDk4RDAw
ODc2REEwIC8qIHBhc19sYXJnZV9mcmVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IHBhc19sYXJnZV9mcmVlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vf
ZnJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE0OCw4ICsxMTMwLDYgQEAK
IAkJMEZDNDBBQUEyNDUxNDk4RTAwODc2REEwIC8qIHBhc19oZWFwX2NvbmZpZy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfaGVhcF9jb25maWcuaDsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRkM0MEFBQjI0NTE0OThFMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQUFD
MjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2VtcHRpbmVzc19raW5kLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZW1w
dGluZXNzX2tpbmQuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3Bh
Z2VfZW1wdGluZXNzX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEZDNDBB
QUQyNDUxNDk4RTAwODc2REEwIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfaW5saW5lcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2hhcmVkX2hhbmRsZV9vcl9w
YWdlX2lubGluZXMuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zaGFyZWRfaGFuZGxl
X29yX3BhZ2VfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRkM0MEFB
RTI0NTE0OThGMDA4NzZEQTAgLyogcGFzX3NraXBfbGlzdC5jICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IG5hbWUgPSBwYXNfc2tpcF9saXN0LmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2tpcF9saXN0LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQUFGMjQ1
MTQ5OEYwMDg3NkRBMCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuYyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5jOyBuYW1lID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmM7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2wuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEZDNDBBQjAyNDUxNDk4RjAwODc2REEwIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNp
Y2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuaDsgcGF0aCA9IGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNo
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MEFCMjI0NTE0OThGMDA4NzZE
QTAgLyogcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5jOyBuYW1lID0gcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuYzsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMTYzLDExICsxMTQzLDkgQEAKIAkJMEZDNDBBQkQyNDUxNDk5MDAwODc2
REEwIC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91
cGRhdGVfbW9kZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX3NoYXJpbmdf
cG9vbF9lcG9jaF91cGRhdGVfbW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RkM0MEFCRTI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX3ZpcnR1YWxfcmFuZ2UuYyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3ZpcnR1YWxfcmFuZ2UuYzsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc192aXJ0dWFsX3JhbmdlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGQzQwQUJGMjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfcmVkX2JsYWNrX3RyZWUuYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3JlZF9ibGFja190cmVlLmM7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcmVkX2JsYWNrX3RyZWUuYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMEZDNDBBQzAyNDUxNDk5MDAwODc2REEwIC8qIHBhc19zaGFyZWRf
aGFuZGxlX29yX3BhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3No
YXJlZF9oYW5kbGVfb3JfcGFnZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3NoYXJl
ZF9oYW5kbGVfb3JfcGFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MEFD
MTI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX2xvZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBwYXNfbG9nLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQUMyMjQ1MTQ5OTAwMDg3NkRBMCAvKiBw
YXNfZm91bmRfYml0X2luZGV4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBh
c19mb3VuZF9iaXRfaW5kZXguaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19mb3VuZF9i
aXRfaW5kZXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBQzMyNDUxNDk5
MDAwODc2REEwIC8qIHBhc19wdHJfaGFzaF9zZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gcGFzX3B0cl9oYXNoX3NldC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFz
X3B0cl9oYXNoX3NldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRkM0MEFDNDI0
NTE0OTkwMDA4NzZEQTAgLyogcGFzX3NraXBfbGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBwYXNfc2tpcF9saXN0Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2tpcF9saXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQUM1MjQ1MTQ5
OTAwMDg3NkRBMCAvKiBwYXNfdHJlZV9kaXJlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gcGFzX3RyZWVfZGlyZWN0aW9uLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfdHJlZV9kaXJlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZD
NDBBQzYyNDUxNDk5MDAwODc2REEwIC8qIHBhc19oZWFwX3RhYmxlLmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19oZWFwX3RhYmxlLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfaGVhcF90YWJsZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0
MEFDNzI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmg7IHBhdGgg
PSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMjc0LDYgKzEyNTIsMTYgQEAKIAkJMTREQTMyMEMxODg3NUIw
OTAwNzI2OUUwIC8qIEhlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSGVh
cC5oOyBwYXRoID0gYm1hbGxvYy9IZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTE0REEzMjBFMTg4NzVEOUYwMDcyNjlFMCAvKiBIZWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IEhlYXAuY3BwOyBwYXRoID0gYm1hbGxvYy9IZWFwLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRGMjcxQkUxOEVBMzk2MzAwOEMxNTJGIC8qIGxp
YmJtYWxsb2MuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliYm1hbGxvYy5hOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkyQzExRTg5MjI3MjhERTI3MDAy
MTYyRDAgLyogYm1hbGxvY190eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IGJtYWxsb2NfdHlwZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY190eXBlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDMTFFODkzMjcyOERFMjcwMDIxNjJEMCAv
KiBibWFsbG9jX3R5cGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gYm1hbGxv
Y190eXBlLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX3R5cGUuYzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkMxMUU4OTQyNzI4REUyNzAwMjE2MkQwIC8qIHBhc19z
aW1wbGVfdHlwZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfc2ltcGxl
X3R5cGUuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zaW1wbGVfdHlwZS5jOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzQ4MTMzQTI3NDA2QTNFMDA2Q0FCNTUgLyogcGFz
X2V4cGVuZGFibGVfbWVtb3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBh
c19leHBlbmRhYmxlX21lbW9yeS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2V4cGVu
ZGFibGVfbWVtb3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDNDgxMzNCMjc0
MDZBM0UwMDZDQUI1NSAvKiBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuYyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmM7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuYzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM0ODEzM0MyNzQwNkEzRTAwNkNBQjU1IC8qIHBh
c19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsg
bmFtZSA9IHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmM7IHBhdGggPSBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5jOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyQzQ4MTMzRDI3NDA2QTNFMDA2Q0FCNTUgLyogcGFzX2NvbXBhY3RfZXhw
ZW5kYWJsZV9tZW1vcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2Nv
bXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19j
b21wYWN0X2V4cGVuZGFibGVfbWVtb3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJDNDgxMzNFMjc0MDZBM0UwMDZDQUI1NSAvKiBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2V4cGVuZGFibGVfbWVtb3J5Lmg7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZXhwZW5kYWJsZV9tZW1vcnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM0ODEzM0YyNzQwNkEzRTAwNkNBQjU1IC8qIHBhc19sYXJn
ZV9leHBlbmRhYmxlX21lbW9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBw
YXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyQzkxRTU1MTI3MUNFNDdBMDBENjdGRjkgLyogcGFzX3NpemVfbG9va3VwX21vZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NpemVfbG9va3VwX21vZGUuaDsgcGF0
aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zaXplX2xvb2t1cF9tb2RlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ0MjZFMjdFMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExvZ2dpbmcuY3BwOyBwYXRo
ID0gYm1hbGxvYy9Mb2dnaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQy
NkUyN0YxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gTG9nZ2luZy5oOyBwYXRoID0gYm1hbGxvYy9Mb2dnaW5nLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRjQ3MjQ4MjEwQkEyRjUwMEI3MzBCQiAvKiBNZW1vcnlT
dGF0dXNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTWVtb3J5U3RhdHVz
U1BJLmg7IHBhdGggPSBibWFsbG9jL2Rhcndpbi9NZW1vcnlTdGF0dXNTUEkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDQsNiArMTM5Miw4IEBACiAJCQkJMEY4QTgxMjMyNUY4
M0UyNDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9yZWYuaCAqLywKIAkJCQkwRjhBODEyMDI1Rjgz
RTI0MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuYyAqLywKIAkJCQkwRjhBODEyNjI1RjgzRTI0MDA3
OTBCNEEgLyogaG90Yml0X2hlYXAuaCAqLywKKwkJCQkyQzExRTg5MzI3MjhERTI3MDAyMTYyRDAg
LyogYm1hbGxvY190eXBlLmMgKi8sCisJCQkJMkMxMUU4OTIyNzI4REUyNzAwMjE2MkQwIC8qIGJt
YWxsb2NfdHlwZS5oICovLAogCQkJCTBGOEE4MTFFMjVGODNFMjQwMDc5MEI0QSAvKiBob3RiaXRf
aGVhcF9jb25maWcuYyAqLywKIAkJCQkwRjhBODEyMTI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0
X2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEY4QTgxMUMyNUY4M0UyNDAwNzkwQjRBIC8qIGhvdGJp
dF9oZWFwX2lubGluZXMuaCAqLywKQEAgLTE0NTksNyArMTQ0OSw2IEBACiAJCQkJMEY4N0ZGQUIy
NUFGODk3QTAwMEUxQUJGIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19yb290X2RhdGEuaCAqLywK
IAkJCQkwRkM0MDlBNjI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2Jhc2ljX2hlYXBfcGFnZV9jYWNo
ZXMuaCAqLywKIAkJCQkwRkM0MDk3RTI0NTE0OTVGMDA4NzZEQTAgLyogcGFzX2Jhc2ljX2hlYXBf
cnVudGltZV9jb25maWcuaCAqLywKLQkJCQkwRkM0MDk5NjI0NTE0OTYxMDA4NzZEQTAgLyogcGFz
X2Jhc2ljX3NlZ3JlZ2F0ZWRfcGFnZV9jYWNoZXMuaCAqLywKIAkJCQkwRjg3RkZDQzI1QUY4OTdD
MDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaCAqLywKIAkJCQkwRkM0MDlC
NTI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2JpdGZpZWxkX3ZlY3Rvci5oICovLAogCQkJCTBGODdG
RkQ2MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRpb25fcmVzdWx0LmggKi8s
CkBAIC0xNTI1LDYgKzE1MTQsOCBAQAogCQkJCTBGQzQwOUE0MjQ1MTQ5NjIwMDg3NkRBMCAvKiBw
YXNfY29tcGFjdF9ib290c3RyYXBfZnJlZV9oZWFwLmMgKi8sCiAJCQkJMEZDNDA5ODMyNDUxNDk1
RjAwODc2REEwIC8qIHBhc19jb21wYWN0X2Jvb3RzdHJhcF9mcmVlX2hlYXAuaCAqLywKIAkJCQkw
RkM0MDk5MTI0NTE0OTYwMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfY2FydGVzaWFuX3RyZWVfbm9k
ZV9wdHIuaCAqLywKKwkJCQkyQzQ4MTMzQzI3NDA2QTNFMDA2Q0FCNTUgLyogcGFzX2NvbXBhY3Rf
ZXhwZW5kYWJsZV9tZW1vcnkuYyAqLywKKwkJCQkyQzQ4MTMzRDI3NDA2QTNFMDA2Q0FCNTUgLyog
cGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuaCAqLywKIAkJCQkwRkM0MDlBQzI0NTE0OTYy
MDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfaGVhcF9wdHIuaCAqLywKIAkJCQkwRkM0MDk3RjI0NTE0
OTVGMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfaGVhcF9yZXNlcnZhdGlvbi5jICovLAogCQkJCTBG
QzQwOTdDMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9oZWFwX3Jlc2VydmF0aW9uLmgg
Ki8sCkBAIC0xNTM5LDggKzE1MzAsNiBAQAogCQkJCTBGQzQwOTcwMjQ1MTQ5NUUwMDg3NkRBMCAv
KiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0ci5oICovLAogCQkJCTBGN0M5
MkRCMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3B0ci5oICovLAogCQkJCTBGQzQwOThGMjQ1MTQ5NjAwMDg3NkRBMCAvKiBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3ZpZXcuaCAqLywKLQkJCQkwRkM0MDk3RDI0NTE0OTVGMDA4NzZEQTAgLyog
cGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyLmggKi8sCi0JCQkJMEZDNDA5OTkyNDUxNDk2
MTAwODc2REEwIC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9wdHIuaCAqLywKIAkJ
CQkwRkM0MDlDMTI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX2F0b21pY19w
dHIuaCAqLywKIAkJCQkwRjVGRTdEOTI1QjYyMTBEMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfdGFn
Z2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggKi8sCiAJCQkJMEZDNDA5NzEyNDUxNDk1
RTAwODc2REEwIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wdHIuaCAqLywKQEAgLTE1NTAsNyArMTUz
OSw2IEBACiAJCQkJMEZDNDA5QjMyNDUxNDk2MjAwODc2REEwIC8qIHBhc19jb21wdXRlX3N1bW1h
cnlfb2JqZWN0X2NhbGxiYWNrcy5oICovLAogCQkJCTBGQzQwOUI4MjQ1MTQ5NjMwMDg3NkRBMCAv
KiBwYXNfY29uZmlnLmggKi8sCiAJCQkJMEZDNDA5QTgyNDUxNDk2MjAwODc2REEwIC8qIHBhc19j
b25maWdfcHJlZml4LmggKi8sCi0JCQkJMEZDNDA5QUQyNDUxNDk2MjAwODc2REEwIC8qIHBhc19j
b3VudF9sb29rdXBfbW9kZS5oICovLAogCQkJCTBGQzQwOUE1MjQ1MTQ5NjIwMDg3NkRBMCAvKiBw
YXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuYyAq
LywKIAkJCQkwRkM0MDk2RjI0NTE0OTVFMDA4NzZEQTAgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFw
X3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmggKi8sCiAJCQkJMEZDNDA5OTgyNDUx
NDk2MTAwODc2REEwIC8qIHBhc19kZWFsbG9jYXRlLmMgKi8sCkBAIC0xNTk3LDYgKzE1ODUsOCBA
QAogCQkJCTBGQzQwOUIxMjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfZXBvY2guaCAqLywKIAkJCQkw
RkM0MDlCMDI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21l
bW9fdGFibGUuYyAqLywKIAkJCQkwRkM0MDk5MDI0NTE0OTYwMDA4NzZEQTAgLyogcGFzX2V4Y2x1
c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuaCAqLywKKwkJCQkyQzQ4MTMzQTI3NDA2QTNF
MDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5LmMgKi8sCisJCQkJMkM0ODEzM0UyNzQw
NkEzRTAwNkNBQjU1IC8qIHBhc19leHBlbmRhYmxlX21lbW9yeS5oICovLAogCQkJCTBGQzQwOTc1
MjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfZXh0ZW5kZWRfZ2NkLmMgKi8sCiAJCQkJMEZDNDA5OUMy
NDUxNDk2MTAwODc2REEwIC8qIHBhc19leHRlbmRlZF9nY2QuaCAqLywKIAkJCQkwRkM0MEE5RTI0
NTE0OThEMDA4NzZEQTAgLyogcGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFwLmMgKi8sCkBAIC0xNjYx
LDYgKzE2NTEsOCBAQAogCQkJCTBGQzQwQTk0MjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfaW1tdXRh
YmxlX3ZlY3Rvci5oICovLAogCQkJCTBGNTE2RUU0MjQ1NjE4NEYwMDRFMkI4RCAvKiBwYXNfaW50
ZXJuYWxfY29uZmlnLmggKi8sCiAJCQkJMEZDNDBBNTEyNDUxNDk4ODAwODc2REEwIC8qIHBhc19p
bnRyaW5zaWNfaGVhcF9zdXBwb3J0LmggKi8sCisJCQkJMkM0ODEzM0IyNzQwNkEzRTAwNkNBQjU1
IC8qIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5jICovLAorCQkJCTJDNDgxMzNGMjc0MDZB
M0UwMDZDQUI1NSAvKiBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaCAqLywKIAkJCQkwRkM0
MEE5QzI0NTE0OThEMDA4NzZEQTAgLyogcGFzX2xhcmdlX2ZyZWUuaCAqLywKIAkJCQkwRkM0MEE1
NDI0NTE0OTg4MDA4NzZEQTAgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9jb25maWcuaCAqLywKIAkJ
CQkwRkFCRERDRjI0OEFCMDg0MDBBODQwQjMgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWNsYXJh
dGlvbnMuZGVmICovLApAQCAtMTcwMCw3ICsxNjkyLDYgQEAKIAkJCQkwRjdDOTJEQzI2RTU3Rjc1
MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oICovLAogCQkJCTBGQzQwQkQ5
MjQ1MjQzQTQwMDg3NkRBMCAvKiBwYXNfbG9jay5jICovLAogCQkJCTBGQzQwQThCMjQ1MTQ5OEMw
MDg3NkRBMCAvKiBwYXNfbG9jay5oICovLAotCQkJCTBGN0M5MkRGMjZFNTdGNzUwMDZBRjAxMiAv
KiBwYXNfbG9ja19mcmVlX3JlYWRfaGFzaHRhYmxlLmggKi8sCiAJCQkJMEZDNDBBNTYyNDUxNDk4
ODAwODc2REEwIC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5jICovLAog
CQkJCTBGQzQwQUE0MjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0
cl9oYXNodGFibGUuaCAqLywKIAkJCQkwRkM0MEFENzI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX2xv
Zy5jICovLApAQCAtMTcxNCw3ICsxNzA1LDYgQEAKIAkJCQkwRkM0MEE3MTI0NTE0OThBMDA4NzZE
QTAgLyogcGFzX21vbm90b25pY190aW1lLmggKi8sCiAJCQkJMEZDNDBBRDIyNDUxNDk5MTAwODc2
REEwIC8qIHBhc19tdXRhdGlvbl9jb3VudC5oICovLAogCQkJCTBGODcwMDRFMjVBRjhBMTkwMDBF
MUFCRiAvKiBwYXNfb2JqZWN0X2tpbmQuaCAqLywKLQkJCQkwRkM0MEEzQjI0NTE0OTg2MDA4NzZE
QTAgLyogcGFzX29iamVjdF9zaXplX21vZGUuaCAqLywKIAkJCQkwRjg3MDA1MjI1QUY4QTFBMDAw
RTFBQkYgLyogcGFzX3BhZ2VfYmFzZS5jICovLAogCQkJCTBGODcwMDVEMjVBRjhBMUEwMDBFMUFC
RiAvKiBwYXNfcGFnZV9iYXNlLmggKi8sCiAJCQkJMEY4NzAwNjAyNUFGOEExQjAwMEUxQUJGIC8q
IHBhc19wYWdlX2Jhc2VfY29uZmlnLmggKi8sCkBAIC0xNzg3LDcgKzE3NzcsNiBAQAogCQkJCTBG
QzQwQTJGMjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmggKi8sCiAJCQkJ
MEZDNDBBMjAyNDUxNDk4NTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5o
ICovLAogCQkJCTBGQzQwQTdGMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFw
X2xvb2t1cF9raW5kLmggKi8sCi0JCQkJMEZDNDBBNTkyNDUxNDk4OTAwODc2REEwIC8qIHBhc19z
ZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX21vZGUuaCAqLywKIAkJCQkwRkM0MEFERjI0NTE0
OTkyMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jICovLAogCQkJCTBGQzQwQTM4MjQ1
MTQ5ODYwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmggKi8sCiAJCQkJMEY1RkU3RDEy
NUI2MjEwQzAwMTg1OUZDIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5kX2NvbmZpZy5oICovLApA
QCAtMTgwMSw4ICsxNzkwLDYgQEAKIAkJCQkwRkM0MEE1NTI0NTE0OTg4MDA4NzZEQTAgLyogcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHNfaW5saW5lcy5oICovLAogCQkJCTBGNUZFN0M5
MjVCNjIxMEIwMDE4NTlGQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50Lmgg
Ki8sCiAJCQkJMEZDNDBBQUMyNDUxNDk4RTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
ZW1wdGluZXNzX2tpbmQuaCAqLywKLQkJCQkwRkM0MEE5OTI0NTE0OThEMDA4NzZEQTAgLyogcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oICovLAotCQkJCTBGQzQwQTY3MjQ1
MTQ5OEEwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9k
ZS5oICovLAogCQkJCTBGQzQwQUREMjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlX2lubGluZXMuaCAqLywKIAkJCQkwRkM0MEEzQzI0NTE0OTg3MDA4NzZEQTAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfcGFydGlhbF92aWV3LmMgKi8sCiAJCQkJMEZDNDBBMjEyNDUxNDk4NTAwODc2REEw
IC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oICovLApAQCAtMTgyMywxMCArMTgxMCw4
IEBACiAJCQkJMEZDNDBBRUYyNDUxNDk5MzAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXcu
aCAqLywKIAkJCQkwRjE4Rjg1NzI1QzM0N0YzMDA3MjFDMkEgLyogcGFzX3NlZ3JlZ2F0ZWRfdmll
d19hbGxvY2F0b3JfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQTg1MjQ1MTQ5OEMwMDg3NkRBMCAv
KiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaCAqLywKLQkJCQkwRkM0MEFDMDI0NTE0OTkwMDA4
NzZEQTAgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZS5oICovLAogCQkJCTBGNUZFN0RCMjVC
NjIxMEQwMDE4NTlGQyAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5LmggKi8s
CiAJCQkJMEY1RkU3Q0YyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3Bh
Z2VfYm91bmRhcnlfaW5saW5lcy5oICovLAotCQkJCTBGQzQwQUFEMjQ1MTQ5OEUwMDg3NkRBMCAv
KiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2lubGluZXMuaCAqLywKIAkJCQkwRkNDRDE0MjI2
NTYwMTg2MDAxNzFBMUYgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmMgKi8s
CiAJCQkJMEZDQ0QxNDMyNjU2MDE4NjAwMTcxQTFGIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3Rv
cnlfYnlfc2l6ZS5oICovLAogCQkJCTBGQzQwQTQ2MjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfc2lt
cGxlX2ZyZWVfaGVhcF9kZWNsYXJhdGlvbnMuZGVmICovLApAQCAtMTgzNSwxMSArMTgyMCw5IEBA
CiAJCQkJMEZDNDBBM0UyNDUxNDk4NzAwODc2REEwIC8qIHBhc19zaW1wbGVfZnJlZV9oZWFwX2hl
bHBlcnMuaCAqLywKIAkJCQkwRkM0MEFCMjI0NTE0OThGMDA4NzZEQTAgLyogcGFzX3NpbXBsZV9s
YXJnZV9mcmVlX2hlYXAuYyAqLywKIAkJCQkwRkM0MEE5QjI0NTE0OThEMDA4NzZEQTAgLyogcGFz
X3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuaCAqLywKKwkJCQkyQzExRTg5NDI3MjhERTI3MDAyMTYy
RDAgLyogcGFzX3NpbXBsZV90eXBlLmMgKi8sCiAJCQkJMEZDNDBBMjYyNDUxNDk4NTAwODc2REEw
IC8qIHBhc19zaW1wbGVfdHlwZS5oICovLAotCQkJCTBGOTlGOTg2MjVDQjJDRDEwMEVFRTQ0OSAv
KiBwYXNfc2l6ZV90aHVuay5oICovLAotCQkJCTBGQzQwQUFFMjQ1MTQ5OEYwMDg3NkRBMCAvKiBw
YXNfc2tpcF9saXN0LmMgKi8sCi0JCQkJMEZDNDBBQzQyNDUxNDk5MDAwODc2REEwIC8qIHBhc19z
a2lwX2xpc3QuaCAqLywKLQkJCQkwRkM0MEEyQTI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX3NraXBf
bGlzdF9pbmxpbmVzLmggKi8sCisJCQkJMkM5MUU1NTEyNzFDRTQ3QTAwRDY3RkY5IC8qIHBhc19z
aXplX2xvb2t1cF9tb2RlLmggKi8sCiAJCQkJMEZDNDBBOTIyNDUxNDk4RDAwODc2REEwIC8qIHBh
c19zbG93X3BhdGhfbW9kZS5oICovLAogCQkJCTBGQzQwQTYxMjQ1MTQ5ODkwMDg3NkRBMCAvKiBw
YXNfc2xvd19wYXRoX21vZGVfcHJlZml4LmggKi8sCiAJCQkJMEZDNDBBRDUyNDUxNDk5MTAwODc2
REEwIC8qIHBhc19zbWFsbF9sYXJnZV9tYXBfZW50cnkuaCAqLywKQEAgLTE4NjksNyArMTg1Miw2
IEBACiAJCQkJMEZDNDBBMkIyNDUxNDk4NTAwODc2REEwIC8qIHBhc190cnlfYWxsb2NhdGVfcHJp
bWl0aXZlLmggKi8sCiAJCQkJMEZDNDBBMzAyNDUxNDk4NjAwODc2REEwIC8qIHBhc190cnlfcmVh
bGxvY2F0ZS5oICovLAogCQkJCTBGNTE5M0Y0MjY2QzQyQkYwMDQ4M0EyQyAvKiBwYXNfdHJ5X3No
cmluay5oICovLAotCQkJCTBGQzQwQTc5MjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfdHlwZWRfYWxs
b2NhdGlvbl9yZXN1bHQuaCAqLywKIAkJCQkwRkM0MEEzMTI0NTE0OTg2MDA4NzZEQTAgLyogcGFz
X3V0aWxpdHlfaGVhcC5jICovLAogCQkJCTBGQzQwQUQwMjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNf
dXRpbGl0eV9oZWFwLmggKi8sCiAJCQkJMEZDNDBBMkMyNDUxNDk4NTAwODc2REEwIC8qIHBhc191
dGlsaXR5X2hlYXBfY29uZmlnLmMgKi8sCkBAIC0yMDc2LDYgKzIwNTgsNyBAQAogCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTE0REQ3OEM1MThGNDhE
NzUwMDk1MDcwMiAvKiBBbGdvcml0aG0uaCBpbiBIZWFkZXJzICovLAorCQkJCTJDNDgxMzQ0Mjc0
MDZBM0UwMDZDQUI1NSAvKiBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGN0VCODM0MUY5NTQxQjAwMEYxQUJDQiAvKiBBbGxJc29IZWFwcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY3RUI4NEYxRjk1NEQ0RTAwRjFBQkNCIC8qIEFsbElzb0hlYXBzSW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OTgxOEY0OEQ0QTAwOTUwNzAyIC8qIEFsbG9jYXRv
ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDgzLDYgKzIwNjYsNyBAQAogCQkJCTE0REQ3OEM3MThG
NDhENzUwMDk1MDcwMiAvKiBCQXNzZXJ0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDA5MzQzMzFG
Q0Y0MDZEMDBFODVFQjUgLyogQkNvbXBpbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVCRjE3
MzFGMjNDNTcxMDAyOUQ5MUQgLyogQkV4cG9ydC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkM0ODEz
NDUyNzQwNkEzRTAwNkNBQjU1IC8qIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTRERDc4QzkxOEY0OEQ3NTAwOTUwNzAyIC8qIEJJbmxpbmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGN0VCODRDMUY5NTQxQzcwMEYxQUJDQiAvKiBCaXRzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxNDQ4QzMwMTE4RjM3NTRDMDA1MDI4MzkgLyogYm1hbGxvYy5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yMjAwLDcgKzIxODQsNiBAQAogCQkJCTBGODdGRkUyMjVBRjg5N0MwMDBF
MUFCRiAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0MDlGQzI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jhc2ljX2hlYXBfcGFnZV9jYWNo
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUQ0MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNf
YmFzaWNfaGVhcF9ydW50aW1lX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZDNDA5RUMy
NDUxNDk2NDAwODc2REEwIC8qIHBhc19iYXNpY19zZWdyZWdhdGVkX3BhZ2VfY2FjaGVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjg3MDAwMjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdf
ZGlyZWN0b3J5X2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQTBCMjQ1MTQ5NjQwMDg3
NkRBMCAvKiBwYXNfYml0ZmllbGRfdmVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDAw
QzI1QUY4OTdEMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yMjE1LDYgKzIxOTgsNyBAQAogCQkJCTBGODcwMDA5MjVBRjg5N0MwMDBF
MUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGNUZFN0JFMjVCNjIwNTkwMDE4NTlGQyAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tp
bmQuZGVmIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4N0ZGRjcyNUFGODk3QzAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkMxMUU4OTUy
NzI4REUyNzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4
N0ZGRUQyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHMuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGODdGRkZGMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0
X3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODdGRkRC
MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjIzMSw2ICsyMjE1LDcgQEAKIAkJCQkwRkM0MEEwRDI0NTE0OTY0MDA4
NzZEQTAgLyogcGFzX2NvYWxpZ24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQTBBMjQ1MTQ5
NjQwMDg3NkRBMCAvKiBwYXNfY29tbWl0X21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODdG
RkRBMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfY29tbWl0X3NwYW4uaCBpbiBIZWFkZXJzICovLAor
CQkJCTJDOTFFNTUyMjcxQ0U0N0EwMEQ2N0ZGOSAvKiBwYXNfc2l6ZV9sb29rdXBfbW9kZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY3NTQ5ODMyNDg2OTc0MjAwMkE0QzdEIC8qIHBhc19jb21wYWN0
X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3RkZE
RjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdfZGlyZWN0b3J5
X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1RkU3RTAyNUI2MjEwRDAwMTg1OUZDIC8qIHBh
c19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTIyNjYsOCArMjI1MSw2IEBACiAJCQkJMEZDNDA5QzYyNDUxNDk2NDAwODc2REEw
IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjdDOTJFQjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUU1MjQ1MTQ5
NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3ZpZXcuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGQzQwOUQzMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rf
bm9kZV9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQzQwOUVGMjQ1MTQ5NjQwMDg3NkRBMCAv
KiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkM0MEExNzI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX2F0b21pY19w
dHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUZFN0VFMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNf
Y29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQzQwOUM3MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF90YWdnZWRfcHRy
LmggaW4gSGVhZGVycyAqLywKQEAgLTIyNzYsNyArMjI1OSw2IEBACiAJCQkJMEZDNDBBMDkyNDUx
NDk2NDAwODc2REEwIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBBMEUyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb25maWcu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUZFMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29u
ZmlnX3ByZWZpeC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZDNDBBMDMyNDUxNDk2NDAwODc2REEw
IC8qIHBhc19jb3VudF9sb29rdXBfbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5QzUy
NDUxNDk2NDAwODc2REEwIC8qIHBhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRo
X3Jlc2VydmVkX21lbW9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RjEyNDUxNDk2NDAw
ODc2REEwIC8qIHBhc19kZWFsbG9jYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVGRTdFRjI1
QjYyMTBEMDAxODU5RkMgLyogcGFzX2RlYWxsb2NhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLywK
QEAgLTIzNzcsNyArMjM1OSw2IEBACiAJCQkJMEY3QzkyRUUyNkU1N0Y3NTAwNkFGMDEyIC8qIHBh
c19sb2NhbF92aWV3X2NhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdDOTJFQzI2RTU3Rjc1
MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDNDBCNjcyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2NrLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjdDOTJFRjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2tfZnJlZV9yZWFkX2hhc2h0
YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCN0YyNDUxNDk5NDAwODc2REEwIC8qIHBh
c19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZDNDBCOUMyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2cuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGODcwMDY1MjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTIzODYsNyArMjM2Nyw2IEBACiAJCQkJMEZDNDBCNEUyNDUxNDk5
NDAwODc2REEwIC8qIHBhc19tb25vdG9uaWNfdGltZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZD
NDBCQUQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19tdXRhdGlvbl9jb3VudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY4NzAwNkIyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19vYmplY3Rfa2luZC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZDNDBCMUEyNDUxNDk5NDAwODc2REEwIC8qIHBhc19vYmplY3Rf
c2l6ZV9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDA3QTI1QUY4QTFCMDAwRTFBQkYg
LyogcGFzX3BhZ2VfYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwN0QyNUFGOEExQjAw
MEUxQUJGIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3
MDA3QjI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfaW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNDM1LDEyICsyNDE1LDEyIEBACiAJCQkJMEY4NzAwNzUyNUFGOEEx
QjAwMEUxQUJGIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI1QzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQkM5
MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMkM0ODEzNDMyNzQwNkEzRTAwNkNBQjU1IC8qIHBhc19jb21wYWN0X2V4
cGVuZGFibGVfbWVtb3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI0ODI0NTE0OTk0MDA4
NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGMThGODQ1MjVDMzQ2NzcwMDcyMUMyQSAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIwRTI0NTE0OTk0MDA4NzZE
QTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBBRkYy
NDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDNDBCNUIyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hl
YXBfbG9va3VwX2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQzQwQjM3MjQ1MTQ5OTQwMDg3
NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwX3BhZ2Vfc2hhcmluZ19tb2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkM0MEIxNzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1RkU3RTYyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfYW5kX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCQUMy
NDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI0NTEsOCArMjQzMSw2IEBACiAJCQkJMEZDNDBCMzMyNDUxNDk5NDAwODc2REEw
IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGNUZFN0RFMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ192YXJpYW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI4NzI0NTE0OTk0MDA4
NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9lbXB0aW5lc3Nfa2luZC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEZDNDBCNzQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Z3JhbnVsZV91c2VfY291bnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQzQwQjQ0MjQ1MTQ5OTQw
MDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCQjgyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdh
dGVkX3BhZ2VfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMDAyNDUxNDk5NDAw
ODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDNDBCQjkyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmll
d19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKQEAgLTI0NjcsMTkgKzI0NDUsMTQgQEAKIAkJCQkw
RkM0MEJDQTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYxOEY4NTgyNUMzNDdGMzAwNzIxQzJBIC8qIHBhc19zZWdyZWdhdGVkX3Zp
ZXdfYWxsb2NhdG9yX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjYxMjQ1MTQ5
OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGQzQwQjlCMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVGRTdGMDI1QjYyMTBEMDAxODU5RkMgLyogcGFzX3No
YXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1RkU3
RTQyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZDNDBCODgyNDUxNDk5NDAwODc2REEwIC8q
IHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZDQ0QxNDUyNjU2MDE4NjAwMTcxQTFGIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlf
c2l6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCRDcyNDUxNDlBRTAwODc2REEwIC8qIHBh
c19zaW1wbGVfZnJlZV9oZWFwX2RlY2xhcmF0aW9ucy5kZWYgaW4gSGVhZGVycyAqLywKIAkJCQkw
RkM0MEJEODI0NTE0OUFFMDA4NzZEQTAgLyogcGFzX3NpbXBsZV9mcmVlX2hlYXBfZGVmaW5pdGlv
bnMuZGVmIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMUQyNDUxNDk5NDAwODc2REEwIC8qIHBh
c19zaW1wbGVfZnJlZV9oZWFwX2hlbHBlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjc2
MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDNDBCMDUyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zaW1wbGVfdHlwZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5OUY5ODcyNUNCMkNEMTAwRUVFNDQ5IC8qIHBhc19zaXpl
X3RodW5rLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkM0MEI5RjI0NTE0OTk0MDA4NzZEQTAgLyog
cGFzX3NraXBfbGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZDNDBCMDkyNDUxNDk5NDAwODc2
REEwIC8qIHBhc19za2lwX2xpc3RfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBC
NkQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zbG93X3BhdGhfbW9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDBCM0YyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zbG93X3BhdGhfbW9kZV9wcmVm
aXguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQkIwMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNf
c21hbGxfbGFyZ2VfbWFwX2VudHJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDIsNyArMjQ3NSw2
IEBACiAJCQkJMEZDNDBCMEEyNDUxNDk5NDAwODc2REEwIC8qIHBhc190cnlfYWxsb2NhdGVfcHJp
bWl0aXZlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIwRjI0NTE0OTk0MDA4NzZEQTAgLyog
cGFzX3RyeV9yZWFsbG9jYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjUxOTNGNTI2NkM0MkJG
MDA0ODNBMkMgLyogcGFzX3RyeV9zaHJpbmsuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQzQwQjU1
MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQzQwQkFCMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdXRpbGl0eV9oZWFw
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI3ODI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3V0
aWxpdHlfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQUZCMjQ1MTQ5OTQw
MDg3NkRBMCAvKiBwYXNfdXRpbGl0eV9oZWFwX3N1cHBvcnQuaCBpbiBIZWFkZXJzICovLApAQCAt
MjYzMSw2ICsyNjAzLDcgQEAKIAkJCQkwRjc0QjkzRjFGODk3MTNFMDBCOTM1RDMgLyogQ3J5cHRv
UmFuZG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RjI3MUM1MThFQTM5N0UwMDhDMTUyRiAv
KiBEZWFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDJCNDQzNjFFMjgzOUU3MDAx
REE2RTkgLyogRGVidWdIZWFwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDMTFFODk2MjcyOERF
MjcwMDIxNjJEMCAvKiBibWFsbG9jX3R5cGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTE0ODk1RDkx
MUEzQTMxOUMwMDA2MjM1RCAvKiBFbnZpcm9ubWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjdFQjgzRTFGOTU0MUIwMDBGMUFCQ0IgLyogRnJlZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEY1QkYxNEYxRjIyREVBRjAwMjlEOTFEIC8qIEdpZ2FjYWdlLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjcxMiw5ICsyNjg1LDExIEBACiAJCQkJMEZDNDBCQTQyNDUxNDk5NDAwODc2REEwIC8q
IHBhc19mZF9zdHJlYW0uYyBpbiBTb3VyY2VzICovLAogCQkJCTBGODcwMDNGMjVBRjg5QzkwMDBF
MUFCRiAvKiBwYXNfZnJlZV9ncmFudWxlcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCQTcy
NDUxNDk5NDAwODc2REEwIC8qIHBhc19oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkyQzExRTg5
NzI3MjhERTI3MDAyMTYyRDAgLyogcGFzX3NpbXBsZV90eXBlLmMgaW4gU291cmNlcyAqLywKIAkJ
CQkwRjFCRkQ0NzI2NjQ1QUM3MDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgaW4gU291cmNl
cyAqLywKIAkJCQkwRkM0MEI0NjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2hlYXBfY29uZmlnX2tp
bmQuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQjNDMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNf
aGVhcF9jb25maWdfdXRpbHMuYyBpbiBTb3VyY2VzICovLAorCQkJCTJDNDgxMzQwMjc0MDZBM0Uw
MDZDQUI1NSAvKiBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTBG
QzQwQjUzMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfaGVhcF9mb3JfY29uZmlnLmMgaW4gU291cmNl
cyAqLywKIAkJCQkwRkM0MEJCRjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2hlYXBfbG9jay5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCMkQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19oZWFwX3Jl
Zi5jIGluIFNvdXJjZXMgKi8sCkBAIC0yNzcwLDcgKzI3NDUsNiBAQAogCQkJCTBGQ0NEMTQ0MjY1
NjAxODYwMDE3MUExRiAvKiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuYyBpbiBT
b3VyY2VzICovLAogCQkJCTBGQzQwQjM5MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2ltcGxlX2Zy
ZWVfaGVhcF9oZWxwZXJzLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEI4RDI0NTE0OTk0MDA4
NzZEQTAgLyogcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJ
CTBGQzQwQjg5MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2tpcF9saXN0LmMgaW4gU291cmNlcyAq
LywKIAkJCQkwRkM0MEFGRDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3N0YXR1c19yZXBvcnRlci5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCNDUyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zdHJl
YW0uYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQjcwMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNf
c3RyaW5nX3N0cmVhbS5jIGluIFNvdXJjZXMgKi8sCkBAIC0yNzg1LDYgKzI3NTksOCBAQAogCQkJ
CTBGQzQwQjk5MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdmlydHVhbF9yYW5nZS5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEYyNkE3QTUyMDU0ODMxMzAwOTBBMTQxIC8qIFBlclByb2Nlc3MuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQUQxNEFEMkEyMDI1MjlDNzAwODkwRTNCIC8qIFByb2Nlc3NDaGVj
ay5tbSBpbiBTb3VyY2VzICovLAorCQkJCTJDNDgxMzQxMjc0MDZBM0UwMDZDQUI1NSAvKiBwYXNf
bGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuYyBpbiBTb3VyY2VzICovLAorCQkJCTJDNDgxMzQyMjc0
MDZBM0UwMDZDQUI1NSAvKiBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY1QkYxNTIxRjIyRTE1NzAwMjlEOTFEIC8qIFNjYXZlbmdlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjg3MDBEMzI1QjBDQjAzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAu
YyBpbiBTb3VyY2VzICovLAogCQkJCTBGODcwMEQyMjVCMENCMDMwMDBFMUFCRiAvKiB0aGluZ3lf
aGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9Jc29IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Jc29IZWFw
LmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvSGVhcC5o
CSh3b3JraW5nIGNvcHkpCkBAIC01NiwxOCArNTYsMTkgQEAgQkVYUE9SVCB2b2lkKiBpc29BbGxv
Y2F0ZShwYXNfaGVhcF9yZWYmIAogQkVYUE9SVCB2b2lkKiBpc29UcnlBbGxvY2F0ZShwYXNfaGVh
cF9yZWYmIGhlYXBSZWYpOwogQkVYUE9SVCB2b2lkIGlzb0RlYWxsb2NhdGUodm9pZCogcHRyKTsK
IAotdGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KKy8vIFRoZSBuYW1lICJMaWJQYXNCbWFsbG9jSGVh
cFR5cGUiIGlzIGltcG9ydGFudCBmb3IgdGhlIHBhc19zdGF0dXNfcmVwb3J0ZXIgdG8gd29yayBy
aWdodC4KK3RlbXBsYXRlPHR5cGVuYW1lIExpYlBhc0JtYWxsb2NIZWFwVHlwZT4KIHN0cnVjdCBJ
c29IZWFwIHsKICAgICBjb25zdGV4cHIgSXNvSGVhcChjb25zdCBjaGFyKiA9IG51bGxwdHIpIHsg
fQogICAgIAogICAgIHZvaWQqIGFsbG9jYXRlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBpc29B
bGxvY2F0ZShoZWFwKTsKKyAgICAgICAgcmV0dXJuIGlzb0FsbG9jYXRlKHByb3ZpZGVIZWFwKCkp
OwogICAgIH0KICAgICAKICAgICB2b2lkKiB0cnlBbGxvY2F0ZSgpCiAgICAgewotICAgICAgICBy
ZXR1cm4gaXNvVHJ5QWxsb2NhdGUoaGVhcCk7CisgICAgICAgIHJldHVybiBpc29UcnlBbGxvY2F0
ZShwcm92aWRlSGVhcCgpKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBkZWFsbG9jYXRlKHZvaWQq
IHApCkBAIC04Nyw4ICs4OCwxMyBAQCBzdHJ1Y3QgSXNvSGVhcCB7CiAgICAgewogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgCi0gICAgcGFzX2hlYXBfcmVmIGhlYXAgeyBCTUFMTE9D
X0hFQVBfUkVGX0lOSVRJQUxJWkVSX1dJVEhfQUxJR05NRU5UKHNpemVvZihUeXBlKSwgYWxpZ25v
ZihUeXBlKSkgfTsKKworICAgIHN0YXRpYyBwYXNfaGVhcF9yZWYmIHByb3ZpZGVIZWFwKCkKKyAg
ICB7CisgICAgICAgIHN0YXRpYyBibWFsbG9jX3R5cGUgdHlwZSA9IEJNQUxMT0NfVFlQRV9JTklU
SUFMSVpFUihzaXplb2YoTGliUGFzQm1hbGxvY0hlYXBUeXBlKSwgYWxpZ25vZihMaWJQYXNCbWFs
bG9jSGVhcFR5cGUpLCBfX1BSRVRUWV9GVU5DVElPTl9fKTsKKyAgICAgICAgc3RhdGljIHBhc19o
ZWFwX3JlZiBoZWFwID0gQk1BTExPQ19IRUFQX1JFRl9JTklUSUFMSVpFUigmdHlwZSk7CisgICAg
ICAgIHJldHVybiBoZWFwOworICAgIH0KIH07CiAjZWxzZSAvLyBCVVNFKExJQlBBUykgLT4gc28g
IUJVU0UoTElCUEFTKQogdGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvYm1hbGxvYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9ibWFsbG9jLmNwcAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9ibWFsbG9jLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksOCArMzksMTUgQEAKIG5hbWVz
cGFjZSBibWFsbG9jIHsgbmFtZXNwYWNlIGFwaSB7CiAKICNpZiBCVVNFKExJQlBBUykKLXBhc19w
cmltaXRpdmVfaGVhcF9yZWYgZ2lnYWNhZ2VIZWFwc1tHaWdhY2FnZTo6TnVtYmVyT2ZLaW5kc10g
PQotICAgIHtbMCAuLi4gR2lnYWNhZ2U6Ok51bWJlck9mS2luZHMgLSAxXSA9IEJNQUxMT0NfQVVY
SUxJQVJZX0hFQVBfUkVGX0lOSVRJQUxJWkVSfTsKK25hbWVzcGFjZSB7CitibWFsbG9jX3R5cGUg
cHJpbWl0aXZlR2lnYWNhZ2VUeXBlID0gQk1BTExPQ19UWVBFX0lOSVRJQUxJWkVSKDEsIDEsICJQ
cmltaXRpdmUgR2lnYWNhZ2UiKTsKK2JtYWxsb2NfdHlwZSBqc1ZhbHVlR2lnYWNhZ2VUeXBlID0g
Qk1BTExPQ19UWVBFX0lOSVRJQUxJWkVSKDEsIDEsICJKU1ZhbHVlIEdpZ2FjYWdlIik7Cit9IC8v
IGFub255bW91cyBuYW1lc3BhY2UKKworcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiBnaWdhY2FnZUhl
YXBzW0dpZ2FjYWdlOjpOdW1iZXJPZktpbmRzXSA9IHsKKyAgICBCTUFMTE9DX0FVWElMSUFSWV9I
RUFQX1JFRl9JTklUSUFMSVpFUigmcHJpbWl0aXZlR2lnYWNhZ2VUeXBlKSwKKyAgICBCTUFMTE9D
X0FVWElMSUFSWV9IRUFQX1JFRl9JTklUSUFMSVpFUigmanNWYWx1ZUdpZ2FjYWdlVHlwZSkKK307
CiAjZW5kaWYKIAogdm9pZCogbWFsbG9jT3V0T2ZMaW5lKHNpemVfdCBzaXplLCBIZWFwS2luZCBr
aW5kKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzLy5naXRpZ25vcmUKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzLy5naXRpZ25vcmUJKHJldmlzaW9uIDI4NTc4NSkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy8uZ2l0aWdub3JlCSh3b3JraW5nIGNvcHkpCkBAIC0yLDQg
KzIsNSBAQAogKi54Y29kZXByb2oveGN1c2VyZGF0YQogKi5weWMKIGJ1aWxkCitidWlsZC0qCiAq
fgpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9DTWFrZUxpc3RzLnR4dAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw1MiBAQAorY21ha2VfbWluaW11bV9yZXF1aXJlZChWRVJTSU9OIDMuMjEpCisKK3By
b2plY3QobGlicGFzKQorCitzZXQoQ01BS0VfQ1hYX1NUQU5EQVJEIDE3IENBQ0hFIFNUUklORyAi
QysrIHN0YW5kYXJkIHRvIGJlIHVzZWQiKQorYWRkX2NvbXBpbGVfb3B0aW9ucygtV2FsbCAtV2Vy
cm9yKQorCisjIEdldCBzb3VyY2VzCitBVVhfU09VUkNFX0RJUkVDVE9SWSggInNyYy9saWJwYXMi
ICAgICAgIGxpYnBhc1NvdXJjZXMgICApCitBVVhfU09VUkNFX0RJUkVDVE9SWSggInNyYy9jaGFv
cyIgICAgICAgIGNoYW9zU291cmNlcyAgICApCitBVVhfU09VUkNFX0RJUkVDVE9SWSggInNyYy9t
Ym1hbGxvYyIgICAgIG1ibWFsbG9jU291cmNlcyApCitBVVhfU09VUkNFX0RJUkVDVE9SWSggInNy
Yy90ZXN0IiAgICAgICAgIHRlc3RTb3VyY2VzICAgICApCitBVVhfU09VUkNFX0RJUkVDVE9SWSgg
InNyYy90b3lzIiAgICAgICAgIHRveXNTb3VyY2VzICAgICApCitBVVhfU09VUkNFX0RJUkVDVE9S
WSggInNyYy92ZXJpZmllciIgICAgIHZlcmlmaWVyU291cmNlcyApCisKKyMgRGlyZWN0b3JpZXMK
K2luY2x1ZGVfZGlyZWN0b3JpZXMoICAgICR7Q01BS0VfU09VUkNFX0RJUn0vc3JjL2xpYnBhcyAK
KyAgICAgICAgICAgICAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0vc3JjL3ZlcmlmaWVy
CisgICAgICAgICAgICAgICAgICAgICAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYy9jaGFvcyAK
KyAgICAgICAgICAgICAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0vc3JjL3RveXMKKyAg
ICAgICAgICAgICAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0vc3JjL3Rlc3QKKyAgICAg
ICAgICAgICAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0vc3JjL21ibWFsbG9jICkKKwor
bGlua19kaXJlY3RvcmllcyggICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9zcmMvbGlicGFzIAor
ICAgICAgICAgICAgICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9zcmMvdmVyaWZpZXIK
KyAgICAgICAgICAgICAgICAgICAgICAgICR7Q01BS0VfU09VUkNFX0RJUn0vc3JjL2NoYW9zIAor
ICAgICAgICAgICAgICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9zcmMvdG95cworICAg
ICAgICAgICAgICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9zcmMvdGVzdAorICAgICAg
ICAgICAgICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9zcmMvbWJtYWxsb2MgKQorCisj
IENyZWF0ZSBsaWJyYXJpZXMKK2FkZF9saWJyYXJ5KHBhc19saWIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTSEFSRUQgJHtsaWJwYXNTb3VyY2VzfSkKK2FkZF9saWJyYXJ5KGNoYW9z
X2xpYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSEFSRUQgJHtjaGFvc1NvdXJjZXN9
ICkKK2FkZF9saWJyYXJ5KHZlcmlmaWVyX2xpYiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
SEFSRUQgJHt2ZXJpZmllclNvdXJjZXN9ICkKK2FkZF9saWJyYXJ5KG1ibWFsbG9jX2JtYWxsb2Mg
ICAgICAgICAgICAgICAgICAgICAgICBTSEFSRUQgJHtDTUFLRV9TT1VSQ0VfRElSfS9zcmMvbWJt
YWxsb2MvbWJtYWxsb2NfYm1hbGxvYy5jKQorYWRkX2xpYnJhcnkobWJtYWxsb2NfaG90Yml0ICAg
ICAgICAgICAgICAgICAgICAgICAgIFNIQVJFRCAke0NNQUtFX1NPVVJDRV9ESVJ9L3NyYy9tYm1h
bGxvYy9tYm1hbGxvY19ob3RiaXQuYykKK2FkZF9saWJyYXJ5KG1ibWFsbG9jX2lzb19jb21tb25f
cHJpbWl0aXZlICAgICAgICAgICBTSEFSRUQgJHtDTUFLRV9TT1VSQ0VfRElSfS9zcmMvbWJtYWxs
b2MvbWJtYWxsb2NfaXNvX2NvbW1vbl9wcmltaXRpdmUuYykKK2FkZF9saWJyYXJ5KG1ibWFsbG9j
X2lzb19jb21tb25fcHJpbWl0aXZlX3ZlcmlmaWVkICBTSEFSRUQgJHtDTUFLRV9TT1VSQ0VfRElS
fS9zcmMvbWJtYWxsb2MvbWJtYWxsb2NfaXNvX2NvbW1vbl9wcmltaXRpdmUuYykKKworIyBDcmVh
dGUgZXhlY3V0YWJsZXMKK2FkZF9leGVjdXRhYmxlKHRlc3RfcGFzICR7dGVzdFNvdXJjZXN9ICkK
K2FkZF9leGVjdXRhYmxlKGNoYW9zICAgICR7Y2hhb3NTb3VyY2VzfSApCisKKyMgTGluayBMaWJy
YXJpZXMKK3RhcmdldF9saW5rX2xpYnJhcmllcyh0ZXN0X3BhcyB2ZXJpZmllcl9saWIgcGFzX2xp
YiBjaGFvc19saWIpCit0YXJnZXRfbGlua19saWJyYXJpZXModmVyaWZpZXJfbGliIHBhc19saWIp
Cit0YXJnZXRfbGlua19saWJyYXJpZXMoY2hhb3NfbGliIHBhc19saWIpCit0YXJnZXRfbGlua19s
aWJyYXJpZXMoY2hhb3MgcGFzX2xpYikKK3RhcmdldF9saW5rX2xpYnJhcmllcyhtYm1hbGxvY19i
bWFsbG9jIHBhc19saWIpCit0YXJnZXRfbGlua19saWJyYXJpZXMobWJtYWxsb2NfaG90Yml0IHBh
c19saWIpCit0YXJnZXRfbGlua19saWJyYXJpZXMobWJtYWxsb2NfaXNvX2NvbW1vbl9wcmltaXRp
dmUgcGFzX2xpYikKK3RhcmdldF9saW5rX2xpYnJhcmllcyhtYm1hbGxvY19pc29fY29tbW9uX3By
aW1pdGl2ZV92ZXJpZmllZCB2ZXJpZmllcl9saWIgcGFzX2xpYikKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvUkVBRE1FCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9SRUFETUUJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL1JFQURNRQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzMCBAQAor
IyBsaWJwYXMgLSBQaGlsJ3MgQXdlc29tZSBTeXN0ZW0KKworTGlicGFzIGlzIGEgY29uZmlndXJh
YmxlIG1lbW9yeSBhbGxvY2F0b3IgdG9vbGtpdCBkZXNpZ25lZCB0byBlbmFibGUgYWRvcHRpb24K
K29mIGlzb2hlYXBzLiBDdXJyZW50bHksIGxpYnBhcydzIG1haW4gY2xpZW50IGlzIFdlYktpdCdz
IGJtYWxsb2MgcHJvamVjdCwgd2hlcmUKK2l0J3MgdXNlZCBhcyBhIHJlcGxhY2VtZW50IGZvciBh
bGwgb2YgYm1hbGxvYydzIGZ1bmN0aW9uYWxpdHkgKGJtYWxsb2M6OmFwaSwKK0lzb0hlYXA8Piwg
YW5kIEdpZ2FjYWdlKS4gTGlicGFzJ3Mgaml0X2hlYXAgQVBJIGlzIGFsc28gdXNlZCBieSBXZWJL
aXQncworRXhlY3V0YWJsZUFsbG9jYXRvci4KKworCisjIEhvdyBUbyBCdWlsZCBBbmQgVGVzdAor
CitUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIGhvdyB0byBidWlsZCBsaWJwYXMgc3RhbmRhbG9uZS4g
WW91J2xsIGJlIGRvaW5nIHRoaXMgYQorbG90IHdoZW4gbWFraW5nIGNoYW5nZXMgdG8gbGlicGFz
LiBJdCdzIHdpc2UgdG8gcnVuIGxpYnBhcydzIHRlc3RzIGJlZm9yZQordHJ5aW5nIG91dCB5b3Vy
IGNoYW5nZSBpbiBhbnkgbGFyZ2VyIHN5c3RlbSAobGlrZSBXZWJLaXQpIHNpbmNlIGxpYnBhcyB0
ZXN0cworYXJlIGdyZWF0IGF0IGNhdGNoaW5nIGJ1Z3MuIElmIGxpYnBhcyBwYXNzZXMgaXRzIG93
biB0ZXN0cyB0aGVuIGJhc2ljIGJyb3dzaW5nCit3aWxsIHNlZW0gdG8gd29yay4gSW4gcHJvZHVj
dGlvbiwgbGlicGFzIGdldHMgYnVpbHQgYXMgcGFydCBvZiBzb21lIG90aGVyCitwcm9qZWN0IChs
aWtlIGJtYWxsb2MpLCB3aGljaCBqdXN0IHB1bGxzIGFsbCBvZiBsaWJwYXMncyBmaWxlcyBpbnRv
IHRoYXQKK3Byb2plY3QncyBidWlsZCBzeXN0ZW0uCisKK0J1aWxkIGFuZCB0ZXN0OgorCisgICAg
Li9idWlsZF9hbmRfdGVzdC5zaAorCitKdXN0IGJ1aWxkOgorCisgICAgLi9idWlsZC5zaAorCitK
dXN0IHRlc3Q6CisKKyAgICAuL3Rlc3Quc2gKKworQ2xlYW46CisKKyAgICAuL2NsZWFuLnNoCisK
K09uIG15IE0xIG1hY2hpbmUsIEkgdXN1YWxseSBkbyB0aGlzOgorCisgICAgLi9idWlsZF9hbmRf
dGVzdC5zaCAtYSBhcm02NGUKKworVGhpcyBhdm9pZHMgYnVpbGRpbmcgZmF0IGFybTY0K2FybTY0
ZSBiaW5hcmllcy4KKworVGhlIGxpYnBhcyBidWlsZCB3aWxsLCBieSBkZWZhdWx0LCBidWlsZCAo
YW5kIHRlc3QsIGlmIHlvdSdyZSB1c2UKK2BidWlsZF9hbmRfdGVzdC5zaGAgb3IgYHRlc3Quc2hg
KSBib3RoIGEgdGVzdGluZyB2YXJpYW50IGFuZCBhIGRlZmF1bHQgdmFyaWFudC4KK1RoZSB0ZXN0
aW5nIHZhcmlhbnQgaGFzIHRlc3Rpbmctb25seSBhc3NlcnRpb25zLiBTYXkgeW91J3JlIGRvaW5n
IHNvbWUKK3NwZWVkIHRlc3RzIGFuZCB5b3UganVzdCB3YW50IHRvIGJ1aWxkIHRoZSBkZWZhdWx0
IHZhcmlhbnQ6CisKKyAgICAuL2J1aWxkLnNoIC12IGRlZmF1bHQKKworQnkgZGVmYXVsdCwgbGli
cGFzIGJ1aWxkcyBSZWxlYXNlLCBidXQgeW91IGNhbiBjaGFuZ2UgdGhhdDoKKworICAgIC4vYnVp
bGQuc2ggLWMgRGVidWcKKworQWxsIG9mIHRoZSB0b29scyAoYGJ1aWxkLnNoYCwgYHRlc3Quc2hg
LCBgYnVpbGRfYW5kX3Rlc3Quc2hgLCBhbmQgYGNsZWFuLnNoYCkKK3Rha2UgdGhlIHNhbWUgb3B0
aW9ucyAoYC1oYCwgYC1jIDxjb25maWc+YCwgYC1zIDxzZGs+YCwgYC1hIDxhcmNoPmAsCitgLXYg
PHZhcmlhbnQ+YCwgYC10IDx0YXJnZXQ+YCwgYW5kIGAtcCA8cG9ydD5gKS4KKworCisjIFN5bm9w
c2lzCisKK0xpYnBhcyBpcyBhIHRvb2xraXQgZm9yIGNyZWF0aW5nIG1lbW9yeSBhbGxvY2F0b3Jz
LiBXaGVuIGJ1aWx0IGFzIGEgZHlsaWIsIGl0CitleHBvc2VzIGEgYnVuY2ggb2YgZGlmZmVyZW50
IG1lbW9yeSBhbGxvY2F0b3JzLCB3aXRoIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucworcmFuZ2lu
ZyBmcm9tIHNlbnNpYmxlIHRvIGRlcmFuZ2VkLCB3aXRob3V0IG92ZXJyaWRpbmcgbWFsbG9jIGFu
ZCBmcmllbmRzLiBGb3IKK3Byb2R1Y3Rpb24gdXNlLCBsaWJwYXMgaXMgbWVhbnQgdG8gYmUgYnVp
bHQgYXMgcGFydCBvZiBzb21lIGxhcmdlciBtYWxsb2MKK3Byb2plY3Q7IGZvciBleGFtcGxlLCB3
aGVuIGxpYnBhcyBzZWVzIHRoZSBQQVNfQk1BTExPQyBtYWNybywgaXQgd2lsbCBwcm92aWRlCitl
dmVyeXRoaW5nIHRoYXQgV2ViS2l0J3MgYm1hbGxvYyBsaWJyYXJ5IG5lZWRzIHRvIGNyZWF0ZSBh
biBhbGxvY2F0b3IuCisKK0xpYnBhcydzIHRvb2xraXQgb2YgYWxsb2NhdG9ycyBoYXMgdGhyZWUg
YnVpbGRpbmcgYmxvY2tzOgorCistIFRoZSBzZWdyZWdhdGVkIGhlYXAuIFRoaXMgaW1wbGVtZW50
cyBzb21ldGhpbmcgbGlrZSBzaW1wbGUgc2VncmVnYXRlZAorICBzdG9yYWdlLiBSb3VnaGx5IHNw
ZWFraW5nLCBzaXplIGNsYXNzZXMgaG9sZCBvbnRvIGNvbGxlY3Rpb25zIG9mIHBhZ2VzLCBhbmQK
KyAgZWFjaCBwYWdlIGNvbnRhaW5zIGp1c3Qgb2JqZWN0cyBvZiB0aGF0IHNpemUuIFRoZSBzZWdy
ZWdhdGVkIGhlYXAgYWxzbyBoYXMKKyAgc29tZSBzdXBwb3J0IGZvciBwYWdlcyBoYXZpbmcgbXVs
dGlwbGUgc2l6ZSBjbGFzc2VzLCBidXQgdGhpcyBpcyBpbnRlbmRlZCBhcworICBhICJjb2xkIHN0
YXJ0IiBtb2RlIHRvIHJlZHVjZSBpbnRlcm5hbCBmcmFnbWVudGF0aW9uLiBUaGUgc2VncmVnYXRl
ZCBoZWFwCisgIHdvcmtzIGdyZWF0IGFzIGFuIGlzb2hlYXAgaW1wbGVtZW50YXRpb24gc2luY2Ug
bGlicGFzIG1ha2VzIGl0IGVhc3kgYW5kCisgIGVmZmljaWVudCB0byBjcmVhdGUgX2xvdHNfIG9m
IGhlYXBzLCBhbmQgaGVhcHMgaGF2ZSBzcGVjaWFsIG9wdGltaXphdGlvbnMgZm9yCisgIGhhdmlu
ZyBvbmx5IG9uZSBzaXplIGNsYXNzLiBTZWdyZWdhdGVkIGhlYXBzIGFyZSBhbHNvIHN1cGVyIGZh
c3QuIFRoZXkgYmVhdAorICB0aGUgb3JpZ2luYWwgYm1hbGxvYyBhdCBvYmplY3QgY2h1cm4gcGVy
Zm9ybWFuY2UuIEEgdHlwaWNhbCBzZWdyZWdhdGVkCisgIGFsbG9jYXRpb24gb3BlcmF0aW9uIGRv
ZXMgbm90IG5lZWQgdG8gdXNlIGFueSBhdG9taWMgb3BlcmF0aW9ucyBvciBmZW5jZXMKKyAgYW5k
IG9ubHkgcmVsaWVzIG9uIGEgaGFuZGZ1bCBvZiBsb2Fkcywgc29tZSBhZGRpdGlvbiBhbmQgcG9z
c2libHkgYml0IG1hdGgsCisgIGFuZCBhIGNvdXBsZSBzdG9yZXMuIERpdHRvIGZvciBhIHR5cGlj
YWwgc2VncmVnYXRlZCBkZWFsbG9jYXRpb24gb3BlcmF0aW9uLgorCistIFRoZSBiaXRmaXQgaGVh
cC4gVGhpcyBpbXBsZW1lbnRzIGZpcnN0LWZpdCBhbGxvY2F0aW9uIHVzaW5nIGJpdC1wZXItbWlu
YWxpZ24tCisgIGdyYW51bGUuIEJpdGZpdCBoZWFwcyBhcmUgc3VwZXIgc3BhY2UtZWZmaWNpZW50
IGJ1dCBub3QgbmVhcmx5IGFzIGZhc3QgYXMKKyAgc2VncmVnYXRlZCBoZWFwcy4gQml0Zml0IGhl
YXBzIGhhdmUgYW4gdXBwZXIgYm91bmQgb24gdGhlIHNpemVzIHRoZXkgY2FuCisgIGhhbmRsZSwg
YnV0IGNhbiBiZSBjb25maWd1cmVkIHRvIGFsbG9jYXRlIG9iamVjdHMgdXAgdG8gaHVuZHJlZHMg
b2YgS0IuCisgIEJpdGZpdCBoZWFwcyBhcmUgbm90IGFwcHJvcHJpYXRlIGZvciBpc29oZWFwcy4g
Qml0Zml0IGlzIHVzZWQgbW9zdGx5IGZvcgorICAibWFyZ2UiIGFsbG9jYXRpb25zIChsYXJnZXIg
dGhhbiBzZWdyZWdhdGVkJ3MgbWVkaXVtIGJ1dCBzbWFsbGVyIHRoYW4gbGFyZ2UpCisgIGFuZCBm
b3IgdGhlIGppdF9oZWFwLgorCistIFRoZSBsYXJnZSBoZWFwLiBUaGlzIGltcGxlbWVudHMgYSBj
YXJ0ZXNpYW4tdHJlZS1iYXNlZCBmaXJzdC1maXQgYWxsb2NhdG9yCisgIGZvciBhcmJpdHJhcnkg
c2l6ZWQgb2JqZWN0cy4gTGFyZ2UgaGVhcHMgYXJlIGFwcHJvcHJpYXRlIGZvciBpc29oZWFwczsg
Zm9yCisgIGV4YW1wbGUgdGhleSByZW1lbWJlciB0aGUgdHlwZSBvZiBldmVyeSBmcmVlIG9iamVj
dCBpbiBtZW1vcnkgYW5kIHRoZXkKKyAgcmVtZW1iZXIgd2hlcmUgdGhlIG9yaWdpbmFsIG9iamVj
dCBib3VuZGFyaWVzIGFyZS4KKworRWFjaCBvZiB0aGUgYnVpbGRpbmcgYmxvY2tzIGNhbiBiZSBj
b25maWd1cmVkIGluIGEgYnVuY2ggb2Ygd2F5cy4gTGlicGFzIHVzZXMKK2EgQyB0ZW1wbGF0ZSBw
cm9ncmFtbWluZyBzdHlsZSBzbyB0aGF0IHRoZSBzZWdyZWdhdGVkIGFuZCBiaXRmaXQgaGVhcHMg
Y2FuIGJlCitjb25maWd1cmVkIGZvciBkaWZmZXJlbnQgcGFnZSBzaXplcywgbWluYWxpZ25zLCBz
ZWN1cml0eS1wZXJmb3JtYW5jZQordHJhZGUtb2ZmcywgYW5kIHNvIG9uLgorCitBbGwgb2YgdGhl
IGhlYXBzIGFyZSBhYmxlIHRvIHBhcnRpY2lwYXRlIGluIHBoeXNpY2FsIHBhZ2Ugc2hhcmluZy4g
VGhpcyBtZWFucwordGhhdCBhbnl0aW1lIGFueSBzeXN0ZW0gcGFnZSBvZiBtZW1vcnkgbWFuYWdl
ZCBieSB0aGUgaGVhcCBiZWNvbWVzIHRvdGFsbHkKK2VtcHR5LCBpdCBiZWNvbWVzIGVsaWdpYmxl
IGZvciBiZWluZyByZXR1cm5lZCB0byB0aGUgT1MgdmlhIGRlY29tbWl0LiBMaWJwYXMncworZGVj
b21taXQgc3RyYXRlZ3kgaXMgcGFydGljdWxhcmx5IHdlbGwgdHVuZWQgc28gYXMgdG8gY29tcGVu
c2F0ZSBmb3IgdGhlCitpbmhlcmVudCBtZW1vcnkgb3ZlcmhlYWRzIG9mIGlzb2hlYXBpbmcuIExp
YnBhcyBhY2hpZXZlcyBtdWNoIGJldHRlciBtZW1vcnkKK3VzYWdlIHRoYW4gYm1hbGxvYyBiZWNh
dXNlIGl0IHJldHVybnMgcGFnZXMgc29vbmVyIHRoYW4gYm1hbGxvYyB3b3VsZCBoYXZlLCBhbmQK
K2l0IGRvZXMgc28gd2l0aCBuZWdsaWJpbGUgcGVyZm9ybWFuY2Ugb3ZlcmhlYWRzLiBGb3IgZXhh
bXBsZSwgbGlicGFzIGNhbiBiZQorY29uZmlndXJlZCB0byByZXR1cm4gYSBwYWdlIHRvIHRoZSBP
UyBhbnl0aW1lIGl0IGhhcyBiZWVuIGZyZWUgZm9yIDMwMG1zLgorCitMaWJwYXMgaXMgYSBoZWF2
eSB1c2VyIG9mIGZpbmUtZ3JhaW5lZCBsb2NraW5nIGFuZCBpbnRyaWNhdGUgbG9jayBkYW5jaW5n
LiBTb21lCitkYXRhIHN0cnVjdHVyZXMgd2lsbCBiZSBwcm90ZWN0ZWQgYnkgYW55IG9mIGEgY29s
bGVjdGlvbiBvZiBkaWZmZXJlbnQgbG9ja3MsCithbmQgbG9jayBhY3F1aXNpdGlvbiBpbnZvbHZl
cyBnZXR0aW5nIHRoZSBsb2NrLCBjaGVja2luZyBpZiB5b3UgZ290IHRoZSByaWdodAorbG9jaywg
YW5kIHBvc3NpYmx5IHJlbG9vcGluZy4gTGlicGFzJ3MgYWxnb3JpdGhtcyBhcmUgZGVzaWduZWQg
YXJvdW5kOgorCistIFJlZHVjaW5nIHRoZSBsaWtlbGlob29kIHRoYXQgYW55IGxvbmctcnVubmlu
ZyBvcGVyYXRpb24gd291bGQgd2FudCB0byBob2xkIGEKKyAgbG9jayB0aGF0IGFueSBmcmVxdWVu
dGx5LXJ1bm5pbmcgb3BlcmF0aW9uIHdvdWxkIGV2ZXIgbmVlZC4gRm9yIGV4YW1wbGUsCisgIGRl
Y29tbWl0dGluZyBhIHBhZ2UgcmVxdWlyZXMgaG9sZGluZyBhIGxvY2sgYW5kIG1ha2luZyBhIHN5
c2NhbGwsIGJ1dCB0aGUKKyAgbG9jayB0aGF0IGdldHMgaGVsZCBpcyBvbmUgdGhhdCBoYXMgYSBs
b3cgcHJvYmFiaWxpdHkgb2YgZXZlciBiZWluZyBuZWVkZWQKKyAgZHVyaW5nIGFueSBvdGhlciBv
cGVyYXRpb24uIFRoYXQgImxvdyBwcm9iYWJpbGl0eSIgaXMgbm90IGd1YXJhbnRlZWQgYnV0IGl0
CisgIGlzIG1hZGUgc28gdGhhbmtzIHRvIGxvdHMgb2YgZGlmZmVyZW50IHRyaWNrcy4KKworLSBS
ZWR1Y2luZyB0aGUgbGlrZWxpaG9vZCB0aGF0IHR3byBvcGVyYXRpb25zIHRoYXQgcnVuIGluIGEg
cm93IHRoYXQgYm90aCBncmFiCisgIGxvY2tzIHdvdWxkIG5lZWQgdG8gZ3JhYiBkaWZmZXJlbnQg
bG9ja3MuIExpYnBhcyBoYXMgYSBidW5jaCBvZiB0cmlja3MgdG8KKyAgbWFrZSBpdCBzbyB0aGF0
IGRhdGEgc3RydWN0dXJlcyB0aGF0IGdldCBhY2Nlc3NlZCB0b2dldGhlciBkeW5hbWljYWxseSBh
ZGFwdAorICB0byB1c2luZyB0aGUgc2FtZSBsb2NrcyB0byByZWR1Y2UgdGhlIHRvdGFsIG51bWJl
ciBvZiBsb2NrIGFjcXVpc2l0aW9ucy4KKworRmluYWxseSwgbGlicGFzIGlzIGRlc2lnbmVkIGZv
ciBoYXZpbmcgbG90cyBvZiB0ZXN0cywgaW5jbHVkaW5nIHVuaXQgYW5kIG1vY2sKK3Rlc3RzLiBX
aGlsZSBsaWJwYXMgaXRzZWxmIGlzIHdyaXR0ZW4gaW4gQyAodG8gcmVkdWNlIGZyaWN0aW9uIG9m
IGFkb3B0aW9uZyBpdAoraW4gZWl0aGVyIEMgb3IgQysrIGNvZGViYXNlcyksIHRoZSB0ZXN0IHN1
aXRlIGlzIHdyaXR0ZW4gaW4gQysrLiBJZGVhbGx5CitldmVyeXRoaW5nIHRoYXQgbGlicGFzIGRv
ZXMgaGFzIGEgdGVzdC4KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL2NsZWFuLnNoCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9jbGVhbi5zaAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvY2xlYW4uc2gJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwzNiBAQAorIyEvYmluL3NoCisjIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1l
dDoKKyMKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisuIGNvbW1vbi5zaAorCitjYXNlICR2YXJpYW50cyBpbgorICAgIGFsbHx0ZXN0aW5nKQorICAg
ICAgICBybSAtcmYgYnVpbGQtJHNkay10ZXN0aW5nCisgICAgICAgIDs7Citlc2FjCitjYXNlICR2
YXJpYW50cyBpbgorICAgIGFsbHxkZWZhdWx0KQorICAgICAgICBybSAtcmYgYnVpbGQtJHNkay1k
ZWZhdWx0CisgICAgICAgIDs7Citlc2FjCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvY2xlYW4uc2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKIyMg
LTAsMCArMSAjIworKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvbGlicGFz
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTc2LDIwICs3Niwx
MyBAQAogCQkwRjFCRkQ0NDI2NjQ1N0YxMDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjFCRkQ0MzI2NjQ1
N0YxMDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgKi87IH07CiAJCTBGMjE1MEVCMjQ4NEJC
MkEwMDBENjM0QiAvKiBwYXNfYWxsb2NhdG9yX2luZGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjIxNTBFQTI0ODRCQjJBMDAwRDYzNEIgLyogcGFz
X2FsbG9jYXRvcl9pbmRleC5oICovOyB9OwogCQkwRjIxNTBFRDI0ODRCQjg2MDAwRDYzNEIgLyog
cGFzX2NvbXBhY3RfYXRvbWljX2FsbG9jYXRvcl9pbmRleF9wdHIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjE1MEVDMjQ4NEJCODYwMDBENjM0QiAv
KiBwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4X3B0ci5oICovOyB9OwotCQkwRjMx
QTYzQzIzRENGODA0MDAyQzBDQTMgLyogcGFzX3NraXBfbGlzdF9pbmxpbmVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjMxQTYzOTIzRENGODA0MDAy
QzBDQTMgLyogcGFzX3NraXBfbGlzdF9pbmxpbmVzLmggKi87IH07Ci0JCTBGMzFBNjNEMjNEQ0Y4
MDQwMDJDMENBMyAvKiBwYXNfc2tpcF9saXN0LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjMxQTYzQTIzRENGODA0MDAyQzBDQTMgLyogcGFzX3NraXBf
bGlzdC5jICovOyB9OwotCQkwRjMxQTYzRTIzRENGODA0MDAyQzBDQTMgLyogcGFzX3NraXBfbGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzMUE2
M0IyM0RDRjgwNDAwMkMwQ0EzIC8qIHBhc19za2lwX2xpc3QuaCAqLzsgfTsKLQkJMEYzMUE2NDAy
M0RDRjg0ODAwMkMwQ0EzIC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0ci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzMUE2M0YyM0RDRjg0
ODAwMkMwQ0EzIC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0ci5oICovOyB9OwotCQkw
RjMxQTY0MjIzREQ0RTAyMDAyQzBDQTMgLyogU2tpcExpc3RUZXN0cy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjMxQTY0MTIzREQ0RTAyMDAyQzBD
QTMgLyogU2tpcExpc3RUZXN0cy5jcHAgKi87IH07CiAJCTBGMzFBNjQ0MjNFMzUwOUUwMDJDMENB
MyAvKiBwYXNfbGlzdF9kaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMzFBNjQzMjNFMzUwOUUwMDJDMENBMyAvKiBwYXNfbGlzdF9kaXJl
Y3Rpb24uaCAqLzsgfTsKLQkJMEYzMUE2NDYyM0U0QzQ0MTAwMkMwQ0EzIC8qIHBhc19jb21wYWN0
X3NraXBfbGlzdF9ub2RlX3B0cl9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMzFBNjQ1MjNFNEM0NDEwMDJDMENBMyAvKiBwYXNfY29tcGFjdF9z
a2lwX2xpc3Rfbm9kZV9wdHJfcHRyLmggKi87IH07CiAJCTBGMzFBNjY2MjNFOEE5NDIwMDJDMENB
MyAvKiBwYXNfY2FydGVzaWFuX3RyZWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMzFBNjY1MjNFOEE5NDIwMDJDMENBMyAvKiBwYXNfY2FydGVzaWFu
X3RyZWUuaCAqLzsgfTsKIAkJMEYzMUE2NjgyM0U4QjMzNjAwMkMwQ0EzIC8qIENhcnRlc2lhblRy
ZWVUZXN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjMxQTY2NzIzRThCMzM2MDAyQzBDQTMgLyogQ2FydGVzaWFuVHJlZVRlc3RzLmNwcCAqLzsg
fTsKIAkJMEYzMUE2NkEyM0U4RTU5NDAwMkMwQ0EzIC8qIHBhc190cmVlX2RpcmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzMUE2NjkyM0U4
RTU5NDAwMkMwQ0EzIC8qIHBhc190cmVlX2RpcmVjdGlvbi5oICovOyB9OwogCQkwRjMyOUEyMTIz
RjExMzJBMDBBMTMzQzQgLyogcGFzX2Jhc2ljX2hlYXBfcnVudGltZV9jb25maWcuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzI5QTFEMjNGMTEzMkEw
MEExMzNDNCAvKiBwYXNfYmFzaWNfaGVhcF9ydW50aW1lX2NvbmZpZy5oICovOyB9OwogCQkwRjMy
OUEyMjIzRjExMzJCMDBBMTMzQzQgLyogcGFzX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzI5QTFFMjNGMTEz
MkEwMEExMzNDNCAvKiBwYXNfYmFzaWNfaGVhcF9wYWdlX2NhY2hlcy5oICovOyB9OwogCQkwRjMy
OUEyMzIzRjExMzJCMDBBMTMzQzQgLyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzI5QTFGMjNGMTEzMkEw
MEExMzNDNCAvKiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oICovOyB9OwotCQkwRjMyOUEyNDIz
RjExMzJCMDBBMTMzQzQgLyogcGFzX2Jhc2ljX3NlZ3JlZ2F0ZWRfcGFnZV9jYWNoZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzI5QTIwMjNGMTEz
MkEwMEExMzNDNCAvKiBwYXNfYmFzaWNfc2VncmVnYXRlZF9wYWdlX2NhY2hlcy5oICovOyB9Owog
CQkwRjMyOUEyQjIzRjFENjM2MDBBMTMzQzQgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2Vf
Y2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjMyOUEyNTIzRjFENjM1MDBBMTMzQzQgLyogcGFzX2NyZWF0
ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmggKi87IH07CiAJ
CTBGMzI5QTJDMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9j
YWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzI5QTI2MjNGMUQ2MzUwMEExMzNDNCAvKiBwYXNfY3JlYXRl
X2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuYyAqLzsgfTsKIAkJ
MEYzMjlBMkQyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19lbnN1cmVfaGVhcF9mb3JjZWRfaW50b19y
ZXNlcnZlZF9tZW1vcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGMzI5QTI3MjNGMUQ2MzUwMEExMzNDNCAvKiBwYXNfZW5zdXJlX2hlYXBfZm9yY2Vk
X2ludG9fcmVzZXJ2ZWRfbWVtb3J5LmggKi87IH07CkBAIC0yNDYsNyArMjM5LDYgQEAKIAkJMEY4
NzkyQjMyMzhBMUQwQzAwQUVFN0YxIC8qIHBhc19oZWFwX3JlZl9raW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3OTJCMjIzOEExRDBDMDBBRUU3
RjEgLyogcGFzX2hlYXBfcmVmX2tpbmQuaCAqLzsgfTsKIAkJMEY4QTgwMEQyNUNGNjRDOTAwNzkw
QjRBIC8qIHBhc190cmlfc3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOEE4MDBDMjVDRjY0QzkwMDc5MEI0QSAvKiBwYXNfdHJpX3N0YXRlLmgg
Ki87IH07CiAJCTBGOEE4MDI5MjVFQzU4ODgwMDc5MEI0QSAvKiBwYXNfbGluZV93b3JkX2NvbmZp
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4QTgw
MjcyNUVDNTg4ODAwNzkwQjRBIC8qIHBhc19saW5lX3dvcmRfY29uZmlnLmggKi87IH07Ci0JCTBG
OEE4MDJBMjVFQzU4ODgwMDc5MEI0QSAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEE4MDI4MjVFQzU4
ODgwMDc5MEI0QSAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaCAqLzsgfTsKIAkJMEY4QTgw
MzcyNUVFQ0JBRjAwNzkwQjRBIC8qIGxpYnBhcy5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGREVBNUQ5MjI5NUZDOEMwMDg1RTM0MCAvKiBs
aWJwYXMuZHlsaWIgKi87IH07CiAJCTBGOEE4MDU1MjVFRUNCRDQwMDc5MEI0QSAvKiBtYm1hbGxv
Y19ibWFsbG9jLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjhBODA1NDI1RUVDQkQ0MDA3OTBCNEEgLyogbWJtYWxsb2NfYm1hbGxvYy5jICovOyB9Owog
CQkwRjhBODA2NTI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2lubGluZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEE4MDVFMjVFRUND
MUMwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfaW5saW5lcy5oICovOyB9OwpAQCAtMjY2LDcgKzI1
OCw2IEBACiAJCTBGOEE4MTA2MjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9pbmxpbmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhBODEw
MDI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfaW5saW5lcy5oICovOyB9OwogCQkwRjk3
RTYyRTIyQTlBODVGMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTdFNjJEMjJBOUE4
NUYwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oICovOyB9OwogCQkwRjk3
RTYzMDIyQTlBQUMxMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTdFNjJGMjJBOUFB
QzEwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5jICovOyB9OwotCQkwRjk5
Rjk4QzI1Q0IyQ0U4MDBFRUU0NDkgLyogcGFzX3NpemVfdGh1bmsuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTlGOThCMjVDQjJDRTgwMEVFRTQ0OSAv
KiBwYXNfc2l6ZV90aHVuay5oICovOyB9OwogCQkwRjlBMUNFNTI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUM5OTI1NTk5NjExMDBDOEQxMUIgLyog
cGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9raW5kLmggKi87IH07CiAJCTBGOUExQ0U2
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUM5QTI1NTk5NjEx
MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oICovOyB9OwogCQkwRjlB
MUNFNzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9tYXhfZnJlZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDOUIyNTU5OTYxMTAwQzhE
MTFCIC8qIHBhc19iaXRmaXRfbWF4X2ZyZWUuaCAqLzsgfTsKQEAgLTQwOCw3ICszOTksNiBAQAog
CQkwRkQ0OEI0MDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1
bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDQ4
QjA1MjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdC5oICov
OyB9OwogCQkwRkQ0OEI0MTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGRDQ4QjA2MjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
dy5oICovOyB9OwogCQkwRkQ0OEI0NDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2ltbW9ydGFsX2hl
YXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDQ4
QjA5MjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNfaW1tb3J0YWxfaGVhcC5oICovOyB9OwotCQkwRkQ0
OEI0NTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2NvdW50X2xvb2t1cF9tb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQ0OEIwQTIzQTlBQkIxMDAy
NkM0NkQgLyogcGFzX2NvdW50X2xvb2t1cF9tb2RlLmggKi87IH07CiAJCTBGRDQ4QjQ2MjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfYWxsX3NoYXJlZF9wYWdlX2RpcmVjdG9yaWVzLmMgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQ0OEIwQjIzQTlBQkIxMDAy
NkM0NkQgLyogcGFzX2FsbF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmllcy5jICovOyB9OwogCQkwRkQ0
OEI0NzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdF9yZWZl
cmVuY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RDQ4QjBDMjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3Jl
ZmVyZW5jZS5oICovOyB9OwogCQkwRkQ0OEI0ODIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3Jl
Z2F0ZWRfc2hhcmVkX2hhbmRsZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZENDhCMEQyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3No
YXJlZF9oYW5kbGUuYyAqLzsgfTsKQEAgLTUxMCw3ICs1MDAsNiBAQAogCQkwRkU3RUUzMzIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEZDNjgyMTkyMTI1MzYyNzAwM0M2QTEzIC8qIHBhc19zdHJlYW0u
aCAqLzsgfTsKIAkJMEZFN0VFMzQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkM2ODFDQTIxMEY3QzlGMDAzQzZBMTMgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXQuaCAqLzsgfTsKIAkJMEZFN0VFMzUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc190aHJlYWRf
bG9jYWxfY2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGQzY4MUM0MjEwRjdDOUUwMDNDNkExMyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgg
Ki87IH07Ci0JCTBGRTdFRTM3MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdHlwZWRfYWxsb2NhdGlv
bl9yZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGREVBNDc2MjI4QjY1NDMwMDg1RTM0MCAvKiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQu
aCAqLzsgfTsKIAkJMEZFN0VFMzgyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGlsaXR5X2hlYXAu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzY4MjQx
MjEyOUVENTEwMDNDNkExMyAvKiBwYXNfdXRpbGl0eV9oZWFwLmggKi87IH07CiAJCTBGRTdFRTM5
MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbHNfcHJlZml4LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM2NDE5NjIxNDBDQURDMDA0MENFNUUgLyog
cGFzX3V0aWxzX3ByZWZpeC5oICovOyB9OwogCQkwRkU3RUUzQTIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX3V0aWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkM2ODE4ODIxMDI3QjQ2MDAzQzZBMTMgLyogcGFzX3V0aWxzLmggKi87IH07CkBAIC01MTks
NyArNTA4LDYgQEAKIAkJMEZFN0VFNTYyMjk3NDMzNTAwNEY0MTY2IC8qIGlzb19oZWFwX2NvbmZp
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFN0VF
NTQyMjk3NDMzNTAwNEY0MTY2IC8qIGlzb19oZWFwX2NvbmZpZy5oICovOyB9OwogCQkwRkU3RUU1
NzIyOTc0MzM1MDA0RjQxNjYgLyogaXNvX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU3RUU1NTIyOTc0MzM1MDA0RjQxNjYgLyog
aXNvX2hlYXBfY29uZmlnLmMgKi87IH07CiAJCTBGRTdFRTYwMjI5RTE0RkEwMDRGNDE2NiAvKiBw
YXNfZ2V0X2FsbG9jYXRpb25fc2l6ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZFN0VFNTgyMjlFMTRGOTAwNEY0MTY2IC8qIHBhc19nZXRfYWxsb2Nh
dGlvbl9zaXplLmggKi87IH07Ci0JCTBGRTdFRTYxMjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfdHJ5
X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRTdFRTU5MjI5RTE0RjkwMDRGNDE2NiAvKiBwYXNfdHJ5
X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUuaCAqLzsgfTsKIAkJMEZFN0VFNjIyMjlFMTRG
QTAwNEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGVfYXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRTdFRTVBMjI5RTE0RjkwMDRGNDE2NiAvKiBw
YXNfdHJ5X2FsbG9jYXRlX2FycmF5LmggKi87IH07CiAJCTBGRTdFRTYzMjI5RTE0RkEwMDRGNDE2
NiAvKiBwYXNfdHJ5X2FsbG9jYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkU3RUU1QjIyOUUxNEY5MDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0
ZS5oICovOyB9OwogCQkwRkU3RUU2NDIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX2dldF9oZWFwLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkU3RUU1QzIy
OUUxNEY5MDA0RjQxNjYgLyogcGFzX2dldF9oZWFwLmggKi87IH07CkBAIC01NjAsNiArNTQ4LDE5
IEBACiAJCTBGRjhENjI3MjJDMDRBNzcwMEVDNzJGRSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kLmRlZiBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRjhENjI2MjJDMDRBNkQwMEVDNzJGRSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kLmRlZiAqLzsgfTsKIAkJMEZGOEQ2MjkyMkMxNjZGNTAwRUM3MkZFIC8qIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZGOEQ2MjgyMkMxNjZGNTAwRUM3MkZFIC8qIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfaW5saW5lcy5oICovOyB9OwogCQkwRkZGRDUxNTI1NkIwRkJEMDAxRUI5NEMgLyogcGFzX2Rl
YWxsb2NhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkZGRDUxNDI1NkIwRkJDMDAxRUI5NEMgLyogcGFzX2RlYWxsb2NhdGlvbl9tb2Rl
LmggKi87IH07CisJCTJDMTFFODhFMjcyOEE3ODMwMDIxNjJEMCAvKiBibWFsbG9jX3R5cGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDMTFFODhDMjcy
OEE3ODMwMDIxNjJEMCAvKiBibWFsbG9jX3R5cGUuaCAqLzsgfTsKKwkJMkMxMUU4OEYyNzI4QTc4
MzAwMjE2MkQwIC8qIHBhc19zaW1wbGVfdHlwZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkMxMUU4OEQyNzI4QTc4MzAwMjE2MkQwIC8qIHBhc19zaW1w
bGVfdHlwZS5jICovOyB9OworCQkyQzExRTg5MTI3MjhBODkzMDAyMTYyRDAgLyogYm1hbGxvY190
eXBlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzEx
RTg5MDI3MjhBODkzMDAyMTYyRDAgLyogYm1hbGxvY190eXBlLmMgKi87IH07CisJCTJDM0QwRkM3
MjcyQjkyNDEwMDVDNUEwMiAvKiBIZWFwUmVmQWxsb2NhdG9ySW5kZXhUZXN0cy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzNEMEZDNjI3MkI5MjQx
MDA1QzVBMDIgLyogSGVhcFJlZkFsbG9jYXRvckluZGV4VGVzdHMuY3BwICovOyB9OworCQkyQzQ4
MTMyNjI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmMgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ4MTMyMDI3M0Yz
NDFBMDA2Q0FCNTUgLyogcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmMgKi87IH07CisJCTJD
NDgxMzI3MjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5j
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0ODEzMjEy
NzNGMzQxQTAwNkNBQjU1IC8qIHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmMgKi87IH07
CisJCTJDNDgxMzI4MjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDNDgxMzIyMjcz
RjM0MUEwMDZDQUI1NSAvKiBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuYyAqLzsgfTsKKwkJMkM0ODEz
MjkyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ4MTMyMzI3M0Yz
NDFBMDA2Q0FCNTUgLyogcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuaCAqLzsgfTsKKwkJ
MkM0ODEzMkEyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0ODEzMjQy
NzNGMzQxQTAwNkNBQjU1IC8qIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oICovOyB9Owor
CQkyQzQ4MTMyQjI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ4MTMyNTI3M0Yz
NDFBMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5LmggKi87IH07CisJCTJDNDgxMzJE
MjczRjQxNTkwMDZDQUI1NSAvKiBFeHBlbmRhYmxlTWVtb3J5VGVzdHMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0ODEzMkMyNzNGNDE1OTAwNkNB
QjU1IC8qIEV4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHAgKi87IH07CisJCTJDODVEQzQxMjcxMjhG
MEYwMDM2NzkwNSAvKiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM4NURDNDAyNzEyOEYwRjAwMzY3OTA1
IC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmggKi87IH07CisJCTJDOTFFNTUwMjcxOERB
OUEwMEQ2N0ZGOSAvKiBwYXNfc2l6ZV9sb29rdXBfbW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5MUU1NEYyNzE4REE5QTAwRDY3RkY5IC8qIHBh
c19zaXplX2xvb2t1cF9tb2RlLmggKi87IH07CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24g
Ki8KIAogLyogQmVnaW4gUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24gKi8KQEAgLTc0NSwy
MCArNzQ2LDEzIEBACiAJCTBGMUJGRDQzMjY2NDU3RjEwMENFQzI4RCAvKiBwYXNfaGVhcF9jb25m
aWcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2hlYXBfY29uZmlnLmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjE1MEVBMjQ4NEJCMkEwMDBENjM0QiAv
KiBwYXNfYWxsb2NhdG9yX2luZGV4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19hbGxvY2F0b3JfaW5kZXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYy
MTUwRUMyNDg0QkI4NjAwMEQ2MzRCIC8qIHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5k
ZXhfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19jb21wYWN0X2F0
b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTBGMzFBNjM5MjNEQ0Y4MDQwMDJDMENBMyAvKiBwYXNfc2tpcF9saXN0X2lubGluZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NraXBfbGlzdF9pbmxpbmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMzFBNjNBMjNEQ0Y4MDQwMDJDMENBMyAvKiBw
YXNfc2tpcF9saXN0LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19za2lw
X2xpc3QuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYzMUE2M0IyM0RDRjgwNDAw
MkMwQ0EzIC8qIHBhc19za2lwX2xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gcGFzX3NraXBfbGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjMxQTYz
RjIzRENGODQ4MDAyQzBDQTMgLyogcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2Rl
X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjMxQTY0MTIzREQ0RTAyMDAy
QzBDQTMgLyogU2tpcExpc3RUZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTa2lwTGlzdFRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEYzMUE2NDMyM0UzNTA5RTAwMkMwQ0EzIC8qIHBhc19saXN0X2RpcmVjdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbGlzdF9kaXJlY3Rpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYzMUE2NDUyM0U0QzQ0MTAwMkMwQ0EzIC8qIHBhc19jb21w
YWN0X3NraXBfbGlzdF9ub2RlX3B0cl9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX3B0ci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjMxQTY2NTIzRThBOTQyMDAyQzBDQTMgLyogcGFzX2NhcnRlc2lh
bl90cmVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19jYXJ0ZXNpYW5f
dHJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjMxQTY2NzIzRThCMzM2MDAy
QzBDQTMgLyogQ2FydGVzaWFuVHJlZVRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENhcnRlc2lhblRyZWVUZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGMzFBNjY5MjNFOEU1OTQwMDJDMENBMyAvKiBwYXNfdHJlZV9kaXJlY3Rpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3RyZWVfZGlyZWN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMzI5QTFEMjNGMTEzMkEwMEExMzNDNCAv
KiBwYXNfYmFzaWNfaGVhcF9ydW50aW1lX2NvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBwYXNfYmFzaWNfaGVhcF9ydW50aW1lX2NvbmZpZy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjMyOUExRTIzRjExMzJBMDBBMTMzQzQgLyogcGFzX2Jhc2ljX2hl
YXBfcGFnZV9jYWNoZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2Jh
c2ljX2hlYXBfcGFnZV9jYWNoZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYz
MjlBMUYyM0YxMTMyQTAwQTEzM0M0IC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMzI5QTIwMjNGMTEzMkEwMEExMzNDNCAvKiBw
YXNfYmFzaWNfc2VncmVnYXRlZF9wYWdlX2NhY2hlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBwYXNfYmFzaWNfc2VncmVnYXRlZF9wYWdlX2NhY2hlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjMyOUEyNTIzRjFENjM1MDBBMTMzQzQgLyogcGFzX2NyZWF0
ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hl
c193aXRoX3Jlc2VydmVkX21lbW9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjMyOUEyNjIzRjFENjM1MDBBMTMzQzQgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2Fj
aGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0
aCA9IHBhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9y
eS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjMyOUEyNzIzRjFENjM1MDBBMTMz
QzQgLyogcGFzX2Vuc3VyZV9oZWFwX2ZvcmNlZF9pbnRvX3Jlc2VydmVkX21lbW9yeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfZW5zdXJlX2hlYXBfZm9yY2VkX2ludG9f
cmVzZXJ2ZWRfbWVtb3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MTgsNyAr
OTEyLDYgQEAKIAkJMEY4NzkyQjIyMzhBMUQwQzAwQUVFN0YxIC8qIHBhc19oZWFwX3JlZl9raW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19oZWFwX3JlZl9raW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOEE4MDBDMjVDRjY0QzkwMDc5MEI0QSAv
KiBwYXNfdHJpX3N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc190
cmlfc3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4QTgwMjcyNUVDNTg4
ODAwNzkwQjRBIC8qIHBhc19saW5lX3dvcmRfY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHBhc19saW5lX3dvcmRfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTBGOEE4MDI4MjVFQzU4ODgwMDc5MEI0QSAvKiBwYXNfbG9jYWxfYWxsb2NhdG9y
X2xpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xvY2FsX2FsbG9j
YXRvcl9saW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOEE4MDNCMjVFRUNC
QUYwMDc5MEI0QSAvKiBsaWJtYm1hbGxvY19ibWFsbG9jLmR5bGliICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsg
aW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGlibWJtYWxsb2NfYm1hbGxvYy5keWxpYjsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMEY4QTgwNTQyNUVFQ0JENDAwNzkw
QjRBIC8qIG1ibWFsbG9jX2JtYWxsb2MuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRo
ID0gbWJtYWxsb2NfYm1hbGxvYy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhB
ODA1RTI1RUVDQzFDMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2lubGluZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gYm1hbGxvY19oZWFwX2lubGluZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkzOCw3ICs5MzEsNiBAQAogCQkwRjhBODEwMDI1RjZBNzk1
MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBob3RiaXRfaGVhcF9pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGOTdFNjJEMjJBOUE4NUYwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk3RTYyRjIyQTlB
QUMxMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5OUY5OEIyNUNCMkNFODAwRUVFNDQ5IC8qIHBhc19z
aXplX3RodW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zaXplX3Ro
dW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQzk5MjU1OTk2MTEwMEM4
RDExQiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X2tpbmQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9r
aW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQzlBMjU1OTk2MTEwMEM4
RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDOUIyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfbWF4X2ZyZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZp
dF9tYXhfZnJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEzNSw3ICsxMTI3
LDYgQEAKIAkJMEZENDhCMDUyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0
b3JfcmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iYXNlbGlu
ZV9hbGxvY2F0b3JfcmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRDQ4
QjA2MjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQ0OEIwOTIzQTlBQkIxMDAy
NkM0NkQgLyogcGFzX2ltbW9ydGFsX2hlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGFzX2ltbW9ydGFsX2hlYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MEZENDhCMEEyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19jb3VudF9sb29rdXBfbW9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY291bnRfbG9va3VwX21vZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZENDhCMEIyM0E5QUJCMTAwMjZDNDZEIC8qIHBh
c19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0b3JpZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBwYXRoID0gcGFzX2FsbF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmllcy5jOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkQ0OEIwQzIzQTlBQkIxMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2JpdF9yZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdF9yZWZlcmVuY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZENDhCMEQyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF9oYW5kbGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0g
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTE4Miw3ICsxMTczLDYgQEAKIAkJMEZERUE0MkIyMjhCNjQzMzAwODVFMzQwIC8qIHBh
c19hbGlnbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2FsaWdu
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkRFQTQ1RDIyOEI2NTFCMDA4
NUUzNDAgLyogQml0ZmllbGRWZWN0b3JUZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBCaXRmaWVsZFZlY3RvclRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEZERUE0NkQyMjhCNjU0MzAwODVFMzQwIC8qIHBhc196ZXJvX21vZGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3plcm9fbW9kZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwRkRFQTQ3NjIyOEI2NTQzMDA4NUUzNDAgLyogcGFzX3R5
cGVkX2FsbG9jYXRpb25fcmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRkRFQTU3NjIyOEUyMzQ0MDA4NUUzNDAgLyogcGFzX3NpbXBsZV90eXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zaW1wbGVfdHlwZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRkRFQTU3NzIyOEUyMzQ0MDA4NUUzNDAgLyogcGFzX3ByaW1p
dGl2ZV9oZWFwX3JlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcHJp
bWl0aXZlX2hlYXBfcmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGREVBNTc4
MjI4RTIzNDUwMDg1RTM0MCAvKiBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19wcmltaXRpdmVfaGVhcF9yZWYuYzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExOTMsNyArMTE4Myw2IEBACiAJCTBGRTdFRTU0MjI5NzQz
MzUwMDRGNDE2NiAvKiBpc29faGVhcF9jb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gaXNvX2hlYXBfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGRTdFRTU1MjI5NzQzMzUwMDRGNDE2NiAvKiBpc29faGVhcF9jb25maWcuYyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gaXNvX2hlYXBfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGRTdFRTU4MjI5RTE0RjkwMDRGNDE2NiAvKiBwYXNfZ2V0X2FsbG9j
YXRpb25fc2l6ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfZ2V0X2Fs
bG9jYXRpb25fc2l6ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRkU3RUU1OTIy
OUUxNEY5MDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc190cnlfYWxsb2NhdGVfaW50cmlu
c2ljX3ByaW1pdGl2ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkU3RUU1QTIy
OUUxNEY5MDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfdHJ5X2FsbG9jYXRlX2FycmF5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGRTdFRTVCMjI5RTE0RjkwMDRGNDE2NiAvKiBwYXNfdHJ5X2Fs
bG9jYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc190cnlfYWxsb2Nh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFN0VFNUMyMjlFMTRGOTAwNEY0
MTY2IC8qIHBhc19nZXRfaGVhcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBw
YXNfZ2V0X2hlYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMzYsNiArMTIy
NSwxOSBAQAogCQkwRkY4RDYyNjIyQzA0QTZEMDBFQzcyRkUgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfa2luZC5kZWYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRG
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5kZWY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGRjhENjI4MjJDMTY2RjUwMEVDNzJGRSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2lubGlu
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRkZENTE0MjU2QjBG
QkMwMDFFQjk0QyAvKiBwYXNfZGVhbGxvY2F0aW9uX21vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gcGFzX2RlYWxsb2NhdGlvbl9tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJDMTFFODhDMjcyOEE3ODMwMDIxNjJEMCAvKiBibWFsbG9jX3R5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gYm1hbGxvY190eXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDMTFFODhEMjcyOEE3ODMwMDIxNjJEMCAvKiBwYXNfc2lt
cGxlX3R5cGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3NpbXBsZV90
eXBlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDMTFFODkwMjcyOEE4OTMwMDIx
NjJEMCAvKiBibWFsbG9jX3R5cGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0g
Ym1hbGxvY190eXBlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDM0QwRkM2Mjcy
QjkyNDEwMDVDNUEwMiAvKiBIZWFwUmVmQWxsb2NhdG9ySW5kZXhUZXN0cy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIZWFwUmVmQWxsb2NhdG9ySW5kZXhUZXN0cy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDNDgxMzIwMjczRjM0MUEwMDZDQUI1
NSAvKiBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5jOyBwYXRoID0gcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTJDNDgxMzIxMjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfY29tcGFjdF9l
eHBlbmRhYmxlX21lbW9yeS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNf
Y29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyQzQ4MTMyMjI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5LmMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19leHBlbmRhYmxlX21lbW9yeS5jOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzQ4MTMyMzI3M0YzNDFBMDA2Q0FCNTUgLyog
cGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkM0ODEzMjQyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19sYXJnZV9leHBl
bmRhYmxlX21lbW9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbGFy
Z2VfZXhwZW5kYWJsZV9tZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM0
ODEzMjUyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19leHBlbmRhYmxlX21lbW9yeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM0ODEzMkMyNzNGNDE1OTAwNkNBQjU1IC8qIEV4cGVu
ZGFibGVNZW1vcnlUZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFeHBlbmRhYmxlTWVtb3J5VGVzdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyQzg1REM0MDI3MTI4RjBGMDAzNjc5MDUgLyogcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3RyeV9hbGxvY2F0ZV9pbnRy
aW5zaWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM5MUU1NEYyNzE4REE5QTAw
RDY3RkY5IC8qIHBhc19zaXplX2xvb2t1cF9tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhc19zaXplX2xvb2t1cF9tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEZy
YW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTEzMzEsOSArMTMzMywxMSBAQAogCQkJ
CTBGNTMxODEwMjJDOTU0RUQwMDNGN0I2QSAvKiBCaXR2ZWN0b3JUZXN0cy5jcHAgKi8sCiAJCQkJ
MEYzMUE2NjcyM0U4QjMzNjAwMkMwQ0EzIC8qIENhcnRlc2lhblRyZWVUZXN0cy5jcHAgKi8sCiAJ
CQkJMEZDNjgyMzYyMTI5RDRFQjAwM0M2QTEzIC8qIENvYWxpZ25UZXN0cy5jcHAgKi8sCisJCQkJ
MkM0ODEzMkMyNzNGNDE1OTAwNkNBQjU1IC8qIEV4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHAgKi8s
CiAJCQkJMEZDNjgyMkYyMTI5Q0I0MzAwM0M2QTEzIC8qIEV4dGVuZGVkR0NEVGVzdHMuY3BwICov
LAogCQkJCTBGQzY4MjEzMjEyNDhBNzcwMDNDNkExMyAvKiBIYXNodGFibGVUZXN0cy5jcHAgKi8s
CiAJCQkJMEZFQjY2NkIyMzFGMTFEMjAwOUMwMDFCIC8qIEhlYXBMb2NrZXIuaCAqLywKKwkJCQky
QzNEMEZDNjI3MkI5MjQxMDA1QzVBMDIgLyogSGVhcFJlZkFsbG9jYXRvckluZGV4VGVzdHMuY3Bw
ICovLAogCQkJCTBGRUE0NUM0MjM2RTEwQUEwMEI1QTM3NSAvKiBJc29EeW5hbWljUHJpbWl0aXZl
SGVhcFRlc3RzLmNwcCAqLywKIAkJCQkwRkExODU0NTIzNkIzQzgyMDAzNjA5QUQgLyogSXNvSGVh
cENoYW9zVGVzdHMuY3BwICovLAogCQkJCTBGRjI0OEZCMjMwQ0M0QzcwMDc3MjAyRSAvKiBJc29I
ZWFwUGFnZVNoYXJpbmdUZXN0cy5jcHAgKi8sCkBAIC0xMzQ4LDcgKzEzNTIsNiBAQAogCQkJCTBG
RDIyRDA3MjJDRDhBNzUwMEIyMTg0MSAvKiBNaW5IZWFwVGVzdHMuY3BwICovLAogCQkJCTBGNUU0
ODM5MjNENjlGNjEwMDQ2REE1QyAvKiBSYWNlVGVzdHMuY3BwICovLAogCQkJCTBGRjA4RjM1MjJB
NTlEQjMwMDM4NjU3NSAvKiBSZWRCbGFja1RyZWVUZXN0cy5jcHAgKi8sCi0JCQkJMEYzMUE2NDEy
M0RENEUwMjAwMkMwQ0EzIC8qIFNraXBMaXN0VGVzdHMuY3BwICovLAogCQkJCTBGREU1MjU1MjM0
MkI3QzQwMEEwODA4RiAvKiBTdXNwZW5kU2NhdmVuZ2VyLmggKi8sCiAJCQkJMEZDNjgxRUIyMTEy
N0ExNjAwM0M2QTEzIC8qIFRlc3RIYXJuZXNzLmNwcCAqLywKIAkJCQkwRkM2ODFFQTIxMEZFREI1
MDAzQzZBMTMgLyogVGVzdEhhcm5lc3MuaCAqLywKQEAgLTEzNjksNiArMTM3Miw4IEBACiAJCQkJ
MEY4QTgwNUUyNUVFQ0MxQzAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9pbmxpbmVzLmggKi8sCiAJ
CQkJMEY4QTgwNjQyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9pbm5hcmRzLmggKi8s
CiAJCQkJMEY4QTgwNjMyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9yZWYuaCAqLywK
KwkJCQkyQzExRTg5MDI3MjhBODkzMDAyMTYyRDAgLyogYm1hbGxvY190eXBlLmMgKi8sCisJCQkJ
MkMxMUU4OEMyNzI4QTc4MzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5oICovLAogCQkJCTBGOEE4
MEZFMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5jICovLAogCQkJCTBGOEE4MEZGMjVG
NkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5oICovLAogCQkJCTBGOEE4MEZCMjVGNkE3OTUw
MDc5MEI0QSAvKiBob3RiaXRfaGVhcF9jb25maWcuYyAqLywKQEAgLTE0MjYsNyArMTQzMSw2IEBA
CiAJCQkJMEY0RjYxNkMyNTlCRkY5MTAwOEI0QTgyIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19y
b290X2RhdGEuaCAqLywKIAkJCQkwRjMyOUExRTIzRjExMzJBMDBBMTMzQzQgLyogcGFzX2Jhc2lj
X2hlYXBfcGFnZV9jYWNoZXMuaCAqLywKIAkJCQkwRjMyOUExRDIzRjExMzJBMDBBMTMzQzQgLyog
cGFzX2Jhc2ljX2hlYXBfcnVudGltZV9jb25maWcuaCAqLywKLQkJCQkwRjMyOUEyMDIzRjExMzJB
MDBBMTMzQzQgLyogcGFzX2Jhc2ljX3NlZ3JlZ2F0ZWRfcGFnZV9jYWNoZXMuaCAqLywKIAkJCQkw
RjlBMUNBOTI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaCAq
LywKIAkJCQkwRkRFQTQxOTIyOEI2NDMyMDA4NUUzNDAgLyogcGFzX2JpdGZpZWxkX3ZlY3Rvci5o
ICovLAogCQkJCTBGOUExQ0JCMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRp
b25fcmVzdWx0LmggKi8sCkBAIC0xNDkyLDYgKzE0OTYsOCBAQAogCQkJCTBGNkQ1NjQzMjNDQUEx
QjkwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9ib290c3RyYXBfZnJlZV9oZWFwLmMgKi8sCiAJCQkJ
MEY2RDU2NDAyM0NBQTFCOTAwRjQwREJCIC8qIHBhc19jb21wYWN0X2Jvb3RzdHJhcF9mcmVlX2hl
YXAuaCAqLywKIAkJCQkwRjRGNjFCRjI1QTRDQjA5MDA4QjRBODIgLyogcGFzX2NvbXBhY3RfY2Fy
dGVzaWFuX3RyZWVfbm9kZV9wdHIuaCAqLywKKwkJCQkyQzQ4MTMyMTI3M0YzNDFBMDA2Q0FCNTUg
LyogcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuYyAqLywKKwkJCQkyQzQ4MTMyMzI3M0Yz
NDFBMDA2Q0FCNTUgLyogcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuaCAqLywKIAkJCQkw
RjZENTY1RTIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfaGVhcF9wdHIuaCAqLywKIAkJ
CQkwRjZENTY1QzIzQ0JEMTlDMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfaGVhcF9yZXNlcnZhdGlv
bi5jICovLAogCQkJCTBGNkQ1NjU2MjNDQkQxOUMwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9oZWFw
X3Jlc2VydmF0aW9uLmggKi8sCkBAIC0xNTA2LDggKzE1MTIsNiBAQAogCQkJCTBGNkQ1NjVCMjND
QkQxOUMwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0ci5o
ICovLAogCQkJCTBGMTQ4NzBGMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oICovLAogCQkJCTBGNkQ1NjUzMjNDQkQxOUMwMEY0MERC
QiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3ZpZXcuaCAqLywKLQkJCQkwRjMxQTYzRjIzRENG
ODQ4MDAyQzBDQTMgLyogcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyLmggKi8sCi0JCQkJ
MEYzMUE2NDUyM0U0QzQ0MTAwMkMwQ0EzIC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0
cl9wdHIuaCAqLywKIAkJCQkwRjZENTY0RDIzQ0FCQTY1MDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rf
dGFnZ2VkX2F0b21pY19wdHIuaCAqLywKIAkJCQkwRjlBMUNEMzI1NTk5NjE2MDBDOEQxMUIgLyog
cGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggKi8sCiAJCQkJ
MEY2RDU2NDQyM0NBQTFCOTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wdHIuaCAqLywK
QEAgLTE1MTcsNyArMTUyMSw2IEBACiAJCQkJMEZDNEVDMzAyMzRBOTFFMjAwQjcxMEEzIC8qIHBh
c19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5oICovLAogCQkJCTBGQzY4MUEyMjEw
MzkxN0IwMDNDNkExMyAvKiBwYXNfY29uZmlnLmggKi8sCiAJCQkJMEY4NUVGRDUyMkUyQkVDNzAw
M0EzNjJCIC8qIHBhc19jb25maWdfcHJlZml4LmggKi8sCi0JCQkJMEZENDhCMEEyM0E5QUJCMTAw
MjZDNDZEIC8qIHBhc19jb3VudF9sb29rdXBfbW9kZS5oICovLAogCQkJCTBGMzI5QTI2MjNGMUQ2
MzUwMEExMzNDNCAvKiBwYXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNl
cnZlZF9tZW1vcnkuYyAqLywKIAkJCQkwRjMyOUEyNTIzRjFENjM1MDBBMTMzQzQgLyogcGFzX2Ny
ZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmggKi8sCiAJ
CQkJMEZFN0VFNUYyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19kZWFsbG9jYXRlLmMgKi8sCkBAIC0x
NTY0LDYgKzE1NjcsOCBAQAogCQkJCTBGMTkzMjREMjJFRDA0QTUwMEZCQTcxMyAvKiBwYXNfZXBv
Y2guaCAqLywKIAkJCQkwRkQ0OEFGOTIzQTlBQkFGMDAyNkM0NkQgLyogcGFzX2V4Y2x1c2l2ZV92
aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuYyAqLywKIAkJCQkwRkQ0OEIyMDIzQTlBQkIzMDAyNkM0
NkQgLyogcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuaCAqLywKKwkJCQky
QzQ4MTMyMjI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5LmMgKi8sCisJ
CQkJMkM0ODEzMjUyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19leHBlbmRhYmxlX21lbW9yeS5oICov
LAogCQkJCTBGQzY4MjJCMjEyOUM5OEMwMDNDNkExMyAvKiBwYXNfZXh0ZW5kZWRfZ2NkLmMgKi8s
CiAJCQkJMEZDNjgyMkMyMTI5Qzk4QzAwM0M2QTEzIC8qIHBhc19leHRlbmRlZF9nY2QuaCAqLywK
IAkJCQkwRkYwOEY0MTIyQTYyN0MwMDAzODY1NzUgLyogcGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFw
LmMgKi8sCkBAIC0xNjI4LDYgKzE2MzMsOCBAQAogCQkJCTBGRDQ4QUZDMjNBOUFCQjAwMDI2QzQ2
RCAvKiBwYXNfaW1tdXRhYmxlX3ZlY3Rvci5oICovLAogCQkJCTBGNTE2RUUyMjQ1NjBGRjUwMDRF
MkI4RCAvKiBwYXNfaW50ZXJuYWxfY29uZmlnLmggKi8sCiAJCQkJMEZGMDhGNDkyMkE4NDQ2QjAw
Mzg2NTc1IC8qIHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0LmggKi8sCisJCQkJMkM0ODEzMjAy
NzNGMzQxQTAwNkNBQjU1IC8qIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5jICovLAorCQkJ
CTJDNDgxMzI0MjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnku
aCAqLywKIAkJCQkwRkM2ODFBODIxMDNDQUM5MDAzQzZBMTMgLyogcGFzX2xhcmdlX2ZyZWUuaCAq
LywKIAkJCQkwRkM2ODI0NjIxMkEwRjFGMDAzQzZBMTMgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9j
b25maWcuaCAqLywKIAkJCQkwRjY2RDUzRjI0ODc2MEE3MDBGQzczNDcgLyogcGFzX2xhcmdlX2Zy
ZWVfaGVhcF9kZWNsYXJhdGlvbnMuZGVmICovLApAQCAtMTY1Nyw3ICsxNjY0LDYgQEAKIAkJCQkw
RkQ0OEIwMjIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2lu
ZC5oICovLAogCQkJCTBGREJCMDc2MjJCODc3RkEwMDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2lubGluZXMuaCAqLywKIAkJCQkwRjQ1RDVBNjI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xv
Y2FsX2FsbG9jYXRvcl9raW5kLmggKi8sCi0JCQkJMEY4QTgwMjgyNUVDNTg4ODAwNzkwQjRBIC8q
IHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oICovLAogCQkJCTBGREJCMDcwMjJCODc1QTYwMDZC
QTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9tb2RlLmggKi8sCiAJCQkJMEZDNjgx
QkYyMTBGN0M5RTAwM0M2QTEzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0LmggKi8sCiAJ
CQkJMEY0NUQ1QTcyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEuYyAqLywKQEAgLTE3OTYsMTEgKzE4MDIsOSBAQAogCQkJCTBGNkQ1NjQ1MjNDQUEx
QjkwMEY0MERCQiAvKiBwYXNfc2ltcGxlX2ZyZWVfaGVhcF9oZWxwZXJzLmggKi8sCiAJCQkJMEZG
MDhGM0MyMkE1REM2OTAwMzg2NTc1IC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmMgKi8s
CiAJCQkJMEZGMDhGM0IyMkE1REM2OTAwMzg2NTc1IC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9o
ZWFwLmggKi8sCisJCQkJMkMxMUU4OEQyNzI4QTc4MzAwMjE2MkQwIC8qIHBhc19zaW1wbGVfdHlw
ZS5jICovLAogCQkJCTBGREVBNTc2MjI4RTIzNDQwMDg1RTM0MCAvKiBwYXNfc2ltcGxlX3R5cGUu
aCAqLywKLQkJCQkwRjk5Rjk4QjI1Q0IyQ0U4MDBFRUU0NDkgLyogcGFzX3NpemVfdGh1bmsuaCAq
LywKLQkJCQkwRjMxQTYzQTIzRENGODA0MDAyQzBDQTMgLyogcGFzX3NraXBfbGlzdC5jICovLAot
CQkJCTBGMzFBNjNCMjNEQ0Y4MDQwMDJDMENBMyAvKiBwYXNfc2tpcF9saXN0LmggKi8sCi0JCQkJ
MEYzMUE2MzkyM0RDRjgwNDAwMkMwQ0EzIC8qIHBhc19za2lwX2xpc3RfaW5saW5lcy5oICovLAor
CQkJCTJDOTFFNTRGMjcxOERBOUEwMEQ2N0ZGOSAvKiBwYXNfc2l6ZV9sb29rdXBfbW9kZS5oICov
LAogCQkJCTBGQzY0MTg0MjEzMERGQjYwMDQwQ0U1RSAvKiBwYXNfc2xvd19wYXRoX21vZGUuaCAq
LywKIAkJCQkwRjQ3RDQwRTIxNDBEQjA1MDA4QzQxRjAgLyogcGFzX3Nsb3dfcGF0aF9tb2RlX3By
ZWZpeC5oICovLAogCQkJCTBGNkQ1NDc4MjNDNTczRTEwMEY0MERCQiAvKiBwYXNfc21hbGxfbGFy
Z2VfbWFwX2VudHJ5LmggKi8sCkBAIC0xODI2LDExICsxODMwLDEwIEBACiAJCQkJMEZFN0VFNUIy
MjlFMTRGOTAwNEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGUuaCAqLywKIAkJCQkwRkU3RUU1QTIy
OUUxNEY5MDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5oICovLAogCQkJCTBGRDQ4
QjAzMjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oICovLAotCQkJ
CTBGRTdFRTU5MjI5RTE0RjkwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19w
cmltaXRpdmUuaCAqLywKKwkJCQkyQzg1REM0MDI3MTI4RjBGMDAzNjc5MDUgLyogcGFzX3RyeV9h
bGxvY2F0ZV9pbnRyaW5zaWMuaCAqLywKIAkJCQkwRkU3RUU1RDIyOUUxNEZBMDA0RjQxNjYgLyog
cGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaCAqLywKIAkJCQkwRkU3RUU3ODIyQTA0OEJBMDA0
RjQxNjYgLyogcGFzX3RyeV9yZWFsbG9jYXRlLmggKi8sCiAJCQkJMEY1OUEzOTIyNjY3RjAwRTAw
QTM4NjU3IC8qIHBhc190cnlfc2hyaW5rLmggKi8sCi0JCQkJMEZERUE0NzYyMjhCNjU0MzAwODVF
MzQwIC8qIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAogCQkJCTBGQzY4MjNFMjEy
OUVENTEwMDNDNkExMyAvKiBwYXNfdXRpbGl0eV9oZWFwLmMgKi8sCiAJCQkJMEZDNjgyNDEyMTI5
RUQ1MTAwM0M2QTEzIC8qIHBhc191dGlsaXR5X2hlYXAuaCAqLywKIAkJCQkwRkRFQTQyMzIyOEI2
NDMzMDA4NUUzNDAgLyogcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuYyAqLywKQEAgLTE5NDcsNiAr
MTk1MCw3IEBACiAJCQkJMEY4QTgwNjUyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9p
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjhBODA2QjI1RUVDQzFEMDA3OTBCNEEgLyog
Ym1hbGxvY19oZWFwX2lubmFyZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEE4MDZBMjVFRUND
MUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfcmVmLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQzEx
RTg4RTI3MjhBNzgzMDAyMTYyRDAgLyogYm1hbGxvY190eXBlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjhBODEwNTI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGOEE4MTAzMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9jb25maWcuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGOEE4MTA2MjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVh
cF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKQEAgLTE5ODUsNyArMTk4OSw2IEBACiAJCQkJMEY0
RjYxNkQyNTlCRkY5MTAwOEI0QTgyIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19yb290X2RhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMzI5QTIyMjNGMTEzMkIwMEExMzNDNCAvKiBwYXNfYmFz
aWNfaGVhcF9wYWdlX2NhY2hlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzMjlBMjEyM0YxMTMy
QTAwQTEzM0M0IC8qIHBhc19iYXNpY19oZWFwX3J1bnRpbWVfY29uZmlnLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjMyOUEyNDIzRjExMzJCMDBBMTMzQzQgLyogcGFzX2Jhc2ljX3NlZ3JlZ2F0ZWRf
cGFnZV9jYWNoZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUExQ0Y1MjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
N0VFMDMyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19iaXRmaWVsZF92ZWN0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGOUExRDA3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRp
b25fcmVzdWx0LmggaW4gSGVhZGVycyAqLywKQEAgLTIwMzgsNiArMjA0MSw3IEBACiAJCQkJMEY5
QTFEMzkyNTVBNDQ3MzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2JpdGZpdF92aWV3X3B0ci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY2RDU2NDgyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19jb21wYWN0
X2Jvb3RzdHJhcF9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNEY2MUMwMjVBNENC
MDkwMDhCNEE4MiAvKiBwYXNfY29tcGFjdF9jYXJ0ZXNpYW5fdHJlZV9ub2RlX3B0ci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMkM0ODEzMjkyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19jb21wYWN0X2V4
cGVuZGFibGVfbWVtb3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZENTY3MDIzQ0JEMTlEMDBG
NDBEQkIgLyogcGFzX2NvbXBhY3RfaGVhcF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkQ1
NjY4MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9oZWFwX3Jlc2VydmF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjY2RDU0NTI0ODc2MEE4MDBGQzczNDcgLyogcGFzX2NvbXBhY3Rf
bGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjA1MCw4ICsyMDU0
LDYgQEAKIAkJCQkwRjZENTY2RDIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9zaGFyZWRfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTQ4NzE1MjY5Qjc1
MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2RDU2NjUyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfdmlldy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMUE2NDAyM0RDRjg0
ODAwMkMwQ0EzIC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0ci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEYzMUE2NDYyM0U0QzQ0MTAwMkMwQ0EzIC8qIHBhc19jb21wYWN0X3NraXBfbGlz
dF9ub2RlX3B0cl9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkQ1NjRFMjNDQUJBNjUwMEY0
MERCQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfYXRvbWljX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY5QTFEMUUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dy
YW51bGVfdXNlX2NvdW50X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2RDU2NEIyM0NBQTFC
QTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wdHIuaCBpbiBIZWFkZXJzICovLApAQCAt
MjA2MCw3ICsyMDYyLDYgQEAKIAkJCQkwRkM0RUMzOTIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2Nv
bXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3
RUUwQTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY4NUVGREEyMkUyQkVDNzAwM0EzNjJCIC8qIHBhc19jb25maWdfcHJlZml4LmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkQ0OEI0NTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2NvdW50X2xvb2t1cF9t
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjMyOUEyQjIzRjFENjM2MDBBMTMzQzQgLyogcGFz
X2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkU3RUU2NjIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX2RlYWxsb2Nh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkZENTE1MjU2QjBGQkQwMDFFQjk0QyAvKiBwYXNf
ZGVhbGxvY2F0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjA4Nyw2ICsyMDg4LDcgQEAK
IAkJCQkwRjRGNjExQzI1OTgzOEIxMDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3JfcmVnaW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjE5MzI1NDIyRUQwNEE2MDBGQkE3MTMgLyogcGFzX2Vwb2No
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ0OEI1QjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2V4
Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTJD
NDgxMzJCMjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRTdFRTBDMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfZXh0ZW5kZWRfZ2Nk
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkYwOEY0NDIyQTYyN0MxMDAzODY1NzUgLyogcGFzX2Zh
c3RfbGFyZ2VfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQwNDI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfY2FjaGUuaCBpbiBIZWFkZXJzICovLApAQCAt
MjEzMyw2ICsyMTM1LDcgQEAKIAkJCQkwRkQ0OEIzNzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2lt
bXV0YWJsZV92ZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTE2RUUzMjQ1NjBGRjUwMDRF
MkI4RCAvKiBwYXNfaW50ZXJuYWxfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkYwOEY0
QTIyQTg0NDZCMDAzODY1NzUgLyogcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTJDNDgxMzJBMjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfbGFyZ2VfZXhwZW5k
YWJsZV9tZW1vcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTFFMjI5NjAxNDIwMDRGNDE2
NiAvKiBwYXNfbGFyZ2VfZnJlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMUMyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjY2RDU0QjI0ODc2MEFGMDBGQzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWNs
YXJhdGlvbnMuZGVmIGluIEhlYWRlcnMgKi8sCkBAIC0yMTU0LDcgKzIxNTcsNiBAQAogCQkJCTBG
RDQ4QjNEMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRCQjA3NzIyQjg3N0ZBMDA2QkE1RkMgLyogcGFzX2xv
Y2FsX2FsbG9jYXRvcl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQ1RDVBOTI2QUI3
MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjhBODAyQTI1RUM1ODg4MDA3OTBCNEEgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5l
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRCQjA3MzIyQjg3NUE2MDA2QkE1RkMgLyogcGFzX2xv
Y2FsX2FsbG9jYXRvcl9yZWZpbGxfbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMEUy
Mjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjQ1RDVBQjI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRv
cl9zY2F2ZW5nZXJfZGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjUyLDkgKzIyNTQsNyBAQAog
CQkJCTBGNkQ1NjRDMjNDQUExQkEwMEY0MERCQiAvKiBwYXNfc2ltcGxlX2ZyZWVfaGVhcF9oZWxw
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkYwOEYzRDIyQTVEQzY5MDAzODY1NzUgLyogcGFz
X3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFREZEMjI5
NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2ltcGxlX3R5cGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
OTlGOThDMjVDQjJDRTgwMEVFRTQ0OSAvKiBwYXNfc2l6ZV90aHVuay5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEYzMUE2M0UyM0RDRjgwNDAwMkMwQ0EzIC8qIHBhc19za2lwX2xpc3QuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGMzFBNjNDMjNEQ0Y4MDQwMDJDMENBMyAvKiBwYXNfc2tpcF9saXN0X2lu
bGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTJDOTFFNTUwMjcxOERBOUEwMEQ2N0ZGOSAvKiBw
YXNfc2l6ZV9sb29rdXBfbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMkQyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc19zbG93X3BhdGhfbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
N0VFMkMyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zbG93X3BhdGhfbW9kZV9wcmVmaXguaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNkQ1NDgwMjNDNTczRTEwMEY0MERCQiAvKiBwYXNfc21hbGxfbGFy
Z2VfbWFwX2VudHJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTIyNzMsMTEgKzIyNzMsMTAgQEAKIAkJ
CQkwRkU3RUU2MzIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZFN0VFNjIyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGVf
YXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDQ4QjNFMjNBOUFCQjMwMDI2QzQ2RCAvKiBw
YXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFNjEyMjlF
MTRGQTAwNEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMkM4NURDNDEyNzEyOEYwRjAwMzY3OTA1IC8qIHBhc190cnlfYWxs
b2NhdGVfaW50cmluc2ljLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUU2NTIyOUUxNEZBMDA0
RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRTdFRTc5MjJBMDQ4QkIwMDRGNDE2NiAvKiBwYXNfdHJ5X3JlYWxsb2NhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNTlBMzk2MjY2N0YwMEUwMEEzODY1NyAvKiBwYXNfdHJ5X3Nocmluay5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMzcyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc190eXBl
ZF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMzgyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc191dGlsaXR5X2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdF
RTBEMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZENDhCMkQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc191dGlsaXR5X2hlYXBf
c3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTUwLDggKzI1NDksMTAgQEAKIAkJCQkwRjUz
MTgxMTIyQzk1NEVEMDAzRjdCNkEgLyogQml0dmVjdG9yVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEYzMUE2NjgyM0U4QjMzNjAwMkMwQ0EzIC8qIENhcnRlc2lhblRyZWVUZXN0cy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkM2ODIzODIxMjlENEVFMDAzQzZBMTMgLyogQ29hbGlnblRl
c3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDNDgxMzJEMjczRjQxNTkwMDZDQUI1NSAvKiBF
eHBlbmRhYmxlTWVtb3J5VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNjgyMzEyMTI5
Q0I0NjAwM0M2QTEzIC8qIEV4dGVuZGVkR0NEVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZDNjgyMTUyMTI0OEE3OTAwM0M2QTEzIC8qIEhhc2h0YWJsZVRlc3RzLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTJDM0QwRkM3MjcyQjkyNDEwMDVDNUEwMiAvKiBIZWFwUmVmQWxsb2NhdG9ySW5k
ZXhUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVBNDVDNTIzNkUxMEFBMDBCNUEzNzUg
LyogSXNvRHluYW1pY1ByaW1pdGl2ZUhlYXBUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkExODU0NjIzNkIzQzgyMDAzNjA5QUQgLyogSXNvSGVhcENoYW9zVGVzdHMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZGMjQ4RkQyMzBDQzRDQjAwNzcyMDJFIC8qIElzb0hlYXBQYWdlU2hhcmlu
Z1Rlc3RzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU2NSw3ICsyNTY2LDYgQEAKIAkJCQkwRkQy
MkQwODIyQ0Q4QTc1MDBCMjE4NDEgLyogTWluSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGNUU0ODNBMjNENjlGNjEwMDQ2REE1QyAvKiBSYWNlVGVzdHMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZGMDhGMzYyMkE1OURCMzAwMzg2NTc1IC8qIFJlZEJsYWNrVHJlZVRlc3RzLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTBGMzFBNjQyMjNERDRFMDIwMDJDMENBMyAvKiBTa2lwTGlz
dFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzY4MUVEMjExMjdBMTkwMDNDNkExMyAv
KiBUZXN0SGFybmVzcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjg3MDBDMjI1QjBCMjZBMDAw
RTFBQkYgLyogVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY4NzAwRjUyNUIxNEM4QjAwMEUxQUJGIC8qIFRTRFRlc3RzLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjU3OSw2ICsyNTc5LDcgQEAKIAkJCWZpbGVzID0gKAogCQkJCTBGOEE4
MDY2MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTBGOEE4MDY4MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfY29uZmlnLmMgaW4gU291
cmNlcyAqLywKKwkJCQkyQzExRTg5MTI3MjhBODkzMDAyMTYyRDAgLyogYm1hbGxvY190eXBlLmMg
aW4gU291cmNlcyAqLywKIAkJCQkwRjhBODEwNDI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hl
YXAuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGOEE4MTAxMjVGNkE3OTUwMDc5MEI0QSAvKiBob3Ri
aXRfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRTdFRTc2MjI5RjAxMEYwMDRG
NDE2NiAvKiBpc29faGVhcC5jIGluIFNvdXJjZXMgKi8sCkBAIC0yNjEwLDYgKzI2MTEsNyBAQAog
CQkJCTBGRTdFREI5MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfY29hbGlnbi5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY5QTFDRjAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21taXRfc3Bhbi5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEY2RDU2NEEyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19jb21wYWN0
X2Jvb3RzdHJhcF9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTJDNDgxMzI3MjczRjM0
MUEwMDZDQUI1NSAvKiBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY2RDU2NkUyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2hlYXBfcmVz
ZXJ2YXRpb24uYyBpbiBTb3VyY2VzICovLAogCQkJCTBGNjZENTQ3MjQ4NzYwQTgwMEZDNzM0NyAv
KiBwYXNfY29tcGFjdF9sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZDNEVDM0UyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0
X2NhbGxiYWNrcy5jIGluIFNvdXJjZXMgKi8sCkBAIC0yNjMzLDYgKzI2MzUsNyBAQAogCQkJCTBG
NEY2MTFCMjU5ODM4QjEwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvcl9yZWdpb24uYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGMTkzMjU2MjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfZXBvY2guYyBpbiBT
b3VyY2VzICovLAogCQkJCTBGRDQ4QjM0MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZXhjbHVzaXZl
X3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMkM0ODEzMjgy
NzNGMzQxQTAwNkNBQjU1IC8qIHBhc19leHBlbmRhYmxlX21lbW9yeS5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFN0VEQkEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19leHRlbmRlZF9nY2QuYyBpbiBT
b3VyY2VzICovLAogCQkJCTBGRjA4RjQzMjJBNjI3QzEwMDM4NjU3NSAvKiBwYXNfZmFzdF9sYXJn
ZV9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGOUExQ0VDMjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfZmFzdF9tZWdhcGFnZV9jYWNoZS5jIGluIFNvdXJjZXMgKi8sCkBAIC0yNjUwLDYg
KzI2NTMsNyBAQAogCQkJCTBGQzRFQzNBMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfaGVhcF9zdW1t
YXJ5LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjZENTQ3QzIzQzU3M0UxMDBGNDBEQkIgLyogcGFz
X2hlYXBfdGFibGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRDQ4QjM5MjNBOUFCQjMwMDI2QzQ2
RCAvKiBwYXNfaW1tb3J0YWxfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMkM0ODEzMjYyNzNG
MzQxQTAwNkNBQjU1IC8qIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY3ODA4OEYyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc19sYXJnZV9mcmVlX2hlYXBf
ZGVmZXJyZWRfY29tbWl0X2xvZy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2NkQ1NEEyNDg3NjBB
ODAwRkM3MzQ3IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfaGVscGVycy5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFN0VEQzYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9oZWFwLmMgaW4gU291
cmNlcyAqLywKQEAgLTI2OTgsNyArMjcwMiw3IEBACiAJCQkJMEYxOEU2M0YyNjI4QkZCNzAwRjY5
MDNEIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY2RDU2NDYyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19zaW1wbGVfZnJlZV9oZWFwX2hl
bHBlcnMuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRjA4RjNFMjJBNURDNjkwMDM4NjU3NSAvKiBw
YXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYzMUE2M0Qy
M0RDRjgwNDAwMkMwQ0EzIC8qIHBhc19za2lwX2xpc3QuYyBpbiBTb3VyY2VzICovLAorCQkJCTJD
MTFFODhGMjcyOEE3ODMwMDIxNjJEMCAvKiBwYXNfc2ltcGxlX3R5cGUuYyBpbiBTb3VyY2VzICov
LAogCQkJCTBGQzRFQzNCMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmMg
aW4gU291cmNlcyAqLywKIAkJCQkwRkU3RUREMzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3N0cmVh
bS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNEVDMzcyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19z
dHJpbmdfc3RyZWFtLmMgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5jCShyZXZpc2lvbiAyODU3ODUpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXAuYwkod29ya2luZyBj
b3B5KQpAQCAtMzQsNiArMzQsOSBAQAogI2luY2x1ZGUgImJtYWxsb2NfaGVhcF9pbmxpbmVzLmgi
CiAjaW5jbHVkZSAicGFzX2RlYWxsb2NhdGUuaCIKICNpbmNsdWRlICJwYXNfZW5zdXJlX2hlYXBf
Zm9yY2VkX2ludG9fcmVzZXJ2ZWRfbWVtb3J5LmgiCisjaW5jbHVkZSAicGFzX2dldF9hbGxvY2F0
aW9uX3NpemUuaCIKKworYm1hbGxvY190eXBlIGJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV90eXBl
ID0gQk1BTExPQ19UWVBFX0lOSVRJQUxJWkVSKDEsIDEsICJDb21tb24gUHJpbWl0aXZlIik7CiAK
IHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0IGJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV9oZWFw
X3N1cHBvcnQgPQogICAgIFBBU19JTlRSSU5TSUNfSEVBUF9TVVBQT1JUX0lOSVRJQUxJWkVSOwpA
QCAtNDEsMTMgKzQ0LDIzIEBAIHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0IGJtYWxsb2NfY29t
bW8KIHBhc19oZWFwIGJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV9oZWFwID0KICAgICBQQVNfSU5U
UklOU0lDX0hFQVBfSU5JVElBTElaRVIoCiAgICAgICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRp
dmVfaGVhcCwKLSAgICAgICAgUEFTX1NJTVBMRV9UWVBFX0NSRUFURSgxLCAxKSwKKyAgICAgICAg
JmJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV90eXBlLAogICAgICAgICBibWFsbG9jX2NvbW1vbl9w
cmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAogICAg
ICAgICAmYm1hbGxvY19pbnRyaW5zaWNfcnVudGltZV9jb25maWcuYmFzZSk7CiAKIHBhc19hbGxv
Y2F0b3JfY291bnRzIGJtYWxsb2NfYWxsb2NhdG9yX2NvdW50czsKIAorUEFTX05FVkVSX0lOTElO
RSB2b2lkKiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9jYXN1YWwoc2l6ZV90IHNpemUpCit7CisgICAg
cmV0dXJuICh2b2lkKilibWFsbG9jX3RyeV9hbGxvY2F0ZV9pbXBsX2Nhc3VhbF9jYXNlKHNpemUs
IDEpLmJlZ2luOworfQorCitQQVNfTkVWRVJfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGVf
Y2FzdWFsKHNpemVfdCBzaXplKQoreworICAgIHJldHVybiAodm9pZCopYm1hbGxvY19hbGxvY2F0
ZV9pbXBsX2Nhc3VhbF9jYXNlKHNpemUsIDEpLmJlZ2luOworfQorCiB2b2lkKiBibWFsbG9jX3Ry
eV9hbGxvY2F0ZShzaXplX3Qgc2l6ZSkKIHsKICAgICByZXR1cm4gYm1hbGxvY190cnlfYWxsb2Nh
dGVfaW5saW5lKHNpemUpOwpAQCAtNjMsMTEgKzc2LDYgQEAgdm9pZCogYm1hbGxvY190cnlfYWxs
b2NhdGVfemVyb2VkKHNpemVfdAogICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV96ZXJv
ZWRfaW5saW5lKHNpemUpOwogfQogCi1QQVNfTkVWRVJfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxs
b2NhdGVfc2xvdyhzaXplX3Qgc2l6ZSkKLXsKLSAgICByZXR1cm4gKHZvaWQqKWJtYWxsb2NfYWxs
b2NhdGVfaW1wbF9tZWRpdW1fc2xvd19jYXNlKHNpemUsIDEpLmJlZ2luOwotfQotCiB2b2lkKiBi
bWFsbG9jX2FsbG9jYXRlKHNpemVfdCBzaXplKQogewogICAgIHJldHVybiBibWFsbG9jX2FsbG9j
YXRlX2lubGluZShzaXplKTsKQEAgLTk1LDYgKzEwMywxNiBAQCB2b2lkKiBibWFsbG9jX3JlYWxs
b2NhdGUodm9pZCogb2xkX3B0ciwgCiAgICAgcmV0dXJuIGJtYWxsb2NfcmVhbGxvY2F0ZV9pbmxp
bmUob2xkX3B0ciwgbmV3X3NpemUsIGZyZWVfbW9kZSk7CiB9CiAKK1BBU19ORVZFUl9JTkxJTkUg
dm9pZCogYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2Nhc3VhbChwYXNfaGVhcF9yZWYqIGhlYXBf
cmVmKQoreworICAgIHJldHVybiAodm9pZCopYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2ltcGxf
Y2FzdWFsX2Nhc2UoaGVhcF9yZWYpLmJlZ2luOworfQorCitQQVNfTkVWRVJfSU5MSU5FIHZvaWQq
IGJtYWxsb2NfaXNvX2FsbG9jYXRlX2Nhc3VhbChwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQorewor
ICAgIHJldHVybiAodm9pZCopYm1hbGxvY19pc29fYWxsb2NhdGVfaW1wbF9jYXN1YWxfY2FzZSho
ZWFwX3JlZikuYmVnaW47Cit9CisKIHZvaWQqIGJtYWxsb2NfdHJ5X2lzb19hbGxvY2F0ZShwYXNf
aGVhcF9yZWYqIGhlYXBfcmVmKQogewogICAgIHJldHVybiBibWFsbG9jX3RyeV9pc29fYWxsb2Nh
dGVfaW5saW5lKGhlYXBfcmVmKTsKQEAgLTEwNSwyNiArMTIzLDkwIEBAIHZvaWQqIGJtYWxsb2Nf
aXNvX2FsbG9jYXRlKHBhc19oZWFwX3JlZioKICAgICByZXR1cm4gYm1hbGxvY19pc29fYWxsb2Nh
dGVfaW5saW5lKGhlYXBfcmVmKTsKIH0KIAotdm9pZCogYm1hbGxvY190cnlfaXNvX2FsbG9jYXRl
X2FycmF5KHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCkKK1BBU19ORVZFUl9J
TkxJTkUgdm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfYXJyYXlfYnlfc2l6ZV93aXRoX2FsaWdu
bWVudF9jYXN1YWwoCisgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUsIHNp
emVfdCBhbGlnbm1lbnQpCit7CisgICAgcmV0dXJuICh2b2lkKilibWFsbG9jX3RyeV9pc29fYWxs
b2NhdGVfYXJyYXlfaW1wbF9jYXN1YWxfY2FzZShoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KS5i
ZWdpbjsKK30KKworUEFTX05FVkVSX0lOTElORSB2b2lkKiBibWFsbG9jX2FsbG9jYXRlX2FycmF5
X2J5X3NpemVfd2l0aF9hbGlnbm1lbnRfY2FzdWFsKAorICAgIHBhc19oZWFwX3JlZiogaGVhcF9y
ZWYsIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KQoreworICAgIHJldHVybiAodm9pZCop
Ym1hbGxvY19pc29fYWxsb2NhdGVfYXJyYXlfaW1wbF9jYXN1YWxfY2FzZShoZWFwX3JlZiwgc2l6
ZSwgYWxpZ25tZW50KS5iZWdpbjsKK30KKwordm9pZCogYm1hbGxvY190cnlfaXNvX2FsbG9jYXRl
X2FycmF5X2J5X3NpemUocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUpCiB7Ci0g
ICAgcmV0dXJuIGJtYWxsb2NfdHJ5X2lzb19hbGxvY2F0ZV9hcnJheV9pbmxpbmUoaGVhcF9yZWYs
IGNvdW50KTsKKyAgICByZXR1cm4gYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2FycmF5X2J5X3Np
emVfaW5saW5lKGhlYXBfcmVmLCBzaXplKTsKIH0KIAotdm9pZCogYm1hbGxvY19pc29fYWxsb2Nh
dGVfYXJyYXkocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGNvdW50KQordm9pZCogYm1h
bGxvY19pc29fYWxsb2NhdGVfYXJyYXlfYnlfc2l6ZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBz
aXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gYm1hbGxvY19pc29fYWxsb2NhdGVfYXJyYXlfaW5s
aW5lKGhlYXBfcmVmLCBjb3VudCk7CisgICAgcmV0dXJuIGJtYWxsb2NfaXNvX2FsbG9jYXRlX2Fy
cmF5X2J5X3NpemVfaW5saW5lKGhlYXBfcmVmLCBzaXplKTsKIH0KIAotdm9pZCogYm1hbGxvY190
cnlfaXNvX2FsbG9jYXRlX2FycmF5X3dpdGhfYWxpZ25tZW50KAordm9pZCogYm1hbGxvY190cnlf
aXNvX2FsbG9jYXRlX3plcm9lZF9hcnJheV9ieV9zaXplKHBhc19oZWFwX3JlZiogaGVhcF9yZWYs
IHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfemVy
b2VkX2FycmF5X2J5X3NpemVfaW5saW5lKGhlYXBfcmVmLCBzaXplKTsKK30KKwordm9pZCogYm1h
bGxvY19pc29fYWxsb2NhdGVfemVyb2VkX2FycmF5X2J5X3NpemUocGFzX2hlYXBfcmVmKiBoZWFw
X3JlZiwgc2l6ZV90IHNpemUpCit7CisgICAgcmV0dXJuIGJtYWxsb2NfaXNvX2FsbG9jYXRlX3pl
cm9lZF9hcnJheV9ieV9zaXplX2lubGluZShoZWFwX3JlZiwgc2l6ZSk7Cit9CisKK3ZvaWQqIGJt
YWxsb2NfdHJ5X2lzb19hbGxvY2F0ZV9hcnJheV9ieV9zaXplX3dpdGhfYWxpZ25tZW50KAorICAg
IHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KQor
eworICAgIHJldHVybiBibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfYXJyYXlfYnlfc2l6ZV93aXRo
X2FsaWdubWVudF9pbmxpbmUoaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCk7Cit9CisKK3ZvaWQq
IGJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5X2J5X3NpemVfd2l0aF9hbGlnbm1lbnQoCisgICAg
cGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCit7
CisgICAgcmV0dXJuIGJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5X2J5X3NpemVfd2l0aF9hbGln
bm1lbnRfaW5saW5lKGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpOworfQorCit2b2lkKiBibWFs
bG9jX3RyeV9pc29fcmVhbGxvY2F0ZV9hcnJheV9ieV9zaXplKHBhc19oZWFwX3JlZiogaGVhcF9y
ZWYsIHZvaWQqIHB0ciwgc2l6ZV90IHNpemUpCit7CisgICAgcmV0dXJuIGJtYWxsb2NfdHJ5X2lz
b19yZWFsbG9jYXRlX2FycmF5X2J5X3NpemVfaW5saW5lKGhlYXBfcmVmLCBwdHIsIHNpemUpOwor
fQorCit2b2lkKiBibWFsbG9jX2lzb19yZWFsbG9jYXRlX2FycmF5X2J5X3NpemUocGFzX2hlYXBf
cmVmKiBoZWFwX3JlZiwgdm9pZCogcHRyLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gYm1h
bGxvY19pc29fcmVhbGxvY2F0ZV9hcnJheV9ieV9zaXplX2lubGluZShoZWFwX3JlZiwgcHRyLCBz
aXplKTsKK30KKwordm9pZCogYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50
KHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCkKK3sKKyAgICByZXR1cm4gYm1h
bGxvY190cnlfaXNvX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50X2lubGluZShoZWFwX3JlZiwgY291
bnQpOworfQorCit2b2lkKiBibWFsbG9jX2lzb19hbGxvY2F0ZV9hcnJheV9ieV9jb3VudChwYXNf
aGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQpCit7CisgICAgcmV0dXJuIGJtYWxsb2Nf
aXNvX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50X2lubGluZShoZWFwX3JlZiwgY291bnQpOworfQor
Cit2b2lkKiBibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfYXJyYXlfYnlfY291bnRfd2l0aF9hbGln
bm1lbnQoCiAgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGNvdW50LCBzaXplX3Qg
YWxpZ25tZW50KQogewotICAgIHJldHVybiBibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfYXJyYXlf
d2l0aF9hbGlnbm1lbnRfaW5saW5lKGhlYXBfcmVmLCBjb3VudCwgYWxpZ25tZW50KTsKKyAgICBy
ZXR1cm4gYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50X3dpdGhfYWxpZ25t
ZW50X2lubGluZShoZWFwX3JlZiwgY291bnQsIGFsaWdubWVudCk7CiB9CiAKLXZvaWQqIGJtYWxs
b2NfaXNvX2FsbG9jYXRlX2FycmF5X3dpdGhfYWxpZ25tZW50KAordm9pZCogYm1hbGxvY19pc29f
YWxsb2NhdGVfYXJyYXlfYnlfY291bnRfd2l0aF9hbGlnbm1lbnQoCiAgICAgcGFzX2hlYXBfcmVm
KiBoZWFwX3JlZiwgc2l6ZV90IGNvdW50LCBzaXplX3QgYWxpZ25tZW50KQogewotICAgIHJldHVy
biBibWFsbG9jX2lzb19hbGxvY2F0ZV9hcnJheV93aXRoX2FsaWdubWVudF9pbmxpbmUoaGVhcF9y
ZWYsIGNvdW50LCBhbGlnbm1lbnQpOworICAgIHJldHVybiBibWFsbG9jX2lzb19hbGxvY2F0ZV9h
cnJheV9ieV9jb3VudF93aXRoX2FsaWdubWVudF9pbmxpbmUoaGVhcF9yZWYsIGNvdW50LCBhbGln
bm1lbnQpOworfQorCit2b2lkKiBibWFsbG9jX3RyeV9pc29fcmVhbGxvY2F0ZV9hcnJheV9ieV9j
b3VudChwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCB2b2lkKiBwdHIsIHNpemVfdCBjb3VudCkKK3sK
KyAgICByZXR1cm4gYm1hbGxvY190cnlfaXNvX3JlYWxsb2NhdGVfYXJyYXlfYnlfY291bnRfaW5s
aW5lKGhlYXBfcmVmLCBwdHIsIGNvdW50KTsKK30KKwordm9pZCogYm1hbGxvY19pc29fcmVhbGxv
Y2F0ZV9hcnJheV9ieV9jb3VudChwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCB2b2lkKiBwdHIsIHNp
emVfdCBjb3VudCkKK3sKKyAgICByZXR1cm4gYm1hbGxvY19pc29fcmVhbGxvY2F0ZV9hcnJheV9i
eV9jb3VudF9pbmxpbmUoaGVhcF9yZWYsIHB0ciwgY291bnQpOwogfQogCiBwYXNfaGVhcCogYm1h
bGxvY19oZWFwX3JlZl9nZXRfaGVhcChwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQpAQCAtMTMzLDYg
KzIxNSw3MiBAQCBwYXNfaGVhcCogYm1hbGxvY19oZWFwX3JlZl9nZXRfaGVhcChwYXNfCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAmYm1hbGxvY19oZWFwX2NvbmZpZywgJmJtYWxsb2NfdHlw
ZWRfcnVudGltZV9jb25maWcuYmFzZSk7CiB9CiAKK3ZvaWQqIGJtYWxsb2NfdHJ5X2FsbG9jYXRl
X2ZsZXhfd2l0aF9hbGlnbm1lbnRfY2FzdWFsKAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYq
IGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkKK3sKKyAgICByZXR1cm4g
KHZvaWQqKWJtYWxsb2NfdHJ5X2FsbG9jYXRlX2ZsZXhfaW1wbF9jYXN1YWxfY2FzZShoZWFwX3Jl
Ziwgc2l6ZSwgYWxpZ25tZW50KS5iZWdpbjsKK30KKwordm9pZCogYm1hbGxvY19hbGxvY2F0ZV9m
bGV4X3dpdGhfYWxpZ25tZW50X2Nhc3VhbCgKKyAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBo
ZWFwX3JlZiwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCit7CisgICAgcmV0dXJuICh2
b2lkKilibWFsbG9jX2FsbG9jYXRlX2ZsZXhfaW1wbF9jYXN1YWxfY2FzZShoZWFwX3JlZiwgc2l6
ZSwgYWxpZ25tZW50KS5iZWdpbjsKK30KKwordm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfZmxl
eChwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUpCit7CisgICAg
cmV0dXJuIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2ZsZXhfaW5saW5lKGhlYXBfcmVmLCBzaXplKTsK
K30KKwordm9pZCogYm1hbGxvY19hbGxvY2F0ZV9mbGV4KHBhc19wcmltaXRpdmVfaGVhcF9yZWYq
IGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV9m
bGV4X2lubGluZShoZWFwX3JlZiwgc2l6ZSk7Cit9CisKK3ZvaWQqIGJtYWxsb2NfdHJ5X2FsbG9j
YXRlX3plcm9lZF9mbGV4KHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qg
c2l6ZSkKK3sKKyAgICByZXR1cm4gYm1hbGxvY190cnlfYWxsb2NhdGVfemVyb2VkX2ZsZXhfaW5s
aW5lKGhlYXBfcmVmLCBzaXplKTsKK30KKwordm9pZCogYm1hbGxvY19hbGxvY2F0ZV96ZXJvZWRf
ZmxleChwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUpCit7Cisg
ICAgcmV0dXJuIGJtYWxsb2NfYWxsb2NhdGVfemVyb2VkX2ZsZXhfaW5saW5lKGhlYXBfcmVmLCBz
aXplKTsKK30KKwordm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfZmxleF93aXRoX2FsaWdubWVu
dCgKKyAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUsIHNp
emVfdCBhbGlnbm1lbnQpCit7CisgICAgcmV0dXJuIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2ZsZXhf
d2l0aF9hbGlnbm1lbnRfaW5saW5lKGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpOworfQorCit2
b2lkKiBibWFsbG9jX2FsbG9jYXRlX2ZsZXhfd2l0aF9hbGlnbm1lbnQoCisgICAgcGFzX3ByaW1p
dGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KQor
eworICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRlX2ZsZXhfd2l0aF9hbGlnbm1lbnRfaW5saW5l
KGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpOworfQorCit2b2lkKiBibWFsbG9jX3RyeV9yZWFs
bG9jYXRlX2ZsZXgocGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsIHZvaWQqIG9sZF9w
dHIsIHNpemVfdCBuZXdfc2l6ZSkKK3sKKyAgICByZXR1cm4gYm1hbGxvY190cnlfcmVhbGxvY2F0
ZV9mbGV4X2lubGluZShoZWFwX3JlZiwgb2xkX3B0ciwgbmV3X3NpemUpOworfQorCit2b2lkKiBi
bWFsbG9jX3JlYWxsb2NhdGVfZmxleChwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwg
dm9pZCogb2xkX3B0ciwgc2l6ZV90IG5ld19zaXplKQoreworICAgIHJldHVybiBibWFsbG9jX3Jl
YWxsb2NhdGVfZmxleF9pbmxpbmUoaGVhcF9yZWYsIG9sZF9wdHIsIG5ld19zaXplKTsKK30KKwor
UEFTX05FVkVSX0lOTElORSB2b2lkKiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0
aF9hbGlnbm1lbnRfY2FzdWFsKAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVm
LCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkKK3sKKyAgICByZXR1cm4gKHZvaWQqKWJt
YWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsX2Nhc3VhbF9jYXNlKGhlYXBfcmVmLCBz
aXplLCBhbGlnbm1lbnQpLmJlZ2luOworfQorCitQQVNfTkVWRVJfSU5MSU5FIHZvaWQqIGJtYWxs
b2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3dpdGhfYWxpZ25tZW50X2Nhc3VhbCgKKyAgICBwYXNfcHJp
bWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQp
Cit7CisgICAgcmV0dXJuICh2b2lkKilibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsX2Nh
c3VhbF9jYXNlKGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpLmJlZ2luOworfQorCiB2b2lkKiBi
bWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnkocGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVh
cF9yZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUp
CiB7CkBAIC0yMDEsNiArMzQ5LDE2IEBAIHBhc19oZWFwKiBibWFsbG9jX2ZvcmNlX2F1eGlsaWFy
eV9oZWFwX2kKICAgICAgICAgJmJtYWxsb2NfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2Us
IGJlZ2luLCBlbmQpOwogfQogCitzaXplX3QgYm1hbGxvY19oZWFwX3JlZl9nZXRfdHlwZV9zaXpl
KHBhc19oZWFwX3JlZiogaGVhcF9yZWYpCit7CisgICAgcmV0dXJuIEJNQUxMT0NfSEVBUF9DT05G
SUcuZ2V0X3R5cGVfc2l6ZShoZWFwX3JlZi0+dHlwZSk7Cit9CisKK3NpemVfdCBibWFsbG9jX2dl
dF9hbGxvY2F0aW9uX3NpemUodm9pZCogcHRyKQoreworICAgIHJldHVybiBwYXNfZ2V0X2FsbG9j
YXRpb25fc2l6ZShwdHIsIEJNQUxMT0NfSEVBUF9DT05GSUcpOworfQorCiAjZW5kaWYgLyogUEFT
X0VOQUJMRV9CTUFMTE9DICovCiAKICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmgJKHJl
dmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxs
b2NfaGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MiwxOSArNTIsNTAgQEAgUEFTX0FQSSB2b2lk
KiBibWFsbG9jX3RyeV9yZWFsbG9jYXRlKHZvaQogUEFTX0FQSSB2b2lkKiBibWFsbG9jX3JlYWxs
b2NhdGUodm9pZCogb2xkX3B0ciwgc2l6ZV90IG5ld19zaXplLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSk7CiAKLVBB
U19BUEkgdm9pZCogYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlKHBhc19oZWFwX3JlZiogaGVhcF9y
ZWYpOwotUEFTX0FQSSB2b2lkKiBibWFsbG9jX2lzb19hbGxvY2F0ZShwYXNfaGVhcF9yZWYqIGhl
YXBfcmVmKTsKK1BBU19CQVBJIHZvaWQqIGJtYWxsb2NfdHJ5X2lzb19hbGxvY2F0ZShwYXNfaGVh
cF9yZWYqIGhlYXBfcmVmKTsKK1BBU19CQVBJIHZvaWQqIGJtYWxsb2NfaXNvX2FsbG9jYXRlKHBh
c19oZWFwX3JlZiogaGVhcF9yZWYpOwogCi1QQVNfQVBJIHZvaWQqIGJtYWxsb2NfdHJ5X2lzb19h
bGxvY2F0ZV9hcnJheShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQpOwotUEFT
X0FQSSB2b2lkKiBibWFsbG9jX2lzb19hbGxvY2F0ZV9hcnJheShwYXNfaGVhcF9yZWYqIGhlYXBf
cmVmLCBzaXplX3QgY291bnQpOworUEFTX0JBUEkgdm9pZCogYm1hbGxvY190cnlfaXNvX2FsbG9j
YXRlX2FycmF5X2J5X3NpemUocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUpOwor
UEFTX0JBUEkgdm9pZCogYm1hbGxvY19pc29fYWxsb2NhdGVfYXJyYXlfYnlfc2l6ZShwYXNfaGVh
cF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSk7CiAKLVBBU19BUEkgdm9pZCogYm1hbGxvY190
cnlfaXNvX2FsbG9jYXRlX2FycmF5X3dpdGhfYWxpZ25tZW50KAorUEFTX0JBUEkgdm9pZCogYm1h
bGxvY190cnlfaXNvX2FsbG9jYXRlX3plcm9lZF9hcnJheV9ieV9zaXplKHBhc19oZWFwX3JlZiog
aGVhcF9yZWYsIHNpemVfdCBzaXplKTsKK1BBU19CQVBJIHZvaWQqIGJtYWxsb2NfaXNvX2FsbG9j
YXRlX3plcm9lZF9hcnJheV9ieV9zaXplKHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBz
aXplKTsKKworUEFTX0JBUEkgdm9pZCogYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2FycmF5X2J5
X3NpemVfd2l0aF9hbGlnbm1lbnQoCisgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90
IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpOworUEFTX0JBUEkgdm9pZCogYm1hbGxvY19pc29fYWxs
b2NhdGVfYXJyYXlfYnlfc2l6ZV93aXRoX2FsaWdubWVudCgKKyAgICBwYXNfaGVhcF9yZWYqIGhl
YXBfcmVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCk7CisKK1BBU19CQVBJIHZvaWQq
IGJtYWxsb2NfdHJ5X2lzb19yZWFsbG9jYXRlX2FycmF5X2J5X3NpemUocGFzX2hlYXBfcmVmKiBo
ZWFwX3JlZiwgdm9pZCogcHRyLCBzaXplX3Qgc2l6ZSk7CitQQVNfQkFQSSB2b2lkKiBibWFsbG9j
X2lzb19yZWFsbG9jYXRlX2FycmF5X2J5X3NpemUocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgdm9p
ZCogcHRyLCBzaXplX3Qgc2l6ZSk7CisKK1BBU19BUEkgdm9pZCogYm1hbGxvY190cnlfaXNvX2Fs
bG9jYXRlX2FycmF5X2J5X2NvdW50KHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3Vu
dCk7CitQQVNfQVBJIHZvaWQqIGJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50KHBh
c19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCk7CisKK1BBU19BUEkgdm9pZCogYm1h
bGxvY190cnlfaXNvX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50X3dpdGhfYWxpZ25tZW50KAogICAg
IHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdubWVudCk7
Ci1QQVNfQVBJIHZvaWQqIGJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5X3dpdGhfYWxpZ25tZW50
KAorUEFTX0FQSSB2b2lkKiBibWFsbG9jX2lzb19hbGxvY2F0ZV9hcnJheV9ieV9jb3VudF93aXRo
X2FsaWdubWVudCgKICAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQsIHNp
emVfdCBhbGlnbm1lbnQpOwogCitQQVNfQVBJIHZvaWQqIGJtYWxsb2NfdHJ5X2lzb19yZWFsbG9j
YXRlX2FycmF5X2J5X2NvdW50KHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHZvaWQqIHB0ciwgc2l6
ZV90IGNvdW50KTsKK1BBU19BUEkgdm9pZCogYm1hbGxvY19pc29fcmVhbGxvY2F0ZV9hcnJheV9i
eV9jb3VudChwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCB2b2lkKiBwdHIsIHNpemVfdCBjb3VudCk7
CisKIFBBU19BUEkgcGFzX2hlYXAqIGJtYWxsb2NfaGVhcF9yZWZfZ2V0X2hlYXAocGFzX2hlYXBf
cmVmKiBoZWFwX3JlZik7CiAKK1BBU19CQVBJIHZvaWQqIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2Zs
ZXgocGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBzaXplKTsKK1BBU19C
QVBJIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGVfZmxleChwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBo
ZWFwX3JlZiwgc2l6ZV90IHNpemUpOworCitQQVNfQkFQSSB2b2lkKiBibWFsbG9jX3RyeV9hbGxv
Y2F0ZV96ZXJvZWRfZmxleChwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90
IHNpemUpOworUEFTX0JBUEkgdm9pZCogYm1hbGxvY19hbGxvY2F0ZV96ZXJvZWRfZmxleChwYXNf
cHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUpOworCitQQVNfQVBJIHZv
aWQqIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2ZsZXhfd2l0aF9hbGlnbm1lbnQoCisgICAgcGFzX3By
aW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50
KTsKK1BBU19BUEkgdm9pZCogYm1hbGxvY19hbGxvY2F0ZV9mbGV4X3dpdGhfYWxpZ25tZW50KAor
ICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90
IGFsaWdubWVudCk7CisKK1BBU19CQVBJIHZvaWQqIGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfZmxl
eChwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgdm9pZCogb2xkX3B0ciwgc2l6ZV90
IG5ld19zaXplKTsKK1BBU19CQVBJIHZvaWQqIGJtYWxsb2NfcmVhbGxvY2F0ZV9mbGV4KHBhc19w
cmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLCB2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3Np
emUpOworCiBQQVNfQVBJIHZvaWQqIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeShwYXNf
cHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKTsKIFBBU19BUEkgdm9pZCogYm1hbGxvY19h
bGxvY2F0ZV9hdXhpbGlhcnkocGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCkBAIC05
Nyw2ICsxMjgsOSBAQCBQQVNfQVBJIHBhc19oZWFwKiBibWFsbG9jX2ZvcmNlX2F1eGlsaWFyCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnRwdHJfdCBiZWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGVuZCk7CiAK
K1BBU19CQVBJIHNpemVfdCBibWFsbG9jX2hlYXBfcmVmX2dldF90eXBlX3NpemUocGFzX2hlYXBf
cmVmKiBoZWFwX3JlZik7CitQQVNfQkFQSSBzaXplX3QgYm1hbGxvY19nZXRfYWxsb2NhdGlvbl9z
aXplKHZvaWQqIHB0cik7CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQQVNfRU5B
QkxFX0JNQUxMT0MgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2Jt
YWxsb2NfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9jb25maWcuaAkod29y
a2luZyBjb3B5KQpAQCAtMzAsOCArMzAsOCBAQAogCiAjaWYgUEFTX0VOQUJMRV9CTUFMTE9DCiAK
KyNpbmNsdWRlICJibWFsbG9jX3R5cGUuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9jb25maWdfdXRp
bHMuaCIKLSNpbmNsdWRlICJwYXNfc2ltcGxlX3R5cGUuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9D
OwogCkBAIC00Myw4ICs0Myw5IEBAIFBBU19BUEkgdm9pZCBibWFsbG9jX2hlYXBfY29uZmlnX2Fj
dGl2YXQKICNkZWZpbmUgQk1BTExPQ19IRUFQX0NPTkZJRyBQQVNfQkFTSUNfSEVBUF9DT05GSUco
IFwKICAgICBibWFsbG9jLCBcCiAgICAgLmFjdGl2YXRlID0gYm1hbGxvY19oZWFwX2NvbmZpZ19h
Y3RpdmF0ZSwgXAotICAgIC5nZXRfdHlwZV9zaXplID0gcGFzX3NpbXBsZV90eXBlX2FzX2hlYXBf
dHlwZV9nZXRfdHlwZV9zaXplLCBcCi0gICAgLmdldF90eXBlX2FsaWdubWVudCA9IHBhc19zaW1w
bGVfdHlwZV9hc19oZWFwX3R5cGVfZ2V0X3R5cGVfYWxpZ25tZW50LCBcCisgICAgLmdldF90eXBl
X3NpemUgPSBibWFsbG9jX3R5cGVfYXNfaGVhcF90eXBlX2dldF90eXBlX3NpemUsIFwKKyAgICAu
Z2V0X3R5cGVfYWxpZ25tZW50ID0gYm1hbGxvY190eXBlX2FzX2hlYXBfdHlwZV9nZXRfdHlwZV9h
bGlnbm1lbnQsIFwKKyAgICAuZHVtcF90eXBlID0gYm1hbGxvY190eXBlX2FzX2hlYXBfdHlwZV9k
dW1wLCBcCiAgICAgLmNoZWNrX2RlYWxsb2NhdGlvbiA9IGZhbHNlLCBcCiAgICAgLnNtYWxsX3Nl
Z3JlZ2F0ZWRfbWluX2FsaWduX3NoaWZ0ID0gQk1BTExPQ19NSU5BTElHTl9TSElGVCwgXAogICAg
IC5zbWFsbF9zZWdyZWdhdGVkX3NoYXJpbmdfc2hpZnQgPSBQQVNfU01BTExfU0hBUklOR19TSElG
VCwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFw
X2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9ibWFsbG9jX2hlYXBfaW5saW5lcy5oCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfaW5saW5lcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC04Miw5ICs4MiwxNiBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUMo
CiAgICAgJmJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2lu
dHJpbnNpY19oZWFwX2lzX25vdF9kZXNpZ25hdGVkKTsKIAorUEFTX0FQSSB2b2lkKiBibWFsbG9j
X3RyeV9hbGxvY2F0ZV9jYXN1YWwoc2l6ZV90IHNpemUpOworUEFTX0FQSSB2b2lkKiBibWFsbG9j
X2FsbG9jYXRlX2Nhc3VhbChzaXplX3Qgc2l6ZSk7CisKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSB2b2lkKiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9pbmxpbmUoc2l6ZV90IHNpemUpCiB7Ci0gICAg
cmV0dXJuICh2b2lkKilibWFsbG9jX3RyeV9hbGxvY2F0ZV9pbXBsKHNpemUsIDEpLmJlZ2luOwor
ICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgcmVzdWx0ID0gYm1hbGxvY190
cnlfYWxsb2NhdGVfaW1wbF9pbmxpbmVfb25seShzaXplLCAxKTsKKyAgICBpZiAoUEFTX0xJS0VM
WShyZXN1bHQuZGlkX3N1Y2NlZWQpKQorICAgICAgICByZXR1cm4gKHZvaWQqKXJlc3VsdC5iZWdp
bjsKKyAgICByZXR1cm4gYm1hbGxvY190cnlfYWxsb2NhdGVfY2FzdWFsKHNpemUpOwogfQogCiBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKQEAgLTEwMCwxNSArMTA3LDEzIEBAIHN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3QKICAgICAgICAgc2l6ZSkuYmVnaW47
CiB9CiAKLVBBU19BUEkgdm9pZCogYm1hbGxvY19hbGxvY2F0ZV9zbG93KHNpemVfdCBzaXplKTsK
LQogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGVfaW5saW5l
KHNpemVfdCBzaXplKQogewogICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CiAgICAg
cmVzdWx0ID0gYm1hbGxvY19hbGxvY2F0ZV9pbXBsX2lubGluZV9vbmx5KHNpemUsIDEpOwogICAg
IGlmIChQQVNfTElLRUxZKHJlc3VsdC5kaWRfc3VjY2VlZCkpCiAgICAgICAgIHJldHVybiAodm9p
ZCopcmVzdWx0LmJlZ2luOwotICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRlX3Nsb3coc2l6ZSk7
CisgICAgcmV0dXJuIGJtYWxsb2NfYWxsb2NhdGVfY2FzdWFsKHNpemUpOwogfQogCiBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKQEAgLTE1OSwxMSArMTY0LDYgQEAgUEFTX0NSRUFURV9U
UllfQUxMT0NBVEUoCiAgICAgJmJtYWxsb2NfYWxsb2NhdG9yX2NvdW50cywKICAgICBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkpOwogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9p
ZCogYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2lubGluZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVm
KQotewotICAgIHJldHVybiBibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfaW1wbChoZWFwX3JlZiku
cHRyOwotfQotCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURSgKICAgICBibWFsbG9jX2lzb19hbGxv
Y2F0ZV9pbXBsLAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCkBAIC0xNzEsOSArMTcxLDI1IEBA
IFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKAogICAgICZibWFsbG9jX2FsbG9jYXRvcl9jb3VudHMs
CiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKIAorUEFTX0FQSSB2
b2lkKiBibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfY2FzdWFsKHBhc19oZWFwX3JlZiogaGVhcF9y
ZWYpOworUEFTX0FQSSB2b2lkKiBibWFsbG9jX2lzb19hbGxvY2F0ZV9jYXN1YWwocGFzX2hlYXBf
cmVmKiBoZWFwX3JlZik7CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9j
X3RyeV9pc29fYWxsb2NhdGVfaW5saW5lKHBhc19oZWFwX3JlZiogaGVhcF9yZWYpCit7CisgICAg
cGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKKyAgICByZXN1bHQgPSBibWFsbG9jX3RyeV9p
c29fYWxsb2NhdGVfaW1wbF9pbmxpbmVfb25seShoZWFwX3JlZik7CisgICAgaWYgKFBBU19MSUtF
TFkocmVzdWx0LmRpZF9zdWNjZWVkKSkKKyAgICAgICAgcmV0dXJuICh2b2lkKilyZXN1bHQuYmVn
aW47CisgICAgcmV0dXJuIGJtYWxsb2NfdHJ5X2lzb19hbGxvY2F0ZV9jYXN1YWwoaGVhcF9yZWYp
OworfQorCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19pc29fYWxsb2Nh
dGVfaW5saW5lKHBhc19oZWFwX3JlZiogaGVhcF9yZWYpCiB7Ci0gICAgcmV0dXJuIGJtYWxsb2Nf
aXNvX2FsbG9jYXRlX2ltcGwoaGVhcF9yZWYpLnB0cjsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1
bHQgcmVzdWx0OworICAgIHJlc3VsdCA9IGJtYWxsb2NfaXNvX2FsbG9jYXRlX2ltcGxfaW5saW5l
X29ubHkoaGVhcF9yZWYpOworICAgIGlmIChQQVNfTElLRUxZKHJlc3VsdC5kaWRfc3VjY2VlZCkp
CisgICAgICAgIHJldHVybiAodm9pZCopcmVzdWx0LmJlZ2luOworICAgIHJldHVybiBibWFsbG9j
X2lzb19hbGxvY2F0ZV9jYXN1YWwoaGVhcF9yZWYpOwogfQogCiBQQVNfQ1JFQVRFX1RSWV9BTExP
Q0FURV9BUlJBWSgKQEAgLTE4Myw1MCArMTk5LDI2NCBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FU
RV9BUlJBWSgKICAgICAmYm1hbGxvY19hbGxvY2F0b3JfY291bnRzLAogICAgIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdF9pZGVudGl0eSk7CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBi
bWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfYXJyYXlfaW5saW5lKAorUEFTX0NSRUFURV9UUllfQUxM
T0NBVEVfQVJSQVkoCisgICAgYm1hbGxvY19pc29fYWxsb2NhdGVfYXJyYXlfaW1wbCwKKyAgICBC
TUFMTE9DX0hFQVBfQ09ORklHLAorICAgICZibWFsbG9jX3R5cGVkX3J1bnRpbWVfY29uZmlnLmJh
c2UsCisgICAgJmJtYWxsb2NfYWxsb2NhdG9yX2NvdW50cywKKyAgICBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHRfY3Jhc2hfb25fZXJyb3IpOworCitQQVNfQVBJIHZvaWQqIGJtYWxsb2NfdHJ5X2FsbG9j
YXRlX2FycmF5X2J5X3NpemVfd2l0aF9hbGlnbm1lbnRfY2FzdWFsKAorICAgIHBhc19oZWFwX3Jl
ZiogaGVhcF9yZWYsIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KTsKK1BBU19BUEkgdm9p
ZCogYm1hbGxvY19hbGxvY2F0ZV9hcnJheV9ieV9zaXplX3dpdGhfYWxpZ25tZW50X2Nhc3VhbCgK
KyAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVu
dCk7CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3RyeV9pc29fYWxs
b2NhdGVfYXJyYXlfYnlfc2l6ZV9pbmxpbmUoCisgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwg
c2l6ZV90IHNpemUpCit7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKKyAgICBy
ZXN1bHQgPSBibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfYXJyYXlfaW1wbF9pbmxpbmVfb25seSho
ZWFwX3JlZiwgc2l6ZSwgMSk7CisgICAgaWYgKFBBU19MSUtFTFkocmVzdWx0LmRpZF9zdWNjZWVk
KSkKKyAgICAgICAgcmV0dXJuICh2b2lkKilyZXN1bHQuYmVnaW47CisgICAgcmV0dXJuIGJtYWxs
b2NfdHJ5X2FsbG9jYXRlX2FycmF5X2J5X3NpemVfd2l0aF9hbGlnbm1lbnRfY2FzdWFsKGhlYXBf
cmVmLCBzaXplLCAxKTsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxs
b2NfdHJ5X2lzb19hbGxvY2F0ZV96ZXJvZWRfYXJyYXlfYnlfc2l6ZV9pbmxpbmUoCisgICAgcGFz
X2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUpCit7CisgICAgcmV0dXJuICh2b2lkKilw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKKyAgICAgICAgYm1hbGxvY190cnlfaXNvX2FsbG9j
YXRlX2FycmF5X2ltcGxfYnlfc2l6ZShoZWFwX3JlZiwgc2l6ZSwgMSksCisgICAgICAgIHNpemUp
LmJlZ2luOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190cnlf
aXNvX2FsbG9jYXRlX2FycmF5X2J5X3NpemVfd2l0aF9hbGlnbm1lbnRfaW5saW5lKAorICAgIHBh
c19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KQorewor
ICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgcmVzdWx0ID0gYm1hbGxvY190
cnlfaXNvX2FsbG9jYXRlX2FycmF5X2ltcGxfaW5saW5lX29ubHkoaGVhcF9yZWYsIHNpemUsIGFs
aWdubWVudCk7CisgICAgaWYgKFBBU19MSUtFTFkocmVzdWx0LmRpZF9zdWNjZWVkKSkKKyAgICAg
ICAgcmV0dXJuICh2b2lkKilyZXN1bHQuYmVnaW47CisgICAgcmV0dXJuIGJtYWxsb2NfdHJ5X2Fs
bG9jYXRlX2FycmF5X2J5X3NpemVfd2l0aF9hbGlnbm1lbnRfY2FzdWFsKGhlYXBfcmVmLCBzaXpl
LCBhbGlnbm1lbnQpOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxv
Y190cnlfaXNvX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50X2lubGluZSgKICAgICBwYXNfaGVhcF9y
ZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQpCiB7Ci0gICAgcmV0dXJuIGJtYWxsb2NfdHJ5X2lz
b19hbGxvY2F0ZV9hcnJheV9pbXBsKGhlYXBfcmVmLCBjb3VudCwgMSkucHRyOworICAgIHJldHVy
biAodm9pZCopYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2FycmF5X2ltcGxfYnlfY291bnQoaGVh
cF9yZWYsIGNvdW50LCAxKS5iZWdpbjsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZv
aWQqIGJtYWxsb2NfdHJ5X2lzb19hbGxvY2F0ZV9hcnJheV93aXRoX2FsaWdubWVudF9pbmxpbmUo
CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190cnlfaXNvX2FsbG9jYXRl
X2FycmF5X2J5X2NvdW50X3dpdGhfYWxpZ25tZW50X2lubGluZSgKICAgICBwYXNfaGVhcF9yZWYq
IGhlYXBfcmVmLCBzaXplX3QgY291bnQsIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJu
IGJtYWxsb2NfdHJ5X2lzb19hbGxvY2F0ZV9hcnJheV9pbXBsKGhlYXBfcmVmLCBjb3VudCwgYWxp
Z25tZW50KS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVf
YXJyYXlfaW1wbF9ieV9jb3VudChoZWFwX3JlZiwgY291bnQsIGFsaWdubWVudCkuYmVnaW47CiB9
CiAKLVBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0FSUkFZKAotICAgIGJtYWxsb2NfaXNvX2FsbG9j
YXRlX2FycmF5X2ltcGwsCi0gICAgQk1BTExPQ19IRUFQX0NPTkZJRywKLSAgICAmYm1hbGxvY190
eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAotICAgICZibWFsbG9jX2FsbG9jYXRvcl9jb3VudHMs
Ci0gICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKK3N0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX2lzb19hbGxvY2F0ZV9hcnJheV9ieV9zaXplX2lu
bGluZSgKKyAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBw
YXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OworICAgIHJlc3VsdCA9IGJtYWxsb2NfaXNvX2Fs
bG9jYXRlX2FycmF5X2ltcGxfaW5saW5lX29ubHkoaGVhcF9yZWYsIHNpemUsIDEpOworICAgIGlm
IChQQVNfTElLRUxZKHJlc3VsdC5kaWRfc3VjY2VlZCkpCisgICAgICAgIHJldHVybiAodm9pZCop
cmVzdWx0LmJlZ2luOworICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRlX2FycmF5X2J5X3NpemVf
d2l0aF9hbGlnbm1lbnRfY2FzdWFsKGhlYXBfcmVmLCBzaXplLCAxKTsKK30KKworc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfaXNvX2FsbG9jYXRlX3plcm9lZF9hcnJheV9i
eV9zaXplX2lubGluZSgKKyAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSkK
K3sKKyAgICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgICAg
ICBibWFsbG9jX2lzb19hbGxvY2F0ZV9hcnJheV9pbXBsX2J5X3NpemUoaGVhcF9yZWYsIHNpemUs
IDEpLAorICAgICAgICBzaXplKS5iZWdpbjsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHZvaWQqIGJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5X2J5X3NpemVfd2l0aF9hbGlnbm1lbnRf
aW5saW5lKAorICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBzaXplLCBzaXplX3Qg
YWxpZ25tZW50KQoreworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgcmVz
dWx0ID0gYm1hbGxvY19pc29fYWxsb2NhdGVfYXJyYXlfaW1wbF9pbmxpbmVfb25seShoZWFwX3Jl
Ziwgc2l6ZSwgYWxpZ25tZW50KTsKKyAgICBpZiAoUEFTX0xJS0VMWShyZXN1bHQuZGlkX3N1Y2Nl
ZWQpKQorICAgICAgICByZXR1cm4gKHZvaWQqKXJlc3VsdC5iZWdpbjsKKyAgICByZXR1cm4gYm1h
bGxvY19hbGxvY2F0ZV9hcnJheV9ieV9zaXplX3dpdGhfYWxpZ25tZW50X2Nhc3VhbChoZWFwX3Jl
Ziwgc2l6ZSwgYWxpZ25tZW50KTsKK30KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQq
IGJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5X2lubGluZSgKK3N0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkKiBibWFsbG9jX2lzb19hbGxvY2F0ZV9hcnJheV9ieV9jb3VudF9pbmxpbmUoCiAg
ICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGNvdW50KQogewotICAgIHJldHVybiBi
bWFsbG9jX2lzb19hbGxvY2F0ZV9hcnJheV9pbXBsKGhlYXBfcmVmLCBjb3VudCwgMSkucHRyOwor
ICAgIHJldHVybiAodm9pZCopYm1hbGxvY19pc29fYWxsb2NhdGVfYXJyYXlfaW1wbF9ieV9jb3Vu
dChoZWFwX3JlZiwgY291bnQsIDEpLmJlZ2luOwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgdm9pZCogYm1hbGxvY19pc29fYWxsb2NhdGVfYXJyYXlfd2l0aF9hbGlnbm1lbnRfaW5saW5l
KAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfaXNvX2FsbG9jYXRlX2Fy
cmF5X2J5X2NvdW50X3dpdGhfYWxpZ25tZW50X2lubGluZSgKICAgICBwYXNfaGVhcF9yZWYqIGhl
YXBfcmVmLCBzaXplX3QgY291bnQsIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGJt
YWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5X2ltcGwoaGVhcF9yZWYsIGNvdW50LCBhbGlnbm1lbnQp
LnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5X2ltcGxf
YnlfY291bnQoaGVhcF9yZWYsIGNvdW50LCBhbGlnbm1lbnQpLmJlZ2luOworfQorCitzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190cnlfaXNvX3JlYWxsb2NhdGVfYXJyYXlf
Ynlfc2l6ZV9pbmxpbmUoCisgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgdm9pZCogcHRyLCBz
aXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9hcnJh
eV9ieV9zaXplKAorICAgICAgICBwdHIsCisgICAgICAgIGhlYXBfcmVmLAorICAgICAgICBzaXpl
LAorICAgICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAorICAgICAgICBibWFsbG9jX3RyeV9pc29f
YWxsb2NhdGVfYXJyYXlfaW1wbF9mb3JfcmVhbGxvYywKKyAgICAgICAgJmJtYWxsb2NfdHlwZWRf
cnVudGltZV9jb25maWcuYmFzZSwKKyAgICAgICAgcGFzX3JlYWxsb2NhdGVfZGlzYWxsb3dfaGVh
cF90ZWxlcG9ydCwKKyAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9pZl9zdWNjZXNzZnVsKS5i
ZWdpbjsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfaXNvX3Jl
YWxsb2NhdGVfYXJyYXlfYnlfc2l6ZV9pbmxpbmUoCisgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3Jl
Ziwgdm9pZCogcHRyLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlf
cmVhbGxvY2F0ZV9hcnJheV9ieV9zaXplKAorICAgICAgICBwdHIsCisgICAgICAgIGhlYXBfcmVm
LAorICAgICAgICBzaXplLAorICAgICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAorICAgICAgICBi
bWFsbG9jX2lzb19hbGxvY2F0ZV9hcnJheV9pbXBsX2Zvcl9yZWFsbG9jLAorICAgICAgICAmYm1h
bGxvY190eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAorICAgICAgICBwYXNfcmVhbGxvY2F0ZV9k
aXNhbGxvd19oZWFwX3RlbGVwb3J0LAorICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX2lmX3N1
Y2Nlc3NmdWwpLmJlZ2luOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1h
bGxvY190cnlfaXNvX3JlYWxsb2NhdGVfYXJyYXlfYnlfY291bnRfaW5saW5lKAorICAgIHBhc19o
ZWFwX3JlZiogaGVhcF9yZWYsIHZvaWQqIHB0ciwgc2l6ZV90IGNvdW50KQoreworICAgIHJldHVy
biAodm9pZCopcGFzX3RyeV9yZWFsbG9jYXRlX2FycmF5X2J5X2NvdW50KAorICAgICAgICBwdHIs
CisgICAgICAgIGhlYXBfcmVmLAorICAgICAgICBjb3VudCwKKyAgICAgICAgQk1BTExPQ19IRUFQ
X0NPTkZJRywKKyAgICAgICAgYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2FycmF5X2ltcGxfZm9y
X3JlYWxsb2MsCisgICAgICAgICZibWFsbG9jX3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2UsCisg
ICAgICAgIHBhc19yZWFsbG9jYXRlX2Rpc2FsbG93X2hlYXBfdGVsZXBvcnQsCisgICAgICAgIHBh
c19yZWFsbG9jYXRlX2ZyZWVfaWZfc3VjY2Vzc2Z1bCkuYmVnaW47Cit9CisKK3N0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX2lzb19yZWFsbG9jYXRlX2FycmF5X2J5X2NvdW50
X2lubGluZSgKKyAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCB2b2lkKiBwdHIsIHNpemVfdCBj
b3VudCkKK3sKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9hcnJheV9ieV9j
b3VudCgKKyAgICAgICAgcHRyLAorICAgICAgICBoZWFwX3JlZiwKKyAgICAgICAgY291bnQsCisg
ICAgICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCisgICAgICAgIGJtYWxsb2NfaXNvX2FsbG9jYXRl
X2FycmF5X2ltcGxfZm9yX3JlYWxsb2MsCisgICAgICAgICZibWFsbG9jX3R5cGVkX3J1bnRpbWVf
Y29uZmlnLmJhc2UsCisgICAgICAgIHBhc19yZWFsbG9jYXRlX2Rpc2FsbG93X2hlYXBfdGVsZXBv
cnQsCisgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfaWZfc3VjY2Vzc2Z1bCkuYmVnaW47CiB9
CiAKIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX1BSSU1JVElWRSgKLSAgICBibWFsbG9jX3RyeV9h
bGxvY2F0ZV9hdXhpbGlhcnlfaW1wbCwKKyAgICBibWFsbG9jX3RyeV9hbGxvY2F0ZV9mbGV4X2lt
cGwsCiAgICAgQk1BTExPQ19IRUFQX0NPTkZJRywKLSAgICAmYm1hbGxvY19wcmltaXRpdmVfcnVu
dGltZV9jb25maWcuYmFzZSwKKyAgICAmYm1hbGxvY19mbGV4X3J1bnRpbWVfY29uZmlnLmJhc2Us
CiAgICAgJmJtYWxsb2NfYWxsb2NhdG9yX2NvdW50cywKICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1
bHRfaWRlbnRpdHkpOwogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190
cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X2lubGluZShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFw
X3JlZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQorUEFTX0NSRUFURV9UUllfQUxMT0NBVEVf
UFJJTUlUSVZFKAorICAgIGJtYWxsb2NfYWxsb2NhdGVfZmxleF9pbXBsLAorICAgIEJNQUxMT0Nf
SEVBUF9DT05GSUcsCisgICAgJmJtYWxsb2NfZmxleF9ydW50aW1lX2NvbmZpZy5iYXNlLAorICAg
ICZibWFsbG9jX2FsbG9jYXRvcl9jb3VudHMsCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2Ny
YXNoX29uX2Vycm9yKTsKKworUEFTX0FQSSB2b2lkKiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9mbGV4
X3dpdGhfYWxpZ25tZW50X2Nhc3VhbCgKKyAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFw
X3JlZiwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpOworUEFTX0FQSSB2b2lkKiBibWFs
bG9jX2FsbG9jYXRlX2ZsZXhfd2l0aF9hbGlnbm1lbnRfY2FzdWFsKAorICAgIHBhc19wcmltaXRp
dmVfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCk7CisK
K3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9mbGV4
X2lubGluZSgKKyAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNp
emUpCit7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKKyAgICByZXN1bHQgPSBi
bWFsbG9jX3RyeV9hbGxvY2F0ZV9mbGV4X2ltcGxfaW5saW5lX29ubHkoaGVhcF9yZWYsIHNpemUs
IDEpOworICAgIGlmIChQQVNfTElLRUxZKHJlc3VsdC5kaWRfc3VjY2VlZCkpCisgICAgICAgIHJl
dHVybiAodm9pZCopcmVzdWx0LmJlZ2luOworICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0
ZV9mbGV4X3dpdGhfYWxpZ25tZW50X2Nhc3VhbChoZWFwX3JlZiwgc2l6ZSwgMSk7Cit9CisKK3N0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX2FsbG9jYXRlX2ZsZXhfaW5saW5l
KAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSkKK3sK
KyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OworICAgIHJlc3VsdCA9IGJtYWxsb2Nf
YWxsb2NhdGVfZmxleF9pbXBsX2lubGluZV9vbmx5KGhlYXBfcmVmLCBzaXplLCAxKTsKKyAgICBp
ZiAoUEFTX0xJS0VMWShyZXN1bHQuZGlkX3N1Y2NlZWQpKQorICAgICAgICByZXR1cm4gKHZvaWQq
KXJlc3VsdC5iZWdpbjsKKyAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV9mbGV4X3dpdGhfYWxp
Z25tZW50X2Nhc3VhbChoZWFwX3JlZiwgc2l6ZSwgMSk7Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB2b2lkKiBibWFsbG9jX3RyeV9hbGxvY2F0ZV96ZXJvZWRfZmxleF9pbmxpbmUoCisg
ICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBzaXplKQoreworICAg
IHJldHVybiAodm9pZCopcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisgICAgICAgIGJtYWxs
b2NfdHJ5X2FsbG9jYXRlX2ZsZXhfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSksCisgICAgICAgIHNp
emUpLmJlZ2luOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19h
bGxvY2F0ZV96ZXJvZWRfZmxleF9pbmxpbmUoCisgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiog
aGVhcF9yZWYsIHNpemVfdCBzaXplKQoreworICAgIHJldHVybiAodm9pZCopcGFzX2FsbG9jYXRp
b25fcmVzdWx0X3plcm8oCisgICAgICAgIGJtYWxsb2NfYWxsb2NhdGVfZmxleF9pbXBsKGhlYXBf
cmVmLCBzaXplLCAxKSwKKyAgICAgICAgc2l6ZSkuYmVnaW47Cit9CisKK3N0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9mbGV4X3dpdGhfYWxpZ25tZW50
X2lubGluZSgKKyAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNp
emUsIHNpemVfdCBhbGlnbm1lbnQpCit7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3Vs
dDsKKyAgICByZXN1bHQgPSBibWFsbG9jX3RyeV9hbGxvY2F0ZV9mbGV4X2ltcGxfaW5saW5lX29u
bHkoaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCk7CisgICAgaWYgKFBBU19MSUtFTFkocmVzdWx0
LmRpZF9zdWNjZWVkKSkKKyAgICAgICAgcmV0dXJuICh2b2lkKilyZXN1bHQuYmVnaW47CisgICAg
cmV0dXJuIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2ZsZXhfd2l0aF9hbGlnbm1lbnRfY2FzdWFsKGhl
YXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dm9pZCogYm1hbGxvY19hbGxvY2F0ZV9mbGV4X3dpdGhfYWxpZ25tZW50X2lubGluZSgKKyAgICBw
YXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGln
bm1lbnQpCit7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKKyAgICByZXN1bHQg
PSBibWFsbG9jX2FsbG9jYXRlX2ZsZXhfaW1wbF9pbmxpbmVfb25seShoZWFwX3JlZiwgc2l6ZSwg
YWxpZ25tZW50KTsKKyAgICBpZiAoUEFTX0xJS0VMWShyZXN1bHQuZGlkX3N1Y2NlZWQpKQorICAg
ICAgICByZXR1cm4gKHZvaWQqKXJlc3VsdC5iZWdpbjsKKyAgICByZXR1cm4gYm1hbGxvY19hbGxv
Y2F0ZV9mbGV4X3dpdGhfYWxpZ25tZW50X2Nhc3VhbChoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50
KTsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfdHJ5X3JlYWxs
b2NhdGVfZmxleF9pbmxpbmUoCisgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYs
IHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSkKIHsKLSAgICByZXR1cm4gKHZvaWQqKWJt
YWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXplLCAxKS5iZWdp
bjsKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCisgICAg
ICAgIG9sZF9wdHIsCisgICAgICAgIGhlYXBfcmVmLAorICAgICAgICBuZXdfc2l6ZSwKKyAgICAg
ICAgQk1BTExPQ19IRUFQX0NPTkZJRywKKyAgICAgICAgYm1hbGxvY190cnlfYWxsb2NhdGVfZmxl
eF9pbXBsX2Zvcl9yZWFsbG9jLAorICAgICAgICAmYm1hbGxvY19mbGV4X3J1bnRpbWVfY29uZmln
LmJhc2UsCisgICAgICAgIHBhc19yZWFsbG9jYXRlX2Rpc2FsbG93X2hlYXBfdGVsZXBvcnQsCisg
ICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfaWZfc3VjY2Vzc2Z1bCkuYmVnaW47CiB9CiAKK3N0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3JlYWxsb2NhdGVfZmxleF9pbmxp
bmUoCisgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsIHZvaWQqIG9sZF9wdHIs
IHNpemVfdCBuZXdfc2l6ZSkKK3sKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0
ZV9wcmltaXRpdmUoCisgICAgICAgIG9sZF9wdHIsCisgICAgICAgIGhlYXBfcmVmLAorICAgICAg
ICBuZXdfc2l6ZSwKKyAgICAgICAgQk1BTExPQ19IRUFQX0NPTkZJRywKKyAgICAgICAgYm1hbGxv
Y19hbGxvY2F0ZV9mbGV4X2ltcGxfZm9yX3JlYWxsb2MsCisgICAgICAgICZibWFsbG9jX2ZsZXhf
cnVudGltZV9jb25maWcuYmFzZSwKKyAgICAgICAgcGFzX3JlYWxsb2NhdGVfZGlzYWxsb3dfaGVh
cF90ZWxlcG9ydCwKKyAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9pZl9zdWNjZXNzZnVsKS5i
ZWdpbjsKK30KKworUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfUFJJTUlUSVZFKAorICAgIGJtYWxs
b2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsLAorICAgIEJNQUxMT0NfSEVBUF9DT05GSUcs
CisgICAgJmJtYWxsb2NfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCisgICAgJmJtYWxs
b2NfYWxsb2NhdG9yX2NvdW50cywKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkp
OworCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9QUklNSVRJVkUoCiAgICAgYm1hbGxvY19hbGxv
Y2F0ZV9hdXhpbGlhcnlfaW1wbCwKICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLApAQCAtMjM0LDEw
ICs0NjQsMjkgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfUFJJTUlUSVZFKAogICAgICZibWFs
bG9jX2FsbG9jYXRvcl9jb3VudHMsCiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29u
X2Vycm9yKTsKIAorUEFTX0FQSSB2b2lkKiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlf
d2l0aF9hbGlnbm1lbnRfY2FzdWFsKAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBf
cmVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCk7CitQQVNfQVBJIHZvaWQqIGJtYWxs
b2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3dpdGhfYWxpZ25tZW50X2Nhc3VhbCgKKyAgICBwYXNfcHJp
bWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQp
OworCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVf
YXV4aWxpYXJ5X2lubGluZShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBzaXplKQoreworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7
CisgICAgcmVzdWx0ID0gYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X2ltcGxfaW5saW5l
X29ubHkoaGVhcF9yZWYsIHNpemUsIDEpOworICAgIGlmIChQQVNfTElLRUxZKHJlc3VsdC5kaWRf
c3VjY2VlZCkpCisgICAgICAgIHJldHVybiAodm9pZCopcmVzdWx0LmJlZ2luOworICAgIHJldHVy
biBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9hbGlnbm1lbnRfY2FzdWFsKGhl
YXBfcmVmLCBzaXplLCAxKTsKK30KKwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJt
YWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X2lubGluZShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBo
ZWFwX3JlZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuICh2b2lkKilibWFs
bG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXplLCAxKS5iZWdpbjsKKyAg
ICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OworICAgIHJlc3VsdCA9IGJtYWxsb2NfYWxs
b2NhdGVfYXV4aWxpYXJ5X2ltcGxfaW5saW5lX29ubHkoaGVhcF9yZWYsIHNpemUsIDEpOworICAg
IGlmIChQQVNfTElLRUxZKHJlc3VsdC5kaWRfc3VjY2VlZCkpCisgICAgICAgIHJldHVybiAodm9p
ZCopcmVzdWx0LmJlZ2luOworICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV93
aXRoX2FsaWdubWVudF9jYXN1YWwoaGVhcF9yZWYsIHNpemUsIDEpOwogfQogCiBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X3plcm9l
ZF9pbmxpbmUoCkBAIC0yNjIsNyArNTExLDExIEBAIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGls
aWFyeV93aXRoX2FsaWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuICh2
b2lkKilibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwg
YWxpZ25tZW50KS5iZWdpbjsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OworICAg
IHJlc3VsdCA9IGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsX2lubGluZV9vbmx5
KGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpOworICAgIGlmIChQQVNfTElLRUxZKHJlc3VsdC5k
aWRfc3VjY2VlZCkpCisgICAgICAgIHJldHVybiAodm9pZCopcmVzdWx0LmJlZ2luOworICAgIHJl
dHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9hbGlnbm1lbnRfY2FzdWFs
KGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgdm9pZCoKQEAgLTI3MCw3ICs1MjMsMTEgQEAgYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlf
d2l0aF9hbGlnbm1lbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuICh2b2lkKilibWFs
bG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpLmJl
Z2luOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgcmVzdWx0ID0gYm1h
bGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbF9pbmxpbmVfb25seShoZWFwX3JlZiwgc2l6ZSwg
YWxpZ25tZW50KTsKKyAgICBpZiAoUEFTX0xJS0VMWShyZXN1bHQuZGlkX3N1Y2NlZWQpKQorICAg
ICAgICByZXR1cm4gKHZvaWQqKXJlc3VsdC5iZWdpbjsKKyAgICByZXR1cm4gYm1hbGxvY19hbGxv
Y2F0ZV9hdXhpbGlhcnlfd2l0aF9hbGlnbm1lbnRfY2FzdWFsKGhlYXBfcmVmLCBzaXplLCBhbGln
bm1lbnQpOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190cnlf
cmVhbGxvY2F0ZV9hdXhpbGlhcnlfaW5saW5lKApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2lubmFyZHMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfaW5uYXJkcy5oCShyZXZpc2lv
biAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hl
YXBfaW5uYXJkcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEJN
QUxMT0NfSEVBUF9JTk5BUkRTX0gKICNkZWZpbmUgQk1BTExPQ19IRUFQX0lOTkFSRFNfSAogCisj
aW5jbHVkZSAiYm1hbGxvY190eXBlLmgiCiAjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgogI2luY2x1
ZGUgInBhc19hbGxvY2F0b3JfY291bnRzLmgiCiAjaW5jbHVkZSAicGFzX2R5bmFtaWNfcHJpbWl0
aXZlX2hlYXBfbWFwLmgiCkBAIC0zNiw2ICszNyw3IEBACiAKIFBBU19CRUdJTl9FWFRFUk5fQzsK
IAorUEFTX0FQSSBleHRlcm4gYm1hbGxvY190eXBlIGJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV90
eXBlOwogUEFTX0FQSSBleHRlcm4gcGFzX2hlYXAgYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hl
YXA7CiBQQVNfQVBJIGV4dGVybiBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydCBibWFsbG9jX2Nv
bW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0OwogUEFTX0FQSSBleHRlcm4gcGFzX2FsbG9jYXRv
cl9jb3VudHMgYm1hbGxvY19hbGxvY2F0b3JfY291bnRzOwpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX3JlZi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9yZWYuaAkocmV2aXNpb24g
Mjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFw
X3JlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxOCArMjYsMjkgQEAKICNpZm5kZWYgQk1BTExP
Q19IRUFQX1JFRl9ICiAjZGVmaW5lIEJNQUxMT0NfSEVBUF9SRUZfSAogCi0jaW5jbHVkZSAiaXNv
X2hlYXBfcmVmLmgiCisjaW5jbHVkZSAiYm1hbGxvY190eXBlLmgiCisjaW5jbHVkZSAicGFzX2hl
YXBfcmVmLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotI2RlZmluZSBCTUFMTE9DX0hFQVBf
UkVGX0lOSVRJQUxJWkVSX1dJVEhfQUxJR05NRU5UKHR5cGVfc2l6ZSwgYWxpZ25tZW50KSBcCi0g
ICAgSVNPX0hFQVBfUkVGX0lOSVRJQUxJWkVSX1dJVEhfQUxJR05NRU5UKCh0eXBlX3NpemUpLCAo
YWxpZ25tZW50KSkKKyNkZWZpbmUgQk1BTExPQ19IRUFQX1JFRl9JTklUSUFMSVpFUihwYXNzZWRf
dHlwZSkgXAorICAgICgocGFzX2hlYXBfcmVmKXsgXAorICAgICAgICAgLnR5cGUgPSAocGFzX2hl
YXBfdHlwZSopKHBhc3NlZF90eXBlKSwgXAorICAgICAgICAgLmhlYXAgPSBOVUxMLCBcCisgICAg
ICAgICAuYWxsb2NhdG9yX2luZGV4ID0gMCBcCisgICAgIH0pCisKKyNkZWZpbmUgQk1BTExPQ19Q
UklNSVRJVkVfSEVBUF9SRUZfSU5JVElBTElaRVJfSU1QTChwYXNzZWRfdHlwZSkgXAorICAgICgo
cGFzX3ByaW1pdGl2ZV9oZWFwX3JlZil7IFwKKyAgICAgICAgIC5iYXNlID0gQk1BTExPQ19IRUFQ
X1JFRl9JTklUSUFMSVpFUihwYXNzZWRfdHlwZSksIFwKKyAgICAgICAgIC5jYWNoZWRfaW5kZXgg
PSBVSU5UX01BWCBcCisgICAgIH0pCiAKLSNkZWZpbmUgQk1BTExPQ19IRUFQX1JFRl9JTklUSUFM
SVpFUih0eXBlX3NpemUpIFwKLSAgICBJU09fSEVBUF9SRUZfSU5JVElBTElaRVIodHlwZV9zaXpl
KQorI2RlZmluZSBCTUFMTE9DX0ZMRVhfSEVBUF9SRUZfSU5JVElBTElaRVIocGFzc2VkX3R5cGUp
IFwKKyAgICBCTUFMTE9DX1BSSU1JVElWRV9IRUFQX1JFRl9JTklUSUFMSVpFUl9JTVBMKHBhc3Nl
ZF90eXBlKQogCi0jZGVmaW5lIEJNQUxMT0NfQVVYSUxJQVJZX0hFQVBfUkVGX0lOSVRJQUxJWkVS
IFwKLSAgICBJU09fUFJJTUlUSVZFX0hFQVBfUkVGX0lOSVRJQUxJWkVSCisjZGVmaW5lIEJNQUxM
T0NfQVVYSUxJQVJZX0hFQVBfUkVGX0lOSVRJQUxJWkVSKHBhc3NlZF90eXBlKSBcCisgICAgQk1B
TExPQ19QUklNSVRJVkVfSEVBUF9SRUZfSU5JVElBTElaRVJfSU1QTChwYXNzZWRfdHlwZSkKIAog
UEFTX0VORF9FWFRFUk5fQzsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvYm1hbGxvY190eXBlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvYm1hbGxvY190eXBlLmMJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY190eXBlLmMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgInBhc19jb25maWcuaCIKKworI2lmIExJQlBBU19FTkFCTEVECisKKyNpbmNsdWRl
ICJibWFsbG9jX3R5cGUuaCIKKworI2luY2x1ZGUgInBhc19pbW1vcnRhbF9oZWFwLmgiCisjaW5j
bHVkZSAicGFzX3N0cmVhbS5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgorCitibWFsbG9jX3R5cGUq
IGJtYWxsb2NfdHlwZV9jcmVhdGUoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQsIGNvbnN0
IGNoYXIqIG5hbWUpCit7CisgICAgYm1hbGxvY190eXBlKiByZXN1bHQ7CisKKyAgICBQQVNfQVNT
RVJUKCh1bnNpZ25lZClzaXplID09IHNpemUpOworICAgIFBBU19BU1NFUlQoKHVuc2lnbmVkKWFs
aWdubWVudCA9PSBhbGlnbm1lbnQpOworCisgICAgcmVzdWx0ID0gcGFzX2ltbW9ydGFsX2hlYXBf
YWxsb2NhdGUoCisgICAgICAgIHNpemVvZihibWFsbG9jX3R5cGUpLAorICAgICAgICAiYm1hbGxv
Y190eXBlIiwKKyAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKKworICAgICpyZXN1bHQg
PSBCTUFMTE9DX1RZUEVfSU5JVElBTElaRVIoKHVuc2lnbmVkKXNpemUsICh1bnNpZ25lZClhbGln
bm1lbnQsIG5hbWUpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBibWFsbG9jX3R5
cGVfdHJ5X25hbWVfZHVtcChwYXNfc3RyZWFtKiBzdHJlYW0sIGNvbnN0IGNoYXIqIG5hbWUpCit7
CisgICAgY29uc3QgY2hhciogdHlwZV9uYW1lX3N0YXJ0X21hcmtlciA9ICJbTGliUGFzQm1hbGxv
Y0hlYXBUeXBlID0gIjsKKyAgICAKKyAgICBjaGFyKiB0eXBlX25hbWVfc3RhcnRfbWFya2VyX3B0
cjsKKyAgICBjaGFyKiB0eXBlX25hbWVfc3RhcnRfcHRyOworICAgIHVuc2lnbmVkIGJyYWNrZXRf
YmFsYW5jZTsKKyAgICBzaXplX3QgaW5kZXg7CisKKyAgICB0eXBlX25hbWVfc3RhcnRfbWFya2Vy
X3B0ciA9IHN0cnN0cihuYW1lLCB0eXBlX25hbWVfc3RhcnRfbWFya2VyKTsKKyAgICBpZiAoIXR5
cGVfbmFtZV9zdGFydF9tYXJrZXJfcHRyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB0
eXBlX25hbWVfc3RhcnRfcHRyID0gdHlwZV9uYW1lX3N0YXJ0X21hcmtlcl9wdHIgKyBzdHJsZW4o
dHlwZV9uYW1lX3N0YXJ0X21hcmtlcik7CisKKyAgICBicmFja2V0X2JhbGFuY2UgPSAwOworCisg
ICAgZm9yIChpbmRleCA9IDA7IHR5cGVfbmFtZV9zdGFydF9wdHJbaW5kZXhdOyArK2luZGV4KSB7
CisgICAgICAgIHN3aXRjaCAodHlwZV9uYW1lX3N0YXJ0X3B0cltpbmRleF0pIHsKKyAgICAgICAg
Y2FzZSAnWyc6CisgICAgICAgICAgICBicmFja2V0X2JhbGFuY2UrKzsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlICddJzoKKyAgICAgICAgICAgIGlmICghYnJhY2tldF9iYWxhbmNl
KSB7CisgICAgICAgICAgICAgICAgY2hhciogZmxleGlibGVfYXJyYXlfbWVtYmVyX21hcmtlcjsK
KworICAgICAgICAgICAgICAgIGZsZXhpYmxlX2FycmF5X21lbWJlcl9tYXJrZXIgPSBzdHJzdHIo
bmFtZSwgInByaW1pdGl2ZUhlYXBSZWZGb3JUeXBlV2l0aEZsZXhpYmxlQXJyYXlNZW1iZXIiKTsK
KyAgICAgICAgICAgICAgICBpZiAoZmxleGlibGVfYXJyYXlfbWVtYmVyX21hcmtlcikKKyAgICAg
ICAgICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiT2JqZWN0V2l0aEZsZXhp
YmxlQXJyYXlNZW1iZXIsICIpOworCisgICAgICAgICAgICAgICAgUEFTX0FTU0VSVCgoc2l6ZV90
KShpbnQpaW5kZXggPT0gaW5kZXgpOworICAgICAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRm
KHN0cmVhbSwgIiUuKnMiLCAoaW50KWluZGV4LCB0eXBlX25hbWVfc3RhcnRfcHRyKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyYWNr
ZXRfYmFsYW5jZS0tOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30K
Kwordm9pZCBibWFsbG9jX3R5cGVfbmFtZV9kdW1wKHBhc19zdHJlYW0qIHN0cmVhbSwgY29uc3Qg
Y2hhciogbmFtZSkKK3sKKyAgICBpZiAoYm1hbGxvY190eXBlX3RyeV9uYW1lX2R1bXAoc3RyZWFt
LCBuYW1lKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFt
LCAiJXMiLCBuYW1lKTsKK30KKwordm9pZCBibWFsbG9jX3R5cGVfZHVtcChibWFsbG9jX3R5cGUq
IHR5cGUsIHBhc19zdHJlYW0qIHN0cmVhbSkKK3sKKyAgICBwYXNfc3RyZWFtX3ByaW50ZigKKyAg
ICAgICAgc3RyZWFtLCAiU2l6ZSA9ICV6dSwgQWxpZ25tZW50ID0gJXp1LCBUeXBlID0gIiwKKyAg
ICAgICAgYm1hbGxvY190eXBlX3NpemUodHlwZSksIGJtYWxsb2NfdHlwZV9hbGlnbm1lbnQodHlw
ZSkpOworCisgICAgYm1hbGxvY190eXBlX25hbWVfZHVtcChzdHJlYW0sIGJtYWxsb2NfdHlwZV9u
YW1lKHR5cGUpKTsKK30KKwordm9pZCBibWFsbG9jX3R5cGVfYXNfaGVhcF90eXBlX2R1bXAocGFz
X2hlYXBfdHlwZSogdHlwZSwgcGFzX3N0cmVhbSogc3RyZWFtKQoreworICAgIGJtYWxsb2NfdHlw
ZV9kdW1wKChibWFsbG9jX3R5cGUqKXR5cGUsIHN0cmVhbSk7Cit9CisKKyNlbmRpZiAvKiBMSUJQ
QVNfRU5BQkxFRCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9i
bWFsbG9jX3R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9ibWFsbG9jX3R5cGUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9ibWFsbG9jX3R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg4
IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgQk1BTExPQ19UWVBFX0gKKyNkZWZpbmUgQk1BTExPQ19UWVBFX0gKKworI2luY2x1ZGUgInBh
c19zaW1wbGVfdHlwZS5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKK3N0cnVjdCBibWFsbG9j
X3R5cGU7Cit0eXBlZGVmIHN0cnVjdCBibWFsbG9jX3R5cGUgYm1hbGxvY190eXBlOworCitzdHJ1
Y3QgYm1hbGxvY190eXBlIHsKKyAgICB1bnNpZ25lZCBzaXplOworICAgIHVuc2lnbmVkIGFsaWdu
bWVudDsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworfTsKKworI2RlZmluZSBCTUFMTE9DX1RZUEVf
SU5JVElBTElaRVIocGFzc2VkX3NpemUsIHBhc3NlZF9hbGlnbm1lbnQsIHBhc3NlZF9uYW1lKSBc
CisgICAgKChibWFsbG9jX3R5cGUpeyBcCisgICAgICAgICAuc2l6ZSA9IChwYXNzZWRfc2l6ZSks
IFwKKyAgICAgICAgIC5hbGlnbm1lbnQgPSAocGFzc2VkX2FsaWdubWVudCksIFwKKyAgICAgICAg
IC5uYW1lID0gKHBhc3NlZF9uYW1lKSBcCisgICAgIH0pCisKKy8qIEl0J3MgYSBiaXQgYmV0dGVy
IHRvIHVzZSB0aGVzZSBnZXR0ZXJzIGluc3RlYWQgb2YgYWNjZXNzaW5nIHRoZSB0eXBlIHN0cnVj
dCBkaXJlY3RseSBiZWNhdXNlIHdlIHdhbnQgdG8gYmUKKyAgIGFibGUgdG8gY2hhbmdlIHRoZSBz
aGFwZSBvZiB0aGUgc3RydWN0LiAqLworc3RhdGljIGlubGluZSBzaXplX3QgYm1hbGxvY190eXBl
X3NpemUoYm1hbGxvY190eXBlKiB0eXBlKQoreworICAgIHJldHVybiB0eXBlLT5zaXplOworfQor
CitzdGF0aWMgaW5saW5lIHNpemVfdCBibWFsbG9jX3R5cGVfYWxpZ25tZW50KGJtYWxsb2NfdHlw
ZSogdHlwZSkKK3sKKyAgICByZXR1cm4gdHlwZS0+YWxpZ25tZW50OworfQorCitzdGF0aWMgaW5s
aW5lIGNvbnN0IGNoYXIqIGJtYWxsb2NfdHlwZV9uYW1lKGJtYWxsb2NfdHlwZSogdHlwZSkKK3sK
KyAgICByZXR1cm4gdHlwZS0+bmFtZTsKK30KKworUEFTX0FQSSBibWFsbG9jX3R5cGUqIGJtYWxs
b2NfdHlwZV9jcmVhdGUoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQsIGNvbnN0IGNoYXIq
IG5hbWUpOworCitQQVNfQVBJIGJvb2wgYm1hbGxvY190eXBlX3RyeV9uYW1lX2R1bXAocGFzX3N0
cmVhbSogc3RyZWFtLCBjb25zdCBjaGFyKiBuYW1lKTsKK1BBU19BUEkgdm9pZCBibWFsbG9jX3R5
cGVfbmFtZV9kdW1wKHBhc19zdHJlYW0qIHN0cmVhbSwgY29uc3QgY2hhciogbmFtZSk7CisKK1BB
U19BUEkgdm9pZCBibWFsbG9jX3R5cGVfZHVtcChibWFsbG9jX3R5cGUqIHR5cGUsIHBhc19zdHJl
YW0qIHN0cmVhbSk7CisKK3N0YXRpYyBpbmxpbmUgc2l6ZV90IGJtYWxsb2NfdHlwZV9hc19oZWFw
X3R5cGVfZ2V0X3R5cGVfc2l6ZShwYXNfaGVhcF90eXBlKiB0eXBlKQoreworICAgIHJldHVybiBi
bWFsbG9jX3R5cGVfc2l6ZSgoYm1hbGxvY190eXBlKil0eXBlKTsKK30KKworc3RhdGljIGlubGlu
ZSBzaXplX3QgYm1hbGxvY190eXBlX2FzX2hlYXBfdHlwZV9nZXRfdHlwZV9hbGlnbm1lbnQocGFz
X2hlYXBfdHlwZSogdHlwZSkKK3sKKyAgICByZXR1cm4gYm1hbGxvY190eXBlX2FsaWdubWVudCgo
Ym1hbGxvY190eXBlKil0eXBlKTsKK30KKworUEFTX0FQSSB2b2lkIGJtYWxsb2NfdHlwZV9hc19o
ZWFwX3R5cGVfZHVtcChwYXNfaGVhcF90eXBlKiB0eXBlLCBwYXNfc3RyZWFtKiBzdHJlYW0pOwor
CitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogQk1BTExPQ19UWVBFX0ggKi8KKwpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaG90Yml0X2hlYXBfY29uZmlnLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaG90Yml0X2hl
YXBfY29uZmlnLmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL2hvdGJpdF9oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0
OCw3IEBAIFBBU19BUEkgdm9pZCBob3RiaXRfaGVhcF9jb25maWdfYWN0aXZhdGUKICAgICAuYWN0
aXZhdGUgPSBob3RiaXRfaGVhcF9jb25maWdfYWN0aXZhdGUsIFwKICAgICAuZ2V0X3R5cGVfc2l6
ZSA9IHBhc19zaW1wbGVfdHlwZV9hc19oZWFwX3R5cGVfZ2V0X3R5cGVfc2l6ZSwgXAogICAgIC5n
ZXRfdHlwZV9hbGlnbm1lbnQgPSBwYXNfc2ltcGxlX3R5cGVfYXNfaGVhcF90eXBlX2dldF90eXBl
X2FsaWdubWVudCwgXAorICAgIC5kdW1wX3R5cGUgPSBwYXNfc2ltcGxlX3R5cGVfYXNfaGVhcF90
eXBlX2R1bXAsIFwKICAgICAuY2hlY2tfZGVhbGxvY2F0aW9uID0gZmFsc2UsIFwKICAgICAuc21h
bGxfc2VncmVnYXRlZF9taW5fYWxpZ25fc2hpZnQgPSBIT1RCSVRfTUlOQUxJR05fU0hJRlQsIFwK
ICAgICAuc21hbGxfc2VncmVnYXRlZF9zaGFyaW5nX3NoaWZ0ID0gUEFTX1NNQUxMX1NIQVJJTkdf
U0hJRlQsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFw
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX2hl
YXAuYwkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvaXNvX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgaXNv
X2hlYXBfcmVmX2NvbnN0cnVjdChwYXNfaGVhcF9yZWYKIHsKICAgICBoZWFwX3JlZi0+dHlwZSA9
IChwYXNfaGVhcF90eXBlKil0eXBlOwogICAgIGhlYXBfcmVmLT5oZWFwID0gTlVMTDsKLSAgICBo
ZWFwX3JlZi0+YWxsb2NhdG9yX2luZGV4ID0gVUlOVF9NQVg7CisgICAgaGVhcF9yZWYtPmFsbG9j
YXRvcl9pbmRleCA9IDA7CiB9CiAKIHZvaWQqIGlzb190cnlfYWxsb2NhdGUocGFzX2hlYXBfcmVm
KiBoZWFwX3JlZikKQEAgLTE1OSwzOCArMTU5LDM4IEBAIHZvaWQqIGlzb19hbGxvY2F0ZShwYXNf
aGVhcF9yZWYqIGhlYXBfcmUKICAgICByZXR1cm4gaXNvX2FsbG9jYXRlX2lubGluZShoZWFwX3Jl
Zik7CiB9CiAKLXZvaWQqIGlzb190cnlfYWxsb2NhdGVfYXJyYXkocGFzX2hlYXBfcmVmKiBoZWFw
X3JlZiwgc2l6ZV90IGNvdW50LCBzaXplX3QgYWxpZ25tZW50KQordm9pZCogaXNvX3RyeV9hbGxv
Y2F0ZV9hcnJheV9ieV9jb3VudChwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQs
IHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGlzb190cnlfYWxsb2NhdGVfYXJyYXlf
aW5saW5lKGhlYXBfcmVmLCBjb3VudCwgYWxpZ25tZW50KTsKKyAgICByZXR1cm4gaXNvX3RyeV9h
bGxvY2F0ZV9hcnJheV9ieV9jb3VudF9pbmxpbmUoaGVhcF9yZWYsIGNvdW50LCBhbGlnbm1lbnQp
OwogfQogCi12b2lkKiBpc29fYWxsb2NhdGVfYXJyYXkocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwg
c2l6ZV90IGNvdW50LCBzaXplX3QgYWxpZ25tZW50KQordm9pZCogaXNvX2FsbG9jYXRlX2FycmF5
X2J5X2NvdW50KHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCwgc2l6ZV90IGFs
aWdubWVudCkKIHsKLSAgICByZXR1cm4gaXNvX2FsbG9jYXRlX2FycmF5X2lubGluZShoZWFwX3Jl
ZiwgY291bnQsIGFsaWdubWVudCk7CisgICAgcmV0dXJuIGlzb19hbGxvY2F0ZV9hcnJheV9ieV9j
b3VudF9pbmxpbmUoaGVhcF9yZWYsIGNvdW50LCBhbGlnbm1lbnQpOwogfQogCi12b2lkKiBpc29f
dHJ5X2FsbG9jYXRlX2FycmF5X3plcm9lZChwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qg
Y291bnQsIHNpemVfdCBhbGlnbm1lbnQpCit2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX2FycmF5X2J5
X2NvdW50X3plcm9lZChwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQsIHNpemVf
dCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGlzb190cnlfYWxsb2NhdGVfYXJyYXlfemVyb2Vk
X2lubGluZShoZWFwX3JlZiwgY291bnQsIGFsaWdubWVudCk7CisgICAgcmV0dXJuIGlzb190cnlf
YWxsb2NhdGVfYXJyYXlfYnlfY291bnRfemVyb2VkX2lubGluZShoZWFwX3JlZiwgY291bnQsIGFs
aWdubWVudCk7CiB9CiAKLXZvaWQqIGlzb19hbGxvY2F0ZV9hcnJheV96ZXJvZWQocGFzX2hlYXBf
cmVmKiBoZWFwX3JlZiwgc2l6ZV90IGNvdW50LCBzaXplX3QgYWxpZ25tZW50KQordm9pZCogaXNv
X2FsbG9jYXRlX2FycmF5X2J5X2NvdW50X3plcm9lZChwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBz
aXplX3QgY291bnQsIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGlzb19hbGxvY2F0
ZV9hcnJheV96ZXJvZWRfaW5saW5lKGhlYXBfcmVmLCBjb3VudCwgYWxpZ25tZW50KTsKKyAgICBy
ZXR1cm4gaXNvX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50X3plcm9lZF9pbmxpbmUoaGVhcF9yZWYs
IGNvdW50LCBhbGlnbm1lbnQpOwogfQogCi12b2lkKiBpc29fdHJ5X3JlYWxsb2NhdGVfYXJyYXko
dm9pZCogb2xkX3B0ciwgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplX3QgbmV3X2NvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCit2b2lkKiBpc29fdHJ5
X3JlYWxsb2NhdGVfYXJyYXlfYnlfY291bnQodm9pZCogb2xkX3B0ciwgcGFzX2hlYXBfcmVmKiBo
ZWFwX3JlZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
bmV3X2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19y
ZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIGlzb190cnlfcmVh
bGxvY2F0ZV9hcnJheV9pbmxpbmUob2xkX3B0ciwgaGVhcF9yZWYsIG5ld19jb3VudCwgZnJlZV9t
b2RlKTsKKyAgICByZXR1cm4gaXNvX3RyeV9yZWFsbG9jYXRlX2FycmF5X2J5X2NvdW50X2lubGlu
ZShvbGRfcHRyLCBoZWFwX3JlZiwgbmV3X2NvdW50LCBmcmVlX21vZGUpOwogfQogCi12b2lkKiBp
c29fcmVhbGxvY2F0ZV9hcnJheSh2b2lkKiBvbGRfcHRyLCBwYXNfaGVhcF9yZWYqIGhlYXBfcmVm
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG5ld19jb3VudCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCit2
b2lkKiBpc29fcmVhbGxvY2F0ZV9hcnJheV9ieV9jb3VudCh2b2lkKiBvbGRfcHRyLCBwYXNfaGVh
cF9yZWYqIGhlYXBfcmVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZV90IG5ld19jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19y
ZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIGlzb19yZWFsbG9j
YXRlX2FycmF5X2lubGluZShvbGRfcHRyLCBoZWFwX3JlZiwgbmV3X2NvdW50LCBmcmVlX21vZGUp
OworICAgIHJldHVybiBpc29fcmVhbGxvY2F0ZV9hcnJheV9ieV9jb3VudF9pbmxpbmUob2xkX3B0
ciwgaGVhcF9yZWYsIG5ld19jb3VudCwgZnJlZV9tb2RlKTsKIH0KIAogcGFzX2hlYXAqIGlzb19o
ZWFwX3JlZl9nZXRfaGVhcChwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQpAQCAtMjA2LDcgKzIwNiw3
IEBAIHZvaWQgaXNvX3ByaW1pdGl2ZV9oZWFwX3JlZl9jb25zdHJ1Y3QocGEKICAgICBQQVNfQVNT
RVJUKHBhc19zaW1wbGVfdHlwZV9hbGlnbm1lbnQodHlwZSkgPT0gMSk7CiAgICAgaGVhcF9yZWYt
PmJhc2UudHlwZSA9IChwYXNfaGVhcF90eXBlKil0eXBlOwogICAgIGhlYXBfcmVmLT5iYXNlLmhl
YXAgPSBOVUxMOwotICAgIGhlYXBfcmVmLT5iYXNlLmFsbG9jYXRvcl9pbmRleCA9IFVJTlRfTUFY
OworICAgIGhlYXBfcmVmLT5iYXNlLmFsbG9jYXRvcl9pbmRleCA9IDA7CiAgICAgaGVhcF9yZWYt
PmNhY2hlZF9pbmRleCA9IFVJTlRfTUFYOwogfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9pc29faGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL2lzb19oZWFwLmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTcx
LDE4ICs3MSwxOCBAQCBQQVNfQVBJIHZvaWQgaXNvX2hlYXBfcmVmX2NvbnN0cnVjdChwYXNfCiBQ
QVNfQVBJIHZvaWQqIGlzb190cnlfYWxsb2NhdGUocGFzX2hlYXBfcmVmKiBoZWFwX3JlZik7CiBQ
QVNfQVBJIHZvaWQqIGlzb19hbGxvY2F0ZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKTsKIAotUEFT
X0FQSSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX2FycmF5KHBhc19oZWFwX3JlZiogaGVhcF9yZWYs
IHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdubWVudCk7Ci1QQVNfQVBJIHZvaWQqIGlzb19hbGxv
Y2F0ZV9hcnJheShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQsIHNpemVfdCBh
bGlnbm1lbnQpOworUEFTX0FQSSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX2FycmF5X2J5X2NvdW50
KHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdubWVudCk7
CitQQVNfQVBJIHZvaWQqIGlzb19hbGxvY2F0ZV9hcnJheV9ieV9jb3VudChwYXNfaGVhcF9yZWYq
IGhlYXBfcmVmLCBzaXplX3QgY291bnQsIHNpemVfdCBhbGlnbm1lbnQpOwogCi1QQVNfQVBJIHZv
aWQqIGlzb190cnlfYWxsb2NhdGVfYXJyYXlfemVyb2VkKHBhc19oZWFwX3JlZiogaGVhcF9yZWYs
IHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdubWVudCk7Ci1QQVNfQVBJIHZvaWQqIGlzb19hbGxv
Y2F0ZV9hcnJheV96ZXJvZWQocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGNvdW50LCBz
aXplX3QgYWxpZ25tZW50KTsKK1BBU19BUEkgdm9pZCogaXNvX3RyeV9hbGxvY2F0ZV9hcnJheV9i
eV9jb3VudF96ZXJvZWQocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGNvdW50LCBzaXpl
X3QgYWxpZ25tZW50KTsKK1BBU19BUEkgdm9pZCogaXNvX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50
X3plcm9lZChwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQsIHNpemVfdCBhbGln
bm1lbnQpOwogCi1QQVNfQVBJIHZvaWQqIGlzb190cnlfcmVhbGxvY2F0ZV9hcnJheSh2b2lkKiBv
bGRfcHRyLCBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZV90IG5ld19jb3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpOwotUEFT
X0FQSSB2b2lkKiBpc29fcmVhbGxvY2F0ZV9hcnJheSh2b2lkKiBvbGRfcHRyLCBwYXNfaGVhcF9y
ZWYqIGhlYXBfcmVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
bmV3X2NvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxv
Y2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKTsKK1BBU19BUEkgdm9pZCogaXNvX3RyeV9yZWFsbG9j
YXRlX2FycmF5X2J5X2NvdW50KHZvaWQqIG9sZF9wdHIsIHBhc19oZWFwX3JlZiogaGVhcF9yZWYs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
bmV3X2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSk7CitQQVNfQVBJIHZvaWQqIGlz
b19yZWFsbG9jYXRlX2FycmF5X2J5X2NvdW50KHZvaWQqIG9sZF9wdHIsIHBhc19oZWFwX3JlZiog
aGVhcF9yZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emVfdCBuZXdfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpOwogCiBQQVNfQVBJIHBhc19o
ZWFwKiBpc29faGVhcF9yZWZfZ2V0X2hlYXAocGFzX2hlYXBfcmVmKiBoZWFwX3JlZik7CiAKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2NvbmZpZy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2Nv
bmZpZy5oCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9pc29faGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBQ
QVNfQkVHSU5fRVhURVJOX0M7CiAgICAgLmFjdGl2YXRlID0gcGFzX2hlYXBfY29uZmlnX3V0aWxz
X251bGxfYWN0aXZhdGUsIFwKICAgICAuZ2V0X3R5cGVfc2l6ZSA9IHBhc19zaW1wbGVfdHlwZV9h
c19oZWFwX3R5cGVfZ2V0X3R5cGVfc2l6ZSwgXAogICAgIC5nZXRfdHlwZV9hbGlnbm1lbnQgPSBw
YXNfc2ltcGxlX3R5cGVfYXNfaGVhcF90eXBlX2dldF90eXBlX2FsaWdubWVudCwgXAorICAgIC5k
dW1wX3R5cGUgPSBwYXNfc2ltcGxlX3R5cGVfYXNfaGVhcF90eXBlX2R1bXAsIFwKICAgICAuY2hl
Y2tfZGVhbGxvY2F0aW9uID0gdHJ1ZSwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX21pbl9hbGln
bl9zaGlmdCA9IElTT19NSU5BTElHTl9TSElGVCwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3No
YXJpbmdfc2hpZnQgPSBQQVNfU01BTExfU0hBUklOR19TSElGVCwgXApJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfaW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2lubGluZXMuaAkocmV2
aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX2hl
YXBfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNyArMTU4LDcgQEAgUEFTX0NSRUFU
RV9UUllfQUxMT0NBVEUoCiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5
X2FsbG9jYXRlX2lubGluZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQogewotICAgIHJldHVybiBp
c29fdHJ5X2FsbG9jYXRlX2ltcGwoaGVhcF9yZWYpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWlz
b190cnlfYWxsb2NhdGVfaW1wbChoZWFwX3JlZikuYmVnaW47CiB9CiAKIFBBU19DUkVBVEVfVFJZ
X0FMTE9DQVRFKApAQCAtMTcwLDcgKzE3MCw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKAog
CiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX2FsbG9jYXRlX2lubGluZShwYXNf
aGVhcF9yZWYqIGhlYXBfcmVmKQogewotICAgIHJldHVybiBpc29fYWxsb2NhdGVfaW1wbChoZWFw
X3JlZikucHRyOworICAgIHJldHVybiAodm9pZCopaXNvX2FsbG9jYXRlX2ltcGwoaGVhcF9yZWYp
LmJlZ2luOwogfQogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9BUlJBWSgKQEAgLTE4MSw5ICsx
ODEsOSBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9BUlJBWSgKICAgICBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfc2V0X2Vycm5vKTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCi1p
c29fdHJ5X2FsbG9jYXRlX2FycmF5X2lubGluZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXpl
X3QgY291bnQsIHNpemVfdCBhbGlnbm1lbnQpCitpc29fdHJ5X2FsbG9jYXRlX2FycmF5X2J5X2Nv
dW50X2lubGluZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQsIHNpemVfdCBh
bGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGlzb190cnlfYWxsb2NhdGVfYXJyYXlfaW1wbChoZWFw
X3JlZiwgY291bnQsIGFsaWdubWVudCkucHRyOworICAgIHJldHVybiAodm9pZCopaXNvX3RyeV9h
bGxvY2F0ZV9hcnJheV9pbXBsX2J5X2NvdW50KGhlYXBfcmVmLCBjb3VudCwgYWxpZ25tZW50KS5i
ZWdpbjsKIH0KIAogUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfQVJSQVkoCkBAIC0xOTQsMjkgKzE5
NCw0MyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9BUlJBWSgKICAgICBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9p
ZCoKLWlzb19hbGxvY2F0ZV9hcnJheV9pbmxpbmUocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6
ZV90IGNvdW50LCBzaXplX3QgYWxpZ25tZW50KQoraXNvX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50
X2lubGluZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQsIHNpemVfdCBhbGln
bm1lbnQpCiB7Ci0gICAgcmV0dXJuIGlzb19hbGxvY2F0ZV9hcnJheV9pbXBsKGhlYXBfcmVmLCBj
b3VudCwgYWxpZ25tZW50KS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilpc29fYWxsb2NhdGVfYXJy
YXlfaW1wbF9ieV9jb3VudChoZWFwX3JlZiwgY291bnQsIGFsaWdubWVudCkuYmVnaW47CiB9CiAK
LXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX2FycmF5X3pl
cm9lZF9pbmxpbmUoCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX3RyeV9hbGxv
Y2F0ZV9hcnJheV9ieV9jb3VudF96ZXJvZWRfaW5saW5lKAogICAgIHBhc19oZWFwX3JlZiogaGVh
cF9yZWYsIHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdubWVudCkKIHsKLSAgICByZXR1cm4gcGFz
X3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCi0gICAgICAgIGlzb190cnlfYWxsb2NhdGVf
YXJyYXlfaW1wbChoZWFwX3JlZiwgY291bnQsIGFsaWdubWVudCkpLnB0cjsKKyAgICBzaXplX3Qg
c2l6ZTsKKworICAgIGlmIChfX2J1aWx0aW5fbXVsX292ZXJmbG93KGNvdW50LCBJU09fSEVBUF9D
T05GSUcuZ2V0X3R5cGVfc2l6ZShoZWFwX3JlZi0+dHlwZSksICZzaXplKSkgeworICAgICAgICBl
cnJubyA9IEVOT01FTTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIAorICAgIHJl
dHVybiAodm9pZCopcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisgICAgICAgIGlzb190cnlf
YWxsb2NhdGVfYXJyYXlfaW1wbF9ieV9zaXplKGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpLCBz
aXplKS5iZWdpbjsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGlzb19hbGxv
Y2F0ZV9hcnJheV96ZXJvZWRfaW5saW5lKAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQq
IGlzb19hbGxvY2F0ZV9hcnJheV9ieV9jb3VudF96ZXJvZWRfaW5saW5lKAogICAgIHBhc19oZWFw
X3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdubWVudCkKIHsKLSAgICBy
ZXR1cm4gcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oaXNvX2FsbG9jYXRlX2FycmF5
X2ltcGwoaGVhcF9yZWYsIGNvdW50LCBhbGlnbm1lbnQpKS5wdHI7CisgICAgc2l6ZV90IHNpemU7
CisgICAgYm9vbCBkaWRfb3ZlcmZsb3c7CisKKyAgICBkaWRfb3ZlcmZsb3cgPSBfX2J1aWx0aW5f
bXVsX292ZXJmbG93KGNvdW50LCBJU09fSEVBUF9DT05GSUcuZ2V0X3R5cGVfc2l6ZShoZWFwX3Jl
Zi0+dHlwZSksICZzaXplKTsKKyAgICBQQVNfQVNTRVJUKCFkaWRfb3ZlcmZsb3cpOworICAgIAor
ICAgIHJldHVybiAodm9pZCopcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisgICAgICAgIGlz
b19hbGxvY2F0ZV9hcnJheV9pbXBsX2J5X3NpemUoaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCks
IHNpemUpLmJlZ2luOwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX3Ry
eV9yZWFsbG9jYXRlX2FycmF5X2lubGluZSh2b2lkKiBvbGRfcHRyLCBwYXNfaGVhcF9yZWYqIGhl
YXBfcmVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZV90IG5ld19jb3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2Zy
ZWVfbW9kZSBmcmVlX21vZGUpCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX3Ry
eV9yZWFsbG9jYXRlX2FycmF5X2J5X2NvdW50X2lubGluZSh2b2lkKiBvbGRfcHRyLCBwYXNfaGVh
cF9yZWYqIGhlYXBfcmVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG5ld19jb3VudCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0
dXJuIHBhc190cnlfcmVhbGxvY2F0ZV9hcnJheSgKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlf
cmVhbGxvY2F0ZV9hcnJheV9ieV9jb3VudCgKICAgICAgICAgb2xkX3B0ciwKICAgICAgICAgaGVh
cF9yZWYsCiAgICAgICAgIG5ld19jb3VudCwKQEAgLTIyNCwxNCArMjM4LDE0IEBAIHN0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X3IKICAgICAgICAgaXNvX3RyeV9hbGxvY2F0
ZV9hcnJheV9pbXBsX2Zvcl9yZWFsbG9jLAogICAgICAgICAmaXNvX3R5cGVkX3J1bnRpbWVfY29u
ZmlnLmJhc2UsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBvcnQsCi0g
ICAgICAgIGZyZWVfbW9kZSkucHRyOworICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwogfQogCi1z
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX3JlYWxsb2NhdGVfYXJyYXlfaW5saW5l
KHZvaWQqIG9sZF9wdHIsIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuZXdfY291
bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCitzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgdm9pZCogaXNvX3JlYWxsb2NhdGVfYXJyYXlfYnlfY291bnRfaW5saW5lKHZv
aWQqIG9sZF9wdHIsIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBu
ZXdfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUp
CiB7Ci0gICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZV9hcnJheSgKKyAgICByZXR1cm4gKHZv
aWQqKXBhc190cnlfcmVhbGxvY2F0ZV9hcnJheV9ieV9jb3VudCgKICAgICAgICAgb2xkX3B0ciwK
ICAgICAgICAgaGVhcF9yZWYsCiAgICAgICAgIG5ld19jb3VudCwKQEAgLTIzOSw3ICsyNTMsNyBA
QCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX3JlYWxsCiAgICAgICAgIGlzb19h
bGxvY2F0ZV9hcnJheV9pbXBsX2Zvcl9yZWFsbG9jLAogICAgICAgICAmaXNvX3R5cGVkX3J1bnRp
bWVfY29uZmlnLmJhc2UsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBv
cnQsCi0gICAgICAgIGZyZWVfbW9kZSkucHRyOworICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwog
fQogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9QUklNSVRJVkUoCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9yZWYuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9yZWYuaAkocmV2aXNpb24gMjg1
Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfcmVmLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAog
I2RlZmluZSBJU09fSEVBUF9SRUZfSU5JVElBTElaRVJfVExDX1BBUlQgXAotICAgIC5hbGxvY2F0
b3JfaW5kZXggPSBVSU5UX01BWAorICAgIC5hbGxvY2F0b3JfaW5kZXggPSAwCiAKICNkZWZpbmUg
SVNPX0hFQVBfUkVGX0lOSVRJQUxJWkVSX1dJVEhfQUxJR05NRU5UKHR5cGVfc2l6ZSwgYWxpZ25t
ZW50KSBcCiAgICAgKChwYXNfaGVhcF9yZWYpeyBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcC5jCShyZXZpc2lvbiAyODU3ODUpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwLmMJKHdvcmtp
bmcgY29weSkKQEAgLTgxLDEyICs4MSwxMiBAQCB2b2lkKiBpc29fdGVzdF9hbGxvY2F0ZV9jb21t
b25fcHJpbWl0aXZlCiAKIHZvaWQqIGlzb190ZXN0X2FsbG9jYXRlKHBhc19oZWFwX3JlZiogaGVh
cF9yZWYpCiB7Ci0gICAgcmV0dXJuIHRlc3RfYWxsb2NhdGVfaW1wbChoZWFwX3JlZikucHRyOwor
ICAgIHJldHVybiAodm9pZCopdGVzdF9hbGxvY2F0ZV9pbXBsKGhlYXBfcmVmKS5iZWdpbjsKIH0K
IAotdm9pZCogaXNvX3Rlc3RfYWxsb2NhdGVfYXJyYXkocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwg
c2l6ZV90IGNvdW50LCBzaXplX3QgYWxpZ25tZW50KQordm9pZCogaXNvX3Rlc3RfYWxsb2NhdGVf
YXJyYXlfYnlfY291bnQocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGNvdW50LCBzaXpl
X3QgYWxpZ25tZW50KQogewotICAgIHJldHVybiB0ZXN0X2FsbG9jYXRlX2FycmF5X2ltcGwoaGVh
cF9yZWYsIGNvdW50LCBhbGlnbm1lbnQpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKXRlc3RfYWxs
b2NhdGVfYXJyYXlfaW1wbF9ieV9jb3VudChoZWFwX3JlZiwgY291bnQsIGFsaWdubWVudCkuYmVn
aW47CiB9CiAKIHZvaWQgaXNvX3Rlc3RfZGVhbGxvY2F0ZSh2b2lkKiBwdHIpCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcC5oCShyZXZp
c2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29fdGVz
dF9oZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgUEFTX0FQSSBleHRlcm4g
cGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcgogCiBQQVNfQVBJIHZvaWQqIGlzb190ZXN0X2FsbG9j
YXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZV90IHNpemUpOwogUEFTX0FQSSB2b2lkKiBpc29fdGVz
dF9hbGxvY2F0ZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKTsKLVBBU19BUEkgdm9pZCogaXNvX3Rl
c3RfYWxsb2NhdGVfYXJyYXkocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGNvdW50LCBz
aXplX3QgYWxpZ25tZW50KTsKK1BBU19BUEkgdm9pZCogaXNvX3Rlc3RfYWxsb2NhdGVfYXJyYXlf
YnlfY291bnQocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGNvdW50LCBzaXplX3QgYWxp
Z25tZW50KTsKIFBBU19BUEkgdm9pZCBpc29fdGVzdF9kZWFsbG9jYXRlKHZvaWQqIHB0cik7CiBQ
QVNfQVBJIHBhc19oZWFwKiBpc29fdGVzdF9oZWFwX3JlZl9nZXRfaGVhcChwYXNfaGVhcF9yZWYq
IGhlYXBfcmVmKTsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNv
X3Rlc3RfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODU3ODUpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwX2NvbmZpZy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKICAgICAu
YWN0aXZhdGUgPSBwYXNfaGVhcF9jb25maWdfdXRpbHNfbnVsbF9hY3RpdmF0ZSwgXAogICAgIC5n
ZXRfdHlwZV9zaXplID0gcGFzX3NpbXBsZV90eXBlX2FzX2hlYXBfdHlwZV9nZXRfdHlwZV9zaXpl
LCBcCiAgICAgLmdldF90eXBlX2FsaWdubWVudCA9IHBhc19zaW1wbGVfdHlwZV9hc19oZWFwX3R5
cGVfZ2V0X3R5cGVfYWxpZ25tZW50LCBcCisgICAgLmR1bXBfdHlwZSA9IHBhc19zaW1wbGVfdHlw
ZV9hc19oZWFwX3R5cGVfZHVtcCwgXAogICAgIC5jaGVja19kZWFsbG9jYXRpb24gPSB0cnVlLCBc
CiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfbWluX2FsaWduX3NoaWZ0ID0gSVNPX1RFU1RfTUlOQUxJ
R05fU0hJRlQsIFwKICAgICAuc21hbGxfc2VncmVnYXRlZF9zaGFyaW5nX3NoaWZ0ID0gUEFTX1NN
QUxMX1NIQVJJTkdfU0hJRlQsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL2ppdF9oZWFwX2NvbmZpZy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5jCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuYwkod29ya2luZyBj
b3B5KQpAQCAtMzcsMTEgKzM3LDE4IEBACiAjaW5jbHVkZSAicGFzX2VudW1lcmFibGVfcGFnZV9t
YWxsb2MuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9jb25maWdfaW5saW5lcy5oIgogI2luY2x1ZGUg
InBhc19yb290LmgiCisjaW5jbHVkZSAicGFzX3N0cmVhbS5oIgogCiAjaWYgZGVmaW5lZChQQVNf
Qk1BTExPQykKICNpbmNsdWRlICJCUGxhdGZvcm0uaCIKICNlbmRpZgogCit2b2lkIGppdF90eXBl
X2R1bXAocGFzX2hlYXBfdHlwZSogdHlwZSwgcGFzX3N0cmVhbSogc3RyZWFtKQoreworICAgIFBB
U19BU1NFUlQoIXR5cGUpOworICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIkpJVCIpOwor
fQorCiBwYXNfaGVhcF9jb25maWcgaml0X2hlYXBfY29uZmlnID0gSklUX0hFQVBfQ09ORklHOwog
CiBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcCBqaXRfZnJlc2hfbWVtb3J5X2hlYXAgPSBQQVNf
U0lNUExFX0xBUkdFX0ZSRUVfSEVBUF9JTklUSUFMSVpFUjsKQEAgLTI5OCw2ICszMDUsMTQgQEAg
Ym9vbCBqaXRfaGVhcF9jb25maWdfZm9yX2VhY2hfc2hhcmVkX3BhZwogICAgIHJldHVybiB0cnVl
OwogfQogCitQQVNfTk9fUkVUVVJOIHZvaWQgaml0X2hlYXBfY29uZmlnX2R1bXBfc2hhcmVkX3Bh
Z2VfZGlyZWN0b3J5X2FyZygKKyAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19zZWdyZWdhdGVk
X3NoYXJlZF9wYWdlX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIFBBU19VTlVTRURfUEFS
QU0oc3RyZWFtKTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKGRpcmVjdG9yeSk7CisgICAgUEFTX0FT
U0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworfQorCiB2b2lkIGppdF9oZWFwX2NvbmZp
Z19hZGRfZnJlc2hfbWVtb3J5KHBhc19yYW5nZSByYW5nZSkKIHsKICAgICBwYXNfbGFyZ2VfZnJl
ZV9oZWFwX2NvbmZpZyBjb25maWc7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9qaXRfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTYyLDYgKzYyLDggQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHNpemVfdCBq
aXRfdHlwZQogICAgIHJldHVybiAxOwogfQogCitQQVNfQVBJIHZvaWQgaml0X3R5cGVfZHVtcChw
YXNfaGVhcF90eXBlKiB0eXBlLCBwYXNfc3RyZWFtKiBzdHJlYW0pOworCiBQQVNfQVBJIHBhc19w
YWdlX2Jhc2UqIGppdF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnlfcmVtb3RlKHBhc19lbnVtZXJh
dG9yKiBlbnVtZXJhdG9yLCB2b2lkKiBib3VuZGFyeSk7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSBwYXNfcGFnZV9iYXNlKiBqaXRfc21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3Vu
ZGFyeSh2b2lkKiBib3VuZGFyeSk7CkBAIC0xMDIsNyArMTA0LDYgQEAgUEFTX0FQSSBib29sIGpp
dF9oZWFwX2NvbmZpZ19mb3JfZWFjaF9zaAogICAgIGJvb2wgKCpjYWxsYmFjaykocGFzX3NlZ3Jl
Z2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgICAgICAgICAgICAg
ICAgICB2b2lkKiBhcmcpLAogICAgIHZvaWQqIGFyZyk7Ci0KIFBBU19BUEkgYm9vbCBqaXRfaGVh
cF9jb25maWdfZm9yX2VhY2hfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3JlbW90ZSgKICAgICBwYXNf
ZW51bWVyYXRvciogZW51bWVyYXRvciwKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLApA
QCAtMTEwLDYgKzExMSw4IEBAIFBBU19BUEkgYm9vbCBqaXRfaGVhcF9jb25maWdfZm9yX2VhY2hf
c2gKICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeSogZGlyZWN0b3J5LAogICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKSwKICAgICB2
b2lkKiBhcmcpOworUEFTX0FQSSBQQVNfTk9fUkVUVVJOIHZvaWQgaml0X2hlYXBfY29uZmlnX2R1
bXBfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2FyZygKKyAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBh
c19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIAogUEFTX0hF
QVBfQ09ORklHX1NQRUNJQUxJWkFUSU9OX0RFQ0xBUkFUSU9OUyhqaXRfaGVhcF9jb25maWcpOwog
CkBAIC0xNDgsNiArMTUxLDcgQEAgUEFTX0hFQVBfQ09ORklHX1NQRUNJQUxJWkFUSU9OX0RFQ0xB
UkFUSQogICAgICAgICAuYWN0aXZhdGVfY2FsbGJhY2sgPSBqaXRfaGVhcF9jb25maWdfYWN0aXZh
dGUsIFwKICAgICAgICAgLmdldF90eXBlX3NpemUgPSBqaXRfdHlwZV9zaXplLCBcCiAgICAgICAg
IC5nZXRfdHlwZV9hbGlnbm1lbnQgPSBqaXRfdHlwZV9hbGlnbm1lbnQsIFwKKyAgICAgICAgLmR1
bXBfdHlwZSA9IGppdF90eXBlX2R1bXAsIFwKICAgICAgICAgLmxhcmdlX2FsaWdubWVudCA9IEpJ
VF9TTUFMTF9NSU5fQUxJR04sIFwKICAgICAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnID0g
eyBcCiAgICAgICAgICAgICAuYmFzZSA9IHsgXApAQCAtMTc5LDYgKzE4Myw3IEBAIFBBU19IRUFQ
X0NPTkZJR19TUEVDSUFMSVpBVElPTl9ERUNMQVJBVEkKICAgICAgICAgLmZvcl9lYWNoX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeSA9IGppdF9oZWFwX2NvbmZpZ19mb3JfZWFjaF9zaGFyZWRfcGFnZV9k
aXJlY3RvcnksIFwKICAgICAgICAgLmZvcl9lYWNoX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9yZW1v
dGUgPSBcCiAgICAgICAgICAgICBqaXRfaGVhcF9jb25maWdfZm9yX2VhY2hfc2hhcmVkX3BhZ2Vf
ZGlyZWN0b3J5X3JlbW90ZSwgXAorICAgICAgICAuZHVtcF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnlf
YXJnID0gaml0X2hlYXBfY29uZmlnX2R1bXBfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2FyZywgXAog
ICAgICAgICBQQVNfSEVBUF9DT05GSUdfU1BFQ0lBTElaQVRJT05TKGppdF9oZWFwX2NvbmZpZykg
XAogICAgIH0pCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFs
aWduMzJfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL21pbmFsaWduMzJfaGVhcC5jCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAt
ODAsMTIgKzgwLDEyIEBAIHZvaWQqIG1pbmFsaWduMzJfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGkK
IAogdm9pZCogbWluYWxpZ24zMl9hbGxvY2F0ZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQogewot
ICAgIHJldHVybiB0ZXN0X2FsbG9jYXRlX2ltcGwoaGVhcF9yZWYpLnB0cjsKKyAgICByZXR1cm4g
KHZvaWQqKXRlc3RfYWxsb2NhdGVfaW1wbChoZWFwX3JlZikuYmVnaW47CiB9CiAKLXZvaWQqIG1p
bmFsaWduMzJfYWxsb2NhdGVfYXJyYXkocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGNv
dW50LCBzaXplX3QgYWxpZ25tZW50KQordm9pZCogbWluYWxpZ24zMl9hbGxvY2F0ZV9hcnJheV9i
eV9jb3VudChwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQsIHNpemVfdCBhbGln
bm1lbnQpCiB7Ci0gICAgcmV0dXJuIHRlc3RfYWxsb2NhdGVfYXJyYXlfaW1wbChoZWFwX3JlZiwg
Y291bnQsIGFsaWdubWVudCkucHRyOworICAgIHJldHVybiAodm9pZCopdGVzdF9hbGxvY2F0ZV9h
cnJheV9pbXBsX2J5X2NvdW50KGhlYXBfcmVmLCBjb3VudCwgYWxpZ25tZW50KS5iZWdpbjsKIH0K
IAogdm9pZCBtaW5hbGlnbjMyX2RlYWxsb2NhdGUodm9pZCogcHRyKQpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwLmgJKHJldmlz
aW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWdu
MzJfaGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIFBBU19BUEkgZXh0ZXJu
IHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3IKIAogUEFTX0FQSSB2b2lkKiBtaW5hbGlnbjMyX2Fs
bG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZV90IHNpemUpOwogUEFTX0FQSSB2b2lkKiBtaW5h
bGlnbjMyX2FsbG9jYXRlKHBhc19oZWFwX3JlZiogaGVhcF9yZWYpOwotUEFTX0FQSSB2b2lkKiBt
aW5hbGlnbjMyX2FsbG9jYXRlX2FycmF5KHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBj
b3VudCwgc2l6ZV90IGFsaWdubWVudCk7CitQQVNfQVBJIHZvaWQqIG1pbmFsaWduMzJfYWxsb2Nh
dGVfYXJyYXlfYnlfY291bnQocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGNvdW50LCBz
aXplX3QgYWxpZ25tZW50KTsKIFBBU19BUEkgdm9pZCBtaW5hbGlnbjMyX2RlYWxsb2NhdGUodm9p
ZCogcHRyKTsKIFBBU19BUEkgcGFzX2hlYXAqIG1pbmFsaWduMzJfaGVhcF9yZWZfZ2V0X2hlYXAo
cGFzX2hlYXBfcmVmKiBoZWFwX3JlZik7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXBfY29uZmlnLmgJKHJldmlz
aW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWdu
MzJfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQCBQQVNfQVBJ
IHZvaWQgbWluYWxpZ24zMl9oZWFwX2NvbmZpZ19hY3RpCiAgICAgLmFjdGl2YXRlID0gbWluYWxp
Z24zMl9oZWFwX2NvbmZpZ19hY3RpdmF0ZSwgXAogICAgIC5nZXRfdHlwZV9zaXplID0gcGFzX3Np
bXBsZV90eXBlX2FzX2hlYXBfdHlwZV9nZXRfdHlwZV9zaXplLCBcCiAgICAgLmdldF90eXBlX2Fs
aWdubWVudCA9IHBhc19zaW1wbGVfdHlwZV9hc19oZWFwX3R5cGVfZ2V0X3R5cGVfYWxpZ25tZW50
LCBcCisgICAgLmR1bXBfdHlwZSA9IHBhc19zaW1wbGVfdHlwZV9hc19oZWFwX3R5cGVfZHVtcCwg
XAogICAgIC5jaGVja19kZWFsbG9jYXRpb24gPSBmYWxzZSwgXAogICAgIC5zbWFsbF9zZWdyZWdh
dGVkX21pbl9hbGlnbl9zaGlmdCA9IE1JTkFMSUdOMzJfTUlOQUxJR05fU0hJRlQsIFwKICAgICAu
c21hbGxfc2VncmVnYXRlZF9zaGFyaW5nX3NoaWZ0ID0gUEFTX1NNQUxMX1NIQVJJTkdfU0hJRlQs
IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hl
YXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYWdl
c2l6ZTY0a19oZWFwLmMJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtODAsMTIg
KzgwLDEyIEBAIHZvaWQqIHBhZ2VzaXplNjRrX2FsbG9jYXRlX2NvbW1vbl9wcmltaXQKIAogdm9p
ZCogcGFnZXNpemU2NGtfYWxsb2NhdGUocGFzX2hlYXBfcmVmKiBoZWFwX3JlZikKIHsKLSAgICBy
ZXR1cm4gdGVzdF9hbGxvY2F0ZV9pbXBsKGhlYXBfcmVmKS5wdHI7CisgICAgcmV0dXJuICh2b2lk
Kil0ZXN0X2FsbG9jYXRlX2ltcGwoaGVhcF9yZWYpLmJlZ2luOwogfQogCi12b2lkKiBwYWdlc2l6
ZTY0a19hbGxvY2F0ZV9hcnJheShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQs
IHNpemVfdCBhbGlnbm1lbnQpCit2b2lkKiBwYWdlc2l6ZTY0a19hbGxvY2F0ZV9hcnJheV9ieV9j
b3VudChwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQsIHNpemVfdCBhbGlnbm1l
bnQpCiB7Ci0gICAgcmV0dXJuIHRlc3RfYWxsb2NhdGVfYXJyYXlfaW1wbChoZWFwX3JlZiwgY291
bnQsIGFsaWdubWVudCkucHRyOworICAgIHJldHVybiAodm9pZCopdGVzdF9hbGxvY2F0ZV9hcnJh
eV9pbXBsX2J5X2NvdW50KGhlYXBfcmVmLCBjb3VudCwgYWxpZ25tZW50KS5iZWdpbjsKIH0KIAog
dm9pZCBwYWdlc2l6ZTY0a19kZWFsbG9jYXRlKHZvaWQqIHB0cikKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXAuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYWdlc2l6ZTY0a19oZWFwLmgJKHJldmlz
aW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXpl
NjRrX2hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBQQVNfQVBJIGV4dGVy
biBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9yCiAKIFBBU19BUEkgdm9pZCogcGFnZXNpemU2NGtf
YWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplX3Qgc2l6ZSk7CiBQQVNfQVBJIHZvaWQqIHBh
Z2VzaXplNjRrX2FsbG9jYXRlKHBhc19oZWFwX3JlZiogaGVhcF9yZWYpOwotUEFTX0FQSSB2b2lk
KiBwYWdlc2l6ZTY0a19hbGxvY2F0ZV9hcnJheShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXpl
X3QgY291bnQsIHNpemVfdCBhbGlnbm1lbnQpOworUEFTX0FQSSB2b2lkKiBwYWdlc2l6ZTY0a19h
bGxvY2F0ZV9hcnJheV9ieV9jb3VudChwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291
bnQsIHNpemVfdCBhbGlnbm1lbnQpOwogUEFTX0FQSSB2b2lkIHBhZ2VzaXplNjRrX2RlYWxsb2Nh
dGUodm9pZCogcHRyKTsKIFBBU19BUEkgcGFzX2hlYXAqIHBhZ2VzaXplNjRrX2hlYXBfcmVmX2dl
dF9oZWFwKHBhc19oZWFwX3JlZiogaGVhcF9yZWYpOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXBfY29uZmln
LmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3BhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDcg
QEAgUEFTX0FQSSB2b2lkIHBhZ2VzaXplNjRrX2hlYXBfY29uZmlnX2FjdAogICAgIC5hY3RpdmF0
ZSA9IHBhZ2VzaXplNjRrX2hlYXBfY29uZmlnX2FjdGl2YXRlLCBcCiAgICAgLmdldF90eXBlX3Np
emUgPSBwYXNfc2ltcGxlX3R5cGVfYXNfaGVhcF90eXBlX2dldF90eXBlX3NpemUsIFwKICAgICAu
Z2V0X3R5cGVfYWxpZ25tZW50ID0gcGFzX3NpbXBsZV90eXBlX2FzX2hlYXBfdHlwZV9nZXRfdHlw
ZV9hbGlnbm1lbnQsIFwKKyAgICAuZHVtcF90eXBlID0gcGFzX3NpbXBsZV90eXBlX2FzX2hlYXBf
dHlwZV9kdW1wLCBcCiAgICAgLmNoZWNrX2RlYWxsb2NhdGlvbiA9IGZhbHNlLCBcCiAgICAgLnNt
YWxsX3NlZ3JlZ2F0ZWRfbWluX2FsaWduX3NoaWZ0ID0gUEFHRVNJWkU2NEtfTUlOQUxJR05fU0hJ
RlQsIFwKICAgICAuc21hbGxfc2VncmVnYXRlZF9zaGFyaW5nX3NoaWZ0ID0gUEFTX1NNQUxMX1NI
QVJJTkdfU0hJRlQsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmMJKHJldmlz
aW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNl
bGluZV9hbGxvY2F0b3JfdGFibGUuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQxLDExICs0MSwxNyBA
QCB1bnNpZ25lZCBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlX2JvCiAKIHN0YXRpYyB2b2lk
IGluaXRpYWxpemUodm9pZCkKIHsKKyAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiB0YWJsZTsK
KyAgICBzaXplX3QgaW5kZXg7CiAgICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7Ci0gICAgcGFzX2Jh
c2VsaW5lX2FsbG9jYXRvcl90YWJsZSA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKAorICAg
IHRhYmxlID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGUoCiAgICAgICAgIFBBU19OVU1fQkFT
RUxJTkVfQUxMT0NBVE9SUyAqIHNpemVvZihwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKSwKICAgICAg
ICAgInBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUiLAogICAgICAgICBwYXNfb2JqZWN0X2Fs
bG9jYXRpb24pOworICAgIGZvciAoaW5kZXggPSBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlM7
IGluZGV4LS07KQorICAgICAgICB0YWJsZVtpbmRleF0gPSBQQVNfQkFTRUxJTkVfQUxMT0NBVE9S
X0lOSVRJQUxJWkVSOworICAgIHBhc19zdG9yZV9zdG9yZV9mZW5jZSgpOworICAgIHBhc19iYXNl
bGluZV9hbGxvY2F0b3JfdGFibGUgPSB0YWJsZTsKICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygp
OwogfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmFzaWNf
c2VncmVnYXRlZF9wYWdlX2NhY2hlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19iYXNpY19zZWdyZWdhdGVkX3BhZ2VfY2FjaGVzLmgJKHJldmlz
aW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNp
Y19zZWdyZWdhdGVkX3BhZ2VfY2FjaGVzLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1NiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYg
UEFTX0JBU0lDX1NFR1JFR0FURURfUEFHRV9DQUNIRVNfSAotI2RlZmluZSBQQVNfQkFTSUNfU0VH
UkVHQVRFRF9QQUdFX0NBQ0hFU19ICi0KLSNpbmNsdWRlICJwYXNfbWVnYXBhZ2VfY2FjaGUuaCIK
LSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaCIKLQotUEFT
X0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2Jhc2ljX3NlZ3JlZ2F0ZWRfcGFnZV9jYWNo
ZXM7Ci10eXBlZGVmIHN0cnVjdCBwYXNfYmFzaWNfc2VncmVnYXRlZF9wYWdlX2NhY2hlcyBwYXNf
YmFzaWNfc2VncmVnYXRlZF9wYWdlX2NhY2hlczsKLQotc3RydWN0IHBhc19iYXNpY19zZWdyZWdh
dGVkX3BhZ2VfY2FjaGVzIHsKLSAgICBwYXNfbWVnYXBhZ2VfY2FjaGUgbWVnYXBhZ2VfY2FjaGU7
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5IHNoYXJlZF9wYWdlX2Rp
cmVjdG9yeVtQQVNfSEVBUF9TVVJWSVZBTF9NT0RFX05VTV9JTkRJQ0VTXTsKLX07Ci0KLSNkZWZp
bmUgUEFTX0JBU0lDX1NFR1JFR0FURURfUEFHRV9DQUNIRVNfSU5JVElBTElaRVIocGFnZV9jb25m
aWcpIFwKLSAgICAoKHBhc19iYXNpY19zZWdyZWdhdGVkX3BhZ2VfY2FjaGVzKXsgXAotICAgICAg
ICAubWVnYXBhZ2VfY2FjaGUgPSBQQVNfTUVHQVBBR0VfQ0FDSEVfSU5JVElBTElaRVIsIFwKLSAg
ICAgICAgLnNoYXJlZF9wYWdlX2RpcmVjdG9yeSA9IHsgXAotICAgICAgICAgICAgWzAgLi4uIFBB
U19IRUFQX1NVUlZJVkFMX01PREVfTlVNX0lORElDRVMgLSAxXSA9IFwKLSAgICAgICAgICAgICAg
ICBQQVNfU0VHUkVHQVRFRF9TSEFSRURfUEFHRV9ESVJFQ1RPUllfSU5JVElBTElaRVIoIFwKLSAg
ICAgICAgICAgICAgICAgICAgKHBhZ2VfY29uZmlnKSwgXAotICAgICAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9oZWFwX3NoYXJlX3BhZ2VzX3BoeXNpY2FsbHkpIFwKLSAgICAgICAgfSBc
Ci0gICAgfSkKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19CQVNJQ19TRUdS
RUdBVEVEX1BBR0VfQ0FDSEVTX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9leHBlbmRhYmxlX21l
bW9yeS5jCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAicGFzX2NvbmZpZy5oIgorCisjaWYgTElCUEFTX0VOQUJMRUQKKworI2luY2x1ZGUg
InBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmgiCisKKyNpbmNsdWRlICJwYXNfY29tcGFj
dF9ib290c3RyYXBfZnJlZV9oZWFwLmgiCisjaW5jbHVkZSAicGFzX2hlYXBfbG9jay5oIgorCitw
YXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeSBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9y
eV9oZWFkZXI7Cit2b2lkKiBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV9wYXlsb2FkOwor
Cit2b2lkKiBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV9hbGxvY2F0ZShzaXplX3Qgc2l6
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBh
bGlnbm1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiBuYW1lKQoreworICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKyAg
ICAKKyAgICBQQVNfQVNTRVJUKCEhcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnlfaGVhZGVy
LmhlYWRlci5zaXplID09ICEhcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnlfcGF5bG9hZCk7
CisKKyAgICBpZiAoIXBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5X3BheWxvYWQpIHsKKyAg
ICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IG5ld19tZW1vcnlfcmVzdWx0OworCisgICAgICAg
IG5ld19tZW1vcnlfcmVzdWx0ID0gcGFzX2NvbXBhY3RfYm9vdHN0cmFwX2ZyZWVfaGVhcF9hbGxv
Y2F0ZV93aXRoX2FsaWdubWVudCgKKyAgICAgICAgICAgIFBBU19DT01QQUNUX0VYUEVOREFCTEVf
TUVNT1JZX1BBWUxPQURfU0laRSwKKyAgICAgICAgICAgIHBhc19hbGlnbm1lbnRfY3JlYXRlX3Ry
YWRpdGlvbmFsKFBBU19FWFBFTkRBQkxFX01FTU9SWV9QQUdFX1NJWkUpLAorICAgICAgICAgICAg
InBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeSIsCisgICAgICAgICAgICBwYXNfZGVsZWdhdGVf
YWxsb2NhdGlvbik7CisgICAgICAgIFBBU19BU1NFUlQobmV3X21lbW9yeV9yZXN1bHQuZGlkX3N1
Y2NlZWQpOworICAgICAgICBQQVNfQVNTRVJUKG5ld19tZW1vcnlfcmVzdWx0LmJlZ2luKTsKKyAg
ICAgICAgCisgICAgICAgIHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5X3BheWxvYWQgPSAo
dm9pZCopbmV3X21lbW9yeV9yZXN1bHQuYmVnaW47CisgICAgICAgIHBhc19leHBlbmRhYmxlX21l
bW9yeV9jb25zdHJ1Y3QoJnBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5X2hlYWRlci5oZWFk
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFTX0NPTVBBQ1Rf
RVhQRU5EQUJMRV9NRU1PUllfUEFZTE9BRF9TSVpFKTsKKyAgICB9CisKKyAgICBQQVNfQVNTRVJU
KHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5X2hlYWRlci5oZWFkZXIuc2l6ZSk7CisgICAg
UEFTX0FTU0VSVChwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV9wYXlsb2FkKTsKKworICAg
IHJldHVybiBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfYWxsb2NhdGUoJnBhc19jb21wYWN0X2V4cGVu
ZGFibGVfbWVtb3J5X2hlYWRlci5oZWFkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV9wYXlsb2FkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSwgYWxpZ25tZW50LCBw
YXNfY29tcGFjdF9leHBlbmRhYmxlX2hlYXBfa2luZCwgbmFtZSk7Cit9CisKK2Jvb2wgcGFzX2Nv
bXBhY3RfZXhwZW5kYWJsZV9tZW1vcnlfY29tbWl0X2lmX25lY2Vzc2FyeSh2b2lkKiBvYmplY3Qs
IHNpemVfdCBzaXplKQoreworICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKyAgICAK
KyAgICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5X2hlYWRlci5oZWFk
ZXIuc2l6ZSk7CisgICAgUEFTX0FTU0VSVChwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV9w
YXlsb2FkKTsKKworICAgIHJldHVybiBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfY29tbWl0X2lmX25l
Y2Vzc2FyeSgmcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnlfaGVhZGVyLmhlYWRlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2Nv
bXBhY3RfZXhwZW5kYWJsZV9tZW1vcnlfcGF5bG9hZCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0LCBzaXplKTsKK30KKworYm9vbCBw
YXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV9zY2F2ZW5nZShwYXNfZXhwZW5kYWJsZV9tZW1v
cnlfc2NhdmVuZ2Vfa2luZCBraW5kKQoreworICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQo
KTsKKworICAgIFBBU19BU1NFUlQoISFwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV9oZWFk
ZXIuaGVhZGVyLnNpemUgPT0gISFwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV9wYXlsb2Fk
KTsKKworICAgIGlmICghcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnlfcGF5bG9hZCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHBhc19leHBlbmRhYmxlX21lbW9yeV9z
Y2F2ZW5nZSgmcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnlfaGVhZGVyLmhlYWRlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2V4cGVu
ZGFibGVfbWVtb3J5X3BheWxvYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBraW5kKTsKK30KKworI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9leHBlbmRhYmxlX21l
bW9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX0NPTVBBQ1RfRVhQRU5EQUJMRV9NRU1P
UllfSAorI2RlZmluZSBQQVNfQ09NUEFDVF9FWFBFTkRBQkxFX01FTU9SWV9ICisKKyNpbmNsdWRl
ICJwYXNfZXhwZW5kYWJsZV9tZW1vcnkuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCisjZGVm
aW5lIFBBU19DT01QQUNUX0VYUEVOREFCTEVfTUVNT1JZX1BBWUxPQURfU0laRSAyMGx1ICogMTAy
NGx1ICogMTAyNGx1CisjZGVmaW5lIFBBU19DT01QQUNUX0VYUEVOREFCTEVfTUVNT1JZX0hFQURF
Ul9TSVpFIFwKKyAgICAoUEFTX09GRlNFVE9GKHBhc19leHBlbmRhYmxlX21lbW9yeSwgc3RhdGVz
KSArIFwKKyAgICAgUEFTX0NPTVBBQ1RfRVhQRU5EQUJMRV9NRU1PUllfUEFZTE9BRF9TSVpFIC8g
UEFTX0VYUEVOREFCTEVfTUVNT1JZX1BBR0VfU0laRSBcCisgICAgICogc2l6ZW9mKHBhc19leHBl
bmRhYmxlX21lbW9yeV9zdGF0ZSkpCisKK3VuaW9uIHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVt
b3J5OwordHlwZWRlZiB1bmlvbiBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeSBwYXNfY29t
cGFjdF9leHBlbmRhYmxlX21lbW9yeTsKKwordW5pb24gcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9t
ZW1vcnkgeworICAgIHBhc19leHBlbmRhYmxlX21lbW9yeSBoZWFkZXI7CisgICAgY2hhciBmYWtl
X2ZpZWxkX3RvX2ZvcmNlX3NpemVbUEFTX0NPTVBBQ1RfRVhQRU5EQUJMRV9NRU1PUllfSEVBREVS
X1NJWkVdOworfTsKKworUEFTX0FQSSBleHRlcm4gcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1v
cnkgcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnlfaGVhZGVyOworUEFTX0FQSSBleHRlcm4g
dm9pZCogcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnlfcGF5bG9hZDsKKworUEFTX0FQSSB2
b2lkKiBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV9hbGxvY2F0ZShzaXplX3Qgc2l6ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZV90IGFsaWdubWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZSk7CisKK1BBU19BUEkgYm9vbCBwYXNfY29tcGFj
dF9leHBlbmRhYmxlX21lbW9yeV9jb21taXRfaWZfbmVjZXNzYXJ5KHZvaWQqIG9iamVjdCwgc2l6
ZV90IHNpemUpOworCitzdGF0aWMgaW5saW5lIHZvaWQgcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9t
ZW1vcnlfbm90ZV91c2Uodm9pZCogb2JqZWN0LCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBwYXNfZXhw
ZW5kYWJsZV9tZW1vcnlfbm90ZV91c2UoCisgICAgICAgICZwYXNfY29tcGFjdF9leHBlbmRhYmxl
X21lbW9yeV9oZWFkZXIuaGVhZGVyLCBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV9wYXls
b2FkLCBvYmplY3QsIHNpemUpOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBw
YXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV90b3VjaCgKKyAgICB2b2lkKiBvYmplY3QsIHNp
emVfdCBzaXplLCBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfdG91Y2hfa2luZCBraW5kKQoreworICAg
IHN3aXRjaCAoa2luZCkgeworICAgIGNhc2UgcGFzX2V4cGVuZGFibGVfbWVtb3J5X3RvdWNoX3Rv
X25vdGVfdXNlOgorICAgICAgICBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV9ub3RlX3Vz
ZShvYmplY3QsIHNpemUpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBwYXNfZXhw
ZW5kYWJsZV9tZW1vcnlfdG91Y2hfdG9fY29tbWl0X2lmX25lY2Vzc2FyeToKKyAgICAgICAgcmV0
dXJuIHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5X2NvbW1pdF9pZl9uZWNlc3Nhcnkob2Jq
ZWN0LCBzaXplKTsKKyAgICB9CisgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hl
ZCIpOworICAgIHJldHVybiBmYWxzZTsKK30KKworUEFTX0FQSSBib29sIHBhc19jb21wYWN0X2V4
cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlKHBhc19leHBlbmRhYmxlX21lbW9yeV9zY2F2ZW5nZV9r
aW5kIGtpbmQpOworCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0NPTVBBQ1Rf
RVhQRU5EQUJMRV9NRU1PUllfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9k
ZV9wdHIuaAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyLmgJKG5vbmV4aXN0ZW50KQpAQCAt
MSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0KLSNpZm5kZWYgUEFTX0NPTVBBQ1RfU0tJUF9MSVNUX05PREVfUFRSX0gKLSNkZWZpbmUgUEFT
X0NPTVBBQ1RfU0tJUF9MSVNUX05PREVfUFRSX0gKLQotI2luY2x1ZGUgInBhc19jb21wYWN0X3B0
ci5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfc2tpcF9saXN0X25vZGU7
Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2tpcF9saXN0X25vZGUgcGFzX3NraXBfbGlzdF9ub2RlOwot
Ci1QQVNfREVGSU5FX0NPTVBBQ1RfUFRSKHBhc19za2lwX2xpc3Rfbm9kZSwgcGFzX2NvbXBhY3Rf
c2tpcF9saXN0X25vZGVfcHRyKTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBB
U19DT01QQUNUX1NLSVBfTElTVF9OT0RFX1BUUl9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9wdHIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFj
dF9za2lwX2xpc3Rfbm9kZV9wdHJfcHRyLmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9w
dHIuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfQ09NUEFDVF9TS0lQX0xJU1Rf
Tk9ERV9QVFJfUFRSX0gKLSNkZWZpbmUgUEFTX0NPTVBBQ1RfU0tJUF9MSVNUX05PREVfUFRSX1BU
Ul9ICi0KLSNpbmNsdWRlICJwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHIuaCIKLQotUEFT
X0JFR0lOX0VYVEVSTl9DOwotCi1QQVNfREVGSU5FX0NPTVBBQ1RfUFRSKHBhc19jb21wYWN0X3Nr
aXBfbGlzdF9ub2RlX3B0ciwgcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX3B0cik7Ci0K
LVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfQ09NUEFDVF9TS0lQX0xJU1RfTk9E
RV9QVFJfUFRSX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19jb25maWcuaAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC05MCw3ICs5MCw3
IEBACiAjZGVmaW5lIFBBU19DT01QQUNUX1BUUl9NQVNLICAgICAgICAgICAgICgodWludHB0cl90
KSgoKHVpbnQ2NF90KTEgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDw8IChQQVNfQ09NUEFDVF9QVFJfQklUUyAmIDYzKSkgLSAxKSkKIAot
I2RlZmluZSBQQVNfQUxMT0NBVE9SX0lOREVYX0JZVEVTICAgICAgICAyCisjZGVmaW5lIFBBU19B
TExPQ0FUT1JfSU5ERVhfQllURVMgICAgICAgIDQKIAogI2lmZGVmIFBBU19CTUFMTE9DCiAjZGVm
aW5lIFBBU19VU0VfU1BJTkxPQ0tTICAgICAgICAgICAgICAgIDEKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb3VudF9sb29rdXBfbW9kZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb3VudF9sb29rdXBfbW9k
ZS5oCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfY291bnRfbG9va3VwX21vZGUuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDU1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQ
QVNfQ09VTlRfTE9PS1VQX01PREVfSAotI2RlZmluZSBQQVNfQ09VTlRfTE9PS1VQX01PREVfSAot
Ci0jaW5jbHVkZSAicGFzX3V0aWxzLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotZW51bSBw
YXNfY291bnRfbG9va3VwX21vZGUgewotICAgIHBhc19hdm9pZF9jb3VudF9sb29rdXAsCi0gICAg
cGFzX2ZvcmNlX2NvdW50X2xvb2t1cAotfTsKLQotdHlwZWRlZiBlbnVtIHBhc19jb3VudF9sb29r
dXBfbW9kZSBwYXNfY291bnRfbG9va3VwX21vZGU7Ci0KLXN0YXRpYyBpbmxpbmUgY29uc3QgY2hh
ciogcGFzX2NvdW50X2xvb2t1cF9tb2RlX2dldF9zdHJpbmcocGFzX2NvdW50X2xvb2t1cF9tb2Rl
IG1vZGUpCi17Ci0gICAgc3dpdGNoIChtb2RlKSB7Ci0gICAgY2FzZSBwYXNfYXZvaWRfY291bnRf
bG9va3VwOgotICAgICAgICByZXR1cm4gImF2b2lkX2NvdW50X2xvb2t1cCI7Ci0gICAgY2FzZSBw
YXNfZm9yY2VfY291bnRfbG9va3VwOgotICAgICAgICByZXR1cm4gImZvcmNlX2NvdW50X2xvb2t1
cCI7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAg
ICByZXR1cm4gTlVMTDsKLX0KLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19D
T1VOVF9MT09LVVBfTU9ERV9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hl
YXAuYwkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtODAs
NiArODAsOSBAQCBzdGF0aWMgdm9pZCBzZXRfdXBfcmFuZ2UoaW5pdGlhbGl6ZV9kYXRhCiAgICAg
ICAgIHJlc3VsdCA9IF9fYnVpbHRpbl9tdWxfb3ZlcmZsb3coCiAgICAgICAgICAgICBkZXNpZ25h
dGVkX2luZGV4LCBkYXRhLT5udW1fYWxsb2NhdG9yX2luZGljZXMsICZ0YXJnZXRfYWxsb2NhdG9y
X2luZGV4KTsKICAgICAgICAgUEFTX0FTU0VSVCghcmVzdWx0KTsKKyAgICAgICAgcmVzdWx0ID0g
X19idWlsdGluX2FkZF9vdmVyZmxvdygKKyAgICAgICAgICAgIHRhcmdldF9hbGxvY2F0b3JfaW5k
ZXgsIFBBU19MT0NBTF9BTExPQ0FUT1JfVU5TRUxFQ1RFRF9OVU1fSU5ESUNFUywgJnRhcmdldF9h
bGxvY2F0b3JfaW5kZXgpOworICAgICAgICBQQVNfQVNTRVJUKCFyZXN1bHQpOwogICAgICAgICAK
ICAgICAgICAgUEFTX0FTU0VSVCh0YXJnZXRfYWxsb2NhdG9yX2luZGV4ID49IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25leHRfYWxsb2NhdG9yX2luZGV4KTsKICAgICAgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbmV4dF9hbGxvY2F0b3JfaW5kZXggPSB0YXJnZXRfYWxs
b2NhdG9yX2luZGV4OwpAQCAtODcsOCArOTAsOCBAQCBzdGF0aWMgdm9pZCBzZXRfdXBfcmFuZ2Uo
aW5pdGlhbGl6ZV9kYXRhCiAgICAgICAgIGlmIChkZXNpZ25hdGVkX2luZGV4ID09IGRlc2lnbmF0
ZWRfYmVnaW4pIHsKICAgICAgICAgICAgIFBBU19BU1NFUlQoIWRpcmVjdG9yeSk7CiAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJl
X3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudCgKLSAgICAgICAgICAgICAgICBkYXRhLT5oZWFwLCBz
aXplLCAxLCBwYXNfZm9yY2VfY291bnRfbG9va3VwLCBkYXRhLT5jb25maWdfcHRyLCBOVUxMLAor
ICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9k
aXJlY3RvcnlfZm9yX3NpemUoCisgICAgICAgICAgICAgICAgZGF0YS0+aGVhcCwgc2l6ZSwgMSwg
cGFzX2ZvcmNlX3NpemVfbG9va3VwLCBkYXRhLT5jb25maWdfcHRyLCBOVUxMLAogICAgICAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2luaXRpYWxfY3JlYXRpb25fbW9k
ZSk7CiAKICAgICAgICAgICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5KTsKQEAgLTEyMCw3ICsxMjMs
NyBAQCBzdGF0aWMgdm9pZCBzZXRfdXBfcmFuZ2UoaW5pdGlhbGl6ZV9kYXRhCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sYXN0X25vZGUp
ID09IHRhcmdldF9hbGxvY2F0b3JfaW5kZXgpOwogICAgICAgICAgICAgUEFTX0FTU0VSVCgKICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2Fk
KCZkaXJlY3RvcnktPmRhdGEpLT5hbGxvY2F0b3JfaW5kZXgKLSAgICAgICAgICAgICAgICA9PSBk
ZXNpZ25hdGVkX2JlZ2luICogZGF0YS0+bnVtX2FsbG9jYXRvcl9pbmRpY2VzKTsKKyAgICAgICAg
ICAgICAgICA9PSBQQVNfTE9DQUxfQUxMT0NBVE9SX1VOU0VMRUNURURfTlVNX0lORElDRVMgKyBk
ZXNpZ25hdGVkX2JlZ2luICogZGF0YS0+bnVtX2FsbG9jYXRvcl9pbmRpY2VzKTsKICAgICAgICAg
fQogICAgIH0KIApAQCAtMTM5LDcgKzE0Miw4IEBAIHZvaWQgcGFzX2Rlc2lnbmF0ZWRfaW50cmlu
c2ljX2hlYXBfaW5pdGkKICAgICAvKiBUaGlzIG9ubHkgd29ya3MgaWYgaXQncyBjYWxsZWQgYmVm
b3JlIGFueXRoaW5nIGVsc2UgaGFwcGVucy4gKi8KICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9o
ZWxkKCk7CiAgICAgUEFTX0FTU0VSVCghcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlX2ZpcnN0
KTsKLSAgICBQQVNfQVNTRVJUKCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9uZXh0X2Fs
bG9jYXRvcl9pbmRleCk7CisgICAgUEFTX0FTU0VSVCgKKyAgICAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbmV4dF9hbGxvY2F0b3JfaW5kZXggPT0gUEFTX0xPQ0FMX0FMTE9DQVRP
Ul9VTlNFTEVDVEVEX05VTV9JTkRJQ0VTKTsKICAgICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9pc19udWxsKAogICAgICAgICAgICAg
ICAgICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCkpOwogCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNf
aGVhcF9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5saW5lcy5oCShyZXZpc2lvbiAy
ODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVzaWduYXRl
ZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNyArMjYsOSBAQAog
I2lmbmRlZiBQQVNfREVTSUdOQVRFRF9JTlRSSU5TSUNfSEVBUF9JTkxJTkVTX0gKICNkZWZpbmUg
UEFTX0RFU0lHTkFURURfSU5UUklOU0lDX0hFQVBfSU5MSU5FU19ICiAKKyNpbmNsdWRlICJwYXNf
YWxsb2NhdG9yX2luZGV4LmgiCiAjaW5jbHVkZSAicGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hl
YXAuaCIKKyNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAicGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7
CkBAIC02Myw2ICs2NSwxNiBAQCBwYXNfZGVzaWduYXRlZF9pbmRleF9yZXN1bHRfY3JlYXRlX3N1
Y2NlCiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBzaXplX3QKK3Bhc19kZXNpZ25hdGVk
X2luZGV4X3Jlc3VsdF9nZXRfYWxsb2NhdG9yX2luZGV4KHBhc19kZXNpZ25hdGVkX2luZGV4X3Jl
c3VsdCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnKQoreworICAgIFBBU19URVNUSU5HX0FTU0VSVChy
ZXN1bHQuZGlkX3N1Y2NlZWQpOworCisgICAgcmV0dXJuIFBBU19MT0NBTF9BTExPQ0FUT1JfVU5T
RUxFQ1RFRF9OVU1fSU5ESUNFUyArCisgICAgICAgIHJlc3VsdC5pbmRleCAqIHBhc19kZXNpZ25h
dGVkX2ludHJpbnNpY19oZWFwX251bV9hbGxvY2F0b3JfaW5kaWNlcyhjb25maWcpOworfQorCitz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90CiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNf
aGVhcF9udW1fZGVzaWduYXRlZF9pbmRpY2VzX2Zvcl9zbWFsbF9jb25maWcoCiAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcgc21hbGxfY29uZmlnKQogewpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Vuc3VyZV9oZWFwX3dpdGhfcGFnZV9jYWNoZXMuYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW5zdXJl
X2hlYXBfd2l0aF9wYWdlX2NhY2hlcy5jCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW5zdXJlX2hlYXBfd2l0aF9wYWdlX2NhY2hlcy5j
CSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIHBhc19oZWFwKiBwYXNfZW5zdXJlX2hl
YXBfd2l0aF9wYWdlX2NhY2gKICAgICBydW50aW1lX2NvbmZpZy0+cGFnZV9jYWNoZXMgPSBwYWdl
X2NhY2hlczsKIAogICAgIFBBU19BU1NFUlQoIWhlYXBfcmVmLT5oZWFwKTsKLSAgICBQQVNfQVNT
RVJUKGhlYXBfcmVmLT5hbGxvY2F0b3JfaW5kZXggPT0gVUlOVF9NQVgpOworICAgIFBBU19BU1NF
UlQoIWhlYXBfcmVmLT5hbGxvY2F0b3JfaW5kZXgpOwogCiAgICAgcmV0dXJuIHBhc19lbnN1cmVf
aGVhcChoZWFwX3JlZiwgaGVhcF9yZWZfa2luZCwgY29uZmlnLCAmcnVudGltZV9jb25maWctPmJh
c2UpOwogfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1l
cmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmMJKHJldmlzaW9u
IDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJh
dGVfc2VncmVnYXRlZF9oZWFwcy5jCSh3b3JraW5nIGNvcHkpCkBAIC03MTYsMTcgKzcxNiwxNyBA
QCBib29sIHBhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcyhwYXNfCiAgICAgICAgICAgICAg
ICAgbGF5b3V0X25vZGUgPSBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX2xvYWRfcmVtb3RlKAogICAgICAgICAgICAgICAgICAgICBlbnVtZXJhdG9yLCAm
Y2FjaGVfbm9kZS0+bmV4dCk7CiAKLSAgICAgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBV
SU5UX01BWDsKKyAgICAgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSAwOwogICAgICAgICAg
ICAgICAgIGhhc19hbGxvY2F0b3IgPSBmYWxzZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgaWYgKGhhc19hbGxvY2F0b3IpIHsKICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yKiBhbGxvY2F0b3I7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKGFs
bG9jYXRvcl9pbmRleCA+PSB0bGMtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZCkKKyAgICAg
ICAgICAgICAgICBpZiAoIWFsbG9jYXRvcl9pbmRleCB8fCBhbGxvY2F0b3JfaW5kZXggPj0gdGxj
LT5hbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogCi0gICAgICAgICAgICAgICAgYWxsb2NhdG9yID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9n
ZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwodGxjLCBhbGxvY2F0b3JfaW5kZXgpOworICAgICAgICAg
ICAgICAgIGFsbG9jYXRvciA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9j
YXRvcl9kaXJlY3QodGxjLCBhbGxvY2F0b3JfaW5kZXgpOwogICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIGNvbnNpZGVyX2FsbG9jYXRvcihlbnVtZXJhdG9yLCAmY29udGV4dCwgYWxs
b2NhdG9yKTsKICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19leHBlbmRhYmxlX21lbW9yeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19leHBlbmRhYmxlX21lbW9yeS5jCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19leHBlbmRhYmxlX21l
bW9yeS5jCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzg2IEBACisvKgorICogQ29weXJpZ2h0
IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJwYXNfY29uZmlnLmgiCisK
KyNpZiBMSUJQQVNfRU5BQkxFRAorCisjaW5jbHVkZSAicGFzX2V4cGVuZGFibGVfbWVtb3J5Lmgi
CisKKyNpbmNsdWRlICJwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuaCIKKyNpbmNsdWRlICJwYXNf
aGVhcF9sb2NrLmgiCisjaW5jbHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCisKK3ZvaWQgcGFzX2V4
cGVuZGFibGVfbWVtb3J5X2NvbnN0cnVjdChwYXNfZXhwZW5kYWJsZV9tZW1vcnkqIG1lbW9yeSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKK3sKKyAg
ICBzaXplX3QgaW5kZXg7CisKKyAgICBtZW1vcnktPmJ1bXAgPSAwOworICAgIFBBU19BU1NFUlQo
KHVuc2lnbmVkKXNpemUgPT0gc2l6ZSk7CisgICAgbWVtb3J5LT5zaXplID0gKHVuc2lnbmVkKXNp
emU7CisKKyAgICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVkKHNpemUsIFBBU19FWFBFTkRBQkxF
X01FTU9SWV9QQUdFX1NJWkUpKTsKKyAgICAKKyAgICBmb3IgKGluZGV4ID0gc2l6ZSAvIFBBU19F
WFBFTkRBQkxFX01FTU9SWV9QQUdFX1NJWkU7IGluZGV4LS07KSB7CisgICAgICAgIG1lbW9yeS0+
c3RhdGVzW2luZGV4XSA9CisgICAgICAgICAgICBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVf
Y3JlYXRlKFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0RFQ09NTUlUVEVELCAxKTsK
KyAgICB9Cit9CisKK3ZvaWQqIHBhc19leHBlbmRhYmxlX21lbW9yeV90cnlfYWxsb2NhdGUocGFz
X2V4cGVuZGFibGVfbWVtb3J5KiBoZWFkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZvaWQqIHBheWxvYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3QgYWxpZ25tZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfaGVhcF9raW5kIGhlYXBfa2luZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZSkKK3sKKyAgICBzaXplX3Qg
YWxpZ25lZF9idW1wOworICAgIHNpemVfdCBuZXdfYWxpZ25lZF9idW1wOworICAgIHNpemVfdCBp
bmRleDsKKyAgICBzaXplX3QgZmlyc3Q7CisgICAgc2l6ZV90IGxhc3Q7CisgICAgdm9pZCogcmVz
dWx0OworICAgIHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV92ZXJzaW9uIHZlcnNpb247CisK
KyAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CisKKyAgICBQQVNfQVNTRVJUKHBhc19p
c19hbGlnbmVkKGhlYWRlci0+c2l6ZSwgUEFTX0VYUEVOREFCTEVfTUVNT1JZX1BBR0VfU0laRSkp
OworICAgIFBBU19BU1NFUlQoaGVhcF9raW5kID09IHBhc19jb21wYWN0X2V4cGVuZGFibGVfaGVh
cF9raW5kCisgICAgICAgICAgICAgICB8fCBoZWFwX2tpbmQgPT0gcGFzX2xhcmdlX2V4cGVuZGFi
bGVfaGVhcF9raW5kKTsKKworICAgIGlmICghc2l6ZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisK
KyAgICBhbGlnbmVkX2J1bXAgPSBoZWFkZXItPmJ1bXA7CisgICAgaWYgKGFsaWduZWRfYnVtcCA+
PSBoZWFkZXItPnNpemUKKyAgICAgICAgfHwgaGVhZGVyLT5zaXplIC0gYWxpZ25lZF9idW1wIDwg
c2l6ZW9mKHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV92ZXJzaW9uKSkKKyAgICAgICAgcmV0
dXJuIE5VTEw7CisKKyAgICBhbGlnbmVkX2J1bXAgKz0gc2l6ZW9mKHBhc19leHBlbmRhYmxlX21l
bW9yeV9zdGF0ZV92ZXJzaW9uKTsKKworICAgIGFsaWduZWRfYnVtcCA9IHBhc19yb3VuZF91cF90
b19wb3dlcl9vZl8yKGFsaWduZWRfYnVtcCwgYWxpZ25tZW50KTsKKyAgICBpZiAoYWxpZ25lZF9i
dW1wID49IGhlYWRlci0+c2l6ZQorICAgICAgICB8fCBoZWFkZXItPnNpemUgLSBhbGlnbmVkX2J1
bXAgPCBzaXplKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGZpcnN0ID0gKGFsaWduZWRf
YnVtcCAtIHNpemVvZihwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfdmVyc2lvbikpIC8gUEFT
X0VYUEVOREFCTEVfTUVNT1JZX1BBR0VfU0laRTsKKyAgICBsYXN0ID0gKGFsaWduZWRfYnVtcCAr
IHNpemUgLSAxKSAvIFBBU19FWFBFTkRBQkxFX01FTU9SWV9QQUdFX1NJWkU7CisKKyAgICB2ZXJz
aW9uID0gUEFTX01BWChwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfZ2V0X3ZlcnNpb24oaGVh
ZGVyLT5zdGF0ZXNbZmlyc3RdKSwKKyAgICAgICAgICAgICAgICAgICAgICBwYXNfZXhwZW5kYWJs
ZV9tZW1vcnlfc3RhdGVfZ2V0X3ZlcnNpb24oaGVhZGVyLT5zdGF0ZXNbbGFzdF0pKTsKKworICAg
IGhlYWRlci0+c3RhdGVzW2ZpcnN0XSA9CisgICAgICAgIHBhc19leHBlbmRhYmxlX21lbW9yeV9z
dGF0ZV9jcmVhdGUoUEFTX0VYUEVOREFCTEVfTUVNT1JZX1NUQVRFX0tJTkRfSlVTVF9VU0VELCB2
ZXJzaW9uKTsKKyAgICBoZWFkZXItPnN0YXRlc1tsYXN0XSA9CisgICAgICAgIHBhc19leHBlbmRh
YmxlX21lbW9yeV9zdGF0ZV9jcmVhdGUoUEFTX0VYUEVOREFCTEVfTUVNT1JZX1NUQVRFX0tJTkRf
SlVTVF9VU0VELCB2ZXJzaW9uKTsKKyAgICBmb3IgKGluZGV4ID0gZmlyc3QgKyAxOyBpbmRleCA8
IGxhc3Q7ICsraW5kZXgpIHsKKyAgICAgICAgaGVhZGVyLT5zdGF0ZXNbaW5kZXhdID0KKyAgICAg
ICAgICAgIHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9jcmVhdGUoUEFTX0VYUEVOREFCTEVf
TUVNT1JZX1NUQVRFX0tJTkRfSU5URVJJT1IsIHZlcnNpb24pOworICAgIH0KKworICAgIG5ld19h
bGlnbmVkX2J1bXAgPSBhbGlnbmVkX2J1bXAgKyBzaXplOworICAgIFBBU19BU1NFUlQoKHVuc2ln
bmVkKW5ld19hbGlnbmVkX2J1bXAgPT0gbmV3X2FsaWduZWRfYnVtcCk7CisgICAgaGVhZGVyLT5i
dW1wID0gKHVuc2lnbmVkKW5ld19hbGlnbmVkX2J1bXA7CisKKyAgICByZXN1bHQgPSAoY2hhciop
cGF5bG9hZCArIGFsaWduZWRfYnVtcDsKKworICAgICgocGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0
YXRlX3ZlcnNpb24qKXJlc3VsdClbLTFdID0gdmVyc2lvbjsKKworICAgIHBhc19kaWRfYWxsb2Nh
dGUocmVzdWx0LCBzaXplLCBoZWFwX2tpbmQsIG5hbWUsIHBhc19vYmplY3RfYWxsb2NhdGlvbik7
CisKKyAgICBwYXNfc3RvcmVfc3RvcmVfZmVuY2UoKTsKKyAgICAKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCit2b2lkKiBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfYWxsb2NhdGUocGFzX2V4cGVuZGFi
bGVfbWVtb3J5KiBoZWFkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dm9pZCogcGF5bG9hZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
X3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxp
Z25tZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2tp
bmQgaGVhcF9raW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIqIG5hbWUpCit7CisgICAgdm9pZCogcmVzdWx0OworICAgIHJlc3VsdCA9IHBhc19leHBl
bmRhYmxlX21lbW9yeV90cnlfYWxsb2NhdGUoaGVhZGVyLCBwYXlsb2FkLCBzaXplLCBhbGlnbm1l
bnQsIGhlYXBfa2luZCwgbmFtZSk7CisgICAgUEFTX0FTU0VSVChyZXN1bHQgfHwgIXNpemUpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgcGFzX2V4cGVuZGFibGVfbWVtb3J5X2NvbW1p
dF9pZl9uZWNlc3NhcnkocGFzX2V4cGVuZGFibGVfbWVtb3J5KiBoZWFkZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIHBheWxvYWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIG9iamVjdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNp
emUpCit7CisgICAgc2l6ZV90IGZpcnN0OworICAgIHNpemVfdCBsYXN0OworICAgIHVpbnRwdHJf
dCBvZmZzZXQ7CisgICAgcGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX3ZlcnNpb24gaGVhZGVy
X3ZlcnNpb247CisgICAgcGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlIGZpcnN0X3N0YXRlOwor
ICAgIHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9raW5kIGZpcnN0X2tpbmQ7CisgICAgcGFz
X2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX3ZlcnNpb24gZmlyc3RfdmVyc2lvbjsKKyAgICBwYXNf
ZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGUgbGFzdF9zdGF0ZTsKKyAgICBwYXNfZXhwZW5kYWJsZV9t
ZW1vcnlfc3RhdGVfa2luZCBsYXN0X2tpbmQ7CisgICAgcGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0
YXRlX3ZlcnNpb24gbGFzdF92ZXJzaW9uOworICAgIHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0
ZV92ZXJzaW9uIG5ld192ZXJzaW9uOworICAgIHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZSBu
ZXdfc3RhdGU7CisKKyAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CisKKyAgICBQQVNf
VEVTVElOR19BU1NFUlQocGFzX2lzX2FsaWduZWQoaGVhZGVyLT5zaXplLCBQQVNfRVhQRU5EQUJM
RV9NRU1PUllfUEFHRV9TSVpFKSk7CisKKyAgICBvZmZzZXQgPSAodWludHB0cl90KW9iamVjdCAt
ICh1aW50cHRyX3QpcGF5bG9hZDsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQob2Zmc2V0ID49IHNp
emVvZihwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfdmVyc2lvbikpOworICAgIFBBU19URVNU
SU5HX0FTU0VSVChvZmZzZXQgPCBoZWFkZXItPnNpemUpOworICAgIFBBU19URVNUSU5HX0FTU0VS
VChvZmZzZXQgKyBzaXplIDw9IGhlYWRlci0+c2l6ZSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJU
KG9mZnNldCA8IGhlYWRlci0+YnVtcCk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKG9mZnNldCAr
IHNpemUgPD0gaGVhZGVyLT5idW1wKTsKKworICAgIGZpcnN0ID0gKG9mZnNldCAtIHNpemVvZihw
YXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfdmVyc2lvbikpIC8gUEFTX0VYUEVOREFCTEVfTUVN
T1JZX1BBR0VfU0laRTsKKyAgICBsYXN0ID0gKG9mZnNldCArIHNpemUgLSAxKSAvIFBBU19FWFBF
TkRBQkxFX01FTU9SWV9QQUdFX1NJWkU7CisKKyAgICBoZWFkZXJfdmVyc2lvbiA9ICgocGFzX2V4
cGVuZGFibGVfbWVtb3J5X3N0YXRlX3ZlcnNpb24qKW9iamVjdClbLTFdOworICAgIGZpcnN0X3N0
YXRlID0gaGVhZGVyLT5zdGF0ZXNbZmlyc3RdOworICAgIGZpcnN0X2tpbmQgPSBwYXNfZXhwZW5k
YWJsZV9tZW1vcnlfc3RhdGVfZ2V0X2tpbmQoZmlyc3Rfc3RhdGUpOworICAgIGZpcnN0X3ZlcnNp
b24gPSBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfZ2V0X3ZlcnNpb24oZmlyc3Rfc3RhdGUp
OworCisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGZpcnN0X2tpbmQgIT0gUEFTX0VYUEVOREFCTEVf
TUVNT1JZX1NUQVRFX0tJTkRfSU5URVJJT1IpOworCisgICAgaWYgKFBBU19MSUtFTFkoZmlyc3Qg
PT0gbGFzdCkpCisgICAgICAgIGdvdG8gaWdub3JlX2xhc3RfcGFnZTsKKyAgICAKKyAgICBsYXN0
X3N0YXRlID0gaGVhZGVyLT5zdGF0ZXNbbGFzdF07CisgICAgbGFzdF9raW5kID0gcGFzX2V4cGVu
ZGFibGVfbWVtb3J5X3N0YXRlX2dldF9raW5kKGxhc3Rfc3RhdGUpOworCisgICAgaWYgKGxhc3Rf
a2luZCA9PSBQQVNfRVhQRU5EQUJMRV9NRU1PUllfU1RBVEVfS0lORF9JTlRFUklPUikgeworICAg
ICAgICAvKiBUaGlzIGlzIGEgZnVubnkgY2FzZS4gSXQgbWVhbnM6CisgICAgICAgICAgIAorICAg
ICAgICAgICAtPiBXZSBhbGxvY2F0ZWQgYW4gb2JqZWN0IG9mIHNpemUgWC4KKyAgICAgICAgICAg
CisgICAgICAgICAgIC0+IFdlIG5vdGVfdXNlJ2QgaXQgYXMgaWYgaXQgaGFkIHNpemUgWSwgd2hl
cmUgWSA8IFguCisgICAgICAgICAgIAorICAgICAgICAgICBBbmQgdGhlIGxhc3QgcGFnZSBhY2Nv
cmRpbmcgdG8gc2l6ZSBZIGVuZGVkIHVwIGJlaW5nIGludGVyaW9yIHRvIHRoZSBvYmplY3QuCisg
ICAgICAgICAgIAorICAgICAgICAgICBMdWNraWx5LCB0aGlzIGlzIHRvdGFsbHkgZmluZSEgSW50
ZXJpb3IgcGFnZSBkZWNvbW1pdCBpcyBnb3Zlcm5lZCBieSB0aGUgZmlyc3QgcGFnZS4gU28sIGlu
CisgICAgICAgICAgIHRoaXMgY2FzZSwgaWYgd2UganVzdCBpZ25vcmUgdGhlIGxhc3QgcGFnZSwg
YW5kIGl0J3MgYWxsIGdvb2QuICovCisgICAgICAgIGdvdG8gaWdub3JlX2xhc3RfcGFnZTsKKyAg
ICB9CisgICAgCisgICAgbGFzdF92ZXJzaW9uID0gcGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRl
X2dldF92ZXJzaW9uKGxhc3Rfc3RhdGUpOworCisgICAgaWYgKGZpcnN0X3ZlcnNpb24gPT0gaGVh
ZGVyX3ZlcnNpb24gJiYgbGFzdF92ZXJzaW9uID09IGhlYWRlcl92ZXJzaW9uKSB7CisgICAgICAg
IC8qIFRoZSB2ZXJzaW9ucyBtYXRjaGluZyBpcyBwcm9vZiB0aGF0IHdlIGhhZCBuZXZlciBkZWNv
bW1pdHRlZCBhbnkgcGFnZSB0aGF0IHRoaXMgb2JqZWN0IHN0cmFkZGxlcy4KKyAgICAgICAgICAg
SXQgYWxzbyBwcm92ZXMgdGhhdCB3ZSBoYWQgbmV2ZXIgZGVjb21taXR0ZWQgdGhlIHBhZ2VzIGFu
ZCB0aGVuIHJlY29tbWl0dGVkIHRoZW4gd2l0aCBhIHByaW9yIGNhbGwKKyAgICAgICAgICAgdG8g
Y29tbWl0X2lmX25lY2Vzc2FyeSBvbiBzb21lIG90aGVyIG9iamVjdCB0aGF0IHNoYXJlcyBhbnkg
b2YgdGhvc2UgcGFnZXMuCisgICAgICAgIAorICAgICAgICAgICBOb3RlIHRoYXQgdGhlcmUgaXMg
YSBwYXJ0aWFsIHJlZHVuZGFuY3kgYmV0d2VlbiB0aGUgc3RhdGVfa2luZCBhbmQgdmVyc2lvbiBt
YXRjaGluZy4gRm9yIHRoZSBwdXJwb3NlCisgICAgICAgICAgIG9mIHJlYXNvbmluZyBhYm91dCB0
aGUgc3RhdGUsIGxldCdzIGltYWdpbmUgYSBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIHRoYXQgY2Fu
IGhhcHBlbmQgdG8gdGhpcyBtZW1vcnkKKyAgICAgICAgICAgdGhhdCBjb21wcmlzZXMgdGhlc2Ug
YWN0aW9uczogYWxsb2NhdGUsIGNvbW1pdF9pZl9uZWNlc3NhcnksIGRlY29tbWl0LXJlcXVlc3Qs
IGFuZCBkZWNvbW1pdC1hY3R1YWwuCisgICAgICAgICAgIFdlIGRvbid0IGNhcmUgYWJvdXQgdGhl
IGFuY2llbnQgaGlzdG9yeSwgYnV0IG9ubHkgdGhlIHJlY2VudCB0aGluZ3MgdGhhdCBoYXBwZW5l
ZC4KKyAgICAgICAgCisgICAgICAgICAgIC0+IHZlcnNpb25zIG1hdGNoIGFuZCBzdGF0ZSBpcyBu
b3QgZGVjb21taXR0ZWQ6IHRoZSBsYXN0IHRoaW5nIHRoYXQgaGFwcGVuZWQgdG8gdGhpcyBvYmpl
Y3Qgd2FzIHRoYXQKKyAgICAgICAgICAgICAgaXQgaGFkIGJlZW4gYWxsb2NhdGVkIG9yIGNvbW1p
dHRlZC4gSXQncyBub3QgcG9zc2libGUgZm9yIHRoZXJlIHRvIGhhdmUgYmVlbiBhIGRlY29tbWl0
IChyZXF1ZXN0CisgICAgICAgICAgICAgIG9yIGFjdHVhbCkgdGhhdCBoYXBwZW5lZCBtb3JlIHJl
Y2VudGx5IHRoYW4gYWxsb2NhdGUgb3IgY29tbWl0X2lmX25lY2Vzc2FyeS4KKyAgICAgICAgCisg
ICAgICAgICAgIC0+IHZlcnNpb25zIGRvbid0IG1hdGNoIGFuZCBzdGF0ZSBpcyBub3QgZGVjb21t
aXR0ZWQ6IHRoZSBsYXN0IHRoaW5nIHRoYXQgaGFwcGVuZWQgdG8gdGhpcyBvYmplY3QKKyAgICAg
ICAgICAgICAgd2FzIGRlY29tbWl0LXJlcXVlc3QgYW5kIG1heWJlIGRlY29tbWl0LWFjdHVhbC4g
U29tZSAqb3RoZXIqIG9iamVjdCBpbiB0aGUgc2FtZSBwYWdlcyBtYXkgaGF2ZSBoYWQKKyAgICAg
ICAgICAgICAgYW4gZXZlbiBtb3JlIHJlY2VudCBjb21taXRfaWZfbmVjZXNzYXJ5IG9yIGFsbG9j
YXRlLgorICAgICAgICAKKyAgICAgICAgICAgLT4gdmVyc2lvbnMgZG9uJ3QgbWF0Y2ggYW5kIHN0
YXRlIGlzIGRlY29tbWl0dGVkOiB0aGUgbGFzdCB0aGluZyB0aGF0IGhhcHBlbmVkIHRvIHRoaXMg
b2JqZWN0IGFuZCB0bworICAgICAgICAgICAgICB0aGUgcGFnZXMgaXQgb2NjdXBpZXMgd2FzIGRl
Y29tbWl0LXJlcXVlc3QgYW5kIG1heWJlIGRlY29tbWl0LWFjdHVhbC4gTm8gb3RoZXIgb2JqZWN0
cyBpbiB0aGUgc2FtZQorICAgICAgICAgICAgICBwYWdlcyBjb3VsZCBoYXZlIGhhZCBhIG1vcmUg
cmVjZW50IGNvbW1pdF9pZl9uZWNlc3Nhcnkgb3IgYWxsb2NhdGUuCisgICAgICAgIAorICAgICAg
ICAgICAtPiB2ZXJzaW9ucyBtYXRjaCBhbmQgc3RhdGUgaXMgZGVjb21taXR0ZWQ6IGltcG9zc2li
bGUuICovCisgICAgICAgIAorICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoZmlyc3Rfa2luZCAh
PSBQQVNfRVhQRU5EQUJMRV9NRU1PUllfU1RBVEVfS0lORF9ERUNPTU1JVFRFRCk7CisgICAgICAg
IFBBU19URVNUSU5HX0FTU0VSVChsYXN0X2tpbmQgIT0gUEFTX0VYUEVOREFCTEVfTUVNT1JZX1NU
QVRFX0tJTkRfREVDT01NSVRURUQpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisg
ICAgUEFTX0FTU0VSVChmaXJzdF92ZXJzaW9uID49IGhlYWRlcl92ZXJzaW9uKTsKKyAgICBQQVNf
QVNTRVJUKGxhc3RfdmVyc2lvbiA+PSBoZWFkZXJfdmVyc2lvbik7CisgICAgUEFTX0FTU0VSVChm
aXJzdF92ZXJzaW9uID4gaGVhZGVyX3ZlcnNpb24gfHwgbGFzdF92ZXJzaW9uID4gaGVhZGVyX3Zl
cnNpb24pOworCisgICAgbmV3X3ZlcnNpb24gPSBQQVNfTUFYKGZpcnN0X3ZlcnNpb24sIGxhc3Rf
dmVyc2lvbik7CisgICAgbmV3X3N0YXRlID0gcGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX2Ny
ZWF0ZShQQVNfRVhQRU5EQUJMRV9NRU1PUllfU1RBVEVfS0lORF9KVVNUX1VTRUQsIG5ld192ZXJz
aW9uKTsKKworICAgIGhlYWRlci0+c3RhdGVzW2ZpcnN0XSA9IG5ld19zdGF0ZTsKKyAgICBoZWFk
ZXItPnN0YXRlc1tsYXN0XSA9IG5ld19zdGF0ZTsKKworICAgIGdvdG8gZG9uZTsKKworaWdub3Jl
X2xhc3RfcGFnZToKKyAgICBpZiAoZmlyc3RfdmVyc2lvbiA9PSBoZWFkZXJfdmVyc2lvbikgewor
ICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoZmlyc3Rfa2luZCAhPSBQQVNfRVhQRU5EQUJMRV9N
RU1PUllfU1RBVEVfS0lORF9ERUNPTU1JVFRFRCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisKKyAgICBQQVNfQVNTRVJUKGZpcnN0X3ZlcnNpb24gPiBoZWFkZXJfdmVyc2lvbik7CisK
KyAgICBuZXdfdmVyc2lvbiA9IGZpcnN0X3ZlcnNpb247CisgICAgbmV3X3N0YXRlID0gcGFzX2V4
cGVuZGFibGVfbWVtb3J5X3N0YXRlX2NyZWF0ZShQQVNfRVhQRU5EQUJMRV9NRU1PUllfU1RBVEVf
S0lORF9KVVNUX1VTRUQsIG5ld192ZXJzaW9uKTsKKworICAgIGhlYWRlci0+c3RhdGVzW2ZpcnN0
XSA9IG5ld19zdGF0ZTsKKworZG9uZToKKyAgICAoKHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0
ZV92ZXJzaW9uKilvYmplY3QpWy0xXSA9IG5ld192ZXJzaW9uOworICAgIHJldHVybiB0cnVlOwor
fQorCitzdGF0aWMgYm9vbCBzY2F2ZW5nZV9pbXBsKHBhc19leHBlbmRhYmxlX21lbW9yeSogaGVh
ZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBwYXlsb2FkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2Vfa2luZCBzY2F2
ZW5nZV9raW5kKQoreworICAgIHNpemVfdCBpbmRleDsKKyAgICBzaXplX3QgaW5kZXhfZW5kOwor
ICAgIGJvb2wgcmVzdWx0OworICAgIAorICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsK
KworICAgIFBBU19BU1NFUlQoaGVhZGVyLT5zaXplKTsKKyAgICBQQVNfQVNTRVJUKHBhc19pc19h
bGlnbmVkKGhlYWRlci0+c2l6ZSwgUEFTX0VYUEVOREFCTEVfTUVNT1JZX1BBR0VfU0laRSkpOwor
ICAgIFBBU19BU1NFUlQoaGVhZGVyLT5idW1wIDwgaGVhZGVyLT5zaXplKTsKKworICAgIGluZGV4
X2VuZCA9IHBhc19leHBlbmRhYmxlX21lbW9yeV9udW1fcGFnZXNfaW5fdXNlKGhlYWRlcik7Cisg
ICAgcmVzdWx0ID0gZmFsc2U7CisKKyAgICAvKiBUaGlzIGxvb3AgbmVlZHMgdG8gYmUgc3VwZXIg
ZWZmaWNpZW50IGluIHRoZSBjYXNlIHdoZXJlIGJ5dGVzIGFyZSBpbiB0aGUgcmFuZ2UKKyAgICAg
ICBbSlVTVF9VU0VELCBNQVhfSlVTVF9VU0VEKS4gSW4gYWxsIG90aGVyIGNhc2VzLCB3ZSdyZSBn
b2luZyB0byBjYWxsIGRlY29tbWl0LCBzbyB0aGVuIHdlIGp1c3Qgd2FudCB0bworICAgICAgIG1p
bmltaXplIHRoZSBudW1iZXIgb2YgdGltZXMgd2UgY2FsbCBkZWNvbW1pdC4gKi8KKyAgICBmb3Ig
KGluZGV4ID0gMDsgaW5kZXggPCBpbmRleF9lbmQ7ICsraW5kZXgpIHsKKyAgICAgICAgcGFzX2V4
cGVuZGFibGVfbWVtb3J5X3N0YXRlIHN0YXRlOworICAgICAgICBwYXNfZXhwZW5kYWJsZV9tZW1v
cnlfc3RhdGVfa2luZCBraW5kOworICAgICAgICBzaXplX3Qgb3RoZXJfaW5kZXg7CisKKyAgICAg
ICAgc3RhdGUgPSBoZWFkZXItPnN0YXRlc1tpbmRleF07CisgICAgICAgIGtpbmQgPSBwYXNfZXhw
ZW5kYWJsZV9tZW1vcnlfc3RhdGVfZ2V0X2tpbmQoc3RhdGUpOworCisgICAgICAgIGlmIChraW5k
IDw9IFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0lOVEVSSU9SKSB7CisgICAgICAg
ICAgICBQQVNfVEVTVElOR19BU1NFUlQoa2luZCA9PSBQQVNfRVhQRU5EQUJMRV9NRU1PUllfU1RB
VEVfS0lORF9ERUNPTU1JVFRFRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGtp
bmQgPT0gUEFTX0VYUEVOREFCTEVfTUVNT1JZX1NUQVRFX0tJTkRfSU5URVJJT1IpOworICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQo
a2luZCA+PSBQQVNfRVhQRU5EQUJMRV9NRU1PUllfU1RBVEVfS0lORF9KVVNUX1VTRUQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICYmIGtpbmQgPD0gUEFTX0VYUEVOREFCTEVfTUVNT1JZX1NU
QVRFX0tJTkRfTUFYX0pVU1RfVVNFRCk7CisKKyAgICAgICAgaWYgKHNjYXZlbmdlX2tpbmQgPT0g
cGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlX3BlcmlvZGljKSB7CisgICAgICAgICAgICBp
ZiAoUEFTX0xJS0VMWShraW5kIDwgUEFTX0VYUEVOREFCTEVfTUVNT1JZX1NUQVRFX0tJTkRfTUFY
X0pVU1RfVVNFRCkpIHsKKyAgICAgICAgICAgICAgICBoZWFkZXItPnN0YXRlc1tpbmRleF0gPSBw
YXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfd2l0aF9raW5kKHN0YXRlLCBraW5kICsgMSk7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLyogVGhpcyBwYXJ0IG9m
IHRoZSBsb29wIGRvZXNuJ3QgaGF2ZSB0byBiZSBhcyBmYXN0LCBzaW5jZSB3ZSdyZSBnb2luZyB0
byBkbyBhIGRlY29tbWl0IGFueXdheS4gV2UKKyAgICAgICAgICAgICAgIGp1c3Qgd2FudCB0byBt
YWtlIHN1cmUgd2Ugb25seSBkbyBvbmUgZGVjb21taXQuIFRvIHRoYXQgZW5kLCB3ZSBsb29rIGZv
ciBhIHNwYW4gb2YgTUFYX0pVU1RfVVNFRAorICAgICAgICAgICAgICAgYW5kIElOVEVSSU9SLiBJ
ZiB3ZSBzZWUgbm90aGluZyBidXQgdGhvc2UgdHdvIHZhbHVlcywgdGhlbiB3ZSdyZSBpbiBhIGRl
Y29tbWl0IHNwYW4uICovCisgICAgICAgICAgICBQQVNfQVNTRVJUKGtpbmQgPT0gUEFTX0VYUEVO
REFCTEVfTUVNT1JZX1NUQVRFX0tJTkRfTUFYX0pVU1RfVVNFRCk7CisgICAgICAgIH0KKworICAg
ICAgICBmb3IgKG90aGVyX2luZGV4ID0gaW5kZXg7CisgICAgICAgICAgICAgb3RoZXJfaW5kZXgg
PCBpbmRleF9lbmQ7CisgICAgICAgICAgICAgKytvdGhlcl9pbmRleCkgeworICAgICAgICAgICAg
c3RhdGUgPSBoZWFkZXItPnN0YXRlc1tvdGhlcl9pbmRleF07CisgICAgICAgICAgICBraW5kID0g
cGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX2dldF9raW5kKHN0YXRlKTsKKyAgICAgICAgICAg
IGlmIChraW5kID09IFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0lOVEVSSU9SKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKHNjYXZlbmdlX2tpbmQg
PT0gcGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlX3BlcmlvZGljKSB7CisgICAgICAgICAg
ICAgICAgaWYgKGtpbmQgIT0gUEFTX0VYUEVOREFCTEVfTUVNT1JZX1NUQVRFX0tJTkRfTUFYX0pV
U1RfVVNFRCkgeworICAgICAgICAgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoa2luZCA8
IFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX01BWF9KVVNUX1VTRUQpOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoc2NhdmVuZ2Vfa2luZCA9PSBwYXNfZXhw
ZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2VfZm9yY2VkKTsKKyAgICAgICAgICAgICAgICBpZiAoa2lu
ZCA8IFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0pVU1RfVVNFRCkKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGtp
bmQgPD0gUEFTX0VYUEVOREFCTEVfTUVNT1JZX1NUQVRFX0tJTkRfTUFYX0pVU1RfVVNFRCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBoZWFkZXItPnN0YXRlc1tvdGhlcl9pbmRleF0gPSBw
YXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfY3JlYXRlKAorICAgICAgICAgICAgICAgIFBBU19F
WFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0RFQ09NTUlUVEVELAorICAgICAgICAgICAgICAg
IHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9nZXRfdmVyc2lvbihzdGF0ZSkgKyAxKTsKKyAg
ICAgICAgfQorCisgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0IGJ5IHRoZSB0aW1lIHdlIGRlY29t
bWl0LCBub2JvZHkgY2FuIGxpZSBhYm91dCB1c2luZyB0aGUgc3R1ZmYgd2UgYXJlIGRlY29tbWl0
dGluZy4KKyAgICAgICAgICAgVGhlIHRyaWNreSB0aGluZyBpcyB0aGF0IG5vdGVfdXNlIG1heSBv
Y2N1ciBhdCBzb21lIHRpbWUgb3RoZXIgdGhhbiB3aGVuIHdlIGFjdHVhbGx5IHVzZWQgdGhlCisg
ICAgICAgICAgIG1lbW9yeS4gU28sIGl0IG1pZ2h0IGhhcHBlbiBhZnRlciB3ZSBoYXZlIGFscmVh
ZHkgZGVjb21taXR0ZWQsIG9yIGRlY2lkZWQgdG8gZGVjb21taXQuICovCisgICAgICAgIHBhc19z
dG9yZV9zdG9yZV9mZW5jZSgpOworCisgICAgICAgIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdF9h
c3ltbWV0cmljKChjaGFyKilwYXlsb2FkICsgaW5kZXggKiBQQVNfRVhQRU5EQUJMRV9NRU1PUllf
UEFHRV9TSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
b3RoZXJfaW5kZXggLSBpbmRleCkgKiBQQVNfRVhQRU5EQUJMRV9NRU1PUllfUEFHRV9TSVpFKTsK
KworICAgICAgICAvKiBBdCB0aGlzIHBvaW50LCBhbnkgb2YgdGhlIHBhZ2VzIGluIHRoaXMgcmFu
Z2UgY291bGQgZ2V0IGRlY29tbWl0dGVkLCBidXQgaXQgd29uJ3QgbmVjZXNzYXJpbHkKKyAgICAg
ICAgICAgaGFwcGVuIGltbWVkaWF0ZWx5LiBBbnkgd3JpdGUgdG8gdGhlc2UgcGFnZXMgd2lsbCBj
YW5jZWwgdGhlIGRlY29tbWl0LCBvciB1bmRvIGl0IGlmIGl0J3MgYWxyZWFkeQorICAgICAgICAg
ICBoYXBwZW5lZC4KKyAgICAgICAgICAgCisgICAgICAgICAgIFRoZSB1c2Ugb2YgdmVyc2lvbnMg
cHJvdGVjdHMgdXMgYmVjYXVzZToKKyAgICAgICAgICAgCisgICAgICAgICAgIC0+IEFsbCBsb2Fk
cyBmcm9tIGV4cGVuZGFibGUgbWVtb3J5IGFyZSBlbmdpbmVlcmVkIHRvIGdvIGRvd24gYSBzbG93
IHBhdGggdGhhdCBkb2VzCisgICAgICAgICAgICAgIGNvbW1pdF9pZl9uZWNlc3NhcnkgaWYgdGhl
IHRoZXkgZW5jb3VudGVyIHplcm9lcy4gU28sIHdlIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQg
d2hhdCBoYXBwZW5zCisgICAgICAgICAgICAgIHRoZXJlLgorICAgICAgICAgICAKKyAgICAgICAg
ICAgLT4gSWYgY29tbWl0X2lmX25lY2Vzc2FyeSBpcyBjYWxsZWQgYW5kIHRoZSBtZW1vcnkgaGFk
bid0IGV2ZXIgYmVlbiBkZWNvbW1pdHRlZCwgdGhlbiB0aGUgdmVyc2lvbnMKKyAgICAgICAgICAg
ICAgd2lsbCBtYXRjaCB1cCBhbmQgaXQnbGwgZG8gbm90aGluZy4KKyAgICAgICAgICAgCisgICAg
ICAgICAgIC0+IElmIGNvbW1pdF9pZl9uZWNlc3NhcnkgaXMgY2FsbGVkIGFuZCB0aGUgZGVjb21t
aXQgY2FsbCBoYWQgaGFwcGVuZWQsIHRoZW4gdGhlIHZlcnNpb25zIHdvbid0CisgICAgICAgICAg
ICAgIG1hdGNoLiBUaGlzIHdpbGwgYmUgdHJ1ZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90
IHRoZSBPUyBhY3R1YWxseSBkZWNvbW1pdHRlZCB0aGUgbWVtb3J5LgorICAgICAgICAgICAgICBT
bywgY29tbWl0X2lmX25lY2Vzc2FyeSB3aWxsIHJldHVybiB0cnVlIGFuZCB0aGUgbWVtb3J5IHdp
bGwgZ2V0IHJlbWF0ZXJpYWxpemVkLiBUaGlzIHdpbGwgYmUKKyAgICAgICAgICAgICAgdHJ1ZSBl
dmVuIGZvciBtdWx0aXBsZSBjb21taXRfaWZfbmVjZXNzYXJ5IGNhbGxzIG9uIGRpZmZlcmVudCBv
YmplY3RzIHdpdGhpbiB0aGUgc2FtZSBwYWdlLCBvcgorICAgICAgICAgICAgICBpbiBjYXNlcyB3
aGVyZSBvbmUgY29tbWl0X2lmX25lY2Vzc2FyeSBjYWxsIGhhcHBlbmVkIGZvciBhbiBvYmplY3Qg
d2l0aGluIGEgcGFnZSBhbmQgYW5vdGhlciBmb3IKKyAgICAgICAgICAgICAgYW4gb2JqZWN0IHRo
YXQgcGFydGx5IHN0cmFkZGxlcyB0aGF0IHBhZ2UgYW5kIG90aGVyIHBhZ2VzLgorICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgTm90ZSB0aGF0IHdlIGNvdWxkIGhhdmUgYWxtb3N0IGdvdHRlbiB0
aGlzIHRvIHdvcmsgYnkgbm90IGhhdmluZyB2ZXJzaW9uIG51bWJlcnMsIGJ1dCBpbnN0ZWFkLCBo
YXZpbmcKKyAgICAgICAgICAgdGhlIGNvbW1pdF9pZl9uZWNlc3NhcnkgY2FsbCB0ZXN0IGlmIGFu
eSBvZiB0aGUgcGFydHMgb2YgdGhlIG9iamVjdCBoYWQgYmVjb21lIHplcm8uIEJ1dCB0aGF0IHdv
dWxkCisgICAgICAgICAgIGJlIHdlaXJkOgorICAgICAgICAgICAKKyAgICAgICAgICAgLT4gSXQn
cyBhIGxvdCBoYXJkZXIgdG8gcmVhc29uIGFib3V0IHRoYXQgdmVyc2lvbiBvZiB0aGUgYWxnb3Jp
dGhtLgorICAgICAgICAgICAKKyAgICAgICAgICAgLT4gSXQgd291bGQgbWVhbiByZXF1aXJpbmcg
dGhhdCB6ZXJvIGlzIG5ldmVyIHVzZWQgYXMgYSBsZWdpdGltYXRlIHZhbHVlIGZvciBhbnkgcGFy
dHMgb2Ygb2JqZWN0cworICAgICAgICAgICAgICBzdG9yZWQgaW4gZXhwZW5kYWJsZSBtZW1vcnku
ICovCisgICAgICAgIAorICAgICAgICBpbmRleCA9IG90aGVyX2luZGV4IC0gMTsKKyAgICB9CisK
KyAgICBpZiAoc2NhdmVuZ2Vfa2luZCA9PSBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2Vf
Zm9yY2VkKQorICAgICAgICBQQVNfQVNTRVJUKCFyZXN1bHQpOworCisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworYm9vbCBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2UocGFzX2V4cGVuZGFi
bGVfbWVtb3J5KiBoZWFkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
b2lkKiBwYXlsb2FkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2V4
cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlX2tpbmQga2luZCkKK3sKKyAgICBzd2l0Y2ggKGtpbmQp
IHsKKyAgICBjYXNlIHBhc19leHBlbmRhYmxlX21lbW9yeV9zY2F2ZW5nZV9wZXJpb2RpYzoKKyAg
ICAgICAgcmV0dXJuIHNjYXZlbmdlX2ltcGwoaGVhZGVyLCBwYXlsb2FkLCBwYXNfZXhwZW5kYWJs
ZV9tZW1vcnlfc2NhdmVuZ2VfcGVyaW9kaWMpOworICAgIGNhc2UgcGFzX2V4cGVuZGFibGVfbWVt
b3J5X3NjYXZlbmdlX2ZvcmNlZDoKKyAgICAgICAgcmV0dXJuIHNjYXZlbmdlX2ltcGwoaGVhZGVy
LCBwYXlsb2FkLCBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2VfZm9yY2VkKTsKKyAgICB9
CisgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCisKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19leHBlbmRhYmxlX21lbW9yeS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19leHBlbmRhYmxlX21l
bW9yeS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19leHBlbmRhYmxlX21lbW9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjUxIEBA
CisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
UEFTX0VYUEVOREFCTEVfTUVNT1JZX0gKKyNkZWZpbmUgUEFTX0VYUEVOREFCTEVfTUVNT1JZX0gK
KworI2luY2x1ZGUgInBhc19oZWFwX2tpbmQuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitz
dHJ1Y3QgcGFzX2V4cGVuZGFibGVfbWVtb3J5OwordHlwZWRlZiBzdHJ1Y3QgcGFzX2V4cGVuZGFi
bGVfbWVtb3J5IHBhc19leHBlbmRhYmxlX21lbW9yeTsKKwordHlwZWRlZiB1aW50NjRfdCBwYXNf
ZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGU7Cit0eXBlZGVmIHVuc2lnbmVkIHBhc19leHBlbmRhYmxl
X21lbW9yeV9zdGF0ZV9raW5kOwordHlwZWRlZiB1aW50NjRfdCBwYXNfZXhwZW5kYWJsZV9tZW1v
cnlfc3RhdGVfdmVyc2lvbjsKKworI2RlZmluZSBQQVNfRVhQRU5EQUJMRV9NRU1PUllfU1RBVEVf
TlVNX0tJTkRfQklUUyAgICAgICAoKHVpbnQ2NF90KTMpCisjZGVmaW5lIFBBU19FWFBFTkRBQkxF
X01FTU9SWV9TVEFURV9LSU5EX01BU0sgXAorICAgICgoKHVpbnQ2NF90KTEgPDwgUEFTX0VYUEVO
REFCTEVfTUVNT1JZX1NUQVRFX05VTV9LSU5EX0JJVFMpIC0gKHVpbnQ2NF90KTEpCisjZGVmaW5l
IFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0RFQ09NTUlUVEVEICAgIDB1CisjZGVm
aW5lIFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0lOVEVSSU9SICAgICAgIDF1Cisj
ZGVmaW5lIFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0pVU1RfVVNFRCAgICAgIDJ1
CisjZGVmaW5lIFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX01BWF9KVVNUX1VTRUQg
IDV1CisKK3N0cnVjdCBwYXNfZXhwZW5kYWJsZV9tZW1vcnkgeworICAgIHVuc2lnbmVkIGJ1bXA7
CisgICAgdW5zaWduZWQgc2l6ZTsKKyAgICBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGUgc3Rh
dGVzWzFdOworfTsKKworI2RlZmluZSBQQVNfRVhQRU5EQUJMRV9NRU1PUllfUEFHRV9TSVpFIDE2
Mzg0bHUKKworZW51bSBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfdG91Y2hfa2luZCB7CisgICAgcGFz
X2V4cGVuZGFibGVfbWVtb3J5X3RvdWNoX3RvX25vdGVfdXNlLAorICAgIHBhc19leHBlbmRhYmxl
X21lbW9yeV90b3VjaF90b19jb21taXRfaWZfbmVjZXNzYXJ5Cit9OworCit0eXBlZGVmIGVudW0g
cGFzX2V4cGVuZGFibGVfbWVtb3J5X3RvdWNoX2tpbmQgcGFzX2V4cGVuZGFibGVfbWVtb3J5X3Rv
dWNoX2tpbmQ7CisKK2VudW0gcGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlX2tpbmQgewor
ICAgIHBhc19leHBlbmRhYmxlX21lbW9yeV9zY2F2ZW5nZV9wZXJpb2RpYywKKyAgICBwYXNfZXhw
ZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2VfZm9yY2VkCit9OworCit0eXBlZGVmIGVudW0gcGFzX2V4
cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlX2tpbmQgcGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZl
bmdlX2tpbmQ7CisKK3N0YXRpYyBpbmxpbmUgcGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX2tp
bmQKK3Bhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9nZXRfa2luZChwYXNfZXhwZW5kYWJsZV9t
ZW1vcnlfc3RhdGUgc3RhdGUpCit7CisgICAgcmV0dXJuIChwYXNfZXhwZW5kYWJsZV9tZW1vcnlf
c3RhdGVfa2luZCkoc3RhdGUgJiBQQVNfRVhQRU5EQUJMRV9NRU1PUllfU1RBVEVfS0lORF9NQVNL
KTsKK30KKworc3RhdGljIGlubGluZSBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfdmVyc2lv
bgorcGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX2dldF92ZXJzaW9uKHBhc19leHBlbmRhYmxl
X21lbW9yeV9zdGF0ZSBzdGF0ZSkKK3sKKyAgICByZXR1cm4gc3RhdGUgPj4gUEFTX0VYUEVOREFC
TEVfTUVNT1JZX1NUQVRFX05VTV9LSU5EX0JJVFM7Cit9CisKK3N0YXRpYyBpbmxpbmUgcGFzX2V4
cGVuZGFibGVfbWVtb3J5X3N0YXRlIHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9jcmVhdGUo
CisgICAgcGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX2tpbmQga2luZCwKKyAgICBwYXNfZXhw
ZW5kYWJsZV9tZW1vcnlfc3RhdGVfdmVyc2lvbiB2ZXJzaW9uKQoreworICAgIHBhc19leHBlbmRh
YmxlX21lbW9yeV9zdGF0ZSByZXN1bHQ7CisKKyAgICByZXN1bHQgPSBraW5kIHwgKHZlcnNpb24g
PDwgUEFTX0VYUEVOREFCTEVfTUVNT1JZX1NUQVRFX05VTV9LSU5EX0JJVFMpOworCisgICAgUEFT
X1RFU1RJTkdfQVNTRVJUKHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9nZXRfa2luZChyZXN1
bHQpID09IGtpbmQpOworICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfZXhwZW5kYWJsZV9tZW1v
cnlfc3RhdGVfZ2V0X3ZlcnNpb24ocmVzdWx0KSA9PSB2ZXJzaW9uKTsKKworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgcGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlIHBh
c19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV93aXRoX2tpbmQoCisgICAgcGFzX2V4cGVuZGFibGVf
bWVtb3J5X3N0YXRlIHN0YXRlLAorICAgIHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9raW5k
IGtpbmQpCit7CisgICAgcmV0dXJuIHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9jcmVhdGUo
CisgICAgICAgIGtpbmQsIHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9nZXRfdmVyc2lvbihz
dGF0ZSkpOworfQorCitzdGF0aWMgaW5saW5lIHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZSBw
YXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfd2l0aF92ZXJzaW9uKAorICAgIHBhc19leHBlbmRh
YmxlX21lbW9yeV9zdGF0ZSBzdGF0ZSwKKyAgICBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVf
dmVyc2lvbiB2ZXJzaW9uKQoreworICAgIHJldHVybiBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3Rh
dGVfY3JlYXRlKAorICAgICAgICBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfZ2V0X2tpbmQo
c3RhdGUpLCB2ZXJzaW9uKTsKK30KKworUEFTX0FQSSB2b2lkIHBhc19leHBlbmRhYmxlX21lbW9y
eV9jb25zdHJ1Y3QocGFzX2V4cGVuZGFibGVfbWVtb3J5KiBtZW1vcnksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSk7CisKK1BBU19BUEkg
dm9pZCogcGFzX2V4cGVuZGFibGVfbWVtb3J5X3RyeV9hbGxvY2F0ZShwYXNfZXhwZW5kYWJsZV9t
ZW1vcnkqIGhlYWRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2b2lkKiBwYXlsb2FkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfa2luZCBoZWFwX2tpbmQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Y2hhciogbmFtZSk7CisKK1BBU19BUEkgdm9pZCogcGFzX2V4cGVuZGFibGVfbWVtb3J5X2FsbG9j
YXRlKHBhc19leHBlbmRhYmxlX21lbW9yeSogaGVhZGVyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogcGF5bG9hZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFsaWdubWVudCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2tpbmQgaGVhcF9r
aW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Y2hhciogbmFtZSk7CisKKy8qIENhbGwgdGhpcyB3aGlsZSBob2xkaW5nIHRoZSBoZWFwX2xvY2ss
IG5vdCBqdXN0IGJlY2F1c2UgaXQgbW9kaWZpZXMgc3RhdGUgdGhhdCBpcyBwcm90ZWN0ZWQgYnkg
dGhhdCBsb2NrLAorICAgYnV0IGJlY2F1c2UgYW55dGltZSB5b3UgcmVsZWFzZSB0aGUgaGVhcF9s
b2NrLCB0aGUgbWVtb3J5IG1heSBiZSBkZWNvbW1pdHRlZC4KKyAgIAorICAgTGlrZSBtb3N0IGJv
b2wtcmV0dXJuaW5nIGZ1bmN0aW9ucyBpbiBsaWJwYXMsIHRoaXMgcmV0dXJucyB0cnVlIGlmIHNv
bWV0aGluZyBoYXBwZW5lZC4KKyAgIAorICAgU286CisgICAKKyAgIElmIHRoaXMgcmV0dXJucyBm
YWxzZTogaXQgbWVhbnMgdGhhdCB0aGUgbWVtb3J5IHdhcyBhbHJlYWR5IGNvbW1pdHRlZC4KKyAg
IElmIHRoaXMgcmV0dXJucyB0cnVlOiBpdCBtZWFucyB0aGF0IHRoZSBtZW1vcnkgd2FzIHByZXZp
b3VzbHkgZGVjb21taXR0ZWQgYW5kIHdhcyBub3cgbmV3bHkgY29tbWl0dGVkLiAqLworUEFTX0FQ
SSBib29sIHBhc19leHBlbmRhYmxlX21lbW9yeV9jb21taXRfaWZfbmVjZXNzYXJ5KHBhc19leHBl
bmRhYmxlX21lbW9yeSogaGVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIHBheWxvYWQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogb2JqZWN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBz
aXplKTsKKworZW51bSBwYXNfZXhwZW5kYWJsZV9tZW1veV9ub3RlX3VzZV9pbXBsX2tpbmQgewor
ICAgIHBhc19leHBlbmRhYmxlX21lbW95X25vdGVfdXNlX2ltcGxfZmlyc3QsCisgICAgcGFzX2V4
cGVuZGFibGVfbWVtb3lfbm90ZV91c2VfaW1wbF9sYXN0LAorfTsKKwordHlwZWRlZiBlbnVtIHBh
c19leHBlbmRhYmxlX21lbW95X25vdGVfdXNlX2ltcGxfa2luZCBwYXNfZXhwZW5kYWJsZV9tZW1v
eV9ub3RlX3VzZV9pbXBsX2tpbmQ7CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBh
c19leHBlbmRhYmxlX21lbW9yeV9ub3RlX3VzZV9pbXBsKAorICAgIHBhc19leHBlbmRhYmxlX21l
bW9yeV9zdGF0ZSogc3RhdGUsCisgICAgcGFzX2V4cGVuZGFibGVfbWVtb3lfbm90ZV91c2VfaW1w
bF9raW5kIGltcGxfa2luZCkKK3sKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIHBhc19leHBlbmRh
YmxlX21lbW9yeV9zdGF0ZSBvbGRfc3RhdGU7CisgICAgICAgIHBhc19leHBlbmRhYmxlX21lbW9y
eV9zdGF0ZV9raW5kIG9sZF9raW5kOworCisgICAgICAgIG9sZF9zdGF0ZSA9ICpzdGF0ZTsKKyAg
ICAgICAgb2xkX2tpbmQgPSBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfZ2V0X2tpbmQob2xk
X3N0YXRlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChQQVNfTElLRUxZKG9sZF9raW5kID09IFBB
U19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0pVU1RfVVNFRCkpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgaWYgKG9sZF9raW5kID09IFBBU19FWFBFTkRBQkxFX01FTU9SWV9T
VEFURV9LSU5EX0lOVEVSSU9SKSB7CisgICAgICAgICAgICAvKiBJZiB3ZSBoaXQgdGhpcyBmb3Ig
dGhlIGxhc3QgcGFnZSwgdGhlbiB0aGlzIGlzIGEgZnVubnkgY2FzZS4gSXQgbWVhbnM6CisgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgIC0+IFdlIGFsbG9jYXRlZCBhbiBvYmplY3Qgb2Yg
c2l6ZSBYLgorICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAtPiBXZSBub3RlX3VzZSdk
IGl0IGFzIGlmIGl0IGhhZCBzaXplIFksIHdoZXJlIFkgPCBYLgorICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICBBbmQgdGhlIGxhc3QgcGFnZSBhY2NvcmRpbmcgdG8gc2l6ZSBZIGVuZGVk
IHVwIGJlaW5nIGludGVyaW9yIHRvIHRoZSBvYmplY3QuCisgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgIEx1Y2tpbHksIHRoaXMgaXMgdG90YWxseSBmaW5lISBJbnRlcmlvciBwYWdlIGRl
Y29tbWl0IGlzIGdvdmVybmVkIGJ5IHRoZSBmaXJzdCBwYWdlLiBTbywgaW4KKyAgICAgICAgICAg
ICAgIHRoaXMgY2FzZSwgaWYgd2UganVzdCBub3RlX3VzZSB0aGUgZmlyc3QgcGFnZSwgaXQncyBh
bGwgZ29vZC4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgT24gdGhlIG90aGVyIGhhbmQs
IGlmIHdlIGhpdCB0aGlzIGZvciB0aGUgZmlyc3QgcGFnZSwgdGhlbiBzb21ldGhpbmcgaXMgbm90
IE9LLiAqLworICAgICAgICAgICAgUEFTX0FTU0VSVChpbXBsX2tpbmQgPT0gcGFzX2V4cGVuZGFi
bGVfbWVtb3lfbm90ZV91c2VfaW1wbF9sYXN0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmIChvbGRfa2luZCA9PSBQQVNfRVhQRU5EQUJMRV9NRU1PUllfU1RB
VEVfS0lORF9ERUNPTU1JVFRFRCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAo
cGFzX2NvbXBhcmVfYW5kX3N3YXBfdWludDY0X3dlYWsoCisgICAgICAgICAgICAgICAgc3RhdGUs
CisgICAgICAgICAgICAgICAgb2xkX3N0YXRlLAorICAgICAgICAgICAgICAgIHBhc19leHBlbmRh
YmxlX21lbW9yeV9zdGF0ZV93aXRoX2tpbmQoCisgICAgICAgICAgICAgICAgICAgIG9sZF9zdGF0
ZSwgUEFTX0VYUEVOREFCTEVfTUVNT1JZX1NUQVRFX0tJTkRfSlVTVF9VU0VEKSkpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgfQorfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBw
YXNfZXhwZW5kYWJsZV9tZW1vcnlfbm90ZV91c2UocGFzX2V4cGVuZGFibGVfbWVtb3J5KiBoZWFk
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdm9pZCogcGF5bG9hZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBvYmplY3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNp
emUpCit7CisgICAgc2l6ZV90IGZpcnN0OworICAgIHNpemVfdCBsYXN0OworICAgIHVpbnRwdHJf
dCBvZmZzZXQ7CisKKyAgICBQQVNfVEVTVElOR19BU1NFUlQob2JqZWN0KTsKKyAgICBQQVNfVEVT
VElOR19BU1NFUlQoc2l6ZSk7CisKKyAgICAvKiBJZiB3ZSdyZSB0ZXN0aW5nLCBtYWtlIHN1cmUg
dGhhdCBhbnkgcmVhZHMgZnJvbSB0aGUgaGVhZGVyIGhhcHBlbiAqYWZ0ZXIqIHdlIGhhdmUgYWxs
b2NhdGVkIHRoZQorICAgICAgIG9iamVjdC4gSWYgd2UncmUgbm90IHRlc3RpbmcsIHRoZW4gaXQg
ZG9lc24ndCBtYXR0ZXIsIGJlY2F1c2UgaW4gdGhlIHdvcnN0IGNhc2Ugd2UnbGwganVzdCBzZWUK
KyAgICAgICBkZWNvbW1pdGVkIHBhZ2Ugc3RhdGVzIGFuZCBkbyBub3RoaW5nLiBJdCdzIE9LIGZv
ciB1cyB0byBzb21ldGltZXMgZG8gbm90aGluZy4gKi8KKyAgICBpZiAoUEFTX0VOQUJMRV9URVNU
SU5HKQorICAgICAgICBoZWFkZXIgKz0gcGFzX2RlcGVuZCgodWludHB0cl90KW9iamVjdCk7CisK
KyAgICBvZmZzZXQgPSAodWludHB0cl90KW9iamVjdCAtICh1aW50cHRyX3QpcGF5bG9hZDsKKyAg
ICBQQVNfVEVTVElOR19BU1NFUlQob2Zmc2V0ID49IHNpemVvZihwYXNfZXhwZW5kYWJsZV9tZW1v
cnlfc3RhdGVfdmVyc2lvbikpOworICAgIFBBU19URVNUSU5HX0FTU0VSVChvZmZzZXQgPCBoZWFk
ZXItPnNpemUpOworICAgIFBBU19URVNUSU5HX0FTU0VSVChvZmZzZXQgKyBzaXplIDw9IGhlYWRl
ci0+c2l6ZSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKG9mZnNldCA8IGhlYWRlci0+YnVtcCk7
CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKG9mZnNldCArIHNpemUgPD0gaGVhZGVyLT5idW1wKTsK
KworICAgIGZpcnN0ID0gKG9mZnNldCAtIHNpemVvZihwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3Rh
dGVfdmVyc2lvbikpIC8gUEFTX0VYUEVOREFCTEVfTUVNT1JZX1BBR0VfU0laRTsKKyAgICBsYXN0
ID0gKG9mZnNldCArIHNpemUgLSAxKSAvIFBBU19FWFBFTkRBQkxFX01FTU9SWV9QQUdFX1NJWkU7
CisKKyAgICBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfbm90ZV91c2VfaW1wbChoZWFkZXItPnN0YXRl
cyArIGZpcnN0LCBwYXNfZXhwZW5kYWJsZV9tZW1veV9ub3RlX3VzZV9pbXBsX2ZpcnN0KTsKKyAg
ICBpZiAoZmlyc3QgIT0gbGFzdCkKKyAgICAgICAgcGFzX2V4cGVuZGFibGVfbWVtb3J5X25vdGVf
dXNlX2ltcGwoaGVhZGVyLT5zdGF0ZXMgKyBsYXN0LCBwYXNfZXhwZW5kYWJsZV9tZW1veV9ub3Rl
X3VzZV9pbXBsX2xhc3QpOworfQorCisvKiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgcG9zc2li
bHkgbW9yZSBzY2F2ZW5naW5nIHRvIGRvIGxhdGVyLiAqLworUEFTX0FQSSBib29sIHBhc19leHBl
bmRhYmxlX21lbW9yeV9zY2F2ZW5nZShwYXNfZXhwZW5kYWJsZV9tZW1vcnkqIGhlYWRlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogcGF5bG9hZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2V4cGVuZGFi
bGVfbWVtb3J5X3NjYXZlbmdlX2tpbmQga2luZCk7CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQg
cGFzX2V4cGVuZGFibGVfbWVtb3J5X251bV9wYWdlcyhwYXNfZXhwZW5kYWJsZV9tZW1vcnkqIGhl
YWRlcikKK3sKKyAgICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVkKGhlYWRlci0+c2l6ZSwgUEFT
X0VYUEVOREFCTEVfTUVNT1JZX1BBR0VfU0laRSkpOworICAgIHJldHVybiBoZWFkZXItPnNpemUg
LyBQQVNfRVhQRU5EQUJMRV9NRU1PUllfUEFHRV9TSVpFOworfQorCitzdGF0aWMgaW5saW5lIHVu
c2lnbmVkIHBhc19leHBlbmRhYmxlX21lbW9yeV9udW1fcGFnZXNfaW5fdXNlKHBhc19leHBlbmRh
YmxlX21lbW9yeSogaGVhZGVyKQoreworICAgIHVpbnRwdHJfdCByZXN1bHQ7CisKKyAgICByZXN1
bHQgPSBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMihoZWFkZXItPmJ1bXAsIFBBU19FWFBFTkRB
QkxFX01FTU9SWV9QQUdFX1NJWkUpCisgICAgICAgIC8gUEFTX0VYUEVOREFCTEVfTUVNT1JZX1BB
R0VfU0laRTsKKworICAgIFBBU19BU1NFUlQoKHVuc2lnbmVkKXJlc3VsdCA9PSByZXN1bHQpOwor
ICAgIHJldHVybiAodW5zaWduZWQpcmVzdWx0OworfQorCitQQVNfRU5EX0VYVEVSTl9DOworCisj
ZW5kaWYgLyogUEFTX0VYUEVOREFCTEVfTUVNT1JZX0ggKi8KKwpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5jCShyZXZpc2lvbiAyODU3ODUpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5jCSh3b3JraW5nIGNvcHkp
CkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBwYXNfaGVhcF9yZXNldF9oZWFwX3JlZihwYXNfaGVh
cCogaAogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaGVhcC0+aGVhcF9yZWYtPmhlYXAgPSBO
VUxMOwotICAgIGhlYXAtPmhlYXBfcmVmLT5hbGxvY2F0b3JfaW5kZXggPSBVSU5UX01BWDsKKyAg
ICBoZWFwLT5oZWFwX3JlZi0+YWxsb2NhdG9yX2luZGV4ID0gMDsKICAgICBzd2l0Y2ggKGhlYXAt
PmhlYXBfcmVmX2tpbmQpIHsKICAgICBjYXNlIHBhc19ub3JtYWxfaGVhcF9yZWZfa2luZDoKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTgzLDE5ICsxODMsMTkgQEAgdm9pZCBwYXNfaGVhcF9yZXNldF9o
ZWFwX3JlZihwYXNfaGVhcCogaAogfQogCiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoK
LXBhc19oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnRfc2xvdygKK3Bhc19oZWFw
X2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3Jfc2l6ZV9zbG93KAogICAgIHBhc19oZWFwKiBoZWFw
LAotICAgIHNpemVfdCBjb3VudCwKKyAgICBzaXplX3Qgc2l6ZSwKICAgICBzaXplX3QgYWxpZ25t
ZW50LAotICAgIHBhc19jb3VudF9sb29rdXBfbW9kZSBmb3JjZV9jb3VudF9sb29rdXAsCisgICAg
cGFzX3NpemVfbG9va3VwX21vZGUgZm9yY2Vfc2l6ZV9sb29rdXAsCiAgICAgcGFzX2hlYXBfY29u
ZmlnKiBjb25maWcsCiAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCkKIHsKICAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcmVzdWx0OwogICAgIAogICAgIHBhc19oZWFwX2xvY2tf
bG9jaygpOwotICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGly
ZWN0b3J5X2Zvcl9jb3VudCgKLSAgICAgICAgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCwgY291bnQs
IGFsaWdubWVudCwgZm9yY2VfY291bnRfbG9va3VwLCBjb25maWcsIGNhY2hlZF9pbmRleCwKKyAg
ICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3Jf
c2l6ZSgKKyAgICAgICAgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCwgc2l6ZSwgYWxpZ25tZW50LCBm
b3JjZV9zaXplX2xvb2t1cCwgY29uZmlnLCBjYWNoZWRfaW5kZXgsCiAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Z1bGxfY3JlYXRpb25fbW9kZSk7CiAgICAgcGFzX2hlYXBf
bG9ja191bmxvY2soKTsKICAgICAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2hlYXAuaAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBA
QCBzdHJ1Y3QgcGFzX2hlYXAgewogICAgIHBhc19oZWFwX3R5cGUqIHR5cGU7CiAgICAgcGFzX2hl
YXBfcmVmKiBoZWFwX3JlZjsKICAgICBwYXNfY29tcGFjdF9oZWFwX3B0ciBuZXh0X2hlYXA7Ci0g
ICAgcGFzX2hlYXBfY29uZmlnX2tpbmQgY29uZmlnX2tpbmQgOiA4OworICAgIHBhc19oZWFwX2Nv
bmZpZ19raW5kIGNvbmZpZ19raW5kIDogNjsKICAgICBwYXNfaGVhcF9yZWZfa2luZCBoZWFwX3Jl
Zl9raW5kIDogMjsKIH07CiAKQEAgLTY3LDggKzY3LDggQEAgc3RhdGljIGlubGluZSBwYXNfaGVh
cCogcGFzX2hlYXBfZm9yX2xhcgogICAgIHJldHVybiAocGFzX2hlYXAqKSgodWludHB0cl90KWxh
cmdlX2hlYXAgLSBQQVNfT0ZGU0VUT0YocGFzX2hlYXAsIGxhcmdlX2hlYXApKTsKIH0KIAotLyog
VGhlIGxhcmdlIGhlYXAgYmVsb25ncyB0byB0aGUgaGVhcCBpbiBzdWNoIGEgd2F5IHRoYXQgZ2l2
ZW4gYSBsYXJnZSBoZWFwLCB3ZSBjYW4gZmluZCB0aGUKLSAgIGhlYXAuICovCisvKiBGSVhNRTog
SXQgd291bGQgYmUgc28gbXVjaCBzaW1wbGVyIGlmIGV2ZXJ5IHNlZ3JlZ2F0ZWRfaGVhcCBiZWxv
bmcgdG8gYSBoZWFwLCBvciBpZiB0aGV5IHdlcmUganVzdAorICAgbWVyZ2VkIGludG8gYSBzaW5n
bGUgZGF0YSBzdHJ1Y3R1cmUuICovCiBzdGF0aWMgaW5saW5lIHBhc19oZWFwKiBwYXNfaGVhcF9m
b3Jfc2VncmVnYXRlZF9oZWFwKHBhc19zZWdyZWdhdGVkX2hlYXAqIHNlZ3JlZ2F0ZWRfaGVhcCkK
IHsKICAgICBpZiAoIXNlZ3JlZ2F0ZWRfaGVhcC0+cnVudGltZV9jb25maWctPmlzX3BhcnRfb2Zf
aGVhcCkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2Nv
bmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyAr
MzIsNiBAQAogI2luY2x1ZGUgInBhc19iaXRmaXRfcGFnZV9jb25maWcuaCIKICNpbmNsdWRlICJw
YXNfYml0dmVjdG9yLmgiCiAjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9oZWFw
X3B0ci5oIgotI2luY2x1ZGUgInBhc19jb3VudF9sb29rdXBfbW9kZS5oIgogI2luY2x1ZGUgInBh
c19kZWFsbG9jYXRpb25fbW9kZS5oIgogI2luY2x1ZGUgInBhc19kZWFsbG9jYXRvci5oIgogI2lu
Y2x1ZGUgInBhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmgiCkBAIC00Miw2ICs0MSw3IEBACiAjaW5j
bHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9sb29rdXBfa2luZC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
LmgiCisjaW5jbHVkZSAicGFzX3NpemVfbG9va3VwX21vZGUuaCIKICNpbmNsdWRlICJwYXNfdXRp
bHMuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwpAQCAtNTIsMTcgKzUyLDIwIEBAIHN0cnVjdCBw
YXNfaGVhcF9ydW50aW1lX2NvbmZpZzsKIHN0cnVjdCBwYXNfaGVhcF90eXBlOwogc3RydWN0IHBh
c19sYXJnZV9oZWFwOwogc3RydWN0IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9y
eTsKK3N0cnVjdCBwYXNfc3RyZWFtOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXAgcGFzX2hlYXA7
CiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcF9jb25maWcgcGFzX2hlYXBfY29uZmlnOwogdHlwZWRl
ZiBzdHJ1Y3QgcGFzX2hlYXBfcnVudGltZV9jb25maWcgcGFzX2hlYXBfcnVudGltZV9jb25maWc7
CiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcF90eXBlIHBhc19oZWFwX3R5cGU7CiB0eXBlZGVmIHN0
cnVjdCBwYXNfbGFyZ2VfaGVhcCBwYXNfbGFyZ2VfaGVhcDsKIHR5cGVkZWYgc3RydWN0IHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFn
ZV9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc3RyZWFtIHBhc19zdHJlYW07CiAKIHR5
cGVkZWYgdm9pZCAoKnBhc19oZWFwX2NvbmZpZ19hY3RpdmF0ZV9jYWxsYmFjaykodm9pZCk7CiAK
IHR5cGVkZWYgc2l6ZV90ICgqcGFzX2hlYXBfY29uZmlnX2dldF90eXBlX3NpemUpKHBhc19oZWFw
X3R5cGUqKTsKIHR5cGVkZWYgc2l6ZV90ICgqcGFzX2hlYXBfY29uZmlnX2dldF90eXBlX2FsaWdu
bWVudCkocGFzX2hlYXBfdHlwZSopOwordHlwZWRlZiB2b2lkICgqcGFzX2hlYXBfY29uZmlnX2R1
bXBfdHlwZSkocGFzX2hlYXBfdHlwZSosIHBhc19zdHJlYW0qIHN0cmVhbSk7CiB0eXBlZGVmIHBh
c19mYXN0X21lZ2FwYWdlX2tpbmQgKCpwYXNfaGVhcF9jb25maWdfZmFzdF9tZWdhcGFnZV9raW5k
X2Z1bmMpKHVpbnRwdHJfdCBiZWdpbik7CiB0eXBlZGVmIHBhc19wYWdlX2Jhc2UqICgqcGFzX2hl
YXBfY29uZmlnX3BhZ2VfaGVhZGVyX2Z1bmMpKHVpbnRwdHJfdCBiZWdpbik7CiB0eXBlZGVmIHBh
c19hbGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX2hlYXBfY29uZmlnX2FsaWduZWRfYWxs
b2NhdG9yKSgKQEAgLTgyLDYgKzg1LDggQEAgdHlwZWRlZiBib29sICgqcGFzX2hlYXBfY29uZmln
X2Zvcl9lYWNoXwogICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3Bh
Z2VfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhcmcp
LAogICAgIHZvaWQqIGFyZyk7Cit0eXBlZGVmIHZvaWQgKCpwYXNfaGVhcF9jb25maWdfZHVtcF9z
aGFyZWRfcGFnZV9kaXJlY3RvcnlfYXJnKSgKKyAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIAogdHlwZWRlZiBw
YXNfYWxsb2NhdGlvbl9yZXN1bHQKICgqcGFzX2hlYXBfY29uZmlnX3NwZWNpYWxpemVkX2xvY2Fs
X2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc21hbGxfc2VncmVnYXRlZF9zbG93KSgKQEAgLTEwMiwx
MiArMTA3LDExIEBAIHR5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX2hlYXAKIHR5
cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX2hlYXBfY29uZmlnX3NwZWNpYWxpemVk
X3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93KSgKICAgICBwYXNfaGVhcF9yZWYqIGhlYXBf
cmVmLAogICAgIHBhc19oZWFwX3JlZl9raW5kIGhlYXBfcmVmX2tpbmQsCi0gICAgc2l6ZV90IGFs
aWduZWRfY291bnQsIC8qIE11c3QgYmUgPSByb3VuZF91cChjb3VudCAqIHR5cGVfc2l6ZSwgYWxp
Z25tZW50KSAvIHR5cGVfc2l6ZSAqLwogICAgIHNpemVfdCBzaXplLAogICAgIHNpemVfdCBhbGln
bm1lbnQsCiAgICAgcGFzX2hlYXBfcnVudGltZV9jb25maWcqIHJ1bnRpbWVfY29uZmlnLAogICAg
IHBhc19hbGxvY2F0b3JfY291bnRzKiBhbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19jb3VudF9s
b29rdXBfbW9kZSBjb3VudF9sb29rdXBfbW9kZSk7CisgICAgcGFzX3NpemVfbG9va3VwX21vZGUg
c2l6ZV9sb29rdXBfbW9kZSk7CiB0eXBlZGVmIGJvb2wgKCpwYXNfaGVhcF9jb25maWdfc3BlY2lh
bGl6ZWRfdHJ5X2RlYWxsb2NhdGVfbm90X3NtYWxsKSgKICAgICBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgdWludHB0cl90IGJlZ2luLApAQCAtMTI3LDYg
KzEzMSw5IEBAIHN0cnVjdCBwYXNfaGVhcF9jb25maWcgewogICAgIAogICAgIC8qIFRlbGxzIHlv
dSB0aGUgc2l6ZSBzaXplIGZvciBhIGhlYXAgdHlwZS4gKi8KICAgICBwYXNfaGVhcF9jb25maWdf
Z2V0X3R5cGVfYWxpZ25tZW50IGdldF90eXBlX2FsaWdubWVudDsKKworICAgIC8qIFRlbGxzIHRo
ZSB0eXBlIHRvIGR1bXAgaW5mb3JtYXRpb24gYWJvdXQgaXRzZWxmIGludG8gYSBzdHJlYW0uICov
CisgICAgcGFzX2hlYXBfY29uZmlnX2R1bXBfdHlwZSBkdW1wX3R5cGU7CiAgICAgCiAgICAgLyog
QWxpZ25tZW50IHJlcXVpcmVtZW50IG9mIGxhcmdlIG9iamVjdHMuICovCiAgICAgc2l6ZV90IGxh
cmdlX2FsaWdubWVudDsKQEAgLTE3Niw2ICsxODMsNyBAQCBzdHJ1Y3QgcGFzX2hlYXBfY29uZmln
IHsKICAgICAgICBoZWFwcyBtYXkgaGF2ZSB0aGUgc2FtZSBzaGFyZWQgcGFnZSBkaXJlY3Rvcmll
cy4gKi8KICAgICBwYXNfaGVhcF9jb25maWdfZm9yX2VhY2hfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
IGZvcl9lYWNoX3NoYXJlZF9wYWdlX2RpcmVjdG9yeTsKICAgICBwYXNfaGVhcF9jb25maWdfZm9y
X2VhY2hfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3JlbW90ZSBmb3JfZWFjaF9zaGFyZWRfcGFnZV9k
aXJlY3RvcnlfcmVtb3RlOworICAgIHBhc19oZWFwX2NvbmZpZ19kdW1wX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yeV9hcmcgZHVtcF9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYXJnOwogCiAgICAgcGFzX2hl
YXBfY29uZmlnX3NwZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc21hbGxf
c2VncmVnYXRlZF9zbG93IHNwZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVf
c21hbGxfc2VncmVnYXRlZF9zbG93OwogICAgIHBhc19oZWFwX2NvbmZpZ19zcGVjaWFsaXplZF9s
b2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX21lZGl1bV9zZWdyZWdhdGVkX3dpdGhfZnJlZV9i
aXRzIHNwZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfbWVkaXVtX3NlZ3Jl
Z2F0ZWRfd2l0aF9mcmVlX2JpdHM7CkBAIC0yMjEsMTIgKzIyOSwxMSBAQCBzdHJ1Y3QgcGFzX2hl
YXBfY29uZmlnIHsKICAgICBsb3dlcl9jYXNlX2hlYXBfY29uZmlnX25hbWUgIyMgX3NwZWNpYWxp
emVkX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93KCBcCiAgICAgICAgIHBhc19oZWFwX3Jl
ZiogaGVhcF9yZWYsIFwKICAgICAgICAgcGFzX2hlYXBfcmVmX2tpbmQgaGVhcF9yZWZfa2luZCwg
XAotICAgICAgICBzaXplX3QgYWxpZ25lZF9jb3VudCwgXAogICAgICAgICBzaXplX3Qgc2l6ZSwg
XAogICAgICAgICBzaXplX3QgYWxpZ25tZW50LCBcCiAgICAgICAgIHBhc19oZWFwX3J1bnRpbWVf
Y29uZmlnKiBydW50aW1lX2NvbmZpZywgXAogICAgICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyog
YWxsb2NhdG9yX2NvdW50cywgXAotICAgICAgICBwYXNfY291bnRfbG9va3VwX21vZGUgY291bnRf
bG9va3VwX21vZGUpOyBcCisgICAgICAgIHBhc19zaXplX2xvb2t1cF9tb2RlIHNpemVfbG9va3Vw
X21vZGUpOyBcCiAgICAgUEFTX0FQSSBib29sIGxvd2VyX2Nhc2VfaGVhcF9jb25maWdfbmFtZSAj
IyBfc3BlY2lhbGl6ZWRfdHJ5X2RlYWxsb2NhdGVfbm90X3NtYWxsKCBcCiAgICAgICAgIHBhc190
aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwgXAogICAgICAgICB1aW50cHRy
X3QgYmVnaW4sIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19o
ZWFwX2NvbmZpZ19pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaAkocmV2aXNpb24gMjg1Nzg1KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX2lubGlu
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsMTYgKzc0LDE1IEBAIFBBU19CRUdJTl9FWFRFUk5f
QzsKICAgICBsb3dlcl9jYXNlX2hlYXBfY29uZmlnX25hbWUgIyMgX3NwZWNpYWxpemVkX3RyeV9h
bGxvY2F0ZV9jb21tb25faW1wbF9zbG93KCBcCiAgICAgICAgIHBhc19oZWFwX3JlZiogaGVhcF9y
ZWYsIFwKICAgICAgICAgcGFzX2hlYXBfcmVmX2tpbmQgaGVhcF9yZWZfa2luZCwgXAotICAgICAg
ICBzaXplX3QgYWxpZ25lZF9jb3VudCwgXAogICAgICAgICBzaXplX3Qgc2l6ZSwgXAogICAgICAg
ICBzaXplX3QgYWxpZ25tZW50LCBcCiAgICAgICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBy
dW50aW1lX2NvbmZpZywgXAogICAgICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogYWxsb2NhdG9y
X2NvdW50cywgXAotICAgICAgICBwYXNfY291bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21v
ZGUpIFwKKyAgICAgICAgcGFzX3NpemVfbG9va3VwX21vZGUgc2l6ZV9sb29rdXBfbW9kZSkgXAog
ICAgIHsgXAogICAgICAgICByZXR1cm4gcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93
KCBcCi0gICAgICAgICAgICBoZWFwX3JlZiwgaGVhcF9yZWZfa2luZCwgYWxpZ25lZF9jb3VudCwg
c2l6ZSwgYWxpZ25tZW50LCAoaGVhcF9jb25maWdfdmFsdWUpLCBcCi0gICAgICAgICAgICBydW50
aW1lX2NvbmZpZywgYWxsb2NhdG9yX2NvdW50cywgY291bnRfbG9va3VwX21vZGUpOyBcCisgICAg
ICAgICAgICBoZWFwX3JlZiwgaGVhcF9yZWZfa2luZCwgc2l6ZSwgYWxpZ25tZW50LCAoaGVhcF9j
b25maWdfdmFsdWUpLCBcCisgICAgICAgICAgICBydW50aW1lX2NvbmZpZywgYWxsb2NhdG9yX2Nv
dW50cywgc2l6ZV9sb29rdXBfbW9kZSk7IFwKICAgICB9IFwKICAgICBcCiAgICAgYm9vbCBsb3dl
cl9jYXNlX2hlYXBfY29uZmlnX25hbWUgIyMgX3NwZWNpYWxpemVkX3RyeV9kZWFsbG9jYXRlX25v
dF9zbWFsbCggXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXBfY29uZmlnX3V0aWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5oCSh3
b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2NCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICBwYXNf
aGVhcF9jb25maWdfYWN0aXZhdGVfY2FsbGJhY2sgYWN0aXZhdGU7CiAgICAgcGFzX2hlYXBfY29u
ZmlnX2dldF90eXBlX3NpemUgZ2V0X3R5cGVfc2l6ZTsKICAgICBwYXNfaGVhcF9jb25maWdfZ2V0
X3R5cGVfYWxpZ25tZW50IGdldF90eXBlX2FsaWdubWVudDsKKyAgICBwYXNfaGVhcF9jb25maWdf
ZHVtcF90eXBlIGR1bXBfdHlwZTsKICAgICBib29sIGNoZWNrX2RlYWxsb2NhdGlvbjsKICAgICB1
aW50OF90IHNtYWxsX3NlZ3JlZ2F0ZWRfbWluX2FsaWduX3NoaWZ0OwogICAgIHVpbnQ4X3Qgc21h
bGxfc2VncmVnYXRlZF9zaGFyaW5nX3NoaWZ0OwpAQCAtMzE5LDYgKzMyMCw3IEBAIHR5cGVkZWYg
c3RydWN0IHsKICAgICAgICAgLmFjdGl2YXRlX2NhbGxiYWNrID0gKChwYXNfYmFzaWNfaGVhcF9j
b25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLmFjdGl2YXRlLCBcCiAgICAgICAgIC5nZXRf
dHlwZV9zaXplID0gKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1Nf
X30pLmdldF90eXBlX3NpemUsIFwKICAgICAgICAgLmdldF90eXBlX2FsaWdubWVudCA9ICgocGFz
X2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5nZXRfdHlwZV9hbGln
bm1lbnQsIFwKKyAgICAgICAgLmR1bXBfdHlwZSA9ICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2Fy
Z3VtZW50cyl7X19WQV9BUkdTX199KS5kdW1wX3R5cGUsIFwKICAgICAgICAgLmxhcmdlX2FsaWdu
bWVudCA9IFwKICAgICAgICAgICAgIChzaXplX3QpMSA8PCAoKHBhc19iYXNpY19oZWFwX2NvbmZp
Z19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2VncmVnYXRlZF9taW5fYWxpZ25fc2hp
ZnQsIFwKICAgICAgICAgUEFTX0JBU0lDX0hFQVBfQ09ORklHX1NFR1JFR0FURURfSEVBUF9GSUVM
RFMobmFtZSwgX19WQV9BUkdTX18pIFwKQEAgLTMzMSw2ICszMzMsNyBAQCB0eXBlZGVmIHN0cnVj
dCB7CiAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWdfdXRpbHNfZm9yX2VhY2hfc2hhcmVkX3Bh
Z2VfZGlyZWN0b3J5LCBcCiAgICAgICAgIC5mb3JfZWFjaF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnlf
cmVtb3RlID0gXAogICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnX3V0aWxzX2Zvcl9lYWNoX3No
YXJlZF9wYWdlX2RpcmVjdG9yeV9yZW1vdGUsIFwKKyAgICAgICAgLmR1bXBfc2hhcmVkX3BhZ2Vf
ZGlyZWN0b3J5X2FyZyA9IHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZV9kdW1wX2Rp
cmVjdG9yeV9hcmcsIFwKICAgICAgICAgUEFTX0hFQVBfQ09ORklHX1NQRUNJQUxJWkFUSU9OUyhu
YW1lICMjIF9oZWFwX2NvbmZpZykgXAogICAgIH0pCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9pbmxpbmVzLmgJKHJldmlzaW9uIDI4
NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2lubGlu
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsMjAgKzM1LDIwIEBACiBQQVNfQkVHSU5fRVhURVJO
X0M7CiAKIFBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCi1wYXNfaGVhcF9l
bnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50X3Nsb3coCitwYXNfaGVhcF9lbnN1cmVfc2l6
ZV9kaXJlY3RvcnlfZm9yX3NpemVfc2xvdygKICAgICBwYXNfaGVhcCogaGVhcCwKLSAgICBzaXpl
X3QgY291bnQsCisgICAgc2l6ZV90IHNpemUsCiAgICAgc2l6ZV90IGFsaWdubWVudCwKLSAgICBw
YXNfY291bnRfbG9va3VwX21vZGUgZm9yY2VfY291bnRfbG9va3VwLAorICAgIHBhc19zaXplX2xv
b2t1cF9tb2RlIGZvcmNlX3NpemVfbG9va3VwLAogICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmln
LAogICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCi1wYXNfaGVhcF9lbnN1cmVfc2l6ZV9k
aXJlY3RvcnlfZm9yX2NvdW50KAorcGFzX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9z
aXplKAogICAgIHBhc19oZWFwKiBoZWFwLAotICAgIHNpemVfdCBjb3VudCwKKyAgICBzaXplX3Qg
c2l6ZSwKICAgICBzaXplX3QgYWxpZ25tZW50LAotICAgIHBhc19jb3VudF9sb29rdXBfbW9kZSBm
b3JjZV9jb3VudF9sb29rdXAsCisgICAgcGFzX3NpemVfbG9va3VwX21vZGUgZm9yY2Vfc2l6ZV9s
b29rdXAsCiAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKICAgICB1bnNpZ25lZCogY2FjaGVk
X2luZGV4LAogICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMpCkBAIC02MCwxMiArNjAs
MTIgQEAgcGFzX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudAogICAgIFBBU19V
TlVTRURfUEFSQU0oY291bnRzKTsKICAgICAKICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICBw
YXNfbG9nKCIlcDogZ2V0dGluZyBkaXJlY3Rvcnkgd2l0aCBjb3VudCA9ICV6dSwgYWxpZ25tZW50
ID0gJXp1LlxuIiwKLSAgICAgICAgICAgICAgICBoZWFwLCBjb3VudCwgYWxpZ25tZW50KTsKKyAg
ICAgICAgcGFzX2xvZygiJXA6IGdldHRpbmcgZGlyZWN0b3J5IHdpdGggc2l6ZSA9ICV6dSwgYWxp
Z25tZW50ID0gJXp1LlxuIiwKKyAgICAgICAgICAgICAgICBoZWFwLCBzaXplLCBhbGlnbm1lbnQp
OwogICAgIH0KICAgICAKLSAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9oZWFwX3NpemVfZGly
ZWN0b3J5X2Zvcl9jb3VudCgKLSAgICAgICAgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCwgY291bnQs
IGNvbmZpZywgY2FjaGVkX2luZGV4KTsKKyAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9oZWFw
X3NpemVfZGlyZWN0b3J5X2Zvcl9zaXplKAorICAgICAgICAmaGVhcC0+c2VncmVnYXRlZF9oZWFw
LCBzaXplLCBjb25maWcsIGNhY2hlZF9pbmRleCk7CiAgICAgaWYgKHJlc3VsdCAmJiBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQocmVzdWx0KSA+PSBhbGlnbm1lbnQpCiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAKQEAgLTczLDggKzczLDggQEAgcGFzX2hlYXBfZW5zdXJl
X3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudAogICAgIGNvdW50cy0+c2xvd19wYXRocysrOwogI2Vu
ZGlmIC8qIFBBU19FTkFCTEVfVEVTVElORyAqLwogICAgIAotICAgIHJldHVybiBwYXNfaGVhcF9l
bnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50X3Nsb3coCi0gICAgICAgIGhlYXAsIGNvdW50
LCBhbGlnbm1lbnQsIGZvcmNlX2NvdW50X2xvb2t1cCwgY29uZmlnLmNvbmZpZ19wdHIsIGNhY2hl
ZF9pbmRleCk7CisgICAgcmV0dXJuIHBhc19oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3Jf
c2l6ZV9zbG93KAorICAgICAgICBoZWFwLCBzaXplLCBhbGlnbm1lbnQsIGZvcmNlX3NpemVfbG9v
a3VwLCBjb25maWcuY29uZmlnX3B0ciwgY2FjaGVkX2luZGV4KTsKIH0KIAogUEFTX0VORF9FWFRF
Uk5fQzsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2tp
bmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
aGVhcF9raW5kLmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19oZWFwX2tpbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTIgKzM3LDE0
IEBAIGVudW0gcGFzX2hlYXBfa2luZCB7CiAgICAgcGFzX2NvbXBhY3RfYm9vdHN0cmFwX2ZyZWVf
aGVhcF9raW5kLAogICAgIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9raW5kLAogICAgIHBh
c19pbW1vcnRhbF9oZWFwX2tpbmQsCi0gICAgcGFzX3V0aWxpdHlfaGVhcF9raW5kCisgICAgcGFz
X3V0aWxpdHlfaGVhcF9raW5kLAorICAgIHBhc19jb21wYWN0X2V4cGVuZGFibGVfaGVhcF9raW5k
LAorICAgIHBhc19sYXJnZV9leHBlbmRhYmxlX2hlYXBfa2luZAogfTsKIAogdHlwZWRlZiBlbnVt
IHBhc19oZWFwX2tpbmQgcGFzX2hlYXBfa2luZDsKIAotI2RlZmluZSBQQVNfTlVNX0hFQVBfS0lO
RFMgNQorI2RlZmluZSBQQVNfTlVNX0hFQVBfS0lORFMgNwogCiBzdGF0aWMgaW5saW5lIGNvbnN0
IGNoYXIqIHBhc19oZWFwX2tpbmRfZ2V0X3N0cmluZyhwYXNfaGVhcF9raW5kIGtpbmQpCiB7CkBA
IC01Nyw2ICs1OSwxMCBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc19oZWFwX2tpbmRf
CiAgICAgICAgIHJldHVybiAiaW1tb3J0YWxfaGVhcCI7CiAgICAgY2FzZSBwYXNfdXRpbGl0eV9o
ZWFwX2tpbmQ6CiAgICAgICAgIHJldHVybiAidXRpbGl0eV9oZWFwIjsKKyAgICBjYXNlIHBhc19j
b21wYWN0X2V4cGVuZGFibGVfaGVhcF9raW5kOgorICAgICAgICByZXR1cm4gImNvbXBhY3RfZXhw
ZW5kYWJsZV9oZWFwIjsKKyAgICBjYXNlIHBhc19sYXJnZV9leHBlbmRhYmxlX2hlYXBfa2luZDoK
KyAgICAgICAgcmV0dXJuICJsYXJnZV9leHBlbmRhYmxlX2hlYXAiOwogICAgIH0KICAgICBQQVNf
QVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CiAgICAgcmV0dXJuIE5VTEw7CkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9yZWZfcHJlZml4LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBf
cmVmX3ByZWZpeC5oCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfaGVhcF9yZWZfcHJlZml4LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcg
KzM1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX19wYXNfaGVhcCBfX3Bhc19oZWFwOwogc3RydWN0IF9f
cGFzX2hlYXBfcmVmIHsKICAgICBfX3Bhc19oZWFwX3R5cGUqIHR5cGU7CiAgICAgX19wYXNfaGVh
cCogaGVhcDsgLyogaW5pdGlhbGl6ZSB0byBOVUxMICovCi0gICAgdW5zaWduZWQgYWxsb2NhdG9y
X2luZGV4OyAvKiBpbml0aWFsaXplIHRvIFVJTlRfTUFYICovCisgICAgdW5zaWduZWQgYWxsb2Nh
dG9yX2luZGV4OyAvKiBpbml0aWFsaXplIHRvIDAgKi8KIH07CiAKIF9fUEFTX0VORF9FWFRFUk5f
QzsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRlcm5hbF9j
b25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfaW50ZXJuYWxfY29uZmlnLmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRlcm5hbF9jb25maWcuaAkod29ya2luZyBjb3B5KQpA
QCAtMTM1LDggKzEzNSwxMSBAQAogCiAjZGVmaW5lIFBBU19NQVhfT0JKRUNUU19QRVJfUEFHRSAg
ICAgICAgIDIwNDgKIAotI2RlZmluZSBQQVNfTUFEVklTRV9TWU1NRVRSSUMgICAgICAgICAgICAw
CisjZGVmaW5lIFBBU19NUFJPVEVDVF9ERUNPTU1JVFRFRCAgICAgICAgIFBBU19FTkFCTEVfVEVT
VElORwogCisvKiBDdXJyZW50bHksIGVuYWJsaW5nIHBhZ2UgYmFsYW5jaW5nIGlzIGxpa2VseSB0
byBiZSBzdXBlciBiYWQgZm9yIHBlcmZvcm1hbmNlLiBJJ3ZlIGRvbmUgYSBidW5jaCBvZgorICAg
b3B0aW1pemF0aW9ucyB0aGF0IG1ha2UgdGhlICFwYWdlX2JhbGFuY2luZyBjYXNlIHdvcmsgbXVj
aCBiZXR0ZXIgYW5kIHRob3NlIG9wdGltaXphdGlvbnMgaGF2ZSBsaWtlbHkKKyAgIG1hZGUgISFw
YWdlX2JhbGFuY2luZyBhIGxvdCB3b3JzZSBpbiB0ZXJtcyBvZiB0aW1lIHBlcmZvcm1hbmNlLiAq
LwogI2lmZGVmIFBBU19MSUJNQUxMT0MKICNkZWZpbmUgUEFTX1BBR0VfQkFMQU5DSU5HX0VOQUJM
RUQgICAgICAgICAgICB0cnVlCiAjZWxzZQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydC5o
CShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDMsOCArNDMs
NyBAQCBzdHJ1Y3QgcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQgewogfTsKIAogI2RlZmluZSBQ
QVNfSU5UUklOU0lDX0hFQVBfU1VQUE9SVF9JTklUSUFMSVpFUl9USFJFQURfTE9DQUxfQ0FDSEVf
RklFTERTIFwKLSAgICAuaW5kZXhfdG9fYWxsb2NhdG9yX2luZGV4ID0ge1swIC4uLiBQQVNfTlVN
X0lOVFJJTlNJQ19TSVpFX0NMQVNTRVMgLSAxXSA9IFwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWH0sCisgICAgLmluZGV4
X3RvX2FsbG9jYXRvcl9pbmRleCA9IHtbMCAuLi4gUEFTX05VTV9JTlRSSU5TSUNfU0laRV9DTEFT
U0VTIC0gMV0gPSAwfSwKIAogI2RlZmluZSBQQVNfSU5UUklOU0lDX0hFQVBfU1VQUE9SVF9JTklU
SUFMSVpFUl9TRUdSRUdBVEVEX0hFQVBfRklFTERTIFwKICAgICAuaW5kZXhfdG9fc2l6ZV9kaXJl
Y3RvcnkgPSB7WzAgLi4uIFBBU19OVU1fSU5UUklOU0lDX1NJWkVfQ0xBU1NFUyAtIDFdID0gXApJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2V4cGVuZGFi
bGVfbWVtb3J5LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmMJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgInBhc19jb25maWcuaCIKKworI2lmIExJ
QlBBU19FTkFCTEVECisKKyNpbmNsdWRlICJwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaCIK
KworI2luY2x1ZGUgInBhc19ib290c3RyYXBfZnJlZV9oZWFwLmgiCisjaW5jbHVkZSAicGFzX2hl
YXBfbG9jay5oIgorCitwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkqIHBhc19sYXJnZV9leHBl
bmRhYmxlX21lbW9yeV9oZWFkOworCitzdGF0aWMgdm9pZCBhbGxvY2F0ZV9uZXdfbGFyZ2VfZXhw
ZW5kYWJsZV9tZW1vcnkodm9pZCkKK3sKKyAgICBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkq
IG5ld19tZW1vcnk7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IG5ld19tZW1vcnlfcmVzdWx0
OworCisgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworCisgICAgbmV3X21lbW9yeV9y
ZXN1bHQgPSBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcF9hbGxvY2F0ZV93aXRoX2FsaWdubWVudCgK
KyAgICAgICAgUEFTX0xBUkdFX0VYUEVOREFCTEVfTUVNT1JZX1RPVEFMX1NJWkUsCisgICAgICAg
IHBhc19hbGlnbm1lbnRfY3JlYXRlX3RyYWRpdGlvbmFsKFBBU19MQVJHRV9FWFBFTkRBQkxFX01F
TU9SWV9BTElHTk1FTlQpLAorICAgICAgICAicGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5IiwK
KyAgICAgICAgcGFzX2RlbGVnYXRlX2FsbG9jYXRpb24pOworICAgIFBBU19BU1NFUlQobmV3X21l
bW9yeV9yZXN1bHQuZGlkX3N1Y2NlZWQpOworICAgIFBBU19BU1NFUlQobmV3X21lbW9yeV9yZXN1
bHQuYmVnaW4pOworICAgIG5ld19tZW1vcnkgPSAocGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5
KiluZXdfbWVtb3J5X3Jlc3VsdC5iZWdpbjsKKworICAgIG5ld19tZW1vcnktPm5leHQgPSBwYXNf
bGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnlfaGVhZDsKKyAgICBwYXNfZXhwZW5kYWJsZV9tZW1vcnlf
Y29uc3RydWN0KCZuZXdfbWVtb3J5LT5oZWFkZXIsIFBBU19MQVJHRV9FWFBFTkRBQkxFX01FTU9S
WV9QQVlMT0FEX1NJWkUpOworCisgICAgcGFzX3N0b3JlX3N0b3JlX2ZlbmNlKCk7CisKKyAgICBw
YXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnlfaGVhZCA9IG5ld19tZW1vcnk7Cit9CisKK3ZvaWQq
IHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeV9hbGxvY2F0ZShzaXplX3Qgc2l6ZSwgc2l6ZV90
IGFsaWdubWVudCwgY29uc3QgY2hhciogbmFtZSkKK3sKKyAgICB2b2lkKiByZXN1bHQ7CisgICAg
CisgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworCisgICAgaWYgKCFwYXNfbGFyZ2Vf
ZXhwZW5kYWJsZV9tZW1vcnlfaGVhZCkKKyAgICAgICAgYWxsb2NhdGVfbmV3X2xhcmdlX2V4cGVu
ZGFibGVfbWVtb3J5KCk7CisKKyAgICByZXN1bHQgPSBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfdHJ5
X2FsbG9jYXRlKAorICAgICAgICAmcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5X2hlYWQtPmhl
YWRlciwKKyAgICAgICAgcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5X3BheWxvYWQocGFzX2xh
cmdlX2V4cGVuZGFibGVfbWVtb3J5X2hlYWQpLAorICAgICAgICBzaXplLCBhbGlnbm1lbnQsIHBh
c19sYXJnZV9leHBlbmRhYmxlX2hlYXBfa2luZCwgbmFtZSk7CisgICAgaWYgKHJlc3VsdCkKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgIGFsbG9jYXRlX25ld19sYXJnZV9leHBlbmRhYmxl
X21lbW9yeSgpOworCisgICAgcmV0dXJuIHBhc19leHBlbmRhYmxlX21lbW9yeV9hbGxvY2F0ZSgK
KyAgICAgICAgJnBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeV9oZWFkLT5oZWFkZXIsCisgICAg
ICAgIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeV9wYXlsb2FkKHBhc19sYXJnZV9leHBlbmRh
YmxlX21lbW9yeV9oZWFkKSwKKyAgICAgICAgc2l6ZSwgYWxpZ25tZW50LCBwYXNfbGFyZ2VfZXhw
ZW5kYWJsZV9oZWFwX2tpbmQsIG5hbWUpOworfQorCitib29sIHBhc19sYXJnZV9leHBlbmRhYmxl
X21lbW9yeV9jb21taXRfaWZfbmVjZXNzYXJ5KHZvaWQqIG9iamVjdCwgc2l6ZV90IHNpemUpCit7
CisgICAgcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5KiBoZWFkZXI7CisgICAgdm9pZCogcGF5
bG9hZDsKKworICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKworICAgIGhlYWRlciA9
IHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeV9oZWFkZXJfZm9yX29iamVjdChvYmplY3QpOwor
ICAgIHBheWxvYWQgPSBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnlfcGF5bG9hZChoZWFkZXIp
OworCisgICAgcmV0dXJuIHBhc19leHBlbmRhYmxlX21lbW9yeV9jb21taXRfaWZfbmVjZXNzYXJ5
KCZoZWFkZXItPmhlYWRlciwgcGF5bG9hZCwgb2JqZWN0LCBzaXplKTsKK30KKworYm9vbCBwYXNf
bGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2UocGFzX2V4cGVuZGFibGVfbWVtb3J5X3Nj
YXZlbmdlX2tpbmQga2luZCkKK3sKKyAgICBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkqIG1l
bW9yeTsKKyAgICBib29sIHJlc3VsdDsKKyAgICAKKyAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9o
ZWxkKCk7CisKKyAgICByZXN1bHQgPSBmYWxzZTsKKworICAgIGZvciAobWVtb3J5ID0gcGFzX2xh
cmdlX2V4cGVuZGFibGVfbWVtb3J5X2hlYWQ7IG1lbW9yeTsgbWVtb3J5ID0gbWVtb3J5LT5uZXh0
KSB7CisgICAgICAgIHJlc3VsdCB8PSBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2UoCisg
ICAgICAgICAgICAmbWVtb3J5LT5oZWFkZXIsIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeV9w
YXlsb2FkKG1lbW9yeSksIGtpbmQpOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
KyNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZXhwZW5kYWJsZV9t
ZW1vcnkuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIFBBU19MQVJHRV9FWFBFTkRBQkxFX01FTU9SWV9ICisjZGVmaW5lIFBBU19MQVJHRV9F
WFBFTkRBQkxFX01FTU9SWV9ICisKKyNpbmNsdWRlICJwYXNfZXhwZW5kYWJsZV9tZW1vcnkuaCIK
KworUEFTX0JFR0lOX0VYVEVSTl9DOworCitzdHJ1Y3QgcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVt
b3J5OwordHlwZWRlZiBzdHJ1Y3QgcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5IHBhc19sYXJn
ZV9leHBlbmRhYmxlX21lbW9yeTsKKworc3RydWN0IHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9y
eSB7CisgICAgcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5KiBuZXh0OworICAgIHBhc19leHBl
bmRhYmxlX21lbW9yeSBoZWFkZXI7Cit9OworCisjZGVmaW5lIFBBU19MQVJHRV9FWFBFTkRBQkxF
X01FTU9SWV9CQVNFX0hFQURFUl9TSVpFIFBBU19PRkZTRVRPRihwYXNfbGFyZ2VfZXhwZW5kYWJs
ZV9tZW1vcnksIGhlYWRlci5zdGF0ZXMpCisjZGVmaW5lIFBBU19MQVJHRV9FWFBFTkRBQkxFX01F
TU9SWV9IRUFERVJfU0laRSBQQVNfRVhQRU5EQUJMRV9NRU1PUllfUEFHRV9TSVpFCisKKyNkZWZp
bmUgUEFTX0xBUkdFX0VYUEVOREFCTEVfTUVNT1JZX0FMSUdOTUVOVCBcCisgICAgKFBBU19MQVJH
RV9FWFBFTkRBQkxFX01FTU9SWV9IRUFERVJfU0laRSAvIHNpemVvZihwYXNfZXhwZW5kYWJsZV9t
ZW1vcnlfc3RhdGUpICogXAorICAgICBQQVNfRVhQRU5EQUJMRV9NRU1PUllfUEFHRV9TSVpFKQor
I2RlZmluZSBQQVNfTEFSR0VfRVhQRU5EQUJMRV9NRU1PUllfUEFZTE9BRF9TSVpFIFwKKyAgICAo
KChQQVNfTEFSR0VfRVhQRU5EQUJMRV9NRU1PUllfSEVBREVSX1NJWkUgLSBQQVNfTEFSR0VfRVhQ
RU5EQUJMRV9NRU1PUllfQkFTRV9IRUFERVJfU0laRSkgLyBcCisgICAgICBzaXplb2YocGFzX2V4
cGVuZGFibGVfbWVtb3J5X3N0YXRlKSkgXAorICAgICAqIFBBU19FWFBFTkRBQkxFX01FTU9SWV9Q
QUdFX1NJWkUpCisjZGVmaW5lIFBBU19MQVJHRV9FWFBFTkRBQkxFX01FTU9SWV9UT1RBTF9TSVpF
IFwKKyAgICAoUEFTX0xBUkdFX0VYUEVOREFCTEVfTUVNT1JZX0hFQURFUl9TSVpFICsgUEFTX0xB
UkdFX0VYUEVOREFCTEVfTUVNT1JZX1BBWUxPQURfU0laRSkKKworX1N0YXRpY19hc3NlcnQoUEFT
X0xBUkdFX0VYUEVOREFCTEVfTUVNT1JZX0FMSUdOTUVOVCA+IFBBU19MQVJHRV9FWFBFTkRBQkxF
X01FTU9SWV9QQVlMT0FEX1NJWkUsCisgICAgICAgICAgICAgICAiTGFyZ2UgZXhwZW5kYWJsZSBt
ZW1vcnkgc2hvdWxkIGJlIGFsaWduZWQgbW9yZSBzbyB0aGFuIHRoZSBwYXlsb2FkIHNpemUuIik7
CitfU3RhdGljX2Fzc2VydChQQVNfTEFSR0VfRVhQRU5EQUJMRV9NRU1PUllfQUxJR05NRU5UID4g
UEFTX0xBUkdFX0VYUEVOREFCTEVfTUVNT1JZX1RPVEFMX1NJWkUsCisgICAgICAgICAgICAgICAi
TGFyZ2UgZXhwZW5kYWJsZSBtZW1vcnkgc2hvdWxkIGJlIGFsaWduZWQgbW9yZSBzbyB0aGFuIHRo
ZSB0b3RhbCBzaXplLiIpOworCitQQVNfQVBJIGV4dGVybiBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9t
ZW1vcnkqIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeV9oZWFkOworCitzdGF0aWMgaW5saW5l
IHZvaWQqIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeV9wYXlsb2FkKHBhc19sYXJnZV9leHBl
bmRhYmxlX21lbW9yeSogaGVhZGVyKQoreworICAgIHJldHVybiAoY2hhciopaGVhZGVyICsgUEFT
X0xBUkdFX0VYUEVOREFCTEVfTUVNT1JZX0hFQURFUl9TSVpFOworfQorCitzdGF0aWMgaW5saW5l
IHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeSogcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5
X2hlYWRlcl9mb3Jfb2JqZWN0KHZvaWQqIG9iamVjdCkKK3sKKyAgICByZXR1cm4gKHBhc19sYXJn
ZV9leHBlbmRhYmxlX21lbW9yeSopCisgICAgICAgIHBhc19yb3VuZF9kb3duX3RvX3Bvd2VyX29m
XzIoKHVpbnRwdHJfdClvYmplY3QsIFBBU19MQVJHRV9FWFBFTkRBQkxFX01FTU9SWV9BTElHTk1F
TlQpOworfQorCitQQVNfQVBJIHZvaWQqIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeV9hbGxv
Y2F0ZShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCwgY29uc3QgY2hhciogbmFtZSk7CisK
K1BBU19BUEkgYm9vbCBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnlfY29tbWl0X2lmX25lY2Vz
c2FyeSh2b2lkKiBvYmplY3QsIHNpemVfdCBzaXplKTsKKworc3RhdGljIGlubGluZSB2b2lkIHBh
c19sYXJnZV9leHBlbmRhYmxlX21lbW9yeV9ub3RlX3VzZSh2b2lkKiBvYmplY3QsIHNpemVfdCBz
aXplKQoreworICAgIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeSogaGVhZGVyOworICAgIHZv
aWQqIHBheWxvYWQ7CisKKyAgICBoZWFkZXIgPSBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnlf
aGVhZGVyX2Zvcl9vYmplY3Qob2JqZWN0KTsKKyAgICBwYXlsb2FkID0gcGFzX2xhcmdlX2V4cGVu
ZGFibGVfbWVtb3J5X3BheWxvYWQoaGVhZGVyKTsKKyAgICAKKyAgICBwYXNfZXhwZW5kYWJsZV9t
ZW1vcnlfbm90ZV91c2UoJmhlYWRlci0+aGVhZGVyLCBwYXlsb2FkLCBvYmplY3QsIHNpemUpOwor
fQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9t
ZW1vcnlfdG91Y2goCisgICAgdm9pZCogb2JqZWN0LCBzaXplX3Qgc2l6ZSwgcGFzX2V4cGVuZGFi
bGVfbWVtb3J5X3RvdWNoX2tpbmQga2luZCkKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBj
YXNlIHBhc19leHBlbmRhYmxlX21lbW9yeV90b3VjaF90b19ub3RlX3VzZToKKyAgICAgICAgcGFz
X2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5X25vdGVfdXNlKG9iamVjdCwgc2l6ZSk7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBjYXNlIHBhc19leHBlbmRhYmxlX21lbW9yeV90b3VjaF90b19j
b21taXRfaWZfbmVjZXNzYXJ5OgorICAgICAgICByZXR1cm4gcGFzX2xhcmdlX2V4cGVuZGFibGVf
bWVtb3J5X2NvbW1pdF9pZl9uZWNlc3Nhcnkob2JqZWN0LCBzaXplKTsKKyAgICB9CisgICAgUEFT
X0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworUEFTX0FQSSBib29sIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeV9zY2F2ZW5nZShwYXNf
ZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2Vfa2luZCBraW5kKTsKKworUEFTX0VORF9FWFRFUk5f
QzsKKworI2VuZGlmIC8qIFBBU19MQVJHRV9FWFBFTkRBQkxFX01FTU9SWV9IICovCisKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwLmMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXAu
YwkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xhcmdlX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtMTMwLDYgKzEzMCw5IEBAIHN0YXRp
YyBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgYWxsb2NhdGVfaW0KICAgICAKICAgICBpZiAoIXJlc3Vs
dC5kaWRfc3VjY2VlZCkKICAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVh
dGVfZmFpbHVyZSgpOworCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coIkNvbW1p
dHRpbmcgdGhlIG1lbW9yeSB3ZSBhbGxvY2F0ZWQgc3RhcnRpbmcgYXQgJXAuXG4iLCAodm9pZCop
cmVzdWx0LmJlZ2luKTsKICAgICAKICAgICBpZiAoaGVhcF9jb25maWctPmFsaWduZWRfYWxsb2Nh
dG9yX3RhbGtzX3RvX3NoYXJpbmdfcG9vbCAmJgogICAgICAgICAhcGFzX2xhcmdlX3NoYXJpbmdf
cG9vbF9hbGxvY2F0ZV9hbmRfY29tbWl0KApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuYwkocmV2aXNpb24gMjg1
Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9j
YXRvci5jCSh3b3JraW5nIGNvcHkpCkBAIC03NSw2ICs3NSwxNiBAQCB2b2lkIHBhc19sb2NhbF9h
bGxvY2F0b3JfY29uc3RydWN0KHBhc19sCiAgICAgYWxsb2NhdG9yLT5jdXJyZW50X3dvcmRfaXNf
dmFsaWQgPSBmYWxzZTsKIH0KIAordm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbnN0cnVjdF91
bnNlbGVjdGVkKHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcikKK3sKKyAgICBwYXNfemVy
b19tZW1vcnkoYWxsb2NhdG9yLCBQQVNfTE9DQUxfQUxMT0NBVE9SX1VOU0VMRUNURURfU0laRSk7
CisKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbnN0cnVjdCgKKyAg
ICAgICAgJmFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEsIHBhc19sb2NhbF9hbGxvY2F0b3JfYWxs
b2NhdG9yX2tpbmQpOworCisgICAgYWxsb2NhdG9yLT5jb25maWdfa2luZCA9IHBhc19sb2NhbF9h
bGxvY2F0b3JfY29uZmlnX2tpbmRfdW5zZWxlY3RlZDsKK30KKwogdm9pZCBwYXNfbG9jYWxfYWxs
b2NhdG9yX3Jlc2V0KHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcikKIHsKICAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuaAko
cmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xvY2FsX2FsbG9jYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC05MCw3ICs5MCwxMCBAQCBzdHJ1
Y3QgcGFzX2xvY2FsX2FsbG9jYXRvciB7CiAgICAgICAgIC5jdXJyZW50X29mZnNldCA9IDAsIFwK
ICAgICAgICAgLmVuZF9vZmZzZXQgPSAwLCBcCiAgICAgICAgIC52aWV3ID0gTlVMTCwgXAotICAg
ICAgICAuY29uZmlnX2tpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX25vcm1h
bF9udWxsIFwKKyAgICAgICAgLmFsaWdubWVudF9zaGlmdCA9IDAsIFwKKyAgICAgICAgLmN1cnJl
bnRfd29yZF9pc192YWxpZCA9IGZhbHNlLCBcCisgICAgICAgIC5jdXJyZW50X3dvcmQgPSAwLCBc
CisgICAgICAgIC5jb25maWdfa2luZCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRf
bnVsbCBcCiAgICAgfSkKIAogI2RlZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9SX1NJWkUobnVtX2Fs
bG9jX2JpdHMpIFwKQEAgLTk5LDYgKzEwMiwxMCBAQCBzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRv
ciB7CiAgICAgICAgICBzaXplb2YodWludDY0X3QpICogUEFTX0JJVFZFQ1RPUl9OVU1fV09SRFM2
NChudW1fYWxsb2NfYml0cyksIFwKICAgICAgICAgIFBBU19ST1VORF9VUF9UT19QT1dFUl9PRl8y
KHNpemVvZihwYXNfYml0Zml0X2FsbG9jYXRvciksIHNpemVvZih1aW50NjRfdCkpKSkKIAorI2Rl
ZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9SX1VOU0VMRUNURURfU0laRSBQQVNfT0ZGU0VUT0YocGFz
X2xvY2FsX2FsbG9jYXRvciwgYml0cykKKyNkZWZpbmUgUEFTX0xPQ0FMX0FMTE9DQVRPUl9VTlNF
TEVDVEVEX0lOREVYIDB1CisjZGVmaW5lIFBBU19MT0NBTF9BTExPQ0FUT1JfVU5TRUxFQ1RFRF9O
VU1fSU5ESUNFUyAoUEFTX0xPQ0FMX0FMTE9DQVRPUl9VTlNFTEVDVEVEX1NJWkUgLyA4KQorCiAj
ZGVmaW5lIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWSAwCiAK
ICNpZiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kKQEAgLTE0
MCw2ICsxNDcsOCBAQCBzdGF0aWMgaW5saW5lIHVpbnRwdHJfdCBwYXNfbG9jYWxfYWxsb2NhCiBQ
QVNfQVBJIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25zdHJ1Y3QocGFzX2xvY2FsX2FsbG9j
YXRvciogYWxsb2NhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwogCitQQVNfQVBJ
IHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25zdHJ1Y3RfdW5zZWxlY3RlZChwYXNfbG9jYWxf
YWxsb2NhdG9yKiBhbGxvY2F0b3IpOworCiBQQVNfQVBJIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRv
cl9yZXNldChwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpOwogCiBzdGF0aWMgaW5saW5l
IHNpemVfdCBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudChwYXNfbG9jYWxfYWxsb2NhdG9y
KiBhbGxvY2F0b3IpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZC5oCShy
ZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNiArMzMsOCBA
QAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBlbnVtIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmln
X2tpbmQgeworICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfbnVsbCwKKyAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX3Vuc2VsZWN0ZWQsCiAjZGVmaW5lIFBBU19E
RUZJTkVfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19LSU5EKG5hbWUsIHZhbHVlKSBcCiAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9ub3JtYWxfICMjIG5hbWUsIFwKICAgICBwYXNf
bG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX3ByaW1vcmRpYWxfcGFydGlhbF8gIyMgbmFtZSwK
QEAgLTE1MSw2ICsxNTMsMTAgQEAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyKgogcGFzX2xvY2Fs
X2FsbG9jYXRvcl9jb25maWdfa2luZF9nZXRfc3RyaW5nKHBhc19sb2NhbF9hbGxvY2F0b3JfY29u
ZmlnX2tpbmQga2luZCkKIHsKICAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIHBhc19sb2Nh
bF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfbnVsbDoKKyAgICAgICAgcmV0dXJuICJudWxsIjsKKyAg
ICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfdW5zZWxlY3RlZDoKKyAgICAg
ICAgcmV0dXJuICJ1bnNlbGVjdGVkIjsKICNkZWZpbmUgUEFTX0RFRklORV9TRUdSRUdBVEVEX1BB
R0VfQ09ORklHX0tJTkQobmFtZSwgdmFsdWUpIFwKICAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0
b3JfY29uZmlnX2tpbmRfbm9ybWFsXyAjIyBuYW1lOiBcCiAgICAgICAgIHJldHVybiAibm9ybWFs
XyIgI25hbWU7IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19s
b2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oCShyZXZpc2lvbiAy
ODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxs
b2NhdG9yX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTQgKzM3LDEzIEBACiAjaW5j
bHVkZSAicGFzX3NjYXZlbmdlci5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgorI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X3BhZ2VfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19p
bmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaW5saW5lcy5oIgogI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCIKICNpbmNsdWRl
ICJwYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFz
X3NpemVfdGh1bmsuaCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgiCiAjaW5j
bHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgiCiAKQEAgLTYzMSw2ICs2MzAsMTAg
QEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zdGFydF9hbGxvY2F0aW5nX2luXwogICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgIH0KIAorICAgICAgICAvKiBXZSBoYXZlIHRvIG1hcmsgdGhpcyBp
biB1c2UgZm9yIGFsbG9jYXRpb24gc2luY2Ugb3RoZXJ3aXNlIHdlIHdvdWxkIHRyeSB0byBkZWNv
bW1taXQgdGhpcyBwYWdlCisgICAgICAgICAgIHJpZ2h0IGFzIHdlIHRyeSB0byBjb21taXQgaXQu
IEJ1dCB0aGF0IGNyZWF0ZXMgYSBmdW4gc2l0dWF0aW9uIHdoZXJlIHRoZSBzaGFyZWRfdmlldyBr
bm93cyBpdHNlbGYKKyAgICAgICAgICAgdG8gYmUgaW4gdXNlIGZvciBhbGxvY2F0aW9uIGJ1dCB3
ZSBkb24ndCBrbm93IHdoaWNoIHBhcnRpYWwgaXMgcmVzcG9uc2libGUgZm9yIHRoYXQsIHNpbmNl
IHRoZQorICAgICAgICAgICBwYXJ0aWFsIGRvZXNuJ3QgZ2V0IHJlZ2lzdGVyZWQgdW50aWwgd2Ug
ZG8gc2V0X3VwX3ByaW1vcmRpYWxfYnVtcCwgYmVsb3cuICovCiAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3BhcnRpYWxfdmlld19zZXRfaXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uKHZpZXcsIHNoYXJl
ZF92aWV3LCBoYW5kbGUpOwogICAgICAgICAKICAgICAgICAgaWYgKHBhZ2VfY29uZmlnLmJhc2Uu
cGFnZV9zaXplID4gcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3NpemUpIHsKQEAgLTg4OCw2ICs4
OTEsOSBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2tub3duX2NvCiAgICAgICAg
IFBBU19BU1NFUlQoZW5hYmxlX3NlZ3JlZ2F0ZWQpOwogICAgIAogICAgIHNpemVfZGlyZWN0b3J5
ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT52aWV3
KTsKKworICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfdG91Y2hfbG9va3VwX3RhYmxlcyhzaXplX2Rp
cmVjdG9yeS0+aGVhcCwgcGFzX2V4cGVuZGFibGVfbWVtb3J5X3RvdWNoX3RvX25vdGVfdXNlKTsK
KyAgICAKICAgICBkaXJlY3RvcnkgPSAmc2l6ZV9kaXJlY3RvcnktPmJhc2U7CiAKICAgICBpZiAo
dmVyYm9zZSkgewpAQCAtMTAzOCw4ICsxMDQ0LDkgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZp
bGxfd2l0aF9rbm93bl9jbwogCiAgICAgICAgICAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KHBhZ2VfY29uZmlnKSk7CiAKLSAgICAgICAgICAgIHZp
ZXdfY2FjaGVfcmVzdWx0ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2Nh
dG9yKAotICAgICAgICAgICAgICAgIGNhY2hlLCBzaXplX2RpcmVjdG9yeS0+dmlld19jYWNoZV9p
bmRleCwgcGFzX2xvY2tfaXNfbm90X2hlbGQpOworICAgICAgICAgICAgdmlld19jYWNoZV9yZXN1
bHQgPQorICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2Fs
bG9jYXRvcl9mb3JfcG9zc2libHlfdW5pbml0aWFsaXplZF9idXRfbm90X3Vuc2VsZWN0ZWRfaW5k
ZXgoCisgICAgICAgICAgICAgICAgICAgIGNhY2hlLCBzaXplX2RpcmVjdG9yeS0+dmlld19jYWNo
ZV9pbmRleCwgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwogICAgICAgICAgICAgY2FjaGUgPSBOVUxM
OyAvKiBUaGUgY2FjaGUgY291bGQgaGF2ZSBiZWVuIHJlc2l6ZWQsIHNvIHdlIGRvbid0IHdhbnQg
dG8gdXNlIHRoaXMgcG9pbnRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnltb3Jl
LiAqLwogICAgICAgICAgICAgaWYgKHZpZXdfY2FjaGVfcmVzdWx0LmRpZF9zdWNjZWVkKSB7CkBA
IC0xNjMzLDYgKzE2NDAsOSBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbG93
X2ltCiAgICAgICAgICAgICBwYXNfbG9nKCJSZWZpbGxpbmcgZnJvbSB0cnlfYWxsb2NhdGVfc2xv
dyB3aXRoIGtpbmQgPSAlc1xuIiwKICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9j
YXRvcl9jb25maWdfa2luZF9nZXRfc3RyaW5nKGFsbG9jYXRvci0+Y29uZmlnX2tpbmQpKTsKICAg
ICAgICAgfQorCisgICAgICAgIFBBU19BU1NFUlQoYWxsb2NhdG9yLT5jb25maWdfa2luZCAhPSBw
YXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX3Vuc2VsZWN0ZWQpOworICAgICAgICBQQVNf
QVNTRVJUKGFsbG9jYXRvci0+Y29uZmlnX2tpbmQgIT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25m
aWdfa2luZF9udWxsKTsKICAgICAKICAgICAgICAgLyogVGhlIGNvbmZpZyBraW5kIG1heSBiZSBi
aXRmaXQsIGJ1dCByZWZpbGxpbmcgaXMgc3BlY2lhbGl6ZWQgb24gc2VncmVnYXRlZCBwYWdlIGNv
bmZpZy4gKi8KICAgICAgICAgcGFnZV9jb25maWcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9w
YWdlX2NvbmZpZyhhbGxvY2F0b3ItPnZpZXcpOwpAQCAtMTcxNCw4ICsxNzI0LDcgQEAgcGFzX2xv
Y2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfaW5saW5lXwogCiBzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxv
Y2F0ZShwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfc2l6ZV90aHVuayBzaXplX3RodW5rLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdm9pZCogc2l6ZV90aHVua19hcmcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBhbGlnbm1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfaGVhcF9jb25maWcgY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cywKQEAgLTE3MjksNyArMTczOCw3IEBAIHBh
c19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKHBhc19sb2MKICAgICBpZiAodmVyYm9zZSkg
ewogICAgICAgICBwYXNfbG9nKCJBbGxvY2F0b3IgJXAgKCVzKSBhbGxvY2F0aW5nIHNpemUgPSAl
enUsIGFsaWdubWVudCA9ICV6dS5cbiIsCiAgICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBwYXNf
bG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoYWxsb2NhdG9yLT5jb25maWdf
a2luZCksCi0gICAgICAgICAgICAgICAgc2l6ZV90aHVuayhzaXplX3RodW5rX2FyZyksIGFsaWdu
bWVudCk7CisgICAgICAgICAgICAgICAgc2l6ZSwgYWxpZ25tZW50KTsKICAgICB9CiAgICAgCiAg
ICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSB0cnVlOwpAQCAtMTc1MSw3
ICsxNzYwLDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUocGFzX2xvYwogICAg
IH0KIAogICAgIGlmIChQQVNfVU5MSUtFTFkocGFzX2RlYnVnX2hlYXBfaXNfZW5hYmxlZChjb25m
aWcua2luZCkpKQotICAgICAgICByZXR1cm4gcGFzX2RlYnVnX2hlYXBfYWxsb2NhdGUoc2l6ZV90
aHVuayhzaXplX3RodW5rX2FyZyksIGFsaWdubWVudCk7CisgICAgICAgIHJldHVybiBwYXNfZGVi
dWdfaGVhcF9hbGxvY2F0ZShzaXplLCBhbGlnbm1lbnQpOwogICAgIAogICAgIGlmIChjb25maWcu
c21hbGxfc2VncmVnYXRlZF9jb25maWcuYmFzZS5pc19lbmFibGVkICYmCiAgICAgICAgIGFsbG9j
YXRvci0+Y29uZmlnX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9jcmVh
dGVfbm9ybWFsKApAQCAtMTc3MSw3ICsxNzgwLDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlf
YWxsb2NhdGUocGFzX2xvYwogICAgIH0KIAogICAgIHJlc3VsdCA9IGNvbmZpZy5zcGVjaWFsaXpl
ZF9sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3Nsb3coCi0gICAgICAgIGFsbG9jYXRvciwg
c2l6ZV90aHVuayhzaXplX3RodW5rX2FyZyksIGFsaWdubWVudCwgY291bnRzLCByZXN1bHRfZmls
dGVyKTsKKyAgICAgICAgYWxsb2NhdG9yLCBzaXplLCBhbGlnbm1lbnQsIGNvdW50cywgcmVzdWx0
X2ZpbHRlcik7CiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coImluIGdlbmVyaWMg
cmV0dXJuIC0gcmVzdWx0LmJlZ2luID0gJXBcbiIsICh2b2lkKilyZXN1bHQuYmVnaW4pOwogICAg
IHJldHVybiByZXN1bHQ7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfbG9ja19mcmVlX3JlYWRfaGFzaHRhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2tfZnJlZV9yZWFkX2hhc2h0YWJsZS5oCShyZXZp
c2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9j
a19mcmVlX3JlYWRfaGFzaHRhYmxlLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwzNTEgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5k
ZWYgUEFTX0xPQ0tfRlJFRV9SRUFEX0hBU0hUQUJMRV9ICi0jZGVmaW5lIFBBU19MT0NLX0ZSRUVf
UkVBRF9IQVNIVEFCTEVfSAotCi0jaW5jbHVkZSAicGFzX2hhc2h0YWJsZS5oIgotCi1QQVNfQkVH
SU5fRVhURVJOX0M7Ci0KLS8qIFRoaXMgY3JlYXRlcyBhIGhhc2h0YWJsZSB0eXBlLiBZb3UgY2Fu
IGNvbnN0cnVjdCBpdCBieSBqdXN0IGluaXRpYWxpemluZyB0byB6ZXJvLiAqLwotCi0jZGVmaW5l
IFBBU19MT0NLX0ZSRUVfUkVBRF9IQVNIVEFCTEVfSU5JVElBTElaRVIgeyBcCi0gICAgICAgIC50
YWJsZSA9IE5VTEwsIFwKLSAgICAgICAgLnRhYmxlX3NpemUgPSAwLCBcCi0gICAgICAgIC50YWJs
ZV9tYXNrID0gMCwgXAotICAgICAgICAua2V5X2NvdW50ID0gMCwgXAotICAgICAgICAuZGVsZXRl
ZF9jb3VudCA9IDAgXAotICAgIH0KLQotI2RlZmluZSBQQVNfQ1JFQVRFX0xPQ0tfRlJFRV9SRUFE
X0hBU0hUQUJMRShuYW1lLCBlbnRyeV90eXBlLCBrZXlfdHlwZSkgXAotICAgIHN0cnVjdCBuYW1l
OyBcCi0gICAgc3RydWN0IG5hbWUjI190YWJsZTsgXAotICAgIHN0cnVjdCBuYW1lIyNfYWRkX3Jl
c3VsdDsgXAotICAgIHR5cGVkZWYgc3RydWN0IG5hbWUgbmFtZTsgXAotICAgIHR5cGVkZWYgc3Ry
dWN0IG5hbWUjI190YWJsZSBuYW1lIyNfdGFibGU7IFwKLSAgICB0eXBlZGVmIHN0cnVjdCBuYW1l
IyNfYWRkX3Jlc3VsdCBuYW1lIyNfYWRkX3Jlc3VsdDsgXAotICAgIFwKLSAgICBzdHJ1Y3QgbmFt
ZSB7IFwKLSAgICAgICAgbmFtZSMjX3RhYmxlKiB0YWJsZTsgXAotICAgIH07IFwKLSAgICBcCi0g
ICAgc3RydWN0IFBBU19BTElHTkVEKHNpemVvZihlbnRyeV90eXBlKSkgbmFtZSMjX3RhYmxlIHsg
XAotICAgICAgICBuYW1lIyNfdGFibGUqIHByZXZpb3VzOyAvKiBKdXN0IHRvIG1ha2UgaXQgbm90
IGxvb2sgbGlrZSBhIGxlYWsuICovIFwKLSAgICAgICAgdW5zaWduZWQgdGFibGVfc2l6ZTsgXAot
ICAgICAgICB1bnNpZ25lZCB0YWJsZV9tYXNrOyBcCi0gICAgICAgIHVuc2lnbmVkIGtleV9jb3Vu
dDsgXAotICAgICAgICB1bnNpZ25lZCBkZWxldGVkX2NvdW50OyBcCi0gICAgICAgIGVudHJ5X3R5
cGUgdGFibGVbMV07IFwKLSAgICB9OyBcCi0gICAgXAotICAgIHN0cnVjdCBuYW1lIyNfYWRkX3Jl
c3VsdCB7IFwKLSAgICAgICAgZW50cnlfdHlwZSogZW50cnk7IFwKLSAgICAgICAgYm9vbCBpc19u
ZXdfZW50cnk7IFwKLSAgICB9OyBcCi0gICAgXAotICAgIFBBU19VTlVTRUQgc3RhdGljIGlubGlu
ZSB2b2lkIG5hbWUjI19jb25zdHJ1Y3QobmFtZSogdGFibGUpIFwKLSAgICB7IFwKLSAgICAgICAg
cGFzX3plcm9fbWVtb3J5KHRhYmxlLCBzaXplb2YobmFtZSkpOyBcCi0gICAgfSBcCi0gICAgXAot
ICAgIFBBU19VTlVTRUQgc3RhdGljIGlubGluZSB2b2lkIG5hbWUjI19yZWhhc2gobmFtZSogaGFz
aHRhYmxlLCB1bnNpZ25lZCBuZXdfc2l6ZSkgXAotICAgIHsgXAotICAgICAgICBzdGF0aWMgY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7IFwKLSAgICAgICAgXAotICAgICAgICBzaXplX3QgbmV3
X2J5dGVfc2l6ZTsgXAotICAgICAgICBuYW1lIyNfdGFibGUqIHRhYmxlOwotICAgICAgICBuYW1l
IyNfdGFibGUqIG5ld190YWJsZTsgXAotICAgICAgICB1bnNpZ25lZCBpbmRleDsgXAotICAgICAg
ICB1bnNpZ25lZCBvbGRfaW5kZXg7IFwKLSAgICAgICAgdW5zaWduZWQgbmV3X3RhYmxlX21hc2s7
IFwKLSAgICAgICAgXAotICAgICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7IFwKLSAg
ICAgICAgXAotICAgICAgICAvKiBUaGlzIGlzIGEgdGFibGUgb2YgbGFyZ2UgYWxsb2NhdGlvbnMs
IHNvIHRoZSBzaXplcyBhcmUgbm90IGdvaW5nIHRvIGJlIGxhcmdlIGVub3VnaCAqLyBcCi0gICAg
ICAgIC8qIHRvIGluZHVjZSBvdmVyZmxvdy4gKi8gXAotICAgICAgICBcCi0gICAgICAgIFBBU19B
U1NFUlQocGFzX2lzX3Bvd2VyX29mXzIobmV3X3NpemUpKTsgXAotICAgICAgICBcCi0gICAgICAg
IHRhYmxlID0gaGFzaHRhYmxlLT50YWJsZTsgXAotICAgICAgICBcCi0gICAgICAgIG5ld190YWJs
ZV9tYXNrID0gbmV3X3NpemUgLSAxOyBcCi0gICAgICAgIG5ld19ieXRlX3NpemUgPSBQQVNfT0ZG
U0VUT0YobmFtZSMjX3RhYmxlLCB0YWJsZSkgKyAoc2l6ZV90KW5ld19zaXplICogc2l6ZW9mKGVu
dHJ5X3R5cGUpOyBcCi0gICAgICAgIGlmICh2ZXJib3NlKSBcCi0gICAgICAgICAgICBwYXNfbG9n
KCJBbGxvY2F0aW5nIGEgbmV3IHRhYmxlIHdpdGggbmV3X3NpemUgPSAlenUsIG5ld19ieXRlX3Np
emUgPSAlenUuXG4iLCBuZXdfc2l6ZSwgbmV3X2J5dGVfc2l6ZSk7IFwKLSAgICAgICAgbmV3X3Rh
YmxlID0gKG5hbWUjI190YWJsZSopKHZvaWQqKXBhc19ib290c3RyYXBfZnJlZV9oZWFwX2FsbG9j
YXRlX3dpdGhfYWxpZ25tZW50KCBcCi0gICAgICAgICAgICBuZXdfYnl0ZV9zaXplLCBcCi0gICAg
ICAgICAgICBwYXNfYWxpZ25tZW50X2NyZWF0ZV90cmFkaXRpb25hbChzaXplb2YoZW50cnlfdHlw
ZSkpLCBcCi0gICAgICAgICAgICAjbmFtZSAiL3RhYmxlIiwKLSAgICAgICAgICAgIHBhc19vYmpl
Y3RfYWxsb2NhdGlvbikuYmVnaW47Ci0gICAgICAgIFwKLSAgICAgICAgZm9yIChpbmRleCA9IG5l
d19zaXplOyBpbmRleC0tOykgXAotICAgICAgICAgICAgbmV3X3RhYmxlLT50YWJsZVtpbmRleF0g
PSBlbnRyeV90eXBlIyNfY3JlYXRlX2VtcHR5KCk7IFwKLSAgICAgICAgXAotICAgICAgICBmb3Ig
KG9sZF9pbmRleCA9IDA7IG9sZF9pbmRleCA8IHRhYmxlLT50YWJsZV9zaXplOyArK29sZF9pbmRl
eCkgeyBcCi0gICAgICAgICAgICBlbnRyeV90eXBlKiBvbGRfZW50cnk7IFwKLSAgICAgICAgICAg
IHVuc2lnbmVkIGhhc2g7IFwKLSAgICAgICAgICAgIFwKLSAgICAgICAgICAgIG9sZF9lbnRyeSA9
IHRhYmxlLT50YWJsZSArIG9sZF9pbmRleDsgXAotICAgICAgICAgICAgaWYgKGVudHJ5X3R5cGUj
I19pc19lbXB0eV9vcl9kZWxldGVkKCpvbGRfZW50cnkpKSBcCi0gICAgICAgICAgICAgICAgY29u
dGludWU7IFwKLSAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGZvciAoaGFzaCA9IGtleV90eXBl
IyNfZ2V0X2hhc2goZW50cnlfdHlwZSMjX2dldF9rZXkoKm9sZF9lbnRyeSkpOyA7ICsraGFzaCkg
eyBcCi0gICAgICAgICAgICAgICAgdW5zaWduZWQgbmV3X2luZGV4OyBcCi0gICAgICAgICAgICAg
ICAgZW50cnlfdHlwZSogbmV3X2VudHJ5OyBcCi0gICAgICAgICAgICAgICAgXAotICAgICAgICAg
ICAgICAgIG5ld19pbmRleCA9IGhhc2ggJiBuZXdfdGFibGVfbWFzazsgXAotICAgICAgICAgICAg
ICAgIG5ld19lbnRyeSA9IG5ld190YWJsZS0+dGFibGUgKyBuZXdfaW5kZXg7IFwKLSAgICAgICAg
ICAgICAgICBpZiAoZW50cnlfdHlwZSMjX2lzX2VtcHR5X29yX2RlbGV0ZWQoKm5ld19lbnRyeSkp
IHsgXAotICAgICAgICAgICAgICAgICAgICAqbmV3X2VudHJ5ID0gKm9sZF9lbnRyeTsgXAotICAg
ICAgICAgICAgICAgICAgICBicmVhazsgXAotICAgICAgICAgICAgICAgIH0gXAotICAgICAgICAg
ICAgfSBcCi0gICAgICAgIH0gXAotICAgICAgICBcCi0gICAgICAgIG5ld190YWJsZS0+dGFibGVf
c2l6ZSA9IG5ld19zaXplOyBcCi0gICAgICAgIG5ld190YWJsZS0+dGFibGVfbWFzayA9IDA7IFwK
LSAgICAgICAgbmV3X3RhYmxlLT5kZWxldGVkX2NvdW50ID0gMDsgXAotICAgICAgICBuZXdfdGFi
bGUtPmtleV9jb3VudCA9IHRhYmxlLT5rZXlfY291bnQ7IFwKLSAgICAgICAgXAotICAgICAgICBw
YXNfZmVuY2UoKTsgXAotICAgICAgICBcCi0gICAgICAgIGhhc2h0YWJsZS0+dGFibGUgPSB0YWJs
ZTsgXAotICAgIH0gXAotICAgIFwKLSAgICBQQVNfVU5VU0VEIHN0YXRpYyBpbmxpbmUgdm9pZCBu
YW1lIyNfZXhwYW5kKG5hbWUqIGhhc2h0YWJsZSkgXAotICAgIHsgXAotICAgICAgICBuYW1lIyNf
dGFibGUqIHRhYmxlOyBcCi0gICAgICAgIHVuc2lnbmVkIG5ld19zaXplOyBcCi0gICAgICAgIFwK
LSAgICAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOyBcCi0gICAgICAgIFwKLSAgICAg
ICAgdGFibGUgPSBoYXNodGFibGUtPnRhYmxlOyBcCi0gICAgICAgIFwKLSAgICAgICAgaWYgKCF0
YWJsZS0+dGFibGVfc2l6ZSkgXAotICAgICAgICAgICAgbmV3X3NpemUgPSBQQVNfSEFTSFRBQkxF
X01JTl9TSVpFOyBcCi0gICAgICAgIGVsc2UgaWYgKHRhYmxlLT5rZXlfY291bnQgKiBQQVNfSEFT
SFRBQkxFX01JTl9MT0FEIDwgdGFibGUtPnRhYmxlX3NpemUgKiAyKSBcCi0gICAgICAgICAgICBu
ZXdfc2l6ZSA9IHRhYmxlLT50YWJsZV9zaXplOyBcCi0gICAgICAgIGVsc2UgXAotICAgICAgICAg
ICAgbmV3X3NpemUgPSB0YWJsZS0+dGFibGVfc2l6ZSAqIDI7IFwKLSAgICAgICAgbmFtZSMjX3Jl
aGFzaChoYXNodGFibGUsIG5ld19zaXplKTsgXAotICAgIH0gXAotICAgIFwKLSAgICBQQVNfVU5V
U0VEIHN0YXRpYyBpbmxpbmUgdm9pZCBuYW1lIyNfc2hyaW5rKG5hbWUqIGhhc2h0YWJsZSkgXAot
ICAgIHsgXAotICAgICAgICBuYW1lIyNfdGFibGUqIHRhYmxlOyBcCi0gICAgICAgIFwKLSAgICAg
ICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOyBcCi0gICAgICAgIFwKLSAgICAgICAgdGFi
bGUgPSBoYXNodGFibGUtPnRhYmxlOyBcCi0gICAgICAgIG5hbWUjI19yZWhhc2goaGFzaHRhYmxl
LCB0YWJsZS0+dGFibGVfc2l6ZSAvIDIpOyBcCi0gICAgfSBcCi0gICAgXAotICAgIFBBU19VTlVT
RUQgc3RhdGljIGlubGluZSBlbnRyeV90eXBlKiBuYW1lIyNfZmluZChuYW1lKiBoYXNodGFibGUs
IGtleV90eXBlIGtleSkgXAotICAgIHsgXAotICAgICAgICBuYW1lIyNfdGFibGUqIHRhYmxlOyBc
Ci0gICAgICAgIFwKLSAgICAgICAgdGFibGUgPSBoYXNodGFibGUtPnRhYmxlOyBcCi0gICAgICAg
IFwKLSAgICAgICAgaWYgKCF0YWJsZSkgXAotICAgICAgICAgICAgcmV0dXJuIE5VTEw7IFwKLSAg
ICAgICAgXAotICAgICAgICBmb3IgKHVuc2lnbmVkIGhhc2ggPSBrZXlfdHlwZSMjX2dldF9oYXNo
KGtleSk7IDsgKytoYXNoKSB7IFwKLSAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4OyBcCi0gICAg
ICAgICAgICBlbnRyeV90eXBlKiBlbnRyeV9wdHI7IFwKLSAgICAgICAgICAgIGVudHJ5X3R5cGUj
I19sb2FkZWRfa2V5X2JlZm9yZV92YWx1ZSBsb2FkZWRfa2V5X2JlZm9yZV92YWx1ZTsgXAotICAg
ICAgICAgICAgXAotICAgICAgICAgICAgaW5kZXggPSBoYXNoICYgdGFibGUtPnRhYmxlX21hc2s7
IFwKLSAgICAgICAgICAgIGVudHJ5X3B0ciA9IHRhYmxlLT50YWJsZSArIGluZGV4OyBcCi0gICAg
ICAgICAgICBcCi0gICAgICAgICAgICBsb2FkZWRfa2V5X2JlZm9yZV92YWx1ZSA9IGVudHJ5X3R5
cGUjI19sb2FkX2tleV9iZWZvcmVfdmFsdWUoZW50cnlfcHRyKTsgXAotICAgICAgICAgICAgXAot
ICAgICAgICAgICAgaWYgKGVudHJ5X3R5cGUjI19sb2FkZWRfa2V5X2JlZm9yZV92YWx1ZV9pc19l
bXB0eV9vcl9kZWxldGVkKGxvYWRlZF9rZXlfYmVmb3JlX3ZhbHVlKSkgeyBcCi0gICAgICAgICAg
ICAgICAgaWYgKGVudHJ5X3R5cGUjI19sb2FkZWRfa2V5X2JlZm9yZV92YWx1ZV9pc19kZWxldGVk
KGxvYWRlZF9rZXlfYmVmb3JlX3ZhbHVlKSkgXAotICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsgXAotICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOyBcCi0gICAgICAgICAgICB9IFwKLSAg
ICAgICAgICAgIGlmIChrZXlfdHlwZSMjX2lzX2VxdWFsKCBcCi0gICAgICAgICAgICAgICAgICAg
IGVudHJ5X3R5cGUjI19sb2FkZWRfa2V5X2JlZm9yZV92YWx1ZV9nZXRfa2V5KGxvYWRlZF9rZXlf
YmVmb3JlX3ZhbHVlKSwga2V5KSkgXAotICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeV90eXBl
IyNfbG9hZGVkX2tleV9iZWZvcmVfdmFsdWVfZ2V0X2VudHJ5KGxvYWRlZF9rZXlfYmVmb3JlX3Zh
bHVlKTsgXAotICAgICAgICB9IFwKLSAgICB9IFwKLSAgICBQQVNfVU5VU0VEIHN0YXRpYyBpbmxp
bmUgZW50cnlfdHlwZSBuYW1lIyNfZ2V0KG5hbWUqIGhhc2h0YWJsZSwga2V5X3R5cGUga2V5KSBc
Ci0gICAgeyBcCi0gICAgICAgIGVudHJ5X3R5cGUqIHJlc3VsdDsgXAotICAgICAgICByZXN1bHQg
PSBuYW1lIyNfZmluZChoYXNodGFibGUsIGtleSk7IFwKLSAgICAgICAgaWYgKCFyZXN1bHQpIFwK
LSAgICAgICAgICAgIHJldHVybiBlbnRyeV90eXBlIyNfY3JlYXRlX2VtcHR5KCk7IFwKLSAgICAg
ICAgcmV0dXJuICpyZXN1bHQ7IFwKLSAgICB9IFwKLSAgICBcCi0gICAgUEFTX1VOVVNFRCBzdGF0
aWMgaW5saW5lIG5hbWUjI19hZGRfcmVzdWx0IG5hbWUjI19hZGQobmFtZSogaGFzaHRhYmxlLCBr
ZXlfdHlwZSBrZXkpIFwKLSAgICB7IFwKLSAgICAgICAgbmFtZSMjX3RhYmxlKiB0YWJsZTsgXAot
ICAgICAgICBlbnRyeV90eXBlKiBlbnRyeTsgXAotICAgICAgICBlbnRyeV90eXBlKiBkZWxldGVk
X2VudHJ5OyBcCi0gICAgICAgIHVuc2lnbmVkIGhhc2g7IFwKLSAgICAgICAgbmFtZSMjX2FkZF9y
ZXN1bHQgcmVzdWx0OyBcCi0gICAgICAgIFwKLSAgICAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRf
aGVsZCgpOyBcCi0gICAgICAgIFwKLSAgICAgICAgdGFibGUgPSBoYXNodGFibGUtPnRhYmxlOyBc
Ci0gICAgICAgIFwKLSAgICAgICAgaWYgKCh0YWJsZS0+a2V5X2NvdW50ICsgdGFibGUtPmRlbGV0
ZWRfY291bnQpICogUEFTX0hBU0hUQUJMRV9NQVhfTE9BRCBcCi0gICAgICAgICAgICA+PSB0YWJs
ZS0+dGFibGVfc2l6ZSkgXAotICAgICAgICAgICAgbmFtZSMjX2V4cGFuZChoYXNodGFibGUpOyBc
Ci0gICAgICAgIFwKLSAgICAgICAgZGVsZXRlZF9lbnRyeSA9IE5VTEw7IFwKLSAgICAgICAgXAot
ICAgICAgICBmb3IgKGhhc2ggPSBrZXlfdHlwZSMjX2dldF9oYXNoKGtleSk7IDsgKytoYXNoKSB7
IFwKLSAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4OyBcCi0gICAgICAgICAgICBpbmRleCA9IGhh
c2ggJiB0YWJsZS0+dGFibGVfbWFzazsgXAotICAgICAgICAgICAgZW50cnkgPSB0YWJsZS0+dGFi
bGUgKyBpbmRleDsgXAotICAgICAgICAgICAgaWYgKGVudHJ5X3R5cGUjI19pc19lbXB0eSgqZW50
cnkpKSBcCi0gICAgICAgICAgICAgICAgYnJlYWs7IFwKLSAgICAgICAgICAgIGlmIChlbnRyeV90
eXBlIyNfaXNfZGVsZXRlZCgqZW50cnkpKSB7IFwKLSAgICAgICAgICAgICAgICBpZiAoIWRlbGV0
ZWRfZW50cnkpIFwKLSAgICAgICAgICAgICAgICAgICAgZGVsZXRlZF9lbnRyeSA9IGVudHJ5OyBc
Ci0gICAgICAgICAgICAgICAgY29udGludWU7IFwKLSAgICAgICAgICAgIH0gXAotICAgICAgICAg
ICAgaWYgKGtleV90eXBlIyNfaXNfZXF1YWwoZW50cnlfdHlwZSMjX2dldF9rZXkoKmVudHJ5KSwg
a2V5KSkgeyBcCi0gICAgICAgICAgICAgICAgcmVzdWx0LmVudHJ5ID0gZW50cnk7IFwKLSAgICAg
ICAgICAgICAgICByZXN1bHQuaXNfbmV3X2VudHJ5ID0gZmFsc2U7IFwKLSAgICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OyBcCi0gICAgICAgICAgICB9IFwKLSAgICAgICAgfSBcCi0gICAgICAg
IFwKLSAgICAgICAgaWYgKGRlbGV0ZWRfZW50cnkpIHsgXAotICAgICAgICAgICAgdGFibGUtPmRl
bGV0ZWRfY291bnQtLTsgXAotICAgICAgICAgICAgZW50cnkgPSBkZWxldGVkX2VudHJ5OyBcCi0g
ICAgICAgIH0gXAotICAgICAgICB0YWJsZS0+a2V5X2NvdW50Kys7IFwKLSAgICAgICAgXAotICAg
ICAgICByZXN1bHQuZW50cnkgPSBlbnRyeTsgXAotICAgICAgICByZXN1bHQuaXNfbmV3X2VudHJ5
ID0gdHJ1ZTsgXAotICAgICAgICByZXR1cm4gcmVzdWx0OyBcCi0gICAgfSBcCi0gICAgXAotICAg
IFBBU19VTlVTRUQgc3RhdGljIGlubGluZSB2b2lkIG5hbWUjI19hZGRfbmV3KG5hbWUqIHRhYmxl
LCBlbnRyeV90eXBlIG5ld19lbnRyeSkgXAotICAgIHsgXAotICAgICAgICBuYW1lIyNfYWRkX3Jl
c3VsdCByZXN1bHQgPSBuYW1lIyNfYWRkKHRhYmxlLCBlbnRyeV90eXBlIyNfZ2V0X2tleShuZXdf
ZW50cnkpKTsgXAotICAgICAgICBQQVNfQVNTRVJUKHJlc3VsdC5pc19uZXdfZW50cnkpOyBcCi0g
ICAgICAgIGVudHJ5X3R5cGUjI19zdG9yZV9hdG9taWMocmVzdWx0LmVudHJ5LCBuZXdfZW50cnkp
OyBcCi0gICAgfSBcCi0gICAgXAotICAgIFBBU19VTlVTRUQgc3RhdGljIGlubGluZSBib29sIG5h
bWUjI19zZXQobmFtZSogdGFibGUsIGVudHJ5X3R5cGUgbmV3X2VudHJ5KSBcCi0gICAgeyBcCi0g
ICAgICAgIG5hbWUjI19hZGRfcmVzdWx0IHJlc3VsdCA9IG5hbWUjI19hZGQodGFibGUsIGVudHJ5
X3R5cGUjI19nZXRfa2V5KG5ld19lbnRyeSkpOyBcCi0gICAgICAgIGVudHJ5X3R5cGUjI19zdG9y
ZV9hdG9taWMocmVzdWx0LmVudHJ5LCBuZXdfZW50cnkpOyBcCi0gICAgICAgIHJldHVybiByZXN1
bHQuaXNfbmV3X2VudHJ5OyBcCi0gICAgfSBcCi0gICAgXAotICAgIFBBU19VTlVTRUQgc3RhdGlj
IGlubGluZSBib29sIG5hbWUjI190YWtlX2ltcGwobmFtZSogdGFibGUsIGtleV90eXBlIGtleSwg
ZW50cnlfdHlwZSogcmVzdWx0KSBcCi0gICAgeyBcCi0gICAgICAgIGVudHJ5X3R5cGUqIGVudHJ5
X3B0cjsgXAotICAgICAgICBlbnRyeV90eXBlIGVudHJ5OyBcCi0gICAgICAgIFwKLSAgICAgICAg
ZW50cnlfcHRyID0gbmFtZSMjX2ZpbmQodGFibGUsIGtleSk7IFwKLSAgICAgICAgaWYgKCFlbnRy
eV9wdHIpIHsgXAotICAgICAgICAgICAgKnJlc3VsdCA9IGVudHJ5X3R5cGUjI19jcmVhdGVfZW1w
dHkoKTsgXAotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyBcCi0gICAgICAgIH0gXAotICAgICAg
ICBcCi0gICAgICAgIGVudHJ5ID0gKmVudHJ5X3B0cjsgXAotICAgICAgICBlbnRyeV90eXBlIyNf
c3RvcmVfYXRvbWljKGVudHJ5X3B0ciwgZW50cnlfdHlwZSMjX2NyZWF0ZV9kZWxldGVkKCkpOyBc
Ci0gICAgICAgIHRhYmxlLT5kZWxldGVkX2NvdW50Kys7IFwKLSAgICAgICAgdGFibGUtPmtleV9j
b3VudC0tOyBcCi0gICAgICAgIGlmICh0YWJsZS0+a2V5X2NvdW50ICogUEFTX0hBU0hUQUJMRV9N
SU5fTE9BRCA8IHRhYmxlLT50YWJsZV9zaXplIFwKLSAgICAgICAgICAgICYmIHRhYmxlLT50YWJs
ZV9zaXplID4gUEFTX0hBU0hUQUJMRV9NSU5fU0laRSkgXAotICAgICAgICAgICAgbmFtZSMjX3No
cmluayh0YWJsZSk7IFwKLSAgICAgICAgXAotICAgICAgICAqcmVzdWx0ID0gZW50cnk7IFwKLSAg
ICAgICAgcmV0dXJuIHRydWU7IFwKLSAgICB9IFwKLSAgICBcCi0gICAgUEFTX1VOVVNFRCBzdGF0
aWMgaW5saW5lIGVudHJ5X3R5cGUgbmFtZSMjX3Rha2UobmFtZSogdGFibGUsIGtleV90eXBlIGtl
eSkgXAotICAgIHsgXAotICAgICAgICBlbnRyeV90eXBlIHJlc3VsdDsgXAotICAgICAgICBuYW1l
IyNfdGFrZV9pbXBsKHRhYmxlLCBrZXksICZyZXN1bHQpOyBcCi0gICAgICAgIHJldHVybiByZXN1
bHQ7IFwKLSAgICB9IFwKLSAgICBcCi0gICAgUEFTX1VOVVNFRCBzdGF0aWMgaW5saW5lIGJvb2wg
bmFtZSMjX3JlbW92ZShuYW1lKiB0YWJsZSwga2V5X3R5cGUga2V5KSBcCi0gICAgeyBcCi0gICAg
ICAgIGVudHJ5X3R5cGUgcmVzdWx0OyBcCi0gICAgICAgIHJldHVybiBuYW1lIyNfdGFrZV9pbXBs
KHRhYmxlLCBrZXksICZyZXN1bHQpOyBcCi0gICAgfSBcCi0gICAgXAotICAgIFBBU19VTlVTRUQg
c3RhdGljIGlubGluZSB2b2lkIG5hbWUjI19kZWxldGUobmFtZSogdGFibGUsIGtleV90eXBlIGtl
eSkgXAotICAgIHsgXAotICAgICAgICBib29sIHJlc3VsdDsgXAotICAgICAgICByZXN1bHQgPSBu
YW1lIyNfcmVtb3ZlKHRhYmxlLCBrZXkpOyBcCi0gICAgICAgIFBBU19BU1NFUlQocmVzdWx0KTsg
XAotICAgIH0gXAotICAgIFwKLSAgICB0eXBlZGVmIGJvb2wgKCpuYW1lIyNfZm9yX2VhY2hfZW50
cnlfY2FsbGJhY2spKGVudHJ5X3R5cGUqIGVudHJ5LCB2b2lkKiBhcmcpOyBcCi0gICAgXAotICAg
IFBBU19VTlVTRUQgc3RhdGljIGlubGluZSBib29sIG5hbWUjI19mb3JfZWFjaF9lbnRyeShuYW1l
KiB0YWJsZSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBuYW1lIyNfZm9yX2VhY2hfZW50cnlfY2FsbGJhY2sgY2FsbGJhY2ssIFwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9p
ZCogYXJnKSBcCi0gICAgeyBcCi0gICAgICAgIHVuc2lnbmVkIGluZGV4OyBcCi0gICAgICAgIFwK
LSAgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgdGFibGUtPnRhYmxlX3NpemU7ICsraW5k
ZXgpIHsgXAotICAgICAgICAgICAgZW50cnlfdHlwZSogZW50cnk7IFwKLSAgICAgICAgICAgIFwK
LSAgICAgICAgICAgIGVudHJ5ID0gdGFibGUtPnRhYmxlICsgaW5kZXg7IFwKLSAgICAgICAgICAg
IGlmIChlbnRyeV90eXBlIyNfaXNfZW1wdHlfb3JfZGVsZXRlZCgqZW50cnkpKSBcCi0gICAgICAg
ICAgICAgICAgY29udGludWU7IFwKLSAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGlmICghY2Fs
bGJhY2soZW50cnksIGFyZykpIFwKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IFwKLSAg
ICAgICAgfSBcCi0gICAgICAgIFwKLSAgICAgICAgcmV0dXJuIHRydWU7IFwKLSAgICB9IFwKLSAg
ICBcCi0gICAgUEFTX1VOVVNFRCBzdGF0aWMgaW5saW5lIHNpemVfdCBuYW1lIyNfc2l6ZShuYW1l
KiB0YWJsZSkgXAotICAgIHsgXAotICAgICAgICByZXR1cm4gdGFibGUtPmtleV9jb3VudDsgXAot
ICAgIH0gXAotICAgIFwKLSAgICBQQVNfVU5VU0VEIHN0YXRpYyBpbmxpbmUgc2l6ZV90IG5hbWUj
I19lbnRyeV9pbmRleF9lbmQobmFtZSogdGFibGUpIFwKLSAgICB7IFwKLSAgICAgICAgcmV0dXJu
IHRhYmxlLT50YWJsZV9zaXplOyBcCi0gICAgfSBcCi0gICAgXAotICAgIFBBU19VTlVTRUQgc3Rh
dGljIGlubGluZSBlbnRyeV90eXBlKiBuYW1lIyNfZW50cnlfYXRfaW5kZXgobmFtZSogdGFibGUs
IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBpbmRleCkgXAotICAgIHsgXAotICAgICAgICByZXR1cm4gdGFibGUt
PnRhYmxlICsgaW5kZXg7IFwKLSAgICB9IFwKLSAgICBcCi0gICAgc3RydWN0IHBhc19kdW1teQot
Ci1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0xPQ0tfRlJFRV9SRUFEX0hBU0hU
QUJMRV9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19v
YmplY3Rfc2l6ZV9tb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX29iamVjdF9zaXplX21vZGUuaAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX29iamVjdF9zaXplX21vZGUuaAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19PQkpFQ1RfU0laRV9NT0RFX0gKLSNk
ZWZpbmUgUEFTX09CSkVDVF9TSVpFX01PREVfSAotCi0jaW5jbHVkZSAicGFzX3V0aWxzLmgiCi0K
LVBBU19CRUdJTl9FWFRFUk5fQzsKLQotZW51bSBwYXNfb2JqZWN0X3NpemVfbW9kZSB7Ci0gICAg
cGFzX2xhcmdlX29iamVjdF9zaXplLAotICAgIHBhc19tZWRpdW1fb2JqZWN0X3NpemUsCi0gICAg
cGFzX3NtYWxsX29iamVjdF9zaXplCi19OwotCi10eXBlZGVmIGVudW0gcGFzX29iamVjdF9zaXpl
X21vZGUgcGFzX29iamVjdF9zaXplX21vZGU7Ci0KLSNkZWZpbmUgUEFTX05VTV9PQkpFQ1RfU0la
RV9NT0RFUyAzCi0KLS8qIFVzZSB0aGlzIGxpa2Ugc286Ci0gICAKLSAgICAgICBwYXNfb2JqZWN0
X3NpemVfbW9kZSBvYmplY3Rfc2l6ZTsKLSAgIAotICAgICAgIGZvciAoUEFTX0VBQ0hfT0JKRUNU
X1NJWkVfTU9ERV9ET1dOX0ZST00ob2JqZWN0X3NpemUsIHBhc19tZWRpdW1fb2JqZWN0X3NpemUp
KQotICAgICAgICAgICAuLi4gZG8gdGhpbmdzIHRvIG9iamVjdF9zaXplIC4uLgotICAgCi0gICBU
aGF0IHdheSBpdCdzIGVhc3kgdG8gaXRlcmF0ZSBvdmVyIGFsbCBtb2RlcyBmcm9tIG1lZGl1bSBk
b3duIHRvIHNtYWxsLiAqLwotI2RlZmluZSBQQVNfRUFDSF9PQkpFQ1RfU0laRV9NT0RFX0RPV05f
RlJPTSh2YXJpYWJsZSwgc3RhcnQpICBcCi0gICAgdmFyaWFibGUgPSAoc3RhcnQpOyBcCi0gICAg
dmFyaWFibGUgPD0gcGFzX3NtYWxsX29iamVjdF9zaXplOyBcCi0gICAgdmFyaWFibGUgPSAocGFz
X29iamVjdF9zaXplX21vZGUpKCh1bnNpZ25lZCl2YXJpYWJsZSArIDEpCi0KLS8qIExpa2UgUEFT
X0VBQ0hfT0JKRUNUX1NJWkVfTU9ERV9ET1dOX0ZST00gYnV0IGZvciBhbGwgb2YgdGhlbS4gKi8K
LSNkZWZpbmUgUEFTX0VBQ0hfT0JKRUNUX1NJWkVfTU9ERSh2YXJpYWJsZSkgXAotICAgIFBBU19F
QUNIX09CSkVDVF9TSVpFX01PREVfRE9XTl9GUk9NKHZhcmlhYmxlLCBwYXNfbGFyZ2Vfb2JqZWN0
X3NpemUpCi0KLSNkZWZpbmUgUEFTX0VBQ0hfT0JKRUNUX1NJWkVfTU9ERV9VUF9UTyh2YXJpYWJs
ZSwgZW5kKSBcCi0gICAgdmFyaWFibGUgPSBwYXNfc21hbGxfb2JqZWN0X3NpemU7IFwKLSAgICAo
aW50KXZhcmlhYmxlID49IChpbnQpKGVuZCk7IFwKLSAgICB2YXJpYWJsZSA9IChwYXNfb2JqZWN0
X3NpemVfbW9kZSkoKHVuc2lnbmVkKXZhcmlhYmxlIC0gMSkKLQotc3RhdGljIGlubGluZSBjb25z
dCBjaGFyKiBwYXNfb2JqZWN0X3NpemVfbW9kZV9nZXRfc3RyaW5nKHBhc19vYmplY3Rfc2l6ZV9t
b2RlIG9iamVjdF9zaXplKQotewotICAgIHN3aXRjaCAob2JqZWN0X3NpemUpIHsKLSAgICBjYXNl
IHBhc19sYXJnZV9vYmplY3Rfc2l6ZToKLSAgICAgICAgcmV0dXJuICJsYXJnZSI7Ci0gICAgY2Fz
ZSBwYXNfbWVkaXVtX29iamVjdF9zaXplOgotICAgICAgICByZXR1cm4gIm1lZGl1bSI7Ci0gICAg
Y2FzZSBwYXNfc21hbGxfb2JqZWN0X3NpemU6Ci0gICAgICAgIHJldHVybiAic21hbGwiOwotICAg
IH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAgcmV0dXJu
IE5VTEw7Ci19Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfT0JKRUNUX1NJ
WkVfTU9ERV9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19wYWdlX21hbGxvYy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19wYWdlX21hbGxvYy5jCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9tYWxsb2MuYwkod29ya2luZyBjb3B5KQpA
QCAtMTczLDIyICsxNzMsMTcgQEAgdm9pZCBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KHZvaWQqIHB0
ciwgcwogICAgIGlmIChlbmRfYXNfaW50ID09IGJhc2VfYXNfaW50KQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAocGFzX3BhZ2VfbWFsbG9jX21wcm90ZWN0X2RlY29tbWl0dGVkKSB7CisgICAg
aWYgKFBBU19NUFJPVEVDVF9ERUNPTU1JVFRFRCkgewogICAgICAgICByZXN1bHQgPSBtcHJvdGVj
dCgodm9pZCopYmFzZV9hc19pbnQsIGVuZF9hc19pbnQgLSBiYXNlX2FzX2ludCwgUFJPVF9SRUFE
IHwgUFJPVF9XUklURSk7CiAgICAgICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgICAgIHBhc19s
b2coIkNvdWxkIG5vdCBtcHJvdGVjdCBvbiBjb21taXQ6IGVycm9yIGNvZGUgJWRcbiIsIHJlc3Vs
dCk7CiAgICAgICAgICAgICBQQVNfQVNTRVJUKCFyZXN1bHQpOwogICAgICAgICB9CiAgICAgfQot
Ci0gICAgaWYgKCFQQVNfTUFEVklTRV9TWU1NRVRSSUMpCi0gICAgICAgIHJldHVybjsKLQotICAg
IHJlc3VsdCA9IG1hZHZpc2UoKHZvaWQqKWJhc2VfYXNfaW50LCBlbmRfYXNfaW50IC0gYmFzZV9h
c19pbnQsIE1BRFZfRlJFRV9SRVVTRSk7Ci0gICAgUEFTX0FTU0VSVCghcmVzdWx0KTsKIH0KIAot
dm9pZCBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXQodm9pZCogcHRyLCBzaXplX3Qgc2l6ZSkKK3N0
YXRpYyB2b2lkIGRlY29tbWl0X2ltcGwodm9pZCogcHRyLCBzaXplX3Qgc2l6ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgYm9vbCBpc19hc3ltbWV0cmljKQogewogICAgIHN0YXRpYyBjb25z
dCBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAKQEAgLTIxMSwxMiArMjA2LDI0IEBAIHZvaWQg
cGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0KHZvaWQqIHB0ciwKICAgICByZXN1bHQgPSBtYWR2aXNl
KCh2b2lkKiliYXNlX2FzX2ludCwgZW5kX2FzX2ludCAtIGJhc2VfYXNfaW50LCBNQURWX0ZSRUVf
UkVVU0FCTEUpOwogICAgIFBBU19BU1NFUlQoIXJlc3VsdCk7CiAKLSAgICBpZiAocGFzX3BhZ2Vf
bWFsbG9jX21wcm90ZWN0X2RlY29tbWl0dGVkKSB7CisgICAgaWYgKFBBU19NUFJPVEVDVF9ERUNP
TU1JVFRFRCAmJiAhaXNfYXN5bW1ldHJpYykgewogICAgICAgICByZXN1bHQgPSBtcHJvdGVjdCgo
dm9pZCopYmFzZV9hc19pbnQsIGVuZF9hc19pbnQgLSBiYXNlX2FzX2ludCwgUFJPVF9OT05FKTsK
ICAgICAgICAgUEFTX0FTU0VSVCghcmVzdWx0KTsKICAgICB9CiB9CiAKK3ZvaWQgcGFzX3BhZ2Vf
bWFsbG9jX2RlY29tbWl0KHZvaWQqIHB0ciwgc2l6ZV90IHNpemUpCit7CisgICAgc3RhdGljIGNv
bnN0IGJvb2wgaXNfYXN5bW1ldHJpYyA9IGZhbHNlOworICAgIGRlY29tbWl0X2ltcGwocHRyLCBz
aXplLCBpc19hc3ltbWV0cmljKTsKK30KKwordm9pZCBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXRf
YXN5bW1ldHJpYyh2b2lkKiBwdHIsIHNpemVfdCBzaXplKQoreworICAgIHN0YXRpYyBjb25zdCBi
b29sIGlzX2FzeW1tZXRyaWMgPSB0cnVlOworICAgIGRlY29tbWl0X2ltcGwocHRyLCBzaXplLCBp
c19hc3ltbWV0cmljKTsKK30KKwogdm9pZCBwYXNfcGFnZV9tYWxsb2NfZGVhbGxvY2F0ZSh2b2lk
KiBwdHIsIHNpemVfdCBzaXplKQogewogICAgIHVpbnRwdHJfdCBwdHJfYXNfaW50OwpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9jLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9j
LmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19wYWdlX21hbGxvYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw2IEBAIFBBU19C
RUdJTl9FWFRFUk5fQzsKIFBBU19BUEkgZXh0ZXJuIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfbnVt
X2FsbG9jYXRlZF9ieXRlczsKIFBBU19BUEkgZXh0ZXJuIHNpemVfdCBwYXNfcGFnZV9tYWxsb2Nf
Y2FjaGVkX2FsaWdubWVudDsKIFBBU19BUEkgZXh0ZXJuIHNpemVfdCBwYXNfcGFnZV9tYWxsb2Nf
Y2FjaGVkX2FsaWdubWVudF9zaGlmdDsKLVBBU19BUEkgZXh0ZXJuIGJvb2wgcGFzX3BhZ2VfbWFs
bG9jX21wcm90ZWN0X2RlY29tbWl0dGVkOwogCiBQQVNfQVBJIHNpemVfdCBwYXNfcGFnZV9tYWxs
b2NfYWxpZ25tZW50X3Nsb3codm9pZCk7CiAKQEAgLTY2LDYgKzY1LDggQEAgUEFTX0FQSSB2b2lk
IHBhc19wYWdlX21hbGxvY19kZWFsbG9jYXRlKAogUEFTX0FQSSB2b2lkIHBhc19wYWdlX21hbGxv
Y19jb21taXQodm9pZCogYmFzZSwgc2l6ZV90IHNpemUpOwogUEFTX0FQSSB2b2lkIHBhc19wYWdl
X21hbGxvY19kZWNvbW1pdCh2b2lkKiBiYXNlLCBzaXplX3Qgc2l6ZSk7CiAKK1BBU19BUEkgdm9p
ZCBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXRfYXN5bW1ldHJpYyh2b2lkKiBiYXNlLCBzaXplX3Qg
c2l6ZSk7CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQQVNfUEFHRV9NQUxMT0Nf
SCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hh
cmluZ19wb29sLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmMJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbC5jCSh3b3JraW5n
IGNvcHkpCkBAIC04NDQsNiArODQ0LDExIEBAIHZvaWQgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmlu
Z19wb29sX3Rha2UKICAgICBwYXNfbG9jayoqIGxvY2tzX2FscmVhZHlfaGVsZCwKICAgICBzaXpl
X3QgbnVtX2xvY2tzX2FscmVhZHlfaGVsZCkKIHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiVGFraW5n
ICV6dSBieXRlcyBmb3IgcGFnZV9jb25maWcgPSAlcFxuIiwgYnl0ZXMsIHBhZ2VfY29uZmlnKTsK
KyAgICAKICAgICBpZiAoIXBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF9iYWxhbmNpbmdf
ZW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogICAgIApJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19yZWR1bmRhbnRf
bG9jYWxfYWxsb2NhdG9yX25vZGUuYwkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5j
CSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIHBhc19yZWR1bmRhbnRfbG9jYWxfYWxs
b2NhdG9yX25vZGVfY3JlYXQKIAogICAgIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfc3RvcmUoJnJlc3VsdC0+bmV4dCwgTlVMTCk7CiAgICAgcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+ZGlyZWN0
b3J5LCBkaXJlY3RvcnkpOwotICAgIHJlc3VsdC0+YWxsb2NhdG9yX2luZGV4ID0gKHBhc19hbGxv
Y2F0b3JfaW5kZXgpVUlOVF9NQVg7CisgICAgcmVzdWx0LT5hbGxvY2F0b3JfaW5kZXggPSAwOwog
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zY2F2ZW5nZXIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmMJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuYwkod29ya2luZyBjb3B5
KQpAQCAtMzIsMTEgKzMyLDEzIEBACiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgInBhc19h
bGxfaGVhcHMuaCIKICNpbmNsdWRlICJwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmgiCisj
aW5jbHVkZSAicGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuaCIKICNpbmNsdWRlICJwYXNf
ZGVmZXJyZWRfZGVjb21taXRfbG9nLmgiCiAjaW5jbHVkZSAicGFzX2R5bGRfc3RhdGUuaCIKICNp
bmNsdWRlICJwYXNfZXBvY2guaCIKICNpbmNsdWRlICJwYXNfaGVhcF9sb2NrLmgiCiAjaW5jbHVk
ZSAicGFzX2ltbW9ydGFsX2hlYXAuaCIKKyNpbmNsdWRlICJwYXNfbGFyZ2VfZXhwZW5kYWJsZV9t
ZW1vcnkuaCIKICNpbmNsdWRlICJwYXNfbG9jay5oIgogI2luY2x1ZGUgInBhc19wYWdlX3NoYXJp
bmdfcG9vbC5oIgogI2luY2x1ZGUgInBhc19zdGF0dXNfcmVwb3J0ZXIuaCIKQEAgLTE0MCw3ICsx
NDIsMTIgQEAgc3RhdGljIHZvaWQqIHNjYXZlbmdlcl90aHJlYWRfbWFpbih2b2lkKgogCiAgICAg
aWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIlNjYXZlbmdlciBpcyBydW5uaW5nIGluIHRo
cmVhZCAlcFxuIiwgcHRocmVhZF9zZWxmKCkpOworCisjaWYgUEFTX0JNQUxMT0MKICAgICBwdGhy
ZWFkX3NldG5hbWVfbnAoIkphdmFTY3JpcHRDb3JlIGxpYnBhcyBzY2F2ZW5nZXIiKTsKKyNlbHNl
CisgICAgcHRocmVhZF9zZXRuYW1lX25wKCJsaWJwYXMgc2NhdmVuZ2VyIik7CisjZW5kaWYKIAog
ICAgIGRpZF9zdGFydF9jYWxsYmFjayA9IHBhc19zY2F2ZW5nZXJfZGlkX3N0YXJ0X2NhbGxiYWNr
OwogICAgIGlmIChkaWRfc3RhcnRfY2FsbGJhY2spCkBAIC0xODcsNiArMTk0LDExIEBAIHN0YXRp
YyB2b2lkKiBzY2F2ZW5nZXJfdGhyZWFkX21haW4odm9pZCoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfZmx1c2hfbG9n
X2lmX2NsZWFuX2FjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfbG9ja19pc19ub3RfaGVsZCk7CiAKKyAgICAgICAgcGFzX2hlYXBfbG9ja19sb2Nr
KCk7CisgICAgICAgIHNob3VsZF9nb19hZ2FpbiB8PSBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21l
bW9yeV9zY2F2ZW5nZShwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2VfcGVyaW9kaWMpOwor
ICAgICAgICBzaG91bGRfZ29fYWdhaW4gfD0gcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5X3Nj
YXZlbmdlKHBhc19leHBlbmRhYmxlX21lbW9yeV9zY2F2ZW5nZV9wZXJpb2RpYyk7CisgICAgICAg
IHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CisKICAgICAgICAgLyogRm9yIHRoZSBwdXJwb3NlcyBv
ZiBwZXJmb3JtYW5jZSB0dW5pbmcsIGFzIHdlbGwgYXMgc29tZSBvZiB0aGUgc2NhdmVuZ2VyIHRl
c3RzLCB0aGUgZXBvY2gKICAgICAgICAgICAgaXMgdGltZSBpbiBuYW5vc2Vjb25kcy4KICAgICAg
ICAgICAgCkBAIC00NTgsNiArNDcwLDE0IEBAIHZvaWQgcGFzX3NjYXZlbmdlcl9jbGVhcl9hbGxf
Y2FjaGVzKHZvaWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tf
aXNfbm90X2hlbGQpOwogfQogCit2b2lkIHBhc19zY2F2ZW5nZXJfZGVjb21taXRfZXhwZW5kYWJs
ZV9tZW1vcnkodm9pZCkKK3sKKyAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKKyAgICBwYXNfY29t
cGFjdF9leHBlbmRhYmxlX21lbW9yeV9zY2F2ZW5nZShwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc2Nh
dmVuZ2VfZm9yY2VkKTsKKyAgICBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2Uo
cGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlX2ZvcmNlZCk7CisgICAgcGFzX2hlYXBfbG9j
a191bmxvY2soKTsKK30KKwogc2l6ZV90IHBhc19zY2F2ZW5nZXJfZGVjb21taXRfZnJlZV9tZW1v
cnkodm9pZCkKIHsKICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0IHJl
c3VsdDsKQEAgLTQ3Miw2ICs0OTIsNyBAQCBzaXplX3QgcGFzX3NjYXZlbmdlcl9kZWNvbW1pdF9m
cmVlX21lbW9yCiB2b2lkIHBhc19zY2F2ZW5nZXJfcnVuX3N5bmNocm9ub3VzbHlfbm93KHZvaWQp
CiB7CiAgICAgcGFzX3NjYXZlbmdlcl9jbGVhcl9hbGxfY2FjaGVzKCk7CisgICAgcGFzX3NjYXZl
bmdlcl9kZWNvbW1pdF9leHBlbmRhYmxlX21lbW9yeSgpOwogICAgIHBhc19zY2F2ZW5nZXJfZGVj
b21taXRfZnJlZV9tZW1vcnkoKTsKIH0KIApAQCAtNDkxLDYgKzUxMiw5IEBAIHZvaWQgcGFzX3Nj
YXZlbmdlcl9wZXJmb3JtX3N5bmNocm9ub3VzX28KICAgICBjYXNlIHBhc19zY2F2ZW5nZXJfY2xl
YXJfYWxsX2NhY2hlc19raW5kOgogICAgICAgICBwYXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9jYWNo
ZXMoKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgcGFzX3NjYXZlbmdlcl9kZWNvbW1pdF9l
eHBlbmRhYmxlX21lbW9yeV9raW5kOgorICAgICAgICBwYXNfc2NhdmVuZ2VyX2RlY29tbWl0X2V4
cGVuZGFibGVfbWVtb3J5KCk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIHBhc19zY2F2ZW5n
ZXJfZGVjb21taXRfZnJlZV9tZW1vcnlfa2luZDoKICAgICAgICAgcGFzX3NjYXZlbmdlcl9kZWNv
bW1pdF9mcmVlX21lbW9yeSgpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdlci5oCShyZXZpc2lvbiAyODU3
ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTk4LDYgKzk4LDcgQEAgUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5n
ZXJfcmVzdW1lKHZvaWQpOwogUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxsX25v
bl90bGNfY2FjaGVzKHZvaWQpOwogUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxs
X2NhY2hlc19leGNlcHRfcmVtb3RlX3RsY3Modm9pZCk7CiBQQVNfQVBJIHZvaWQgcGFzX3NjYXZl
bmdlcl9jbGVhcl9hbGxfY2FjaGVzKHZvaWQpOworUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJf
ZGVjb21taXRfZXhwZW5kYWJsZV9tZW1vcnkodm9pZCk7CiBQQVNfQVBJIHNpemVfdCBwYXNfc2Nh
dmVuZ2VyX2RlY29tbWl0X2ZyZWVfbWVtb3J5KHZvaWQpOwogCiBQQVNfQVBJIHZvaWQgcGFzX3Nj
YXZlbmdlcl9ydW5fc3luY2hyb25vdXNseV9ub3codm9pZCk7CkBAIC0xMDcsNiArMTA4LDcgQEAg
dHlwZWRlZiBlbnVtIHsKICAgICBwYXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9ub25fdGxjX2NhY2hl
c19raW5kLAogICAgIHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxsX2NhY2hlc19leGNlcHRfcmVtb3Rl
X3RsY3Nfa2luZCwKICAgICBwYXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9jYWNoZXNfa2luZCwKKyAg
ICBwYXNfc2NhdmVuZ2VyX2RlY29tbWl0X2V4cGVuZGFibGVfbWVtb3J5X2tpbmQsCiAgICAgcGFz
X3NjYXZlbmdlcl9kZWNvbW1pdF9mcmVlX21lbW9yeV9raW5kLAogICAgIHBhc19zY2F2ZW5nZXJf
cnVuX3N5bmNocm9ub3VzbHlfbm93X2tpbmQKIH0gcGFzX3NjYXZlbmdlcl9zeW5jaHJvbm91c19v
cGVyYXRpb25fa2luZDsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19pbmxpbmVzLmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTcwLDggKzE3MCw5IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
IHBhc19zZWdyZWcKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgYWxsb2NhdG9yX3Jlc3VsdCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dl
dF9sb2NhbF9hbGxvY2F0b3IoCi0gICAgICAgICAgICAgICAgY2FjaGUsIHBhZ2UtPnZpZXdfY2Fj
aGVfaW5kZXgpOworICAgICAgICAgICAgYWxsb2NhdG9yX3Jlc3VsdCA9CisgICAgICAgICAgICAg
ICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xvY2FsX2FsbG9jYXRvcl9mb3JfcG9z
c2libHlfdW5pbml0aWFsaXplZF9idXRfbm90X3Vuc2VsZWN0ZWRfaW5kZXgoCisgICAgICAgICAg
ICAgICAgICAgIGNhY2hlLCBwYWdlLT52aWV3X2NhY2hlX2luZGV4KTsKICAgICAgICAgICAgIGlm
ICghYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCkgewogICAgICAgICAgICAgICAgIGlmICh2
ZXJib3NlKSB7CiAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIiVwOiBWaWV3IGNhY2hlIGlz
IGRpc2FibGVkIGZvciB0aGlzIHBhZ2Ugb3IgaXQgZG9lc24ndCBleGlzdCB5ZXQgaW4gdGhpcyAi
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9o
ZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfaGVhcC5jCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDggKzMxLDEzIEBACiAKICNpbmNsdWRlICJwYXNfYWxsX2hlYXBzLmgiCiAjaW5jbHVkZSAi
cGFzX2JpdGZpdF9oZWFwLmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1v
cnkuaCIKKyNpbmNsdWRlICJwYXNfZmRfc3RyZWFtLmgiCiAjaW5jbHVkZSAicGFzX2hlYXAuaCIK
ICNpbmNsdWRlICJwYXNfaGVhcF9yZWYuaCIKKyNpbmNsdWRlICJwYXNfbGFyZ2VfZXhwZW5kYWJs
ZV9tZW1vcnkuaCIKKyNpbmNsdWRlICJwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCIKKyNp
bmNsdWRlICJwYXNfbWluX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwX2lu
bGluZXMuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2UuaCIKQEAgLTQwLDYgKzQ1LDggQEAKICNpbmNsdWRl
ICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oIgogI2luY2x1ZGUgInBhc191dGlsaXR5
X2hlYXBfY29uZmlnLmgiCiAKK3Vuc2lnbmVkIHBhc19zZWdyZWdhdGVkX2hlYXBfbnVtX3NpemVf
bG9va3VwX3JlbWF0ZXJpYWxpemF0aW9uczsKKwogc3RhdGljIHNpemVfdCBtaW5fb2JqZWN0X3Np
emVfZm9yX2hlYXBfY29uZmlnKHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQogewogICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQgc2VncmVnYXRlZF92YXJpYW50OwpAQCAtNjcs
OCArNzQsOCBAQCBzdGF0aWMgc2l6ZV90IG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jCiAgICAg
cmV0dXJuIGNvbmZpZy0+bGFyZ2VfYWxpZ25tZW50OwogfQogCi1zdGF0aWMgc2l6ZV90IG1heF9j
b3VudF9mb3JfcGFnZV9jb25maWcocGFzX2hlYXAqIHBhcmVudF9oZWFwLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19wYWdlX2Jhc2VfY29uZmlnKiBwYWdlX2Nv
bmZpZykKK3N0YXRpYyBzaXplX3QgbWF4X29iamVjdF9zaXplX2Zvcl9wYWdlX2NvbmZpZyhwYXNf
aGVhcCogcGFyZW50X2hlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3BhZ2VfYmFzZV9jb25maWcqIHBhZ2VfY29uZmlnKQogewogICAgIHN0YXRp
YyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAKQEAgLTc5LDMwICs4Niw3IEBAIHN0
YXRpYyBzaXplX3QgbWF4X2NvdW50X2Zvcl9wYWdlX2NvbmZpZygKICAgICAKICAgICByZXN1bHQg
PSBwYXNfcm91bmRfZG93bl90b19wb3dlcl9vZl8yKAogICAgICAgICBwYWdlX2NvbmZpZy0+bWF4
X29iamVjdF9zaXplLAotICAgICAgICBwYXNfcGFnZV9iYXNlX2NvbmZpZ19taW5fYWxpZ24oKnBh
Z2VfY29uZmlnKSkKLSAgICAgICAgLyBwYXNfaGVhcF9nZXRfdHlwZV9zaXplKHBhcmVudF9oZWFw
KTsKLSAgICAKLSAgICBQQVNfQVNTRVJUKHJlc3VsdCAqIHBhc19oZWFwX2dldF90eXBlX3NpemUo
cGFyZW50X2hlYXApIDw9IHBhZ2VfY29uZmlnLT5tYXhfb2JqZWN0X3NpemUpOwotICAgIAotICAg
IHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBzaXplX3QgbWF4X29iamVjdF9zaXplX2Zvcl9w
YWdlX2NvbmZpZyhwYXNfaGVhcCogcGFyZW50X2hlYXAsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2VfYmFzZV9jb25maWcqIHBhZ2VfY29uZmln
KQotewotICAgIHJldHVybiBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMigKLSAgICAgICAgbWF4
X2NvdW50X2Zvcl9wYWdlX2NvbmZpZyhwYXJlbnRfaGVhcCwgcGFnZV9jb25maWcpCi0gICAgICAg
ICogcGFzX2hlYXBfZ2V0X3R5cGVfc2l6ZShwYXJlbnRfaGVhcCksCiAgICAgICAgIHBhc19wYWdl
X2Jhc2VfY29uZmlnX21pbl9hbGlnbigqcGFnZV9jb25maWcpKTsKLX0KLQotc3RhdGljIHNpemVf
dCBtYXhfc21hbGxfY291bnRfZm9yX2hlYXBfY29uZmlnKHBhc19oZWFwKiBwYXJlbnRfaGVhcCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9j
b25maWcqIGNvbmZpZykKLXsKLSAgICBzaXplX3QgcmVzdWx0ID0gY29uZmlnLT5zbWFsbF9sb29r
dXBfc2l6ZV91cHBlcl9ib3VuZCAvIHBhc19oZWFwX2dldF90eXBlX3NpemUocGFyZW50X2hlYXAp
OwotICAgIAotICAgIFBBU19BU1NFUlQocmVzdWx0ICogcGFzX2hlYXBfZ2V0X3R5cGVfc2l6ZShw
YXJlbnRfaGVhcCkKLSAgICAgICAgICAgICAgIDw9IGNvbmZpZy0+c21hbGxfbG9va3VwX3NpemVf
dXBwZXJfYm91bmQpOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xNjUsNyArMTQ5
LDcgQEAgc3RhdGljIHNpemVfdCBtYXhfYml0Zml0X29iamVjdF9zaXplX2ZvcgogICAgICAgICBp
ZiAodmVyYm9zZSkgewogICAgICAgICAgICAgcGFzX2xvZygiUmV0dXJuaW5nIHRoZSBtaW4gb2Yg
JXUgYW5kICV6dVxuIiwKICAgICAgICAgICAgICAgICAgICAgaGVhcC0+cnVudGltZV9jb25maWct
Pm1heF9iaXRmaXRfb2JqZWN0X3NpemUsCi0gICAgICAgICAgICAgICAgICAgIG1heF9jb3VudF9m
b3JfcGFnZV9jb25maWcocGFyZW50X2hlYXAsICZwYWdlX2NvbmZpZy0+YmFzZSkpOworICAgICAg
ICAgICAgICAgICAgICBtYXhfb2JqZWN0X3NpemVfZm9yX3BhZ2VfY29uZmlnKHBhcmVudF9oZWFw
LCAmcGFnZV9jb25maWctPmJhc2UpKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh2ZXJib3Nl
KSB7CkBAIC0yMDcsNiArMTkxLDcgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9oZWFwX2NvbnN0cnVj
dChwYXNfcwogICAgIC8qIE5PVEU6IHRoZSB2YXJpb3VzIHByaW1pdGl2ZSBhbmQgdXRpbGl0eSBo
ZWFwcyBhcmUgY29uc3RydWN0ZWQKICAgICAgICBzcGVjaWFsbHkuICovCiAKKyAgICBQQVNfQVNT
RVJUKHJ1bnRpbWVfY29uZmlnKTsKICAgICBQQVNfQVNTRVJUKHJ1bnRpbWVfY29uZmlnLT5zaGFy
aW5nX21vZGUgIT0gcGFzX2ludmFsaWRfc2hhcmluZ19tb2RlKTsKIAogICAgIHNlZ3JlZ2F0ZWRf
aGVhcC0+cnVudGltZV9jb25maWcgPSBydW50aW1lX2NvbmZpZzsKQEAgLTI1Myw2ICsyMzgsOTcg
QEAgcGFzX2JpdGZpdF9oZWFwKiBwYXNfc2VncmVnYXRlZF9oZWFwX2dldAogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKK3NpemVfdCBwYXNfc2VncmVnYXRlZF9oZWFwX2dldF9jYWNoZWRfaW5kZXhf
Zm9yX2hlYXBfdHlwZShwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZp
ZyogY29uZmlnKQoreworICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9z
aXplKAorICAgICAgICBwYXNfaGVhcF9nZXRfdHlwZV9zaXplKHBhc19oZWFwX2Zvcl9zZWdyZWdh
dGVkX2hlYXAoaGVhcCkpLCAqY29uZmlnKTsKK30KKworYm9vbCBwYXNfc2VncmVnYXRlZF9oZWFw
X2NhY2hlZF9pbmRleF9pc19zZXQodW5zaWduZWQqIGNhY2hlZF9pbmRleCkKK3sKKyAgICBpZiAo
IWNhY2hlZF9pbmRleCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuICpjYWNoZWRf
aW5kZXggIT0gVUlOVF9NQVg7Cit9CisKK3NpemVfdCBwYXNfc2VncmVnYXRlZF9oZWFwX2dldF9j
YWNoZWRfaW5kZXgocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBj
b25maWcpCit7CisgICAgaWYgKGNhY2hlZF9pbmRleCkKKyAgICAgICAgcmV0dXJuICpjYWNoZWRf
aW5kZXg7CisgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2hlYXBfZ2V0X2NhY2hlZF9pbmRleF9m
b3JfaGVhcF90eXBlKGhlYXAsIGNvbmZpZyk7Cit9CisKK2Jvb2wgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9pbmRleF9pc19jYWNoZWRfaW5kZXhfYW5kX2NhY2hlZF9pbmRleF9pc19zZXQocGFzX3NlZ3Jl
Z2F0ZWRfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25m
aWcqIGNvbmZpZykKK3sKKyAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9jYWNoZWRfaW5k
ZXhfaXNfc2V0KGNhY2hlZF9pbmRleCkKKyAgICAgICAgJiYgaW5kZXggPT0gcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9nZXRfY2FjaGVkX2luZGV4KGhlYXAsIGNhY2hlZF9pbmRleCwgY29uZmlnKTsKK30K
KworYm9vbCBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2lzX2NhY2hlZF9pbmRleF9vcl9jYWNo
ZWRfaW5kZXhfaXNfdW5zZXQocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZykKK3sKKyAgICByZXR1cm4g
IXBhc19zZWdyZWdhdGVkX2hlYXBfY2FjaGVkX2luZGV4X2lzX3NldChjYWNoZWRfaW5kZXgpCisg
ICAgICAgIHx8IGluZGV4ID09IHBhc19zZWdyZWdhdGVkX2hlYXBfZ2V0X2NhY2hlZF9pbmRleCho
ZWFwLCBjYWNoZWRfaW5kZXgsIGNvbmZpZyk7Cit9CisKK2Jvb2wgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9pbmRleF9pc19ub3RfY2FjaGVkX2luZGV4X2FuZF9jYWNoZWRfaW5kZXhfaXNfc2V0KHBhc19z
ZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCogY2FjaGVk
X2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCit7CisgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVk
X2hlYXBfY2FjaGVkX2luZGV4X2lzX3NldChjYWNoZWRfaW5kZXgpCisgICAgICAgICYmIGluZGV4
ICE9IHBhc19zZWdyZWdhdGVkX2hlYXBfZ2V0X2NhY2hlZF9pbmRleChoZWFwLCBjYWNoZWRfaW5k
ZXgsIGNvbmZpZyk7Cit9CisKK2Jvb2wgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9pc19ncmVh
dGVyX3RoYW5fY2FjaGVkX2luZGV4X2FuZF9jYWNoZWRfaW5kZXhfaXNfc2V0KHBhc19zZWdyZWdh
dGVkX2hlYXAqIGhlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCogY2Fj
aGVkX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCit7CisgICAg
cmV0dXJuIHBhc19zZWdyZWdhdGVkX2hlYXBfY2FjaGVkX2luZGV4X2lzX3NldChjYWNoZWRfaW5k
ZXgpCisgICAgICAgICYmIGluZGV4ID4gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9nZXRfY2FjaGVkX2lu
ZGV4KGhlYXAsIGNhY2hlZF9pbmRleCwgY29uZmlnKTsKK30KKworYm9vbCBwYXNfc2VncmVnYXRl
ZF9oZWFwX2luZGV4X2lzX2dyZWF0ZXJfZXF1YWxfY2FjaGVkX2luZGV4X2FuZF9jYWNoZWRfaW5k
ZXhfaXNfc2V0KHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3QgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBf
Y29uZmlnKiBjb25maWcpCit7CisgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2hlYXBfY2FjaGVk
X2luZGV4X2lzX3NldChjYWNoZWRfaW5kZXgpCisgICAgICAgICYmIGluZGV4ID49IHBhc19zZWdy
ZWdhdGVkX2hlYXBfZ2V0X2NhY2hlZF9pbmRleChoZWFwLCBjYWNoZWRfaW5kZXgsIGNvbmZpZyk7
Cit9CisKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9oZWFw
X3NpemVfZGlyZWN0b3J5X2Zvcl9pbmRleF9zbG93KAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXAq
IGhlYXAsCisgICAgc2l6ZV90IGluZGV4LAorICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgsCisg
ICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCit7CisgICAgaWYgKHBhc19zZWdyZWdhdGVkX2hl
YXBfaW5kZXhfaXNfY2FjaGVkX2luZGV4X2FuZF9jYWNoZWRfaW5kZXhfaXNfc2V0KGhlYXAsIGNh
Y2hlZF9pbmRleCwgaW5kZXgsIGNvbmZpZykpIHsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0ID0gcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgICAgICAmaGVhcC0+
YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQpOworICAgICAgICBpZiAocmVzdWx0ICYmIHJl
c3VsdC0+YmFzZS5pc19iYXNpY19zaXplX2RpcmVjdG9yeSkKKyAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgfQorCisgICAgaWYgKGluZGV4IDwgKHNpemVfdCloZWFwLT5zbWFsbF9pbmRl
eF91cHBlcl9ib3VuZCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgCisgICAgcmV0dXJuIHBh
c19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X2Zvcl9pbmRleCgKKyAgICAg
ICAgaGVhcCwgaW5kZXgsCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVf
ZGlyZWN0b3J5X3NlYXJjaF93aXRoaW5fc2l6ZV9jbGFzc19wcm9ncmVzc2lvbiwKKyAgICAgICAg
cGFzX2xvY2tfaXNfaGVsZCk7Cit9CisKIHR5cGVkZWYgc3RydWN0IHsKICAgICBwYXNfc2VncmVn
YXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGUqIHR1cGxlOwogICAgIHVpbnRwdHJfdCBk
ZXBlbmRlbmN5OwpAQCAtNDIxLDcgKzQ5Nyw3IEBAIHVuc2lnbmVkIHBhc19zZWdyZWdhdGVkX2hl
YXBfbWVkaXVtX2FsbG8KICAgICBpZiAobWVkaXVtX2RpcmVjdG9yeSkKICAgICAgICAgcmV0dXJu
IG1lZGl1bV9kaXJlY3RvcnktPmFsbG9jYXRvcl9pbmRleDsKICAgICAKLSAgICByZXR1cm4gVUlO
VF9NQVg7CisgICAgcmV0dXJuIDA7CiB9CiAKIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcmVjdG9yeV9mb3JfaW5kZXgoCkBA
IC00NDQsMjMgKzUyMCwyMCBAQCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcGFzX3Nl
Z3JlCiBzdGF0aWMgc2l6ZV90IGNvbXB1dGVfc21hbGxfaW5kZXhfdXBwZXJfYm91bmQocGFzX3Nl
Z3JlZ2F0ZWRfaGVhcCogaGVhcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZykKIHsKLSAgICBzaXplX3QgbWF4X2Nv
dW50OwotICAgIAogICAgIGlmIChoZWFwLT5zbWFsbF9pbmRleF91cHBlcl9ib3VuZCkgewogICAg
ICAgICAvKiBUaGlzIGlzIGltcG9ydGFudDogc29tZSBjbGllbnRzLCBsaWtlIHRoZSBpbnRyaW5z
aWNfaGVhcCwgd2lsbCBpbml0aWFsaXplCiAgICAgICAgICAgIHNtYWxsX2luZGV4X3VwcGVyX2Jv
dW5kIHRvIHNvbWV0aGluZyBzcGVjaWZpYy4gKi8KICAgICAgICAgcmV0dXJuIGhlYXAtPnNtYWxs
X2luZGV4X3VwcGVyX2JvdW5kOwogICAgIH0KICAgICAKLSAgICBtYXhfY291bnQgPSBtYXhfc21h
bGxfY291bnRfZm9yX2hlYXBfY29uZmlnKHBhc19oZWFwX2Zvcl9zZWdyZWdhdGVkX2hlYXAoaGVh
cCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25m
aWcpOwotICAgIAotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9jb3Vu
dChoZWFwLCBtYXhfY291bnQsICpjb25maWcpICsgMTsKKyAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9pbmRleF9mb3Jfc2l6ZShjb25maWctPnNtYWxsX2xvb2t1cF9zaXplX3VwcGVyX2Jv
dW5kLCAqY29uZmlnKSArIDE7CiB9CiAKLXN0YXRpYyB2b2lkIGVuc3VyZV9jb3VudF9sb29rdXAo
cGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCitzdGF0aWMgdm9pZCBlbnN1cmVfc2l6ZV9sb29r
dXAocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZykKIHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7CisgICAgCiAgICAgc2l6ZV90IGluZGV4X3VwcGVyX2JvdW5kOwogICAg
IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhf
dG9fc2l6ZV9kaXJlY3Rvcnk7CiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCogaW5kZXhfdG9fYWxs
b2NhdG9yX2luZGV4OwpAQCAtNDY5LDI0ICs1NDIsMjcgQEAgc3RhdGljIHZvaWQgZW5zdXJlX2Nv
dW50X2xvb2t1cChwYXNfc2VncgogICAgIGlmIChoZWFwLT5zbWFsbF9pbmRleF91cHBlcl9ib3Vu
ZCkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBhc19sb2co
IiVwKCVzKTogRW5zdXJpbmcgc2l6ZSBsb29rdXAhXG4iLCBoZWFwLCBwYXNfaGVhcF9jb25maWdf
a2luZF9nZXRfc3RyaW5nKGNvbmZpZy0+a2luZCkpOworCiAgICAgUEFTX0FTU0VSVCghaGVhcC0+
cnVudGltZV9jb25maWctPnN0YXRpY2FsbHlfYWxsb2NhdGVkKTsKICAgICBQQVNfQVNTRVJUKCFw
YXNfaGVhcF9jb25maWdfaXNfdXRpbGl0eShjb25maWcpKTsKICAgICAKICAgICBpbmRleF91cHBl
cl9ib3VuZCA9IGNvbXB1dGVfc21hbGxfaW5kZXhfdXBwZXJfYm91bmQoaGVhcCwgY29uZmlnKTsK
ICAgICAKLSAgICBpbmRleF90b19zaXplX2RpcmVjdG9yeSA9IHBhc19pbW1vcnRhbF9oZWFwX2Fs
bG9jYXRlKAorICAgIGluZGV4X3RvX3NpemVfZGlyZWN0b3J5ID0gcGFzX2xhcmdlX2V4cGVuZGFi
bGVfbWVtb3J5X2FsbG9jYXRlKAogICAgICAgICBzaXplb2YocGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKSAqIGluZGV4X3VwcGVyX2JvdW5kLAotICAgICAg
ICAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC9pbmRleF90b19zaXplX2RpcmVjdG9yeSIsCi0gICAgICAg
IHBhc19vYmplY3RfYWxsb2NhdGlvbik7Ci0gICAgaW5kZXhfdG9fYWxsb2NhdG9yX2luZGV4ID0g
cGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGUoCisgICAgICAgIHNpemVvZihwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIpLAorICAgICAgICAicGFzX3NlZ3Jl
Z2F0ZWRfaGVhcC9pbmRleF90b19zaXplX2RpcmVjdG9yeSIpOworICAgIGluZGV4X3RvX2FsbG9j
YXRvcl9pbmRleCA9IHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeV9hbGxvY2F0ZSgKICAgICAg
ICAgc2l6ZW9mKHBhc19hbGxvY2F0b3JfaW5kZXgpICogaW5kZXhfdXBwZXJfYm91bmQsCi0gICAg
ICAgICJwYXNfc2VncmVnYXRlZF9oZWFwL2luZGV4X3RvX2FsbG9jYXRvcl9pbmRleCIsCi0gICAg
ICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CisgICAgICAgIHNpemVvZihwYXNfYWxsb2NhdG9y
X2luZGV4KSwKKyAgICAgICAgInBhc19zZWdyZWdhdGVkX2hlYXAvaW5kZXhfdG9fYWxsb2NhdG9y
X2luZGV4Iik7CiAgICAgCiAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgaW5kZXhfdXBwZXJf
Ym91bmQ7ICsraW5kZXgpIHsKICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAgICAgaW5kZXhfdG9fc2l6ZV9kaXJl
Y3RvcnkgKyBpbmRleCwgTlVMTCk7Ci0gICAgICAgIGluZGV4X3RvX2FsbG9jYXRvcl9pbmRleFtp
bmRleF0gPSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWDsKKyAgICAgICAgaW5kZXhfdG9f
YWxsb2NhdG9yX2luZGV4W2luZGV4XSA9IDA7CiAgICAgfQogICAgIAogICAgIHBhc19mZW5jZSgp
OwpAQCAtNDk3LDEyICs1NzMsMjI0IEBAIHN0YXRpYyB2b2lkIGVuc3VyZV9jb3VudF9sb29rdXAo
cGFzX3NlZ3IKICAgICBoZWFwLT5pbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXggPSBpbmRl
eF90b19hbGxvY2F0b3JfaW5kZXg7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IHNpemVfZGlyZWN0
b3J5X21pbl9oZWFwX2NvbXBhcmUocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqKiBhX3B0
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqKiBiX3B0cikKK3sKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogYTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
YjsKKworICAgIGEgPSAqYV9wdHI7CisgICAgYiA9ICpiX3B0cjsKKworICAgIGlmIChhLT5vYmpl
Y3Rfc2l6ZSA8IGItPm9iamVjdF9zaXplKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKGEt
Pm9iamVjdF9zaXplID4gYi0+b2JqZWN0X3NpemUpCisgICAgICAgIHJldHVybiAxOworICAgIHJl
dHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIHNpemVfdCBzaXplX2RpcmVjdG9yeV9taW5faGVh
cF9nZXRfaW5kZXgocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqKiBlbnRyeV9wdHIpCit7
CisgICAgUEFTX1VOVVNFRF9QQVJBTShlbnRyeV9wdHIpOworICAgIFBBU19BU1NFUlQoISJTaG91
bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSB2
b2lkIHNpemVfZGlyZWN0b3J5X21pbl9oZWFwX3NldF9pbmRleChwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSoqIGVudHJ5X3B0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4KQoreworICAgIFBBU19VTlVTRURfUEFS
QU0oZW50cnlfcHRyKTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKGluZGV4KTsKK30KKworUEFTX0NS
RUFURV9NSU5fSEVBUChzaXplX2RpcmVjdG9yeV9taW5faGVhcCwgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqLCAyMDAsCisgICAgICAgICAgICAgICAgICAgIC5jb21wYXJlID0gc2l6ZV9k
aXJlY3RvcnlfbWluX2hlYXBfY29tcGFyZSwKKyAgICAgICAgICAgICAgICAgICAgLmdldF9pbmRl
eCA9IHNpemVfZGlyZWN0b3J5X21pbl9oZWFwX2dldF9pbmRleCwKKyAgICAgICAgICAgICAgICAg
ICAgLnNldF9pbmRleCA9IHNpemVfZGlyZWN0b3J5X21pbl9oZWFwX3NldF9pbmRleCk7CisKKy8q
IE5PVEU6IEl0J3MgcG9zc2libGUgZm9yIHRoaXMgdG8gY2FsbCBzZXRfaW5kZXhfdG9fc21hbGxf
YWxsb2NhdG9yX2luZGV4IGZvciB2YWx1ZXMgb2YgaW5kZXggdGhhdCBwcmV2aW91c2x5CisgICBk
aWRuJ3QgaGF2ZSBhbiBhbGxvY2F0b3JfaW5kZXggc2V0LiAqLworc3RhdGljIHZvaWQgcmVjb21w
dXRlX3NpemVfbG9va3VwKHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqc2V0X2luZGV4X3RvX3NtYWxsX2FsbG9j
YXRvcl9pbmRleCkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBpbmRleCwgcGFzX2FsbG9jYXRvcl9pbmRleCB2YWx1ZSwgdm9pZCogYXJnKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqc2V0X2luZGV4X3RvX3NtYWxsX3NpemVf
ZGlyZWN0b3J5KSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90
IGluZGV4LCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LCB2b2lkKiBh
cmcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpzZXRfbWVkaXVt
X2RpcmVjdG9yeV90dXBsZSkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBtZWRpdW1fdHVwbGVfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSogdmFs
dWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFyZyksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKQoreworICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgc2l6ZV9kaXJlY3Rvcnlf
bWluX2hlYXAgbWluX2hlYXA7CisgICAgc2l6ZV90IG1lZGl1bV90dXBsZV9pbmRleDsKKworICAg
IGlmICghaGVhcC0+c21hbGxfaW5kZXhfdXBwZXJfYm91bmQpIHsKKyAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9yYXJlX2RhdGEqIHJhcmVfZGF0YTsKKyAgICAgICAgcmFyZV9kYXRhID0gcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9yYXJlX2RhdGFfcHRyX2xvYWQoJmhlYXAtPnJhcmVfZGF0YSk7Cisg
ICAgICAgIGlmICghcmFyZV9kYXRhKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAo
IXJhcmVfZGF0YS0+bnVtX21lZGl1bV9kaXJlY3RvcmllcykgeworICAgICAgICAgICAgUEFTX0FT
U0VSVCghcmFyZV9kYXRhLT5tZWRpdW1fZGlyZWN0b3JpZXNfY2FwYWNpdHkpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHNpemVfZGlyZWN0b3J5X21p
bl9oZWFwX2NvbnN0cnVjdCgmbWluX2hlYXApOworCisgICAgZm9yIChkaXJlY3RvcnkgPSBwYXNf
Y29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAg
ICAgICAgICAmaGVhcC0+YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQpOworICAgICAgICAg
ZGlyZWN0b3J5OworICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJmRpcmVjdG9yeS0+bmV4dF9mb3JfaGVhcCkp
IHsKKyAgICAgICAgc2l6ZV90IGluZGV4OworICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFs
bG9jYXRvcl9pbmRleDsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0
YSogZGF0YTsKKworICAgICAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKKyAgICAgICAgaWYgKGRhdGEpCisgICAg
ICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBkYXRhLT5hbGxvY2F0b3JfaW5kZXg7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9IDA7CisKKyAgICAgICAgUEFTX0FT
U0VSVChhbGxvY2F0b3JfaW5kZXggIT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwor
CisgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9taW5faW5kZXgoZGly
ZWN0b3J5KSA9PSBVSU5UX01BWCkgeworICAgICAgICAgICAgLyogV2Ugbm93IGtub3cgdGhhdCB0
aGlzIGRpcmVjdG9yeSBpcyBub3QgaW4gdGhlIHNpemUgZGlyZWN0b3J5IHRhYmxlLCBiZWNhdXMg
dGhlIG1pbl9pbmRleCBpcworICAgICAgICAgICAgICAgVUlOVF9NQVguIEJ1dCBpdCdzIHBvc3Np
YmxlIHRoYXQgd2UndmUgcHV0IHRoZSBiYXNpYyBzaXplIGRpcmVjdG9yeSBpbnRvIHRoZSBhbGxv
Y2F0b3JfaW5kZXgKKyAgICAgICAgICAgICAgIHRhYmxlIGV2ZW4gdGhvdWdoIHdlIGhhdmVuJ3Qg
cHV0IGl0IGludG8gdGhlIHNpemUgZGlyZWN0b3J5IHRhYmxlIGJlY2F1c2UgYXJyYXkgYWxsb2Nh
dGlvbiBjb3VsZAorICAgICAgICAgICAgICAgZmluZCB0aGUgYmFzaWMgc2l6ZSBkaXJlY3Rvcnkg
YnkgbG9va2luZyBhdCB0aGUgYmFzaWMgZGlyZWN0b3J5IHBvaW50ZXIgYW5kIHRoZW4KKyAgICAg
ICAgICAgICAgIGVuc3VyZV9zaXplX2xvb2t1cCBhbmQgc3Rhc2ggdGhlIGFsbG9jYXRvcl9pbmRl
eCBpbiB0aGUgYWxsb2NhdG9yX2luZGV4IHRhYmxlLiAqLworICAgICAgICAgICAgaWYgKGRpcmVj
dG9yeS0+YmFzZS5pc19iYXNpY19zaXplX2RpcmVjdG9yeQorICAgICAgICAgICAgICAgICYmIHBh
c19zZWdyZWdhdGVkX2hlYXBfY2FjaGVkX2luZGV4X2lzX3NldChjYWNoZWRfaW5kZXgpKSB7Cisg
ICAgICAgICAgICAgICAgaW5kZXggPSBwYXNfc2VncmVnYXRlZF9oZWFwX2dldF9jYWNoZWRfaW5k
ZXgoaGVhcCwgY2FjaGVkX2luZGV4LCBjb25maWcpOworICAgICAgICAgICAgICAgIGlmIChpbmRl
eCA8IGhlYXAtPnNtYWxsX2luZGV4X3VwcGVyX2JvdW5kKQorICAgICAgICAgICAgICAgICAgICBz
ZXRfaW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4KGluZGV4LCBhbGxvY2F0b3JfaW5kZXgs
IGFyZyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9
CisKKyAgICAgICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9taW5f
aW5kZXgoZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgICAgIDw9IHBhc19zZWdyZWdhdGVkX2hl
YXBfaW5kZXhfZm9yX3NpemUoZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZSwgKmNvbmZpZykpOworCisg
ICAgICAgIGZvciAoaW5kZXggPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9taW5faW5k
ZXgoZGlyZWN0b3J5KTsKKyAgICAgICAgICAgICBpbmRleCA8IFBBU19NSU4ocGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9pbmRleF9mb3Jfc2l6ZShkaXJlY3RvcnktPm9iamVjdF9zaXplLCAqY29uZmlnKSAr
IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYXAtPnNtYWxsX2luZGV4X3VwcGVy
X2JvdW5kKTsKKyAgICAgICAgICAgICBpbmRleCsrKSB7CisgICAgICAgICAgICBzZXRfaW5kZXhf
dG9fc21hbGxfc2l6ZV9kaXJlY3RvcnkoaW5kZXgsIGRpcmVjdG9yeSwgYXJnKTsKKworICAgICAg
ICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCkKKyAgICAgICAgICAgICAgICBzZXRfaW5kZXhfdG9f
c21hbGxfYWxsb2NhdG9yX2luZGV4KGluZGV4LCBhbGxvY2F0b3JfaW5kZXgsIGFyZyk7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9mb3Jfc2l6ZShk
aXJlY3RvcnktPm9iamVjdF9zaXplLCAqY29uZmlnKQorICAgICAgICAgICAgPj0gaGVhcC0+c21h
bGxfaW5kZXhfdXBwZXJfYm91bmQpCisgICAgICAgICAgICBzaXplX2RpcmVjdG9yeV9taW5faGVh
cF9hZGQoJm1pbl9oZWFwLCBkaXJlY3RvcnksICZwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBf
YWxsb2NhdGlvbl9jb25maWcpOworICAgIH0KKworICAgIGZvciAobWVkaXVtX3R1cGxlX2luZGV4
ID0gMDsKKyAgICAgICAgIChkaXJlY3RvcnkgPSBzaXplX2RpcmVjdG9yeV9taW5faGVhcF90YWtl
X21pbigmbWluX2hlYXApKTsKKyAgICAgICAgIG1lZGl1bV90dXBsZV9pbmRleCsrKSB7CisgICAg
ICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSB0dXBsZTsKKyAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICAgICAg
CisgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
cl9zdG9yZSgmdHVwbGUuZGlyZWN0b3J5LCBkaXJlY3RvcnkpOworICAgICAgICBkYXRhID0gcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRh
KTsKKyAgICAgICAgaWYgKGRhdGEpCisgICAgICAgICAgICB0dXBsZS5hbGxvY2F0b3JfaW5kZXgg
PSBkYXRhLT5hbGxvY2F0b3JfaW5kZXg7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHR1cGxl
LmFsbG9jYXRvcl9pbmRleCA9IDA7CisgICAgICAgIFBBU19BU1NFUlQodHVwbGUuYWxsb2NhdG9y
X2luZGV4ICE9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKKyAgICAgICAgdHVwbGUu
YmVnaW5faW5kZXggPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9taW5faW5kZXgoZGly
ZWN0b3J5KTsKKyAgICAgICAgdHVwbGUuZW5kX2luZGV4ID0gKHVuc2lnbmVkKXBhc19zZWdyZWdh
dGVkX2hlYXBfaW5kZXhfZm9yX3NpemUoZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZSwgKmNvbmZpZyk7
CisgICAgICAgIAorICAgICAgICBzZXRfbWVkaXVtX2RpcmVjdG9yeV90dXBsZShtZWRpdW1fdHVw
bGVfaW5kZXgsICZ0dXBsZSwgYXJnKTsKKyAgICB9CisKKyAgICBzaXplX2RpcmVjdG9yeV9taW5f
aGVhcF9kZXN0cnVjdCgmbWluX2hlYXAsICZwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfYWxs
b2NhdGlvbl9jb25maWcpOworfQorCitzdGF0aWMgdm9pZCByZW1hdGVyaWFsaXplX3NpemVfbG9v
a3VwX3NldF9pbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXgoCisgICAgc2l6ZV90IGluZGV4
LCBwYXNfYWxsb2NhdG9yX2luZGV4IHZhbHVlLCB2b2lkKiBhcmcpCit7CisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcCogaGVhcDsKKworICAgIGhlYXAgPSBhcmc7CisKKyAgICBQQVNfQVNTRVJUKGhl
YXAtPmluZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleCk7CisgICAgUEFTX0FTU0VSVChpbmRl
eCA8IGhlYXAtPnNtYWxsX2luZGV4X3VwcGVyX2JvdW5kKTsKKyAgICBoZWFwLT5pbmRleF90b19z
bWFsbF9hbGxvY2F0b3JfaW5kZXhbaW5kZXhdID0gdmFsdWU7Cit9CisKK3N0YXRpYyB2b2lkIHJl
bWF0ZXJpYWxpemVfc2l6ZV9sb29rdXBfc2V0X2luZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5
KAorICAgIHNpemVfdCBpbmRleCwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwgdm9pZCogYXJnKQoreworICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXA7CisKKyAg
ICBoZWFwID0gYXJnOworCisgICAgUEFTX0FTU0VSVChoZWFwLT5pbmRleF90b19zbWFsbF9zaXpl
X2RpcmVjdG9yeSk7CisgICAgUEFTX0FTU0VSVChpbmRleCA8IGhlYXAtPnNtYWxsX2luZGV4X3Vw
cGVyX2JvdW5kKTsKKyAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfc3RvcmUoCisgICAgICAgIGhlYXAtPmluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0
b3J5ICsgaW5kZXgsIGRpcmVjdG9yeSk7Cit9CisKK3N0YXRpYyB2b2lkIHJlbWF0ZXJpYWxpemVf
c2l6ZV9sb29rdXBfc2V0X21lZGl1bV9kaXJlY3RvcnlfdHVwbGUoCisgICAgc2l6ZV90IG1lZGl1
bV90dXBsZV9pbmRleCwgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxl
KiB0dXBsZSwgdm9pZCogYXJnKQoreworICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXA7Cisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9yYXJlX2RhdGEqIGRhdGE7CisgICAgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlKiB0dXBsZXM7CisKKyAgICBoZWFwID0gYXJn
OworICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9oZWFwX3JhcmVfZGF0YV9wdHJfbG9hZCgmaGVh
cC0+cmFyZV9kYXRhKTsKKyAgICBQQVNfQVNTRVJUKGRhdGEpOworCisgICAgUEFTX0FTU0VSVCht
ZWRpdW1fdHVwbGVfaW5kZXggPCBkYXRhLT5udW1fbWVkaXVtX2RpcmVjdG9yaWVzKTsKKyAgICBQ
QVNfQVNTRVJUKG1lZGl1bV90dXBsZV9pbmRleCA8IGRhdGEtPm1lZGl1bV9kaXJlY3Rvcmllc19j
YXBhY2l0eSk7CisgICAgCisgICAgdHVwbGVzID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1f
ZGlyZWN0b3J5X3R1cGxlX3B0cl9sb2FkKCZkYXRhLT5tZWRpdW1fZGlyZWN0b3JpZXMpOworICAg
IFBBU19BU1NFUlQodHVwbGVzKTsKKyAgICB0dXBsZXNbbWVkaXVtX3R1cGxlX2luZGV4XSA9ICp0
dXBsZTsKK30KKworc3RhdGljIHZvaWQgcmVtYXRlcmlhbGl6ZV9zaXplX2xvb2t1cF9pZl9uZWNl
c3NhcnkocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQq
IGNhY2hlZF9pbmRleCkKK3sKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX3JhcmVfZGF0YSogZGF0
YTsKKworICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKworICAgIGlmICghcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF90b3VjaF9sb29rdXBfdGFibGVzKGhlYXAsIHBhc19leHBlbmRhYmxlX21l
bW9yeV90b3VjaF90b19jb21taXRfaWZfbmVjZXNzYXJ5KSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9udW1fc2l6ZV9sb29rdXBfcmVtYXRlcmlhbGl6YXRpb25z
Kys7CisKKyAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9yYXJlX2RhdGFfcHRyX2xvYWQo
JmhlYXAtPnJhcmVfZGF0YSk7CisgICAgaWYgKGRhdGEpCisgICAgICAgIHBhc19tdXRhdGlvbl9j
b3VudF9zdGFydF9tdXRhdGluZygmZGF0YS0+bXV0YXRpb25fY291bnQpOworICAgIHBhc19jb21w
aWxlcl9mZW5jZSgpOworCisgICAgcmVjb21wdXRlX3NpemVfbG9va3VwKGhlYXAsIGNvbmZpZywg
Y2FjaGVkX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICByZW1hdGVyaWFsaXplX3Np
emVfbG9va3VwX3NldF9pbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlbWF0ZXJpYWxpemVfc2l6ZV9sb29rdXBfc2V0X2luZGV4X3RvX3Nt
YWxsX3NpemVfZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICByZW1hdGVyaWFs
aXplX3NpemVfbG9va3VwX3NldF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWFwKTsKKworICAgIHBhc19jb21waWxlcl9mZW5jZSgpOworICAgIGlm
IChkYXRhKQorICAgICAgICBwYXNfbXV0YXRpb25fY291bnRfc3RvcF9tdXRhdGluZygmZGF0YS0+
bXV0YXRpb25fY291bnQpOworfQorCiB1bnNpZ25lZAogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1
cmVfYWxsb2NhdG9yX2luZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3QgY291
bnQsCi0gICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAorICAgIHNp
emVfdCBzaXplLAorICAgIHBhc19zaXplX2xvb2t1cF9tb2RlIHNpemVfbG9va3VwX21vZGUsCiAg
ICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcsCiAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCkK
IHsKQEAgLTUxNywyMyArODA1LDI0IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9j
YXRvcl9pbmQKICAgICAKICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+b2JqZWN0X3NpemUgPj0g
bWluX29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyhjb25maWcpKTsKIAorICAgIHJlbWF0ZXJp
YWxpemVfc2l6ZV9sb29rdXBfaWZfbmVjZXNzYXJ5KGhlYXAsIGNvbmZpZywgY2FjaGVkX2luZGV4
KTsKKwogICAgIHBhcmVudF9oZWFwID0gcGFzX2hlYXBfZm9yX3NlZ3JlZ2F0ZWRfaGVhcChoZWFw
KTsKICAgICAKLSAgICBQQVNfQVNTRVJUKGNvdW50ICogcGFzX2hlYXBfZ2V0X3R5cGVfc2l6ZShw
YXJlbnRfaGVhcCkKLSAgICAgICAgICAgICAgIDw9IGRpcmVjdG9yeS0+b2JqZWN0X3NpemUpOwot
CisgICAgUEFTX0FTU0VSVChzaXplIDw9IGRpcmVjdG9yeS0+b2JqZWN0X3NpemUpOwogICAgIFBB
U19BU1NFUlQoIXBhc19oZWFwX2NvbmZpZ19pc191dGlsaXR5KGNvbmZpZykpOwogICAgIAogICAg
IGlmICh2ZXJib3NlKSB7CiAgICAgICAgIHByaW50ZigiSW4gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9l
bnN1cmVfYWxsb2NhdG9yX2luZGV4XG4iKTsKLSAgICAgICAgcHJpbnRmKCJjb3VudCA9ICV6dVxu
IiwgY291bnQpOworICAgICAgICBwcmludGYoInNpemUgPSAlenVcbiIsIHNpemUpOwogICAgIH0K
LSAgICBpbmRleCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9yX2NvdW50KGhlYXAsIGNv
dW50LCAqY29uZmlnKTsKKyAgICBpbmRleCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9y
X3NpemUoc2l6ZSwgKmNvbmZpZyk7CiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHByaW50Zigi
aW5kZXggPSAlenVcbiIsIGluZGV4KTsKIAogICAgIGFsbG9jYXRvcl9pbmRleCA9CiAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+
ZGF0YSktPmFsbG9jYXRvcl9pbmRleDsKKyAgICBQQVNfQVNTRVJUKGFsbG9jYXRvcl9pbmRleCk7
CiAgICAgUEFTX0FTU0VSVCgocGFzX2FsbG9jYXRvcl9pbmRleClhbGxvY2F0b3JfaW5kZXggPT0g
YWxsb2NhdG9yX2luZGV4KTsKICAgICBQQVNfQVNTRVJUKGFsbG9jYXRvcl9pbmRleCA8ICh1bnNp
Z25lZCkocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7CiAgICAgCkBAIC01NDIsMTMgKzgz
MSwxMyBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxvY2F0b3JfaW5kCiAgICAgCiAg
ICAgZGlkX2NhY2hlX2FsbG9jYXRvcl9pbmRleCA9IGZhbHNlOwogICAgIAotICAgIGlmICgoY2Fj
aGVkX2luZGV4ID8gaW5kZXggPT0gKmNhY2hlZF9pbmRleCA6IGluZGV4ID09IDEpCisgICAgaWYg
KHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfaXNfY2FjaGVkX2luZGV4X2FuZF9jYWNoZWRfaW5k
ZXhfaXNfc2V0KGhlYXAsIGNhY2hlZF9pbmRleCwgaW5kZXgsIGNvbmZpZykKICAgICAgICAgJiYg
cGFyZW50X2hlYXAgJiYgcGFyZW50X2hlYXAtPmhlYXBfcmVmKSB7CiAgICAgICAgIGlmICh2ZXJi
b3NlKSB7CiAgICAgICAgICAgICBwcmludGYoInBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2Fs
bG9jYXRvcl9pbmRleF9mb3Jfc2l6ZV9kaXJlY3Rvcnk6ICIKICAgICAgICAgICAgICAgICAgICAi
Q2FjaGluZyBhcyBjYWNoZWQgaW5kZXghXG4iKTsKICAgICAgICAgfQotICAgICAgICBQQVNfQVNT
RVJUKHBhcmVudF9oZWFwLT5oZWFwX3JlZi0+YWxsb2NhdG9yX2luZGV4ID09IFVJTlRfTUFYIHx8
CisgICAgICAgIFBBU19BU1NFUlQoIXBhcmVudF9oZWFwLT5oZWFwX3JlZi0+YWxsb2NhdG9yX2lu
ZGV4IHx8CiAgICAgICAgICAgICAgICAgICAgcGFyZW50X2hlYXAtPmhlYXBfcmVmLT5hbGxvY2F0
b3JfaW5kZXggPT0gYWxsb2NhdG9yX2luZGV4KTsKICAgICAgICAgcGFyZW50X2hlYXAtPmhlYXBf
cmVmLT5hbGxvY2F0b3JfaW5kZXggPSBhbGxvY2F0b3JfaW5kZXg7CiAgICAgICAgIGRpZF9jYWNo
ZV9hbGxvY2F0b3JfaW5kZXggPSB0cnVlOwpAQCAtNTU2LDE1ICs4NDUsMTUgQEAgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9lbnN1cmVfYWxsb2NhdG9yX2luZAogICAgIAogICAgIGlmIChpbmRleCA8IGNv
bXB1dGVfc21hbGxfaW5kZXhfdXBwZXJfYm91bmQoaGVhcCwgY29uZmlnKSkgewogICAgICAgICBp
ZiAoIWRpZF9jYWNoZV9hbGxvY2F0b3JfaW5kZXgKLSAgICAgICAgICAgIHx8IGNvdW50X2xvb2t1
cF9tb2RlID09IHBhc19mb3JjZV9jb3VudF9sb29rdXAKKyAgICAgICAgICAgIHx8IHNpemVfbG9v
a3VwX21vZGUgPT0gcGFzX2ZvcmNlX3NpemVfbG9va3VwCiAgICAgICAgICAgICB8fCBoZWFwLT5z
bWFsbF9pbmRleF91cHBlcl9ib3VuZCkgewogICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRl
eCogYWxsb2NhdG9yX2luZGV4X3B0cjsKICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXgg
b2xkX2FsbG9jYXRvcl9pbmRleDsKLSAgICAgICAgICAgIGVuc3VyZV9jb3VudF9sb29rdXAoaGVh
cCwgY29uZmlnKTsKKyAgICAgICAgICAgIGVuc3VyZV9zaXplX2xvb2t1cChoZWFwLCBjb25maWcp
OwogICAgICAgICAgICAgUEFTX0FTU0VSVChpbmRleCA8IGhlYXAtPnNtYWxsX2luZGV4X3VwcGVy
X2JvdW5kKTsKICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleF9wdHIgPSBoZWFwLT5pbmRleF90
b19zbWFsbF9hbGxvY2F0b3JfaW5kZXggKyBpbmRleDsKICAgICAgICAgICAgIG9sZF9hbGxvY2F0
b3JfaW5kZXggPSAqYWxsb2NhdG9yX2luZGV4X3B0cjsKLSAgICAgICAgICAgIFBBU19BU1NFUlQo
b2xkX2FsbG9jYXRvcl9pbmRleCA9PSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCB8fAor
ICAgICAgICAgICAgUEFTX0FTU0VSVCghb2xkX2FsbG9jYXRvcl9pbmRleCB8fAogICAgICAgICAg
ICAgICAgICAgICAgICBvbGRfYWxsb2NhdG9yX2luZGV4ID09IGFsbG9jYXRvcl9pbmRleCk7CiAg
ICAgICAgICAgICAqYWxsb2NhdG9yX2luZGV4X3B0ciA9IChwYXNfYWxsb2NhdG9yX2luZGV4KWFs
bG9jYXRvcl9pbmRleDsKICAgICAgICAgfQpAQCAtNTkyLDYgKzg4MSw4IEBAIHN0YXRpYyBzaXpl
X3QgY29tcHV0ZV9pZGVhbF9vYmplY3Rfc2l6ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplX3QgYWxpZ25tZW50LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZ19w
dHIpCiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAogICAg
IHVuc2lnbmVkIG51bV9vYmplY3RzOwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBh
Z2VfY29uZmlnOwogICAgIHBhc19oZWFwKiBwYXJlbnRfaGVhcDsKQEAgLTYyMCw4ICs5MTEsMTMg
QEAgc3RhdGljIHNpemVfdCBjb21wdXRlX2lkZWFsX29iamVjdF9zaXplKAogICAgICAgICBpZiAo
IXBhc19pc19hbGlnbmVkKG5leHRfb2JqZWN0X3NpemUsIGFsaWdubWVudCkpCiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgaWYgKG5leHRfb2JqZWN0X3NpemUgPiBtYXhfb2JqZWN0X3NpemVf
Zm9yX3BhZ2VfY29uZmlnKHBhcmVudF9oZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhZ2VfY29uZmlnX3B0ci0+YmFz
ZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmcGFnZV9jb25maWdfcHRyLT5iYXNlKSkgeworICAgICAgICAgICAgaWYgKHZl
cmJvc2UpIHsKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJSZWplY3RpbmcgJXp1IGJlY2F1c2Ug
aXQncyBiaWZnZmVyIHRoYW4gdGhlIG1heCBmb3IgcGFnZSBjb25maWcuXG4iLAorICAgICAgICAg
ICAgICAgICAgICAgICAgbmV4dF9vYmplY3Rfc2l6ZSk7CisgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9u
dW1iZXJfb2Zfb2JqZWN0cygodW5zaWduZWQpbmV4dF9vYmplY3Rfc2l6ZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcpICE9IG51
bV9vYmplY3RzKQogICAgICAgICAgICAgYnJlYWs7CkBAIC03MDEsMjcgKzk5NywyMjYgQEAgc3Rh
dGljIGJvb2wgY2hlY2tfcGFydF9vZl9hbGxfc2VncmVnYXRlZAogfQogCiBzdGF0aWMgdm9pZAot
ZW5zdXJlX2NvdW50X2xvb2t1cF9pZl9uZWNlc3NhcnkocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVh
cCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb3VudF9sb29rdXBfbW9k
ZSBjb3VudF9sb29rdXBfbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19oZWFwX2NvbmZpZyogY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQqIGNhY2hlZF9pbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBpbmRleCkKLXsKLSAgICBpZiAoY291bnRfbG9va3VwX21vZGUgPT0gcGFzX2ZvcmNl
X2NvdW50X2xvb2t1cAotICAgICAgICB8fCAoKGNhY2hlZF9pbmRleAotICAgICAgICAgICAgID8g
KmNhY2hlZF9pbmRleCAhPSBVSU5UX01BWCAmJiBpbmRleCAhPSAqY2FjaGVkX2luZGV4Ci0gICAg
ICAgICAgICAgOiBpbmRleCAhPSAxKQotICAgICAgICAgICAgJiYgaW5kZXggPCBtYXhfc21hbGxf
Y291bnRfZm9yX2hlYXBfY29uZmlnKHBhc19oZWFwX2Zvcl9zZWdyZWdhdGVkX2hlYXAoaGVhcCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uZmlnKSkpCi0gICAgICAgIGVuc3VyZV9jb3VudF9sb29rdXAoaGVhcCwgY29uZmlnKTsKK2Vu
c3VyZV9zaXplX2xvb2t1cF9pZl9uZWNlc3NhcnkocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NpemVfbG9va3VwX21vZGUgc2l6
ZV9sb29rdXBfbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBf
Y29uZmlnKiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
KiBjYWNoZWRfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBp
bmRleCkKK3sKKyAgICBpZiAoKHNpemVfbG9va3VwX21vZGUgPT0gcGFzX2ZvcmNlX3NpemVfbG9v
a3VwCisgICAgICAgICB8fCBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2lzX25vdF9jYWNoZWRf
aW5kZXhfYW5kX2NhY2hlZF9pbmRleF9pc19zZXQoCisgICAgICAgICAgICAgaGVhcCwgY2FjaGVk
X2luZGV4LCBpbmRleCwgY29uZmlnKSkKKyAgICAgICAgJiYgaW5kZXggPCBjb21wdXRlX3NtYWxs
X2luZGV4X3VwcGVyX2JvdW5kKGhlYXAsIGNvbmZpZykpCisgICAgICAgIGVuc3VyZV9zaXplX2xv
b2t1cChoZWFwLCBjb25maWcpOworfQorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcCogaGVhcDsKKyAgICBib29sIGlzX2FsbF9nb29kOworICAgIHVuc2lnbmVkKiBz
ZWVuX2luZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleDsKKyAgICB1bnNpZ25lZCogc2Vlbl9p
bmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeTsKKyAgICB1bnNpZ25lZCBudW1fbWVkaXVtX2Rp
cmVjdG9yaWVzOworfSBjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0aW9uX2RhdGE7CisKK3N0
YXRpYyB2b2lkIGNoZWNrX3NpemVfbG9va3VwX3JlY29tcHV0YXRpb25fZGlkX2JlY29tZV9ub3Rf
YWxsX2dvb2QoY2hlY2tfc2l6ZV9sb29rdXBfcmVjb21wdXRhdGlvbl9kYXRhKiBkYXRhKQorewor
ICAgIHN0YXRpYyBjb25zdCBib29sIGNyYXNoX2ltbWVkaWF0ZWx5ID0gZmFsc2U7CisKKyAgICBQ
QVNfQVNTRVJUKCFjcmFzaF9pbW1lZGlhdGVseSk7CisgICAgCisgICAgZGF0YS0+aXNfYWxsX2dv
b2QgPSBmYWxzZTsKK30KKworc3RhdGljIHZvaWQgY2hlY2tfc2l6ZV9sb29rdXBfcmVjb21wdXRh
dGlvbl9zZXRfaW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4KAorICAgIHNpemVfdCBpbmRl
eCwgcGFzX2FsbG9jYXRvcl9pbmRleCB2YWx1ZSwgdm9pZCogYXJnKQoreworICAgIGNoZWNrX3Np
emVfbG9va3VwX3JlY29tcHV0YXRpb25fZGF0YSogZGF0YTsKKworICAgIGRhdGEgPSBhcmc7CisK
KyAgICBQQVNfQVNTRVJUKGluZGV4IDwgZGF0YS0+aGVhcC0+c21hbGxfaW5kZXhfdXBwZXJfYm91
bmQpOworICAgIFBBU19BU1NFUlQoZGF0YS0+aGVhcC0+aW5kZXhfdG9fc21hbGxfYWxsb2NhdG9y
X2luZGV4KTsKKworICAgIGlmIChkYXRhLT5oZWFwLT5pbmRleF90b19zbWFsbF9hbGxvY2F0b3Jf
aW5kZXhbaW5kZXhdICE9IHZhbHVlCisgICAgICAgICYmIGRhdGEtPmhlYXAtPmluZGV4X3RvX3Nt
YWxsX2FsbG9jYXRvcl9pbmRleFtpbmRleF0pIHsKKyAgICAgICAgcGFzX2xvZygiU2l6ZSBsb29r
dXAgcmVjb21wdXRhdGlvbiBlcnJvciBpbiBzZXRfaW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2lu
ZGV4OiAiCisgICAgICAgICAgICAgICAgImluZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleFsl
enVdID0gJXUsIHZhbHVlID0gJXVcbiIsCisgICAgICAgICAgICAgICAgaW5kZXgsIGRhdGEtPmhl
YXAtPmluZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleFtpbmRleF0sIHZhbHVlKTsKKyAgICAg
ICAgY2hlY2tfc2l6ZV9sb29rdXBfcmVjb21wdXRhdGlvbl9kaWRfYmVjb21lX25vdF9hbGxfZ29v
ZChkYXRhKTsKKyAgICB9CisKKyAgICBwYXNfYml0dmVjdG9yX3NldChkYXRhLT5zZWVuX2luZGV4
X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleCwgaW5kZXgsIHRydWUpOworfQorCitzdGF0aWMgdm9p
ZCBjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0aW9uX3NldF9pbmRleF90b19zbWFsbF9zaXpl
X2RpcmVjdG9yeSgKKyAgICBzaXplX3QgaW5kZXgsIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksIHZvaWQqIGFyZykKK3sKKyAgICBjaGVja19zaXplX2xvb2t1cF9yZWNv
bXB1dGF0aW9uX2RhdGEqIGRhdGE7CisKKyAgICBkYXRhID0gYXJnOworCisgICAgUEFTX0FTU0VS
VChpbmRleCA8IGRhdGEtPmhlYXAtPnNtYWxsX2luZGV4X3VwcGVyX2JvdW5kKTsKKyAgICBQQVNf
QVNTRVJUKGRhdGEtPmhlYXAtPmluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5KTsKKworICAg
IGlmIChwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9h
ZCgKKyAgICAgICAgICAgIGRhdGEtPmhlYXAtPmluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5
ICsgaW5kZXgpICE9IGRpcmVjdG9yeSkgeworICAgICAgICBwYXNfbG9nKCJTaXplIGxvb2t1cCBy
ZWNvbXB1dGF0aW9uIGVycm9yIGluIHNldF9pbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeTog
IgorICAgICAgICAgICAgICAgICJpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeVslenVdID0g
IiwgaW5kZXgpOworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kdW1wX3Jl
ZmVyZW5jZSgKKyAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAgICAgIGRhdGEtPmhlYXAtPmluZGV4X3Rv
X3NtYWxsX3NpemVfZGlyZWN0b3J5ICsgaW5kZXgpLCAmcGFzX2xvZ19zdHJlYW0uYmFzZSk7Cisg
ICAgICAgIHBhc19sb2coIiwgdmFsdWUgPSAiKTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfZHVtcF9yZWZlcmVuY2UoZGlyZWN0b3J5LCAmcGFzX2xvZ19zdHJlYW0uYmFz
ZSk7CisgICAgICAgIHBhc19sb2coIlxuIik7CisgICAgICAgIGNoZWNrX3NpemVfbG9va3VwX3Jl
Y29tcHV0YXRpb25fZGlkX2JlY29tZV9ub3RfYWxsX2dvb2QoZGF0YSk7CisgICAgfQorCisgICAg
cGFzX2JpdHZlY3Rvcl9zZXQoZGF0YS0+c2Vlbl9pbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9y
eSwgaW5kZXgsIHRydWUpOworfQorCitzdGF0aWMgdm9pZCBjaGVja19zaXplX2xvb2t1cF9yZWNv
bXB1dGF0aW9uX3NldF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlKAorICAgIHNpemVfdCBtZWRpdW1f
dHVwbGVfaW5kZXgsIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSog
dmFsdWUsIHZvaWQqIGFyZykKK3sKKyAgICBjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0aW9u
X2RhdGEqIGRhdGE7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9yYXJlX2RhdGEqIHJhcmVfZGF0
YTsKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGUqIHR1cGxl
czsKKworICAgIGRhdGEgPSBhcmc7CisKKyAgICBQQVNfQVNTRVJUKG1lZGl1bV90dXBsZV9pbmRl
eCA9PSBkYXRhLT5udW1fbWVkaXVtX2RpcmVjdG9yaWVzKTsKKyAgICBQQVNfQVNTRVJUKCh1bnNp
Z25lZCkobWVkaXVtX3R1cGxlX2luZGV4ICsgMXUpID09IG1lZGl1bV90dXBsZV9pbmRleCArIDF1
KTsKKyAgICBkYXRhLT5udW1fbWVkaXVtX2RpcmVjdG9yaWVzID0gKHVuc2lnbmVkKShtZWRpdW1f
dHVwbGVfaW5kZXggKyAxdSk7CisKKyAgICByYXJlX2RhdGEgPSBwYXNfc2VncmVnYXRlZF9oZWFw
X3JhcmVfZGF0YV9wdHJfbG9hZCgmZGF0YS0+aGVhcC0+cmFyZV9kYXRhKTsKKyAgICBQQVNfQVNT
RVJUKHJhcmVfZGF0YSk7CisgICAgUEFTX0FTU0VSVChtZWRpdW1fdHVwbGVfaW5kZXggPCByYXJl
X2RhdGEtPm51bV9tZWRpdW1fZGlyZWN0b3JpZXMpOworICAgIFBBU19BU1NFUlQobWVkaXVtX3R1
cGxlX2luZGV4IDwgcmFyZV9kYXRhLT5tZWRpdW1fZGlyZWN0b3JpZXNfY2FwYWNpdHkpOworICAg
IHR1cGxlcyA9IHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZV9wdHJf
bG9hZCgmcmFyZV9kYXRhLT5tZWRpdW1fZGlyZWN0b3JpZXMpOworICAgIFBBU19BU1NFUlQodHVw
bGVzKTsKKworICAgIGlmIChwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZCgmdHVwbGVzW21lZGl1bV90dXBsZV9pbmRleF0uZGlyZWN0b3J5KQorICAg
ICAgICAhPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJf
bG9hZCgmdmFsdWUtPmRpcmVjdG9yeSkpIHsKKyAgICAgICAgcGFzX2xvZygiU2l6ZSBsb29rdXAg
cmVjb21wdXRhdGlvbiBlcnJvciBpbiBzZXRfbWVkaXVtX2RpcmVjdG9yeV90dXBsZTogdHVwbGVz
WyV6dV0uZGlyZWN0b3J5ID0gIiwKKyAgICAgICAgICAgICAgICBtZWRpdW1fdHVwbGVfaW5kZXgp
OworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZSgK
KyAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkKCZ0dXBsZXNbbWVkaXVtX3R1cGxlX2luZGV4XS5kaXJlY3RvcnkpLAorICAgICAg
ICAgICAgJnBhc19sb2dfc3RyZWFtLmJhc2UpOworICAgICAgICBwYXNfbG9nKCIsIHZhbHVlLT5k
aXJlY3RvcnkgPSAiKTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZHVt
cF9yZWZlcmVuY2UoCisgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmdmFsdWUtPmRpcmVjdG9yeSksICZwYXNfbG9nX3N0cmVh
bS5iYXNlKTsKKyAgICAgICAgcGFzX2xvZygiXG4iKTsKKyAgICAgICAgY2hlY2tfc2l6ZV9sb29r
dXBfcmVjb21wdXRhdGlvbl9kaWRfYmVjb21lX25vdF9hbGxfZ29vZChkYXRhKTsKKyAgICB9CisK
KyAgICBpZiAodHVwbGVzW21lZGl1bV90dXBsZV9pbmRleF0uYWxsb2NhdG9yX2luZGV4ICE9IHZh
bHVlLT5hbGxvY2F0b3JfaW5kZXgKKyAgICAgICAgJiYgdHVwbGVzW21lZGl1bV90dXBsZV9pbmRl
eF0uYWxsb2NhdG9yX2luZGV4KSB7CisgICAgICAgIHBhc19sb2coIlNpemUgbG9va3VwIHJlY29t
cHV0YXRpb24gZXJyb3IgaW4gc2V0X21lZGl1bV9kaXJlY3RvcnlfdHVwbGU6IHR1cGxlc1slenVd
LmFsbG9jYXRvcl9pbmRleCA9ICIKKyAgICAgICAgICAgICAgICAiJXUsIHZhbHVlLT5hbGxvY2F0
b3JfaW5kZXggPSAldSBmb3IgZGlyZWN0b3J5ID0gIiwKKyAgICAgICAgICAgICAgICBtZWRpdW1f
dHVwbGVfaW5kZXgsIHR1cGxlc1ttZWRpdW1fdHVwbGVfaW5kZXhdLmFsbG9jYXRvcl9pbmRleCwg
dmFsdWUtPmFsbG9jYXRvcl9pbmRleCk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2R1bXBfcmVmZXJlbmNlKAorICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJnZhbHVlLT5kaXJlY3RvcnkpLCAmcGFz
X2xvZ19zdHJlYW0uYmFzZSk7CisgICAgICAgIHBhc19sb2coIlxuIik7CisgICAgICAgIGNoZWNr
X3NpemVfbG9va3VwX3JlY29tcHV0YXRpb25fZGlkX2JlY29tZV9ub3RfYWxsX2dvb2QoZGF0YSk7
CisgICAgfQorCisgICAgaWYgKHR1cGxlc1ttZWRpdW1fdHVwbGVfaW5kZXhdLmJlZ2luX2luZGV4
ICE9IHZhbHVlLT5iZWdpbl9pbmRleCkgeworICAgICAgICBwYXNfbG9nKCJTaXplIGxvb2t1cCBy
ZWNvbXB1dGF0aW9uIGVycm9yIGluIHNldF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlOiB0dXBsZXNb
JXp1XS5iZWdpbl9pbmRleCA9ICV1LCAiCisgICAgICAgICAgICAgICAgInZhbHVlLT5iZWdpbl9p
bmRleCA9ICV1IGZvciBkaXJlY3RvcnkgPSAiLAorICAgICAgICAgICAgICAgIG1lZGl1bV90dXBs
ZV9pbmRleCwgdHVwbGVzW21lZGl1bV90dXBsZV9pbmRleF0uYmVnaW5faW5kZXgsIHZhbHVlLT5i
ZWdpbl9pbmRleCk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2R1bXBf
cmVmZXJlbmNlKAorICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJnZhbHVlLT5kaXJlY3RvcnkpLCAmcGFzX2xvZ19zdHJlYW0u
YmFzZSk7CisgICAgICAgIHBhc19sb2coIlxuIik7CisgICAgICAgIGNoZWNrX3NpemVfbG9va3Vw
X3JlY29tcHV0YXRpb25fZGlkX2JlY29tZV9ub3RfYWxsX2dvb2QoZGF0YSk7CisgICAgfQorCisg
ICAgaWYgKHR1cGxlc1ttZWRpdW1fdHVwbGVfaW5kZXhdLmVuZF9pbmRleCAhPSB2YWx1ZS0+ZW5k
X2luZGV4KSB7CisgICAgICAgIHBhc19sb2coIlNpemUgbG9va3VwIHJlY29tcHV0YXRpb24gZXJy
b3IgaW4gc2V0X21lZGl1bV9kaXJlY3RvcnlfdHVwbGU6IHR1cGxlc1slenVdLmVuZF9pbmRleCA9
ICV1LCAiCisgICAgICAgICAgICAgICAgInZhbHVlLT5lbmRfaW5kZXggPSAldSBmb3IgZGlyZWN0
b3J5ID0gIiwKKyAgICAgICAgICAgICAgICBtZWRpdW1fdHVwbGVfaW5kZXgsIHR1cGxlc1ttZWRp
dW1fdHVwbGVfaW5kZXhdLmVuZF9pbmRleCwgdmFsdWUtPmVuZF9pbmRleCk7CisgICAgICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNlKAorICAgICAgICAgICAg
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJnZh
bHVlLT5kaXJlY3RvcnkpLCAmcGFzX2xvZ19zdHJlYW0uYmFzZSk7CisgICAgICAgIHBhc19sb2co
IlxuIik7CisgICAgICAgIGNoZWNrX3NpemVfbG9va3VwX3JlY29tcHV0YXRpb25fZGlkX2JlY29t
ZV9ub3RfYWxsX2dvb2QoZGF0YSk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBjaGVja19zaXpl
X2xvb2t1cF9yZWNvbXB1dGF0aW9uKHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29u
ZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCAqY2FjaGVkX2luZGV4KQoreworICAgIGNoZWNrX3NpemVfbG9va3VwX3JlY29tcHV0YXRpb25f
ZGF0YSBkYXRhOworICAgIHNpemVfdCBiaXR2ZWN0b3Jfc2l6ZTsKKyAgICBzaXplX3QgaW5kZXg7
CisgICAgdW5zaWduZWQgZXhwZWN0ZWRfbnVtX21lZGl1bV9kaXJlY3RvcmllczsKKyAgICBwYXNf
c2VncmVnYXRlZF9oZWFwX3JhcmVfZGF0YSogcmFyZV9kYXRhOworCisgICAgYml0dmVjdG9yX3Np
emUgPSBQQVNfQklUVkVDVE9SX05VTV9CWVRFUyhoZWFwLT5zbWFsbF9pbmRleF91cHBlcl9ib3Vu
ZCk7CisKKyAgICBkYXRhLmhlYXAgPSBoZWFwOworICAgIGRhdGEuaXNfYWxsX2dvb2QgPSB0cnVl
OworICAgIGRhdGEuc2Vlbl9pbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXggPSBwYXNfbGFy
Z2VfdXRpbGl0eV9mcmVlX2hlYXBfYWxsb2NhdGUoCisgICAgICAgIGJpdHZlY3Rvcl9zaXplLCAi
Y2hlY2tfc2l6ZV9sb29rdXBfcmVjb21wdXRhdGlvbi9zZWVuX2luZGV4X3RvX3NtYWxsX2FsbG9j
YXRvcl9pbmRleCIpOworICAgIGRhdGEuc2Vlbl9pbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9y
eSA9IHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9hbGxvY2F0ZSgKKyAgICAgICAgYml0dmVj
dG9yX3NpemUsICJjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0aW9uL3NlZW5faW5kZXhfdG9f
c21hbGxfc2l6ZV9kaXJlY3RvcnkiKTsKKyAgICBkYXRhLm51bV9tZWRpdW1fZGlyZWN0b3JpZXMg
PSAwOworCisgICAgcGFzX3plcm9fbWVtb3J5KGRhdGEuc2Vlbl9pbmRleF90b19zbWFsbF9hbGxv
Y2F0b3JfaW5kZXgsIGJpdHZlY3Rvcl9zaXplKTsKKyAgICBwYXNfemVyb19tZW1vcnkoZGF0YS5z
ZWVuX2luZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5LCBiaXR2ZWN0b3Jfc2l6ZSk7CisKKyAg
ICByZWNvbXB1dGVfc2l6ZV9sb29rdXAoCisgICAgICAgIGhlYXAsCisgICAgICAgIGNvbmZpZywK
KyAgICAgICAgY2FjaGVkX2luZGV4LAorICAgICAgICBjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1
dGF0aW9uX3NldF9pbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXgsCisgICAgICAgIGNoZWNr
X3NpemVfbG9va3VwX3JlY29tcHV0YXRpb25fc2V0X2luZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0
b3J5LAorICAgICAgICBjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0aW9uX3NldF9tZWRpdW1f
ZGlyZWN0b3J5X3R1cGxlLAorICAgICAgICAmZGF0YSk7CisKKyAgICBmb3IgKGluZGV4ID0gMDsg
aW5kZXggPCBoZWFwLT5zbWFsbF9pbmRleF91cHBlcl9ib3VuZDsgKytpbmRleCkgeworICAgICAg
ICBpZiAoaGVhcC0+aW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4W2luZGV4XQorICAgICAg
ICAgICAgJiYgIXBhc19iaXR2ZWN0b3JfZ2V0KGRhdGEuc2Vlbl9pbmRleF90b19zbWFsbF9hbGxv
Y2F0b3JfaW5kZXgsIGluZGV4KSkgeworICAgICAgICAgICAgcGFzX2xvZygiU2l6ZSBsb29rdXAg
cmVjb21wdXRhdGlvbiBlcnJvciBpbiBzZXRfaW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4
OiAiCisgICAgICAgICAgICAgICAgICAgICJpbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXhb
JXp1XSA9ICV1LCB2YWx1ZSBuZXZlciBzZXRcbiIsCisgICAgICAgICAgICAgICAgICAgIGluZGV4
LCBoZWFwLT5pbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXhbaW5kZXhdKTsKKyAgICAgICAg
ICAgIGNoZWNrX3NpemVfbG9va3VwX3JlY29tcHV0YXRpb25fZGlkX2JlY29tZV9ub3RfYWxsX2dv
b2QoJmRhdGEpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAocGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoaGVhcC0+aW5kZXhfdG9f
c21hbGxfc2l6ZV9kaXJlY3RvcnkgKyBpbmRleCkKKyAgICAgICAgICAgICYmICFwYXNfYml0dmVj
dG9yX2dldChkYXRhLnNlZW5faW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3RvcnksIGluZGV4KSkg
eworICAgICAgICAgICAgcGFzX2xvZygiU2l6ZSBsb29rdXAgcmVjb21wdXRhdGlvbiBlcnJvciBp
biBzZXRfaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk6ICIKKyAgICAgICAgICAgICAgICAg
ICAgImluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5WyV6dV0gPSAiLCBpbmRleCk7CisgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZSgKKyAg
ICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9wdHJfbG9hZCgKKyAgICAgICAgICAgICAgICAgICAgaGVhcC0+aW5kZXhfdG9fc21hbGxfc2l6
ZV9kaXJlY3RvcnkgKyBpbmRleCksICZwYXNfbG9nX3N0cmVhbS5iYXNlKTsKKyAgICAgICAgICAg
IHBhc19sb2coIiwgdmFsdWUgbm90IHNldFxuIik7CisgICAgICAgICAgICBjaGVja19zaXplX2xv
b2t1cF9yZWNvbXB1dGF0aW9uX2RpZF9iZWNvbWVfbm90X2FsbF9nb29kKCZkYXRhKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIHJhcmVfZGF0YSA9IHBhc19zZWdyZWdhdGVkX2hlYXBfcmFyZV9k
YXRhX3B0cl9sb2FkKCZoZWFwLT5yYXJlX2RhdGEpOworICAgIGlmIChyYXJlX2RhdGEpCisgICAg
ICAgIGV4cGVjdGVkX251bV9tZWRpdW1fZGlyZWN0b3JpZXMgPSByYXJlX2RhdGEtPm51bV9tZWRp
dW1fZGlyZWN0b3JpZXM7CisgICAgZWxzZQorICAgICAgICBleHBlY3RlZF9udW1fbWVkaXVtX2Rp
cmVjdG9yaWVzID0gMDsKKyAgICBpZiAoZXhwZWN0ZWRfbnVtX21lZGl1bV9kaXJlY3RvcmllcyAh
PSBkYXRhLm51bV9tZWRpdW1fZGlyZWN0b3JpZXMpIHsKKyAgICAgICAgcGFzX2xvZygiU2l6ZSBs
b29rdXAgcmVjb21wdXRhdGlvbiBlcnJvciBpbiBzZXRfbWVkaXVtX2RpcmVjdG9yeV90dXBsZTog
IgorICAgICAgICAgICAgICAgICJudW1fbWVkaXVtX2RpcmVjdG9yaWVzIGluIHJhcmVfZGF0YSA9
ICV1LCBidXQgZ290IG51bV9tZWRpdW1fZGlyZWN0b3JpZXMgPSAldVxuIiwKKyAgICAgICAgICAg
ICAgICBleHBlY3RlZF9udW1fbWVkaXVtX2RpcmVjdG9yaWVzLCBkYXRhLm51bV9tZWRpdW1fZGly
ZWN0b3JpZXMpOworICAgICAgICBjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0aW9uX2RpZF9i
ZWNvbWVfbm90X2FsbF9nb29kKCZkYXRhKTsKKyAgICB9CisKKyAgICBQQVNfQVNTRVJUKGRhdGEu
aXNfYWxsX2dvb2QpOworCisgICAgcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2RlYWxsb2Nh
dGUoZGF0YS5zZWVuX2luZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleCwgYml0dmVjdG9yX3Np
emUpOworICAgIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9kZWFsbG9jYXRlKGRhdGEuc2Vl
bl9pbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSwgYml0dmVjdG9yX3NpemUpOwogfQogCiBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKLXBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJl
X3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudCgKK3Bhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3Np
emVfZGlyZWN0b3J5X2Zvcl9zaXplKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0g
ICAgc2l6ZV90IGNvdW50LAorICAgIHNpemVfdCBzaXplLAogICAgIHNpemVfdCBhbGlnbm1lbnQs
Ci0gICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAorICAgIHBhc19z
aXplX2xvb2t1cF9tb2RlIHNpemVfbG9va3VwX21vZGUsCiAgICAgcGFzX2hlYXBfY29uZmlnKiBj
b25maWcsCiAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCwKICAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlIGNyZWF0aW9uX21vZGUpCkBAIC03NDIsOCArMTIz
Nyw4IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICByZXN1
bHQgPSBOVUxMOwogCiAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgcGFzX2xvZygiJXA6IGJl
aW5nIGFza2VkIGZvciBkaXJlY3Rvcnkgd2l0aCBjb3VudCA9ICV6dSwgYWxpZ25tZW50ID0gJXp1
LlxuIiwKLSAgICAgICAgICAgICAgICBoZWFwLCBjb3VudCwgYWxpZ25tZW50KTsKKyAgICAgICAg
cGFzX2xvZygiJXAoJXMpOiBiZWluZyBhc2tlZCBmb3IgZGlyZWN0b3J5IHdpdGggc2l6ZSA9ICV6
dSwgYWxpZ25tZW50ID0gJXp1LlxuIiwKKyAgICAgICAgICAgICAgICBoZWFwLCBwYXNfaGVhcF9j
b25maWdfa2luZF9nZXRfc3RyaW5nKGNvbmZpZy0+a2luZCksIHNpemUsIGFsaWdubWVudCk7CiAg
ICAgfQogCiAgICAgaWYgKFBBU19FTkFCTEVfVEVTVElORykgewpAQCAtNzg1LDI5ICsxMjgwLDI1
IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgUEFT
X0FTU0VSVChkYXRhLmRpZF9maW5kKTsKICAgICB9CiAKKyAgICByZW1hdGVyaWFsaXplX3NpemVf
bG9va3VwX2lmX25lY2Vzc2FyeShoZWFwLCBjb25maWcsIGNhY2hlZF9pbmRleCk7CisKICAgICBw
YXJlbnRfaGVhcCA9IHBhc19oZWFwX2Zvcl9zZWdyZWdhdGVkX2hlYXAoaGVhcCk7CiAKLSAgICBp
bmRleCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9yX2NvdW50KGhlYXAsIGNvdW50LCAq
Y29uZmlnKTsKKyAgICBpbmRleCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9yX3NpemUo
c2l6ZSwgKmNvbmZpZyk7CisgICAgb2JqZWN0X3NpemUgPSBwYXNfc2VncmVnYXRlZF9oZWFwX3Np
emVfZm9yX2luZGV4KGluZGV4LCAqY29uZmlnKTsKIAotICAgIGlmIChfX2J1aWx0aW5fdW11bGxf
b3ZlcmZsb3cocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9jb3VudF9mb3JfaW5kZXgoaGVhcCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKmNvbmZpZyksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfaGVhcF9nZXRfdHlwZV9zaXplKHBhcmVudF9oZWFwKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvYmplY3Rfc2l6ZSkpCisgICAgaWYgKG9iamVj
dF9zaXplIDwgc2l6ZSkgeworICAgICAgICAvKiBUaGlzJ2xsIG9ubHkgaGFwcGVuIGluIGNlcnRh
aW4ga2luZHMgb2Ygb3ZlcmZsb3dzLCBpbiB3aGljaCBjYXNlIHRoZSBzaXplIG11c3QgYmUgd2F5
IHRvbyBiaWcuICovCisgICAgICAgIFBBU19BU1NFUlQoIW9iamVjdF9zaXplKTsKICAgICAgICAg
cmV0dXJuIE5VTEw7CisgICAgfQogCiAgICAgb2JqZWN0X3NpemUgPSBQQVNfTUFYKG1pbl9vYmpl
Y3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcoY29uZmlnKSwgb2JqZWN0X3NpemUpOwotICAgIAotICAg
IC8qIERvaW5nIHRoZSBhbGlnbm1lbnQgcm91bmQtdXAgaGVyZSBoYXMgdGhlIGVmZmVjdCB0aGF0
IG9uY2Ugd2UgZG8gY3JlYXRlIGEgc2l6ZSBjbGFzcyBmb3IgdGhpcwotICAgICAgIGNvdW50LCBp
dCBlbmRzIHVwIGJlaW5nIGFsaWduZWQgYXBwcm9wcmlhdGVseS4KLSAgICAKLSAgICAgICBPbmUg
b3V0Y29tZSBvZiB0aGlzIGlzIHRoYXQgd2Ugd2lsbCBlbnN1cmUgdGhpcyBsYXJnZXIgc2l6ZSBh
dCB0aGUgb3JpZ2luYWwgaW5kZXguIEZvciB0aGlzCi0gICAgICAgcmVhc29uLCB0aGUgY2FsbGVy
cyBvZiB0aGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBzdXJlIHRoYXQgdGhleSByb3VuZCB1cCB0aGVp
ciBjb3VudCB0byB0aGUKLSAgICAgICBuZWFyZXN0IGNvdW50IHRvIHRoZSBhbGlnbmVkIHNpemUu
ICovCi0gICAgb2JqZWN0X3NpemUgPSBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMihvYmplY3Rf
c2l6ZSwgYWxpZ25tZW50KTsKLSAgICAKLSAgICBvYmplY3Rfc2l6ZSA9IHBhc19yb3VuZF91cF90
b19wb3dlcl9vZl8yKAotICAgICAgICBvYmplY3Rfc2l6ZSwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfbWluX2FsaWduKGNvbmZpZy0+c21hbGxfc2VncmVnYXRlZF9jb25maWcpKTsKKworICAg
IFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQob2JqZWN0X3NpemUsIGFsaWdubWVudCkpOworICAg
IFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQoCisgICAgICAgICAgICAgICAgICAgb2JqZWN0X3Np
emUsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21pbl9hbGlnbihjb25maWctPnNtYWxsX3Nl
Z3JlZ2F0ZWRfY29uZmlnKSkpOworCiAgICAgYWxpZ25tZW50ID0gUEFTX01BWChhbGlnbm1lbnQs
CiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19taW5f
YWxpZ24oY29uZmlnLT5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZykpOwogCkBAIC04MjAsNyArMTMx
MSw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAg
cGFzX2xvZygiQ29uc2lkZXJpbmcgd2hldGhlciBvYmplY3Rfc2l6ZSA9ICV6dSBpcyBhcHByb3By
aWF0ZS5cbiIsIG9iamVjdF9zaXplKTsKICAgICAKICAgICAvKiBJZiBpdCdzIGltcG9zc2libGUg
dG8gdXNlIHRoZSBsYXJnZXN0IHNlZ3JlZ2F0ZWQgaGVhcCB0byBhbGxvY2F0ZSB0aGUgcmVxdWVz
dCB0aGVuCi0gICAgICAgaW1tZWRpYXRlbHkgZ2l2ZSB1cC4gRG8gdGhpcyBiZWZvcmUgZW5zdXJl
X2NvdW50X2xvb2t1cCBzbyB0aGF0IGhlYXBzIHRoYXQgYXJlIG9ubHkgdXNlZAorICAgICAgIGlt
bWVkaWF0ZWx5IGdpdmUgdXAuIERvIHRoaXMgYmVmb3JlIGVuc3VyZV9zaXplX2xvb2t1cCBzbyB0
aGF0IGhlYXBzIHRoYXQgYXJlIG9ubHkgdXNlZAogICAgICAgIGZvciBsYXJnZSBvYmplY3QgYWxs
b2NhdGlvbiBkb24ndCBhbGxvY2F0ZSBhbnkgc21hbGwgaGVhcCBtZXRhLWRhdGEuICovCiAgICAg
aWYgKG9iamVjdF9zaXplID4gbWF4X29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyhwYXJlbnRf
aGVhcCwgaGVhcCwgY29uZmlnKSkgewogICAgICAgICBpZiAodmVyYm9zZSkKQEAgLTgzMSwyNCAr
MTMyMiw0MiBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAg
aWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIlByb2NlZWRpbmcuXG4iKTsKICAgICAKLSAg
ICBlbnN1cmVfY291bnRfbG9va3VwX2lmX25lY2Vzc2FyeShoZWFwLCBjb3VudF9sb29rdXBfbW9k
ZSwgY29uZmlnLCBjYWNoZWRfaW5kZXgsIGluZGV4KTsKKyAgICBlbnN1cmVfc2l6ZV9sb29rdXBf
aWZfbmVjZXNzYXJ5KGhlYXAsIHNpemVfbG9va3VwX21vZGUsIGNvbmZpZywgY2FjaGVkX2luZGV4
LCBpbmRleCk7CiAgICAgCi0gICAgcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaXplX2Rp
cmVjdG9yeV9mb3JfaW5kZXgoaGVhcCwgaW5kZXgsIGNhY2hlZF9pbmRleCk7CisgICAgcmVzdWx0
ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaXplX2RpcmVjdG9yeV9mb3JfaW5kZXgoaGVhcCwgaW5k
ZXgsIGNhY2hlZF9pbmRleCwgY29uZmlnKTsKIAogICAgIFBBU19BU1NFUlQoCiAgICAgICAgICFy
ZXN1bHQgfHwKICAgICAgICAgcGFzX2lzX2FsaWduZWQocmVzdWx0LT5vYmplY3Rfc2l6ZSwgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHJlc3VsdCkpKTsKIAogICAgIGlz
X3V0aWxpdHkgPSBwYXNfaGVhcF9jb25maWdfaXNfdXRpbGl0eShjb25maWcpOworCisgICAgaWYg
KHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coIlNtYWxsIGluZGV4IHVwcGVyIGJvdW5kID0gJXVc
biIsIGhlYXAtPnNtYWxsX2luZGV4X3VwcGVyX2JvdW5kKTsKICAgICAKICAgICBpZiAocmVzdWx0
ICYmIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FsaWdubWVudChyZXN1bHQpIDwgYWxp
Z25tZW50KSB7Ci0gICAgICAgIHNpemVfdCB2aWN0aW1faW5kZXg7Ci0gICAgICAgIAotICAgICAg
ICAvKiBJbiB0aGlzIGNhc2UsIHJlc3VsdCBpcyBhIHNpemUgY2xhc3MgZm9yIGF0IGxlYXN0IGFz
IGJpZyBvZiBhIHNpemUKLSAgICAgICAgICAgYXMgd2Ugd2FudCBhbmQgaXQncyBjYWNoZWQgYXQg
dGhlIGluZGV4IHdlIHdhbnRlZCBwbHVzIHNvbWUgbnVtYmVyCisgICAgICAgIC8qIEluIHRoaXMg
Y2FzZSwgcmVzdWx0IGlzIGEgc2l6ZSBjbGFzcyB0aGF0J3MgYmlnIGVub3VnaCBmb3IgdGhlIHNp
emUKKyAgICAgICAgICAgd2Ugd2FudCBhbmQgaXQncyBjYWNoZWQgYXQgdGhlIGluZGV4IHdlIHdh
bnRlZCBwbHVzIHNvbWUgbnVtYmVyCiAgICAgICAgICAgIG9mIHNtYWxsZXIgaW5kaWNlcy4gV2Ug
d2lsbCBjcmVhdGUgYSBuZXcgc2l6ZSBjbGFzcyBmb3IgdGhpcyBpbmRleAogICAgICAgICAgICBh
bmQgd2Ugd2FudGVkIHNtYWxsZXIgaW5kaWNlcyB0byBjb25zaWRlciB0aGlzIG9uZSBpbnN0ZWFk
IG9mIHRoZQogICAgICAgICAgICBvbGQgb25lLiAqLworCisgICAgICAgIGlmICh2ZXJib3NlKQor
ICAgICAgICAgICAgcGFzX2xvZygiRm91bmQgcmVzdWx0ID0gJXAsIGJ1dCB3ZSBuZWVkIHRvIGV2
aWN0IGl0IHN0YXJ0aW5nIGF0IGluZGV4ID0gJXp1XG4iLCByZXN1bHQsIGluZGV4KTsKKworICAg
ICAgICBQQVNfQVNTRVJUKHJlc3VsdC0+b2JqZWN0X3NpemUgPj0gb2JqZWN0X3NpemUpOworICAg
ICAgICBQQVNfQVNTRVJUKHJlc3VsdC0+b2JqZWN0X3NpemUgPj0gcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9zaXplX2Zvcl9pbmRleChpbmRleCwgKmNvbmZpZykpOworICAgICAgICBQQVNfQVNTRVJUKHBh
c19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9yX3NpemUocmVzdWx0LT5vYmplY3Rfc2l6ZSwgKmNv
bmZpZykgPj0gaW5kZXgpOworCisgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4
X2Zvcl9zaXplKHJlc3VsdC0+b2JqZWN0X3NpemUsICpjb25maWcpID09IGluZGV4KQorICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2V0X21pbl9pbmRleChyZXN1bHQs
IFVJTlRfTUFYKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBQQVNfQVNTRVJUKGluZGV4
ICsgMSA+IGluZGV4KTsKKyAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9pbmRleF9mb3Jfc2l6ZShyZXN1bHQtPm9iamVjdF9zaXplLCAqY29uZmlnKSA+PSBpbmRleCAr
IDEpOworICAgICAgICAgICAgUEFTX0FTU0VSVCgodW5zaWduZWQpKGluZGV4ICsgMSkgPT0gaW5k
ZXggKyAxKTsKKyAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfbWluX2luZGV4KHJlc3VsdCkgIT0gVUlOVF9NQVgpOworICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2V0X21pbl9pbmRleChyZXN1bHQsICh1bnNpZ25lZCko
aW5kZXggKyAxKSk7CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8qIE5lZWQgdG8gY2xl
YXIgb3V0IHRoaXMgc2l6ZSBjbGFzcyBmcm9tIHRoaXMgc2l6ZSBhbmQgc21hbGxlciBzaXplcy4K
ICAgICAgICAgICAgVGhpcyBsb29wIHN0YXJ0cyBhdCBpbmRleCAobm90IGluZGV4ICsgMSBkZXNw
aXRlIHdoYXQgdGhlIGluaXRpYWwKQEAgLTg1NiwyNiArMTM2NSwzNiBAQCBwYXNfc2VncmVnYXRl
ZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgIGlmIChoZWFwLT5zbWFsbF9pbmRl
eF91cHBlcl9ib3VuZCkgewogICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKiBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeTsKICAg
ICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXgqIGluZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9p
bmRleDsKKyAgICAgICAgICAgIHNpemVfdCB2aWN0aW1faW5kZXg7CisKKyAgICAgICAgICAgIGlm
ICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2coIkV2aWN0aW5nIHN0YXJ0aW5nIHdp
dGggaW5kZXggPSAlenVcbiIsIGluZGV4KTsKIAogICAgICAgICAgICAgaW5kZXhfdG9fc21hbGxf
c2l6ZV9kaXJlY3RvcnkgPSBoZWFwLT5pbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeTsKICAg
ICAgICAgICAgIGluZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleCA9IGhlYXAtPmluZGV4X3Rv
X3NtYWxsX2FsbG9jYXRvcl9pbmRleDsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgZm9yICh2
aWN0aW1faW5kZXggPSBpbmRleCArIDE7IHZpY3RpbV9pbmRleC0tOykgeworCisgICAgICAgICAg
ICBpZiAoaW5kZXggPCBoZWFwLT5zbWFsbF9pbmRleF91cHBlcl9ib3VuZCkgeworICAgICAgICAg
ICAgICAgIFBBU19BU1NFUlQocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfcHRyX2xvYWQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfdG9f
c21hbGxfc2l6ZV9kaXJlY3RvcnkgKyBpbmRleCkgPT0gcmVzdWx0KTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgLyogRklYTUU6IE5lZWQgYSB0ZXN0IGZvciB0aGUgcmVhc29uIHdoeSB3
ZSBuZWVkIHRoaXMgUEFTX01JTigpLiAqLworICAgICAgICAgICAgZm9yICh2aWN0aW1faW5kZXgg
PSBQQVNfTUlOKGluZGV4ICsgMSwgaGVhcC0+c21hbGxfaW5kZXhfdXBwZXJfYm91bmQpOyB2aWN0
aW1faW5kZXgtLTspIHsKICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5OwogCiAgICAgICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAg
ICAgICAgICAgIGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ICsgdmljdGltX2luZGV4KTsK
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoIWRpcmVjdG9yeSkKLSAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgCisKKyAgICAgICAgICAg
ICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiQ29uc2lkZXJp
bmcgdmljdGltX2luZGV4ID0gJXp1LCBkaXJlY3RvcnkgPSAlcC5cbiIsIHZpY3RpbV9pbmRleCwg
ZGlyZWN0b3J5KTsKKwogICAgICAgICAgICAgICAgIGlmIChkaXJlY3RvcnkgIT0gcmVzdWx0KQog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgICAgIHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgKICAgICAgICAgICAg
ICAgICAgICAgaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3RvcnkgKyB2aWN0aW1faW5kZXgsIE5V
TEwpOwogICAgICAgICAgICAgICAgIGlmICghaXNfdXRpbGl0eSkKLSAgICAgICAgICAgICAgICAg
ICAgaW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4W3ZpY3RpbV9pbmRleF0gPSAocGFzX2Fs
bG9jYXRvcl9pbmRleClVSU5UX01BWDsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXhfdG9fc21h
bGxfYWxsb2NhdG9yX2luZGV4W3ZpY3RpbV9pbmRleF0gPSAwOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgICAgIApAQCAtODg0LDcgKzE0MDMsNiBAQCBwYXNfc2VncmVnYXRlZF9oZWFw
X2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21l
ZGl1bV9zaXplX2RpcmVjdG9yeV9zZWFyY2hfd2l0aGluX3NpemVfY2xhc3NfcHJvZ3Jlc3Npb24s
CiAgICAgICAgICAgICBwYXNfbG9ja19pc19oZWxkKTsKICAgICAgICAgaWYgKG1lZGl1bV90dXBs
ZSkgewotICAgICAgICAgICAgc2l6ZV90IG1lZGl1bV90dXBsZV9pbmRleDsKICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX2hlYXBfcmFyZV9kYXRhKiByYXJlX2RhdGE7CiAKICAgICAgICAgICAg
IGlmICh2ZXJib3NlKSB7CkBAIC04OTksNyArMTQxNyw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBf
ZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgIFBBU19BU1NFUlQocmFyZV9kYXRhKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgcGFzX211dGF0aW9uX2NvdW50X3N0YXJ0X211dGF0
aW5nKCZyYXJlX2RhdGEtPm11dGF0aW9uX2NvdW50KTsKLSAgICAgICAgICAgIAorCiAgICAgICAg
ICAgICBpZiAoaW5kZXggPCBtZWRpdW1fdHVwbGUtPmVuZF9pbmRleCkgewogICAgICAgICAgICAg
ICAgIHNpemVfdCBiZWdpbl9pbmRleDsKICAgICAgICAgICAgICAgICBiZWdpbl9pbmRleCA9IGlu
ZGV4ICsgMTsKQEAgLTkwNyw2ICsxNDI1LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVf
c2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAgIG1lZGl1bV90dXBsZS0+YmVnaW5faW5kZXgg
PSAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X2luZGV4KWJlZ2luX2luZGV4
OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9o
ZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGUqIG1lZGl1bV9kaXJlY3RvcmllczsKKyAgICAgICAg
ICAgICAgICBzaXplX3QgbWVkaXVtX3R1cGxlX2luZGV4OwogICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgIFBBU19BU1NFUlQoaW5kZXggPT0gbWVkaXVtX3R1cGxlLT5lbmRfaW5kZXgp
OwogCkBAIC05NDEsMTIgKzE0NjAsMTMgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6
ZV9kaXJlY3RvcgogICAgICAgICAgICBTbWFsbGVyIGluZGV4OiBjbGVhciBpdCBpZiBpdCBtYXRj
aGVzLCBzaW5jZSB3ZSAqbWF5KiB3YW50IHRob3NlCiAgICAgICAgICAgIHNtYWxsZXIgYWxsb2Nh
dGlvbnMgdG8gY29uc2lkZXIgb3VyIG5ldyBvbmUuICovCiAgICAgICAgIGlmIChwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKLSAgICAgICAgICAg
ICAgICAmaGVhcC0+YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQpID09IHJlc3VsdAotICAg
ICAgICAgICAgJiYgcmVzdWx0LT5iYXNlLmlzX2Jhc2ljX3NpemVfZGlyZWN0b3J5Ci0gICAgICAg
ICAgICAmJiBpbmRleCA+PSAoY2FjaGVkX2luZGV4ID8gKmNhY2hlZF9pbmRleCA6IDEpKSB7Cisg
ICAgICAgICAgICAgICAgJmhlYXAtPmJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkKSA9PSBy
ZXN1bHQgJiYKKyAgICAgICAgICAgIHJlc3VsdC0+YmFzZS5pc19iYXNpY19zaXplX2RpcmVjdG9y
eSAmJgorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9pc19ncmVhdGVyX2Vx
dWFsX2NhY2hlZF9pbmRleF9hbmRfY2FjaGVkX2luZGV4X2lzX3NldCgKKyAgICAgICAgICAgICAg
ICBoZWFwLCBjYWNoZWRfaW5kZXgsIGluZGV4LCBjb25maWcpKSB7CiAgICAgICAgICAgICByZXN1
bHQtPmJhc2UuaXNfYmFzaWNfc2l6ZV9kaXJlY3RvcnkgPSBmYWxzZTsKICAgICAgICAgICAgIGlm
IChwYXJlbnRfaGVhcCAmJiBwYXJlbnRfaGVhcC0+aGVhcF9yZWYpCi0gICAgICAgICAgICAgICAg
cGFyZW50X2hlYXAtPmhlYXBfcmVmLT5hbGxvY2F0b3JfaW5kZXggPSBVSU5UX01BWDsKKyAgICAg
ICAgICAgICAgICBwYXJlbnRfaGVhcC0+aGVhcF9yZWYtPmFsbG9jYXRvcl9pbmRleCA9IDA7CiAg
ICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8qIFdlJ2xsIGNyZWF0ZSBhIG5ldyBzaXplIGNs
YXNzIHRoYXQgYWxpZ25zIHByb3Blcmx5LiBUaGUgaW5kaWNlcyB0aGF0IHdlIGNsZWFyZWQgd2ls
bApAQCAtOTU4LDEyICsxNDc4LDEzIEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVf
ZGlyZWN0b3IKICAgICAgICAgc2l6ZV90IGNhbmRpZGF0ZV9pbmRleDsKICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGNhbmRpZGF0ZTsKICAgICAgICAgc2l6ZV90IG1lZGl1
bV9pbnN0YWxsX2luZGV4OwotICAgICAgICBzaXplX3QgbWVkaXVtX2luc3RhbGxfY291bnQ7Cisg
ICAgICAgIHNpemVfdCBtZWRpdW1faW5zdGFsbF9zaXplOwogICAgICAgICBkb3VibGUgYmVzdF9i
eXRlc19kaXJ0aWVkX3Blcl9vYmplY3Q7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnKiBiZXN0X3BhZ2VfY29uZmlnOwogICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z192YXJpYW50IHZhcmlhbnQ7CiAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CiAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBiYXNpY19zaXplX2RpcmVjdG9yeV9h
bmRfaGVhZDsKKyAgICAgICAgYm9vbCBkaWRfYWRkX3RvX3NpemVfbG9va3VwOwogCiAgICAgICAg
IGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ID0gaGVhcC0+aW5kZXhfdG9fc21hbGxfc2l6
ZV9kaXJlY3Rvcnk7CiAgICAgICAgIApAQCAtOTg2LDcgKzE1MDcsOCBAQCBwYXNfc2VncmVnYXRl
ZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgIGNsYXNzLiAqLwogICAgICAg
ICBiYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCA9IHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgJmhlYXAtPmJhc2lj
X3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkKTsKLSAgICAgICAgaWYgKCghY2FuZGlkYXRlIHx8IGNh
bmRpZGF0ZV9pbmRleCA+IChjYWNoZWRfaW5kZXggPyAqY2FjaGVkX2luZGV4IDogMSkpCisgICAg
ICAgIGlmICgoIWNhbmRpZGF0ZSB8fCBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2lzX2dyZWF0
ZXJfdGhhbl9jYWNoZWRfaW5kZXhfYW5kX2NhY2hlZF9pbmRleF9pc19zZXQoCisgICAgICAgICAg
ICAgICAgIGhlYXAsIGNhY2hlZF9pbmRleCwgY2FuZGlkYXRlX2luZGV4LCBjb25maWcpKQogICAg
ICAgICAgICAgJiYgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQKICAgICAgICAgICAgICYm
IGJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkLT5iYXNlLmlzX2Jhc2ljX3NpemVfZGlyZWN0
b3J5CiAgICAgICAgICAgICAmJiBiYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZC0+b2JqZWN0
X3NpemUgPj0gb2JqZWN0X3NpemUpCkBAIC0xMDg5LDExICsxNjExLDE2IEBAIHBhc19zZWdyZWdh
dGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgICAgICA+IGJ5dGVzX2Rp
cnRpZWRfcGVyX29iamVjdF9ieV9jYW5kaWRhdGUpCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0g
Y2FuZGlkYXRlOwogICAgICAgICB9Ci0gICAgCi0gICAgICAgIGlmICghcmVzdWx0KSB7CisKKyAg
ICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIG9iamVjdF9zaXplID0gcmVzdWx0LT5vYmpl
Y3Rfc2l6ZTsKKyAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIqIGhlYWQ7CiAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQ7CiAK
KyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2coIkFib3V0
IHRvIGNvbXB1dGUgaWRlYWwgb2JqZWN0IHNpemU7IG9iamVjdF9zaXplID0gJXp1XG4iLCBvYmpl
Y3Rfc2l6ZSk7CisKICAgICAgICAgICAgIGlmIChiZXN0X3BhZ2VfY29uZmlnKSB7CiAgICAgICAg
ICAgICAgICAgb2JqZWN0X3NpemUgPSBjb21wdXRlX2lkZWFsX29iamVjdF9zaXplKAogICAgICAg
ICAgICAgICAgICAgICBoZWFwLApAQCAtMTEwOCw2ICsxNjM1LDkgQEAgcGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAgIG9iamVjdF9zaXplID0g
KHNpemVfdCliZXN0X2J5dGVzX2RpcnRpZWRfcGVyX29iamVjdDsKICAgICAgICAgICAgIH0KICAg
ICAgICAgCisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9n
KCJEaWQgY29tcHV0ZSBpZGVhbCBvYmplY3Qgc2l6ZTsgb2JqZWN0X3NpemUgPSAlenVcbiIsIG9i
amVjdF9zaXplKTsKKwogICAgICAgICAgICAgaWYgKGJlc3RfcGFnZV9jb25maWcpCiAgICAgICAg
ICAgICAgICAgYWxpZ25tZW50ID0gUEFTX01BWChhbGlnbm1lbnQsIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX21pbl9hbGlnbigqYmVzdF9wYWdlX2NvbmZpZykpOwogCkBAIC0xMTIyLDEyICsx
NjUyLDM2IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAg
ICAgICAgICAgICAgICAgICAgID8gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRf
c3RyaW5nKGJlc3RfcGFnZV9jb25maWctPmtpbmQpCiAgICAgICAgICAgICAgICAgICAgICAgICA6
ICJudWxsIik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHdoaWxl
IChwYXNfaXNfYWxpZ25lZChvYmplY3Rfc2l6ZSwgYWxpZ25tZW50IDw8IDEpKQotICAgICAgICAg
ICAgICAgIGFsaWdubWVudCA8PD0gMTsKIAotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAg
ICAgICAgICAgICAgcGFzX2xvZygiQnVtcGVkIGFsaWdubWVudCB1cCB0byAlenUuXG4iLCBhbGln
bm1lbnQpOworICAgICAgICAgICAgLyogSWYgd2UgaGF2ZSBwYXJ0aWFsIHZpZXdzLCB0aGVuIHdl
IHdhbnQgdGhlIGRpcmVjdG9yeSB0byBoYXZlIHRoZSBtb3N0IGNvbnNlcnZhdGl2ZSBwb3NzaWJs
ZQorICAgICAgICAgICAgICAgYWxpZ25tZW50LCB3aGljaCBpcyB3aGF0IHdlIHdvdWxkIGhhdmUg
c28gZmFyOiBpdCdzIHRoZSBhbGlnbm1lbnQgdGhlIHVzZXIgYXNrZWQgZm9yLCBwb3NzaWJseQor
ICAgICAgICAgICAgICAgYnVtcGVkIHVwIHRvIG1pbmFsaWduLiBUaGF0J3MgYmVjYXVzZSB3ZSBi
dW1wLWFsbG9jYXRlIHBhcnRpYWwgdmlldyBtZW1vcnkgb3V0IG9mIHNoYXJlZCB2aWV3cywKKyAg
ICAgICAgICAgICAgIGFuZCBpdCdzIHBvc3NpYmxlIChmb3IgZXhhbXBsZSkgdG8gaGF2ZSBhIDI1
Ni1zaXplIGRpcmVjdG9yeSB0aGF0IHdhbnRzIHRvIGJ1bXAtYWxsb2NhdGUgYXQgYW4KKyAgICAg
ICAgICAgICAgIG9mZnNldCBvZiAxMTIgd2l0aCBhbGlnbm1lbnQ9MTYuIEluIHRoYXQgY2FzZSwg
aXQncyBpZGVhbCBmb3IgdGhhdCAyNTYtYnl0ZSBvYmplY3QgdG8gYmUgcGxhY2VkCisgICAgICAg
ICAgICAgICBhdCBvZmZzZXQ9MTEyIHdpdGggbm8gZ2Fwcywgc28gYXMgdG8gbm90IGNyZWF0ZSBp
bnRlcm5hbCBmcmFnbWVudGF0aW9uLiBIYWQgd2UgZXhlY3V0ZWQgdGhlIGNvZGUKKyAgICAgICAg
ICAgICAgIGJlbG93LCB3ZSB3b3VsZCBoYXZlIGdpdmVuIHRoZSAyNTYtc2l6ZSBkaXJlY3Rvcnkg
YWxpZ25tZW50PTI1NiwgYW5kIHNvIHdlIHdvdWxkIGJlIGZvcmNlZCB0bworICAgICAgICAgICAg
ICAgYWxsb2NhdGUgYXQgb2Zmc2V0PTI1NiwgY3JlYXRpbmcgYSBnYXAgb2YgMTQ0IGJ5dGVzLiBZ
dWNrIQorICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBPbiB0aGUgb3RoZXIgaGFuZCwg
bm90IGV4ZWN1dGluZyB0aGlzIGNvZGUgY3JlYXRlcyB0aGlzIHdlaXJkIHNpdHVhdGlvbiB3aGVy
ZSBpZiB3ZSBoYWQgb25jZSB1cG9uCisgICAgICAgICAgICAgICBhIHRpbWUgYWxsb2NhdGVkIDI1
NiBieXRlcyB3aXRoIG5vIHBhcnRpY3VsYXIgYWxpZ25tZW50LCBhbmQgbGF0ZXIgbWVtYWxpZ25l
ZCAyNTYgYnl0ZXMgd2l0aAorICAgICAgICAgICAgICAgMjU2LWJ5dGUgYWxpZ25tZW50LCB0aGVu
IHdlIHdvdWxkIGNyZWF0ZSBhIHNlY29uZCBkaXJlY3RvcnksIGFuZCB0aGUgb2xkIGRpcmVjdG9y
eSdzIG1lbW9yeSB3aWxsCisgICAgICAgICAgICAgICBiZSAicmV0aXJlZCIuIFRoYXQgcmV0aXJl
ZCBtZW1vcnkgd2lsbCBuZXZlciBiZSBhYmxlIHRvIGJlIHVzZWQgZm9yIGFueSBmdXR1cmUgYWxs
b2NhdGlvbnMuIFRoYXQKKyAgICAgICAgICAgICAgIGRvZXNuJ3QgbWVhbiB0aGF0IHRoZSBtZW1v
cnkgaXMgd2FzdGVkOyBpZiBhbGwgb2YgdGhlIG9iamVjdHMgaW4gdGhlIHBhZ2VzIG9mIHRoYXQg
ZGlyZWN0b3J5IGdldAorICAgICAgICAgICAgICAgZnJlZWQgdGhlbiB0aG9zZSBwYWdlcyB3aWxs
IGdldCBkZWNvbW1pdHRlZC4gQnV0IHRoaXMgY3JlYXRlcyBhIG5ldyB1bmlxdWUgc291cmNlIG9m
IGV4dGVybmFsCisgICAgICAgICAgICAgICBmcmFnbWVudGF0aW9uLiBJIHN1c3BlY3QgdGhhdCB0
aGlzIHByb2JsZW0gaXMgc3VwZXIgdW5saWtlbHkgc2luY2UgbWVtYWxpZ24gaXMgcmFyZSB0byBi
ZWdpbiB3aXRoLgorICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBTbywgY3VycmVudGx5
IHdlIGp1c3QgZXhlY3V0ZSB0aGUgY29kZSBiZWxvdyBpZiB3ZSB3aWxsIG5ldmVyIGhhdmUgcGFy
dGlhbCB2aWV3cy4gTm8gcGFydGlhbCB2aWV3cworICAgICAgICAgICAgICAgbWVhbnMgbm8gcG9z
c2liaWxpdHkgb2YgdGhlIGludGVybmFsIGZyYWdtZW50YXRpb24gcHJvYmxlbSwgc28gdGhlbiB3
ZSBqdXN0IHdhbnQgdG8gYXZvaWQgdGhlCisgICAgICAgICAgICAgICBleHRlcm5hbCBmcmFnbWVu
dGF0aW9uIHByb2JsZW0uICovCisgICAgICAgICAgICBpZiAoIWhlYXAtPnJ1bnRpbWVfY29uZmln
LT5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3JfcGFydGlhbF92aWV3cykgeworICAgICAgICAgICAg
ICAgIGFsaWdubWVudCA9IChzaXplX3QpMSA8PCBfX2J1aWx0aW5fY3R6bChvYmplY3Rfc2l6ZSk7
CisKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgcGFz
X2xvZygiQnVtcGVkIGFsaWdubWVudCBmb3Igb2JqZWN0X3NpemUgPSAlenUgdXAgdG8gJXp1Llxu
Iiwgb2JqZWN0X3NpemUsIGFsaWdubWVudCk7CisKKyAgICAgICAgICAgICAgICBQQVNfQVNTRVJU
KHBhc19pc19hbGlnbmVkKG9iamVjdF9zaXplLCBhbGlnbm1lbnQpKTsKKyAgICAgICAgICAgICAg
ICBQQVNfQVNTRVJUKCFwYXNfaXNfYWxpZ25lZChvYmplY3Rfc2l6ZSwgYWxpZ25tZW50IDw8IChz
aXplX3QpMSkpOworICAgICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgICAgIHJlc3VsdCA9
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZSgKICAgICAgICAgICAgICAgICBo
ZWFwLApAQCAtMTE1MiwxNiArMTcwNiwxNyBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9z
aXplX2RpcmVjdG9yCiAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoaGVhZCkpOwogICAgICAgICAgICAgcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKGhlYWQsIHJlc3Vs
dCk7CiAgICAgICAgIH0KKworICAgICAgICBkaWRfYWRkX3RvX3NpemVfbG9va3VwID0gZmFsc2U7
CiAgICAgICAgIAotICAgICAgICBpZiAoY2FjaGVkX2luZGV4Ci0gICAgICAgICAgICA/ICpjYWNo
ZWRfaW5kZXggPT0gVUlOVF9NQVggfHwgKmNhY2hlZF9pbmRleCA9PSBpbmRleAotICAgICAgICAg
ICAgOiBpbmRleCA9PSAxKSB7CisgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4
X2lzX2NhY2hlZF9pbmRleF9vcl9jYWNoZWRfaW5kZXhfaXNfdW5zZXQoCisgICAgICAgICAgICAg
ICAgaGVhcCwgY2FjaGVkX2luZGV4LCBpbmRleCwgY29uZmlnKSkgewogICAgICAgICAgICAgcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKiBwcmV2X25leHRf
cHRyOwogICAgICAgICAgICAgYm9vbCBkaWRfZmluZF9yZXN1bHQ7CiAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgICAgIHByaW50ZigicGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50OiAiCisgICAgICAgICAg
ICAgICAgcHJpbnRmKCJwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9m
b3Jfc2l6ZTogIgogICAgICAgICAgICAgICAgICAgICAgICAiQ2FjaGluZyBhcyBiYXNpYyBzaXpl
IGNsYXNzIVxuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNf
Y29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKQEAgLTEy
MzUsMTYgKzE3OTAsMTMgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3Rv
cgogICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9wdHJfaXNfbnVsbCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
ZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ICsgaW5kZXgpKTsKICAgICAgICAgICAgIGlmICgh
aXNfdXRpbGl0eSkKLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKGluZGV4X3RvX3NtYWxsX2Fs
bG9jYXRvcl9pbmRleFtpbmRleF0gPT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwor
ICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoaW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4
W2luZGV4XSA9PSAwKTsKICAgICAgICAgCiAgICAgICAgICAgICAvKiBJbnN0YWxsIHRoaXMgcmVz
dWx0IGluIGFsbCBpbmRpY2VzIHN0YXJ0aW5nIHdpdGggdGhpcyBvbmUgdGhhdCBkb24ndCBhbHJl
YWR5IGhhdmUgYQogICAgICAgICAgICAgICAgc2l6ZSBjbGFzcyBhbmQgd2hlcmUgdGhpcyBzaXpl
IGNsYXNzIHdvdWxkIGJlIGJpZyBlbm91Z2guICovCiAgICAgICAgICAgICBmb3IgKGNhbmRpZGF0
ZV9pbmRleCA9IGluZGV4OwogICAgICAgICAgICAgICAgICBjYW5kaWRhdGVfaW5kZXggPCBoZWFw
LT5zbWFsbF9pbmRleF91cHBlcl9ib3VuZAotICAgICAgICAgICAgICAgICAmJiAocGFzX2hlYXBf
Z2V0X3R5cGVfc2l6ZShwYXJlbnRfaGVhcCkgKgotICAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9jb3VudF9mb3JfaW5kZXgoaGVhcCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZV9pbmRleCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpj
b25maWcpIDw9IG9iamVjdF9zaXplKTsKKyAgICAgICAgICAgICAgICAgJiYgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9zaXplX2Zvcl9pbmRleChjYW5kaWRhdGVfaW5kZXgsICpjb25maWcpIDw9IHJlc3Vs
dC0+b2JqZWN0X3NpemU7CiAgICAgICAgICAgICAgICAgICsrY2FuZGlkYXRlX2luZGV4KSB7CiAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGNhbmRpZGF0ZTsK
IApAQCAtMTI2NywxNSArMTgxOSwyMCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXpl
X2RpcmVjdG9yCiAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAgICAgICAgICAgICBoZWFwLT5pbmRl
eF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSArIGNhbmRpZGF0ZV9pbmRleCwgcmVzdWx0KTsKICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgZGlkX2FkZF90b19zaXplX2xvb2t1cCA9IHRydWU7
CiAgICAgICAgIH0KLSAgICAKLSAgICAgICAgbWVkaXVtX2luc3RhbGxfY291bnQgPSBvYmplY3Rf
c2l6ZSAvIHBhc19oZWFwX2dldF90eXBlX3NpemUocGFyZW50X2hlYXApOwotICAgICAgICBtZWRp
dW1faW5zdGFsbF9pbmRleCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9yX2NvdW50KAot
ICAgICAgICAgICAgaGVhcCwgbWVkaXVtX2luc3RhbGxfY291bnQsICpjb25maWcpOworCisgICAg
ICAgIFBBU19BU1NFUlQob2JqZWN0X3NpemUgPT0gcmVzdWx0LT5vYmplY3Rfc2l6ZSk7CisKKyAg
ICAgICAgbWVkaXVtX2luc3RhbGxfc2l6ZSA9IG9iamVjdF9zaXplOworICAgICAgICBtZWRpdW1f
aW5zdGFsbF9pbmRleCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9yX3NpemUobWVkaXVt
X2luc3RhbGxfc2l6ZSwgKmNvbmZpZyk7CiAKICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAg
ICAgICBwYXNfbG9nKCJtZWRpdW1faW5zdGFsbF9pbmRleCA9ICV6dVxuIiwgbWVkaXVtX2luc3Rh
bGxfaW5kZXgpOworICAgICAgICAgICAgcGFzX2xvZygib2JqZWN0X3NpemUgPSAlenUsIG1lZGl1
bV9pbnN0YWxsX2luZGV4ID0gJXp1XG4iLCBvYmplY3Rfc2l6ZSwgbWVkaXVtX2luc3RhbGxfaW5k
ZXgpOwogICAgICAgICAKKyAgICAgICAgUEFTX0FTU0VSVChpbmRleCA8PSBtZWRpdW1faW5zdGFs
bF9pbmRleCk7CisKICAgICAgICAgaWYgKG1lZGl1bV9pbnN0YWxsX2luZGV4ID49IGNvbXB1dGVf
c21hbGxfaW5kZXhfdXBwZXJfYm91bmQoaGVhcCwgY29uZmlnKSkgewogICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9yYXJlX2RhdGEqIHJhcmVfZGF0YTsKICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSogbmV4dF90dXBsZTsKQEAgLTEz
NTYsMTAgKzE5MTMsMTAgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3Rv
cgogICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIG5ld19jYXBhY2l0eSA9IChyYXJl
X2RhdGEtPm1lZGl1bV9kaXJlY3Rvcmllc19jYXBhY2l0eSArIDEpIDw8IDE7CiAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAgICAgbmV3X2RpcmVjdG9yaWVzID0gcGFzX2ltbW9ydGFsX2hl
YXBfYWxsb2NhdGUoCisgICAgICAgICAgICAgICAgICAgIG5ld19kaXJlY3RvcmllcyA9IHBhc19j
b21wYWN0X2V4cGVuZGFibGVfbWVtb3J5X2FsbG9jYXRlKAogICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZW9mKHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSkgKiBu
ZXdfY2FwYWNpdHksCi0gICAgICAgICAgICAgICAgICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9yYXJlX2RhdGEvbWVkaXVtX2RpcmVjdG9yaWVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19vYmplY3RfYWxsb2NhdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbm9m
KHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfaGVhcF9yYXJlX2RhdGEvbWVkaXVtX2RpcmVj
dG9yaWVzIik7CiAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgbWVtY3B5KG5ld19k
aXJlY3RvcmllcywgbWVkaXVtX2RpcmVjdG9yaWVzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZW9mKHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSkKQEAg
LTEzOTUsNyArMTk1Miw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0
b3IKICAgICAgICAgICAgICAgICBtZWRpdW1fZGlyZWN0b3J5ID0gbWVkaXVtX2RpcmVjdG9yaWVz
ICsgdHVwbGVfaW5zZXJ0aW9uX2luZGV4OwogICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgKICAgICAgICAgICAgICAg
ICAgICAgJm1lZGl1bV9kaXJlY3RvcnktPmRpcmVjdG9yeSwgcmVzdWx0KTsKLSAgICAgICAgICAg
ICAgICBtZWRpdW1fZGlyZWN0b3J5LT5hbGxvY2F0b3JfaW5kZXggPSAocGFzX2FsbG9jYXRvcl9p
bmRleClVSU5UX01BWDsKKyAgICAgICAgICAgICAgICBtZWRpdW1fZGlyZWN0b3J5LT5hbGxvY2F0
b3JfaW5kZXggPSAwOwogCiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvZygiSW4gcmFyZV9kYXRhID0gJXAsIEluc3RhbGxpbmcgbWVkaXVt
IHR1cGxlICV6dS4uLiV6dVxuIiwKQEAgLTE0MTUsMTIgKzE5NzIsMzMgQEAgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgIHBhc19tdXRhdGlvbl9jb3VudF9zdG9wX211dGF0aW5nKCZyYXJlX2RhdGEtPm11dGF0
aW9uX2NvdW50KTsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZGlkX2FkZF90b19zaXpl
X2xvb2t1cCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGlkX2FkZF90b19zaXpl
X2xvb2t1cCkgeworICAgICAgICAgICAgLyogTWFrZSBzdXJlIHRoYXQgdGhlIGRpcmVjdG9yeSBr
bm93cyB0aGF0IGl0J3MgcGFydGljaXBhdGluZyBpbiBzaXplIGNsYXNzIGxvb2t1cCwgYW5kIHRo
YXQgaXQKKyAgICAgICAgICAgICAgIG1pZ2h0IGJlIGZvdW5kIGFzIGVhcmx5IGluIHRoYXQgbG9v
a3VwIGFzIHRoZSBgaW5kZXhgIHRoYXQgaW5pdGlhdGVkIHRoaXMgd2hvbGUgZnVuY3Rpb24gY2Fs
bC4KKyAgICAgICAgICAgICAgIE5vdGUgdGhhdCB0aGUgY29kZSB0aGF0IGZvbGxvd3Mgd2lsbCBu
ZXZlciBpbnN0YWxsIHRoZSBkaXJlY3RvcnkgYW55d2hlcmUgbG93ZXIgdGhhbiBgaW5kZXhgLgor
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBXZSBvbmx5IGV2ZXIgc2V0IG1pbl9pbmRl
eCB1bmRlciBoZWFwX2xvY2ssIHNvIHdlIGRvbid0IGhhdmUgdG8gZG8gYW55IGtpbmQgb2YgQ0FT
LCB0aG91Z2ggdGhlCisgICAgICAgICAgICAgICBzZXQgZnVuY3Rpb24gaXMgaW1wbGVtZW50ZWQg
dXNpbmcgYSBDQVMgYmVjYXVzZSBtaW5faW5kZXggaXMgcGFydCBvZiBhbiBlbmNvZGVkIGZpZWxk
IHRoYXQKKyAgICAgICAgICAgICAgIGNvbnRhaW5zIG90aGVyIHRoaW5ncyB0aGF0IGFyZW4ndCBw
cm90ZWN0ZWQgYnkgaGVhcF9sb2NrLgorICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBG
SVhNRTogQ2FuJ3Qgd2UgYXNzZXJ0IHRoYXQgdGhlIG9sZCBtaW5faW5kZXggaXMgYmlnZ2VyIHRo
YW4gaW5kZXg/ICovCisgICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfbWluX2luZGV4KHJlc3VsdCkgPiBpbmRleCkgeworICAgICAgICAgICAgICAgIFBBU19BU1NF
UlQoKHVuc2lnbmVkKWluZGV4ID09IGluZGV4KTsKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9zZXRfbWluX2luZGV4KHJlc3VsdCwgKHVuc2lnbmVkKWluZGV4
KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgUEFTX0FTU0VS
VChwYXNfc2VncmVnYXRlZF9oZWFwX3NpemVfZGlyZWN0b3J5X2Zvcl9pbmRleChoZWFwLCBpbmRl
eCwgY2FjaGVkX2luZGV4KQorICAgICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX2hlYXBf
c2l6ZV9kaXJlY3RvcnlfZm9yX2luZGV4KGhlYXAsIGluZGV4LCBjYWNoZWRfaW5kZXgsIGNvbmZp
ZykKICAgICAgICAgICAgICAgICAgICA9PSByZXN1bHQpOwogICAgIH0KIAorICAgIGlmIChQQVNf
RU5BQkxFX1RFU1RJTkcgJiYgIWlzX3V0aWxpdHkpCisgICAgICAgIGNoZWNrX3NpemVfbG9va3Vw
X3JlY29tcHV0YXRpb24oaGVhcCwgY29uZmlnLCBjYWNoZWRfaW5kZXgpOworCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfaGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuaAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCiAjaW5jbHVkZSAicGFzX2NvbXBhY3Rf
aGVhcF9wdHIuaCIKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0jaW5jbHVkZSAicGFzX2NvdW50
X2xvb2t1cF9tb2RlLmgiCiAjaW5jbHVkZSAicGFzX2hhc2h0YWJsZS5oIgogI2luY2x1ZGUgInBh
c19oZWFwX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmgiCkBA
IC00NCw2ICs0Myw3IEBACiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
Y3JlYXRpb25fbW9kZS5oIgogI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfbW9kZS5oIgogI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2UuaCIKKyNpbmNsdWRlICJwYXNfc2l6ZV9sb29rdXBf
bW9kZS5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKQEAgLTUyLDcgKzUyLDEyIEBAIFBBU19C
RUdJTl9FWFRFUk5fQzsKICNlbmRpZgogCiBlbnVtIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVt
X3NpemVfZGlyZWN0b3J5X3NlYXJjaF9tb2RlIHsKKyAgICAvKiBHaXZlbiBhIHJlcXVlc3RlZCBp
bmRleCwgdGhlIHJldHVybmVkIGRpcmVjdG9yeSBoYXMgdG8gYmUgYmVnaW5faW5kZXggPD0gaW5k
ZXggPD0gZW5kX2luZGV4LiAqLwogICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVf
ZGlyZWN0b3J5X3NlYXJjaF93aXRoaW5fc2l6ZV9jbGFzc19wcm9ncmVzc2lvbiwKKworICAgIC8q
IEdpdmVuIGEgcmVxdWVzdGVkIGluZGV4LCB0aGUgcmV0dXJuZWQgZGlyZWN0b3J5IGhhcyB0byBi
ZSBpbmRleCA8PSBlbmRfaW5kZXggYW5kIGl0IGhhcyB0byBiZSB0aGUKKyAgICAgICBkaXJlY3Rv
cnkgd2l0aCBtaW5pbXVtIGVuZF9pbmRleCB0aGF0IG1lZXRzIHRoYXQgcHJvcGVydHkuIFNvLCBp
dCdzIHRoZSBzbWFsbGVzdC1pbmRleGVkIGRpcmVjdG9yeQorICAgICAgIHdob3NlIGFkdmVydGlz
ZWQgaW5kZXggaXMgZ3JlYXRlci10aGFuLW9yLWVxdWFsIHRvIHRoZSBpbmRleCB3ZSBhcmUgYXNr
aW5nIGZvci4gKi8KICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcmVjdG9y
eV9zZWFyY2hfbGVhc3RfZ3JlYXRlcl9lcXVhbAogfTsKIApAQCAtMTMxLDYgKzEzNiw4IEBAIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwX3JhcmVfZGF0YSB7CiAgICAgdW5zaWduZWQgbWVkaXVt
X2RpcmVjdG9yaWVzX2NhcGFjaXR5OwogfTsKIAorUEFTX0FQSSBleHRlcm4gdW5zaWduZWQgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9udW1fc2l6ZV9sb29rdXBfcmVtYXRlcmlhbGl6YXRpb25zOworCiAv
KiBOT1RFOiBpdCdzIHBvc3NpYmxlIHRvIGNvbnN0cnVjdCBhIHBhc19zZWdyZWdhdGVkX2hlYXAg
b3V0c2lkZSBhIHBhc19oZWFwLiBTdWNoIGEKICAgIHNlZ3JlZ2F0ZWRfaGVhcCB3aWxsIGFzc3Vt
ZSB0eXBlX3NpemUgPT0gMS4gKi8KIFBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9oZWFwX2Nv
bnN0cnVjdChwYXNfc2VncmVnYXRlZF9oZWFwKiBzZWdyZWdhdGVkX2hlYXAsCkBAIC0xNDIsNDAg
KzE0OSw1NCBAQCBQQVNfQVBJIHBhc19iaXRmaXRfaGVhcCogcGFzX3NlZ3JlZ2F0ZWRfCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19o
ZWFwX2NvbmZpZyogaGVhcF9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9s
ZF9tb2RlKTsKIAotc3RhdGljIGlubGluZSBzaXplX3QKLXBhc19zZWdyZWdhdGVkX2hlYXBfaW5k
ZXhfZm9yX3ByaW1pdGl2ZV9jb3VudChzaXplX3QgY291bnQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZykKK3N0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSBzaXplX3QKK3Bhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9y
X3NpemUoc2l6ZV90IHNpemUsIHBhc19oZWFwX2NvbmZpZyBjb25maWcpCiB7Ci0gICAgcmV0dXJu
IChjb3VudCArIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21pbl9hbGlnbihjb25maWcuc21h
bGxfc2VncmVnYXRlZF9jb25maWcpIC0gMSkKKyAgICByZXR1cm4gKHNpemUgKyBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19taW5fYWxpZ24oY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmln
KSAtIDEpCiAgICAgICAgID4+IGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZy5iYXNlLm1p
bl9hbGlnbl9zaGlmdDsKIH0KIAotc3RhdGljIGlubGluZSBzaXplX3QKLXBhc19zZWdyZWdhdGVk
X2hlYXBfcHJpbWl0aXZlX2NvdW50X2Zvcl9pbmRleChzaXplX3QgaW5kZXgsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZp
ZykKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBzaXplX3QKK3Bhc19zZWdyZWdhdGVkX2hlYXBf
c2l6ZV9mb3JfaW5kZXgoc2l6ZV90IGluZGV4LCBwYXNfaGVhcF9jb25maWcgY29uZmlnKQogewog
ICAgIHJldHVybiBpbmRleCA8PCBjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcuYmFzZS5t
aW5fYWxpZ25fc2hpZnQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc2l6ZV90IHBhc19zZWdyZWdhdGVk
X2hlYXBfaW5kZXhfZm9yX2NvdW50KHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
Y291bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnKQotewotICAgIC8qIEZJWE1FOiBUaGlzIGlz
IGFuIG9idmlvdXMgc291cmNlIG9mIGluZWZmaWNpZW5jeS4gU2hvdWxkIHBhc3MgdGhlIGxvb2t1
cCBraW5kIGRvd24uICovCi0gICAgaWYgKGhlYXAtPnJ1bnRpbWVfY29uZmlnLT5sb29rdXBfa2lu
ZCA9PSBwYXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9wcmltaXRpdmUpCi0gICAgICAgIGNvdW50
ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9mb3JfcHJpbWl0aXZlX2NvdW50KGNvdW50LCBj
b25maWcpOwotICAgIHJldHVybiBjb3VudDsKLX0KLQotc3RhdGljIGlubGluZSBzaXplX3QgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9jb3VudF9mb3JfaW5kZXgocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVh
cCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcpCi17Ci0gICAgLyogRklY
TUU6IFRoaXMgaXMgYW4gb2J2aW91cyBzb3VyY2Ugb2YgaW5lZmZpY2llbmN5LiBTaG91bGQgcGFz
cyB0aGUgbG9va3VwIGtpbmQgZG93bi4gKi8KLSAgICBpZiAoaGVhcC0+cnVudGltZV9jb25maWct
Pmxvb2t1cF9raW5kID09IHBhc19zZWdyZWdhdGVkX2hlYXBfbG9va3VwX3ByaW1pdGl2ZSkKLSAg
ICAgICAgaW5kZXggPSBwYXNfc2VncmVnYXRlZF9oZWFwX3ByaW1pdGl2ZV9jb3VudF9mb3JfaW5k
ZXgoaW5kZXgsIGNvbmZpZyk7Ci0gICAgcmV0dXJuIGluZGV4OwotfQorLyogVGhlc2UgZnVuY3Rp
b25zIGhlbHAgd2l0aCBkZWFsaW5nIHdpdGggcGFzX2hlYXBfcmVmOjphbGxvY2F0b3JfaW5kZXgu
IENhbiBwYXNzIGEgTlVMTCBjYWNoZWRfaW5kZXgsIGluIHdoaWNoCisgICBjYXNlIHdlIGNoZWNr
IGlmIHRoZSBpbmRleCBjb3JyZXNwb25kcyB0byB0aGUgaW5kZXggb2YgdGhlIHR5cGVfc2l6ZS4g
Tm90ZSB0aGF0IGlmIGNhY2hlZF9pbmRleCBpcyBub3QgTlVMTAorICAgdGhlbiB0aGVyZSBhcmUg
YWN0dWFsbHkgdGhyZWUgcG9zc2liaWxpdGllczoKKworICAgMSkgY2FjaGVkX2luZGV4IGlzIG5v
dCBzZXQuCisgICAyKSBjYWNoZWRfaW5kZXggaXMgc2V0IGFuZCBtYXRjaGVzIHRoZSBpbmRleC4K
KyAgIDMpIGNhY2hlZF9pbmRleCBpcyBzZXQgYW5kIGRvZXMgbm90IG1hdGNoIHRoZSBpbmRleC4g
Ki8KK1BBU19BUEkgc2l6ZV90IHBhc19zZWdyZWdhdGVkX2hlYXBfZ2V0X2NhY2hlZF9pbmRleF9m
b3JfaGVhcF90eXBlKHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVh
cF9jb25maWcqIGNvbmZpZyk7CitQQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9jYWNo
ZWRfaW5kZXhfaXNfc2V0KHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpOworUEFTX0FQSSBzaXplX3Qg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9nZXRfY2FjaGVkX2luZGV4KHBhc19zZWdyZWdhdGVkX2hlYXAq
IGhlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZyk7CitQQVNfQVBJ
IGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9pc19jYWNoZWRfaW5kZXhfYW5kX2NhY2hl
ZF9pbmRleF9pc19zZXQocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emVfdCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZp
Zyk7CitQQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9pc19jYWNoZWRfaW5k
ZXhfb3JfY2FjaGVkX2luZGV4X2lzX3Vuc2V0KHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hl
YXBfY29uZmlnKiBjb25maWcpOworUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX2hlYXBfaW5k
ZXhfaXNfbm90X2NhY2hlZF9pbmRleF9hbmRfY2FjaGVkX2luZGV4X2lzX3NldChwYXNfc2VncmVn
YXRlZF9oZWFwKiBoZWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCogY2Fj
aGVkX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKTsKK1BBU19BUEkg
Ym9vbCBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2lzX2dyZWF0ZXJfdGhhbl9jYWNoZWRfaW5k
ZXhfYW5kX2NhY2hlZF9pbmRleF9pc19zZXQoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVh
cCwKKyAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4LAorICAgIHNpemVfdCBpbmRleCwKKyAgICBw
YXNfaGVhcF9jb25maWcqIGNvbmZpZyk7CitQQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9pbmRleF9pc19ncmVhdGVyX2VxdWFsX2NhY2hlZF9pbmRleF9hbmRfY2FjaGVkX2luZGV4X2lz
X3NldCgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAorICAgIHVuc2lnbmVkKiBjYWNo
ZWRfaW5kZXgsCisgICAgc2l6ZV90IGluZGV4LAorICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmln
KTsKIAogUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGUq
CiBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGVfZm9yX2luZGV4KApA
QCAtMTk3LDYgKzIxOCwyMiBAQCBQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBwCiAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdW5zaWduZWQKK3Bhc19zZWdyZWdhdGVkX2hlYXBfYWxsb2Nh
dG9yX2luZGV4X2Zvcl9pbmRleF9pbmxpbmVfb25seShwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFw
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBpbmRleCkKK3sKKyAgICBwYXNfYWxsb2NhdG9yX2luZGV4KiBpbmRleF90b19h
bGxvY2F0b3JfaW5kZXg7CisKKyAgICBpZiAoUEFTX1VOTElLRUxZKGluZGV4ID49IChzaXplX3Qp
aGVhcC0+c21hbGxfaW5kZXhfdXBwZXJfYm91bmQpKQorICAgICAgICByZXR1cm4gMDsKKyAgICAK
KyAgICBpbmRleF90b19hbGxvY2F0b3JfaW5kZXggPSBoZWFwLT5pbmRleF90b19zbWFsbF9hbGxv
Y2F0b3JfaW5kZXg7CisgICAgaWYgKCFpbmRleF90b19hbGxvY2F0b3JfaW5kZXgpCisgICAgICAg
IHJldHVybiAwOyAvKiBHdWFyZCBhZ2FpbnN0IHJhY2VzLiAqLworICAgIAorICAgIHJldHVybiBp
bmRleF90b19hbGxvY2F0b3JfaW5kZXhbaW5kZXhdOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgdW5zaWduZWQKIHBhc19zZWdyZWdhdGVkX2hlYXBfYWxsb2NhdG9yX2luZGV4X2Zvcl9p
bmRleChwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRleCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hv
bGRfbW9kZSkKQEAgLTIxMiwxOCArMjQ5LDMxIEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfYWxsb2Nh
dG9yX2luZGV4X2Zvcl8KICAgICAKICAgICBpbmRleF90b19hbGxvY2F0b3JfaW5kZXggPSBoZWFw
LT5pbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXg7CiAgICAgaWYgKCFpbmRleF90b19hbGxv
Y2F0b3JfaW5kZXgpCi0gICAgICAgIHJldHVybiBVSU5UX01BWDsgLyogR3VhcmQgYWdhaW5zdCBy
YWNlcy4gKi8KKyAgICAgICAgcmV0dXJuIDA7IC8qIEd1YXJkIGFnYWluc3QgcmFjZXMuICovCiAg
ICAgCiAgICAgcmV0dXJuIGluZGV4X3RvX2FsbG9jYXRvcl9pbmRleFtpbmRleF07CiB9CiAKIHN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1bnNpZ25lZAotcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9hbGxv
Y2F0b3JfaW5kZXhfZm9yX2NvdW50X25vdF9wcmltaXRpdmUocGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBjb3VudCkKK3Bhc19zZWdyZWdhdGVkX2hlYXBfYWxsb2NhdG9yX2lu
ZGV4X2Zvcl9zaXplX2lubGluZV9vbmx5KHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
X3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyBoZWFwX2NvbmZpZykKIHsKICAgICBzaXplX3QgaW5k
ZXg7CiAgICAgCi0gICAgaW5kZXggPSBjb3VudDsgLyogRm9yIG5vbi1wcmltaXRpdmVzLCBpbmRl
eCBpcyBjb3VudC4gKi8KKyAgICBpbmRleCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9y
X3NpemUoc2l6ZSwgaGVhcF9jb25maWcpOworICAgIAorICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF9oZWFwX2FsbG9jYXRvcl9pbmRleF9mb3JfaW5kZXhfaW5saW5lX29ubHkoaGVhcCwgaW5kZXgp
OworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdW5zaWduZWQKK3Bhc19zZWdyZWdhdGVk
X2hlYXBfYWxsb2NhdG9yX2luZGV4X2Zvcl9zaXplKHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFw
X2NvbmZpZyBoZWFwX2NvbmZpZykKK3sKKyAgICBzaXplX3QgaW5kZXg7CisgICAgCisgICAgaW5k
ZXggPSBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9zaXplKHNpemUsIGhlYXBfY29uZmln
KTsKICAgICAKICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9hbGxvY2F0b3JfaW5kZXhf
Zm9yX2luZGV4KGhlYXAsIGluZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwpAQCAtMjMzLDEy
ICsyODMsMTIgQEAgUEFTX0FQSSB1bnNpZ25lZAogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVf
YWxsb2NhdG9yX2luZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3QgY291bnQs
Ci0gICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAorICAgIHNpemVf
dCBzaXplLAorICAgIHBhc19zaXplX2xvb2t1cF9tb2RlIHNpemVfbG9va3VwX21vZGUsCiAgICAg
cGFzX2hlYXBfY29uZmlnKiBjb25maWcsCiAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCk7CiAK
LS8qIFRoaXMgbWF5IHJldHVybiBVSU5UX01BWCBpZiBpdCBkZXRlcm1pbmVzIHRoYXQgdGhlIHdh
c3RlYWdlIGZyb20gYWxsb2NhdGluZyB0aGlzIGNvdW50IHdpdGgKKy8qIFRoaXMgbWF5IHJldHVy
biBVSU5UX01BWCBpZiBpdCBkZXRlcm1pbmVzIHRoYXQgdGhlIHdhc3RlYWdlIGZyb20gYWxsb2Nh
dGluZyB0aGlzIHNpemUgd2l0aAogICAgdGhlIHNtYWxsIGhlYXAgaXMgZ3JlYXRlciB0aGFuIHRo
ZSB3YXN0ZWFnZSBmcm9tIHJvdW5kaW5nIHVwIHRvIGxhcmdlIGFsaWdubWVudCBhbmQgYWxsb2Nh
dGluZwogICAgd2l0aCB0aGUgbGFyZ2UgYWxsb2NhdG9yLgogCkBAIC0yNDgsMjEgKzI5OCwyMSBA
QCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxvY2F0b3JfaW5kCiAKICAgIE5lZWQgdG8g
aG9sZCBoZWFwIGxvY2sgdG8gY2FsbCB0aGlzLgogCi0gICBOT1RFOiBmb3JjZV9jb3VudF9sb29r
dXAgPT0gdHJ1ZSBtZWFucyAiaXQncyBub3QgZ29vZCBlbm91Z2ggZm9yIG1lIHRvIGhhdmUgdGhp
cyBjYWNoZWQgaW4KKyAgIE5PVEU6IGZvcmNlX3NpemVfbG9va3VwID09IHRydWUgbWVhbnMgIml0
J3Mgbm90IGdvb2QgZW5vdWdoIGZvciBtZSB0byBoYXZlIHRoaXMgY2FjaGVkIGluCiAgICBiYXNp
Y19zaXplX2RpcmVjdG9yeSBzaW5jZSBJIHdpbGwgZGlyZWN0bHkgZG8gYSBsb29rdXAgaW4gaW5k
ZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4IG9yCi0gICB0aGUgcmFyZV9kYXRhIi4gZm9yY2Vf
Y291bnRfbG9va3VwID09IGZhbHNlIG1lYW5zICJwbGVhc2UgYXNzdW1lIHRoYXQgaWYgdGhpcyBj
YW4gYmUgY2FjaGVkIGluCisgICB0aGUgcmFyZV9kYXRhIi4gZm9yY2Vfc2l6ZV9sb29rdXAgPT0g
ZmFsc2UgbWVhbnMgInBsZWFzZSBhc3N1bWUgdGhhdCBpZiB0aGlzIGNhbiBiZSBjYWNoZWQgaW4K
ICAgIHRoZSBiYXNpY19zaXplX2RpcmVjdG9yeSB0aGVuIEkgd2lsbCB3YW50IHRoaXMgY2FjaGVk
IGluIHRoZSBoZWFwX3JlZiIuCiAKICAgIEZJWE1FOiBNZXJnZSB0aGVzZSB0d28gY29tbWVudHMu
ICovCiAvKiBNYXkgcmV0dXJuIE5VTEw7IHNlZSBjb21tZW50IGZvcgotICAgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9lbnN1cmVfYWxsb2NhdG9yX2luZGV4X2Zvcl9jb3VudC4gTmVlZCB0byBob2xkIGhl
YXAgbG9jayB0bworICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfYWxsb2NhdG9yX2luZGV4
X2Zvcl9zaXplLiBOZWVkIHRvIGhvbGQgaGVhcCBsb2NrIHRvCiAgICBjYWxsIHRoaXMuIE9LIHRv
IHBhc3MgTlVMTCBmb3IgY2FjaGVkX2luZGV4OyBvbmx5IHByaW1pdGl2ZV9oZWFwX3JlZidzIHVz
ZQogICAgdGhhdC4gKi8KIFBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCi1w
YXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQoCitwYXNf
c2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3Jfc2l6ZSgKICAgICBwYXNf
c2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdubWVu
dCwKLSAgICBwYXNfY291bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21vZGUsCisgICAgc2l6
ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQsCisgICAgcGFzX3NpemVfbG9va3VwX21vZGUgc2l6
ZV9sb29rdXBfbW9kZSwKICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKICAgICB1bnNpZ25l
ZCogY2FjaGVkX2luZGV4LAogICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0
aW9uX21vZGUgY3JlYXRpb25fbW9kZSk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMu
aAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw1NiAr
MjYsMTE2IEBACiAjaWZuZGVmIFBBU19TRUdSRUdBVEVEX0hFQVBfSU5MSU5FU19ICiAjZGVmaW5l
IFBBU19TRUdSRUdBVEVEX0hFQVBfSU5MSU5FU19ICiAKKyNpbmNsdWRlICJwYXNfY29tcGFjdF9l
eHBlbmRhYmxlX21lbW9yeS5oIgorI2luY2x1ZGUgInBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9y
eS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKK1BBU19B
UEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX2hlYXBfc2l6
ZV9kaXJlY3RvcnlfZm9yX2luZGV4X3Nsb3coCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVh
cCwKKyAgICBzaXplX3QgaW5kZXgsCisgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCwKKyAgICBw
YXNfaGVhcF9jb25maWcqIGNvbmZpZyk7CisKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKIHBhc19zZWdyZWdhdGVkX2hlYXBfc2l6ZV9kaXJl
Y3RvcnlfZm9yX2luZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCiAgICAgc2l6
ZV90IGluZGV4LAotICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpCisgICAgdW5zaWduZWQqIGNh
Y2hlZF9pbmRleCwKKyAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZykKIHsKICAgICBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIqIGluZGV4X3RvX3NpemVf
ZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiByZXN1bHQ7CiAg
ICAgCi0gICAgaWYgKGluZGV4ID09IChjYWNoZWRfaW5kZXggPyAqY2FjaGVkX2luZGV4IDogMSkp
IHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHJlc3VsdDsKLSAgICAg
ICAgcmVzdWx0ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyX2xvYWQoCi0gICAgICAgICAgICAmaGVhcC0+YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hl
YWQpOwotICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC0+YmFzZS5pc19iYXNpY19zaXplX2Rp
cmVjdG9yeSkKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIGlm
IChpbmRleCA+PSAoc2l6ZV90KWhlYXAtPnNtYWxsX2luZGV4X3VwcGVyX2JvdW5kKSB7Ci0gICAg
ICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcmVjdG9yeV9mb3Jf
aW5kZXgoCi0gICAgICAgICAgICBoZWFwLCBpbmRleCwKLSAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF93aXRoaW5fc2l6ZV9jbGFzc19w
cm9ncmVzc2lvbiwKLSAgICAgICAgICAgIHBhc19sb2NrX2lzX2hlbGQpOwotICAgIH0KKyAgICBp
ZiAoaW5kZXggPj0gKHNpemVfdCloZWFwLT5zbWFsbF9pbmRleF91cHBlcl9ib3VuZCkKKyAgICAg
ICAgZ290byBzbG93OwogICAgIAogICAgIGluZGV4X3RvX3NpemVfZGlyZWN0b3J5ID0gaGVhcC0+
aW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CiAgICAgaWYgKCFpbmRleF90b19zaXplX2Rp
cmVjdG9yeSkgewogICAgICAgICAvKiBDb2RlIHRoYXQgaG9sZHMgbm8gbG9ja3MgbWF5IHNlZSB0
aGlzIHNpbmNlIHdlIGhhdmUgbm8gb3JkZXJpbmcgYmV0d2VlbiB3aGVuIHRoZQogICAgICAgICAg
ICB1cHBlcl9ib3VuZCBpcyBzZXQgYW5kIHdoZW4gdGhpcyBpcyBzZXQuICovCi0gICAgICAgIHJl
dHVybiBOVUxMOworICAgICAgICBnb3RvIHNsb3c7CiAgICAgfQogICAgIAotICAgIHJldHVybiBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZChpbmRl
eF90b19zaXplX2RpcmVjdG9yeSArIGluZGV4KTsKKyAgICByZXN1bHQgPSBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZChpbmRleF90b19zaXplX2Rp
cmVjdG9yeSArIGluZGV4KTsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICByZXR1cm4gcmVzdWx0
OworCisgICAgLyogSXQncyBwb3NzaWJsZSBmb3IgYmFzaWNfc2l6ZV9kaXJlY3RvcnkgdG8gYmUg
c2V0LCB0aGUgc2l6ZSBkaXJlY3RvcnkgbG9va3VwIHRhYmxlIHRvIGJlIGNyZWF0ZWQsIGFuZAor
ICAgICAgIGZvciB0aGUgZW50cnkgY29ycmVzcG9uZGluZyB0byB0aGUgYmFzaWNfc2l6ZV9kaXJl
Y3RvcnkgdG8gYmUgdW5zZXQgaW4gdGhlIGxvb2t1cCB0YWJsZSEgKi8KKworc2xvdzoKKyAgICBy
ZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaXplX2RpcmVjdG9yeV9mb3JfaW5kZXhfc2xvdyho
ZWFwLCBpbmRleCwgY2FjaGVkX2luZGV4LCBjb25maWcpOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCi1wYXNfc2VncmVnYXRlZF9o
ZWFwX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudCgKK3Bhc19zZWdyZWdhdGVkX2hlYXBfc2l6ZV9k
aXJlY3RvcnlfZm9yX3NpemUoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICBz
aXplX3QgY291bnQsCisgICAgc2l6ZV90IHNpemUsCiAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZp
ZywKICAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4KQogewogICAgIHNpemVfdCBpbmRleDsKICAg
ICAKLSAgICBpbmRleCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9yX2NvdW50KGhlYXAs
IGNvdW50LCBjb25maWcpOworICAgIGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9m
b3Jfc2l6ZShzaXplLCBjb25maWcpOwogICAgIAotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9o
ZWFwX3NpemVfZGlyZWN0b3J5X2Zvcl9pbmRleChoZWFwLCBpbmRleCwgY2FjaGVkX2luZGV4KTsK
KyAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaXplX2RpcmVjdG9yeV9mb3JfaW5kZXgo
aGVhcCwgaW5kZXgsIGNhY2hlZF9pbmRleCwgY29uZmlnLmNvbmZpZ19wdHIpOworfQorCitzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfc2VncmVnYXRlZF9oZWFwX3RvdWNoX2xvb2t1
cF90YWJsZXMoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFzX2V4cGVuZGFibGVf
bWVtb3J5X3RvdWNoX2tpbmQga2luZCkKK3sKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX3JhcmVf
ZGF0YSogZGF0YTsKKyAgICBib29sIHJlc3VsdDsKKworICAgIHJlc3VsdCA9IGZhbHNlOworICAg
IAorICAgIGlmICghaGVhcC0+cnVudGltZV9jb25maWctPnN0YXRpY2FsbHlfYWxsb2NhdGVkKSB7
CisgICAgICAgIHVuc2lnbmVkIHNtYWxsX2luZGV4X3VwcGVyX2JvdW5kOworCisgICAgICAgIHNt
YWxsX2luZGV4X3VwcGVyX2JvdW5kID0gaGVhcC0+c21hbGxfaW5kZXhfdXBwZXJfYm91bmQ7Cisg
ICAgICAgIGlmIChzbWFsbF9pbmRleF91cHBlcl9ib3VuZCkgeworICAgICAgICAgICAgcGFzX2Fs
bG9jYXRvcl9pbmRleCogaW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4OworICAgICAgICAg
ICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKiBpbmRl
eF90b19zbWFsbF9zaXplX2RpcmVjdG9yeTsKKworICAgICAgICAgICAgaW5kZXhfdG9fc21hbGxf
YWxsb2NhdG9yX2luZGV4ID0gaGVhcC0+aW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4Owor
ICAgICAgICAgICAgaWYgKGluZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleCkgeworICAgICAg
ICAgICAgICAgIHJlc3VsdCB8PSBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnlfdG91Y2goCisg
ICAgICAgICAgICAgICAgICAgIGluZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleCwKKyAgICAg
ICAgICAgICAgICAgICAgc2l6ZW9mKHBhc19hbGxvY2F0b3JfaW5kZXgpICogc21hbGxfaW5kZXhf
dXBwZXJfYm91bmQsCisgICAgICAgICAgICAgICAgICAgIGtpbmQpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSA9IGhlYXAtPmluZGV4
X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5OworICAgICAgICAgICAgaWYgKGluZGV4X3RvX3NtYWxs
X3NpemVfZGlyZWN0b3J5KSB7CisgICAgICAgICAgICAgICAgcmVzdWx0IHw9IHBhc19sYXJnZV9l
eHBlbmRhYmxlX21lbW9yeV90b3VjaCgKKyAgICAgICAgICAgICAgICAgICAgaW5kZXhfdG9fc21h
bGxfc2l6ZV9kaXJlY3RvcnksCisgICAgICAgICAgICAgICAgICAgIHNpemVvZihwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIpICogc21hbGxfaW5kZXhfdXBw
ZXJfYm91bmQsCisgICAgICAgICAgICAgICAgICAgIGtpbmQpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfQorCisgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2hlYXBfcmFyZV9kYXRh
X3B0cl9sb2FkKCZoZWFwLT5yYXJlX2RhdGEpOworICAgIGlmIChkYXRhKSB7CisgICAgICAgIHVu
c2lnbmVkIG51bV9tZWRpdW1fZGlyZWN0b3JpZXM7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX2hl
YXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSogdHVwbGVzOworCisgICAgICAgIG51bV9tZWRpdW1f
ZGlyZWN0b3JpZXMgPSBkYXRhLT5udW1fbWVkaXVtX2RpcmVjdG9yaWVzOworICAgICAgICB0dXBs
ZXMgPSBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGVfcHRyX2xvYWQo
CisgICAgICAgICAgICAmZGF0YVtwYXNfZGVwZW5kKG51bV9tZWRpdW1fZGlyZWN0b3JpZXMpXS5t
ZWRpdW1fZGlyZWN0b3JpZXMpOworCisgICAgICAgIGlmICh0dXBsZXMpIHsKKyAgICAgICAgICAg
IHJlc3VsdCB8PSBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV90b3VjaCgKKyAgICAgICAg
ICAgICAgICB0dXBsZXMsCisgICAgICAgICAgICAgICAgbnVtX21lZGl1bV9kaXJlY3RvcmllcyAq
IHNpemVvZihwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGUpLAorICAg
ICAgICAgICAgICAgIGtpbmQpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAogUEFTX0VORF9FWFRFUk5fQzsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX21vZGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9o
ZWFwX3BhZ2Vfc2hhcmluZ19tb2RlLmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX21v
ZGUuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDEyMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChj
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX1NFR1JFR0FURURfSEVBUF9Q
QUdFX1NIQVJJTkdfTU9ERV9ICi0jZGVmaW5lIFBBU19TRUdSRUdBVEVEX0hFQVBfUEFHRV9TSEFS
SU5HX01PREVfSAotCi0jaW5jbHVkZSAicGFzX3V0aWxzLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5f
QzsKLQotZW51bSBwYXNfc2VncmVnYXRlZF9oZWFwX3BhZ2Vfc2hhcmluZ19tb2RlIHsKLSAgICBw
YXNfc2VncmVnYXRlZF9oZWFwX2ludmFsaWRfc2hhcmluZ19tb2RlLAotICAgIHBhc19zZWdyZWdh
dGVkX2hlYXBfZG9fbm90X3NoYXJlX3BhZ2VzLAotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfc2hh
cmVfcGFnZXMKLX07Ci0KLXR5cGVkZWYgZW51bSBwYXNfc2VncmVnYXRlZF9oZWFwX3BhZ2Vfc2hh
cmluZ19tb2RlIHBhc19zZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX21vZGU7Ci0KLXN0YXRp
YyBpbmxpbmUgYm9vbAotcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9wYWdlX3NoYXJpbmdfbW9kZV9kb2Vz
X2FueV9zaGFyaW5nKAotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX21vZGUg
bW9kZSkKLXsKLSAgICBzd2l0Y2ggKG1vZGUpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2hl
YXBfaW52YWxpZF9zaGFyaW5nX21vZGU6Ci0gICAgICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90
IGJlIHJlYWNoZWQiKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9kb19ub3Rfc2hhcmVfcGFnZXM6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBjYXNlIHBhc19zZWdyZWdhdGVkX2hlYXBfc2hhcmVfcGFnZXNfcGh5c2ljYWxseToKLSAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX2hlYXBfc2hhcmVfcGFnZXNfdmlydHVhbGx5OgotICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaGFyZV9wYWdlc192aXJ0dWFsbHlfYW5kX3BoeXNpY2FsbHk6
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5v
dCBiZSByZWFjaGVkIik7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgaW5saW5lIGJv
b2wKLXBhc19zZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX21vZGVfZG9lc192aXJ0dWFsX3No
YXJpbmcoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9wYWdlX3NoYXJpbmdfbW9kZSBtb2RlKQot
ewotICAgIHN3aXRjaCAobW9kZSkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbnZh
bGlkX3NoYXJpbmdfbW9kZToKLSAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVh
Y2hlZCIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9o
ZWFwX2RvX25vdF9zaGFyZV9wYWdlczoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2hlYXBfc2hh
cmVfcGFnZXNfcGh5c2ljYWxseToKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9zaGFyZV9wYWdlc192aXJ0dWFsbHk6Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9oZWFwX3NoYXJlX3BhZ2VzX3ZpcnR1YWxseV9hbmRfcGh5c2ljYWxseToKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJl
YWNoZWQiKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbAotcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9wYWdlX3NoYXJpbmdfbW9kZV9kb2VzX3BoeXNpY2FsX3NoYXJpbmco
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9wYWdlX3NoYXJpbmdfbW9kZSBtb2RlKQotewotICAg
IHN3aXRjaCAobW9kZSkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbnZhbGlkX3No
YXJpbmdfbW9kZToKLSAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIp
OwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9oZWFwX2Rv
X25vdF9zaGFyZV9wYWdlczoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2hlYXBfc2hhcmVfcGFn
ZXNfdmlydHVhbGx5OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9oZWFwX3NoYXJlX3BhZ2VzX3BoeXNpY2FsbHk6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9oZWFwX3NoYXJlX3BhZ2VzX3ZpcnR1YWxseV9hbmRfcGh5c2ljYWxseToKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQi
KTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgY29uc3QgY2hhcioKLXBh
c19zZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX21vZGVfZ2V0X3N0cmluZyhwYXNfc2VncmVn
YXRlZF9oZWFwX3BhZ2Vfc2hhcmluZ19tb2RlIG1vZGUpCi17Ci0gICAgc3dpdGNoIChtb2RlKSB7
Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9oZWFwX2ludmFsaWRfc2hhcmluZ19tb2RlOgotICAg
ICAgICByZXR1cm4gImludmFsaWRfc2hhcmluZ19tb2RlIjsKLSAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX2hlYXBfZG9fbm90X3NoYXJlX3BhZ2VzOgotICAgICAgICByZXR1cm4gImRvX25vdF9zaGFy
ZV9wYWdlcyI7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9oZWFwX3NoYXJlX3BhZ2VzX3ZpcnR1
YWxseToKLSAgICAgICAgcmV0dXJuICJzaGFyZV9wYWdlc192aXJ0dWFsbHkiOwotICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaGFyZV9wYWdlc19waHlzaWNhbGx5OgotICAgICAgICByZXR1
cm4gInNoYXJlX3BhZ2VzX3BoeXNpY2FsbHkiOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9zaGFyZV9wYWdlc192aXJ0dWFsbHlfYW5kX3BoeXNpY2FsbHk6Ci0gICAgICAgIHJldHVybiAi
c2hhcmVfcGFnZXNfdmlydHVhbGx5X2FuZF9waHlzaWNhbGx5IjsKLSAgICB9Ci0gICAgUEFTX0FT
U0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgIHJldHVybiBOVUxMOwotfQotCi1Q
QVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX1NFR1JFR0FURURfSEVBUF9QQUdFX1NI
QVJJTkdfTU9ERV9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3BhZ2UuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmMJKHJldmlzaW9uIDI4NTc4NSkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuYwko
d29ya2luZyBjb3B5KQpAQCAtMjM1LDYgKzIzNSw3IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25zdHJ1Y3QocGFzX3MKICAgICAgICAgUEFTX0FTU0VSVChwYWdlLT5vYmplY3Rfc2l6ZSA9
PSBkaXJlY3RvcnktPm9iamVjdF9zaXplKTsgLyogQ2hlY2sgZm9yIG92ZXJmbG93cy4gKi8KIAog
ICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBh
Y2l0eShkaXJlY3RvcnkpKSB7CisgICAgICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+dmll
d19jYWNoZV9pbmRleCk7CiAgICAgICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+dmlld19j
YWNoZV9pbmRleCA8IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKICAgICAgICAgICAg
IHBhZ2UtPnZpZXdfY2FjaGVfaW5kZXggPSBkaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXg7CiAg
ICAgICAgIH0gZWxzZQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfZ3JhbnVsZV91
c2VfY291bnQuaAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oCShub25leGlz
dGVudCkKQEAgLTEsOTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19TRUdSRUdBVEVEX1BBR0VfR1JBTlVMRV9VU0VfQ09V
TlRfSAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9QQUdFX0dSQU5VTEVfVVNFX0NPVU5UX0gKLQot
I2luY2x1ZGUgInBhc191dGlscy5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXR5cGVkZWYg
dWludDhfdCBwYXNfc2VncmVnYXRlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50OwotI2RlZmluZSBQ
QVNfU0VHUkVHQVRFRF9QQUdFX0dSQU5VTEVfREVDT01NSVRURUQgMjU1dSAvKiBIYXMgdG8gYmUg
dGhlIG1heCB2YWx1ZS4gKi8KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9pbmNyZW1lbnQoCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudCogdXNlX2NvdW50X3B0ciwKLSAgICB2b2lkKiBh
cmcpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudCB1c2VfY291
bnQ7Ci0KLSAgICB1c2VfY291bnQgPSAqdXNlX2NvdW50X3B0cjsKLQotICAgIFBBU19BU1NFUlQo
dXNlX2NvdW50ICE9IFBBU19TRUdSRUdBVEVEX1BBR0VfR1JBTlVMRV9ERUNPTU1JVFRFRCk7Ci0K
LSAgICB1c2VfY291bnQrKzsKLQotICAgIFBBU19BU1NFUlQodXNlX2NvdW50ICE9IFBBU19TRUdS
RUdBVEVEX1BBR0VfR1JBTlVMRV9ERUNPTU1JVFRFRCk7Ci0KLSAgICAqdXNlX2NvdW50X3B0ciA9
IHVzZV9jb3VudDsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9ncmFudWxlX2Zvcl9lYWNoX3VzZV9pbl9yYW5nZSgKLSAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50KiB1c2VfY291bnRzLAotICAgIHVpbnRwdHJfdCBi
ZWdpbiwKLSAgICB1aW50cHRyX3QgZW5kLAotICAgIHVpbnRwdHJfdCBwYWdlX3NpemUsCi0gICAg
dWludHB0cl90IGdyYW51bGVfc2l6ZSwKLSAgICB2b2lkICgqYWN0aW9uKShwYXNfc2VncmVnYXRl
ZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50KiB1c2VfY291bnQsIHZvaWQqIGFyZyksCi0gICAgdm9p
ZCogYXJnKQotewotICAgIHVpbnRwdHJfdCBpbmRleF9vZl9maXJzdF9ncmFudWxlOwotICAgIHVp
bnRwdHJfdCBpbmRleF9vZl9sYXN0X2dyYW51bGU7Ci0gICAgdWludHB0cl90IGdyYW51bGVfaW5k
ZXg7Ci0KLSAgICBpZiAoYmVnaW4gPT0gZW5kKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbmRl
eF9vZl9maXJzdF9ncmFudWxlID0gYmVnaW4gLyBncmFudWxlX3NpemU7Ci0gICAgaW5kZXhfb2Zf
bGFzdF9ncmFudWxlID0gKGVuZCAtIDEpIC8gZ3JhbnVsZV9zaXplOwotCi0gICAgUEFTX0FTU0VS
VChpbmRleF9vZl9sYXN0X2dyYW51bGUgPCBwYWdlX3NpemUgLyBncmFudWxlX3NpemUpOwotCi0g
ICAgZm9yIChncmFudWxlX2luZGV4ID0gaW5kZXhfb2ZfZmlyc3RfZ3JhbnVsZTsKLSAgICAgICAg
IGdyYW51bGVfaW5kZXggPD0gaW5kZXhfb2ZfbGFzdF9ncmFudWxlOwotICAgICAgICAgKytncmFu
dWxlX2luZGV4KQotICAgICAgICBhY3Rpb24odXNlX2NvdW50cyArIGdyYW51bGVfaW5kZXgsIGFy
Zyk7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfZ3JhbnVsZV9pbmNyZW1lbnRfdXNlc19mb3JfcmFuZ2UoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9ncmFudWxlX3VzZV9jb3VudCogdXNlX2NvdW50cywKLSAgICB1aW50cHRyX3QgYmVnaW4s
Ci0gICAgdWludHB0cl90IGVuZCwKLSAgICB1aW50cHRyX3QgcGFnZV9zaXplLAotICAgIHVpbnRw
dHJfdCBncmFudWxlX3NpemUpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ncmFudWxlX2Zv
cl9lYWNoX3VzZV9pbl9yYW5nZSgKLSAgICAgICAgdXNlX2NvdW50cywgYmVnaW4sIGVuZCwgcGFn
ZV9zaXplLCBncmFudWxlX3NpemUsCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZ3JhbnVs
ZV91c2VfY291bnRfaW5jcmVtZW50LCBOVUxMKTsKLX0KLQotUEFTX0VORF9FWFRFUk5fQzsKLQot
I2VuZGlmIC8qIFBBU19TRUdSRUdBVEVEX1BBR0VfR1JBTlVMRV9VU0VfQ09VTlRfSCAqLwotCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdl
X2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2Rl
LmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmgJKG5vbmV4aXN0ZW50
KQpAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNpZm5kZWYgUEFTX1NFR1JFR0FURURfUEFHRV9IRUFERVJfUExBQ0VNRU5UX01P
REVfSAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9QQUdFX0hFQURFUl9QTEFDRU1FTlRfTU9ERV9I
Ci0KLSNpbmNsdWRlICJwYXNfdXRpbHMuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1lbnVt
IHBhc19zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlIHsKLSAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2hlYWRlcl9hdF9oZWFkX29mX3BhZ2UsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9oZWFkZXJfYXRfaGVhZF9vZl9tZWdhcGFnZQotfTsKLQotdHlwZWRlZiBlbnVtIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
aGVhZGVyX3BsYWNlbWVudF9tb2RlOwotCi1zdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqCi1wYXNf
c2VncmVnYXRlZF9wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZV9nZXRfc3RyaW5nKAotICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlIG1vZGUpCi17Ci0gICAgc3dp
dGNoIChtb2RlKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX2hlYWRlcl9hdF9oZWFk
X29mX3BhZ2U6Ci0gICAgICAgIHJldHVybiAiYXRfaGVhZF9vZl9wYWdlIjsKLSAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX2F0X2hlYWRfb2ZfbWVnYXBhZ2U6Ci0gICAgICAgIHJl
dHVybiAiYXRfaGVhZF9vZl9tZWdhcGFnZSI7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJTaG91
bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICByZXR1cm4gTlVMTDsKLX0KLQotUEFTX0VORF9FWFRF
Uk5fQzsKLQotI2VuZGlmIC8qIFBBU19TRUdSRUdBVEVEX1BBR0VfSEVBREVSX1BMQUNFTUVOVF9N
T0RFX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0
b3J5LmMJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5jCSh3b3JraW5nIGNvcHkp
CkBAIC0yNDEsNiArMjQxLDcgQEAgdGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXcoCiAgICAg
Ym9vbCBkaWRfYWRkX3RvX2xvZzsKICAgICBib29sIHJlc3VsdDsKICAgICBib29sIGRlY29tbWl0
X3Jlc3VsdDsKKyAgICB1bnNpZ25lZCBpc19pbl91c2VfZm9yX2FsbG9jYXRpb25fY291bnQ7CiAK
ICAgICBkaXJlY3RvcnkgPSBjb25maWctPmRpcmVjdG9yeTsKICAgICBzaGFyZWRfcGFnZV9kaXJl
Y3RvcnkgPSAocGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KilkaXJlY3Rvcnk7
CkBAIC0zMzIsNiArMzMzLDE2IEBAIHRha2VfbGFzdF9lbXB0eV9jb25zaWRlcl92aWV3KAogCiAg
ICAgICAgIGdvdG8gdW5sb2NrX3RoaXNfdmlld19hbmRfcmV0dXJuX3Jlc3VsdDsKICAgICB9CisK
KyAgICAvKiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhpcyB2aWV3IGlzIGJlaW5nIHVzZWQgZm9yIGFs
bG9jYXRpb24uIE5vdGUgdGhhdCBsb29waW5nIG92ZXIgYWxsIHBhcnRpYWwgdmlld3MKKyAgICAg
ICB3b24ndCBuZWNlc3NhcmlseSBkaXNjb3ZlciB0aGlzIGZhY3QsIHNpbmNlIHRoZXJlIGNvdWxk
IGJlIGEgcHJpbW9yZGlhbCBhbGxvY2F0aW9uLCBhbmQgdGhhdCBvbmUgd29uJ3QKKyAgICAgICBi
ZSByZWdpc3RlcmVkIGFzIGEgcGFydGlhbCB2aWV3IGluIHRoZSBoYW5kbGUuICovCisgICAgaWYg
KHNoYXJlZF92aWV3LT5pc19pbl91c2VfZm9yX2FsbG9jYXRpb25fY291bnQpIHsKKyAgICAgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJJdCdzIGluIHVzZSBmb3IgYWxsb2Nh
dGlvbi5cbiIpOworCisgICAgICAgIGdvdG8gdW5sb2NrX3RoaXNfdmlld19hbmRfcmV0dXJuX3Jl
c3VsdDsKKyAgICB9CiAgICAgCiAgICAgc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5ID0g
c2hhcmVkX3ZpZXctPnNoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeTsKICAgICBzaGFyZWRf
aGFuZGxlID0gcGFzX3Vud3JhcF9zaGFyZWRfaGFuZGxlKHNoYXJlZF9oYW5kbGVfb3JfcGFnZV9i
b3VuZGFyeSwgcGFnZV9jb25maWcpOwpAQCAtMzczLDYgKzM4NCw3IEBAIHRha2VfbGFzdF9lbXB0
eV9jb25zaWRlcl92aWV3KAogICAgICAgICAgICAgcGFzX2xvZygiTWFkZSBwYXJ0aWFsICVwIGlu
ZWxpZ2libGUgdG8gdGFrZSBzaGFyZWQgJXAuXG4iLCBwYXJ0aWFsX3ZpZXcsIHNoYXJlZF92aWV3
KTsKIAogICAgICAgICBQQVNfQVNTRVJUKHBhcnRpYWxfdmlldy0+ZWxpZ2liaWxpdHlfaGFzX2Jl
ZW5fbm90ZWQpOworICAgICAgICBQQVNfQVNTRVJUKCFwYXJ0aWFsX3ZpZXctPmlzX2luX3VzZV9m
b3JfYWxsb2NhdGlvbik7CiAKICAgICAgICAgcGFydGlhbF92aWV3LT5ub3RlZF9pbl9zY2FuID0g
dHJ1ZTsKICAgICB9CkBAIC0zOTIsNyArNDA0LDI0IEBAIHRha2VfbGFzdF9lbXB0eV9jb25zaWRl
cl92aWV3KAogICAgIAogICAgIFBBU19BU1NFUlQoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9C
SVRfUkVGRVJFTkNFX0dFVChkaXJlY3RvcnksIGJpdF9yZWZlcmVuY2UsIGVtcHR5KSk7CiAgICAg
UEFTX0FTU0VSVChzaGFyZWRfdmlldy0+aXNfb3duZWQpOwotICAgIFBBU19BU1NFUlQoIXNoYXJl
ZF92aWV3LT5pc19pbl91c2VfZm9yX2FsbG9jYXRpb25fY291bnQpOworICAgIGlzX2luX3VzZV9m
b3JfYWxsb2NhdGlvbl9jb3VudCA9IHNoYXJlZF92aWV3LT5pc19pbl91c2VfZm9yX2FsbG9jYXRp
b25fY291bnQ7CisgICAgaWYgKGlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbl9jb3VudCkgeworICAg
ICAgICBwYXNfbG9nKCJFcnJvcjogc2hhcmVkIHZpZXcgJXAgKCVzKSBoYXMgaXNfaW5fdXNlX2Zv
cl9hbGxvY2F0aW9uX2NvdW50ID0gJXVcbiIsCisgICAgICAgICAgICAgICAgc2hhcmVkX3ZpZXcs
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdlX2NvbmZpZy5r
aW5kKSwKKyAgICAgICAgICAgICAgICBpc19pbl91c2VfZm9yX2FsbG9jYXRpb25fY291bnQpOwor
ICAgICAgICBmb3IgKHBhcnRpYWxfaW5kZXggPSAwOworICAgICAgICAgICAgIHBhcnRpYWxfaW5k
ZXggPCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX251bV92aWV3cyhwYWdlX2NvbmZpZyk7
CisgICAgICAgICAgICAgcGFydGlhbF9pbmRleCsrKSB7CisgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYXJ0aWFsX3ZpZXcqIHBhcnRpYWxfdmlldzsKKyAgICAgICAgICAgIHBhcnRpYWxfdmll
dyA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHJfbG9hZCgK
KyAgICAgICAgICAgICAgICBzaGFyZWRfaGFuZGxlLT5wYXJ0aWFsX3ZpZXdzICsgcGFydGlhbF9p
bmRleCk7CisgICAgICAgICAgICBpZiAoIXBhcnRpYWxfdmlldykKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgIHBhc19sb2coInBhcnRpYWxfaW5kZXggPSAlenUsIHBhcnRp
YWxfdmlldyA9ICVwLCBpc19pbl91c2VfZm9yX2FsbG9jYXRpb24gPSAlc1xuIiwKKyAgICAgICAg
ICAgICAgICAgICAgcGFydGlhbF9pbmRleCwgcGFydGlhbF92aWV3LCBwYXJ0aWFsX3ZpZXctPmlz
X2luX3VzZV9mb3JfYWxsb2NhdGlvbiA/ICJ5ZXMiIDogIm5vIik7CisgICAgICAgIH0KKyAgICAg
ICAgUEFTX0FTU0VSVCghaXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uX2NvdW50KTsKKyAgICB9CiAK
ICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZp
ZykpIHsKICAgICAgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA9PSBw
YWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0
b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDEzICszNywxNSBAQCB0eXBlZGVmIHN0cnVjdCBw
YXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnCiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3Bh
Z2VfZGlyZWN0b3J5IHsKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkgYmFzZTsKICAgICBw
YXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkqIG5leHQ7CisgICAgdm9pZCogZHVt
cF9hcmc7CiB9OwogCi0jZGVmaW5lIFBBU19TRUdSRUdBVEVEX1NIQVJFRF9QQUdFX0RJUkVDVE9S
WV9JTklUSUFMSVpFUihwYWdlX2NvbmZpZywgc2hhcmluZ19tb2RlKSBcCisjZGVmaW5lIFBBU19T
RUdSRUdBVEVEX1NIQVJFRF9QQUdFX0RJUkVDVE9SWV9JTklUSUFMSVpFUihwYWdlX2NvbmZpZywg
c2hhcmluZ19tb2RlLCBwYXNzZWRfZHVtcF9hcmcpIFwKICAgICAoKHBhc19zZWdyZWdhdGVkX3No
YXJlZF9wYWdlX2RpcmVjdG9yeSl7IFwKICAgICAgICAgIC5iYXNlID0gUEFTX1NFR1JFR0FURURf
RElSRUNUT1JZX0lOSVRJQUxJWkVSKCBcCiAgICAgICAgICAgICAgICAgICAgICAocGFnZV9jb25m
aWcpLmtpbmQsIChzaGFyaW5nX21vZGUpLCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJl
Y3Rvcnlfa2luZCksIFwKLSAgICAgICAgIC5uZXh0ID0gTlVMTCBcCisgICAgICAgICAubmV4dCA9
IE5VTEwsIFwKKyAgICAgICAgIC5kdW1wX2FyZyA9IChwYXNzZWRfZHVtcF9hcmcpIFwKICAgICAg
fSkKIAogZXh0ZXJuIFBBU19BUEkgdW5zaWduZWQgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2Vf
ZGlyZWN0b3J5X3Byb2JhYmlsaXR5X29mX2luZWxpZ2liaWxpdHk7CkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmMJKHdvcmtp
bmcgY29weSkKQEAgLTk3LDggKzk3LDEwIEBAIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBwYXNfc2VncmUKICAgICBQQVNfQVNTRVJUKHBhc19pc19wb3dlcl9vZl8yKGFsaWdubWVudCkp
OwogICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQob2JqZWN0X3NpemUsIGFsaWdubWVudCkp
OwogICAgIHJlc3VsdC0+YWxpZ25tZW50X3NoaWZ0ID0gcGFzX2xvZzIoYWxpZ25tZW50KTsKKwor
ICAgIHJlc3VsdC0+ZW5jb2RlZF9zdHVmZiA9CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2VuY29kZV9zdHVmZigyICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTLCBV
SU5UX01BWCk7CiAgICAgCi0gICAgcmVzdWx0LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSAy
ICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTOwogICAgIHJlc3VsdC0+dmlld19jYWNoZV9p
bmRleCA9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYOwogICAgIAogICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX3N0b3JlKCZyZXN1bHQtPmRhdGEsIE5VTEwp
OwpAQCAtMTkxLDcgKzE5Myw3IEBAIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEq
IHBhc18KICAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVj
dCA9IDA7CiAgICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFz
dF9vYmplY3QgPSAwOwogICAgIGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9IDA7Ci0g
ICAgZGF0YS0+YWxsb2NhdG9yX2luZGV4ID0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7
CisgICAgZGF0YS0+YWxsb2NhdG9yX2luZGV4ID0gMDsKICAgICBwYXNfY29tcGFjdF9hdG9taWNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3N0b3JlKCZkYXRhLT5uZXh0X2Zvcl9sYXlv
dXQsIE5VTEwpOwogCiAgICAgcGFzX2ZlbmNlKCk7CkBAIC0yMjksMTEgKzIzMSwxNCBAQCB2b2lk
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0CiAKICAgICBkYXRhID0gcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZW5zdXJlX2RhdGEoZGlyZWN0b3J5LCBwYXNfbG9ja19p
c19oZWxkKTsKIAotICAgIGlmIChkYXRhLT5hbGxvY2F0b3JfaW5kZXggIT0gKHBhc19hbGxvY2F0
b3JfaW5kZXgpVUlOVF9NQVgpCisgICAgaWYgKGRhdGEtPmFsbG9jYXRvcl9pbmRleCkgeworICAg
ICAgICBQQVNfQVNTRVJUKGRhdGEtPmFsbG9jYXRvcl9pbmRleCAhPSAocGFzX2FsbG9jYXRvcl9p
bmRleClVSU5UX01BWCk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgCiAgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkKGRpcmVjdG9yeSk7Ci0gICAgCisKKyAgICBQQVNf
QVNTRVJUKGRhdGEtPmFsbG9jYXRvcl9pbmRleCk7CiAgICAgUEFTX0FTU0VSVChkYXRhLT5hbGxv
Y2F0b3JfaW5kZXggPCAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7CiB9CiAKQEAgLTI1
Niw3ICsyNjEsOCBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0CiAg
ICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXggPT0gKHBhc19hbGxvY2F0
b3JfaW5kZXgpVUlOVF9NQVgpOwogICAgIAogICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X2FkZF92aWV3X2NhY2hlKGRpcmVjdG9yeSk7Ci0gICAgCisKKyAgICBQQVNfQVNTRVJUKGRp
cmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCk7CiAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPnZp
ZXdfY2FjaGVfaW5kZXggPCAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7CiAKICAgICBm
b3IgKGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeS0+YmFz
ZSk7IGluZGV4LS07KSB7CkBAIC00MjEsMTMgKzQyNywxMyBAQCBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9zZWxlY3RfYWxsCiAgICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3IqIHNl
bGVjdGVkX2FsbG9jYXRvcjsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
IHNlbGVjdGVkX2RpcmVjdG9yeTsKIAotICAgICAgICBzZWxlY3RlZF9pbmRleCA9IGRpcmVjdG9y
eS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4OworICAgICAgICBzZWxlY3RlZF9pbmRleCA9IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Jhc2VsaW5lX2FsbG9jYXRvcl9pbmRleChkaXJl
Y3RvcnkpOwogICAgICAgICBpZiAoc2VsZWN0ZWRfaW5kZXggPCBQQVNfTlVNX0JBU0VMSU5FX0FM
TE9DQVRPUlMpIHsKICAgICAgICAgICAgIHNlbGVjdGVkX2FsbG9jYXRvciA9IHBhc19iYXNlbGlu
ZV9hbGxvY2F0b3JfdGFibGUgKyBzZWxlY3RlZF9pbmRleDsKIAogICAgICAgICAgICAgcGFzX2xv
Y2tfbG9jaygmc2VsZWN0ZWRfYWxsb2NhdG9yLT5sb2NrKTsKIAotICAgICAgICAgICAgaWYgKGRp
cmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ICE9IHNlbGVjdGVkX2luZGV4KSB7Cisg
ICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYmFzZWxpbmVfYWxs
b2NhdG9yX2luZGV4KGRpcmVjdG9yeSkgIT0gc2VsZWN0ZWRfaW5kZXgpIHsKICAgICAgICAgICAg
ICAgICBwYXNfbG9ja191bmxvY2soJnNlbGVjdGVkX2FsbG9jYXRvci0+bG9jayk7CiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CkBAIC00NjQsOSArNDcwLDEwIEBAIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGwKICAgICAgICAgICAgICAgICAg
ICAgc2VsZWN0ZWRfaW5kZXggPSBiX2luZGV4OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBpZiAoIXBhc19jb21wYXJlX2FuZF9zd2FwX3VpbnQxNl93ZWFrKCZkaXJlY3RvcnktPmJhc2Vs
aW5lX2FsbG9jYXRvcl9pbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFTX05VTV9CQVNFTElO
RV9BTExPQ0FUT1JTICsgc2VsZWN0ZWRfaW5kZXgpKQorICAgICAgICAgICAgaWYgKCFwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jb21wYXJlX2FuZF9zd2FwX2Jhc2VsaW5lX2FsbG9jYXRv
cl9pbmRleF93ZWFrKAorICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksCisgICAgICAgICAg
ICAgICAgICAgIDIgKiBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMsCisgICAgICAgICAgICAg
ICAgICAgIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUyArIHNlbGVjdGVkX2luZGV4KSkKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgIApAQCAtNDc0LDEwICs0ODEs
MTEgQEAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbAogICAgIAogICAg
ICAgICBwYXNfbG9ja19sb2NrKCZzZWxlY3RlZF9hbGxvY2F0b3ItPmxvY2spOwogCi0gICAgICAg
IGlmIChkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCA9PSBzZWxlY3RlZF9pbmRl
eCkKKyAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Jhc2VsaW5lX2Fs
bG9jYXRvcl9pbmRleChkaXJlY3RvcnkpID09IHNlbGVjdGVkX2luZGV4KQogICAgICAgICAgICAg
cmV0dXJuIHNlbGVjdGVkX2FsbG9jYXRvcjsKIAotICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNl
bGluZV9hbGxvY2F0b3JfaW5kZXggIT0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTICsgc2Vs
ZWN0ZWRfaW5kZXgpIHsKKyAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2Jhc2VsaW5lX2FsbG9jYXRvcl9pbmRleChkaXJlY3RvcnkpCisgICAgICAgICAgICAhPSBQQVNf
TlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMgKyBzZWxlY3RlZF9pbmRleCkgewogICAgICAgICAgICAg
cGFzX2xvY2tfdW5sb2NrKCZzZWxlY3RlZF9hbGxvY2F0b3ItPmxvY2spOwogICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgIH0KQEAgLTQ4NiwxMyArNDk0LDE0IEBAIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGwKICAgICAgICAgICAgIHBhc19udW1fYmFzZWxpbmVf
YWxsb2NhdG9yX2V2aWN0aW9ucysrOwogICAgICAgICAgICAgc2VsZWN0ZWRfZGlyZWN0b3J5ID0g
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnkoc2VsZWN0ZWRfYWxsb2NhdG9y
LT51LmFsbG9jYXRvci52aWV3KTsKICAgICAgICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3Jf
ZGV0YWNoX2RpcmVjdG9yeShzZWxlY3RlZF9hbGxvY2F0b3IpOwotICAgICAgICAgICAgcGFzX2Zl
bmNlKCk7Ci0gICAgICAgICAgICBzZWxlY3RlZF9kaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRv
cl9pbmRleCA9IDIgKiBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlM7CisgICAgICAgICAgICAv
KiBXZSByZWx5IG9uIHRoZSBzZXQgZnVuY3Rpb24gaGF2aW5nIGEgZmVuY2UgYmVjYXVzZSBpdCB1
c2VzIGEgQ0FTLiAqLworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
c2V0X2Jhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCgKKyAgICAgICAgICAgICAgICBzZWxlY3RlZF9k
aXJlY3RvcnksIDIgKiBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMpOwogICAgICAgICB9CiAK
ICAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9hdHRhY2hfZGlyZWN0b3J5KHNlbGVjdGVk
X2FsbG9jYXRvciwgZGlyZWN0b3J5KTsKIAotICAgICAgICBkaXJlY3RvcnktPmJhc2VsaW5lX2Fs
bG9jYXRvcl9pbmRleCA9IHNlbGVjdGVkX2luZGV4OworICAgICAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9zZXRfYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4KGRpcmVjdG9yeSwgc2Vs
ZWN0ZWRfaW5kZXgpOwogCiAgICAgICAgIHJldHVybiBzZWxlY3RlZF9hbGxvY2F0b3I7CiAgICAg
fQpAQCAtODc4LDggKzg4Nyw4IEBAIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBwYXNf
c2VncmUKIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0CiBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9nZXRfYWxsb2NhdG9yX2Zyb21fdGxjKAogICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgc2l6ZV90IGNvdW50LAotICAgIHBhc19jb3Vu
dF9sb29rdXBfbW9kZSBjb3VudF9sb29rdXBfbW9kZSwKKyAgICBzaXplX3Qgc2l6ZSwKKyAgICBw
YXNfc2l6ZV9sb29rdXBfbW9kZSBzaXplX2xvb2t1cF9tb2RlLAogICAgIHBhc19oZWFwX2NvbmZp
ZyogY29uZmlnLAogICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpCiB7CkBAIC04OTMsMTUgKzkw
MiwxNSBAQCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfYWxsb2NhCiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfYWxsb2NhdG9yX2luZGV4KAogICAgICAgICBkaXJlY3Rv
cnktPmhlYXAsCiAgICAgICAgIGRpcmVjdG9yeSwKLSAgICAgICAgY291bnQsCi0gICAgICAgIGNv
dW50X2xvb2t1cF9tb2RlLAorICAgICAgICBzaXplLAorICAgICAgICBzaXplX2xvb2t1cF9tb2Rl
LAogICAgICAgICBjb25maWcsCiAgICAgICAgIGNhY2hlZF9pbmRleCk7CiAgICAgcGFzX2hlYXBf
bG9ja191bmxvY2soKTsKIAogICAgIC8qIEN1cnJlbnRseSBhcyBzb29uIGFzIHdlIHN3aXRjaCB0
byBUTEMgYWxsb2NhdG9ycywgd2UgY2Fubm90IHBvc3NpYmx5IGhhdmUgYSBiYXNlbGluZQogICAg
ICAgIGFsbG9jYXRvci4gQnV0IGlmIHdlIGRvLCB3ZSBzaG91bGQgc3RvcCBpdCBub3cuICovCi0g
ICAgYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0gZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0
b3JfaW5kZXg7CisgICAgYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4KGRpcmVjdG9yeSk7CiAgICAg
aWYgKGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCA8IFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9S
UykgewogICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBiYXNlbGluZV9hbGxvY2F0b3I7
CiAgICAgICAgIApAQCAtOTEzLDE2ICs5MjIsMTcgQEAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfZ2V0X2FsbG9jYQogICAgICAgICAgICBlbHNlLiBBdCB3b3JzdCwgdGhhdCByYWNlIHdp
bGwgbWVhbiB0aGF0IHNvbWUgYmFzZWxpbmUgYWxsb2NhdG9yIHdpbGwgYmUgdXNlZCBmb3IKICAg
ICAgICAgICAgYWxsb2NhdGlvbi4gVGhlcmUncyBub3QgYSB3aG9sZSBsb3Qgd2UgY2FuIGRvIGFi
b3V0IHRoYXQuIEF0IHdvcnN0LCBpdCBtZWFucyBsZXR0aW5nIHRoZQogICAgICAgICAgICBoaWdo
IHdhdGVybWFyayBncm93IGEgYml0IGluIGNhc2Ugb2YgYSB3ZWlyZCByYWNlLiAqLwotICAgICAg
ICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPT0gYmFzZWxpbmVfYWxs
b2NhdG9yX2luZGV4KSB7CisgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXgoZGlyZWN0b3J5KSA9PSBiYXNlbGluZV9hbGxvY2F0
b3JfaW5kZXgpIHsKICAgICAgICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfZGV0YWNoX2Rp
cmVjdG9yeShiYXNlbGluZV9hbGxvY2F0b3IpOwotICAgICAgICAgICAgcGFzX2ZlbmNlKCk7Ci0g
ICAgICAgICAgICBkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCA9IDIgKiBQQVNf
TlVNX0JBU0VMSU5FX0FMTE9DQVRPUlM7CisgICAgICAgICAgICAvKiBXZSByZWx5IG9uIHRoZSBz
ZXQgZnVuY3Rpb24gaGF2aW5nIGEgZmVuY2UgYmVjYXVzZSBpdCB1c2VzIGEgQ0FTLiAqLworICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2V0X2Jhc2VsaW5lX2FsbG9j
YXRvcl9pbmRleCgKKyAgICAgICAgICAgICAgICBkaXJlY3RvcnksIDIgKiBQQVNfTlVNX0JBU0VM
SU5FX0FMTE9DQVRPUlMpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBwYXNfbG9ja191
bmxvY2soJmJhc2VsaW5lX2FsbG9jYXRvci0+bG9jayk7CiAgICAgfQogICAgIAotICAgIHRsY19y
ZXN1bHQgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3IoCisgICAg
dGxjX3Jlc3VsdCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9m
b3JfaW5pdGlhbGl6ZWRfaW5kZXgoCiAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0
KGNvbmZpZyksCiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRy
X2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSktPmFsbG9jYXRvcl9pbmRleCwKICAgICAg
ICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwpAQCAtMTA0NSw2ICsxMDU1LDExIEBAIHBhc19hbGxv
Y2F0b3JfaW5kZXggcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV8KIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfZHVtcF9yZWZlcmVuY2UoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwgcGFzX3N0cmVhbSogc3RyZWFtKQogeworICAgIGlmICghZGlyZWN0
b3J5KSB7CisgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIm51bGwiKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAKICAgICBwYXNfc3RyZWFtX3ByaW50ZigKICAgICAgICAg
c3RyZWFtLAogICAgICAgICAiJXAoc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSwgJXUsICVwLCAl
cykiLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oCShyZXZpc2lvbiAyODU3
ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCwxNiArNjAsMjUgQEAgc3RydWN0
IFBBU19BTElHTkVEKHNpemVvZihwYXNfdmVyc2lvbmVkXwogICAgIHVuc2lnbmVkIG9iamVjdF9z
aXplIDogMjc7CiAgICAgdW5zaWduZWQgYWxpZ25tZW50X3NoaWZ0IDogNTsKIAotICAgIC8qIFRo
aXMgaGFzIGEgZnVubnkgZW5jb2RpbmcgKGxldCBOID0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FU
T1JTKToKKyAgICAvKiBUaGlzIGhvbGRzIHR3byBmaWVsZHMgdGhhdCBuZWVkIHRvIGJlIENBU2Fi
bGUsIHNvIHdlIGRvbid0IHdhbnQgdXNlIGEgYml0ZmllbGQ6CiAgICAgICAgCi0gICAgICAgaW5k
ZXggaW4gWzAsIE4pICAgICA9PiBhdHRhY2hlZCB0byBpbmRleAotICAgICAgIGluZGV4IGluIFtO
LCAyTikgICAgPT4gYXR0YWNoaW5nIHRvIGluZGV4IC0gTgotICAgICAgIDJOICAgICAgICAgICAg
ICAgICAgPT4gZGV0YWNoZWQKLSAgICAgICAKLSAgICAgICBJbiB0aGUgZGV0YWNoZWQgc3RhdGUs
IHRoZSBvbmx5IHdheSB0byBjaGFuZ2UgdGhpcyBpcyB0byBDQVMgaXQuCi0gICAgICAgCi0gICAg
ICAgSW4gdGhlIGF0dGFjaGVkIGFuZCBhdHRhY2hpbmcgc3RhdGVzLCB0aGUgY29ycmVzcG9uZGlu
ZyBpbmRleCdzIGxvY2sgcHJvdGVjdHMgdGhpcyBmaWVsZC4gKi8KLSAgICB1aW50MTZfdCBiYXNl
bGluZV9hbGxvY2F0b3JfaW5kZXg7CisgICAgICAgLSBiYXNlbGluZV9hbGxvY2F0b3JfaW5kZXgK
KyAgICAgICAgICAgICA9PiBUaGlzIGhhcyBhIGZ1bm55IGVuY29kaW5nIChsZXQgTiA9IFBBU19O
VU1fQkFTRUxJTkVfQUxMT0NBVE9SUyk6CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgaW5kZXggaW4gWzAsIE4pICAgICA9PiBhdHRhY2hlZCB0byBpbmRleAorICAgICAgICAgICAg
ICAgIGluZGV4IGluIFtOLCAyTikgICAgPT4gYXR0YWNoaW5nIHRvIGluZGV4IC0gTgorICAgICAg
ICAgICAgICAgIDJOICAgICAgICAgICAgICAgICAgPT4gZGV0YWNoZWQKKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBJbiB0aGUgZGV0YWNoZWQgc3RhdGUsIHRoZSBvbmx5IHdheSB0
byBjaGFuZ2UgdGhpcyBpcyB0byBDQVMgaXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgSW4gdGhlIGF0dGFjaGVkIGFuZCBhdHRhY2hpbmcgc3RhdGVzLCB0aGUgY29ycmVzcG9u
ZGluZyBpbmRleCdzIGxvY2sgcHJvdGVjdHMgdGhpcyBmaWVsZC4KKyAgICAKKyAgICAgICAtIG1p
bl9pbmRleAorICAgICAgICAgICAgID0+IFRoaXMgaXMgdGhlIGZpcnN0IGluZGV4IGF0IHdoaWNo
IHRoaXMgZGlyZWN0b3J5IGlzIGluc3RhbGxlZCBpbiBpdHMgaGVhcC4gSXQncyB1c2VkIHRvIGVu
YWJsZQorICAgICAgICAgICAgICAgIHJlbWF0ZXJpYWxpemF0aW9uIG9mIHRoZSBzaXplIGNsYXNz
IGxvb2t1cCB0YWJsZXMuIFRoaXMgZmllbGQgY2FuIGJlIGFsbC1vbmVzIChVSU5UX01BWCBjaG9w
cGVkCisgICAgICAgICAgICAgICAgdG8gd2hhdGV2ZXIgc2l6ZSB0aGUgZmllbGQgaGFzKSB0byBp
bmRpY2F0ZSB0aGF0IHRoZSBkaXJlY3RvcnkgaXMgbm90IGN1cnJlbnRseSBwYXJ0aWNpcGF0aW5n
IGluCisgICAgICAgICAgICAgICAgc2l6ZSBsb29rdXAuICovCisgICAgdW5zaWduZWQgZW5jb2Rl
ZF9zdHVmZjsKIAogICAgIHBhc19hbGxvY2F0b3JfaW5kZXggdmlld19jYWNoZV9pbmRleDsgLyog
VGhpcyBjb3VsZCBiZSBpbiB0aGUgc2l6ZV9kaXJlY3RvcnlfZGF0YSBidXQgd2UgcHV0IGl0IGhl
cmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlY2F1c2Ug
aXQgdGFrZXMgbGVzcyBzcGFjZSB0byBwdXQgaXQgaGVyZS4gKi8KQEAgLTk4LDE2ICsxMDcsNjIg
QEAgc3RydWN0IHBhc19leHRlbmRlZF9zZWdyZWdhdGVkX3NpemVfZGlyZQogICAgIHBhc19jb21w
YWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ciBmdWxsX3VzZV9jb3VudHM7CiB9
OwogCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3ZpZXcKLXBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2FzX3ZpZXcocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSkKKyNkZWZpbmUgUEFTX1NFR1JFR0FURURfU0laRV9ESVJFQ1RPUllfQkFTRUxJTkVfQUxM
T0NBVE9SX0lOREVYX0JJVFMgN3UKKyNkZWZpbmUgUEFTX1NFR1JFR0FURURfU0laRV9ESVJFQ1RP
UllfTUlOX0lOREVYX0JJVFMgICAgICAgICAgICAgICAgMjV1CisKK19TdGF0aWNfYXNzZXJ0KFBB
U19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX0JBU0VMSU5FX0FMTE9DQVRPUl9JTkRFWF9CSVRT
CisgICAgICAgICAgICAgICArIFBBU19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX01JTl9JTkRF
WF9CSVRTCisgICAgICAgICAgICAgICA9PSAzMnUsCisgICAgICAgICAgICAgICAiZW5jb2RlZF9z
dHVmZiBmaWVsZCBzaG91bGQgdXNlIGV4YWN0bHkgMzIgYml0cyIpOworCisjZGVmaW5lIFBBU19T
RUdSRUFHVEVEX1NJWkVfRElSRUNUT1JZX0JBU0VMSU5FX0FMTE9DQVRPUl9JTkRFWF9TSElGVCAw
dQorI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9SWV9CQVNFTElORV9BTExPQ0FU
T1JfSU5ERVhfTUFTSyBcCisgICAgKCgxdSA8PCBQQVNfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9S
WV9CQVNFTElORV9BTExPQ0FUT1JfSU5ERVhfQklUUykgLSAxdSkKKyNkZWZpbmUgUEFTX1NFR1JF
R0FURURfU0laRV9ESVJFQ1RPUllfTUlOX0lOREVYX1NISUZUIFwKKyAgICBQQVNfU0VHUkVHQVRF
RF9TSVpFX0RJUkVDVE9SWV9CQVNFTElORV9BTExPQ0FUT1JfSU5ERVhfQklUUworI2RlZmluZSBQ
QVNfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9SWV9NSU5fSU5ERVhfTUFTSyBcCisgICAgKCgxdSA8
PCBQQVNfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9SWV9NSU5fSU5ERVhfQklUUykgLSAxdSkKKwor
c3RhdGljIGlubGluZSB1bnNpZ25lZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kZWNv
ZGVfYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4KHVuc2lnbmVkIGVuY29kZWRfc3R1ZmYpCiB7Ci0g
ICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfY3JlYXRlKGRpcmVjdG9yeSwgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19raW5kKTsKKyAgICByZXR1cm4gKGVuY29kZWRfc3R1
ZmYgPj4gUEFTX1NFR1JFQUdURURfU0laRV9ESVJFQ1RPUllfQkFTRUxJTkVfQUxMT0NBVE9SX0lO
REVYX1NISUZUKQorICAgICAgICAmIFBBU19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX0JBU0VM
SU5FX0FMTE9DQVRPUl9JTkRFWF9NQVNLOwogfQogCi1zdGF0aWMgaW5saW5lIHNpemVfdAotcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnkpCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2RlY29kZV9taW5faW5kZXgodW5zaWduZWQgZW5jb2RlZF9zdHVm
ZikKIHsKLSAgICByZXR1cm4gKHNpemVfdCkxIDw8IChzaXplX3QpZGlyZWN0b3J5LT5hbGlnbm1l
bnRfc2hpZnQ7CisgICAgdW5zaWduZWQgcmVzdWx0OworCisgICAgcmVzdWx0ID0gKGVuY29kZWRf
c3R1ZmYgPj4gUEFTX1NFR1JFR0FURURfU0laRV9ESVJFQ1RPUllfTUlOX0lOREVYX1NISUZUKQor
ICAgICAgICAmIFBBU19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX01JTl9JTkRFWF9NQVNLOwor
CisgICAgaWYgKHJlc3VsdCA9PSBQQVNfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9SWV9NSU5fSU5E
RVhfTUFTSykKKyAgICAgICAgcmV0dXJuIFVJTlRfTUFYOworCisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9lbmNvZGVfc3R1ZmYodW5zaWduZWQgYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgbWluX2luZGV4KQoreworICAgIHVuc2lnbmVkIHJlc3VsdDsKKworICAgIHJl
c3VsdCA9CisgICAgICAgIChiYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPDwgUEFTX1NFR1JFQUdU
RURfU0laRV9ESVJFQ1RPUllfQkFTRUxJTkVfQUxMT0NBVE9SX0lOREVYX1NISUZUKSB8CisgICAg
ICAgICgobWluX2luZGV4ICYgUEFTX1NFR1JFR0FURURfU0laRV9ESVJFQ1RPUllfTUlOX0lOREVY
X01BU0spCisgICAgICAgICA8PCBQQVNfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9SWV9NSU5fSU5E
RVhfU0hJRlQpOworCisgICAgUEFTX0FTU0VSVCgKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfZGVjb2RlX2Jhc2VsaW5lX2FsbG9jYXRvcl9pbmRleChyZXN1bHQpID09IGJh
c2VsaW5lX2FsbG9jYXRvcl9pbmRleCk7CisgICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9kZWNvZGVfbWluX2luZGV4KHJlc3VsdCkgPT0gbWluX2luZGV4KTsKKwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmll
dworcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYXNfdmlldyhwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92
aWV3X2NyZWF0ZShkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdf
a2luZCk7CiB9CiAKIFBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZSgKQEAgLTEyMCw2ICsxNzUsODUgQEAgUEFT
X0FQSSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcAogCiBQQVNfQVBJIHZvaWQgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZmluaXNoX2NyZWF0aW9uKHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwogCitzdGF0aWMgaW5saW5lIHNpemVfdAorcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgcmV0dXJuIChzaXplX3QpMSA8PCAoc2l6ZV90
KWRpcmVjdG9yeS0+YWxpZ25tZW50X3NoaWZ0OworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVk
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Jhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCgK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHJl
dHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kZWNvZGVfYmFzZWxpbmVfYWxsb2Nh
dG9yX2luZGV4KGRpcmVjdG9yeS0+ZW5jb2RlZF9zdHVmZik7Cit9CisKK3N0YXRpYyBpbmxpbmUg
dW5zaWduZWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbWluX2luZGV4KHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgcmV0dXJuIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RlY29kZV9taW5faW5kZXgoZGlyZWN0b3J5LT5lbmNvZGVk
X3N0dWZmKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X3NldF9iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXgoCisgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgdW5zaWduZWQgbmV3X2Jhc2VsaW5lX2FsbG9jYXRv
cl9pbmRleCkKK3sKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIHVuc2lnbmVkIG9sZF9zdHVmZjsK
KyAgICAgICAgdW5zaWduZWQgbmV3X3N0dWZmOworCisgICAgICAgIG9sZF9zdHVmZiA9IGRpcmVj
dG9yeS0+ZW5jb2RlZF9zdHVmZjsKKyAgICAgICAgbmV3X3N0dWZmID0gcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZW5jb2RlX3N0dWZmKAorICAgICAgICAgICAgbmV3X2Jhc2VsaW5lX2Fs
bG9jYXRvcl9pbmRleCwKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2RlY29kZV9taW5faW5kZXgob2xkX3N0dWZmKSk7CisKKyAgICAgICAgaWYgKHBhc19jb21wYXJl
X2FuZF9zd2FwX3VpbnQzMl93ZWFrKCZkaXJlY3RvcnktPmVuY29kZWRfc3R1ZmYsIG9sZF9zdHVm
ZiwgbmV3X3N0dWZmKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jb21wYXJlX2FuZF9zd2Fw
X2Jhc2VsaW5lX2FsbG9jYXRvcl9pbmRleF93ZWFrKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgdW5zaWduZWQgZXhwZWN0ZWRfYmFzZWxpbmVfYWxs
b2NhdG9yX2luZGV4LAorICAgIHVuc2lnbmVkIG5ld19iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXgp
Cit7CisgICAgLyogV2UgaGF2ZSBhbiBlYXJseSByZXR1cm4gaGVyZSwgc28gdXNlIHRoaXMgdG8g
bWFrZSBzdXJlIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgZ2V0IGFueSBmdW5ueSBpZGVhcy4g
Ki8KKyAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKKyAgICAKKyAgICBmb3IgKDs7KSB7CisgICAg
ICAgIHVuc2lnbmVkIG9sZF9zdHVmZjsKKyAgICAgICAgdW5zaWduZWQgbmV3X3N0dWZmOworCisg
ICAgICAgIG9sZF9zdHVmZiA9IGRpcmVjdG9yeS0+ZW5jb2RlZF9zdHVmZjsKKyAgICAgICAgaWYg
KHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RlY29kZV9iYXNlbGluZV9hbGxvY2F0b3Jf
aW5kZXgob2xkX3N0dWZmKQorICAgICAgICAgICAgIT0gZXhwZWN0ZWRfYmFzZWxpbmVfYWxsb2Nh
dG9yX2luZGV4KSB7CisgICAgICAgICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsgLyogUHV0IHRo
ZSBjb21waWxlciBpbiBpdHMgcGxhY2UuICovCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG5ld19zdHVmZiA9IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2VuY29kZV9zdHVmZigKKyAgICAgICAgICAgIG5ld19iYXNlbGluZV9hbGxv
Y2F0b3JfaW5kZXgsCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9k
ZWNvZGVfbWluX2luZGV4KG9sZF9zdHVmZikpOworCisgICAgICAgIGlmIChwYXNfY29tcGFyZV9h
bmRfc3dhcF91aW50MzJfd2VhaygmZGlyZWN0b3J5LT5lbmNvZGVkX3N0dWZmLCBvbGRfc3R1ZmYs
IG5ld19zdHVmZikpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK3N0YXRp
YyBpbmxpbmUgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9zZXRfbWluX2luZGV4
KHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgbmV3X21pbl9pbmRleCkKK3sKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIHVuc2lnbmVk
IG9sZF9zdHVmZjsKKyAgICAgICAgdW5zaWduZWQgbmV3X3N0dWZmOworCisgICAgICAgIG9sZF9z
dHVmZiA9IGRpcmVjdG9yeS0+ZW5jb2RlZF9zdHVmZjsKKyAgICAgICAgbmV3X3N0dWZmID0gcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZW5jb2RlX3N0dWZmKAorICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGVjb2RlX2Jhc2VsaW5lX2FsbG9jYXRvcl9pbmRl
eChvbGRfc3R1ZmYpLAorICAgICAgICAgICAgbmV3X21pbl9pbmRleCk7CisKKyAgICAgICAgaWYg
KHBhc19jb21wYXJlX2FuZF9zd2FwX3VpbnQzMl93ZWFrKCZkaXJlY3RvcnktPmVuY29kZWRfc3R1
ZmYsIG9sZF9zdHVmZiwgbmV3X3N0dWZmKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9Cit9
CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kaWRf
dHJ5X3RvX2NyZWF0ZV92aWV3X2NhY2hlKAogICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnkpCiB7CkBAIC0xNTAsNyArMjg0LDcgQEAgc3RhdGljIGlubGluZSBib29s
IHBhc19zZWdyZWdhdGVkX3NpemVfZAogewogICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2RhdGEqIGRhdGE7CiAgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7Ci0gICAgcmV0dXJuIGRhdGEgJiYgZGF0
YS0+YWxsb2NhdG9yX2luZGV4ICE9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYOworICAg
IHJldHVybiBkYXRhICYmIGRhdGEtPmFsbG9jYXRvcl9pbmRleDsKIH0KIAogLyogQ2FsbCB3aXRo
IGhlYXAgbG9jayBoZWxkLiAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2lubGluZXMuaAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJwYXNfYmFzZWxpbmVf
YWxsb2NhdG9yX3Jlc3VsdC5oIgogI2luY2x1ZGUgInBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFi
bGUuaCIKLSNpbmNsdWRlICJwYXNfY291bnRfbG9va3VwX21vZGUuaCIKKyNpbmNsdWRlICJwYXNf
c2l6ZV9sb29rdXBfbW9kZS5oIgogI2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3IuaCIKICNp
bmNsdWRlICJwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaW5saW5lcy5oIgogI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX2hlYXAuaCIKQEAgLTQwLDggKzQwLDggQEAgUEFTX0JFR0lOX0VYVEVSTl9D
OwogUEFTX0FQSSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdAogcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZ2V0X2FsbG9jYXRvcl9mcm9tX3RsYygKICAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBjb3VudCwKLSAgICBwYXNf
Y291bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21vZGUsCisgICAgc2l6ZV90IHNpemUsCisg
ICAgcGFzX3NpemVfbG9va3VwX21vZGUgc2l6ZV9sb29rdXBfbW9kZSwKICAgICBwYXNfaGVhcF9j
b25maWcqIGNvbmZpZywKICAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4KTsKIApAQCAtNTIsMjIg
KzUyLDIyIEBAIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGwKIHN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdAogcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcigKICAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBjb3VudCwKLSAgICBw
YXNfY291bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21vZGUsCisgICAgc2l6ZV90IHNpemUs
CisgICAgcGFzX3NpemVfbG9va3VwX21vZGUgc2l6ZV9sb29rdXBfbW9kZSwKICAgICBwYXNfaGVh
cF9jb25maWcqIGNvbmZpZywKICAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4KQogewogICAgIGlm
IChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9oYXNfdGxjX2FsbG9jYXRvcihkaXJlY3Rv
cnkpCiAgICAgICAgICYmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSB8fCBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2Nhbl9zZXQoKSkpIHsKICAgICAgICAgcmV0dXJuIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9hbGxvY2F0b3JfZnJvbV90bGMoCi0gICAgICAgICAg
ICBkaXJlY3RvcnksIGNvdW50LCBjb3VudF9sb29rdXBfbW9kZSwgY29uZmlnLCBjYWNoZWRfaW5k
ZXgpOworICAgICAgICAgICAgZGlyZWN0b3J5LCBzaXplLCBzaXplX2xvb2t1cF9tb2RlLCBjb25m
aWcsIGNhY2hlZF9pbmRleCk7CiAgICAgfQogCiAgICAgZm9yICg7OykgewogICAgICAgICB1bnNp
Z25lZCBpbmRleDsKICAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvciogYWxsb2NhdG9yOwog
Ci0gICAgICAgIGluZGV4ID0gZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXg7Cisg
ICAgICAgIGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYmFzZWxpbmVfYWxs
b2NhdG9yX2luZGV4KGRpcmVjdG9yeSk7CiAgICAgICAgIGlmIChpbmRleCA+PSBQQVNfTlVNX0JB
U0VMSU5FX0FMTE9DQVRPUlMpCiAgICAgICAgICAgICBhbGxvY2F0b3IgPSBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9yX3Nsb3coZGlyZWN0b3J5KTsKICAgICAg
ICAgZWxzZSB7CkBAIC03NSw3ICs3NSw3IEBAIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3NlbGVjdF9hbGwKICAgICAgICAgICAgIAogICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmYWxs
b2NhdG9yLT5sb2NrKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKGRpcmVjdG9yeS0+
YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ICE9IGluZGV4KSB7CisgICAgICAgICAgICBpZiAocGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4KGRpcmVj
dG9yeSkgIT0gaW5kZXgpIHsKICAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJmFsbG9j
YXRvci0+bG9jayk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Cklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2hhcmVkX2hhbmRsZV9v
cl9wYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZS5oCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlLmgJKG5v
bmV4aXN0ZW50KQpAQCAtMSw3MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX1NIQVJFRF9IQU5ETEVfT1JfUEFHRV9ICi0j
ZGVmaW5lIFBBU19TSEFSRURfSEFORExFX09SX1BBR0VfSAotCi0jaW5jbHVkZSAicGFzX3V0aWxz
LmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2U7
Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZTsKLXN0cnVjdCBwYXNfc2hhcmVk
X2hhbmRsZV9vcl9wYWdlX29wYXF1ZTsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3Bh
Z2UgcGFzX3NlZ3JlZ2F0ZWRfcGFnZTsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3No
YXJlZF9oYW5kbGUgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZTsKLXR5cGVkZWYgc3RydWN0
IHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2Vfb3BhcXVlKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9w
YWdlOwotCi0jZGVmaW5lIFBBU19JU19TSEFSRURfSEFORExFX0JJVCAoKHVpbnRwdHJfdCkxKQot
Ci1zdGF0aWMgaW5saW5lIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2UKLXBhc193cmFwX3BhZ2Uo
cGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSkKLXsKLSAgICByZXR1cm4gKHBhc19zaGFyZWRfaGFu
ZGxlX29yX3BhZ2UpcGFnZTsKLX0KLQotc3RhdGljIGlubGluZSBib29sCi1wYXNfaXNfd3JhcHBl
ZF9zaGFyZWRfaGFuZGxlKHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2Ugc2hhcmVkX2hhbmRsZV9v
cl9wYWdlKQotewotICAgIHJldHVybiAodWludHB0cl90KXNoYXJlZF9oYW5kbGVfb3JfcGFnZSAm
IFBBU19JU19TSEFSRURfSEFORExFX0JJVDsKLX0KLQotc3RhdGljIGlubGluZSBib29sCi1wYXNf
aXNfd3JhcHBlZF9wYWdlKHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2Ugc2hhcmVkX2hhbmRsZV9v
cl9wYWdlKQotewotICAgIHJldHVybiAhcGFzX2lzX3dyYXBwZWRfc2hhcmVkX2hhbmRsZShzaGFy
ZWRfaGFuZGxlX29yX3BhZ2UpOwotfQotCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3Bh
Z2UqCi1wYXNfdW53cmFwX3BhZ2UocGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZSBzaGFyZWRfaGFu
ZGxlX29yX3BhZ2UpCi17Ci0gICAgUEFTX0FTU0VSVChwYXNfaXNfd3JhcHBlZF9wYWdlKHNoYXJl
ZF9oYW5kbGVfb3JfcGFnZSkpOwotICAgIHJldHVybiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZSopc2hh
cmVkX2hhbmRsZV9vcl9wYWdlOwotfQotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyog
UEFTX1NIQVJFRF9IQU5ETEVfT1JfUEFHRV9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfaW5saW5lcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zaGFyZWRfaGFu
ZGxlX29yX3BhZ2VfaW5saW5lcy5oCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2lubGluZXMuaAko
bm9uZXhpc3RlbnQpCkBAIC0xLDkyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkt
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19TSEFSRURfSEFORExFX09SX1BB
R0VfSU5MSU5FU19ICi0jZGVmaW5lIFBBU19TSEFSRURfSEFORExFX09SX1BBR0VfSU5MSU5FU19I
Ci0KLSNpbmNsdWRlICJwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlLmgiCi0KLSNpbmNsdWRlICJw
YXNfc2VncmVnYXRlZF9wYWdlLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hh
bmRsZS5oIgotI2luY2x1ZGUgInBhc191dGlsaXR5X2hlYXBfY29uZmlnLmgiCi0KLVBBU19CRUdJ
Tl9FWFRFUk5fQzsKLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zaGFyZWRfaGFuZGxl
X29yX3BhZ2UKLXBhc193cmFwX3NoYXJlZF9oYW5kbGUocGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hh
bmRsZSogaGFuZGxlLAotICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZyBwYWdlX2NvbmZpZykKLXsKLSAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2lzX3V0aWxpdHkocGFnZV9jb25maWcpKSB7Ci0gICAgICAgIFBBU19URVNUSU5HX0FTU0VS
VChwYXNfc2VncmVnYXRlZF9wYWdlX2lzX2FsbG9jYXRlZCgKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodWludHB0cl90KWhhbmRsZSwgUEFTX1VUSUxJVFlfSEVBUF9DT05GSUcuc21h
bGxfcGFnZV9jb25maWcpKTsKLSAgICB9Ci0gICAgcmV0dXJuIChwYXNfc2hhcmVkX2hhbmRsZV9v
cl9wYWdlKSgodWludHB0cl90KWhhbmRsZSB8IFBBU19JU19TSEFSRURfSEFORExFX0JJVCk7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZSoKLXBhc191bndy
YXBfc2hhcmVkX2hhbmRsZV9ub19saXZlbmVzc19jaGVja3MocGFzX3NoYXJlZF9oYW5kbGVfb3Jf
cGFnZSBzaGFyZWRfaGFuZGxlX29yX3BhZ2UpCi17Ci0gICAgUEFTX0FTU0VSVChwYXNfaXNfd3Jh
cHBlZF9zaGFyZWRfaGFuZGxlKHNoYXJlZF9oYW5kbGVfb3JfcGFnZSkpOwotICAgIHJldHVybiAo
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZSopKAotICAgICAgICAodWludHB0cl90KXNoYXJl
ZF9oYW5kbGVfb3JfcGFnZSAmIH5QQVNfSVNfU0hBUkVEX0hBTkRMRV9CSVQpOwotfQotCi1zdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZSoKLXBhc191
bndyYXBfc2hhcmVkX2hhbmRsZShwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlIHNoYXJlZF9oYW5k
bGVfb3JfcGFnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZyBwYWdlX2NvbmZpZykKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxl
KiByZXN1bHQ7Ci0gICAgcmVzdWx0ID0gcGFzX3Vud3JhcF9zaGFyZWRfaGFuZGxlX25vX2xpdmVu
ZXNzX2NoZWNrcyhzaGFyZWRfaGFuZGxlX29yX3BhZ2UpOwotICAgIGlmICghcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZpZykpIHsKLSAgICAgICAgUEFTX1RF
U1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3BhZ2VfaXNfYWxsb2NhdGVkKAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICh1aW50cHRyX3QpcmVzdWx0LCBQQVNfVVRJTElUWV9IRUFQ
X0NPTkZJRy5zbWFsbF9wYWdlX2NvbmZpZykpOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0Owot
fQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSoKLXBhc19z
aGFyZWRfaGFuZGxlX29yX3BhZ2VfZ2V0X3BhZ2Vfbm9fbGl2ZW5lc3NfY2hlY2tzKAotICAgIHBh
c19zaGFyZWRfaGFuZGxlX29yX3BhZ2Ugc2hhcmVkX2hhbmRsZV9vcl9wYWdlKQotewotICAgIGlm
IChwYXNfaXNfd3JhcHBlZF9zaGFyZWRfaGFuZGxlKHNoYXJlZF9oYW5kbGVfb3JfcGFnZSkpCi0g
ICAgICAgIHJldHVybiBwYXNfdW53cmFwX3NoYXJlZF9oYW5kbGVfbm9fbGl2ZW5lc3NfY2hlY2tz
KHNoYXJlZF9oYW5kbGVfb3JfcGFnZSktPnBhZ2U7Ci0KLSAgICByZXR1cm4gcGFzX3Vud3JhcF9w
YWdlKHNoYXJlZF9oYW5kbGVfb3JfcGFnZSk7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBwYXNfc2VncmVnYXRlZF9wYWdlKgotcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9nZXRfcGFn
ZShwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlIHNoYXJlZF9oYW5kbGVfb3JfcGFnZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcg
cGFnZV9jb25maWcpCi17Ci0gICAgaWYgKHBhc19pc193cmFwcGVkX3NoYXJlZF9oYW5kbGUoc2hh
cmVkX2hhbmRsZV9vcl9wYWdlKSkKLSAgICAgICAgcmV0dXJuIHBhc191bndyYXBfc2hhcmVkX2hh
bmRsZShzaGFyZWRfaGFuZGxlX29yX3BhZ2UsIHBhZ2VfY29uZmlnKS0+cGFnZTsKLQotICAgIHJl
dHVybiBwYXNfdW53cmFwX3BhZ2Uoc2hhcmVkX2hhbmRsZV9vcl9wYWdlKTsKLX0KLQotUEFTX0VO
RF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19TSEFSRURfSEFORExFX09SX1BBR0VfSU5MSU5F
U19IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zaGFy
ZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5jCShy
ZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuYwkod29ya2luZyBjb3B5KQpAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKICNpbmNsdWRlICJwYXNfaW1tb3J0
YWxfaGVhcC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgiCisjaW5j
bHVkZSAicGFzX3N0cmVhbS5oIgogCiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rv
cnkqIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZV9nZXQoCiAgICAgcGFzX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplKiBieV9zaXplLApAQCAtODUsNyArODYsOCBAQCBwYXNf
c2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkqIHBhCiAKICAgICAgICAgICAgIGZvciAo
aW5kZXggPSBudW1fZGlyZWN0b3JpZXM7IGluZGV4LS07KSB7CiAgICAgICAgICAgICAgICAgZGF0
YS0+ZGlyZWN0b3JpZXNbaW5kZXhdID0gUEFTX1NFR1JFR0FURURfU0hBUkVEX1BBR0VfRElSRUNU
T1JZX0lOSVRJQUxJWkVSKAotICAgICAgICAgICAgICAgICAgICAqcGFnZV9jb25maWcsIGJ5X3Np
emUtPnNoYXJpbmdfbW9kZSk7CisgICAgICAgICAgICAgICAgICAgICpwYWdlX2NvbmZpZywgYnlf
c2l6ZS0+c2hhcmluZ19tb2RlLAorICAgICAgICAgICAgICAgICAgICAodm9pZCopKCgoc2l6ZV90
KTEgPDwgKChzaXplX3QpaW5kZXggPDwgbG9nX3NoaWZ0KSkgPDwgcGFnZV9jb25maWctPmJhc2Uu
bWluX2FsaWduX3NoaWZ0KSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHBhc19mZW5j
ZSgpOwpAQCAtMTQ3LDQgKzE0OSwxMSBAQCBib29sIHBhc19zaGFyZWRfcGFnZV9kaXJlY3Rvcnlf
Ynlfc2l6ZV9mCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgcGFzX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yeV9ieV9zaXplX2R1bXBfZGlyZWN0b3J5X2FyZygKKyAgICBwYXNfc3RyZWFtKiBzdHJl
YW0sCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KiBkaXJlY3Rvcnkp
Cit7CisgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiU2l6ZSA9ICV6dSIsIChzaXplX3Qp
ZGlyZWN0b3J5LT5kdW1wX2FyZyk7Cit9CisKICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yeV9ieV9zaXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmgJKHJldmlzaW9uIDI4
NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zaGFyZWRfcGFn
ZV9kaXJlY3RvcnlfYnlfc2l6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04MSw2ICs4MSwxMCBAQCBQ
QVNfQVBJIGJvb2wgcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9iCiAgICAgICAgICAgICAgICAg
ICAgICB2b2lkKiBhcmcpLAogICAgIHZvaWQqIGFyZyk7CiAKK1BBU19BUEkgdm9pZCBwYXNfc2hh
cmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemVfZHVtcF9kaXJlY3RvcnlfYXJnKAorICAgIHBhc19z
dHJlYW0qIHN0cmVhbSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSk7CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQQVNfU0hBUkVE
X1BBR0VfRElSRUNUT1JZX0JZX1NJWkVfSCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NpbXBsZV90eXBlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NpbXBsZV90eXBlLmMJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NpbXBsZV90eXBlLmMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgorCisjaWYgTElCUEFTX0VO
QUJMRUQKKworI2luY2x1ZGUgInBhc19zaW1wbGVfdHlwZS5oIgorCisjaW5jbHVkZSAicGFzX3N0
cmVhbS5oIgorCit2b2lkIHBhc19zaW1wbGVfdHlwZV9kdW1wKHBhc19zaW1wbGVfdHlwZSB0eXBl
LCBwYXNfc3RyZWFtKiBzdHJlYW0pCit7CisgICAgcGFzX3N0cmVhbV9wcmludGYoCisgICAgICAg
IHN0cmVhbSwgIlNpemUgPSAlenUsIEFsaWdubWVudCA9ICV6dSIsCisgICAgICAgIHBhc19zaW1w
bGVfdHlwZV9zaXplKHR5cGUpLCBwYXNfc2ltcGxlX3R5cGVfYWxpZ25tZW50KHR5cGUpKTsKKwor
ICAgIGlmIChwYXNfc2ltcGxlX3R5cGVfaGFzX2tleSh0eXBlKSkKKyAgICAgICAgcGFzX3N0cmVh
bV9wcmludGYoc3RyZWFtLCAiLCBLZXkgPSAlcCIsIHBhc19zaW1wbGVfdHlwZV9rZXkodHlwZSkp
OworfQorCit2b2lkIHBhc19zaW1wbGVfdHlwZV9hc19oZWFwX3R5cGVfZHVtcChwYXNfaGVhcF90
eXBlKiB0eXBlLCBwYXNfc3RyZWFtKiBzdHJlYW0pCit7CisgICAgcGFzX3NpbXBsZV90eXBlX2R1
bXAoKHBhc19zaW1wbGVfdHlwZSl0eXBlLCBzdHJlYW0pOworfQorCisjZW5kaWYgLyogTElCUEFT
X0VOQUJMRUQgKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NpbXBsZV90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NpbXBsZV90eXBlLmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zaW1wbGVfdHlwZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNDcsNyArNDcsOSBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiB0eXBlZGVmIHVpbnRwdHJfdCBw
YXNfc2ltcGxlX3R5cGU7CiAKIHN0cnVjdCBwYXNfc2ltcGxlX3R5cGVfd2l0aF9rZXlfZGF0YTsK
K3N0cnVjdCBwYXNfc3RyZWFtOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NpbXBsZV90eXBlX3dpdGhf
a2V5X2RhdGEgcGFzX3NpbXBsZV90eXBlX3dpdGhfa2V5X2RhdGE7Cit0eXBlZGVmIHN0cnVjdCBw
YXNfc3RyZWFtIHBhc19zdHJlYW07CiAKIHN0cnVjdCBwYXNfc2ltcGxlX3R5cGVfd2l0aF9rZXlf
ZGF0YSB7CiAgICAgdWludHB0cl90IHNpbXBsZV90eXBlOwpAQCAtMTI4LDYgKzEzMCw4IEBAIHN0
YXRpYyBpbmxpbmUgcGFzX3NpbXBsZV90eXBlIHBhc19zaW1wbGUKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCitQQVNfQVBJIHZvaWQgcGFzX3NpbXBsZV90eXBlX2R1bXAocGFzX3NpbXBsZV90eXBl
IHR5cGUsIHBhc19zdHJlYW0qIHN0cmVhbSk7CisKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IHBhc19z
aW1wbGVfdHlwZV9hc19oZWFwX3R5cGVfZ2V0X3R5cGVfc2l6ZShwYXNfaGVhcF90eXBlKiB0eXBl
KQogewogICAgIHJldHVybiBwYXNfc2ltcGxlX3R5cGVfc2l6ZSgocGFzX3NpbXBsZV90eXBlKXR5
cGUpOwpAQCAtMTM4LDYgKzE0Miw4IEBAIHN0YXRpYyBpbmxpbmUgc2l6ZV90IHBhc19zaW1wbGVf
dHlwZV9hc18KICAgICByZXR1cm4gcGFzX3NpbXBsZV90eXBlX2FsaWdubWVudCgocGFzX3NpbXBs
ZV90eXBlKXR5cGUpOwogfQogCitQQVNfQVBJIHZvaWQgcGFzX3NpbXBsZV90eXBlX2FzX2hlYXBf
dHlwZV9kdW1wKHBhc19oZWFwX3R5cGUqIHR5cGUsIHBhc19zdHJlYW0qIHN0cmVhbSk7CisKIFBB
U19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQQVNfU0lNUExFX1RZUEVfSCAqLwpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NpemVfbG9va3VwX21vZGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2l6ZV9s
b29rdXBfbW9kZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zaXplX2xvb2t1cF9tb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFBBU19TSVpFX0xPT0tVUF9NT0RFX0gKKyNkZWZpbmUgUEFTX1NJWkVfTE9PS1VQX01PREVf
SAorCisjaW5jbHVkZSAicGFzX3V0aWxzLmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworZW51
bSBwYXNfc2l6ZV9sb29rdXBfbW9kZSB7CisgICAgcGFzX2F2b2lkX3NpemVfbG9va3VwLAorICAg
IHBhc19mb3JjZV9zaXplX2xvb2t1cAorfTsKKwordHlwZWRlZiBlbnVtIHBhc19zaXplX2xvb2t1
cF9tb2RlIHBhc19zaXplX2xvb2t1cF9tb2RlOworCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIq
IHBhc19zaXplX2xvb2t1cF9tb2RlX2dldF9zdHJpbmcocGFzX3NpemVfbG9va3VwX21vZGUgbW9k
ZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIHBhc19hdm9pZF9zaXplX2xvb2t1
cDoKKyAgICAgICAgcmV0dXJuICJhdm9pZF9zaXplX2xvb2t1cCI7CisgICAgY2FzZSBwYXNfZm9y
Y2Vfc2l6ZV9sb29rdXA6CisgICAgICAgIHJldHVybiAiZm9yY2Vfc2l6ZV9sb29rdXAiOworICAg
IH0KKyAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAgcmV0dXJu
IE5VTEw7Cit9CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfU0laRV9MT09L
VVBfTU9ERV9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zaXplX3RodW5rLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NpemVfdGh1bmsuaAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NpemVfdGh1bmsuaAkobm9uZXhpc3RlbnQpCkBAIC0x
LDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2lmbmRlZiBQQVNfU0laRV9USFVOS19ICi0jZGVmaW5lIFBBU19TSVpFX1RIVU5LX0gKLQot
I2luY2x1ZGUgInBhc191dGlscy5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXR5cGVkZWYg
c2l6ZV90ICgqcGFzX3NpemVfdGh1bmspKHZvaWQqIGFyZyk7Ci0KLXN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSBzaXplX3QgcGFzX3RyaXZpYWxfc2l6ZV90aHVuayh2b2lkKiBhcmcpCi17Ci0gICAg
cmV0dXJuIChzaXplX3QpYXJnOwotfQotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyog
UEFTX1NJWkVfVEhVTktfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2tpcF9saXN0LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NraXBfbGlzdC5jCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2tpcF9saXN0LmMJKG5vbmV4aXN0ZW50KQpA
QCAtMSwyMTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFTX0VOQUJMRUQKLQot
I2luY2x1ZGUgInBhc19za2lwX2xpc3QuaCIKLQotI2luY2x1ZGUgInBhc19yYW5kb20uaCIKLSNp
bmNsdWRlICJwYXNfc2tpcF9saXN0X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfdXRpbGl0eV9o
ZWFwLmgiCi0KLXZvaWQgcGFzX3NraXBfbGlzdF9jb25zdHJ1Y3QocGFzX3NraXBfbGlzdCogbGlz
dCkKLXsKLSAgICAqbGlzdCA9IFBBU19TS0lQX0xJU1RfSU5JVElBTElaRVI7Ci19Ci0KLXZvaWQq
IHBhc19za2lwX2xpc3Rfbm9kZV9hbGxvY2F0ZV93aXRoX2hlaWdodChzaXplX3Qgb2Zmc2V0X29m
X3NraXBfbGlzdF9ub2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGhlaWdodCkKLXsKLSAgICBzaXplX3QgdG90YWxfc2l6ZTsKLSAgICB2
b2lkKiByZXN1bHQ7Ci0gICAgcGFzX3NraXBfbGlzdF9ub2RlKiBub2RlOwotCi0gICAgUEFTX1RF
U1RJTkdfQVNTRVJUKGhlaWdodCk7Ci0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKCEob2Zmc2V0X29m
X3NraXBfbGlzdF9ub2RlICUgUEFTX0lOVEVSTkFMX01JTl9BTElHTikpOwotCi0gICAgdG90YWxf
c2l6ZSA9Ci0gICAgICAgIG9mZnNldF9vZl9za2lwX2xpc3Rfbm9kZSArCi0gICAgICAgIFBBU19P
RkZTRVRPRihwYXNfc2tpcF9saXN0X25vZGUsIGxldmVsKSArCi0gICAgICAgIHNpemVvZihwYXNf
c2tpcF9saXN0X2xldmVsKSAqIGhlaWdodDsKLQotICAgIHJlc3VsdCA9IHBhc191dGlsaXR5X2hl
YXBfYWxsb2NhdGUodG90YWxfc2l6ZSwgInBhc19za2lwX2xpc3Rfbm9kZSIpOwotCi0gICAgbm9k
ZSA9IChwYXNfc2tpcF9saXN0X25vZGUqKSgoY2hhciopcmVzdWx0ICsgb2Zmc2V0X29mX3NraXBf
bGlzdF9ub2RlKTsKLQotICAgIG5vZGUtPmhlaWdodCA9IGhlaWdodDsKLQotICAgIC8qIE5PVEU6
IFRoZSBhY3R1YWwgbGV2ZWxzIGFyZSBpbml0aWFsaXplZCBpbiBpbnNlcnRfYWZ0ZXIuIFRoYXQg
bWFrZXMgcmVpbnNlcnRpbmcgYWZ0ZXIKLSAgICAgICByZW1vdmluZyBidXQgd2l0aG91dCByZWFs
bG9jYXRpbmcganVzdCB3b3JrLiAqLwotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCog
cGFzX3NraXBfbGlzdF9ub2RlX2FsbG9jYXRlKHNpemVfdCBvZmZzZXRfb2Zfc2tpcF9saXN0X25v
ZGUpCi17Ci0gICAgdW5zaWduZWQgaGVpZ2h0OwotICAgIHVuc2lnbmVkIHJhbmRvbTsKLQotICAg
IHJhbmRvbSA9IHBhc19nZXRfcmFuZG9tKHBhc19jaGVlc3lfcmFuZG9tLCAwKTsKLSAgICBpZiAo
IXJhbmRvbSkKLSAgICAgICAgaGVpZ2h0ID0gMzM7Ci0gICAgZWxzZQotICAgICAgICBoZWlnaHQg
PSAodW5zaWduZWQpX19idWlsdGluX2NseihyYW5kb20pICsgMXU7Ci0KLSAgICByZXR1cm4gcGFz
X3NraXBfbGlzdF9ub2RlX2FsbG9jYXRlX3dpdGhfaGVpZ2h0KG9mZnNldF9vZl9za2lwX2xpc3Rf
bm9kZSwgaGVpZ2h0KTsKLX0KLQotdm9pZCBwYXNfc2tpcF9saXN0X25vZGVfZGVhbGxvY2F0ZSh2
b2lkKiBwdHIpCi17Ci0gICAgcGFzX3V0aWxpdHlfaGVhcF9kZWFsbG9jYXRlKHB0cik7Ci19Ci0K
LXZvaWQgcGFzX3NraXBfbGlzdF9yZW1vdmUocGFzX3NraXBfbGlzdCogbGlzdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX3NraXBfbGlzdF9ub2RlKiBub2RlKQotewotICAgIHN0YXRp
YyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKLSAgICB1bnNpZ25lZCBpbmRleDsK
LSAgICBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHIqIGhlYWQ7Ci0gICAgdW5zaWduZWQg
bm9kZV9oZWlnaHQ7Ci0gICAgdW5zaWduZWQgaGVhZF9oZWlnaHQ7Ci0gICAgYm9vbCBoYXNfc2Vl
bl9ub25fbnVsbF9uZXh0OwotCi0gICAgaWYgKHZlcmJvc2UpCi0gICAgICAgIHBhc19sb2coIlJl
bW92aW5nIG5vZGUgJXAgZnJvbSBsaXN0ICVwLlxuIiwgbm9kZSwgbGlzdCk7Ci0KLSAgICBoZWFk
ID0gcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX3B0cl9sb2FkKCZsaXN0LT5oZWFkKTsK
LSAgICBQQVNfVEVTVElOR19BU1NFUlQoaGVhZCk7Ci0KLSAgICBub2RlX2hlaWdodCA9IG5vZGUt
PmhlaWdodDsKLSAgICBoZWFkX2hlaWdodCA9IGxpc3QtPmhlaWdodDsKLSAgICBoYXNfc2Vlbl9u
b25fbnVsbF9uZXh0ID0gbm9kZV9oZWlnaHQgPCBoZWFkX2hlaWdodDsKLSAgICAKLSAgICBmb3Ig
KGluZGV4ID0gbm9kZV9oZWlnaHQ7IGluZGV4LS07KSB7Ci0gICAgICAgIHBhc19za2lwX2xpc3Rf
bm9kZSogcHJldl9ub2RlOwotICAgICAgICBwYXNfc2tpcF9saXN0X25vZGUqIG5leHRfbm9kZTsK
LQotICAgICAgICBwcmV2X25vZGUgPSBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJfbG9h
ZCgmbm9kZS0+bGV2ZWxbaW5kZXhdLnByZXYpOwotICAgICAgICBuZXh0X25vZGUgPSBwYXNfY29t
cGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJfbG9hZCgmbm9kZS0+bGV2ZWxbaW5kZXhdLm5leHQpOwot
Ci0gICAgICAgIGlmIChuZXh0X25vZGUpIHsKLSAgICAgICAgICAgIHBhc19jb21wYWN0X3NraXBf
bGlzdF9ub2RlX3B0cl9zdG9yZSgmbmV4dF9ub2RlLT5sZXZlbFtpbmRleF0ucHJldiwgcHJldl9u
b2RlKTsKLSAgICAgICAgICAgIGhhc19zZWVuX25vbl9udWxsX25leHQgPSB0cnVlOwotICAgICAg
ICB9Ci0KLSAgICAgICAgaWYgKHByZXZfbm9kZSkKLSAgICAgICAgICAgIHBhc19jb21wYWN0X3Nr
aXBfbGlzdF9ub2RlX3B0cl9zdG9yZSgmcHJldl9ub2RlLT5sZXZlbFtpbmRleF0ubmV4dCwgbmV4
dF9ub2RlKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9za2lwX2xp
c3Rfbm9kZV9wdHJfc3RvcmUoaGVhZCArIGluZGV4LCBuZXh0X25vZGUpOwotICAgICAgICAgICAg
aWYgKCFoYXNfc2Vlbl9ub25fbnVsbF9uZXh0KQotICAgICAgICAgICAgICAgIGhlYWRfaGVpZ2h0
ID0gaW5kZXg7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBsaXN0LT5oZWlnaHQgPSBoZWFkX2hl
aWdodDsKLX0KLQotc2l6ZV90IHBhc19za2lwX2xpc3Rfc2l6ZShwYXNfc2tpcF9saXN0KiBsaXN0
KQotewotICAgIHNpemVfdCByZXN1bHQ7Ci0gICAgcGFzX3NraXBfbGlzdF9ub2RlKiBub2RlOwot
Ci0gICAgcmVzdWx0ID0gMDsKLQotICAgIGZvciAobm9kZSA9IHBhc19za2lwX2xpc3RfaGVhZChs
aXN0KTsgbm9kZTsgbm9kZSA9IHBhc19za2lwX2xpc3Rfbm9kZV9uZXh0KG5vZGUpKQotICAgICAg
ICByZXN1bHQrKzsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyB2b2lkIHZhbGlk
YXRlX290aGVyX25vZGUocGFzX3NraXBfbGlzdCogbGlzdCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX3NraXBfbGlzdF9ub2RlKiBub2RlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplX3QgaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19saXN0X2RpcmVjdGlvbiBkaXJlY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19za2lwX2xpc3Rfbm9kZV9jb21wYXJlX2NhbGxiYWNrIGNvbXBhcmUpCi17
Ci0gICAgcGFzX3NraXBfbGlzdF9ub2RlKiBvdGhlcl9ub2RlOwotICAgIHBhc19za2lwX2xpc3Rf
bm9kZSogcmVmbGVjdF9ub2RlOwotICAgIHBhc19za2lwX2xpc3Rfbm9kZSogaXRlcl9ub2RlOwot
ICAgIGludCBjb21wYXJlX3Jlc3VsdDsKLQotICAgIG90aGVyX25vZGUgPSBwYXNfc2tpcF9saXN0
X2xldmVsX2dldF9kaXJlY3Rpb24obm9kZS0+bGV2ZWwgKyBpbmRleCwgZGlyZWN0aW9uKTsKLSAg
ICBpZiAoIW90aGVyX25vZGUpIHsKLSAgICAgICAgZm9yIChpdGVyX25vZGUgPSBwYXNfc2tpcF9s
aXN0X2xldmVsX2dldF9kaXJlY3Rpb24obm9kZS0+bGV2ZWwsIGRpcmVjdGlvbik7Ci0gICAgICAg
ICAgICAgaXRlcl9ub2RlOwotICAgICAgICAgICAgIGl0ZXJfbm9kZSA9IHBhc19za2lwX2xpc3Rf
bGV2ZWxfZ2V0X2RpcmVjdGlvbihpdGVyX25vZGUtPmxldmVsLCBkaXJlY3Rpb24pKQotICAgICAg
ICAgICAgUEFTX0FTU0VSVChpdGVyX25vZGUtPmhlaWdodCA8PSBpbmRleCk7Ci0gICAgICAgIGlm
IChkaXJlY3Rpb24gPT0gcGFzX2xpc3RfZGlyZWN0aW9uX3ByZXYpIHsKLSAgICAgICAgICAgIFBB
U19BU1NFUlQocGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX2xvYWQoCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJfcHRyX2xvYWQo
Jmxpc3QtPmhlYWQpICsgaW5kZXgpCi0gICAgICAgICAgICAgICAgICAgICAgID09IG5vZGUpOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBQQVNfQVNTRVJUKG90aGVy
X25vZGUgIT0gbm9kZSk7Ci0KLSAgICBjb21wYXJlX3Jlc3VsdCA9IGNvbXBhcmUobm9kZSwgb3Ro
ZXJfbm9kZSk7Ci0gICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKLSAgICBjYXNlIHBhc19saXN0X2Rp
cmVjdGlvbl9wcmV2OgotICAgICAgICBQQVNfQVNTRVJUKGNvbXBhcmVfcmVzdWx0ID49IDApOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIHBhc19saXN0X2RpcmVjdGlvbl9uZXh0OgotICAgICAg
ICBQQVNfQVNTRVJUKGNvbXBhcmVfcmVzdWx0IDw9IDApOwotICAgICAgICBicmVhazsKLSAgICB9
Ci0gICAgCi0gICAgUEFTX0FTU0VSVChvdGhlcl9ub2RlLT5oZWlnaHQgPiBpbmRleCk7Ci0KLSAg
ICByZWZsZWN0X25vZGUgPSBwYXNfc2tpcF9saXN0X2xldmVsX2dldF9kaXJlY3Rpb24ob3RoZXJf
bm9kZS0+bGV2ZWwgKyBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2xpc3RfZGlyZWN0aW9uX2ludmVydChkaXJlY3Rpb24pKTsK
LSAgICBQQVNfQVNTRVJUKHJlZmxlY3Rfbm9kZSA9PSBub2RlKTsKLQotICAgIGZvciAoaXRlcl9u
b2RlID0gcGFzX3NraXBfbGlzdF9sZXZlbF9nZXRfZGlyZWN0aW9uKG5vZGUtPmxldmVsLCBkaXJl
Y3Rpb24pOwotICAgICAgICAgaXRlcl9ub2RlICE9IG90aGVyX25vZGU7Ci0gICAgICAgICBpdGVy
X25vZGUgPSBwYXNfc2tpcF9saXN0X2xldmVsX2dldF9kaXJlY3Rpb24oaXRlcl9ub2RlLT5sZXZl
bCwgZGlyZWN0aW9uKSkgewotICAgICAgICBQQVNfQVNTRVJUKGl0ZXJfbm9kZSk7Ci0gICAgICAg
IFBBU19BU1NFUlQoaXRlcl9ub2RlLT5oZWlnaHQgPD0gaW5kZXgpOwotICAgIH0KLX0KLQotdm9p
ZCBwYXNfc2tpcF9saXN0X3ZhbGlkYXRlKHBhc19za2lwX2xpc3QqIGxpc3QsIHBhc19za2lwX2xp
c3Rfbm9kZV9jb21wYXJlX2NhbGxiYWNrIGNvbXBhcmUpCi17Ci0gICAgcGFzX3NraXBfbGlzdF9u
b2RlKiBub2RlOwotICAgIHVuc2lnbmVkIGluZGV4OwotCi0gICAgZm9yIChub2RlID0gcGFzX3Nr
aXBfbGlzdF9oZWFkKGxpc3QpOyBub2RlOyBub2RlID0gcGFzX3NraXBfbGlzdF9ub2RlX25leHQo
bm9kZSkpIHsKLSAgICAgICAgc2l6ZV90IGluZGV4OwotCi0gICAgICAgIGZvciAoaW5kZXggPSBu
b2RlLT5oZWlnaHQ7IGluZGV4LS07KSB7Ci0gICAgICAgICAgICB2YWxpZGF0ZV9vdGhlcl9ub2Rl
KGxpc3QsIG5vZGUsIGluZGV4LCBwYXNfbGlzdF9kaXJlY3Rpb25fcHJldiwgY29tcGFyZSk7Ci0g
ICAgICAgICAgICB2YWxpZGF0ZV9vdGhlcl9ub2RlKGxpc3QsIG5vZGUsIGluZGV4LCBwYXNfbGlz
dF9kaXJlY3Rpb25fbmV4dCwgY29tcGFyZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmb3Ig
KGluZGV4ID0gbGlzdC0+aGVpZ2h0OyBpbmRleC0tOykgewotICAgICAgICBQQVNfQVNTRVJUKHBh
c19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9sb2FkKAotICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJfcHRyX2xvYWQoJmxpc3QtPmhlYWQpICsg
aW5kZXgpKTsKLSAgICB9Ci19Ci0KLSNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NraXBfbGlzdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19za2lwX2xpc3QuaAko
cmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NraXBfbGlzdC5oCShub25leGlzdGVudCkKQEAgLTEsMTE3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfU0tJUF9MSVNU
X0gKLSNkZWZpbmUgUEFTX1NLSVBfTElTVF9ICi0KLSNpbmNsdWRlICJwYXNfY29tcGFjdF9za2lw
X2xpc3Rfbm9kZV9wdHIuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9w
dHJfcHRyLmgiCi0jaW5jbHVkZSAicGFzX3V0aWxzLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsK
LQotc3RydWN0IHBhc19za2lwX2xpc3Q7Ci1zdHJ1Y3QgcGFzX3NraXBfbGlzdF9jb25maWc7Ci1z
dHJ1Y3QgcGFzX3NraXBfbGlzdF9sZXZlbDsKLXN0cnVjdCBwYXNfc2tpcF9saXN0X25vZGU7Ci10
eXBlZGVmIHN0cnVjdCBwYXNfc2tpcF9saXN0IHBhc19za2lwX2xpc3Q7Ci10eXBlZGVmIHN0cnVj
dCBwYXNfc2tpcF9saXN0X2NvbmZpZyBwYXNfc2tpcF9saXN0X2NvbmZpZzsKLXR5cGVkZWYgc3Ry
dWN0IHBhc19za2lwX2xpc3RfbGV2ZWwgcGFzX3NraXBfbGlzdF9sZXZlbDsKLXR5cGVkZWYgc3Ry
dWN0IHBhc19za2lwX2xpc3Rfbm9kZSBwYXNfc2tpcF9saXN0X25vZGU7Ci0KLSNkZWZpbmUgUEFT
X1NLSVBfTElTVF9NQVhfSEVJR0hUIDMyCi0KLXN0cnVjdCBwYXNfc2tpcF9saXN0X2xldmVsIHsK
LSAgICBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHIgcHJldjsKLSAgICBwYXNfY29tcGFj
dF9za2lwX2xpc3Rfbm9kZV9wdHIgbmV4dDsKLX07Ci0KLS8qIFlvdSBtdXN0IHB1dCB0aGUgc2tp
cF9saXN0X25vZGUgYXQgdGhlIF9lbmRfIG9mIHlvdXIgc3RydWN0LiAqLwotc3RydWN0IHBhc19z
a2lwX2xpc3Rfbm9kZSB7Ci0gICAgdWludDhfdCBoZWlnaHQ7Ci0gICAgcGFzX3NraXBfbGlzdF9s
ZXZlbCBsZXZlbFsxXTsKLX07Ci0KLXN0cnVjdCBwYXNfc2tpcF9saXN0IHsKLSAgICB1aW50OF90
IGhlaWdodDsKLSAgICB1aW50OF90IGhlaWdodF9jYXBhY2l0eTsKLSAgICBwYXNfY29tcGFjdF9z
a2lwX2xpc3Rfbm9kZV9wdHJfcHRyIGhlYWQ7Ci19OwotCi10eXBlZGVmIGludCAoKnBhc19za2lw
X2xpc3Rfbm9kZV9jb21wYXJlX2NhbGxiYWNrKShwYXNfc2tpcF9saXN0X25vZGUqIGEsIHBhc19z
a2lwX2xpc3Rfbm9kZSogYik7Ci10eXBlZGVmIGludCAoKnBhc19za2lwX2xpc3Rfbm9kZV9rZXlf
Y29tcGFyZV9jYWxsYmFjaykocGFzX3NraXBfbGlzdF9ub2RlKiBub2RlLCB2b2lkKiBrZXkpOwot
Ci0jZGVmaW5lIFBBU19TS0lQX0xJU1RfSU5JVElBTElaRVIgKChwYXNfc2tpcF9saXN0KXsgXAot
ICAgICAgICAuaGVpZ2h0ID0gMCwgXAotICAgICAgICAuaGVpZ2h0X2NhcGFjaXR5ID0gMCwgXAot
ICAgICAgICAuaGVhZCA9IFBBU19DT01QQUNUX1BUUl9JTklUSUFMSVpFUiBcCi0gICAgfSkKLQot
UEFTX0FQSSB2b2lkIHBhc19za2lwX2xpc3RfY29uc3RydWN0KHBhc19za2lwX2xpc3QqIGxpc3Qp
OwotCi1QQVNfQVBJIHZvaWQqIHBhc19za2lwX2xpc3Rfbm9kZV9hbGxvY2F0ZV93aXRoX2hlaWdo
dChzaXplX3Qgb2Zmc2V0X29mX3NraXBfbGlzdF9ub2RlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaGVpZ2h0KTsKLQotLyog
QWxsb2NhdGlvbiBhbmQgZGVhbGxvY2F0aW9uIHJlcXVpcmVzIGhvbGRpbmcgdGhlIGhlYXAgbG9j
ay4gKi8KLVBBU19BUEkgdm9pZCogcGFzX3NraXBfbGlzdF9ub2RlX2FsbG9jYXRlKHNpemVfdCBv
ZmZzZXRfb2Zfc2tpcF9saXN0X25vZGUpOwotUEFTX0FQSSB2b2lkIHBhc19za2lwX2xpc3Rfbm9k
ZV9kZWFsbG9jYXRlKHZvaWQqIHB0cik7Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NraXBfbGlzdF9u
b2RlKiBwYXNfc2tpcF9saXN0X25vZGVfcHJldihwYXNfc2tpcF9saXN0X25vZGUqIG5vZGUpCi17
Ci0gICAgcmV0dXJuIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9sb2FkKCZub2RlLT5s
ZXZlbFswXS5wcmV2KTsKLX0KLQotc3RhdGljIGlubGluZSBwYXNfc2tpcF9saXN0X25vZGUqIHBh
c19za2lwX2xpc3Rfbm9kZV9uZXh0KHBhc19za2lwX2xpc3Rfbm9kZSogbm9kZSkKLXsKLSAgICBy
ZXR1cm4gcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX2xvYWQoJm5vZGUtPmxldmVsWzBd
Lm5leHQpOwotfQotCi1zdGF0aWMgaW5saW5lIHBhc19za2lwX2xpc3Rfbm9kZSogcGFzX3NraXBf
bGlzdF9oZWFkKHBhc19za2lwX2xpc3QqIGxpc3QpCi17Ci0gICAgcGFzX2NvbXBhY3Rfc2tpcF9s
aXN0X25vZGVfcHRyKiBoZWFkOwotICAgIGhlYWQgPSBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9k
ZV9wdHJfcHRyX2xvYWQoJmxpc3QtPmhlYWQpOwotICAgIGlmICghaGVhZCkKLSAgICAgICAgcmV0
dXJuIE5VTEw7Ci0gICAgcmV0dXJuIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9sb2Fk
KGhlYWQpOwotfQotCi1QQVNfQVBJIHZvaWQgcGFzX3NraXBfbGlzdF9yZW1vdmUocGFzX3NraXBf
bGlzdCogbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2tpcF9s
aXN0X25vZGUqIG5vZGUpOwotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NraXBfbGlzdF9pc19l
bXB0eShwYXNfc2tpcF9saXN0KiBsaXN0KQotewotICAgIHJldHVybiAhbGlzdC0+aGVpZ2h0Owot
fQotCi0vKiBUaGlzIGlzIGFuIE8oTikgb3BlcmF0aW9uLiBJdCdzIGF2YWlsYWJsZSBmb3IgdGVz
dGluZy4gKi8KLVBBU19BUEkgc2l6ZV90IHBhc19za2lwX2xpc3Rfc2l6ZShwYXNfc2tpcF9saXN0
KiBsaXN0KTsKLQotUEFTX0FQSSB2b2lkIHBhc19za2lwX2xpc3RfdmFsaWRhdGUoCi0gICAgcGFz
X3NraXBfbGlzdCogbGlzdCwgcGFzX3NraXBfbGlzdF9ub2RlX2NvbXBhcmVfY2FsbGJhY2sgY29t
cGFyZSk7Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfU0tJUF9MSVNUX0gg
Ki8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NraXBfbGlz
dF9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NraXBfbGlzdF9pbmxpbmVzLmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19za2lwX2xpc3RfaW5saW5lcy5oCShub25leGlz
dGVudCkKQEAgLTEsMzU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfU0tJUF9MSVNUX0lOTElORVNfSAotI2RlZmluZSBQ
QVNfU0tJUF9MSVNUX0lOTElORVNfSAotCi0jaW5jbHVkZSAicGFzX2xpc3RfZGlyZWN0aW9uLmgi
Ci0jaW5jbHVkZSAicGFzX2xvZy5oIgotI2luY2x1ZGUgInBhc19za2lwX2xpc3QuaCIKLSNpbmNs
dWRlICJwYXNfdXRpbGl0eV9oZWFwLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotdHlwZWRl
ZiBzdHJ1Y3QgewotICAgIGJvb2wgZGlkX2ZpbmRfZXhhY3Q7Ci0gICAgcGFzX3NraXBfbGlzdF9u
b2RlKiBuZXh0OwotICAgIHBhc19za2lwX2xpc3Rfbm9kZSogcHJldjsKLX0gcGFzX3NraXBfbGlz
dF9maW5kX3Jlc3VsdDsKLQotc3RhdGljIGlubGluZSBwYXNfc2tpcF9saXN0X2ZpbmRfcmVzdWx0
IHBhc19za2lwX2xpc3RfZmluZF9yZXN1bHRfY3JlYXRlX2V4YWN0KAotICAgIHBhc19za2lwX2xp
c3Rfbm9kZSogbm9kZSkKLXsKLSAgICBwYXNfc2tpcF9saXN0X2ZpbmRfcmVzdWx0IHJlc3VsdDsK
LSAgICByZXN1bHQuZGlkX2ZpbmRfZXhhY3QgPSB0cnVlOwotICAgIHJlc3VsdC5uZXh0ID0gbm9k
ZTsKLSAgICByZXN1bHQucHJldiA9IG5vZGU7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3Rh
dGljIGlubGluZSBwYXNfc2tpcF9saXN0X2ZpbmRfcmVzdWx0IHBhc19za2lwX2xpc3RfZmluZF9y
ZXN1bHRfY3JlYXRlX2luZXhhY3QoCi0gICAgcGFzX3NraXBfbGlzdF9ub2RlKiBwcmV2LCBwYXNf
c2tpcF9saXN0X25vZGUqIG5leHQpCi17Ci0gICAgcGFzX3NraXBfbGlzdF9maW5kX3Jlc3VsdCBy
ZXN1bHQ7Ci0gICAgcmVzdWx0LmRpZF9maW5kX2V4YWN0ID0gZmFsc2U7Ci0gICAgcmVzdWx0Lm5l
eHQgPSBuZXh0OwotICAgIHJlc3VsdC5wcmV2ID0gcHJldjsKLSAgICByZXR1cm4gcmVzdWx0Owot
fQotCi10eXBlZGVmIHZvaWQgKCpwYXNfc2tpcF9saXN0X25vdGVfaGVhZF9hdHRhY2htZW50X2Nh
bGxiYWNrKShwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHIqIGhlYWQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19za2lwX2xpc3Rfbm9kZSogbmV4dF9ub2RlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJn
KTsKLQotdHlwZWRlZiB2b2lkICgqcGFzX3NraXBfbGlzdF9ub3RlX3BvbGVfYXR0YWNobWVudF9j
YWxsYmFjaykocGFzX3NraXBfbGlzdF9ub2RlKiBub2RlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW5kZXgsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfc2tpcF9saXN0X25vZGUqIG5leHRfbm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFyZyk7Ci0KLXN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2tpcF9saXN0X25vZGUqCi1wYXNfc2tpcF9saXN0X2xl
dmVsX2dldF9kaXJlY3Rpb24ocGFzX3NraXBfbGlzdF9sZXZlbCogbGV2ZWwsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xpc3RfZGlyZWN0aW9uIGRpcmVjdGlvbikKLXsK
LSAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewotICAgIGNhc2UgcGFzX2xpc3RfZGlyZWN0aW9uX3By
ZXY6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJfbG9hZCgm
bGV2ZWwtPnByZXYpOwotICAgIGNhc2UgcGFzX2xpc3RfZGlyZWN0aW9uX25leHQ6Ci0gICAgICAg
IHJldHVybiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJfbG9hZCgmbGV2ZWwtPm5leHQp
OwotICAgIH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAg
cmV0dXJuIE5VTEw7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2tpcF9saXN0
X2ZpbmRfcmVzdWx0Ci1wYXNfc2tpcF9saXN0X2ZpbmRfaW1wbChwYXNfc2tpcF9saXN0KiBsaXN0
LAotICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCoga2V5LAotICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NraXBfbGlzdF9ub2RlX2tleV9jb21wYXJlX2NhbGxiYWNrIGNvbXBhcmVfa2V5
LAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NraXBfbGlzdF9ub3RlX2hlYWRfYXR0YWNo
bWVudF9jYWxsYmFjayBub3RlX2hlYWRfYXR0YWNobWVudCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19za2lwX2xpc3Rfbm90ZV9wb2xlX2F0dGFjaG1lbnRfY2FsbGJhY2sgbm90ZV9wb2xl
X2F0dGFjaG1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhcmcpCi17Ci0gICAg
c3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAotICAgIGludCBjb21wYXJp
c29uX3Jlc3VsdDsKLSAgICB1bnNpZ25lZCBoZWFkX2hlaWdodDsKLSAgICB1bnNpZ25lZCBjdXJy
ZW50X2hlaWdodDsKLSAgICBwYXNfc2tpcF9saXN0X25vZGUqIG5vZGU7Ci0gICAgcGFzX3NraXBf
bGlzdF9ub2RlKiBuZXh0X25vZGU7Ci0gICAgcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRy
KiBoZWFkOwotICAgIHBhc19za2lwX2xpc3RfZmluZF9yZXN1bHQgcmVzdWx0OwotCi0gICAgcmVz
dWx0ID0gcGFzX3NraXBfbGlzdF9maW5kX3Jlc3VsdF9jcmVhdGVfaW5leGFjdChOVUxMLCBOVUxM
KTsgLyogQ29tcGlsZXJzIG5lZWQgZGlhcGVycwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvbWV0aW1lcy4gKi8K
LQotICAgIGlmICh2ZXJib3NlKQotICAgICAgICBwYXNfbG9nKCJTdGFydGluZyBmaW5kIGZvciBs
aXN0ID0gJXAuXG4iLCBsaXN0KTsKLQotICAgIGhlYWRfaGVpZ2h0ID0gbGlzdC0+aGVpZ2h0Owot
ICAgIGlmICghaGVhZF9oZWlnaHQpCi0gICAgICAgIHJldHVybiBwYXNfc2tpcF9saXN0X2ZpbmRf
cmVzdWx0X2NyZWF0ZV9pbmV4YWN0KE5VTEwsIE5VTEwpOwotCi0gICAgaGVhZCA9IHBhc19jb21w
YWN0X3NraXBfbGlzdF9ub2RlX3B0cl9wdHJfbG9hZCgmbGlzdC0+aGVhZCk7Ci0gICAgUEFTX1RF
U1RJTkdfQVNTRVJUKGhlYWQpOwotICAgIAotICAgIGN1cnJlbnRfaGVpZ2h0ID0gaGVhZF9oZWln
aHQ7Ci0KLSAgICBmb3IgKDs7KSB7Ci0gICAgICAgIG5vZGUgPSBwYXNfY29tcGFjdF9za2lwX2xp
c3Rfbm9kZV9wdHJfbG9hZChoZWFkICsgY3VycmVudF9oZWlnaHQgLSAxKTsKLSAgICAgICAgY29t
cGFyaXNvbl9yZXN1bHQgPSBjb21wYXJlX2tleShub2RlLCBrZXkpOwotICAgICAgICAKLSAgICAg
ICAgaWYgKGNvbXBhcmlzb25fcmVzdWx0IDwgMCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAKLSAgICAgICAgaWYgKCFjb21wYXJpc29uX3Jlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBw
YXNfc2tpcF9saXN0X2ZpbmRfcmVzdWx0X2NyZWF0ZV9leGFjdChub2RlKTsKLQotICAgICAgICBu
b3RlX2hlYWRfYXR0YWNobWVudChoZWFkLCBjdXJyZW50X2hlaWdodCAtIDEsIG5vZGUsIGFyZyk7
Ci0gICAgICAgIAotICAgICAgICBjdXJyZW50X2hlaWdodC0tOwotICAgICAgICAKLSAgICAgICAg
aWYgKCFjdXJyZW50X2hlaWdodCkKLSAgICAgICAgICAgIHJldHVybiBwYXNfc2tpcF9saXN0X2Zp
bmRfcmVzdWx0X2NyZWF0ZV9pbmV4YWN0KE5VTEwsIG5vZGUpOwotICAgIH0KLQotICAgIGZvciAo
OzspIHsKLSAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGN1cnJlbnRfaGVpZ2h0KTsKLSAgICAg
ICAgCi0gICAgICAgIGZvciAoOzspIHsKLSAgICAgICAgICAgIG5leHRfbm9kZSA9IHBhc19jb21w
YWN0X3NraXBfbGlzdF9ub2RlX3B0cl9sb2FkKCZub2RlLT5sZXZlbFtjdXJyZW50X2hlaWdodCAt
IDFdLm5leHQpOwotCi0gICAgICAgICAgICBpZiAobmV4dF9ub2RlKSB7Ci0gICAgICAgICAgICAg
ICAgY29tcGFyaXNvbl9yZXN1bHQgPSBjb21wYXJlX2tleShuZXh0X25vZGUsIGtleSk7Ci0KLSAg
ICAgICAgICAgICAgICBpZiAoY29tcGFyaXNvbl9yZXN1bHQgPCAwKQotICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLQotICAgICAgICAgICAgICAgIGlmICghY29tcGFyaXNvbl9yZXN1bHQpCi0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXNfc2tpcF9saXN0X2ZpbmRfcmVzdWx0X2NyZWF0
ZV9leGFjdChuZXh0X25vZGUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBub3RlX3Bv
bGVfYXR0YWNobWVudChub2RlLCBjdXJyZW50X2hlaWdodCAtIDEsIG5leHRfbm9kZSwgYXJnKTsK
LQotICAgICAgICAgICAgY3VycmVudF9oZWlnaHQtLTsKLQotICAgICAgICAgICAgaWYgKCFjdXJy
ZW50X2hlaWdodCkKLSAgICAgICAgICAgICAgICByZXR1cm4gcGFzX3NraXBfbGlzdF9maW5kX3Jl
c3VsdF9jcmVhdGVfaW5leGFjdChub2RlLCBuZXh0X25vZGUpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgbm9kZSA9IG5leHRfbm9kZTsKLSAgICB9Ci0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5v
dCBiZSByZWFjaGVkIik7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkCi1wYXNf
c2tpcF9saXN0X2ZpbmRfaWdub3JlX2hlYWRfYXR0YWNobWVudChwYXNfY29tcGFjdF9za2lwX2xp
c3Rfbm9kZV9wdHIqIGhlYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19za2lwX2xpc3Rfbm9kZSogbmV4dF9ub2RlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKQotewotICAgIFBBU19VTlVTRURfUEFS
QU0oaGVhZCk7Ci0gICAgUEFTX1VOVVNFRF9QQVJBTShpbmRleCk7Ci0gICAgUEFTX1VOVVNFRF9Q
QVJBTShuZXh0X25vZGUpOwotICAgIFBBU19VTlVTRURfUEFSQU0oYXJnKTsKLX0KLQotc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHZvaWQKLXBhc19za2lwX2xpc3RfZmluZF9pZ25vcmVfcG9sZV9h
dHRhY2htZW50KHBhc19za2lwX2xpc3Rfbm9kZSogbm9kZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NraXBfbGlzdF9ub2RlKiBuZXh0X25vZGUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhcmcpCi17Ci0g
ICAgUEFTX1VOVVNFRF9QQVJBTShub2RlKTsKLSAgICBQQVNfVU5VU0VEX1BBUkFNKGluZGV4KTsK
LSAgICBQQVNfVU5VU0VEX1BBUkFNKG5leHRfbm9kZSk7Ci0gICAgUEFTX1VOVVNFRF9QQVJBTShh
cmcpOwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NraXBfbGlzdF9maW5kX3Jl
c3VsdAotcGFzX3NraXBfbGlzdF9maW5kKHBhc19za2lwX2xpc3QqIGxpc3QsCi0gICAgICAgICAg
ICAgICAgICAgdm9pZCoga2V5LAotICAgICAgICAgICAgICAgICAgIHBhc19za2lwX2xpc3Rfbm9k
ZV9rZXlfY29tcGFyZV9jYWxsYmFjayBjb21wYXJlX2tleSkKLXsKLSAgICByZXR1cm4gcGFzX3Nr
aXBfbGlzdF9maW5kX2ltcGwobGlzdCwga2V5LCBjb21wYXJlX2tleSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX3NraXBfbGlzdF9maW5kX2lnbm9yZV9oZWFkX2F0dGFj
aG1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19za2lwX2xpc3Rf
ZmluZF9pZ25vcmVfcG9sZV9hdHRhY2htZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBOVUxMKTsKLX0KLQotdHlwZWRlZiBzdHJ1Y3QgewotICAgIHBhc19za2lwX2xpc3Rf
bm9kZSogbm9kZTsKLSAgICB1bnNpZ25lZCBub2RlX2hlaWdodDsKLX0gcGFzX3NraXBfbGlzdF9p
bnNlcnRfYWZ0ZXJfZGF0YTsKLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQKLXBhc19z
a2lwX2xpc3RfaW5zZXJ0X2FmdGVyX25vdGVfaGVhZF9hdHRhY2htZW50KAotICAgIHBhc19jb21w
YWN0X3NraXBfbGlzdF9ub2RlX3B0ciogaGVhZCwKLSAgICB1bnNpZ25lZCBpbmRleCwKLSAgICBw
YXNfc2tpcF9saXN0X25vZGUqIG5leHRfbm9kZSwKLSAgICB2b2lkKiBhcmcpCi17Ci0gICAgcGFz
X3NraXBfbGlzdF9pbnNlcnRfYWZ0ZXJfZGF0YSogZGF0YTsKLSAgICAKLSAgICBwYXNfc2tpcF9s
aXN0X25vZGUqIG5vZGVfdG9faW5zZXJ0OwotICAgIHVuc2lnbmVkIG5vZGVfdG9faW5zZXJ0X2hl
aWdodDsKLQotICAgIGRhdGEgPSAocGFzX3NraXBfbGlzdF9pbnNlcnRfYWZ0ZXJfZGF0YSopYXJn
OwotICAgIG5vZGVfdG9faW5zZXJ0ID0gZGF0YS0+bm9kZTsKLSAgICBub2RlX3RvX2luc2VydF9o
ZWlnaHQgPSBkYXRhLT5ub2RlX2hlaWdodDsKLQotICAgIGlmIChpbmRleCA+PSBub2RlX3RvX2lu
c2VydF9oZWlnaHQpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBQQVNfVEVTVElOR19BU1NF
UlQocGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX2lzX251bGwoJm5vZGVfdG9faW5zZXJ0
LT5sZXZlbFtpbmRleF0ucHJldikpOwotICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfY29tcGFj
dF9za2lwX2xpc3Rfbm9kZV9wdHJfaXNfbnVsbCgmbm9kZV90b19pbnNlcnQtPmxldmVsW2luZGV4
XS5uZXh0KSk7Ci0gICAgCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKG5leHRfbm9kZSk7Ci0gICAg
UEFTX1RFU1RJTkdfQVNTRVJUKG5leHRfbm9kZSAhPSBub2RlX3RvX2luc2VydCk7Ci0gICAgCi0g
ICAgcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX3N0b3JlKAotICAgICAgICAmbm9kZV90
b19pbnNlcnQtPmxldmVsW2luZGV4XS5uZXh0LAotICAgICAgICBuZXh0X25vZGUpOwotICAgIHBh
c19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9zdG9yZSgKLSAgICAgICAgJm5leHRfbm9kZS0+
bGV2ZWxbaW5kZXhdLnByZXYsCi0gICAgICAgIG5vZGVfdG9faW5zZXJ0KTsKLSAgICBwYXNfY29t
cGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJfc3RvcmUoCi0gICAgICAgIGhlYWQgKyBpbmRleCwKLSAg
ICAgICAgbm9kZV90b19pbnNlcnQpOwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9p
ZAotcGFzX3NraXBfbGlzdF9pbnNlcnRfYWZ0ZXJfbm90ZV9wb2xlX2F0dGFjaG1lbnQoCi0gICAg
cGFzX3NraXBfbGlzdF9ub2RlKiBub2RlLAotICAgIHVuc2lnbmVkIGluZGV4LAotICAgIHBhc19z
a2lwX2xpc3Rfbm9kZSogbmV4dF9ub2RlLAotICAgIHZvaWQqIGFyZykKLXsKLSAgICBwYXNfc2tp
cF9saXN0X2luc2VydF9hZnRlcl9kYXRhKiBkYXRhOwotICAgIHBhc19za2lwX2xpc3Rfbm9kZSog
bm9kZV90b19pbnNlcnQ7Ci0gICAgdW5zaWduZWQgbm9kZV90b19pbnNlcnRfaGVpZ2h0OwotCi0g
ICAgZGF0YSA9IChwYXNfc2tpcF9saXN0X2luc2VydF9hZnRlcl9kYXRhKilhcmc7Ci0gICAgbm9k
ZV90b19pbnNlcnQgPSBkYXRhLT5ub2RlOwotICAgIG5vZGVfdG9faW5zZXJ0X2hlaWdodCA9IGRh
dGEtPm5vZGVfaGVpZ2h0OwotCi0gICAgaWYgKGluZGV4ID49IG5vZGVfdG9faW5zZXJ0X2hlaWdo
dCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfY29t
cGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJfaXNfbnVsbCgmbm9kZV90b19pbnNlcnQtPmxldmVsW2lu
ZGV4XS5wcmV2KSk7Ci0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19jb21wYWN0X3NraXBfbGlz
dF9ub2RlX3B0cl9pc19udWxsKCZub2RlX3RvX2luc2VydC0+bGV2ZWxbaW5kZXhdLm5leHQpKTsK
LSAgICAKLSAgICBQQVNfVEVTVElOR19BU1NFUlQobmV4dF9ub2RlICE9IG5vZGUpOwotICAgIFBB
U19URVNUSU5HX0FTU0VSVChuZXh0X25vZGUgIT0gbm9kZV90b19pbnNlcnQpOwotICAgIAotICAg
IHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9zdG9yZSgKLSAgICAgICAgJm5vZGVfdG9f
aW5zZXJ0LT5sZXZlbFtpbmRleF0ucHJldiwKLSAgICAgICAgbm9kZSk7Ci0gICAgcGFzX2NvbXBh
Y3Rfc2tpcF9saXN0X25vZGVfcHRyX3N0b3JlKAotICAgICAgICAmbm9kZV90b19pbnNlcnQtPmxl
dmVsW2luZGV4XS5uZXh0LAotICAgICAgICBuZXh0X25vZGUpOwotICAgIGlmIChuZXh0X25vZGUp
IHsKLSAgICAgICAgcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX3N0b3JlKAotICAgICAg
ICAgICAgJm5leHRfbm9kZS0+bGV2ZWxbaW5kZXhdLnByZXYsCi0gICAgICAgICAgICBub2RlX3Rv
X2luc2VydCk7Ci0gICAgfQotICAgIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9zdG9y
ZSgKLSAgICAgICAgJm5vZGUtPmxldmVsW2luZGV4XS5uZXh0LAotICAgICAgICBub2RlX3RvX2lu
c2VydCk7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkCi1wYXNfc2tpcF9saXN0
X2luc2VydCgKLSAgICBwYXNfc2tpcF9saXN0KiBsaXN0LAotICAgIHZvaWQqIGtleSwKLSAgICBw
YXNfc2tpcF9saXN0X25vZGUqIG5vZGUsCi0gICAgcGFzX3NraXBfbGlzdF9ub2RlX2tleV9jb21w
YXJlX2NhbGxiYWNrIGNvbXBhcmVfa2V5KQotewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJv
c2UgPSBmYWxzZTsKLSAgICAKLSAgICBwYXNfc2tpcF9saXN0X2luc2VydF9hZnRlcl9kYXRhIGRh
dGE7Ci0gICAgcGFzX3NraXBfbGlzdF9maW5kX3Jlc3VsdCBmaW5kX3Jlc3VsdDsKLSAgICB1bnNp
Z25lZCBpbmRleDsKLSAgICB1bnNpZ25lZCBub2RlX2hlaWdodDsKLSAgICB1bnNpZ25lZCBsaXN0
X2hlaWdodDsKLQotICAgIG5vZGVfaGVpZ2h0ID0gbm9kZS0+aGVpZ2h0OwotCi0gICAgaWYgKHZl
cmJvc2UpIHsKLSAgICAgICAgcGFzX2xvZygiSW5zZXJ0aW5nOiBsaXN0ID0gJXAsIGtleSA9ICVw
LCBub2RlID0gJXAsIG5vZGUgaGVpZ2h0ID0gJXUuXG4iLAotICAgICAgICAgICAgICAgIGxpc3Qs
Ci0gICAgICAgICAgICAgICAga2V5LAotICAgICAgICAgICAgICAgIG5vZGUsCi0gICAgICAgICAg
ICAgICAgbm9kZV9oZWlnaHQpOwotICAgIH0KLQotICAgIGZvciAoaW5kZXggPSBub2RlX2hlaWdo
dDsgaW5kZXgtLTspIHsKLSAgICAgICAgcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX3N0
b3JlKCZub2RlLT5sZXZlbFtpbmRleF0ucHJldiwgTlVMTCk7Ci0gICAgICAgIHBhc19jb21wYWN0
X3NraXBfbGlzdF9ub2RlX3B0cl9zdG9yZSgmbm9kZS0+bGV2ZWxbaW5kZXhdLm5leHQsIE5VTEwp
OwotICAgIH0KLQotICAgIGRhdGEubm9kZSA9IG5vZGU7Ci0gICAgZGF0YS5ub2RlX2hlaWdodCA9
IG5vZGVfaGVpZ2h0OwotCi0gICAgZmluZF9yZXN1bHQgPSBwYXNfc2tpcF9saXN0X2ZpbmRfaW1w
bCgKLSAgICAgICAgbGlzdCwga2V5LCBjb21wYXJlX2tleSwKLSAgICAgICAgcGFzX3NraXBfbGlz
dF9pbnNlcnRfYWZ0ZXJfbm90ZV9oZWFkX2F0dGFjaG1lbnQsCi0gICAgICAgIHBhc19za2lwX2xp
c3RfaW5zZXJ0X2FmdGVyX25vdGVfcG9sZV9hdHRhY2htZW50LAotICAgICAgICAmZGF0YSk7Ci0K
LSAgICBQQVNfQVNTRVJUKCFmaW5kX3Jlc3VsdC5kaWRfZmluZF9leGFjdCk7Ci0KLSAgICBsaXN0
X2hlaWdodCA9IGxpc3QtPmhlaWdodDsKLSAgICBpZiAobm9kZV9oZWlnaHQgPiBsaXN0X2hlaWdo
dCkgewotICAgICAgICBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHIqIGhlYWQ7Ci0KLSAg
ICAgICAgaGVhZCA9IHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9wdHJfbG9hZCgmbGlz
dC0+aGVhZCk7Ci0gICAgICAgIAotICAgICAgICBpZiAobm9kZV9oZWlnaHQgPiBsaXN0LT5oZWln
aHRfY2FwYWNpdHkpIHsKLSAgICAgICAgICAgIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0
ciogbmV3X2hlYWQ7Ci0KLSAgICAgICAgICAgIG5ld19oZWFkID0gKHBhc19jb21wYWN0X3NraXBf
bGlzdF9ub2RlX3B0ciopCi0gICAgICAgICAgICAgICAgcGFzX3V0aWxpdHlfaGVhcF9hbGxvY2F0
ZSgKLSAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2Rl
X3B0cikgKiBub2RlX2hlaWdodCwKLSAgICAgICAgICAgICAgICAgICAgInBhc19za2lwX2lzdC9o
ZWFkIik7Ci0KLSAgICAgICAgICAgIG1lbWNweShuZXdfaGVhZCwgaGVhZCwKLSAgICAgICAgICAg
ICAgICAgICBzaXplb2YocGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyKSAqIGxpc3RfaGVp
Z2h0KTsKLQotICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX3B0cl9z
dG9yZSgmbGlzdC0+aGVhZCwgbmV3X2hlYWQpOwotICAgICAgICAgICAgbGlzdC0+aGVpZ2h0X2Nh
cGFjaXR5ID0gbm9kZV9oZWlnaHQ7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc191dGls
aXR5X2hlYXBfZGVhbGxvY2F0ZShoZWFkKTsKLQotICAgICAgICAgICAgaGVhZCA9IG5ld19oZWFk
OwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChpbmRleCA9IG5vZGVfaGVpZ2h0OyBpbmRleC0t
ID4gbGlzdF9oZWlnaHQ7KQotICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVf
cHRyX3N0b3JlKGhlYWQgKyBpbmRleCwgbm9kZSk7Ci0KLSAgICAgICAgbGlzdC0+aGVpZ2h0ID0g
bm9kZV9oZWlnaHQ7Ci0gICAgfQotfQotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyog
UEFTX1NLSVBfTElTVF9JTkxJTkVTX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRlci5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuYwkocmV2aXNpb24g
Mjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1c19y
ZXBvcnRlci5jCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMiArMzcsMTQgQEAKICNpbmNsdWRlICJw
YXNfYml0Zml0X3NpemVfY2xhc3MuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXcuaCIKICNp
bmNsdWRlICJwYXNfY29tcGFjdF9ib290c3RyYXBfZnJlZV9oZWFwLmgiCisjaW5jbHVkZSAicGFz
X2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuaCIKICNpbmNsdWRlICJwYXNfY29tcGFjdF9sYXJn
ZV91dGlsaXR5X2ZyZWVfaGVhcC5oIgogI2luY2x1ZGUgInBhc19mZF9zdHJlYW0uaCIKICNpbmNs
dWRlICJwYXNfaGVhcC5oIgogI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKICNpbmNsdWRlICJw
YXNfaGVhcF9zdW1tYXJ5LmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfdGFibGUuaCIKKyNpbmNsdWRl
ICJwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfaGVh
cC5oIgogI2luY2x1ZGUgInBhc19sYXJnZV9tYXAuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2Vfc2hh
cmluZ19wb29sLmgiCkBAIC0zODYsOSArMzg4LDE2IEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRl
cl9kdW1wX3NlZ3JlZ2F0ZWQKICAgICAKICAgICBwYXNfc3RyZWFtX3ByaW50ZigKICAgICAgICAg
c3RyZWFtLAotICAgICAgICAiICAgICAgICBTaGFyZWQgUGFnZSBEaXIgJXAoJXMpOiBOdW0gVmll
d3M6ICV6dSwgIiwKKyAgICAgICAgIiAgICAgICAgU2hhcmVkIFBhZ2UgRGlyICVwKCVzLCAiLAog
ICAgICAgICBkaXJlY3RvcnksCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tp
bmRfZ2V0X3N0cmluZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCksCisgICAgICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhkaXJlY3RvcnktPmJh
c2UucGFnZV9jb25maWdfa2luZCkpOworCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
a2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKS0+YmFzZS5o
ZWFwX2NvbmZpZ19wdHIKKyAgICAgICAgLT5kdW1wX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9hcmco
c3RyZWFtLCBkaXJlY3RvcnkpOworCisgICAgcGFzX3N0cmVhbV9wcmludGYoCisgICAgICAgIHN0
cmVhbSwKKyAgICAgICAgIik6IE51bSBWaWV3czogJXp1LCAiLAogICAgICAgICBwYXNfc2VncmVn
YXRlZF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5LT5iYXNlKSk7CiAKICAgICBzdW1tYXJ5ID0g
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2NvbXB1dGVfc3VtbWFyeSgmZGlyZWN0b3J5LT5iYXNl
KTsKQEAgLTU2MSwxOCArNTcwLDEwIEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2hl
YXAocGFzX3MKICAgICBjb25maWcgPSBwYXNfaGVhcF9jb25maWdfa2luZF9nZXRfY29uZmlnKGhl
YXAtPmNvbmZpZ19raW5kKTsKICAgICAKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIg
ICAgSGVhcCAlcDpcbiIsIGhlYXApOwotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAg
ICAgICAgU2l6ZSA9ICV6dSwgQWxpZ25tZW50ID0gJXp1XG4iLAotICAgICAgICAgICAgICAgICAg
ICAgIGNvbmZpZy0+Z2V0X3R5cGVfc2l6ZShoZWFwLT50eXBlKSwKLSAgICAgICAgICAgICAgICAg
ICAgICBjb25maWctPmdldF90eXBlX2FsaWdubWVudChoZWFwLT50eXBlKSk7Ci0jaWYgUEFTX0VO
QUJMRV9JU08KLSAgICBpZiAoY29uZmlnLT5raW5kID09IHBhc19oZWFwX2NvbmZpZ19raW5kX2lz
bykgewotICAgICAgICBwYXNfc2ltcGxlX3R5cGUgdHlwZTsKLQotICAgICAgICB0eXBlID0gKHBh
c19zaW1wbGVfdHlwZSloZWFwLT50eXBlOwotICAgICAgICBpZiAocGFzX3NpbXBsZV90eXBlX2hh
c19rZXkodHlwZSkpCi0gICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAg
ICAgIEtleSA9ICVwXG4iLCBwYXNfc2ltcGxlX3R5cGVfa2V5KHR5cGUpKTsKLSAgICB9Ci0jZW5k
aWYKKworICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICAgICAgJXMsICIsIHBhc19o
ZWFwX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoaGVhcC0+Y29uZmlnX2tpbmQpKTsKKyAgICBjb25m
aWctPmR1bXBfdHlwZShoZWFwLT50eXBlLCBzdHJlYW0pOworICAgIHBhc19zdHJlYW1fcHJpbnRm
KHN0cmVhbSwgIlxuIik7CiAgICAgCiAgICAgc3VtbWFyeSA9IHBhc19oZWFwX2NvbXB1dGVfc3Vt
bWFyeShoZWFwLCBwYXNfbG9ja19pc19oZWxkKTsKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJl
YW0sICIgICAgICAgIFRvdGFsIFN1bW1hcnk6ICIpOwpAQCAtOTczLDcgKzk3NCw3IEBAIHZvaWQg
cGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RocmVhZF9sb2MKICAgICAgICAgICAgIGlmIChhbGxv
Y2F0b3JfaW5kZXggPj0gY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZCkKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAotICAgICAgICAgICAgYWxsb2NhdG9yID0g
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoY2FjaGUsIGFs
bG9jYXRvcl9pbmRleCk7CisgICAgICAgICAgICBhbGxvY2F0b3IgPSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0KGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgp
OwogICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIiAgICAgICAgICAgICV1OiBkaXJlY3RvcnkgPSAlcCwgJXNcbiIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXgsCkBAIC05ODYsMTEg
Kzk4Nyw3MiBAQCB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF90aHJlYWRfbG9jCiB2b2lk
IHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9jb25maWd1cmF0aW9uKHBhc19zdHJlYW0qIHN0cmVh
bSkKIHsKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgTXByb3RlY3QgRGVjb21t
aXR0ZWQ6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19tcHJv
dGVjdF9kZWNvbW1pdHRlZCA/ICJ5ZXMiIDogIm5vIik7CisgICAgICAgICAgICAgICAgICAgICAg
UEFTX01QUk9URUNUX0RFQ09NTUlUVEVEID8gInllcyIgOiAibm8iKTsKK30KKwordm9pZCBwYXNf
c3RhdHVzX3JlcG9ydGVyX2R1bXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2wocGFzX3N0cmVh
bSogc3RyZWFtKQoreworICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICBQaHlzaWNh
bCBQYWdlIFNoYXJpbmcgUG9vbCBCYWxhbmNlOiAlbGRcbiIsCisgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX2JhbGFuY2UpOworfQorCitzdGF0aWMg
dm9pZCBkdW1wX2V4cGVuZGFibGVfbWVtb3J5KHBhc19zdHJlYW0qIHN0cmVhbSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2V4cGVuZGFibGVfbWVtb3J5KiBoZWFkZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIHBheWxvYWQpCit7Cisg
ICAgc2l6ZV90IGluZGV4OworICAgIHNpemVfdCBpbmRleF9lbmQ7CisKKyAgICBwYXNfc3RyZWFt
X3ByaW50ZihzdHJlYW0sICJIZWFkZXIgPSAlcCwgUGF5bG9hZCA9ICVwLi4uJXAsIFBhZ2UgU3Rh
dGVzOiAiLAorICAgICAgICAgICAgICAgICAgICAgIGhlYWRlciwgcGF5bG9hZCwgKGNoYXIqKXBh
eWxvYWQgKyBoZWFkZXItPnNpemUpOworCisgICAgaW5kZXhfZW5kID0gcGFzX2V4cGVuZGFibGVf
bWVtb3J5X251bV9wYWdlc19pbl91c2UoaGVhZGVyKTsKKworICAgIGZvciAoaW5kZXggPSAwOyBp
bmRleCA8IGluZGV4X2VuZDsgKytpbmRleCkgeworICAgICAgICBwYXNfZXhwZW5kYWJsZV9tZW1v
cnlfc3RhdGVfa2luZCBraW5kOworCisgICAgICAgIGtpbmQgPSBwYXNfZXhwZW5kYWJsZV9tZW1v
cnlfc3RhdGVfZ2V0X2tpbmQoaGVhZGVyLT5zdGF0ZXNbaW5kZXhdKTsKKworICAgICAgICBzd2l0
Y2ggKGtpbmQpIHsKKyAgICAgICAgY2FzZSBQQVNfRVhQRU5EQUJMRV9NRU1PUllfU1RBVEVfS0lO
RF9ERUNPTU1JVFRFRDoKKyAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIkQi
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFBBU19FWFBFTkRBQkxFX01FTU9S
WV9TVEFURV9LSU5EX0lOVEVSSU9SOgorICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3Ry
ZWFtLCAiSSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICBQQVNfQVNTRVJUKGtpbmQgPj0gUEFTX0VYUEVOREFCTEVfTUVNT1JZX1NUQVRFX0tJTkRf
SlVTVF9VU0VEKTsKKyAgICAgICAgICAgIFBBU19BU1NFUlQoa2luZCA8PSBQQVNfRVhQRU5EQUJM
RV9NRU1PUllfU1RBVEVfS0lORF9NQVhfSlVTVF9VU0VEKTsKKyAgICAgICAgICAgIFBBU19BU1NF
UlQoa2luZCAtIFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0pVU1RfVVNFRCA8IDEw
KTsKKyAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiV1Iiwga2luZCAtIFBB
U19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0pVU1RfVVNFRCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1
bXBfZXhwZW5kYWJsZV9tZW1vcmllcyhwYXNfc3RyZWFtKiBzdHJlYW0pCit7CisgICAgcGFzX2xh
cmdlX2V4cGVuZGFibGVfbWVtb3J5KiBsYXJnZV9tZW1vcnk7CisKKyAgICBwYXNfaGVhcF9sb2Nr
X2Fzc2VydF9oZWxkKCk7CisKKyAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgQ29t
cGFjdCBFeHBlbmRhYmxlIE1lbW9yeTogIik7CisgICAgZHVtcF9leHBlbmRhYmxlX21lbW9yeSgK
KyAgICAgICAgc3RyZWFtLCAmcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnlfaGVhZGVyLmhl
YWRlciwgcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnlfcGF5bG9hZCk7CisgICAgcGFzX3N0
cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKKworICAgIGZvciAobGFyZ2VfbWVtb3J5ID0gcGFz
X2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5X2hlYWQ7IGxhcmdlX21lbW9yeTsgbGFyZ2VfbWVtb3J5
ID0gbGFyZ2VfbWVtb3J5LT5uZXh0KSB7CisgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVh
bSwgIiAgICBMYXJnZSBFeHBlbmRhYmxlIE1lbW9yeTogIik7CisgICAgICAgIGR1bXBfZXhwZW5k
YWJsZV9tZW1vcnkoCisgICAgICAgICAgICBzdHJlYW0sICZsYXJnZV9tZW1vcnktPmhlYWRlciwg
cGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5X3BheWxvYWQobGFyZ2VfbWVtb3J5KSk7CisgICAg
ICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7CisgICAgfQogfQogCiB2b2lkIHBh
c19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9ldmVyeXRoaW5nKHBhc19zdHJlYW0qIHN0cmVhbSkKIHsK
KyAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CisgICAgCiAgICAgcGFzX3N0cmVhbV9w
cmludGYoc3RyZWFtLCAiJWQ6IEhlYXAgU3RhdHVzOlxuIiwgZ2V0cGlkKCkpOwogICAgIHBhc19z
dGF0dXNfcmVwb3J0ZXJfZHVtcF9hbGxfaGVhcHMoc3RyZWFtKTsKICAgICBwYXNfc3RhdHVzX3Jl
cG9ydGVyX2R1bXBfYWxsX3NoYXJlZF9wYWdlX2RpcmVjdG9yaWVzKHN0cmVhbSk7CkBAIC0xMDM3
LDYgKzEwOTksOCBAQCB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9ldmVyeXRoaW5nCiAg
ICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKIAogICAgIHBhc19zdGF0dXNfcmVw
b3J0ZXJfZHVtcF9jb25maWd1cmF0aW9uKHN0cmVhbSk7CisgICAgcGFzX3N0YXR1c19yZXBvcnRl
cl9kdW1wX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sKHN0cmVhbSk7CisgICAgcGFzX3N0YXR1
c19yZXBvcnRlcl9kdW1wX2V4cGVuZGFibGVfbWVtb3JpZXMoc3RyZWFtKTsKIH0KIAogc3RhdGlj
IHZvaWQqIHN0YXR1c19yZXBvcnRlcl90aHJlYWRfbWFpbih2b2lkKiBhcmcpCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1c19yZXBv
cnRlci5oCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDgg
QEAgUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF90aQogUEFTX0FQSSB2b2lk
IHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iYXNlbGluZV9hbGxvY2F0b3JzKHBhc19zdHJlYW0q
IHN0cmVhbSk7CiBQQVNfQVBJIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RocmVhZF9s
b2NhbF9jYWNoZXMocGFzX3N0cmVhbSogc3RyZWFtKTsKIFBBU19BUEkgdm9pZCBwYXNfc3RhdHVz
X3JlcG9ydGVyX2R1bXBfY29uZmlndXJhdGlvbihwYXNfc3RyZWFtKiBzdHJlYW0pOworUEFTX0FQ
SSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9v
bChwYXNfc3RyZWFtKiBzdHJlYW0pOworUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJf
ZHVtcF9leHBlbmRhYmxlX21lbW9yaWVzKHBhc19zdHJlYW0qIHN0cmVhbSk7CiBQQVNfQVBJIHZv
aWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2V2ZXJ5dGhpbmcocGFzX3N0cmVhbSogc3RyZWFt
KTsKIAogUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfc3RhcnRfaWZfbmVjZXNzYXJ5
KHZvaWQpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuYwkocmV2aXNpb24gMjg1Nzg1KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDggQEAgc3RhdGljIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIGFsbG9jYXRlXwogICAgIHNpemVfdCBzaXplOwogICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIHJlc3VsdDsKIAorICAgIFBBU19BU1NFUlQoYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5
ID49IFBBU19MT0NBTF9BTExPQ0FUT1JfVU5TRUxFQ1RFRF9OVU1fSU5ESUNFUyk7CisKICAgICBz
aXplID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zaXplX2Zvcl9hbGxvY2F0b3JfaW5kZXhfY2Fw
YWNpdHkoYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KTsKICAgICAKICAgICBpZiAodmVyYm9zZSkK
QEAgLTE1OCw2ICsxNjAsMTAgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogcGFzX3RocmVhZF9s
b2NhbAogICAgIAogICAgIHRocmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVy
X2JvdW5kID0gYWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kOwogCisgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9jb25zdHJ1Y3RfdW5zZWxlY3RlZCgKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdF91bmNoZWNrZWQoCisgICAgICAgICAgICB0
aHJlYWRfbG9jYWxfY2FjaGUsIFBBU19MT0NBTF9BTExPQ0FUT1JfVU5TRUxFQ1RFRF9JTkRFWCkp
OworCiAgICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRP
UihsYXlvdXRfbm9kZSkpCiAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfY29uc3RydWN0KGxheW91dF9ub2RlLCB0aHJlYWRfbG9jYWxfY2FjaGUpOwogCkBAIC0yMjAs
NyArMjI2LDggQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgcGFzX3RocmVhZF9sbwogICAg
IHVuc2lnbmVkIGRlc2lyZWRfaW5kZXhfdXBwZXJfYm91bmQ7CiAKICAgICBvbGRfaW5kZXhfdXBw
ZXJfYm91bmQgPSB0aHJlYWRfbG9jYWxfY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3Vu
ZDsKLSAgICAKKworICAgIFBBU19BU1NFUlQoZGVzaXJlZF9hbGxvY2F0b3JfaW5kZXgpOwogICAg
IFBBU19BU1NFUlQoZGVzaXJlZF9hbGxvY2F0b3JfaW5kZXggPj0gb2xkX2luZGV4X3VwcGVyX2Jv
dW5kKTsKICAgICBQQVNfQVNTRVJUKGRlc2lyZWRfYWxsb2NhdG9yX2luZGV4IDwgKHBhc19hbGxv
Y2F0b3JfaW5kZXgpVUlOVF9NQVgpOwogICAgIApAQCAtMjUyLDYgKzI1OSwxMCBAQCBwYXNfbG9j
YWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfdGhyZWFkX2xvCiAgICAgICAgIG5ld190aHJlYWRfbG9j
YWxfY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZCA9CiAgICAgICAgICAgICB0aHJl
YWRfbG9jYWxfY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZDsKIAorICAgICAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yX2NvbnN0cnVjdF91bnNlbGVjdGVkKAorICAgICAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdF91bmNoZWNrZWQo
CisgICAgICAgICAgICAgICAgbmV3X3RocmVhZF9sb2NhbF9jYWNoZSwgUEFTX0xPQ0FMX0FMTE9D
QVRPUl9VTlNFTEVDVEVEX0lOREVYKSk7CisgICAgICAgIAogICAgICAgICBmb3IgKFBBU19USFJF
QURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dF9ub2RlKSkgewogICAg
ICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CiAgICAgICAgICAg
ICAKQEAgLTI5OCwxOCArMzA5LDE5IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHBhc190
aHJlYWRfbG8KICAgICAKICAgICBQQVNfQVNTRVJUKGRlc2lyZWRfYWxsb2NhdG9yX2luZGV4IDwg
bmV3X3RocmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKTsKICAg
ICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoCi0gICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKG5ld190
aHJlYWRfbG9jYWxfY2FjaGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRlc2lyZWRfYWxsb2NhdG9yX2luZGV4KSk7CisgICAgICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9kaXJlY3QobmV3X3RocmVh
ZF9sb2NhbF9jYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkZXNpcmVkX2FsbG9jYXRvcl9pbmRleCkpOwogfQogCiBwYXNfbG9j
YWxfYWxsb2NhdG9yX3Jlc3VsdAotcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxs
b2NhdG9yX2lmX2Nhbl9zZXRfY2FjaGVfc2xvdyh1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXgsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19oZWFwX2NvbmZpZyogaGVhcF9jb25maWcpCitwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaWZfY2FuX3NldF9jYWNoZV9mb3JfcG9zc2libHlfdW5p
bml0aWFsaXplZF9pbmRleF9zbG93KAorICAgIHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleCwKKyAg
ICBwYXNfaGVhcF9jb25maWcqIGhlYXBfY29uZmlnKQogewogICAgIGlmICghcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9jYW5fc2V0KCkgfHwgcGFzX2RlYnVnX2hlYXBfaXNfZW5hYmxlZChoZWFwX2Nv
bmZpZy0+a2luZCkpCiAgICAgICAgIHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdF9j
cmVhdGVfZmFpbHVyZSgpOwogCi0gICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0
X2xvY2FsX2FsbG9jYXRvcigKKyAgICByZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRf
bG9jYWxfYWxsb2NhdG9yX2Zvcl9wb3NzaWJseV91bmluaXRpYWxpemVkX2luZGV4KAogICAgICAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldChoZWFwX2NvbmZpZyksCiAgICAgICAgIGFsbG9j
YXRvcl9pbmRleCwKICAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwpAQCAtMzcxLDEzICsz
ODMsMTQgQEAgc3RhdGljIGJvb2wgc3RvcF9sb2NhbF9hbGxvY2F0b3JzX2lmX25lYwogCiAgICAg
ZGF0YSA9IGFyZzsKIAotICAgIGFsbG9jYXRvcl9pbmRleCA9IGluZGV4LmluZGV4OworICAgIGFs
bG9jYXRvcl9pbmRleCA9IChwYXNfYWxsb2NhdG9yX2luZGV4KWluZGV4LmluZGV4OworICAgIFBB
U19BU1NFUlQoYWxsb2NhdG9yX2luZGV4ID09IGluZGV4LmluZGV4KTsKIAogICAgIFBBU19URVNU
SU5HX0FTU0VSVChwYXNfYml0dmVjdG9yX2dldChkYXRhLT5zaG91bGRfc3RvcF9iaXR2ZWN0b3Is
IGFsbG9jYXRvcl9pbmRleCkpOwogICAgIAogICAgIHBhc19iaXR2ZWN0b3Jfc2V0KGRhdGEtPnNo
b3VsZF9zdG9wX2JpdHZlY3RvciwgYWxsb2NhdG9yX2luZGV4LCBmYWxzZSk7CiAgICAgCi0gICAg
c2NhdmVuZ2VyX2RhdGEgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0
b3JfaW1wbCgKKyAgICBzY2F2ZW5nZXJfZGF0YSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0
X2xvY2FsX2FsbG9jYXRvcl9kaXJlY3QoCiAgICAgICAgIGRhdGEtPnRocmVhZF9sb2NhbF9jYWNo
ZSwgYWxsb2NhdG9yX2luZGV4KTsKIAogICAgIGlmICgocGFzX2xvY2FsX2FsbG9jYXRvciopc2Nh
dmVuZ2VyX2RhdGEgPT0gZGF0YS0+cmVxdWVzdGluZ19hbGxvY2F0b3IpCkBAIC02NDQsNyArNjU3
LDcgQEAgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzXwogICAgICAgICAg
ICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPj0gY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBl
cl9ib3VuZCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgICAgICBz
Y2F2ZW5nZXJfZGF0YSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRv
cl9pbXBsKGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOworICAgICAgICAgICAgICAgIHNjYXZlbmdl
cl9kYXRhID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVj
dChjYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKIAogICAgICAgICAgICAgICAgIGlmIChhbGxvY2F0
b3JfYWN0aW9uID09IHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfcmVxdWVzdF9zdG9wX2FjdGlvbikg
ewogICAgICAgICAgICAgICAgICAgICB1aW50OF90IHNob3VsZF9zdG9wX2NvdW50OwpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJl
YWRfbG9jYWxfY2FjaGUuaAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xODMsMTkgKzE4Myw1MCBAQCBQQVNfQVBJIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHBh
c190CiAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKLXBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xv
Y2FsX2FsbG9jYXRvcl9pbXBsKAorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxs
b2NhdG9yX2RpcmVjdF93aXRob3V0X2FueV9jaGVja3Nfd2hhdHNvZXZlcigKICAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgdWludHB0cl90IGFsbG9j
YXRvcl9pbmRleCkKIHsKICAgICByZXR1cm4gKHZvaWQqKSh0aHJlYWRfbG9jYWxfY2FjaGUtPmxv
Y2FsX2FsbG9jYXRvcnMgKyBhbGxvY2F0b3JfaW5kZXgpOwogfQogCitzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgdm9pZCoKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRv
cl9kaXJlY3RfZm9yX2luaXRpYWxpemF0aW9uKAorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUq
IHRocmVhZF9sb2NhbF9jYWNoZSwKKyAgICB1aW50cHRyX3QgYWxsb2NhdG9yX2luZGV4KQorewor
ICAgIFBBU19BU1NFUlQoYWxsb2NhdG9yX2luZGV4IDwgdGhyZWFkX2xvY2FsX2NhY2hlLT5hbGxv
Y2F0b3JfaW5kZXhfY2FwYWNpdHkpOworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0X3dpdGhvdXRfYW55X2NoZWNrc193aGF0c29ldmVy
KAorICAgICAgICB0aHJlYWRfbG9jYWxfY2FjaGUsIGFsbG9jYXRvcl9pbmRleCk7Cit9CisKK3N0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRf
bG9jYWxfYWxsb2NhdG9yX2RpcmVjdF91bmNoZWNrZWQoCisgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAgIHVpbnRwdHJfdCBhbGxvY2F0b3JfaW5kZXgp
Cit7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGFsbG9jYXRvcl9pbmRleCA8IHRocmVhZF9sb2Nh
bF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKTsKKyAgICByZXR1cm4gcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdF93aXRob3V0X2FueV9j
aGVja3Nfd2hhdHNvZXZlcigKKyAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLCBhbGxvY2F0b3Jf
aW5kZXgpOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKK3Bhc190aHJlYWRf
bG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9kaXJlY3QoCisgICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAgIHVpbnRwdHJfdCBhbGxvY2F0b3Jf
aW5kZXgpCit7CisgICAgUEFTX0FTU0VSVChhbGxvY2F0b3JfaW5kZXggPCB0aHJlYWRfbG9jYWxf
Y2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZCk7CisgICAgcmV0dXJuIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9kaXJlY3RfdW5jaGVja2VkKHRocmVh
ZF9sb2NhbF9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKK30KKwogc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0Ci1wYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2dldF9sb2NhbF9hbGxvY2F0b3IoCitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9h
bGxvY2F0b3JfZm9yX3Bvc3NpYmx5X3VuaW5pdGlhbGl6ZWRfYnV0X25vdF91bnNlbGVjdGVkX2lu
ZGV4KAogICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKICAg
ICB1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXgsCiAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBf
bG9ja19ob2xkX21vZGUpCiB7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGFsbG9jYXRvcl9pbmRl
eCk7CisgICAgCiAgICAgaWYgKFBBU19VTkxJS0VMWShhbGxvY2F0b3JfaW5kZXggPj0gdGhyZWFk
X2xvY2FsX2NhY2hlLT5hbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpKSB7CiAgICAgICAgIC8q
IEl0IGNvdWxkIGJlIHRoYXQgd2UganVzdCBkb24ndCBoYXZlIGFuIGFsbG9jYXRvciBpbmRleCB5
ZXQuICovCiAgICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPj0gKHBhc19hbGxvY2F0b3JfaW5k
ZXgpVUlOVF9NQVgpCkBAIC0yMDYsMTEgKzIzNywzOSBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2dldF9sb2NhbF9hbGxvY2F0CiAgICAgfQogICAgIAogICAgIHJldHVybiBwYXNfbG9jYWxfYWxs
b2NhdG9yX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcygKLSAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwodGhyZWFkX2xvY2FsX2NhY2hlLCBhbGxvY2F0
b3JfaW5kZXgpKTsKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxs
b2NhdG9yX2RpcmVjdF91bmNoZWNrZWQodGhyZWFkX2xvY2FsX2NhY2hlLCBhbGxvY2F0b3JfaW5k
ZXgpKTsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19sb2NhbF9hbGxvY2F0b3Jf
cmVzdWx0Ci1wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXRfbG9jYWxfYWxsb2NhdG9yKAor
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2Zvcl9pbml0aWFsaXpl
ZF9pbmRleCgKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUs
CisgICAgdW5zaWduZWQgYWxsb2NhdG9yX2luZGV4LAorICAgIHBhc19sb2NrX2hvbGRfbW9kZSBo
ZWFwX2xvY2tfaG9sZF9tb2RlKQoreworICAgIFBBU19URVNUSU5HX0FTU0VSVChhbGxvY2F0b3Jf
aW5kZXggIT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOworICAgIFBBU19URVNUSU5H
X0FTU0VSVChhbGxvY2F0b3JfaW5kZXggIT0gVUlOVF9NQVgpOworCisgICAgcmV0dXJuIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9mb3JfcG9zc2libHlfdW5pbml0
aWFsaXplZF9idXRfbm90X3Vuc2VsZWN0ZWRfaW5kZXgoCisgICAgICAgIHRocmVhZF9sb2NhbF9j
YWNoZSwgYWxsb2NhdG9yX2luZGV4LCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKK30KKworc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0CitwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZm9yX3Bvc3NpYmx5X3VuaW5pdGlhbGl6
ZWRfaW5kZXgoCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hl
LAorICAgIHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleCwKKyAgICBwYXNfbG9ja19ob2xkX21vZGUg
aGVhcF9sb2NrX2hvbGRfbW9kZSkKK3sKKyAgICBpZiAoIWFsbG9jYXRvcl9pbmRleCkKKyAgICAg
ICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CisK
KyAgICByZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2Zv
cl9pbml0aWFsaXplZF9pbmRleCgKKyAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLCBhbGxvY2F0
b3JfaW5kZXgsIGhlYXBfbG9ja19ob2xkX21vZGUpOworfQorCisvKiBUaGlzIGlzIGFwcHJvcHJp
YXRlIGZvciB1c2Ugd2hlbiB3ZSdyZSBnb2luZyB0byB0YWtlIG9uZSBvZiB0aGUgaW5saW5lX29u
bHkgcGF0aHMsIHdoaWNoIGNhbiAiaGFuZGxlIiB0aGUKKyAgIHVuc2VsZWN0ZWQgYWxsb2NhdG9y
IGJ5IGZhaWxpbmcuICovCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2xvY2FsX2FsbG9j
YXRvcl9yZXN1bHQKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldF9sb2NhbF9hbGxvY2F0
b3Jfb3JfdW5zZWxlY3RlZF9mb3JfdW5pbml0aWFsaXplZF9pbmRleCgKICAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgdW5zaWduZWQgYWxsb2NhdG9y
X2luZGV4KQogewpAQCAtMjE4LDI3ICsyNzcsNDIgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90
cnlfZ2V0X2xvY2FsX2FsbAogICAgICAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1
bHRfY3JlYXRlX2ZhaWx1cmUoKTsKICAgICAKICAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRv
cl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoCi0gICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
Z2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKHRocmVhZF9sb2NhbF9jYWNoZSwgYWxsb2NhdG9yX2lu
ZGV4KSk7CisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRv
cl9kaXJlY3RfdW5jaGVja2VkKHRocmVhZF9sb2NhbF9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSk7
Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3Vs
dAorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xvY2FsX2FsbG9jYXRvcl9mb3JfcG9z
c2libHlfdW5pbml0aWFsaXplZF9idXRfbm90X3Vuc2VsZWN0ZWRfaW5kZXgoCisgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAgIHVuc2lnbmVkIGFsbG9j
YXRvcl9pbmRleCkKK3sKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoYWxsb2NhdG9yX2luZGV4KTsK
KworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXRfbG9jYWxfYWxsb2Nh
dG9yX29yX3Vuc2VsZWN0ZWRfZm9yX3VuaW5pdGlhbGl6ZWRfaW5kZXgoCisgICAgICAgIHRocmVh
ZF9sb2NhbF9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKIH0KIAogUEFTX0FQSSBwYXNfbG9jYWxf
YWxsb2NhdG9yX3Jlc3VsdAotcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2Nh
dG9yX2lmX2Nhbl9zZXRfY2FjaGVfc2xvdyh1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXgsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19oZWFwX2NvbmZpZyogaGVhcF9jb25maWcpOworcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2lmX2Nhbl9zZXRfY2FjaGVfZm9yX3Bvc3NpYmx5X3VuaW5p
dGlhbGl6ZWRfaW5kZXhfc2xvdygKKyAgICB1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXgsCisgICAg
cGFzX2hlYXBfY29uZmlnKiBoZWFwX2NvbmZpZyk7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdAotcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRf
bG9jYWxfYWxsb2NhdG9yX2lmX2Nhbl9zZXRfY2FjaGUodW5zaWduZWQgYWxsb2NhdG9yX2luZGV4
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2hlYXBfY29uZmlnKiBoZWFwX2NvbmZpZykKK3Bhc190aHJlYWRfbG9jYWxfY2Fj
aGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pZl9jYW5fc2V0X2NhY2hlX2Zvcl9wb3NzaWJseV91bmlu
aXRpYWxpemVkX2luZGV4KAorICAgIHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleCwKKyAgICBwYXNf
aGVhcF9jb25maWcqIGhlYXBfY29uZmlnKQogewogICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUq
IGNhY2hlOwogCiAgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsK
IAogICAgIGlmIChQQVNfVU5MSUtFTFkoIWNhY2hlKSkgewotICAgICAgICByZXR1cm4gcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2lmX2Nhbl9zZXRfY2FjaGVfc2xv
dygKLSAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCwgaGVhcF9jb25maWcpOworICAgICAgICBy
ZXR1cm4KKyAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9j
YXRvcl9pZl9jYW5fc2V0X2NhY2hlX2Zvcl9wb3NzaWJseV91bmluaXRpYWxpemVkX2luZGV4X3Ns
b3coCisgICAgICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4LCBoZWFwX2NvbmZpZyk7CiAgICAg
fQogCi0gICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRv
cihjYWNoZSwgYWxsb2NhdG9yX2luZGV4LCBwYXNfbG9ja19pc19ub3RfaGVsZCk7CisgICAgcmV0
dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9mb3JfcG9zc2li
bHlfdW5pbml0aWFsaXplZF9pbmRleCgKKyAgICAgICAgY2FjaGUsIGFsbG9jYXRvcl9pbmRleCwg
cGFzX2xvY2tfaXNfbm90X2hlbGQpOwogfQogCiBQQVNfQVBJIHVuc2lnbmVkIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfZ2V0X251bV9hbGxvY2F0b3JzKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNh
Y2hlKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYwkocmV2aXNpb24gMjg1
Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXQuYwkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsOCBAQAogCiBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X2ZpcnN0X25vZGUgPSBOVUxMOwogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sYXN0X25vZGUgPSBOVUxMOwotcGFzX2Fs
bG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9uZXh0X2FsbG9jYXRv
cl9pbmRleCA9IDA7CitwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25leHRfYWxsb2NhdG9yX2luZGV4ID0KKyAgICBQQVNfTE9DQUxfQUxMT0NBVE9SX1VO
U0VMRUNURURfTlVNX0lORElDRVM7CiAKIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfYWRkX25vZGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZSBub2RlKQogewpAQCAtNDksOSArNTAsMTcgQEAgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNf
dGhyZWFkX2xvY2FsX2NhYwogCiAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwogCi0g
ICAgUEFTX0FTU0VSVCgKLSAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobm9kZSkKLSAgICAgICAgPT0gKHBhc19hbGxv
Y2F0b3JfaW5kZXgpVUlOVF9NQVgpOworICAgIHN3aXRjaCAocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9nZXRfa2luZChub2RlKSkgeworICAgIGNhc2UgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9ub2RlX2tpbmQ6CisgICAg
Y2FzZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9yZWR1bmRhbnRfbG9jYWxfYWxsb2Nh
dG9yX25vZGVfa2luZDoKKyAgICAgICAgUEFTX0FTU0VSVCghcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobm9kZSkpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2xvY2FsX3Zp
ZXdfY2FjaGVfbm9kZV9raW5kOgorICAgICAgICBQQVNfQVNTRVJUKAorICAgICAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVy
aWMobm9kZSkKKyAgICAgICAgICAgID09IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQogCiAgICAgUEFTX0FTU0VSVCghcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfbmV4dChub2RlKSk7CiAgICAgCkBAIC03NiwxMiArODUs
MTIgQEAgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhYwogICAgIAogICAg
IGlmICghcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZmlyc3Rfbm9kZSkgewogICAgICAg
ICBQQVNfQVNTRVJUKCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sYXN0X25vZGUpOwot
ICAgICAgICBQQVNfQVNTRVJUKCFyZXN1bHQpOworICAgICAgICBQQVNfQVNTRVJUKHJlc3VsdCA9
PSBQQVNfTE9DQUxfQUxMT0NBVE9SX1VOU0VMRUNURURfTlVNX0lORElDRVMpOwogICAgICAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9maXJzdF9ub2RlID0gbm9kZTsKICAgICAgICAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbGFzdF9ub2RlID0gbm9kZTsKICAgICB9IGVs
c2UgewogICAgICAgICBQQVNfQVNTRVJUKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2xh
c3Rfbm9kZSk7Ci0gICAgICAgIFBBU19BU1NFUlQocmVzdWx0KTsKKyAgICAgICAgUEFTX0FTU0VS
VChyZXN1bHQgPiBQQVNfTE9DQUxfQUxMT0NBVE9SX1VOU0VMRUNURURfTlVNX0lORElDRVMpOwog
ICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3NldF9uZXh0KHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2xhc3Rfbm9kZSwgbm9kZSk7CiAgICAgICAgIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2xhc3Rfbm9kZSA9IG5vZGU7CiAgICAgfQpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYwkocmV2aXNpb24gMjg1Nzg1
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsMTQgKzEzNiwxNCBAQCB2
b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfCiB7CiAgICAgaWYgKHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c19hbGxvY2F0b3Iobm9kZSkp
IHsKICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25zdHJ1Y3QoCi0gICAgICAgICAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKKyAgICAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9kaXJlY3RfZm9y
X2luaXRpYWxpemF0aW9uKAogICAgICAgICAgICAgICAgIGNhY2hlLCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZm9yX2FsbG9jYXRvcihub2Rl
KSksCiAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9k
aXJlY3Rvcnkobm9kZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfY29uc3RydWN0KAotICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dl
dF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9n
ZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdF9mb3JfaW5pdGlhbGl6YXRpb24oCiAgICAgICAgICAg
ICBjYWNoZSwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9y
X2luZGV4X2Zvcl92aWV3X2NhY2hlKG5vZGUpKSwKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0eSgKICAgICAgICAgICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2RpcmVjdG9yeShub2RlKSkpOwpAQCAtMTU5LDE0
ICsxNTksMTQgQEAgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlXwogICAg
IAogICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3JlcHJlc2VudHNf
YWxsb2NhdG9yKG5vZGUpKSB7CiAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfbW92ZSgKLSAg
ICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBs
KHRvX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpLAotICAgICAgICAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoZnJvbV9jYWNoZSwgYWxsb2NhdG9yX2lu
ZGV4KSk7CisgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxv
Y2F0b3JfZGlyZWN0X2Zvcl9pbml0aWFsaXphdGlvbih0b19jYWNoZSwgYWxsb2NhdG9yX2luZGV4
KSwKKyAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRv
cl9kaXJlY3QoZnJvbV9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9tb3ZlKAotICAgICAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCh0b19jYWNoZSwgYWxsb2Nh
dG9yX2luZGV4KSwKLSAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxs
b2NhdG9yX2ltcGwoZnJvbV9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSk7CisgICAgICAgIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9kaXJlY3RfZm9yX2luaXRpYWxp
emF0aW9uKHRvX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpLAorICAgICAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0KGZyb21fY2FjaGUsIGFsbG9jYXRv
cl9pbmRleCkpOwogfQogCiB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVf
c3RvcChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUsCkBAIC0xODAsNyAr
MTgwLDcgQEAgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlXwogICAgIHZv
aWQqIGFsbG9jYXRvcjsKIAogICAgIGFsbG9jYXRvcl9pbmRleCA9IHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKG5vZGUpOwotICAg
IGFsbG9jYXRvciA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9p
bXBsKGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOworICAgIGFsbG9jYXRvciA9IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9kaXJlY3QoY2FjaGUsIGFsbG9jYXRvcl9p
bmRleCk7CiAgICAgCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIlN0b3BwaW5n
IGFsbG9jYXRvciAlcCBiZWNhdXNlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9h
bGxvY2F0b3JzXG4iLCBhbGxvY2F0b3IpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGUuaAkocmV2aXNpb24gMjg1Nzg1KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
aGVhcC5oIgogI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCIKICNpbmNsdWRlICJw
YXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oIgotI2luY2x1ZGUgInBhc190eXBlZF9hbGxvY2F0aW9u
X3Jlc3VsdC5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKQEAgLTQ5LDgxICs0OCw2NiBAQCBQ
QVNfQkVHSU5fRVhURVJOX0M7CiAgICBJZiB5b3Ugd2FudCB0byBhbGxvY2F0ZSB3aXRoIG5vbnRy
aXZpYWwgY291bnQgKGkuZS4gYW4gYXJyYXkpIG9yIG5vbnRyaXZpYWwgYWxpZ25tZW50IChpLmUu
IG1lbWFsaWduKQogICAgdGhlbiB1c2UgdGhlIHBhc190cnlfYWxsb2NhdGVfYXJyYXkuaCBlbnRy
eXBvaW50cy4gKi8KIAotdHlwZWRlZiBzdHJ1Y3QgewotICAgIHBhc19oZWFwX3JlZiogaGVhcF9y
ZWY7Ci0gICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZzsKLX0gcGFzX3RyeV9hbGxvY2F0ZV9pbXBs
X3NpemVfdGh1bmtfZGF0YTsKLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHNpemVfdCBwYXNf
dHJ5X2FsbG9jYXRlX2ltcGxfc2l6ZV90aHVuayh2b2lkKiBhcmcpCitzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CitwYXNfdHJ5X2FsbG9jYXRlX2ltcGxfY2Fz
dWFsX2Nhc2UocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc190cnlfYWxsb2NhdGVfY29tbW9uIHRyeV9hbGxvY2F0ZV9jb21tb24p
CiB7Ci0gICAgcGFzX3RyeV9hbGxvY2F0ZV9pbXBsX3NpemVfdGh1bmtfZGF0YSogZGF0YTsKKyAg
ICBwYXNfaGVhcF90eXBlKiB0eXBlOworICAgIHNpemVfdCB0eXBlX3NpemU7CisgICAgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yOworICAgIHVuc2lnbmVkIGFsbG9jYXRvcl9p
bmRleDsKIAotICAgIGRhdGEgPSAocGFzX3RyeV9hbGxvY2F0ZV9pbXBsX3NpemVfdGh1bmtfZGF0
YSopYXJnOworICAgIHR5cGUgPSBoZWFwX3JlZi0+dHlwZTsKKyAgICB0eXBlX3NpemUgPSBjb25m
aWcuZ2V0X3R5cGVfc2l6ZSh0eXBlKTsKKworICAgIGFsbG9jYXRvcl9pbmRleCA9IGhlYXBfcmVm
LT5hbGxvY2F0b3JfaW5kZXg7CisgICAgYWxsb2NhdG9yID0gcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2lmX2Nhbl9zZXRfY2FjaGVfZm9yX3Bvc3NpYmx5X3VuaW5p
dGlhbGl6ZWRfaW5kZXgoCisgICAgICAgIGFsbG9jYXRvcl9pbmRleCwgY29uZmlnLmNvbmZpZ19w
dHIpOwogCi0gICAgcmV0dXJuIGRhdGEtPmNvbmZpZy5nZXRfdHlwZV9zaXplKGRhdGEtPmhlYXBf
cmVmLT50eXBlKTsKKyAgICByZXR1cm4gdHJ5X2FsbG9jYXRlX2NvbW1vbihoZWFwX3JlZiwgdHlw
ZV9zaXplLCAxLCBhbGxvY2F0b3IpOwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFz
X3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfdHJ5X2FsbG9jYXRlX2ltcGwocGFzX2hlYXBf
cmVmKiBoZWFwX3JlZiwKLSAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcgY29u
ZmlnLAotICAgICAgICAgICAgICAgICAgICAgIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2Zhc3Qg
dHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0LAotICAgICAgICAgICAgICAgICAgICAgIHBhc190cnlf
YWxsb2NhdGVfY29tbW9uX3Nsb3cgdHJ5X2FsbG9jYXRlX2NvbW1vbl9zbG93KQorc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAorcGFzX3RyeV9hbGxvY2F0ZV9p
bXBsX2lubGluZV9vbmx5KAorICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsCisgICAgcGFzX2hl
YXBfY29uZmlnIGNvbmZpZywKKyAgICBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0X2lubGlu
ZV9vbmx5IHRyeV9hbGxvY2F0ZV9jb21tb25fZmFzdF9pbmxpbmVfb25seSkKIHsKICAgICBzdGF0
aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCi0gICAgcGFzX2hlYXBfdHlwZSog
dHlwZTsKLSAgICBzaXplX3QgdHlwZV9zaXplOwogICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVz
dWx0IGFsbG9jYXRvcjsKICAgICB1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXg7CiAgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZSogY2FjaGU7Ci0gICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0
IHJlc3VsdDsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OwogCiAgICAgYWxsb2Nh
dG9yX2luZGV4ID0gaGVhcF9yZWYtPmFsbG9jYXRvcl9pbmRleDsKICAgICBjYWNoZSA9IHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOwotICAgIGlmIChQQVNfTElLRUxZKGNhY2hlKSkg
ewotICAgICAgICBhbGxvY2F0b3IgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXRfbG9j
YWxfYWxsb2NhdG9yKAotICAgICAgICAgICAgY2FjaGUsCi0gICAgICAgICAgICBhbGxvY2F0b3Jf
aW5kZXgpOwotCi0gICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgcGFzX2xvZygiR290
IGFuIGFsbG9jYXRvci5cbiIpOwotICAgICAgICAKLSAgICAgICAgaWYgKFBBU19MSUtFTFkoYWxs
b2NhdG9yLmRpZF9zdWNjZWVkKSkgewotICAgICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0
IHJlc3VsdDsKLSAgICAgICAgICAgIHBhc190cnlfYWxsb2NhdGVfaW1wbF9zaXplX3RodW5rX2Rh
dGEgc2l6ZV90aHVua19kYXRhOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAvKiBUaGlzIHRo
aW5nIHdpdGggdGhlIHNpemUgdGh1bmsgbWVhbnMgdGhhdCBpc29oZWFwcyB1c3VhbGx5IGRvbid0
IGhhdmUgdG8gZ2V0IHRoZQotICAgICAgICAgICAgICAgaGVhcCdzIHR5cGUgb3Igc2l6ZSwgdW5s
ZXNzIHdlIGFyZSBpbiBhIGhlYXAgY29uZmlnIHRoYXQgdXNlcyB0aGUgLnR5cGUgb3IgLnNpemUK
LSAgICAgICAgICAgICAgIHByb3BlcnRpZXMgb2YgdHlwZWQgYWxsb2NhdGlvbiByZXN1bHRzLiAq
LwotICAgICAgICAgICAgc2l6ZV90aHVua19kYXRhLmNvbmZpZyA9IGNvbmZpZzsKLSAgICAgICAg
ICAgIHNpemVfdGh1bmtfZGF0YS5oZWFwX3JlZiA9IGhlYXBfcmVmOwotCi0gICAgICAgICAgICBy
ZXN1bHQgPSB0cnlfYWxsb2NhdGVfY29tbW9uX2Zhc3QoCi0gICAgICAgICAgICAgICAgKHBhc19s
b2NhbF9hbGxvY2F0b3IqKWFsbG9jYXRvci5hbGxvY2F0b3IsIHBhc190cnlfYWxsb2NhdGVfaW1w
bF9zaXplX3RodW5rLAotICAgICAgICAgICAgICAgICZzaXplX3RodW5rX2RhdGEsIDEpOwotCi0g
ICAgICAgICAgICB0eXBlID0gaGVhcF9yZWYtPnR5cGU7Ci0gICAgICAgICAgICByZXR1cm4gcGFz
X3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV93aXRoX2ludHJpbnNpY19hbGxvY2F0aW9u
X3Jlc3VsdCgKLSAgICAgICAgICAgICAgICByZXN1bHQsIHR5cGUsIGNvbmZpZy5nZXRfdHlwZV9z
aXplKHR5cGUpKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAg
ICAgcGFzX2xvZygiRGlkIG5vdCBzdWNjZWVkIGF0IGdldHRpbmcgYW4gYWxsb2NhdG9yLlxuIik7
Ci0gICAgfQotCi0gICAgdHlwZSA9IGhlYXBfcmVmLT50eXBlOwotICAgIHR5cGVfc2l6ZSA9IGNv
bmZpZy5nZXRfdHlwZV9zaXplKHR5cGUpOwotCi0gICAgaWYgKHZlcmJvc2UpCi0gICAgICAgIHBh
c19sb2coIkFsbG9jYXRpbmcgdGhlIHNsb3cgd2F5LlxuIik7Ci0KLSAgICByZXN1bHQgPSBwYXNf
dHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3dpdGhfaW50cmluc2ljX2FsbG9jYXRpb25f
cmVzdWx0KAotICAgICAgICB0cnlfYWxsb2NhdGVfY29tbW9uX3Nsb3coaGVhcF9yZWYsIDEsIHR5
cGVfc2l6ZSwgMSksCi0gICAgICAgIHR5cGUsIHR5cGVfc2l6ZSk7CisgICAgaWYgKFBBU19VTkxJ
S0VMWSghY2FjaGUpKQorICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0
ZV9mYWlsdXJlKCk7CiAKKyAgICBhbGxvY2F0b3IgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3Ry
eV9nZXRfbG9jYWxfYWxsb2NhdG9yX29yX3Vuc2VsZWN0ZWRfZm9yX3VuaW5pdGlhbGl6ZWRfaW5k
ZXgoCisgICAgICAgIGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOworICAgIAogICAgIGlmICh2ZXJi
b3NlKQotICAgICAgICBwYXNfbG9nKCJyZXN1bHQucHRyID0gJXAsIHJlc3VsdC5kaWRfc3VjY2Vl
ZCA9ICVkXG4iLCByZXN1bHQucHRyLCByZXN1bHQuZGlkX3N1Y2NlZWQpOworICAgICAgICBwYXNf
bG9nKCJHb3QgYW4gYWxsb2NhdG9yLlxuIik7CisgICAgCisgICAgaWYgKFBBU19VTkxJS0VMWSgh
YWxsb2NhdG9yLmRpZF9zdWNjZWVkKSkgeworICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAg
ICAgICAgcGFzX2xvZygiRmFpbGVkIHRvIGdldCBhbGxvY2F0b3IgaW4gdHJ5X2FsbG9jYXRlX2lt
cGxfaW5saW5lX29ubHkgZm9yIHR5cGVfc2l6ZSA9ICV6dSwgIgorICAgICAgICAgICAgICAgICAg
ICAiYWxsb2NhdG9yX2luZGV4ID0gJXVcbiIsCisgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5n
ZXRfdHlwZV9zaXplKGhlYXBfcmVmLT50eXBlKSwgYWxsb2NhdG9yX2luZGV4KTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7
CisgICAgfQorICAgIAorICAgIHJlc3VsdCA9IHRyeV9hbGxvY2F0ZV9jb21tb25fZmFzdF9pbmxp
bmVfb25seSgocGFzX2xvY2FsX2FsbG9jYXRvciopYWxsb2NhdG9yLmFsbG9jYXRvcik7CiAKKyAg
ICBpZiAodmVyYm9zZSkgeworICAgICAgICBwYXNfbG9nKCJSZXR1cm5pbmcgZnJvbSB0cnlfYWxs
b2NhdGVfaW1wbF9pbmxpbmVfb25seSBmb3IgdHlwZV9zaXplID0gJXp1LCBkaWRfc3VjY2VlZCA9
ICVzXG4iLAorICAgICAgICAgICAgICAgIGNvbmZpZy5nZXRfdHlwZV9zaXplKGhlYXBfcmVmLT50
eXBlKSwgcmVzdWx0LmRpZF9zdWNjZWVkID8gInllcyIgOiAibm8iKTsKKyAgICB9CisgICAgCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTM0LDE2ICsxMTgsMzAgQEAgcGFzX3RyeV9hbGxv
Y2F0ZV9pbXBsKHBhc19oZWFwX3JlZiogaGVhcAogICAgICAgICAoaGVhcF9jb25maWcpLCBcCiAg
ICAgICAgIChydW50aW1lX2NvbmZpZyksIFwKICAgICAgICAgKGFsbG9jYXRvcl9jb3VudHMpLCBc
Ci0gICAgICAgIHBhc19hdm9pZF9jb3VudF9sb29rdXAsIFwKKyAgICAgICAgcGFzX2F2b2lkX3Np
emVfbG9va3VwLCBcCiAgICAgICAgIChyZXN1bHRfZmlsdGVyKSk7IFwKICAgICBcCi0gICAgc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lKHBh
c19oZWFwX3JlZiogaGVhcF9yZWYpIFwKKyAgICBzdGF0aWMgUEFTX05FVkVSX0lOTElORSBwYXNf
YWxsb2NhdGlvbl9yZXN1bHQgbmFtZSAjIyBfY2FzdWFsX2Nhc2UocGFzX2hlYXBfcmVmKiBoZWFw
X3JlZikgXAorICAgIHsgXAorICAgICAgICByZXR1cm4gcGFzX3RyeV9hbGxvY2F0ZV9pbXBsX2Nh
c3VhbF9jYXNlKCBcCisgICAgICAgICAgICBoZWFwX3JlZiwgKGhlYXBfY29uZmlnKSwgbmFtZSAj
IyBfaW1wbCk7IFwKKyAgICB9IFwKKyAgICBcCisgICAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lICMjIF9pbmxpbmVfb25seShwYXNfaGVhcF9yZWYq
IGhlYXBfcmVmKSBcCisgICAgeyBcCisgICAgICAgIHJldHVybiBwYXNfdHJ5X2FsbG9jYXRlX2lt
cGxfaW5saW5lX29ubHkoaGVhcF9yZWYsIChoZWFwX2NvbmZpZyksIG5hbWUgIyMgX2ltcGxfZmFz
dF9pbmxpbmVfb25seSk7IFwKKyAgICB9IFwKKyAgICBcCisgICAgc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lKHBhc19oZWFwX3JlZiogaGVhcF9yZWYp
IFwKICAgICB7IFwKLSAgICAgICAgcmV0dXJuIHBhc190cnlfYWxsb2NhdGVfaW1wbCggXAotICAg
ICAgICAgICAgaGVhcF9yZWYsIChoZWFwX2NvbmZpZyksIG5hbWUgIyMgX2ltcGxfZmFzdCwgbmFt
ZSAjIyBfaW1wbF9zbG93KTsgXAorICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0
OyBcCisgICAgICAgIHJlc3VsdCA9IG5hbWUgIyMgX2lubGluZV9vbmx5KGhlYXBfcmVmKTsgXAor
ICAgICAgICBpZiAoUEFTX0xJS0VMWShyZXN1bHQuZGlkX3N1Y2NlZWQpKSBcCisgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OyBcCisgICAgICAgIHJldHVybiBuYW1lICMjIF9jYXN1YWxfY2FzZSho
ZWFwX3JlZik7IFwKICAgICB9IFwKICAgICBcCi0gICAgc3RhdGljIFBBU19VTlVTRUQgUEFTX05F
VkVSX0lOTElORSBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgXAorICAgIHN0YXRpYyBQQVNf
VU5VU0VEIFBBU19ORVZFUl9JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKICAgICBuYW1l
ICMjIF9mb3JfcmVhbGxvYyhwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKSBcCiAgICAgeyBcCiAgICAg
ICAgIHJldHVybiBuYW1lKGhlYXBfcmVmKTsgXApAQCAtMTUxLDcgKzE0OSw3IEBAIHBhc190cnlf
YWxsb2NhdGVfaW1wbChwYXNfaGVhcF9yZWYqIGhlYXAKICAgICBcCiAgICAgc3RydWN0IHBhc19k
dW1teQogCi10eXBlZGVmIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxs
b2NhdGUpKHBhc19oZWFwX3JlZiogaGVhcF9yZWYpOwordHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlKShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKTsKIAogUEFT
X0VORF9FWFRFUk5fQzsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfYXJyYXkuaAkocmV2aXNpb24gMjg1Nzg1
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9h
cnJheS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAicGFzX2xv
Y2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3BoeXNpY2FsX21lbW9yeV90
cmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2hlYXAuaCIKLSNpbmNsdWRl
ICJwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwog
CkBAIC01MSw3MiArNTAsOTAgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAga2lsbGVkIG9mZiBi
eSB0aGUgY29tcGlsZXIpLiBJZiB5b3Uga25vdyB0aGF0IGNvdW50ID09IDEgYW5kIGFsaWdubWVu
dCA9PSAxLCB0aGVuIHlvdSdyZSBiZXR0ZXIgb2ZmCiAgICB1c2luZyB0aGUgcGFzX3RyeV9hbGxv
Y2F0ZS5oIGVudHJ5cG9pbnRzLiAqLwogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3R5
cGVkX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfdHJ5X2FsbG9jYXRlX2FycmF5X2ltcGwocGFzX2hl
YXBfcmVmKiBoZWFwX3JlZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcCog
aGVhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgY291bnQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFsaWdubWVudCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc190cnlfYWxsb2NhdGVfY29tbW9uIHRyeV9hbGxvY2F0ZV9jb21tb24pCitzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CitwYXNfdHJ5X2FsbG9j
YXRlX2FycmF5X2ltcGxfY2FzdWFsX2Nhc2Vfd2l0aF9oZWFwKHBhc19oZWFwX3JlZiogaGVhcF9y
ZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19oZWFwKiBoZWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZV90IGFsaWdubWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RyeV9hbGxv
Y2F0ZV9jb21tb24gdHJ5X2FsbG9jYXRlX2NvbW1vbikKIHsKLSAgICBwYXNfaGVhcF90eXBlKiB0
eXBlOwotICAgIHNpemVfdCB0eXBlX3NpemU7CiAgICAgc2l6ZV90IGFsaWduZWRfc2l6ZTsKLSAg
ICBzaXplX3QgYWxpZ25lZF9jb3VudDsKICAgICB1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXg7CiAg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yOwogCi0gICAgdHlwZSA9IGhl
YXBfcmVmLT50eXBlOwotICAgIHR5cGVfc2l6ZSA9IGNvbmZpZy5nZXRfdHlwZV9zaXplKHR5cGUp
OworICAgIGlmICghcGFzX2lzX3Bvd2VyX29mXzIoYWxpZ25tZW50KSkKKyAgICAgICAgcmV0dXJu
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOwogCi0gICAgaWYgKF9fYnVp
bHRpbl9tdWxfb3ZlcmZsb3coY291bnQsIHR5cGVfc2l6ZSwgJmFsaWduZWRfc2l6ZSkpCi0gICAg
ICAgIHJldHVybiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2VtcHR5KCk7Ci0K
LSAgICBpZiAoYWxpZ25tZW50ID09IDEpCi0gICAgICAgIGFsaWduZWRfY291bnQgPSBjb3VudDsK
LSAgICBlbHNlIHsKLSAgICAgICAgaWYgKCFwYXNfaXNfcG93ZXJfb2ZfMihhbGlnbm1lbnQpKQot
ICAgICAgICAgICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZW1w
dHkoKTsKLSAgICAgICAgCi0gICAgICAgIC8qIEl0J3MgaW1wb3J0YW50IHRoYXQgd2UgdXNlIHRo
ZSByaWdodCBjb3VudCBmb3IgdGhlIGxvb2t1cC4gVGhpcyBnZXRzIHdlaXJkLiBDb25zaWRlcgot
ICAgICAgICAgICB0aGF0IHdlIG1pZ2h0IGhhdmUgYSB0eXBlIG9mIHNpemUgMjQsIGNvdW50IDMs
IGFuZCBhbGlnbm1lbnQgNjQuIDI0ICogMyBpcyA3Miwgd2hpY2ggaXMKLSAgICAgICAgICAgc21h
bGxlciB0aGFuIDEyOCwgd2hpY2ggaXMgdGhlIHNpemUgd2UnZCB3YW50IGZvciBhbGlnbm1lbnQg
NjQuIFRoZSBlZmZlY3Qgb2YgdGhpcyBjb2RlCi0gICAgICAgICAgIGlzIHRvIHJhaXNlIHRoZSBj
b3VudCB0byA1LCBzbyB0aGF0IHdlIHRyeSB0byBhbGxvY2F0ZSAxMjAgYnl0ZXMgd2l0aCBhbGln
bm1lbnQgNjQsCi0gICAgICAgICAgIHJlc3VsdGluZyBpbiBhIDEyOCBieXRlIGFsbG9jYXRpb24u
Ci0gICAgICAgIAotICAgICAgICAgICBJZiB3ZSBkaWRuJ3QgZG8gdGhpcyBjb3JyZWN0aW9uIHRo
ZW4gd2UnZDoKLSAgICAgICAgCi0gICAgICAgICAgIC0gRG8gdGhlIGxvb2t1cCB3aXRoIGNvdW50
IDMuIElmIHdlIGhhZCBhbHJlYWR5IGNyZWF0ZWQgYSA2NC1ieXRlIGFsaWduZWQgc2l6ZSBjbGFz
cyBhdAotICAgICAgICAgICAgIGNvdW50IDUsIHdlJ2QgZmFpbCB0byBzZWUgaXQuCi0gICAgICAg
IAotICAgICAgICAgICAtIEFzayBmb3IgYSA2NC1ieXRlIGFsaWduZWQgc2l6ZSBjbGFzcyB0byBi
ZSBlbnN1cmVkIGF0IGNvdW50IDMuIFRoYXQgd291bGQgYmUgd2FzdGVmdWwKLSAgICAgICAgICAg
ICBmb3IgYW55IGZ1dHVyZSBjb3VudD0zIGFsbG9jYXRpb25zIHRoYXQgZGlkIG5vdCB3YW50IHRo
aXMga2luZCBvZiBhbGlnbm1lbnQuICovCi0KLSAgICAgICAgaWYgKGFsaWduZWRfc2l6ZSA8IGFs
aWdubWVudCkKLSAgICAgICAgICAgIGFsaWduZWRfc2l6ZSA9IGFsaWdubWVudDsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgYWxpZ25lZF9zaXplID0gcGFzX3JvdW5kX3VwX3RvX3Bvd2VyX29m
XzIoYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQpOwotICAgICAKLSAgICAgICAgLyogVGhpcyBpcyBn
cm9zcy4gSW4gYW4gaWRlYWwgd29ybGQsIHdlIHdvdWxkbid0IGhhdmUgdG8gZXhlY3V0ZSBkaXZp
c2lvbnMuIFdlIGNvdWxkIGhhdmUKLSAgICAgICAgICAgYXZvaWRlZCB0aGlzIGJ5IHJlcXVpcmlu
ZyB0aGUgc2l6ZSB0byBiZSB0aGUgY3VycmVuY3kgdXNlZCB0byBsb29rdXAgc2l6ZSBjbGFzc2Vz
LgotICAgICAgICAgICBIb3dldmVyLCBzaW5jZSBhbGlnbmVkIGFsbG9jYXRpb25zIGFyZSByYXJl
LCB0aGlzIGlzIHByb2JhYmx5IE9LLiBUaGlzIGhhcyB0aGUgZWZmZWN0IG9mCi0gICAgICAgICAg
IG1ha2luZyB0aGUgbm9uLWFsaWduZWQgY2FzZSBtb3JlIGVmZmljaWVudC4gKi8KLSAgICAgICAg
YWxpZ25lZF9jb3VudCA9IGFsaWduZWRfc2l6ZSAvIHR5cGVfc2l6ZTsKLSAgICB9Ci0gICAgCi0g
ICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9hbGxvY2F0b3JfaW5kZXhf
Zm9yX2NvdW50X25vdF9wcmltaXRpdmUoCi0gICAgICAgICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAs
Ci0gICAgICAgIGFsaWduZWRfY291bnQpOwotICAgIGFsbG9jYXRvciA9IHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pZl9jYW5fc2V0X2NhY2hlKAorICAgIGFsaWdu
ZWRfc2l6ZSA9IHBhc190cnlfYWxsb2NhdGVfY29tcHV0ZV9hbGlnbmVkX3NpemUoc2l6ZSwgYWxp
Z25tZW50KTsKKyAgICAKKyAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNfc2VncmVnYXRlZF9oZWFw
X2FsbG9jYXRvcl9pbmRleF9mb3Jfc2l6ZSgKKyAgICAgICAgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVh
cCwgYWxpZ25lZF9zaXplLCBjb25maWcpOworICAgIGFsbG9jYXRvciA9IHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pZl9jYW5fc2V0X2NhY2hlX2Zvcl9wb3NzaWJs
eV91bmluaXRpYWxpemVkX2luZGV4KAogICAgICAgICBhbGxvY2F0b3JfaW5kZXgsIGNvbmZpZy5j
b25maWdfcHRyKTsKIAogICAgIGlmIChhbGlnbm1lbnQgIT0gMSAmJiBhbGxvY2F0b3IuZGlkX3N1
Y2NlZWQKICAgICAgICAgJiYgYWxpZ25tZW50ID4gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1l
bnQoKHBhc19sb2NhbF9hbGxvY2F0b3IqKWFsbG9jYXRvci5hbGxvY2F0b3IpKQogICAgICAgICBh
bGxvY2F0b3IuZGlkX3N1Y2NlZWQgPSBmYWxzZTsKICAgICAKLSAgICByZXR1cm4gcGFzX3R5cGVk
X2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV93aXRoX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3Vs
dCgKLSAgICAgICAgdHJ5X2FsbG9jYXRlX2NvbW1vbihoZWFwX3JlZiwgYWxpZ25lZF9jb3VudCwg
YWxpZ25lZF9zaXplLCBhbGlnbm1lbnQsIGFsbG9jYXRvciksCi0gICAgICAgIHR5cGUsIGFsaWdu
ZWRfc2l6ZSk7CisgICAgcmV0dXJuIHRyeV9hbGxvY2F0ZV9jb21tb24oaGVhcF9yZWYsIGFsaWdu
ZWRfc2l6ZSwgYWxpZ25tZW50LCBhbGxvY2F0b3IpOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CitwYXNfdHJ5X2FsbG9jYXRlX2FycmF5X2ltcGxf
aW5saW5lX29ubHlfd2l0aF9oZWFwKAorICAgIHBhc19oZWFwKiBoZWFwLAorICAgIHNpemVfdCBz
aXplLAorICAgIHNpemVfdCBhbGlnbm1lbnQsCisgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywK
KyAgICBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0X2lubGluZV9vbmx5IHRyeV9hbGxvY2F0
ZV9jb21tb25fZmFzdF9pbmxpbmVfb25seSkKK3sKKyAgICBzaXplX3QgYWxpZ25lZF9zaXplOwor
ICAgIHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleDsKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jl
c3VsdCBhbGxvY2F0b3I7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGU7CisKKyAg
ICBpZiAoUEFTX1VOTElLRUxZKCFwYXNfaXNfcG93ZXJfb2ZfMihhbGlnbm1lbnQpKSkKKyAgICAg
ICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOworCisgICAg
YWxpZ25lZF9zaXplID0gcGFzX3RyeV9hbGxvY2F0ZV9jb21wdXRlX2FsaWduZWRfc2l6ZShzaXpl
LCBhbGlnbm1lbnQpOworICAgIAorICAgIGFsbG9jYXRvcl9pbmRleCA9IHBhc19zZWdyZWdhdGVk
X2hlYXBfYWxsb2NhdG9yX2luZGV4X2Zvcl9zaXplX2lubGluZV9vbmx5KAorICAgICAgICAmaGVh
cC0+c2VncmVnYXRlZF9oZWFwLCBhbGlnbmVkX3NpemUsIGNvbmZpZyk7CisKKyAgICBjYWNoZSA9
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOworICAgIGlmIChQQVNfVU5MSUtFTFko
IWNhY2hlKSkKKyAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFp
bHVyZSgpOworICAgIAorICAgIGFsbG9jYXRvciA9CisgICAgICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfdHJ5X2dldF9sb2NhbF9hbGxvY2F0b3Jfb3JfdW5zZWxlY3RlZF9mb3JfdW5pbml0aWFs
aXplZF9pbmRleCgKKyAgICAgICAgICAgIGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOworICAgIGlm
IChQQVNfVU5MSUtFTFkoIWFsbG9jYXRvci5kaWRfc3VjY2VlZCkpCisgICAgICAgIHJldHVybiBw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKKworICAgIGlmIChQQVNfVU5M
SUtFTFkoCisgICAgICAgICAgICBhbGlnbm1lbnQgIT0gMQorICAgICAgICAgICAgJiYgYWxpZ25t
ZW50ID4gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQoKHBhc19sb2NhbF9hbGxvY2F0b3Iq
KWFsbG9jYXRvci5hbGxvY2F0b3IpKSkKKyAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jl
c3VsdF9jcmVhdGVfZmFpbHVyZSgpOworICAgIAorICAgIHJldHVybiB0cnlfYWxsb2NhdGVfY29t
bW9uX2Zhc3RfaW5saW5lX29ubHkoKHBhc19sb2NhbF9hbGxvY2F0b3IqKWFsbG9jYXRvci5hbGxv
Y2F0b3IpOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVz
dWx0CitwYXNfdHJ5X2FsbG9jYXRlX2FycmF5X2ltcGxfaW5saW5lX29ubHkoCisgICAgcGFzX2hl
YXBfcmVmKiBoZWFwX3JlZiwKKyAgICBzaXplX3Qgc2l6ZSwKKyAgICBzaXplX3QgYWxpZ25tZW50
LAorICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcsCisgICAgcGFzX3RyeV9hbGxvY2F0ZV9jb21t
b25fZmFzdF9pbmxpbmVfb25seSB0cnlfYWxsb2NhdGVfY29tbW9uX2Zhc3RfaW5saW5lX29ubHkp
Cit7CisgICAgcGFzX2hlYXAqIGhlYXA7CisKKyAgICBoZWFwID0gaGVhcF9yZWYtPmhlYXA7Cisg
ICAgaWYgKFBBU19VTkxJS0VMWSghaGVhcCkpCisgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKKworICAgIHJldHVybiBwYXNfdHJ5X2FsbG9jYXRl
X2FycmF5X2ltcGxfaW5saW5lX29ubHlfd2l0aF9oZWFwKAorICAgICAgICBoZWFwLCBzaXplLCBh
bGlnbm1lbnQsIGNvbmZpZywgdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0X2lubGluZV9vbmx5KTsK
IH0KIAogI2RlZmluZSBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9BUlJBWShuYW1lLCBoZWFwX2Nv
bmZpZywgcnVudGltZV9jb25maWcsIGFsbG9jYXRvcl9jb3VudHMsIHJlc3VsdF9maWx0ZXIpIFwK
QEAgLTEyNiw0MiArMTQzLDk1IEBAIHBhc190cnlfYWxsb2NhdGVfYXJyYXlfaW1wbChwYXNfaGVh
cF9yZWYKICAgICAgICAgKGhlYXBfY29uZmlnKSwgXAogICAgICAgICAocnVudGltZV9jb25maWcp
LCBcCiAgICAgICAgIChhbGxvY2F0b3JfY291bnRzKSwgXAotICAgICAgICBwYXNfZm9yY2VfY291
bnRfbG9va3VwLCBcCisgICAgICAgIHBhc19mb3JjZV9zaXplX2xvb2t1cCwgXAogICAgICAgICAo
cmVzdWx0X2ZpbHRlcikpOyBcCiAgICAgXAotICAgIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBw
YXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgbmFtZSAjIyBfd2l0aF9oZWFwKCBcCi0gICAgICAg
IHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHBhc19oZWFwKiBoZWFwLCBzaXplX3QgY291bnQsIHNp
emVfdCBhbGlnbm1lbnQpIFwKKyAgICBzdGF0aWMgUEFTX05FVkVSX0lOTElORSBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHQgbmFtZSAjIyBfY2FzdWFsX2Nhc2Vfd2l0aF9oZWFwKCBcCisgICAgICAgIHBh
c19oZWFwX3JlZiogaGVhcF9yZWYsIHBhc19oZWFwKiBoZWFwLCBzaXplX3Qgc2l6ZSwgc2l6ZV90
IGFsaWdubWVudCkgXAogICAgIHsgXAotICAgICAgICByZXR1cm4gcGFzX3RyeV9hbGxvY2F0ZV9h
cnJheV9pbXBsKCBcCi0gICAgICAgICAgICBoZWFwX3JlZiwgaGVhcCwgY291bnQsIGFsaWdubWVu
dCwgKGhlYXBfY29uZmlnKSwgbmFtZSAjIyBfaW1wbCk7IFwKKyAgICAgICAgcmV0dXJuIHBhc190
cnlfYWxsb2NhdGVfYXJyYXlfaW1wbF9jYXN1YWxfY2FzZV93aXRoX2hlYXAoIFwKKyAgICAgICAg
ICAgIGhlYXBfcmVmLCBoZWFwLCBzaXplLCBhbGlnbm1lbnQsIChoZWFwX2NvbmZpZyksIG5hbWUg
IyMgX2ltcGwpOyBcCiAgICAgfSBcCiAgICAgXAotICAgIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgbmFtZSggXAotICAgICAgICBwYXNfaGVhcF9y
ZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQsIHNpemVfdCBhbGlnbm1lbnQpIFwKKyAgICBzdGF0
aWMgUEFTX05FVkVSX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgbmFtZSAjIyBfY2FzdWFs
X2Nhc2UoIFwKKyAgICAgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUsIHNp
emVfdCBhbGlnbm1lbnQpIFwKICAgICB7IFwKLSAgICAgICAgcmV0dXJuIG5hbWUgIyMgX3dpdGhf
aGVhcCggXAorICAgICAgICByZXR1cm4gbmFtZSAjIyBfY2FzdWFsX2Nhc2Vfd2l0aF9oZWFwKCBc
CiAgICAgICAgICAgICBoZWFwX3JlZiwgXAogICAgICAgICAgICAgcGFzX2Vuc3VyZV9oZWFwKCBc
CiAgICAgICAgICAgICAgICAgaGVhcF9yZWYsIHBhc19ub3JtYWxfaGVhcF9yZWZfa2luZCwgKGhl
YXBfY29uZmlnKS5jb25maWdfcHRyLCAocnVudGltZV9jb25maWcpKSwgXAotICAgICAgICAgICAg
Y291bnQsIGFsaWdubWVudCk7IFwKKyAgICAgICAgICAgIHNpemUsIGFsaWdubWVudCk7IFwKKyAg
ICB9IFwKKyAgICBcCisgICAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdCBuYW1lICMjIF9pbmxpbmVfb25seV93aXRoX2hlYXAoIFwKKyAgICAgICAgcGFzX2hl
YXAqIGhlYXAsIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KSBcCisgICAgeyBcCisgICAg
ICAgIHJldHVybiBwYXNfdHJ5X2FsbG9jYXRlX2FycmF5X2ltcGxfaW5saW5lX29ubHlfd2l0aF9o
ZWFwKCBcCisgICAgICAgICAgICBoZWFwLCBzaXplLCBhbGlnbm1lbnQsIChoZWFwX2NvbmZpZyks
IG5hbWUgIyMgX2ltcGxfZmFzdF9pbmxpbmVfb25seSk7IFwKKyAgICB9IFwKKyAgICBcCisgICAg
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lICMjIF9p
bmxpbmVfb25seSggXAorICAgICAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6
ZSwgc2l6ZV90IGFsaWdubWVudCkgXAorICAgIHsgXAorICAgICAgICByZXR1cm4gcGFzX3RyeV9h
bGxvY2F0ZV9hcnJheV9pbXBsX2lubGluZV9vbmx5KCBcCisgICAgICAgICAgICBoZWFwX3JlZiwg
c2l6ZSwgYWxpZ25tZW50LCAoaGVhcF9jb25maWcpLCBuYW1lICMjIF9pbXBsX2Zhc3RfaW5saW5l
X29ubHkpOyBcCisgICAgfSBcCisgICAgXAorICAgIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBw
YXNfYWxsb2NhdGlvbl9yZXN1bHQgbmFtZSAjIyBfd2l0aF9oZWFwKCBcCisgICAgICAgIHBhc19o
ZWFwX3JlZiogaGVhcF9yZWYsIHBhc19oZWFwKiBoZWFwLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFs
aWdubWVudCkgXAorICAgIHsgXAorICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0
OyBcCisgICAgICAgIHJlc3VsdCA9IG5hbWUgIyMgX2lubGluZV9vbmx5X3dpdGhfaGVhcChoZWFw
LCBzaXplLCBhbGlnbm1lbnQpOyBcCisgICAgICAgIGlmIChQQVNfTElLRUxZKHJlc3VsdC5kaWRf
c3VjY2VlZCkpIFwKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7IFwKKyAgICAgICAgcmV0dXJu
IG5hbWUgIyMgX2Nhc3VhbF9jYXNlX3dpdGhfaGVhcChoZWFwX3JlZiwgaGVhcCwgc2l6ZSwgYWxp
Z25tZW50KTsgXAogICAgIH0gXAogICAgIFwKLSAgICBzdGF0aWMgUEFTX1VOVVNFRCBQQVNfTkVW
RVJfSU5MSU5FIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lICMjIF9mb3JfcmVhbGxv
YyggXAotICAgICAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBwYXNfaGVhcCogaGVhcCwgc2l6
ZV90IGNvdW50KSBcCisgICAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdCBuYW1lICMjIF9ieV9zaXplKCBcCisgICAgICAgIHBhc19oZWFwX3JlZiogaGVhcF9y
ZWYsIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KSBcCisgICAgeyBcCisgICAgICAgIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7IFwKKyAgICAgICAgcmVzdWx0ID0gbmFtZSAjIyBf
aW5saW5lX29ubHkoaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCk7IFwKKyAgICAgICAgaWYgKFBB
U19MSUtFTFkocmVzdWx0LmRpZF9zdWNjZWVkKSkgXAorICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsgXAorICAgICAgICByZXR1cm4gbmFtZSAjIyBfY2FzdWFsX2Nhc2UoaGVhcF9yZWYsIHNpemUs
IGFsaWdubWVudCk7IFwKKyAgICB9IFwKKyAgICBcCisgICAgc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lICMjIF9ieV9jb3VudCggXAorICAgICAgICBw
YXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQsIHNpemVfdCBhbGlnbm1lbnQpIFwK
ICAgICB7IFwKLSAgICAgICAgcmV0dXJuIG5hbWUgIyMgX3dpdGhfaGVhcChoZWFwX3JlZiwgaGVh
cCwgY291bnQsIDEpOyBcCisgICAgICAgIHBhc19oZWFwX3R5cGUqIHR5cGU7IFwKKyAgICAgICAg
c2l6ZV90IHR5cGVfc2l6ZTsgXAorICAgICAgICBzaXplX3Qgc2l6ZTsgXAorICAgICAgICBcCisg
ICAgICAgIHR5cGUgPSBoZWFwX3JlZi0+dHlwZTsgXAorICAgICAgICB0eXBlX3NpemUgPSAoaGVh
cF9jb25maWcpLmdldF90eXBlX3NpemUodHlwZSk7IFwKKyAgICAgICAgXAorICAgICAgICBpZiAo
X19idWlsdGluX211bF9vdmVyZmxvdyhjb3VudCwgdHlwZV9zaXplLCAmc2l6ZSkpIFwKKyAgICAg
ICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsgXAor
ICAgICAgICBcCisgICAgICAgIHJldHVybiBuYW1lICMjIF9ieV9zaXplKGhlYXBfcmVmLCBzaXpl
LCBhbGlnbm1lbnQpOyBcCisgICAgfSBcCisgICAgXAorICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBB
U19ORVZFUl9JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IG5hbWUgIyMgX2Zvcl9yZWFsbG9j
KCBcCisgICAgICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHBhc19oZWFwKiBoZWFwLCBzaXpl
X3Qgc2l6ZSkgXAorICAgIHsgXAorICAgICAgICByZXR1cm4gbmFtZSAjIyBfd2l0aF9oZWFwKGhl
YXBfcmVmLCBoZWFwLCBzaXplLCAxKTsgXAogICAgIH0gXAogICAgIFwKICAgICBzdHJ1Y3QgcGFz
X2R1bW15CiAgICAgCi10eXBlZGVmIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190
cnlfYWxsb2NhdGVfYXJyYXlfd2l0aF9oZWFwKSgKLSAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVm
LCBwYXNfaGVhcCogaGVhcCwgc2l6ZV90IGNvdW50LCBzaXplX3QgYWxpZ25tZW50KTsKK3R5cGVk
ZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9hcnJheV93aXRoX2hl
YXApKAorICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHBhc19oZWFwKiBoZWFwLCBzaXplX3Qg
c2l6ZSwgc2l6ZV90IGFsaWdubWVudCk7CisKK3R5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0
ICgqcGFzX3RyeV9hbGxvY2F0ZV9hcnJheV9ieV9zaXplKSgKKyAgICBwYXNfaGVhcF9yZWYqIGhl
YXBfcmVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCk7CiAKLXR5cGVkZWYgcGFzX3R5
cGVkX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9hcnJheSkoCit0eXBlZGVm
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfYXJyYXlfYnlfY291bnQp
KAogICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdu
bWVudCk7CiAKLXR5cGVkZWYgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9h
bGxvY2F0ZV9hcnJheV9mb3JfcmVhbGxvYykoCi0gICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwg
cGFzX2hlYXAqIGhlYXAsIHNpemVfdCBjb3VudCk7Cit0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jl
c3VsdCAoKnBhc190cnlfYWxsb2NhdGVfYXJyYXlfZm9yX3JlYWxsb2MpKAorICAgIHBhc19oZWFw
X3JlZiogaGVhcF9yZWYsIHBhc19oZWFwKiBoZWFwLCBzaXplX3Qgc2l6ZSk7CiAKIFBBU19FTkRf
RVhURVJOX0M7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190
cnlfYWxsb2NhdGVfY29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9jb21tb24uaAkocmV2aXNpb24gMjg1Nzg1KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9jb21t
b24uaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsMjEgQEAKIAogUEFTX0JFR0lOX0VYVEVS
Tl9DOwogCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90IHBhc190cnlfYWxsb2NhdGVf
Y29tcHV0ZV9hbGlnbmVkX3NpemUoc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFs
aWdubWVudCkKK3sKKyAgICAvKiBJbiB0aGUgbm9uLW1lbWFsaWduIGNhc2UsIHdlIGNhbiBoYXBw
aWx5IGhhbmRsZSB6ZXJvLXNpemVkIGFsbG9jYXRpb25zIHdpdGggYWxpZ25lZF9zaXplCisgICAg
ICAgYmVpbmcgMC4gVGhpcyB3b3JrcyBiZWNhdXNlIHRoZSBoZWFwJ3MgMCBzaXplIGNsYXNzIGlz
IGp1c3QgYSBjb3B5IG9mIHRoZSBtaW5hbGlnbiBzaXplCisgICAgICAgY2xhc3MuIEJ1dCB3ZSBj
YW5ub3QgZG8gdGhpcyBwcm9wZXJseSBpZiB0aGUgMCBzaXplIGNsYXNzIGhhcyB0byBoYXZlIHNv
bWUgYWxpZ25tZW50LiBUaGF0J3MKKyAgICAgICBiZWNhdXNlIHdlIGV4cGVjdCB0aGF0IGZvciBh
IHNpemUgY2xhc3MgdG8gc2F0aXNmeSBzb21lIGFsaWdubWVudCwgdGhhdCBzaXplIG11c3QgaXRz
ZWxmCisgICAgICAgYmUgYWxpZ25lZCB0byB0aGF0IGFsaWdubWVudC4gKi8KKyAgICBpZiAoYWxp
Z25tZW50ID09IDEpCisgICAgICAgIHJldHVybiBzaXplOworICAgIGlmIChzaXplIDwgYWxpZ25t
ZW50KQorICAgICAgICByZXR1cm4gYWxpZ25tZW50OworICAgIHJldHVybiBwYXNfcm91bmRfdXBf
dG9fcG93ZXJfb2ZfMihzaXplLCBhbGlnbm1lbnQpOworfQorCiBzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgYm9vbAogcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fY2FuX2dvX2Zhc3QocGFzX2xvY2Fs
X2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdCkKIHsKQEAgLTU5LDE2ICs3NCwxNCBA
QCBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX2Zhc3QoCiAgICAgcGFzX2FsbG9jYXRvcl9j
b3VudHMqIGFsbG9jYXRvcl9jb3VudHMsCiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2ZpbHRl
ciByZXN1bHRfZmlsdGVyLAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKLSAg
ICBwYXNfc2l6ZV90aHVuayBzaXplX3RodW5rLAotICAgIHZvaWQqIHNpemVfdGh1bmtfYXJnLAor
ICAgIHNpemVfdCBzaXplLAogICAgIHNpemVfdCBhbGlnbm1lbnQpCiB7CiAgICAgc3RhdGljIGNv
bnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAogICAgIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dCByZXN1bHQ7CiAgICAgcmVzdWx0ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUo
YWxsb2NhdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdGh1bmssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90aHVua19hcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhbGlnbm1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFsbG9jYXRvcl9jb3VudHMsCkBAIC04MiwxMyArOTUsMTIgQEAgc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uXwogcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9z
bG93KAogICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgcGFzX2hlYXBfcmVmX2tpbmQg
aGVhcF9yZWZfa2luZCwKLSAgICBzaXplX3QgYWxpZ25lZF9jb3VudCwgLyogTXVzdCBiZSA9IHJv
dW5kX3VwKGNvdW50ICogdHlwZV9zaXplLCBhbGlnbm1lbnQpIC8gdHlwZV9zaXplICovCiAgICAg
c2l6ZV90IHNpemUsIC8qIE11c3QgYmUgPSByb3VuZF91cChzaXplLCBhbGlnbm1lbnQpICovCiAg
ICAgc2l6ZV90IGFsaWdubWVudCwKICAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnLAogICAgIHBh
c19oZWFwX3J1bnRpbWVfY29uZmlnKiBydW50aW1lX2NvbmZpZywKICAgICBwYXNfYWxsb2NhdG9y
X2NvdW50cyogYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfY291bnRfbG9va3VwX21vZGUgY291
bnRfbG9va3VwX21vZGUpCisgICAgcGFzX3NpemVfbG9va3VwX21vZGUgc2l6ZV9sb29rdXBfbW9k
ZSkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCkBAIC0x
MzQsMjUgKzE0NiwxOCBAQCBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX3Nsb3coCiAgICAg
aWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIkFza2luZyBoZWFwIGZvciBhIGRpcmVjdG9y
eS5cbiIpOwogICAgIAotICAgIGRpcmVjdG9yeSA9IHBhc19oZWFwX2Vuc3VyZV9zaXplX2RpcmVj
dG9yeV9mb3JfY291bnQoCi0gICAgICAgIGhlYXAsIGFsaWduZWRfY291bnQsIGFsaWdubWVudCwg
Y291bnRfbG9va3VwX21vZGUsIGNvbmZpZywgY2FjaGVkX2luZGV4LAorICAgIGRpcmVjdG9yeSA9
IHBhc19oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3Jfc2l6ZSgKKyAgICAgICAgaGVhcCwg
c2l6ZSwgYWxpZ25tZW50LCBzaXplX2xvb2t1cF9tb2RlLCBjb25maWcsIGNhY2hlZF9pbmRleCwK
ICAgICAgICAgYWxsb2NhdG9yX2NvdW50cyk7CiAgICAgCiAgICAgaWYgKCFkaXJlY3RvcnkpIHsK
ICAgICAgICAgLyogVGhpcyBtZWFucyB3ZSdyZSByZWFsbHkgZG9pbmcgYSBsYXJnZSBhbGxvY2F0
aW9uISAqLwogICAgICAgICAKICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlv
biB0cmFuc2FjdGlvbjsKLSAgICAgICAgc2l6ZV90IG15X3NpemU7IC8qIEp1c3QgZm9yIGFzc2Vy
dGluZy4gKi8KLSAgICAgICAgYm9vbCBkaWRfb3ZlcmZsb3c7CiAgICAgICAgIAogICAgICAgICBp
ZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coIkRpZCBub3QgZ2V0IGEgZGlyZWN0b3J5
LlxuIik7CiAKLSAgICAgICAgZGlkX292ZXJmbG93ID0gX19idWlsdGluX3VtdWxsX292ZXJmbG93
KGFsaWduZWRfY291bnQsIGNvbmZpZy5nZXRfdHlwZV9zaXplKHR5cGUpLCAmbXlfc2l6ZSk7Ci0g
ICAgICAgIFBBU19BU1NFUlQoIWRpZF9vdmVyZmxvdyk7Ci0gICAgICAgIG15X3NpemUgPSBwYXNf
cm91bmRfdXBfdG9fcG93ZXJfb2ZfMihteV9zaXplLCBhbGlnbm1lbnQpOwotICAgICAgICBQQVNf
QVNTRVJUKG15X3NpemUgPT0gc2l6ZSk7Ci0gICAgICAgIAogICAgICAgICBwYXNfcGh5c2ljYWxf
bWVtb3J5X3RyYW5zYWN0aW9uX2NvbnN0cnVjdCgmdHJhbnNhY3Rpb24pOwogICAgICAgICBkbyB7
CiAgICAgICAgICAgICBQQVNfQVNTRVJUKCFyZXN1bHQuZGlkX3N1Y2NlZWQpOwpAQCAtMTc3LDEx
ICsxODIsMTAgQEAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93KAogICAgIFBBU19B
U1NFUlQoZGlyZWN0b3J5KTsKICAgICAKICAgICBiYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0ID0g
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcigKLSAgICAgICAg
ZGlyZWN0b3J5LCBhbGlnbmVkX2NvdW50LCBjb3VudF9sb29rdXBfbW9kZSwgY29uZmlnLmNvbmZp
Z19wdHIsIGNhY2hlZF9pbmRleCk7CisgICAgICAgIGRpcmVjdG9yeSwgc2l6ZSwgc2l6ZV9sb29r
dXBfbW9kZSwgY29uZmlnLmNvbmZpZ19wdHIsIGNhY2hlZF9pbmRleCk7CiAgICAgCiAgICAgcmVz
dWx0ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUoYmFzZWxpbmVfYWxsb2NhdG9y
X3Jlc3VsdC5hbGxvY2F0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3RyaXZpYWxfc2l6ZV90aHVuaywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFsaWdubWVudCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9yX2NvdW50cywKQEAgLTE5NywzMyArMjAxLDMx
IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdygKIHN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2lt
cGwoCiAgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwKLSAgICBzaXplX3QgYWxpZ25lZF9jb3Vu
dCwgLyogTXVzdCBiZSA9IHJvdW5kX3VwKGNvdW50ICogdHlwZV9zaXplLCBhbGlnbm1lbnQpIC8g
dHlwZV9zaXplICovCiAgICAgc2l6ZV90IHNpemUsCiAgICAgc2l6ZV90IGFsaWdubWVudCwKICAg
ICBwYXNfaGVhcF9jb25maWcgY29uZmlnLAogICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBhbGxv
Y2F0b3JfY291bnRzLAogICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnJlc3VsdF9maWx0ZXIp
KHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpLAotICAgIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dCAoKnNsb3cpKAotICAgICAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgYWxpZ25l
ZF9jb3VudCwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpLAorICAgIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdCAoKnNsb3cpKHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBzaXplLCBz
aXplX3QgYWxpZ25tZW50KSwKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBhbGxvY2F0
b3JfcmVzdWx0KQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAg
ICAKICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICBwYXNfbG9nKCJoZWFwX3JlZiA9ICVwIGFs
bG9jYXRpbmcgYWxpZ25lZF9jb3VudCA9ICV6dSwgYWxpZ25tZW50ID0gJXp1LlxuIiwKLSAgICAg
ICAgICAgICAgICBoZWFwX3JlZiwgYWxpZ25lZF9jb3VudCwgYWxpZ25tZW50KTsKKyAgICAgICAg
cGFzX2xvZygiaGVhcF9yZWYgPSAlcCBhbGxvY2F0aW5nIHNpemUgPSAlenUsIGFsaWdubWVudCA9
ICV6dS5cbiIsCisgICAgICAgICAgICAgICAgaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCk7CiAg
ICAgfQogCiAgICAgaWYgKFBBU19MSUtFTFkocGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fY2FuX2dv
X2Zhc3QoYWxsb2NhdG9yX3Jlc3VsdCkpKSB7CiAgICAgICAgIHJldHVybiBwYXNfdHJ5X2FsbG9j
YXRlX2NvbW1vbl9pbXBsX2Zhc3QoCiAgICAgICAgICAgICBjb25maWcsIGFsbG9jYXRvcl9jb3Vu
dHMsIHJlc3VsdF9maWx0ZXIsIChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxvY2F0b3JfcmVzdWx0
LmFsbG9jYXRvciwKLSAgICAgICAgICAgIHBhc190cml2aWFsX3NpemVfdGh1bmssICh2b2lkKilz
aXplLCBhbGlnbm1lbnQpOworICAgICAgICAgICAgc2l6ZSwgYWxpZ25tZW50KTsKICAgICB9CiAK
LSAgICByZXR1cm4gc2xvdyhoZWFwX3JlZiwgYWxpZ25lZF9jb3VudCwgc2l6ZSwgYWxpZ25tZW50
KTsKKyAgICByZXR1cm4gc2xvdyhoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KTsKIH0KIAotI2Rl
ZmluZSBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9DT01NT04obmFtZSwgaGVhcF9yZWZfa2luZCwg
aGVhcF9jb25maWcsIHJ1bnRpbWVfY29uZmlnLCBhbGxvY2F0b3JfY291bnRzLCBjb3VudF9sb29r
dXBfbW9kZSwgcmVzdWx0X2ZpbHRlcikgXAorI2RlZmluZSBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FU
RV9DT01NT04obmFtZSwgaGVhcF9yZWZfa2luZCwgaGVhcF9jb25maWcsIHJ1bnRpbWVfY29uZmln
LCBhbGxvY2F0b3JfY291bnRzLCBzaXplX2xvb2t1cF9tb2RlLCByZXN1bHRfZmlsdGVyKSBcCiAg
ICAgc3RhdGljIFBBU19VTlVTRUQgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVz
dWx0IFwKICAgICBuYW1lICMjIF9mYXN0X2lubGluZV9vbmx5KHBhc19sb2NhbF9hbGxvY2F0b3Iq
IGFsbG9jYXRvcikgXAogICAgIHsgXApAQCAtMjMyLDI5ICsyMzQsMjggQEAgcGFzX3RyeV9hbGxv
Y2F0ZV9jb21tb25faW1wbCgKICAgICB9IFwKICAgICBcCiAgICAgc3RhdGljIFBBU19VTlVTRUQg
UEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKLSAgICBuYW1lICMjIF9m
YXN0KHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgcGFzX3NpemVfdGh1bmsgc2l6ZV90
aHVuaywgdm9pZCogc2l6ZV90aHVua19hcmcsIFwKLSAgICAgICAgICAgICAgICAgIHNpemVfdCBh
bGlnbm1lbnQpIFwKKyAgICBuYW1lICMjIF9mYXN0KHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9j
YXRvciwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpIFwKICAgICB7IFwKICAgICAgICAg
cmV0dXJuIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfZmFzdCggXAogICAgICAgICAgICAg
KGhlYXBfY29uZmlnKSwgKGFsbG9jYXRvcl9jb3VudHMpLCAocmVzdWx0X2ZpbHRlciksIGFsbG9j
YXRvciwgXAotICAgICAgICAgICAgc2l6ZV90aHVuaywgc2l6ZV90aHVua19hcmcsIGFsaWdubWVu
dCk7IFwKKyAgICAgICAgICAgIHNpemUsIGFsaWdubWVudCk7IFwKICAgICB9IFwKICAgICBcCiAg
ICAgc3RhdGljIFBBU19ORVZFUl9JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKLSAgICBu
YW1lICMjIF9zbG93KHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBhbGlnbmVkX2NvdW50
LCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkgXAorICAgIG5hbWUgIyMgX3Nsb3cocGFz
X2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpIFwKICAg
ICB7IFwKICAgICAgICAgcmV0dXJuIChyZXN1bHRfZmlsdGVyKSggXAogICAgICAgICAgICAgKGhl
YXBfY29uZmlnKS5zcGVjaWFsaXplZF90cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdyggXAot
ICAgICAgICAgICAgICAgIGhlYXBfcmVmLCAoaGVhcF9yZWZfa2luZCksIGFsaWduZWRfY291bnQs
IHNpemUsIGFsaWdubWVudCwgKHJ1bnRpbWVfY29uZmlnKSwgXAotICAgICAgICAgICAgICAgIChh
bGxvY2F0b3JfY291bnRzKSwgKGNvdW50X2xvb2t1cF9tb2RlKSkpOyBcCisgICAgICAgICAgICAg
ICAgaGVhcF9yZWYsIChoZWFwX3JlZl9raW5kKSwgc2l6ZSwgYWxpZ25tZW50LCAocnVudGltZV9j
b25maWcpLCBcCisgICAgICAgICAgICAgICAgKGFsbG9jYXRvcl9jb3VudHMpLCAoc2l6ZV9sb29r
dXBfbW9kZSkpKTsgXAogICAgIH0gXAogICAgIFwKICAgICBzdGF0aWMgUEFTX1VOVVNFRCBQQVNf
QUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAotICAgIG5hbWUocGFzX2hlYXBf
cmVmKiBoZWFwX3JlZiwgc2l6ZV90IGFsaWduZWRfY291bnQsIHNpemVfdCBzaXplLCBzaXplX3Qg
YWxpZ25tZW50LCBcCisgICAgbmFtZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6
ZSwgc2l6ZV90IGFsaWdubWVudCwgXAogICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1
bHQgYWxsb2NhdG9yX3Jlc3VsdCkgXAogICAgIHsgXAogICAgICAgICByZXR1cm4gcGFzX3RyeV9h
bGxvY2F0ZV9jb21tb25faW1wbCggXAotICAgICAgICAgICAgaGVhcF9yZWYsIGFsaWduZWRfY291
bnQsIHNpemUsIGFsaWdubWVudCwgKGhlYXBfY29uZmlnKSwgXAorICAgICAgICAgICAgaGVhcF9y
ZWYsIHNpemUsIGFsaWdubWVudCwgKGhlYXBfY29uZmlnKSwgXAogICAgICAgICAgICAgKGFsbG9j
YXRvcl9jb3VudHMpLCAocmVzdWx0X2ZpbHRlciksIG5hbWUgIyMgX3Nsb3csIGFsbG9jYXRvcl9y
ZXN1bHQpOyBcCiAgICAgfSBcCiAgICAgXApAQCAtMjY0LDEzICsyNjUsMTMgQEAgdHlwZWRlZiBw
YXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5XwogICAgIHBhc19sb2NhbF9hbGxvY2F0b3Iq
IGFsbG9jYXRvcik7CiAKIHR5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9h
bGxvY2F0ZV9jb21tb25fZmFzdCkoCi0gICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9y
LCBwYXNfc2l6ZV90aHVuayBzaXplX3RodW5rLCB2b2lkKiBzaXplX3RodW5rX2FyZywgc2l6ZV90
IGFsaWdubWVudCk7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLCBzaXplX3Qg
c2l6ZSwgc2l6ZV90IGFsaWdubWVudCk7CiAKIHR5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0
ICgqcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fc2xvdykoCi0gICAgcGFzX2hlYXBfcmVmKiBoZWFw
X3JlZiwgc2l6ZV90IGFsaWduZWRfY291bnQsIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50
KTsKKyAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdu
bWVudCk7CiAKIHR5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0
ZV9jb21tb24pKAotICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBhbGlnbmVkX2Nv
dW50LCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCwKKyAgICBwYXNfaGVhcF9yZWYqIGhl
YXBfcmVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCwKICAgICBwYXNfbG9jYWxfYWxs
b2NhdG9yX3Jlc3VsdCBhbGxvY2F0b3JfcmVzdWx0KTsKIAogUEFTX0VORF9FWFRFUk5fQzsKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50
cmluc2ljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaAko
d29ya2luZyBjb3B5KQpAQCAtNzQsNyArNzQsNyBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAg
fQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNf
dHJ5X2FsbG9jYXRlX2ludHJpbnNpY19pbXBsX21lZGl1bV9zbG93X2Nhc2UoCitwYXNfdHJ5X2Fs
bG9jYXRlX2ludHJpbnNpY19pbXBsX2Nhc3VhbF9jYXNlKAogICAgIHBhc19oZWFwKiBoZWFwLAog
ICAgIHNpemVfdCBzaXplLAogICAgIHNpemVfdCBhbGlnbm1lbnQsCkBAIC05NSw3ICs5NSw3IEBA
IHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfbWVkaXVtX3MKICAgICBQQVNfQVNTRVJU
KGFsaWdubWVudCA9PSAxIHx8ICFkZXNpZ25hdGlvbl9tb2RlKTsKIAogICAgIGlmICh2ZXJib3Nl
KQotICAgICAgICBwYXNfbG9nKCJpbiBpbXBsX21lZGl1bV9zbG93X2Nhc2UgZm9yICVzXG4iLCBw
YXNfaGVhcF9jb25maWdfa2luZF9nZXRfc3RyaW5nKGNvbmZpZy5raW5kKSk7CisgICAgICAgIHBh
c19sb2coImluIGltcGxfY2FzdWFsX2Nhc2UgZm9yICVzXG4iLCBwYXNfaGVhcF9jb25maWdfa2lu
ZF9nZXRfc3RyaW5nKGNvbmZpZy5raW5kKSk7CiAKICAgICBpZiAoIXBhc19pc19wb3dlcl9vZl8y
KGFsaWdubWVudCkpCiAgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRl
X2ZhaWx1cmUoKTsKQEAgLTEwNCwyMiArMTA0LDExIEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmlu
c2ljX2ltcGxfbWVkaXVtX3MKICAgICAgICAgcmV0dXJuIHBhc19kZWJ1Z19oZWFwX2FsbG9jYXRl
KHNpemUsIGFsaWdubWVudCk7CiAKICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgcGFzX2xvZygi
bm90IGRvaW5nIGRlYnVnIGhlYXAgaW4gaW1wbF9tZWRpdW1fc2xvd19jYXNlIGZvciAlc1xuIiwg
cGFzX2hlYXBfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhjb25maWcua2luZCkpOworICAgICAgICBw
YXNfbG9nKCJub3QgZG9pbmcgZGVidWcgaGVhcCBpbiBpbXBsX2Nhc3VhbF9jYXNlIGZvciAlc1xu
IiwgcGFzX2hlYXBfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhjb25maWcua2luZCkpOwogCi0gICAg
LyogSW4gdGhlIG5vbi1tZW1hbGlnbiBjYXNlLCB3ZSBjYW4gaGFwcGlseSBoYW5kbGUgemVyby1z
aXplZCBhbGxvY2F0aW9ucyB3aXRoIGFsaWduZWRfc2l6ZQotICAgICAgIGJlaW5nIDAuIFRoaXMg
d29ya3MgYmVjYXVzZSB0aGUgaGVhcCdzIDAgc2l6ZSBjbGFzcyBpcyBqdXN0IGEgY29weSBvZiB0
aGUgbWluYWxpZ24gc2l6ZQotICAgICAgIGNsYXNzLiBCdXQgd2UgY2Fubm90IGRvIHRoaXMgcHJv
cGVybHkgaWYgdGhlIDAgc2l6ZSBjbGFzcyBoYXMgdG8gaGF2ZSBzb21lIGFsaWdubWVudC4gVGhh
dCdzCi0gICAgICAgYmVjYXVzZSB3ZSBleHBlY3QgdGhhdCBmb3IgYSBzaXplIGNsYXNzIHRvIHNh
dGlzZnkgc29tZSBhbGlnbm1lbnQsIHRoYXQgc2l6ZSBtdXN0IGl0c2VsZgotICAgICAgIGJlIGFs
aWduZWQgdG8gdGhhdCBhbGlnbm1lbnQuICovCi0gICAgaWYgKGFsaWdubWVudCA9PSAxKQotICAg
ICAgICBhbGlnbmVkX3NpemUgPSBzaXplOwotICAgIGVsc2UgaWYgKHNpemUgPCBhbGlnbm1lbnQp
Ci0gICAgICAgIGFsaWduZWRfc2l6ZSA9IGFsaWdubWVudDsKLSAgICBlbHNlCi0gICAgICAgIGFs
aWduZWRfc2l6ZSA9IHBhc19yb3VuZF91cF90b19wb3dlcl9vZl8yKHNpemUsIGFsaWdubWVudCk7
CisgICAgYWxpZ25lZF9zaXplID0gcGFzX3RyeV9hbGxvY2F0ZV9jb21wdXRlX2FsaWduZWRfc2l6
ZShzaXplLCBhbGlnbm1lbnQpOwogICAgIAotICAgIGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9pbmRleF9mb3JfcHJpbWl0aXZlX2NvdW50KGFsaWduZWRfc2l6ZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcpOworICAg
IGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9mb3Jfc2l6ZShhbGlnbmVkX3NpemUs
IGNvbmZpZyk7CiAKICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICBwYXNfbG9nKCJhbGlnbmVk
X3NpemUgPSAlenUsIGluZGV4ID0gJXp1LCBhbGlnbm1lbnQgPSAlenUuXG4iLApAQCAtMTM2LDkg
KzEyNSw5IEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfbWVkaXVtX3MKICAgICAg
ICAgICAgIGluZGV4LCBkZXNpZ25hdGlvbl9tb2RlLCBjb25maWcpOwogICAgICAgICBpZiAoUEFT
X0xJS0VMWShkZXNpZ25hdGVkX2luZGV4LmRpZF9zdWNjZWVkKSkgewogICAgICAgICAgICAgYWxs
b2NhdG9yX3Jlc3VsdCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNz
KAotICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9j
YXRvcl9pbXBsKAorICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xv
Y2FsX2FsbG9jYXRvcl9kaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgIGNhY2hlLAotICAgICAg
ICAgICAgICAgICAgICBkZXNpZ25hdGVkX2luZGV4LmluZGV4ICogcGFzX2Rlc2lnbmF0ZWRfaW50
cmluc2ljX2hlYXBfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKGNvbmZpZykpKTsKKyAgICAgICAgICAg
ICAgICAgICAgcGFzX2Rlc2lnbmF0ZWRfaW5kZXhfcmVzdWx0X2dldF9hbGxvY2F0b3JfaW5kZXgo
ZGVzaWduYXRlZF9pbmRleCwgY29uZmlnKSkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgaWYgKFBBU19VTkxJS0VMWShpbmRleCA+PSBQQVNfTlVNX0lOVFJJTlNJQ19TSVpFX0NMQVNT
RVMpKSB7CiAgICAgICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0KQEAgLTE1Myw3ICsxNDIs
NyBAQCBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19pbXBsX21lZGl1bV9zCiAgICAgICAgICAg
ICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICBwYXNfbG9nKCJhbGxvY2F0b3JfaW5kZXgg
PSAldS5cbiIsIGFsbG9jYXRvcl9pbmRleCk7CiAgICAgICAgIAotICAgICAgICAgICAgYWxsb2Nh
dG9yX3Jlc3VsdCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcigK
KyAgICAgICAgICAgIGFsbG9jYXRvcl9yZXN1bHQgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dl
dF9sb2NhbF9hbGxvY2F0b3JfZm9yX3Bvc3NpYmx5X3VuaW5pdGlhbGl6ZWRfaW5kZXgoCiAgICAg
ICAgICAgICAgICAgY2FjaGUsIGFsbG9jYXRvcl9pbmRleCwgcGFzX2xvY2tfaXNfbm90X2hlbGQp
OwogICAgICAgICB9CiAKQEAgLTE3MywxNyArMTYyLDE1IEBAIHBhc190cnlfYWxsb2NhdGVfaW50
cmluc2ljX2ltcGxfbWVkaXVtX3MKICAgICAgICAgICAgIGFsbG9jYXRvcl9yZXN1bHQuZGlkX3N1
Y2NlZWQgPSBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChQQVNfTElLRUxZKGFsbG9j
YXRvcl9yZXN1bHQuZGlkX3N1Y2NlZWQpKSB7Ci0gICAgICAgICAgICByZXR1cm4gdHJ5X2FsbG9j
YXRlX2NvbW1vbl9mYXN0KAotICAgICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFzX3RyaXZpYWxf
c2l6ZV90aHVuaywgKHZvaWQqKWFsaWduZWRfc2l6ZSwgYWxpZ25tZW50KTsKLSAgICAgICAgfQor
ICAgICAgICBpZiAoUEFTX0xJS0VMWShhbGxvY2F0b3JfcmVzdWx0LmRpZF9zdWNjZWVkKSkKKyAg
ICAgICAgICAgIHJldHVybiB0cnlfYWxsb2NhdGVfY29tbW9uX2Zhc3QoYWxsb2NhdG9yLCBhbGln
bmVkX3NpemUsIGFsaWdubWVudCk7CiAgICAgfQogCiAgICAgZmFrZV9oZWFwX3JlZi50eXBlID0g
aGVhcC0+dHlwZTsKICAgICBmYWtlX2hlYXBfcmVmLmhlYXAgPSBoZWFwOwotICAgIGZha2VfaGVh
cF9yZWYuYWxsb2NhdG9yX2luZGV4ID0gVUlOVF9NQVg7CisgICAgZmFrZV9oZWFwX3JlZi5hbGxv
Y2F0b3JfaW5kZXggPSAwOwogCi0gICAgcmV0dXJuIHRyeV9hbGxvY2F0ZV9jb21tb25fc2xvdygm
ZmFrZV9oZWFwX3JlZiwgYWxpZ25lZF9zaXplLCBhbGlnbmVkX3NpemUsIGFsaWdubWVudCk7Cisg
ICAgcmV0dXJuIHRyeV9hbGxvY2F0ZV9jb21tb25fc2xvdygmZmFrZV9oZWFwX3JlZiwgYWxpZ25l
ZF9zaXplLCBhbGlnbm1lbnQpOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0CkBAIC0yMTMsMjAgKzIwMCw5IEBAIHBhc190cnlfYWxsb2NhdGVfaW50
cmluc2ljX2ltcGxfaW5saW5lX28KICAgICBpZiAoIXBhc19pc19wb3dlcl9vZl8yKGFsaWdubWVu
dCkpCiAgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUo
KTsKIAotICAgIC8qIEluIHRoZSBub24tbWVtYWxpZ24gY2FzZSwgd2UgY2FuIGhhcHBpbHkgaGFu
ZGxlIHplcm8tc2l6ZWQgYWxsb2NhdGlvbnMgd2l0aCBhbGlnbmVkX3NpemUKLSAgICAgICBiZWlu
ZyAwLiBUaGlzIHdvcmtzIGJlY2F1c2UgdGhlIGhlYXAncyAwIHNpemUgY2xhc3MgaXMganVzdCBh
IGNvcHkgb2YgdGhlIG1pbmFsaWduIHNpemUKLSAgICAgICBjbGFzcy4gQnV0IHdlIGNhbm5vdCBk
byB0aGlzIHByb3Blcmx5IGlmIHRoZSAwIHNpemUgY2xhc3MgaGFzIHRvIGhhdmUgc29tZSBhbGln
bm1lbnQuIFRoYXQncwotICAgICAgIGJlY2F1c2Ugd2UgZXhwZWN0IHRoYXQgZm9yIGEgc2l6ZSBj
bGFzcyB0byBzYXRpc2Z5IHNvbWUgYWxpZ25tZW50LCB0aGF0IHNpemUgbXVzdCBpdHNlbGYKLSAg
ICAgICBiZSBhbGlnbmVkIHRvIHRoYXQgYWxpZ25tZW50LiAqLwotICAgIGlmIChhbGlnbm1lbnQg
PT0gMSkKLSAgICAgICAgYWxpZ25lZF9zaXplID0gc2l6ZTsKLSAgICBlbHNlIGlmIChzaXplIDwg
YWxpZ25tZW50KQotICAgICAgICBhbGlnbmVkX3NpemUgPSBhbGlnbm1lbnQ7Ci0gICAgZWxzZQot
ICAgICAgICBhbGlnbmVkX3NpemUgPSBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMihzaXplLCBh
bGlnbm1lbnQpOworICAgIGFsaWduZWRfc2l6ZSA9IHBhc190cnlfYWxsb2NhdGVfY29tcHV0ZV9h
bGlnbmVkX3NpemUoc2l6ZSwgYWxpZ25tZW50KTsKICAgICAKLSAgICBpbmRleCA9IHBhc19zZWdy
ZWdhdGVkX2hlYXBfaW5kZXhfZm9yX3ByaW1pdGl2ZV9jb3VudChhbGlnbmVkX3NpemUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
ZmlnKTsKKyAgICBpbmRleCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9yX3NpemUoYWxp
Z25lZF9zaXplLCBjb25maWcpOwogCiAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAgICAgcGFzX2xv
ZygiYWxpZ25lZF9zaXplID0gJXp1LCBpbmRleCA9ICV6dSwgYWxpZ25tZW50ID0gJXp1LlxuIiwK
QEAgLTI0MSw5ICsyMTcsOSBAQCBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19pbXBsX2lubGlu
ZV9vCiAgICAgICAgIGluZGV4LCBkZXNpZ25hdGlvbl9tb2RlLCBjb25maWcpOwogICAgIGlmIChQ
QVNfTElLRUxZKGRlc2lnbmF0ZWRfaW5kZXguZGlkX3N1Y2NlZWQpKSB7CiAgICAgICAgIGFsbG9j
YXRvcl9yZXN1bHQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcygK
LSAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9p
bXBsKAorICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2Nh
dG9yX2RpcmVjdF91bmNoZWNrZWQoCiAgICAgICAgICAgICAgICAgY2FjaGUsCi0gICAgICAgICAg
ICAgICAgZGVzaWduYXRlZF9pbmRleC5pbmRleCAqIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19o
ZWFwX251bV9hbGxvY2F0b3JfaW5kaWNlcyhjb25maWcpKSk7CisgICAgICAgICAgICAgICAgcGFz
X2Rlc2lnbmF0ZWRfaW5kZXhfcmVzdWx0X2dldF9hbGxvY2F0b3JfaW5kZXgoZGVzaWduYXRlZF9p
bmRleCwgY29uZmlnKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChQQVNfVU5MSUtFTFko
aW5kZXggPj0gUEFTX05VTV9JTlRSSU5TSUNfU0laRV9DTEFTU0VTKSkKICAgICAgICAgICAgIHJl
dHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKQEAgLTI1MywxNSAr
MjI5LDIyIEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfaW5saW5lX28KICAgICAg
ICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBwYXNfbG9nKCJhbGxvY2F0b3JfaW5kZXggPSAl
dS5cbiIsIGFsbG9jYXRvcl9pbmRleCk7CiAgICAgICAgIAotICAgICAgICBhbGxvY2F0b3JfcmVz
dWx0ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xvY2FsX2FsbG9jYXRvcihjYWNo
ZSwgYWxsb2NhdG9yX2luZGV4KTsKKyAgICAgICAgYWxsb2NhdG9yX3Jlc3VsdCA9CisgICAgICAg
ICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXRfbG9jYWxfYWxsb2NhdG9yX29yX3Vu
c2VsZWN0ZWRfZm9yX3VuaW5pdGlhbGl6ZWRfaW5kZXgoCisgICAgICAgICAgICAgICAgY2FjaGUs
IGFsbG9jYXRvcl9pbmRleCk7CisKKyAgICAgICAgaWYgKFBBU19VTkxJS0VMWSghYWxsb2NhdG9y
X3Jlc3VsdC5kaWRfc3VjY2VlZCkpCisgICAgICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25f
cmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CiAgICAgfQotICAgIAotICAgIGlmIChQQVNfVU5MSUtF
TFkoIWFsbG9jYXRvcl9yZXN1bHQuZGlkX3N1Y2NlZWQpKQotICAgICAgICByZXR1cm4gcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CisKKyAgICBQQVNfVEVTVElOR19BU1NF
UlQoYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCk7CiAgICAgCiAgICAgYWxsb2NhdG9yID0g
KHBhc19sb2NhbF9hbGxvY2F0b3IqKWFsbG9jYXRvcl9yZXN1bHQuYWxsb2NhdG9yOwogICAgIAot
ICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCB8fCBh
bGxvY2F0b3ItPm9iamVjdF9zaXplID49IGFsaWduZWRfc2l6ZSk7CisgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKAorICAgICAgICAhYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZAorICAgICAgICB8
fCBhbGxvY2F0b3ItPm9iamVjdF9zaXplID49IGFsaWduZWRfc2l6ZQorICAgICAgICB8fCBhbGxv
Y2F0b3ItPmNvbmZpZ19raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfdW5z
ZWxlY3RlZCk7CiAgICAgCiAgICAgLyogVGhpcyBzaG91bGQgYmUgc3BlY2lhbGl6ZWQgb3V0IGlu
IHRoZSBub24tYWxpZ25tZW50IGNhc2UgYmVjYXVzZSBvZiBBTFdBWVNfSU5MSU5FIGFuZAogICAg
ICAgIGFsaWdubWVudCBiZWluZyB0aGUgY29uc3RhbnQgMS4gKi8KQEAgLTI4NCwxMyArMjY3LDEz
IEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfaW5saW5lX28KICAgICAgICAgKGhl
YXBfY29uZmlnKSwgXAogICAgICAgICAocnVudGltZV9jb25maWcpLCBcCiAgICAgICAgIChhbGxv
Y2F0b3JfY291bnRzKSwgXAotICAgICAgICBwYXNfZm9yY2VfY291bnRfbG9va3VwLCBcCisgICAg
ICAgIHBhc19mb3JjZV9zaXplX2xvb2t1cCwgXAogICAgICAgICAocmVzdWx0X2ZpbHRlcikpOyBc
CiAgICAgXAogICAgIHN0YXRpYyBQQVNfTkVWRVJfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dCBcCi0gICAgbmFtZSAjIyBfbWVkaXVtX3Nsb3dfY2FzZShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFs
aWdubWVudCkgXAorICAgIG5hbWUgIyMgX2Nhc3VhbF9jYXNlKHNpemVfdCBzaXplLCBzaXplX3Qg
YWxpZ25tZW50KSBcCiAgICAgeyBcCi0gICAgICAgIHJldHVybiBwYXNfdHJ5X2FsbG9jYXRlX2lu
dHJpbnNpY19pbXBsX21lZGl1bV9zbG93X2Nhc2UoIFwKKyAgICAgICAgcmV0dXJuIHBhc190cnlf
YWxsb2NhdGVfaW50cmluc2ljX2ltcGxfY2FzdWFsX2Nhc2UoIFwKICAgICAgICAgICAgIChoZWFw
KSwgc2l6ZSwgYWxpZ25tZW50LCAoaGVhcF9zdXBwb3J0KSwgKGhlYXBfY29uZmlnKSwgXAogICAg
ICAgICAgICAgbmFtZSAjIyBfaW1wbF9mYXN0LCBuYW1lICMjIF9pbXBsX3Nsb3csIChkZXNpZ25h
dGlvbl9tb2RlKSk7IFwKICAgICB9IFwKQEAgLTMxMiw3ICsyOTUsNyBAQCBwYXNfdHJ5X2FsbG9j
YXRlX2ludHJpbnNpY19pbXBsX2lubGluZV9vCiAgICAgICAgICAgICAgICAgcGFzX2xvZygiUmV0
dXJuaW5nIHN1Y2Nlc3NmdWwgcmVzdWx0IChiZWdpbiA9ICVwKVxuIiwgKHZvaWQqKXJlc3VsdC5i
ZWdpbik7IFwKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7IFwKICAgICAgICAgfSBcCi0gICAg
ICAgIHJldHVybiBuYW1lICMjIF9tZWRpdW1fc2xvd19jYXNlKHNpemUsIGFsaWdubWVudCk7IFwK
KyAgICAgICAgcmV0dXJuIG5hbWUgIyMgX2Nhc3VhbF9jYXNlKHNpemUsIGFsaWdubWVudCk7IFwK
ICAgICB9IFwKICAgICBcCiAgICAgc3RhdGljIFBBU19VTlVTRUQgUEFTX05FVkVSX0lOTElORSBw
YXNfYWxsb2NhdGlvbl9yZXN1bHQgXApAQCAtMzI4LDcgKzMxMSw3IEBAIHBhc190cnlfYWxsb2Nh
dGVfaW50cmluc2ljX2ltcGxfaW5saW5lX28KICAgICBzdHJ1Y3QgcGFzX2R1bW15CiAKIHR5cGVk
ZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMpKHNp
emVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFs
aWdubWVudCk7CiAKIHR5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxv
Y2F0ZV9pbnRyaW5zaWNfZm9yX3JlYWxsb2MpKHNpemVfdCBzaXplKTsKIApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2Fs
bG9jYXRlX3ByaW1pdGl2ZS5oCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC01NiwxMiArNTYsMTIgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgc3RpbGwga2Vl
cGluZyB0aGVzZSBlbnRyeXBvaW50cy4gSXQncyBqdXN0IGEgZGlmZmVyZW50IGxhcmdlIGhlYXAg
cmV1c2UgcG9saWN5LiAqLwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRp
b25fcmVzdWx0Ci1wYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKHBhc19wcmltaXRpdmVf
aGVhcF9yZWYqIGhlYXBfcmVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
X3Qgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFsaWdubWVu
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZp
ZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfcnVudGltZV9jb25m
aWcqIHJ1bnRpbWVfY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
dHJ5X2FsbG9jYXRlX2NvbW1vbiB0cnlfYWxsb2NhdGVfY29tbW9uKQorcGFzX3RyeV9hbGxvY2F0
ZV9wcmltaXRpdmVfaW1wbF9jYXN1YWxfY2FzZShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFw
X3JlZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90
IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBhbGlnbm1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19oZWFwX2NvbmZpZyBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBydW50aW1lX2NvbmZpZywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RyeV9hbGxvY2F0
ZV9jb21tb24gdHJ5X2FsbG9jYXRlX2NvbW1vbikKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7CiAgICAgCkBAIC03Myw5ICs3Myw5IEBAIHBhc190cnlfYWxsb2NhdGVf
cHJpbWl0aXZlX2ltcGwocGFzX3ByaW0KICAgICBpZiAoIXBhc19pc19wb3dlcl9vZl8yKGFsaWdu
bWVudCkpCiAgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1
cmUoKTsKICAgICAKLSAgICBhbGlnbmVkX3NpemUgPSBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2Zf
MihzaXplLCBhbGlnbm1lbnQpOworICAgIGFsaWduZWRfc2l6ZSA9IHBhc190cnlfYWxsb2NhdGVf
Y29tcHV0ZV9hbGlnbmVkX3NpemUoc2l6ZSwgYWxpZ25tZW50KTsKICAgICAKLSAgICBpbmRleCA9
IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9yX3ByaW1pdGl2ZV9jb3VudChhbGlnbmVkX3Np
emUsIGNvbmZpZyk7CisgICAgaW5kZXggPSBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9z
aXplKGFsaWduZWRfc2l6ZSwgY29uZmlnKTsKICAgICAKICAgICAvKiBIYXZlIGEgZmFzdCBwYXRo
IGZvciB3aGVuIHlvdSBhbGxvY2F0ZSBzb21lIHNpemUgYWxsIHRoZSB0aW1lIG9yCiAgICAgICAg
bW9zdCBvZiB0aGUgdGltZS4gVGhpcyBzYXZlcyBib3RoIHRpbWUgYW5kIHNwYWNlLiBUaGUgc3Bh
Y2Ugc2F2aW5ncyBhcmUKQEAgLTEwNCw3ICsxMDQsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1p
dGl2ZV9pbXBsKHBhc19wcmltCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHByaW50ZigiYWxs
b2NhdG9yX2luZGV4ID0gJXVcbiIsIGFsbG9jYXRvcl9pbmRleCk7CiAgICAgCi0gICAgYWxsb2Nh
dG9yID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2lmX2Nhbl9z
ZXRfY2FjaGUoCisgICAgYWxsb2NhdG9yID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9j
YWxfYWxsb2NhdG9yX2lmX2Nhbl9zZXRfY2FjaGVfZm9yX3Bvc3NpYmx5X3VuaW5pdGlhbGl6ZWRf
aW5kZXgoCiAgICAgICAgIGFsbG9jYXRvcl9pbmRleCwgY29uZmlnLmNvbmZpZ19wdHIpOwogICAg
IAogICAgIC8qIFRoaXMgc2hvdWxkIGJlIHNwZWNpYWxpemVkIG91dCBpbiB0aGUgbm9uLWFsaWdu
bWVudCBjYXNlIGJlY2F1c2Ugb2YgQUxXQVlTX0lOTElORSBhbmQKQEAgLTExMyw3ICsxMTMsNzcg
QEAgcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChwYXNfcHJpbQogICAgICAgICAmJiBh
bGlnbm1lbnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudCgocGFzX2xvY2FsX2FsbG9j
YXRvciopYWxsb2NhdG9yLmFsbG9jYXRvcikpCiAgICAgICAgIGFsbG9jYXRvci5kaWRfc3VjY2Vl
ZCA9IGZhbHNlOwogCi0gICAgcmV0dXJuIHRyeV9hbGxvY2F0ZV9jb21tb24oJmhlYXBfcmVmLT5i
YXNlLCBhbGlnbmVkX3NpemUsIGFsaWduZWRfc2l6ZSwgYWxpZ25tZW50LCBhbGxvY2F0b3IpOwor
ICAgIHJldHVybiB0cnlfYWxsb2NhdGVfY29tbW9uKCZoZWFwX3JlZi0+YmFzZSwgYWxpZ25lZF9z
aXplLCBhbGlnbm1lbnQsIGFsbG9jYXRvcik7Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKK3Bhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGxf
aW5saW5lX29ubHkoCisgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCisgICAg
c2l6ZV90IHNpemUsCisgICAgc2l6ZV90IGFsaWdubWVudCwKKyAgICBwYXNfaGVhcF9jb25maWcg
Y29uZmlnLAorICAgIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2Zhc3RfaW5saW5lX29ubHkgdHJ5
X2FsbG9jYXRlX2NvbW1vbl9mYXN0X2lubGluZV9vbmx5KQoreworICAgIHN0YXRpYyBjb25zdCBi
b29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKKyAgICBzaXplX3QgYWxpZ25lZF9zaXplOworICAg
IHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleDsKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3Vs
dCBhbGxvY2F0b3I7CisgICAgc2l6ZV90IGluZGV4OworICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGUqIGNhY2hlOworICAgIAorICAgIGlmICghcGFzX2lzX3Bvd2VyX29mXzIoYWxpZ25tZW50KSkK
KyAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOwor
ICAgIAorICAgIGFsaWduZWRfc2l6ZSA9IHBhc190cnlfYWxsb2NhdGVfY29tcHV0ZV9hbGlnbmVk
X3NpemUoc2l6ZSwgYWxpZ25tZW50KTsKKyAgICAKKyAgICBpbmRleCA9IHBhc19zZWdyZWdhdGVk
X2hlYXBfaW5kZXhfZm9yX3NpemUoYWxpZ25lZF9zaXplLCBjb25maWcpOworICAgIAorICAgIC8q
IEhhdmUgYSBmYXN0IHBhdGggZm9yIHdoZW4geW91IGFsbG9jYXRlIHNvbWUgc2l6ZSBhbGwgdGhl
IHRpbWUgb3IKKyAgICAgICBtb3N0IG9mIHRoZSB0aW1lLiBUaGlzIHNhdmVzIGJvdGggdGltZSBh
bmQgc3BhY2UuIFRoZSBzcGFjZSBzYXZpbmdzIGFyZQorICAgICAgIHRoZSBtb3JlIGludGVyZXN0
aW5nIHBhcnQsIHNpbmNlICovCisgICAgCisgICAgaWYgKGluZGV4ID09IGhlYXBfcmVmLT5jYWNo
ZWRfaW5kZXgpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwcmludGYoIkZv
dW5kIGNhY2hlZCBpbmRleC5cbiIpOworICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBoZWFwX3Jl
Zi0+YmFzZS5hbGxvY2F0b3JfaW5kZXg7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcGFzX2hlYXAq
IGhlYXA7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIHNlZ3JlZ2F0ZWRfaGVhcDsKKyAg
ICAgICAgCisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgcHJpbnRmKCJVc2luZyBm
dWxsIGxvb2t1cC5cbiIpOworCisgICAgICAgIGhlYXAgPSBoZWFwX3JlZi0+YmFzZS5oZWFwOwor
ICAgICAgICBpZiAoIWhlYXApCisgICAgICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVz
dWx0X2NyZWF0ZV9mYWlsdXJlKCk7CisgICAgICAgIHNlZ3JlZ2F0ZWRfaGVhcCA9ICZoZWFwLT5z
ZWdyZWdhdGVkX2hlYXA7CisgICAgICAgIAorICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNf
c2VncmVnYXRlZF9oZWFwX2FsbG9jYXRvcl9pbmRleF9mb3JfaW5kZXhfaW5saW5lX29ubHkoc2Vn
cmVnYXRlZF9oZWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgpOworICAgIH0K
KyAgICAKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcHJpbnRmKCJhbGxvY2F0b3JfaW5kZXgg
PSAldVxuIiwgYWxsb2NhdG9yX2luZGV4KTsKKworICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV90cnlfZ2V0KCk7CisgICAgaWYgKFBBU19VTkxJS0VMWSghY2FjaGUpKQorICAgICAg
ICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CisgICAgCisg
ICAgYWxsb2NhdG9yID0KKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xv
Y2FsX2FsbG9jYXRvcl9vcl91bnNlbGVjdGVkX2Zvcl91bmluaXRpYWxpemVkX2luZGV4KAorICAg
ICAgICAgICAgY2FjaGUsIGFsbG9jYXRvcl9pbmRleCk7CisgICAgaWYgKFBBU19VTkxJS0VMWSgh
YWxsb2NhdG9yLmRpZF9zdWNjZWVkKSkKKyAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jl
c3VsdF9jcmVhdGVfZmFpbHVyZSgpOworICAgIAorICAgIC8qIFRoaXMgc2hvdWxkIGJlIHNwZWNp
YWxpemVkIG91dCBpbiB0aGUgbm9uLWFsaWdubWVudCBjYXNlIGJlY2F1c2Ugb2YgQUxXQVlTX0lO
TElORSBhbmQKKyAgICAgICBhbGlnbm1lbnQgYmVpbmcgdGhlIGNvbnN0YW50IDEuICovCisgICAg
aWYgKFBBU19VTkxJS0VMWSgKKyAgICAgICAgICAgIGFsaWdubWVudCAhPSAxCisgICAgICAgICAg
ICAmJiBhbGlnbm1lbnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudCgocGFzX2xvY2Fs
X2FsbG9jYXRvciopYWxsb2NhdG9yLmFsbG9jYXRvcikpKQorICAgICAgICByZXR1cm4gcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CisKKyAgICByZXR1cm4gdHJ5X2FsbG9j
YXRlX2NvbW1vbl9mYXN0X2lubGluZV9vbmx5KChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxvY2F0
b3IuYWxsb2NhdG9yKTsKIH0KIAogI2RlZmluZSBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9QUklN
SVRJVkUobmFtZSwgaGVhcF9jb25maWcsIHJ1bnRpbWVfY29uZmlnLCBhbGxvY2F0b3JfY291bnRz
LCByZXN1bHRfZmlsdGVyKSBcCkBAIC0xMjMsMTggKzE5MywzOSBAQCBwYXNfdHJ5X2FsbG9jYXRl
X3ByaW1pdGl2ZV9pbXBsKHBhc19wcmltCiAgICAgICAgIChoZWFwX2NvbmZpZyksIFwKICAgICAg
ICAgKHJ1bnRpbWVfY29uZmlnKSwgXAogICAgICAgICAoYWxsb2NhdG9yX2NvdW50cyksIFwKLSAg
ICAgICAgcGFzX2F2b2lkX2NvdW50X2xvb2t1cCwgXAorICAgICAgICBwYXNfYXZvaWRfc2l6ZV9s
b29rdXAsIFwKICAgICAgICAgKHJlc3VsdF9maWx0ZXIpKTsgXAogICAgIFwKLSAgICBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IG5hbWUoIFwKKyAgICBzdGF0
aWMgUEFTX05FVkVSX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgbmFtZSAjIyBfY2FzdWFs
X2Nhc2UoIFwKICAgICAgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsIFwKICAg
ICAgICAgc2l6ZV90IHNpemUsIFwKICAgICAgICAgc2l6ZV90IGFsaWdubWVudCkgXAogICAgIHsg
XAotICAgICAgICByZXR1cm4gcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbCggXAorICAg
ICAgICByZXR1cm4gcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbF9jYXN1YWxfY2FzZSgg
XAogICAgICAgICAgICAgaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCwgKGhlYXBfY29uZmlnKSwg
KHJ1bnRpbWVfY29uZmlnKSwgbmFtZSAjIyBfaW1wbCk7IFwKICAgICB9IFwKICAgICBcCisgICAg
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lICMjIF9p
bmxpbmVfb25seSggXAorICAgICAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwg
XAorICAgICAgICBzaXplX3Qgc2l6ZSwgXAorICAgICAgICBzaXplX3QgYWxpZ25tZW50KSBcCisg
ICAgeyBcCisgICAgICAgIHJldHVybiBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsX2lu
bGluZV9vbmx5KCBcCisgICAgICAgICAgICBoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50LCAoaGVh
cF9jb25maWcpLCBuYW1lICMjIF9pbXBsX2Zhc3RfaW5saW5lX29ubHkpOyBcCisgICAgfSBcCisg
ICAgXAorICAgIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQg
bmFtZSggXAorICAgICAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgXAorICAg
ICAgICBzaXplX3Qgc2l6ZSwgXAorICAgICAgICBzaXplX3QgYWxpZ25tZW50KSBcCisgICAgeyBc
CisgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7IFwKKyAgICAgICAgcmVzdWx0
ID0gbmFtZSAjIyBfaW5saW5lX29ubHkoaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCk7IFwKKyAg
ICAgICAgaWYgKFBBU19MSUtFTFkocmVzdWx0LmRpZF9zdWNjZWVkKSkgXAorICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsgXAorICAgICAgICByZXR1cm4gbmFtZSAjIyBfY2FzdWFsX2Nhc2UoaGVh
cF9yZWYsIHNpemUsIGFsaWdubWVudCk7IFwKKyAgICB9IFwKKyAgICBcCiAgICAgc3RhdGljIFBB
U19VTlVTRUQgUEFTX05FVkVSX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgbmFtZSAjIyBf
Zm9yX3JlYWxsb2MoIFwKICAgICAgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYs
IHNpemVfdCBzaXplKSBcCiAgICAgeyBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdHJ5X3JlYWxsb2NhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X3JlYWxsb2NhdGUuaAkocmV2aXNpb24gMjg1Nzg1
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDI1ICszOCwyNSBAQAogCiBQQVNfQkVHSU5fRVhURVJO
X0M7CiAKLXR5cGVkZWYgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0Cit0eXBlZGVmIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdAogKCpwYXNfdHJ5X3JlYWxsb2NhdGVfYWxsb2NhdGVfY2FsbGJhY2sp
KHBhc19oZWFwKiBoZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBuZXdfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90IG5ld19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZvaWQqIGFyZyk7CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfdHlwZWRfYWxs
b2NhdGlvbl9yZXN1bHQKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHQKIHBhc190cnlfYWxsb2NhdGVfZm9yX3JlYWxsb2NhdGVfYW5kX2NvcHkoCiAgICAgcGFz
X2hlYXAqIHNvdXJjZV9oZWFwLAogICAgIHBhc19oZWFwKiB0YXJnZXRfaGVhcCwKICAgICB2b2lk
KiBvbGRfcHRyLAogICAgIHNpemVfdCBvbGRfc2l6ZSwKLSAgICBzaXplX3QgbmV3X2NvdW50LAor
ICAgIHNpemVfdCBuZXdfc2l6ZSwKICAgICBwYXNfcmVhbGxvY2F0ZV9oZWFwX3RlbGVwb3J0X3J1
bGUgdGVsZXBvcnRfcnVsZSwKICAgICBwYXNfdHJ5X3JlYWxsb2NhdGVfYWxsb2NhdGVfY2FsbGJh
Y2sgYWxsb2NhdGVfY2FsbGJhY2ssCiAgICAgdm9pZCogYWxsb2NhdGVfY2FsbGJhY2tfYXJnKQog
ewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAKLSAgICBwYXNf
dHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dCByZXN1bHQ7CiAKICAgICAvKiBJZiBoZWFwcyBhcmUgYmFzZWQgb24gc29tZSByaWdvcm91cyBu
b3Rpb24gb2YgdHlwZSwgdGhlbiB3ZSBzaG91bGQgZGlzYWxsb3cgaGVhcAogICAgICAgIHRlbGVw
b3J0aW5nIHNpbmNlIHRoYXQncyBqdXN0IHR5cGUgY29uZnVzaW9uLgpAQCAtODUsMzcgKzg1LDI4
IEBAIHBhc190cnlfYWxsb2NhdGVfZm9yX3JlYWxsb2NhdGVfYW5kX2NvcHkKICAgICAgICAgaWYg
KHNvdXJjZV9oZWFwICE9IHRhcmdldF9oZWFwKSB7CiAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0
aW9uX2RpZF9mYWlsKAogICAgICAgICAgICAgICAgICJBdHRlbXB0aW5nIHRvIHRlbGVwb3J0IGhl
YXBzIiwKLSAgICAgICAgICAgICAgICBzb3VyY2VfaGVhcCwgdGFyZ2V0X2hlYXAsIG9sZF9wdHIs
IG9sZF9zaXplLCBuZXdfY291bnQpOworICAgICAgICAgICAgICAgIHNvdXJjZV9oZWFwLCB0YXJn
ZXRfaGVhcCwgb2xkX3B0ciwgb2xkX3NpemUsIG5ld19zaXplKTsKICAgICAgICAgfQogICAgICAg
ICBicmVhazsKICAgICB9IH0KICAgICAKLSAgICByZXN1bHQgPSBhbGxvY2F0ZV9jYWxsYmFjayh0
YXJnZXRfaGVhcCwgbmV3X2NvdW50LCBhbGxvY2F0ZV9jYWxsYmFja19hcmcpOworICAgIHJlc3Vs
dCA9IGFsbG9jYXRlX2NhbGxiYWNrKHRhcmdldF9oZWFwLCBuZXdfc2l6ZSwgYWxsb2NhdGVfY2Fs
bGJhY2tfYXJnKTsKICAgICAKLSAgICBpZiAocmVzdWx0LnB0cikgeworICAgIGlmIChyZXN1bHQu
YmVnaW4pIHsKICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICBwYXNfbG9nKCJyZXN1
bHQucHRyID0gJXBcbiIsIHJlc3VsdC5wdHIpOwotICAgICAgICAvKiBGSVhNRTogV2UgbmVlZCB0
byBhY3R1YWxseSBiZSByb3VuZGluZyBkb3duIHRoZSBvbGQgc2l6ZSB0byBvdXIKLSAgICAgICAg
ICAgdHlwZSBzaXplLiBUbyBkbyB0aGF0IHdlJ2Qgd2FudCB0aGUgdHlwZWQgYWxsb2NhdGlvbiBy
ZXN1bHQgdG8KLSAgICAgICAgICAgZ2l2ZSB1cyB0aGUgdHlwZSBzaXplLiBGb3IgcHJpbWl0aXZl
IGFsbG9jYXRpb25zLCBpdCB3b3VsZAotICAgICAgICAgICBzdGF0aWNhbGx5IGdpdmUgdXMgMS4K
LSAgICAgICAgCi0gICAgICAgICAgIEFsc286IHRoaXMgb25seSBtYXR0ZXJzIGZvciB0aGluZ3kg
YmVjYXVzZSBvZiBmYXQgcG9pbnRlcnMsCi0gICAgICAgICAgIGFuZCB0aGVyZSBpdCBtaWdodCBu
b3QgZXZlbiBtYXR0ZXIgdGhhdCBtdWNoIHNpbmNlIGZhdCBwb2ludGVycwotICAgICAgICAgICBh
cmUgYWxpZ25lZCAoSSB0aGluaykuICovCi0gICAgICAgIAotICAgICAgICBzaXplX3QgY29weV9z
aXplID0gUEFTX01JTihyZXN1bHQuc2l6ZSwgb2xkX3NpemUpOwotICAgICAgICBtZW1jcHkocmVz
dWx0LnB0ciwgb2xkX3B0ciwgY29weV9zaXplKTsKKyAgICAgICAgICAgIHBhc19sb2coInJlc3Vs
dC5iZWdpbiA9ICVwXG4iLCAodm9pZCopcmVzdWx0LmJlZ2luKTsKKyAgICAgICAgc2l6ZV90IGNv
cHlfc2l6ZSA9IFBBU19NSU4obmV3X3NpemUsIG9sZF9zaXplKTsKKyAgICAgICAgbWVtY3B5KCh2
b2lkKilyZXN1bHQuYmVnaW4sIG9sZF9wdHIsIGNvcHlfc2l6ZSk7CiAgICAgfQogICAgIAogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfdHlwZWRf
YWxsb2NhdGlvbl9yZXN1bHQKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlv
bl9yZXN1bHQKIHBhc190cnlfcmVhbGxvY2F0ZV90YWJsZV9zZWdyZWdhdGVkX2Nhc2UocGFzX3Bh
Z2VfYmFzZSogcGFnZV9iYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1aW50cHRyX3QgYmVnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19oZWFwKiBoZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgbmV3X2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3QgbmV3X3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHNlZ3JlZ2F0ZWRfY29uZmln
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0
ZV9oZWFwX3RlbGVwb3J0X3J1bGUgdGVsZXBvcnRfcnVsZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSwK
QEAgLTEyMyw3ICsxMTQsNyBAQCBwYXNfdHJ5X3JlYWxsb2NhdGVfdGFibGVfc2VncmVnYXRlZF9j
YXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFsbG9j
YXRlX2NhbGxiYWNrX2FyZykKIHsKICAgICBzaXplX3Qgb2xkX3NpemU7Ci0gICAgcGFzX3R5cGVk
X2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVz
dWx0OwogICAgIHBhc19oZWFwKiBvbGRfaGVhcDsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBw
YWdlOwogICAgIApAQCAtMTQ2LDE4ICsxMzcsMTggQEAgcGFzX3RyeV9yZWFsbG9jYXRlX3RhYmxl
X3NlZ3JlZ2F0ZWRfY2FzZQogICAgIH0gfQogICAgIAogICAgIHJlc3VsdCA9IHBhc190cnlfYWxs
b2NhdGVfZm9yX3JlYWxsb2NhdGVfYW5kX2NvcHkoCi0gICAgICAgIG9sZF9oZWFwLCBoZWFwLCAo
dm9pZCopYmVnaW4sIG9sZF9zaXplLCBuZXdfY291bnQsIHRlbGVwb3J0X3J1bGUsCisgICAgICAg
IG9sZF9oZWFwLCBoZWFwLCAodm9pZCopYmVnaW4sIG9sZF9zaXplLCBuZXdfc2l6ZSwgdGVsZXBv
cnRfcnVsZSwKICAgICAgICAgYWxsb2NhdGVfY2FsbGJhY2ssIGFsbG9jYXRlX2NhbGxiYWNrX2Fy
Zyk7Ci0gICAgaWYgKHJlc3VsdC5wdHIgfHwgZnJlZV9tb2RlID09IHBhc19yZWFsbG9jYXRlX2Zy
ZWVfYWx3YXlzKQorICAgIGlmIChyZXN1bHQuYmVnaW4gfHwgZnJlZV9tb2RlID09IHBhc19yZWFs
bG9jYXRlX2ZyZWVfYWx3YXlzKQogICAgICAgICBwYXNfZGVhbGxvY2F0ZV9rbm93bl9zZWdyZWdh
dGVkKCh2b2lkKiliZWdpbiwgc2VncmVnYXRlZF9jb25maWcpOwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1
bHQKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190
cnlfcmVhbGxvY2F0ZV90YWJsZV9iaXRmaXRfY2FzZShwYXNfcGFnZV9iYXNlKiBwYWdlX2Jhc2Us
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGJlZ2luLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwKiBoZWFwLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuZXdfY291bnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG5ld19zaXplLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcgYml0
Zml0X2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVh
bGxvY2F0ZV9oZWFwX3RlbGVwb3J0X3J1bGUgdGVsZXBvcnRfcnVsZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2Rl
LApAQCAtMTY1LDcgKzE1Niw3IEBAIHBhc190cnlfcmVhbGxvY2F0ZV90YWJsZV9iaXRmaXRfY2Fz
ZShwYXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhbGxvY2F0
ZV9jYWxsYmFja19hcmcpCiB7CiAgICAgc2l6ZV90IG9sZF9zaXplOwotICAgIHBhc190eXBlZF9h
bGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3Vs
dDsKICAgICBwYXNfYml0Zml0X3BhZ2UqIHBhZ2U7CiAgICAgcGFzX2hlYXAqIG9sZF9oZWFwOwog
ICAgIApAQCAtMTg2LDE3ICsxNzcsMTcgQEAgcGFzX3RyeV9yZWFsbG9jYXRlX3RhYmxlX2JpdGZp
dF9jYXNlKHBhcwogICAgIH0KICAgICAKICAgICByZXN1bHQgPSBwYXNfdHJ5X2FsbG9jYXRlX2Zv
cl9yZWFsbG9jYXRlX2FuZF9jb3B5KAotICAgICAgICBvbGRfaGVhcCwgaGVhcCwgKHZvaWQqKWJl
Z2luLCBvbGRfc2l6ZSwgbmV3X2NvdW50LCB0ZWxlcG9ydF9ydWxlLAorICAgICAgICBvbGRfaGVh
cCwgaGVhcCwgKHZvaWQqKWJlZ2luLCBvbGRfc2l6ZSwgbmV3X3NpemUsIHRlbGVwb3J0X3J1bGUs
CiAgICAgICAgIGFsbG9jYXRlX2NhbGxiYWNrLCBhbGxvY2F0ZV9jYWxsYmFja19hcmcpOwotICAg
IGlmIChyZXN1bHQucHRyIHx8IGZyZWVfbW9kZSA9PSBwYXNfcmVhbGxvY2F0ZV9mcmVlX2Fsd2F5
cykKKyAgICBpZiAocmVzdWx0LmJlZ2luIHx8IGZyZWVfbW9kZSA9PSBwYXNfcmVhbGxvY2F0ZV9m
cmVlX2Fsd2F5cykKICAgICAgICAgYml0Zml0X2NvbmZpZy5zcGVjaWFsaXplZF9wYWdlX2RlYWxs
b2NhdGVfd2l0aF9wYWdlKHBhZ2UsIGJlZ2luKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1z
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0CitzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHJ5X3JlYWxs
b2NhdGUodm9pZCogb2xkX3B0ciwKICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcCogaGVhcCwK
LSAgICAgICAgICAgICAgICAgICBzaXplX3QgbmV3X2NvdW50LAorICAgICAgICAgICAgICAgICAg
IHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcgY29u
ZmlnLAogICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2hlYXBfdGVsZXBvcnRfcnVs
ZSB0ZWxlcG9ydF9ydWxlLAogICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVf
bW9kZSBmcmVlX21vZGUsCkBAIC0yMTAsNyArMjAxLDcgQEAgcGFzX3RyeV9yZWFsbG9jYXRlKHZv
aWQqIG9sZF9wdHIsCiAgICAgc3dpdGNoIChjb25maWcuZmFzdF9tZWdhcGFnZV9raW5kX2Z1bmMo
YmVnaW4pKSB7CiAgICAgY2FzZSBwYXNfc21hbGxfc2VncmVnYXRlZF9mYXN0X21lZ2FwYWdlX2tp
bmQ6IHsKICAgICAgICAgc2l6ZV90IG9sZF9zaXplOwotICAgICAgICBwYXNfdHlwZWRfYWxsb2Nh
dGlvbl9yZXN1bHQgcmVzdWx0OworICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0
OwogICAgICAgICBwYXNfaGVhcCogb2xkX2hlYXA7CiAKICAgICAgICAgc3dpdGNoICh0ZWxlcG9y
dF9ydWxlKSB7CkBAIC0yMzAsMjEgKzIyMSwyMCBAQCBwYXNfdHJ5X3JlYWxsb2NhdGUodm9pZCog
b2xkX3B0ciwKICAgICAgICAgfSB9CiAKICAgICAgICAgcmVzdWx0ID0gcGFzX3RyeV9hbGxvY2F0
ZV9mb3JfcmVhbGxvY2F0ZV9hbmRfY29weSgKLSAgICAgICAgICAgIG9sZF9oZWFwLCBoZWFwLCBv
bGRfcHRyLCBvbGRfc2l6ZSwgbmV3X2NvdW50LCB0ZWxlcG9ydF9ydWxlLAorICAgICAgICAgICAg
b2xkX2hlYXAsIGhlYXAsIG9sZF9wdHIsIG9sZF9zaXplLCBuZXdfc2l6ZSwgdGVsZXBvcnRfcnVs
ZSwKICAgICAgICAgICAgIGFsbG9jYXRlX2NhbGxiYWNrLCBhbGxvY2F0ZV9jYWxsYmFja19hcmcp
OwotICAgICAgICBpZiAocmVzdWx0LnB0ciB8fCBmcmVlX21vZGUgPT0gcGFzX3JlYWxsb2NhdGVf
ZnJlZV9hbHdheXMpCisgICAgICAgIGlmIChyZXN1bHQuYmVnaW4gfHwgZnJlZV9tb2RlID09IHBh
c19yZWFsbG9jYXRlX2ZyZWVfYWx3YXlzKQogICAgICAgICAgICAgcGFzX2RlYWxsb2NhdGVfa25v
d25fc2VncmVnYXRlZChvbGRfcHRyLCBjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcpOwog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBjYXNlIHBhc19zbWFsbF9iaXRmaXRf
ZmFzdF9tZWdhcGFnZV9raW5kOiB7CiAgICAgICAgIHNpemVfdCBvbGRfc2l6ZTsKLSAgICAgICAg
cGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKKyAgICAgICAgcGFzX2FsbG9jYXRp
b25fcmVzdWx0IHJlc3VsdDsKICAgICAgICAgcGFzX2JpdGZpdF9wYWdlKiBwYWdlOwogICAgICAg
ICBwYXNfaGVhcCogb2xkX2hlYXA7CiAKICAgICAgICAgcGFnZSA9IHBhc19iaXRmaXRfcGFnZV9m
b3JfYWRkcmVzc19hbmRfcGFnZV9jb25maWcoYmVnaW4sIGNvbmZpZy5zbWFsbF9iaXRmaXRfY29u
ZmlnKTsKLSAgICAgICAgb2xkX3NpemUgPSBjb25maWcuc21hbGxfYml0Zml0X2NvbmZpZy5zcGVj
aWFsaXplZF9wYWdlX2dldF9hbGxvY2F0aW9uX3NpemVfd2l0aF9wYWdlKAotICAgICAgICAgICAg
cGFnZSwgYmVnaW4pOworICAgICAgICBvbGRfc2l6ZSA9IGNvbmZpZy5zbWFsbF9iaXRmaXRfY29u
ZmlnLnNwZWNpYWxpemVkX3BhZ2VfZ2V0X2FsbG9jYXRpb25fc2l6ZV93aXRoX3BhZ2UocGFnZSwg
YmVnaW4pOwogCiAgICAgICAgIHN3aXRjaCAodGVsZXBvcnRfcnVsZSkgewogICAgICAgICBjYXNl
IHBhc19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBvcnQ6CkBAIC0yNjAsOSArMjUwLDkgQEAg
cGFzX3RyeV9yZWFsbG9jYXRlKHZvaWQqIG9sZF9wdHIsCiAgICAgICAgIH0KICAgICAgICAgCiAg
ICAgICAgIHJlc3VsdCA9IHBhc190cnlfYWxsb2NhdGVfZm9yX3JlYWxsb2NhdGVfYW5kX2NvcHko
Ci0gICAgICAgICAgICBvbGRfaGVhcCwgaGVhcCwgb2xkX3B0ciwgb2xkX3NpemUsIG5ld19jb3Vu
dCwgdGVsZXBvcnRfcnVsZSwKKyAgICAgICAgICAgIG9sZF9oZWFwLCBoZWFwLCBvbGRfcHRyLCBv
bGRfc2l6ZSwgbmV3X3NpemUsIHRlbGVwb3J0X3J1bGUsCiAgICAgICAgICAgICBhbGxvY2F0ZV9j
YWxsYmFjaywgYWxsb2NhdGVfY2FsbGJhY2tfYXJnKTsKLSAgICAgICAgaWYgKHJlc3VsdC5wdHIg
fHwgZnJlZV9tb2RlID09IHBhc19yZWFsbG9jYXRlX2ZyZWVfYWx3YXlzKQorICAgICAgICBpZiAo
cmVzdWx0LmJlZ2luIHx8IGZyZWVfbW9kZSA9PSBwYXNfcmVhbGxvY2F0ZV9mcmVlX2Fsd2F5cykK
ICAgICAgICAgICAgIGNvbmZpZy5zbWFsbF9iaXRmaXRfY29uZmlnLnNwZWNpYWxpemVkX3BhZ2Vf
ZGVhbGxvY2F0ZV93aXRoX3BhZ2UocGFnZSwgYmVnaW4pOwogICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgIH0KQEAgLTI3MCw3ICsyNjAsNyBAQCBwYXNfdHJ5X3JlYWxsb2NhdGUodm9pZCogb2xk
X3B0ciwKICAgICAgICAgcGFzX2hlYXAqIHNvdXJjZV9oZWFwOwogICAgICAgICBzaXplX3Qgb2xk
X3NpemU7CiAgICAgICAgIHBhc19sYXJnZV9tYXBfZW50cnkgZW50cnk7Ci0gICAgICAgIHBhc190
eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jl
c3VsdCByZXN1bHQ7CiAgICAgICAgIHBhc19wYWdlX2Jhc2UqIHBhZ2VfYmFzZTsKIAogICAgICAg
ICBwYWdlX2Jhc2UgPSBjb25maWcucGFnZV9oZWFkZXJfZnVuYyhiZWdpbik7CkBAIC0yNzksNTYg
KzI2OSw0OSBAQCBwYXNfdHJ5X3JlYWxsb2NhdGUodm9pZCogb2xkX3B0ciwKICAgICAgICAgICAg
IGNhc2UgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9raW5kOgogICAgICAgICAgICAgICAgIFBB
U19BU1NFUlQoIWNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2lzX2luX21lZ2FwYWdlKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gcGFzX3RyeV9yZWFsbG9jYXRlX3RhYmxlX3NlZ3JlZ2F0ZWRfY2Fz
ZSgKLSAgICAgICAgICAgICAgICAgICAgcGFnZV9iYXNlLCBiZWdpbiwgaGVhcCwgbmV3X2NvdW50
LCBjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcsCisgICAgICAgICAgICAgICAgICAgIHBh
Z2VfYmFzZSwgYmVnaW4sIGhlYXAsIG5ld19zaXplLCBjb25maWcuc21hbGxfc2VncmVnYXRlZF9j
b25maWcsCiAgICAgICAgICAgICAgICAgICAgIHRlbGVwb3J0X3J1bGUsIGZyZWVfbW9kZSwgYWxs
b2NhdGVfY2FsbGJhY2ssIGFsbG9jYXRlX2NhbGxiYWNrX2FyZyk7CiAKICAgICAgICAgICAgIGNh
c2UgcGFzX3NtYWxsX2JpdGZpdF9wYWdlX2tpbmQ6CiAgICAgICAgICAgICAgICAgUEFTX0FTU0VS
VCghY29uZmlnLnNtYWxsX2JpdGZpdF9pc19pbl9tZWdhcGFnZSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZV90YWJsZV9iaXRmaXRfY2FzZSgKLSAgICAgICAgICAg
ICAgICAgICAgcGFnZV9iYXNlLCBiZWdpbiwgaGVhcCwgbmV3X2NvdW50LCBjb25maWcuc21hbGxf
Yml0Zml0X2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgcGFnZV9iYXNlLCBiZWdpbiwgaGVh
cCwgbmV3X3NpemUsIGNvbmZpZy5zbWFsbF9iaXRmaXRfY29uZmlnLAogICAgICAgICAgICAgICAg
ICAgICB0ZWxlcG9ydF9ydWxlLCBmcmVlX21vZGUsIGFsbG9jYXRlX2NhbGxiYWNrLCBhbGxvY2F0
ZV9jYWxsYmFja19hcmcpOwogCiAgICAgICAgICAgICBjYXNlIHBhc19tZWRpdW1fc2VncmVnYXRl
ZF9wYWdlX2tpbmQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZV90
YWJsZV9zZWdyZWdhdGVkX2Nhc2UoCi0gICAgICAgICAgICAgICAgICAgIHBhZ2VfYmFzZSwgYmVn
aW4sIGhlYXAsIG5ld19jb3VudCwgY29uZmlnLm1lZGl1bV9zZWdyZWdhdGVkX2NvbmZpZywKKyAg
ICAgICAgICAgICAgICAgICAgcGFnZV9iYXNlLCBiZWdpbiwgaGVhcCwgbmV3X3NpemUsIGNvbmZp
Zy5tZWRpdW1fc2VncmVnYXRlZF9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgIHRlbGVwb3J0
X3J1bGUsIGZyZWVfbW9kZSwgYWxsb2NhdGVfY2FsbGJhY2ssIGFsbG9jYXRlX2NhbGxiYWNrX2Fy
Zyk7CiAKICAgICAgICAgICAgIGNhc2UgcGFzX21lZGl1bV9iaXRmaXRfcGFnZV9raW5kOgogICAg
ICAgICAgICAgICAgIHJldHVybiBwYXNfdHJ5X3JlYWxsb2NhdGVfdGFibGVfYml0Zml0X2Nhc2Uo
Ci0gICAgICAgICAgICAgICAgICAgIHBhZ2VfYmFzZSwgYmVnaW4sIGhlYXAsIG5ld19jb3VudCwg
Y29uZmlnLm1lZGl1bV9iaXRmaXRfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICBwYWdlX2Jh
c2UsIGJlZ2luLCBoZWFwLCBuZXdfc2l6ZSwgY29uZmlnLm1lZGl1bV9iaXRmaXRfY29uZmlnLAog
ICAgICAgICAgICAgICAgICAgICB0ZWxlcG9ydF9ydWxlLCBmcmVlX21vZGUsIGFsbG9jYXRlX2Nh
bGxiYWNrLCBhbGxvY2F0ZV9jYWxsYmFja19hcmcpOwogCiAgICAgICAgICAgICBjYXNlIHBhc19t
YXJnZV9iaXRmaXRfcGFnZV9raW5kOgogICAgICAgICAgICAgICAgIHJldHVybiBwYXNfdHJ5X3Jl
YWxsb2NhdGVfdGFibGVfYml0Zml0X2Nhc2UoCi0gICAgICAgICAgICAgICAgICAgIHBhZ2VfYmFz
ZSwgYmVnaW4sIGhlYXAsIG5ld19jb3VudCwgY29uZmlnLm1hcmdlX2JpdGZpdF9jb25maWcsCisg
ICAgICAgICAgICAgICAgICAgIHBhZ2VfYmFzZSwgYmVnaW4sIGhlYXAsIG5ld19zaXplLCBjb25m
aWcubWFyZ2VfYml0Zml0X2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgdGVsZXBvcnRfcnVs
ZSwgZnJlZV9tb2RlLCBhbGxvY2F0ZV9jYWxsYmFjaywgYWxsb2NhdGVfY2FsbGJhY2tfYXJnKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgUEFTX0FTU0VSVCghIldy
b25nIHBhZ2Uga2luZCIpOwotICAgICAgICAgICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9u
X3Jlc3VsdF9jcmVhdGVfZW1wdHkoKTsKKyAgICAgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghYmVn
aW4pCi0gICAgICAgICAgICByZXR1cm4gYWxsb2NhdGVfY2FsbGJhY2soaGVhcCwgbmV3X2NvdW50
LCBhbGxvY2F0ZV9jYWxsYmFja19hcmcpOworICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlX2Nh
bGxiYWNrKGhlYXAsIG5ld19zaXplLCBhbGxvY2F0ZV9jYWxsYmFja19hcmcpOwogCiAgICAgICAg
IGlmIChQQVNfVU5MSUtFTFkocGFzX2RlYnVnX2hlYXBfaXNfZW5hYmxlZChjb25maWcua2luZCkp
KSB7CiAgICAgICAgICAgICB2b2lkKiByYXdfcmVzdWx0OwotICAgICAgICAgICAgc2l6ZV90IHNp
emU7Ci0gICAgICAgICAgICBib29sIGRpZF9vdmVyZmxvdzsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgUEFTX0FTU0VSVChmcmVlX21vZGUgPT0gcGFzX3JlYWxsb2NhdGVfZnJlZV9pZl9zdWNj
ZXNzZnVsKTsKIAotICAgICAgICAgICAgZGlkX292ZXJmbG93ID0gX19idWlsdGluX211bF9vdmVy
ZmxvdyhuZXdfY291bnQsIGNvbmZpZy5nZXRfdHlwZV9zaXplKGhlYXAtPnR5cGUpLCAmc2l6ZSk7
Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKCFkaWRfb3ZlcmZsb3cpOwotICAgICAgICAgICAgCi0g
ICAgICAgICAgICByYXdfcmVzdWx0ID0gcGFzX2RlYnVnX2hlYXBfcmVhbGxvYyhvbGRfcHRyLCBz
aXplKTsKKyAgICAgICAgICAgIHJhd19yZXN1bHQgPSBwYXNfZGVidWdfaGVhcF9yZWFsbG9jKG9s
ZF9wdHIsIG5ld19zaXplKTsKIAotICAgICAgICAgICAgcmVzdWx0ID0gcGFzX3R5cGVkX2FsbG9j
YXRpb25fcmVzdWx0X2NyZWF0ZV9lbXB0eSgpOworICAgICAgICAgICAgcmVzdWx0ID0gcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CiAKICAgICAgICAgICAgIGlmIChyYXdf
cmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnR5cGUgPSBoZWFwLT50eXBlOwotICAg
ICAgICAgICAgICAgIHJlc3VsdC5wdHIgPSByYXdfcmVzdWx0OwotICAgICAgICAgICAgICAgIHJl
c3VsdC5zaXplID0gc2l6ZTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYmVnaW4gPSAodWludHB0
cl90KXJhd19yZXN1bHQ7CiAgICAgICAgICAgICAgICAgcmVzdWx0LmRpZF9zdWNjZWVkID0gdHJ1
ZTsKICAgICAgICAgICAgIH0KIApAQCAtMzQyLDcgKzMyNSw3IEBAIHBhc190cnlfcmVhbGxvY2F0
ZSh2b2lkKiBvbGRfcHRyLAogICAgICAgICBpZiAocGFzX2xhcmdlX21hcF9lbnRyeV9pc19lbXB0
eShlbnRyeSkpIHsKICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRpb25fZGlkX2ZhaWwoCiAgICAg
ICAgICAgICAgICAgIlNvdXJjZSBvYmplY3Qgbm90IGFsbG9jYXRlZCIsCi0gICAgICAgICAgICAg
ICAgTlVMTCwgaGVhcCwgb2xkX3B0ciwgMCwgbmV3X2NvdW50KTsKKyAgICAgICAgICAgICAgICBO
VUxMLCBoZWFwLCBvbGRfcHRyLCAwLCBuZXdfc2l6ZSk7CiAgICAgICAgIH0KICAgICAgICAgCiAg
ICAgICAgIFBBU19BU1NFUlQoZW50cnkuYmVnaW4gPT0gYmVnaW4pOwpAQCAtMzU0LDEwICszMzcs
MTAgQEAgcGFzX3RyeV9yZWFsbG9jYXRlKHZvaWQqIG9sZF9wdHIsCiAgICAgICAgIHBhc19oZWFw
X2xvY2tfdW5sb2NrKCk7CiAgICAgICAgIAogICAgICAgICByZXN1bHQgPSBwYXNfdHJ5X2FsbG9j
YXRlX2Zvcl9yZWFsbG9jYXRlX2FuZF9jb3B5KAotICAgICAgICAgICAgc291cmNlX2hlYXAsIGhl
YXAsIG9sZF9wdHIsIG9sZF9zaXplLCBuZXdfY291bnQsIHRlbGVwb3J0X3J1bGUsCisgICAgICAg
ICAgICBzb3VyY2VfaGVhcCwgaGVhcCwgb2xkX3B0ciwgb2xkX3NpemUsIG5ld19zaXplLCB0ZWxl
cG9ydF9ydWxlLAogICAgICAgICAgICAgYWxsb2NhdGVfY2FsbGJhY2ssIGFsbG9jYXRlX2NhbGxi
YWNrX2FyZyk7CiAgICAgICAgIAotICAgICAgICBpZiAocmVzdWx0LnB0ciB8fCBmcmVlX21vZGUg
PT0gcGFzX3JlYWxsb2NhdGVfZnJlZV9hbHdheXMpCisgICAgICAgIGlmIChyZXN1bHQuYmVnaW4g
fHwgZnJlZV9tb2RlID09IHBhc19yZWFsbG9jYXRlX2ZyZWVfYWx3YXlzKQogICAgICAgICAgICAg
cGFzX2RlYWxsb2NhdGVfa25vd25fbGFyZ2Uob2xkX3B0ciwgY29uZmlnLmNvbmZpZ19wdHIpOwog
ICAgICAgICAKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTM3MCwxMCArMzUzLDEwIEBAIHR5
cGVkZWYgc3RydWN0IHsKICAgICBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19mb3JfcmVhbGxv
YyB0cnlfYWxsb2NhdGVfaW50cmluc2ljOwogfSBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2lj
X2FsbG9jYXRlX2RhdGE7CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfdHlwZWRfYWxs
b2NhdGlvbl9yZXN1bHQKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHQKIHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfYWxsb2NhdGVfY2FsbGJhY2soCiAg
ICAgcGFzX2hlYXAqIGhlYXAsCi0gICAgc2l6ZV90IG5ld19jb3VudCwKKyAgICBzaXplX3QgbmV3
X3NpemUsCiAgICAgdm9pZCogYXJnKQogewogICAgIHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5z
aWNfYWxsb2NhdGVfZGF0YSogZGF0YTsKQEAgLTM4MiwxMCArMzY1LDcgQEAgcGFzX3RyeV9yZWFs
bG9jYXRlX2ludHJpbnNpY19hbGxvY2F0ZV9jYQogICAgIAogICAgIGRhdGEgPSAocGFzX3RyeV9y
ZWFsbG9jYXRlX2ludHJpbnNpY19hbGxvY2F0ZV9kYXRhKilhcmc7CiAgICAgCi0gICAgcmV0dXJu
IHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfd2l0aF9pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHQoCi0gICAgICAgIGRhdGEtPnRyeV9hbGxvY2F0ZV9pbnRyaW5zaWMobmV3X2Nv
dW50KSwKLSAgICAgICAgTlVMTCwKLSAgICAgICAgbmV3X2NvdW50KTsKKyAgICByZXR1cm4gZGF0
YS0+dHJ5X2FsbG9jYXRlX2ludHJpbnNpYyhuZXdfc2l6ZSk7CiB9CiAKIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKQEAgLTQwMiwxNiArMzgyLDE1IEBAIHBh
c190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWMoCiAgICAgCiAgICAgZGF0YS50cnlfYWxsb2NhdGVf
aW50cmluc2ljID0gdHJ5X2FsbG9jYXRlX2ludHJpbnNpYzsKICAgICAKLSAgICByZXR1cm4gcGFz
X3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2FzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCgK
LSAgICAgICAgcGFzX3RyeV9yZWFsbG9jYXRlKAotICAgICAgICAgICAgb2xkX3B0ciwKLSAgICAg
ICAgICAgIGhlYXAsCi0gICAgICAgICAgICBuZXdfc2l6ZSwKLSAgICAgICAgICAgIGNvbmZpZywK
LSAgICAgICAgICAgIHRlbGVwb3J0X3J1bGUsCi0gICAgICAgICAgICBmcmVlX21vZGUsCi0gICAg
ICAgICAgICBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX2FsbG9jYXRlX2NhbGxiYWNrLAot
ICAgICAgICAgICAgJmRhdGEpKTsKKyAgICByZXR1cm4gcGFzX3RyeV9yZWFsbG9jYXRlKAorICAg
ICAgICBvbGRfcHRyLAorICAgICAgICBoZWFwLAorICAgICAgICBuZXdfc2l6ZSwKKyAgICAgICAg
Y29uZmlnLAorICAgICAgICB0ZWxlcG9ydF9ydWxlLAorICAgICAgICBmcmVlX21vZGUsCisgICAg
ICAgIHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfYWxsb2NhdGVfY2FsbGJhY2ssCisgICAg
ICAgICZkYXRhKTsKIH0KIAogdHlwZWRlZiBzdHJ1Y3QgewpAQCAtNDE5LDEwICszOTgsMTAgQEAg
dHlwZWRlZiBzdHJ1Y3QgewogICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWY7CiB9IHBhc190cnlf
cmVhbGxvY2F0ZV9zaW5nbGVfYWxsb2NhdGVfZGF0YTsKIAotc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX3RyeV9yZWFsbG9jYXRlX3NpbmdsZV9hbGxvY2F0
ZV9jYWxsYmFjaygKICAgICBwYXNfaGVhcCogaGVhcCwKLSAgICBzaXplX3QgbmV3X2NvdW50LAor
ICAgIHNpemVfdCBuZXdfc2l6ZSwKICAgICB2b2lkKiBhcmcpCiB7CiAgICAgcGFzX3RyeV9yZWFs
bG9jYXRlX3NpbmdsZV9hbGxvY2F0ZV9kYXRhKiBkYXRhOwpAQCAtNDMxLDEyICs0MTAsMTMgQEAg
cGFzX3RyeV9yZWFsbG9jYXRlX3NpbmdsZV9hbGxvY2F0ZV9jYWxsYgogICAgIAogICAgIGRhdGEg
PSAocGFzX3RyeV9yZWFsbG9jYXRlX3NpbmdsZV9hbGxvY2F0ZV9kYXRhKilhcmc7CiAgICAgCi0g
ICAgUEFTX0FTU0VSVChuZXdfY291bnQgPT0gMSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKAor
ICAgICAgICBuZXdfc2l6ZSA9PSBwYXNfaGVhcF9jb25maWdfa2luZF9nZXRfY29uZmlnKGhlYXAt
PmNvbmZpZ19raW5kKS0+Z2V0X3R5cGVfc2l6ZShoZWFwLT50eXBlKSk7CiAgICAgCiAgICAgcmV0
dXJuIGRhdGEtPnRyeV9hbGxvY2F0ZShkYXRhLT5oZWFwX3JlZik7CiB9CiAKLXN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQKK3N0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190cnlfcmVhbGxvY2F0ZV9zaW5n
bGUoCiAgICAgdm9pZCogb2xkX3B0ciwKICAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLApAQCAt
NDU3LDcgKzQzNyw3IEBAIHBhc190cnlfcmVhbGxvY2F0ZV9zaW5nbGUoCiAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfbm9ybWFsX2hlYXBfcmVmX2tpbmQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25maWcuY29uZmlnX3B0ciwKICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bnRpbWVf
Y29uZmlnKSwKLSAgICAgICAgMSwKKyAgICAgICAgY29uZmlnLmdldF90eXBlX3NpemUoaGVhcF9y
ZWYtPnR5cGUpLAogICAgICAgICBjb25maWcsCiAgICAgICAgIHRlbGVwb3J0X3J1bGUsCiAgICAg
ICAgIGZyZWVfbW9kZSwKQEAgLTQ3MCwyNyArNDUwLDI3IEBAIHR5cGVkZWYgc3RydWN0IHsKICAg
ICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmOwogfSBwYXNfdHJ5X3JlYWxsb2NhdGVfYXJyYXlfYWxs
b2NhdGVfZGF0YTsKIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc190eXBlZF9hbGxvY2F0
aW9uX3Jlc3VsdAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dAogcGFzX3RyeV9yZWFsbG9jYXRlX2FycmF5X2FsbG9jYXRlX2NhbGxiYWNrKAogICAgIHBhc19o
ZWFwKiBoZWFwLAotICAgIHNpemVfdCBuZXdfY291bnQsCisgICAgc2l6ZV90IG5ld19zaXplLAog
ICAgIHZvaWQqIGFyZykKIHsKICAgICBwYXNfdHJ5X3JlYWxsb2NhdGVfYXJyYXlfYWxsb2NhdGVf
ZGF0YSogZGF0YTsKLSAgICBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OworICAg
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CiAgICAgCiAgICAgZGF0YSA9IChwYXNfdHJ5
X3JlYWxsb2NhdGVfYXJyYXlfYWxsb2NhdGVfZGF0YSopYXJnOwogICAgIAotICAgIHJlc3VsdCA9
IGRhdGEtPnRyeV9hbGxvY2F0ZV9hcnJheShkYXRhLT5oZWFwX3JlZiwgaGVhcCwgbmV3X2NvdW50
KTsKKyAgICByZXN1bHQgPSBkYXRhLT50cnlfYWxsb2NhdGVfYXJyYXkoZGF0YS0+aGVhcF9yZWYs
IGhlYXAsIG5ld19zaXplKTsKICAgICAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfdHJ5X3Jl
YWxsb2NhdGVfYXJyYXkoCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25f
cmVzdWx0CitwYXNfdHJ5X3JlYWxsb2NhdGVfYXJyYXlfYnlfc2l6ZSgKICAgICB2b2lkKiBvbGRf
cHRyLAogICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsCi0gICAgc2l6ZV90IG5ld19jb3VudCwK
KyAgICBzaXplX3QgbmV3X3NpemUsCiAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKICAgICBw
YXNfdHJ5X2FsbG9jYXRlX2FycmF5X2Zvcl9yZWFsbG9jIHRyeV9hbGxvY2F0ZV9hcnJheSwKICAg
ICBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyogcnVudGltZV9jb25maWcsCkBAIC01MDgsNyArNDg4
LDcgQEAgcGFzX3RyeV9yZWFsbG9jYXRlX2FycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX25vcm1hbF9oZWFwX3JlZl9raW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uZmln
LmNvbmZpZ19wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICBydW50aW1lX2NvbmZpZyksCi0g
ICAgICAgIG5ld19jb3VudCwKKyAgICAgICAgbmV3X3NpemUsCiAgICAgICAgIGNvbmZpZywKICAg
ICAgICAgdGVsZXBvcnRfcnVsZSwKICAgICAgICAgZnJlZV9tb2RlLApAQCAtNTE2LDE1ICs0OTYs
NDAgQEAgcGFzX3RyeV9yZWFsbG9jYXRlX2FycmF5KAogICAgICAgICAmZGF0YSk7CiB9CiAKK3N0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKK3Bhc190cnlfcmVh
bGxvY2F0ZV9hcnJheV9ieV9jb3VudCgKKyAgICB2b2lkKiBvbGRfcHRyLAorICAgIHBhc19oZWFw
X3JlZiogaGVhcF9yZWYsCisgICAgc2l6ZV90IG5ld19jb3VudCwKKyAgICBwYXNfaGVhcF9jb25m
aWcgY29uZmlnLAorICAgIHBhc190cnlfYWxsb2NhdGVfYXJyYXlfZm9yX3JlYWxsb2MgdHJ5X2Fs
bG9jYXRlX2FycmF5LAorICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBydW50aW1lX2NvbmZp
ZywKKyAgICBwYXNfcmVhbGxvY2F0ZV9oZWFwX3RlbGVwb3J0X3J1bGUgdGVsZXBvcnRfcnVsZSwK
KyAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQoreworICAgIHBhc19oZWFw
X3R5cGUqIHR5cGU7CisgICAgc2l6ZV90IHR5cGVfc2l6ZTsKKyAgICBzaXplX3QgbmV3X3NpemU7
CisgICAgCisgICAgdHlwZSA9IGhlYXBfcmVmLT50eXBlOworICAgIHR5cGVfc2l6ZSA9IGNvbmZp
Zy5nZXRfdHlwZV9zaXplKHR5cGUpOworICAgIAorICAgIGlmIChfX2J1aWx0aW5fbXVsX292ZXJm
bG93KG5ld19jb3VudCwgdHlwZV9zaXplLCAmbmV3X3NpemUpKQorICAgICAgICByZXR1cm4gcGFz
X2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CisKKyAgICByZXR1cm4gcGFzX3Ry
eV9yZWFsbG9jYXRlX2FycmF5X2J5X3NpemUoCisgICAgICAgIG9sZF9wdHIsIGhlYXBfcmVmLCBu
ZXdfc2l6ZSwgY29uZmlnLCB0cnlfYWxsb2NhdGVfYXJyYXksIHJ1bnRpbWVfY29uZmlnLCB0ZWxl
cG9ydF9ydWxlLCBmcmVlX21vZGUpOworfQorCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgcGFzX3By
aW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWY7CiAgICAgcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRp
dmVfZm9yX3JlYWxsb2MgdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZTsKIH0gcGFzX3RyeV9yZWFsbG9j
YXRlX3ByaW1pdGl2ZV9hbGxvY2F0ZV9kYXRhOwogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
cGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFz
X2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlX2FsbG9jYXRl
X2NhbGxiYWNrKAogICAgIHBhc19oZWFwKiBoZWFwLAotICAgIHNpemVfdCBuZXdfY291bnQsCisg
ICAgc2l6ZV90IG5ld19zaXplLAogICAgIHZvaWQqIGFyZykKIHsKICAgICBzdGF0aWMgY29uc3Qg
Ym9vbCB2ZXJib3NlID0gZmFsc2U7CkBAIC01MzYsMTUgKzU0MSwxMiBAQCBwYXNfdHJ5X3JlYWxs
b2NhdGVfcHJpbWl0aXZlX2FsbG9jYXRlX2NhCiAgICAgCiAgICAgZGF0YSA9IChwYXNfdHJ5X3Jl
YWxsb2NhdGVfcHJpbWl0aXZlX2FsbG9jYXRlX2RhdGEqKWFyZzsKIAotICAgIHJlc3VsdCA9IGRh
dGEtPnRyeV9hbGxvY2F0ZV9wcmltaXRpdmUoZGF0YS0+aGVhcF9yZWYsIG5ld19jb3VudCk7Cisg
ICAgcmVzdWx0ID0gZGF0YS0+dHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZShkYXRhLT5oZWFwX3JlZiwg
bmV3X3NpemUpOwogCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coImluIHJlYWxs
b2MgLSByZXN1bHQuYmVnaW4gPSAlcFxuIiwgKHZvaWQqKXJlc3VsdC5iZWdpbik7CiAgICAgCi0g
ICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfd2l0aF9pbnRyaW5z
aWNfYWxsb2NhdGlvbl9yZXN1bHQoCi0gICAgICAgIHJlc3VsdCwKLSAgICAgICAgTlVMTCwKLSAg
ICAgICAgbmV3X2NvdW50KTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CkBAIC01NjMsMTkgKzU2NSwxOCBAQCBw
YXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlKAogICAgIGRhdGEuaGVhcF9yZWYgPSBoZWFwX3Jl
ZjsKICAgICBkYXRhLnRyeV9hbGxvY2F0ZV9wcmltaXRpdmUgPSB0cnlfYWxsb2NhdGVfcHJpbWl0
aXZlOwogICAgIAotICAgIHJldHVybiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KAotICAgICAgICBwYXNfdHJ5X3JlYWxsb2NhdGUoCi0g
ICAgICAgICAgICBvbGRfcHRyLAotICAgICAgICAgICAgcGFzX2Vuc3VyZV9oZWFwKCZoZWFwX3Jl
Zi0+YmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcHJpbWl0aXZlX2hlYXBf
cmVmX2tpbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLmNvbmZpZ19wdHIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVudGltZV9jb25maWcpLAotICAgICAgICAg
ICAgbmV3X3NpemUsCi0gICAgICAgICAgICBjb25maWcsCi0gICAgICAgICAgICB0ZWxlcG9ydF9y
dWxlLAotICAgICAgICAgICAgZnJlZV9tb2RlLAotICAgICAgICAgICAgcGFzX3RyeV9yZWFsbG9j
YXRlX3ByaW1pdGl2ZV9hbGxvY2F0ZV9jYWxsYmFjaywKLSAgICAgICAgICAgICZkYXRhKSk7Cisg
ICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZSgKKyAgICAgICAgb2xkX3B0ciwKKyAgICAgICAg
cGFzX2Vuc3VyZV9oZWFwKCZoZWFwX3JlZi0+YmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19wcmltaXRpdmVfaGVhcF9yZWZfa2luZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNv
bmZpZy5jb25maWdfcHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgcnVudGltZV9jb25maWcp
LAorICAgICAgICBuZXdfc2l6ZSwKKyAgICAgICAgY29uZmlnLAorICAgICAgICB0ZWxlcG9ydF9y
dWxlLAorICAgICAgICBmcmVlX21vZGUsCisgICAgICAgIHBhc190cnlfcmVhbGxvY2F0ZV9wcmlt
aXRpdmVfYWxsb2NhdGVfY2FsbGJhY2ssCisgICAgICAgICZkYXRhKTsKIH0KIAogUEFTX0VORF9F
WFRFUk5fQzsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190eXBl
ZF9hbGxvY2F0aW9uX3Jlc3VsdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdC5oCShyZXZpc2lvbiAyODU3
ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHlwZWRfYWxsb2Nh
dGlvbl9yZXN1bHQuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDEyOCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChjKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX1RZUEVEX0FM
TE9DQVRJT05fUkVTVUxUX0gKLSNkZWZpbmUgUEFTX1RZUEVEX0FMTE9DQVRJT05fUkVTVUxUX0gK
LQotI2luY2x1ZGUgInBhc19hbGxvY2F0aW9uX3Jlc3VsdC5oIgotI2luY2x1ZGUgInBhc191dGls
cy5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfdHlwZWRfYWxsb2NhdGlv
bl9yZXN1bHQ7Ci10eXBlZGVmIHN0cnVjdCBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgcGFz
X3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0OwotCi1zdHJ1Y3QgcGFzX3R5cGVkX2FsbG9jYXRpb25f
cmVzdWx0IHsKLSAgICBwYXNfaGVhcF90eXBlKiB0eXBlOwotICAgIHZvaWQqIHB0cjsKLSAgICBz
aXplX3Qgc2l6ZTsKLSAgICBib29sIGRpZF9zdWNjZWVkOwotICAgIHBhc196ZXJvX21vZGUgemVy
b19tb2RlOwotfTsKLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc190eXBlZF9hbGxvY2F0
aW9uX3Jlc3VsdCBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2VtcHR5KHZvaWQp
Ci17Ci0gICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKLSAgICByZXN1bHQu
dHlwZSA9IE5VTEw7Ci0gICAgcmVzdWx0LnB0ciA9IE5VTEw7Ci0gICAgcmVzdWx0LnNpemUgPSAw
OwotICAgIHJlc3VsdC5kaWRfc3VjY2VlZCA9IGZhbHNlOwotICAgIHJlc3VsdC56ZXJvX21vZGUg
PSBwYXNfemVyb19tb2RlX21heV9oYXZlX25vbl96ZXJvOwotICAgIHJldHVybiByZXN1bHQ7Ci19
Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQK
LXBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGUocGFzX2hlYXBfdHlwZSogdHlwZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0
IGFsbG9jYXRpb25fcmVzdWx0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3Qgc2l6ZSkKLXsKLSAgICBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0Owot
ICAgIAotICAgIGlmICghYWxsb2NhdGlvbl9yZXN1bHQuZGlkX3N1Y2NlZWQpCi0gICAgICAgIHJl
dHVybiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2VtcHR5KCk7Ci0gICAgCi0g
ICAgcmVzdWx0LnR5cGUgPSB0eXBlOwotICAgIHJlc3VsdC5wdHIgPSAodm9pZCopYWxsb2NhdGlv
bl9yZXN1bHQuYmVnaW47Ci0gICAgcmVzdWx0LnNpemUgPSBzaXplOwotICAgIHJlc3VsdC5kaWRf
c3VjY2VlZCA9IGFsbG9jYXRpb25fcmVzdWx0LmRpZF9zdWNjZWVkOwotICAgIHJlc3VsdC56ZXJv
X21vZGUgPSBhbGxvY2F0aW9uX3Jlc3VsdC56ZXJvX21vZGU7Ci0gICAgcmV0dXJuIHJlc3VsdDsK
LX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAotcGFz
X3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2FzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCgK
LSAgICBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgaW50ZXJuYWxfcmVzdWx0KQotewotICAg
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7Ci0gICAgcmVzdWx0LmJlZ2luID0gKHVpbnRw
dHJfdClpbnRlcm5hbF9yZXN1bHQucHRyOwotICAgIHJlc3VsdC5kaWRfc3VjY2VlZCA9IGludGVy
bmFsX3Jlc3VsdC5kaWRfc3VjY2VlZDsKLSAgICByZXN1bHQuemVyb19tb2RlID0gaW50ZXJuYWxf
cmVzdWx0Lnplcm9fbW9kZTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfdHlwZWRfYWxsb2Nh
dGlvbl9yZXN1bHRfY3JlYXRlX3dpdGhfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KAotICAg
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBpbnRyaW5zaWNfcmVzdWx0LAotICAgIHBhc19oZWFwX3R5
cGUqIHR5cGUsCi0gICAgc2l6ZV90IHNpemUpCi17Ci0gICAgcGFzX3R5cGVkX2FsbG9jYXRpb25f
cmVzdWx0IHJlc3VsdDsKLSAgICByZXN1bHQudHlwZSA9IHR5cGU7Ci0gICAgcmVzdWx0LnB0ciA9
ICh2b2lkKilpbnRyaW5zaWNfcmVzdWx0LmJlZ2luOwotICAgIHJlc3VsdC5zaXplID0gc2l6ZTsK
LSAgICByZXN1bHQuZGlkX3N1Y2NlZWQgPSBpbnRyaW5zaWNfcmVzdWx0LmRpZF9zdWNjZWVkOwot
ICAgIHJlc3VsdC56ZXJvX21vZGUgPSBpbnRyaW5zaWNfcmVzdWx0Lnplcm9fbW9kZTsKLSAgICBy
ZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3R5cGVkX2Fs
bG9jYXRpb25fcmVzdWx0Ci1wYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfemVybyhwYXNfdHlw
ZWRfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KQotewotICAgIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF96ZXJvKAotICAgICAgICBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0KHJlc3VsdCksCi0gICAgICAgIHJlc3VsdC5zaXplKTsKLSAgICBy
ZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3R5cGVkX2Fs
bG9jYXRpb25fcmVzdWx0Ci1wYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfc2V0X2Vycm5vKHBh
c190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpCi17Ci0gICAgcGFzX2FsbG9jYXRpb25f
cmVzdWx0X3NldF9lcnJubygKLSAgICAgICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2Fz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdChyZXN1bHQpKTsKLSAgICByZXR1cm4gcmVzdWx0
OwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVz
dWx0Ci1wYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IocGFzX3R5cGVk
X2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCkKLXsKLSAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRf
Y3Jhc2hfb25fZXJyb3IoCi0gICAgICAgIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQocmVzdWx0KSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsK
LX0KLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19UWVBFRF9BTExPQ0FUSU9O
X1JFU1VMVF9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c191dGlsaXR5X2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwLmMJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXAuYwkod29ya2luZyBjb3B5
KQpAQCAtNzYsNyArNzYsNyBAQCB2b2lkKiBwYXNfdXRpbGl0eV9oZWFwX3RyeV9hbGxvY2F0ZV93
aXRoCiAKICAgICBhbGlnbmVkX3NpemUgPSBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMihzaXpl
LCBhbGlnbm1lbnQpOwogCi0gICAgaW5kZXggPSBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2Zv
cl9wcmltaXRpdmVfY291bnQoYWxpZ25lZF9zaXplLCBQQVNfVVRJTElUWV9IRUFQX0NPTkZJRyk7
CisgICAgaW5kZXggPSBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9zaXplKGFsaWduZWRf
c2l6ZSwgUEFTX1VUSUxJVFlfSEVBUF9DT05GSUcpOwogCiAgICAgaWYgKGluZGV4ID49IFBBU19O
VU1fVVRJTElUWV9TSVpFX0NMQVNTRVMpIHsKICAgICAgICAgcGFzX2xvZygiQ2Fubm90IGFsbG9j
YXRlIHNpemUgPSAlenUgKGFsaWdubWVudCA9ICV6dSwgYWxpZ25lZF9zaXplID0gJXp1LCBpbmRl
eCA9ICV6dSkgIgpAQCAtMTA3LDkgKzEwNyw5IEBAIHZvaWQqIHBhc191dGlsaXR5X2hlYXBfdHJ5
X2FsbG9jYXRlX3dpdGgKICAgICAgICAgCiAgICAgICAgIHBhc191dGlsaXR5X2hlYXBfc3VwcG9y
dF9pbnN0YW5jZS5zbG93X3BhdGhfY291bnQrKzsKIAotICAgICAgICBkaXJlY3RvcnkgPSBwYXNf
c2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQoCisgICAgICAg
IGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zv
cl9zaXplKAogICAgICAgICAgICAgJnBhc191dGlsaXR5X3NlZ3JlZ2F0ZWRfaGVhcCwgYWxpZ25l
ZF9zaXplLCBhbGlnbm1lbnQsCi0gICAgICAgICAgICBwYXNfZm9yY2VfY291bnRfbG9va3VwLCAm
cGFzX3V0aWxpdHlfaGVhcF9jb25maWcsIE5VTEwsCisgICAgICAgICAgICBwYXNfZm9yY2Vfc2l6
ZV9sb29rdXAsICZwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZywgTlVMTCwKICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Z1bGxfY3JlYXRpb25fbW9kZSk7CiAKICAgICAg
ICAgUEFTX0FTU0VSVChkaXJlY3RvcnkpOwpAQCAtMTE5LDggKzExOSw3IEBAIHZvaWQqIHBhc191
dGlsaXR5X2hlYXBfdHJ5X2FsbG9jYXRlX3dpdGgKIAogICAgIHJlc3VsdCA9ICh2b2lkKilwYXNf
bG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZSgKICAgICAgICAgYWxsb2NhdG9yLAotICAgICAg
ICBwYXNfdHJpdmlhbF9zaXplX3RodW5rLAotICAgICAgICAodm9pZCopYWxpZ25lZF9zaXplLAor
ICAgICAgICBhbGlnbmVkX3NpemUsCiAgICAgICAgIGFsaWdubWVudCwKICAgICAgICAgUEFTX1VU
SUxJVFlfSEVBUF9DT05GSUcsCiAgICAgICAgICZwYXNfdXRpbGl0eV9hbGxvY2F0b3JfY291bnRz
LApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVh
cF9jb25maWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5jCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5jCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSwxMiArMzEsMTQgQEAKIAogI2luY2x1ZGUgInBhc19jb21wYWN0X2Jv
b3RzdHJhcF9mcmVlX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9jb25maWdfdXRpbHNfaW5s
aW5lcy5oIgorI2luY2x1ZGUgInBhc19zdHJlYW0uaCIKICNpbmNsdWRlICJwYXNfdXRpbGl0eV9o
ZWFwLmgiCiAKIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSBwYXNfdXRpbGl0
eV9oZWFwX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSA9CiAgICAgUEFTX1NFR1JFR0FURURfU0hBUkVE
X1BBR0VfRElSRUNUT1JZX0lOSVRJQUxJWkVSKAogICAgICAgICBQQVNfVVRJTElUWV9IRUFQX0NP
TkZJRy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZywKLSAgICAgICAgcGFzX3NoYXJlX3BhZ2VzKTsK
KyAgICAgICAgcGFzX3NoYXJlX3BhZ2VzLAorICAgICAgICBOVUxMKTsKIAogcGFzX2hlYXBfY29u
ZmlnIHBhc191dGlsaXR5X2hlYXBfY29uZmlnID0gUEFTX1VUSUxJVFlfSEVBUF9DT05GSUc7CiAK
QEAgLTY3LDQgKzY5LDExIEBAIGJvb2wgcGFzX3V0aWxpdHlfaGVhcF9jb25maWdfZm9yX2VhY2hf
c2gKICAgICByZXR1cm4gY2FsbGJhY2soJnBhc191dGlsaXR5X2hlYXBfc2hhcmVkX3BhZ2VfZGly
ZWN0b3J5LCBhcmcpOwogfQogCit2b2lkIHBhc191dGlsaXR5X2hlYXBfY29uZmlnX2R1bXBfc2hh
cmVkX3BhZ2VfZGlyZWN0b3J5X2FyZygKKyAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIFBBU19VTlVT
RURfUEFSQU0oZGlyZWN0b3J5KTsKKyAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJVdGls
aXR5Iik7Cit9CisKICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFw
X2NvbmZpZy5oCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC05MCwx
MiArOTAsMTYgQEAgUEFTX0FQSSBib29sIHBhc191dGlsaXR5X2hlYXBfY29uZmlnX2ZvcgogICAg
ICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKSwKICAgICB2b2lkKiBhcmcpOwogCitQQVNfQVBJ
IHZvaWQgcGFzX3V0aWxpdHlfaGVhcF9jb25maWdfZHVtcF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnlf
YXJnKAorICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2Vf
ZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCiAjZGVmaW5lIFBBU19VVElMSVRZX0hFQVBfQ09ORklH
ICgocGFzX2hlYXBfY29uZmlnKXsgXAogICAgICAgICAuY29uZmlnX3B0ciA9ICZwYXNfdXRpbGl0
eV9oZWFwX2NvbmZpZywgXAogICAgICAgICAua2luZCA9IHBhc19oZWFwX2NvbmZpZ19raW5kX3Bh
c191dGlsaXR5LCBcCiAgICAgICAgIC5hY3RpdmF0ZV9jYWxsYmFjayA9IE5VTEwsIFwKICAgICAg
ICAgLmdldF90eXBlX3NpemUgPSBOVUxMLCBcCiAgICAgICAgIC5nZXRfdHlwZV9hbGlnbm1lbnQg
PSBOVUxMLCBcCisgICAgICAgIC5kdW1wX3R5cGUgPSBOVUxMLCBcCiAgICAgICAgIC5sYXJnZV9h
bGlnbm1lbnQgPSBQQVNfSU5URVJOQUxfTUlOX0FMSUdOLCBcCiAgICAgICAgIC5zbWFsbF9zZWdy
ZWdhdGVkX2NvbmZpZyA9IHsgXAogICAgICAgICAgICAgLmJhc2UgPSB7IFwKQEAgLTE2Myw2ICsx
NjcsNyBAQCBQQVNfQVBJIGJvb2wgcGFzX3V0aWxpdHlfaGVhcF9jb25maWdfZm9yCiAgICAgICAg
IC5wcmVwYXJlX3RvX2VudW1lcmF0ZSA9IE5VTEwsIFwKICAgICAgICAgLmZvcl9lYWNoX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeSA9IHBhc191dGlsaXR5X2hlYXBfY29uZmlnX2Zvcl9lYWNoX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeSwgXAogICAgICAgICAuZm9yX2VhY2hfc2hhcmVkX3BhZ2VfZGlyZWN0
b3J5X3JlbW90ZSA9IE5VTEwsIFwKKyAgICAgICAgLmR1bXBfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
X2FyZyA9IHBhc191dGlsaXR5X2hlYXBfY29uZmlnX2R1bXBfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
X2FyZywgXAogICAgICAgICBQQVNfSEVBUF9DT05GSUdfU1BFQ0lBTElaQVRJT05TKHBhc191dGls
aXR5X2hlYXBfY29uZmlnKSBcCiAgICAgfSkKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3V0aWxzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmMJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5jCSh3b3JraW5nIGNvcHkpCkBAIC03
MiwyMiArNzIsMjIgQEAgc3RhdGljIHZvaWQgKCpyZWFsbG9jYXRpb25fZGlkX2ZhaWxfY2FsbAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIHRhcmdl
dF9oZWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZv
aWQqIG9sZF9wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90IG9sZF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBuZXdfY291bnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBuZXdfc2l6ZSk7CiAKIFBBU19OT19SRVRVUk4gUEFT
X05FVkVSX0lOTElORSB2b2lkIHBhc19yZWFsbG9jYXRpb25fZGlkX2ZhaWwoY29uc3QgY2hhciAq
cmVhc29uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2b2lkKiBzb3VyY2VfaGVhcCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogdGFyZ2V0X2hlYXAs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZvaWQqIG9sZF9wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvbGRfc2l6ZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90
IG5ld19jb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IG5ld19zaXplKQogewogICAgIGlmIChyZWFsbG9jYXRp
b25fZGlkX2ZhaWxfY2FsbGJhY2spIHsKICAgICAgICAgcmVhbGxvY2F0aW9uX2RpZF9mYWlsX2Nh
bGxiYWNrKAotICAgICAgICAgICAgcmVhc29uLCBzb3VyY2VfaGVhcCwgdGFyZ2V0X2hlYXAsIG9s
ZF9wdHIsIG9sZF9zaXplLCBuZXdfY291bnQpOworICAgICAgICAgICAgcmVhc29uLCBzb3VyY2Vf
aGVhcCwgdGFyZ2V0X2hlYXAsIG9sZF9wdHIsIG9sZF9zaXplLCBuZXdfc2l6ZSk7CiAgICAgfQog
ICAgIHBhc19wYW5pYygicmVhbGxvY2F0aW9uIGRpZCBmYWlsIHdpdGggc291cmNlX2hlYXAgPSAl
cCwgdGFyZ2V0X2hlYXAgPSAlcCwgIgotICAgICAgICAgICAgICAib2xkX3B0ciA9ICVwLCBvbGRf
c2l6ZSA9ICV6dSwgbmV3X2NvdW50ID0gJXp1OiAlc1xuIiwKLSAgICAgICAgICAgICAgc291cmNl
X2hlYXAsIHRhcmdldF9oZWFwLCBvbGRfcHRyLCBvbGRfc2l6ZSwgbmV3X2NvdW50LAorICAgICAg
ICAgICAgICAib2xkX3B0ciA9ICVwLCBvbGRfc2l6ZSA9ICV6dSwgbmV3X3NpemUgPSAlenU6ICVz
XG4iLAorICAgICAgICAgICAgICBzb3VyY2VfaGVhcCwgdGFyZ2V0X2hlYXAsIG9sZF9wdHIsIG9s
ZF9zaXplLCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgcmVhc29uKTsKIH0KIApJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmgJKHJldmlzaW9uIDI4
NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjUsNyArMTY1LDcgQEAgUEFTX0FQSSBQQVNfTk9fUkVUVVJOIFBB
U19ORVZFUl9JTkxJTkUgdgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIHRhcmdldF9oZWFwLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZvaWQqIG9sZF9wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG9sZF9zaXplLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBuZXdfY291bnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuZXdfc2l6
ZSk7CiAKIFBBU19BUEkgUEFTX05PX1JFVFVSTiB2b2lkIHBhc19hc3NlcnRpb25fZmFpbGVkKGNv
bnN0IGNoYXIqIGZpbGVuYW1lLCBpbnQgbGluZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGNvbnN0
IGNoYXIqIGV4cHJlc3Npb24pOwogCkBAIC0yOTIsNiArMjkyLDExIEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBwYXNfY29tcGFyZV9hbmRfc3dhcF8KICAgICByZXR1cm4gb2xkX3ZhbHVlOwogfQogCitz
dGF0aWMgaW5saW5lIGJvb2wgcGFzX2NvbXBhcmVfYW5kX3N3YXBfdWludDhfd2Vhayh1aW50OF90
KiBwdHIsIHVpbnQ4X3Qgb2xkX3ZhbHVlLCB1aW50OF90IG5ld192YWx1ZSkKK3sKKyAgICByZXR1
cm4gX19jMTFfYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2VhaygoX0F0b21pYyB1aW50OF90Kilw
dHIsICZvbGRfdmFsdWUsIG5ld192YWx1ZSwgX19BVE9NSUNfU0VRX0NTVCwgX19BVE9NSUNfU0VR
X0NTVCk7Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfY29tcGFyZV9hbmRfc3dhcF91aW50
MTZfd2Vhayh1aW50MTZfdCogcHRyLCB1aW50MTZfdCBvbGRfdmFsdWUsIHVpbnQxNl90IG5ld192
YWx1ZSkKIHsKICAgICByZXR1cm4gX19jMTFfYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhaygo
X0F0b21pYyB1aW50MTZfdCopcHRyLCAmb2xkX3ZhbHVlLCBuZXdfdmFsdWUsIF9fQVRPTUlDX1NF
UV9DU1QsIF9fQVRPTUlDX1NFUV9DU1QpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3V0aWxzX3ByZWZpeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsc19wcmVmaXguaAkocmV2aXNpb24gMjg1Nzg1KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzX3ByZWZpeC5oCSh3
b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSwxMiBAQCBfX1BBU19CRUdJTl9FWFRFUk5fQzsKICNk
ZWZpbmUgX19QQVNfQVBJCiAjZW5kaWYKIAorI2lmIGRlZmluZWQoUEFTX0JNQUxMT0MpICYmIFBB
U19CTUFMTE9DCisjZGVmaW5lIF9fUEFTX0JBUEkgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgi
ZGVmYXVsdCIpKSkKKyNlbHNlCisjZGVmaW5lIF9fUEFTX0JBUEkgX19QQVNfQVBJCisjZW5kaWYK
KwogI2RlZmluZSBfX1BBU19VTlVTRURfUEFSQU0odmFyaWFibGUpICh2b2lkKXZhcmlhYmxlCiAK
ICNkZWZpbmUgX19QQVNfT0ZGU0VUT0YodHlwZSwgZmllbGQpIF9fYnVpbHRpbl9vZmZzZXRvZih0
eXBlLCBmaWVsZCkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3RoaW5n
eV9oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
dGhpbmd5X2hlYXAuYwkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvdGhpbmd5X2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtMTEwLDEyICsxMTAs
MTMgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEUoCiBfX2F0dHJpYnV0ZV9fKChtYWxsb2MpKQog
dm9pZCogdGhpbmd5X3RyeV9hbGxvY2F0ZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQogewotICAg
IHJldHVybiB0cnlfYWxsb2NhdGUoaGVhcF9yZWYpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKXRy
eV9hbGxvY2F0ZShoZWFwX3JlZikuYmVnaW47CiB9CiAKIHZvaWQqIHRoaW5neV90cnlfYWxsb2Nh
dGVfemVyb2VkKHBhc19oZWFwX3JlZiogaGVhcF9yZWYpCiB7Ci0gICAgcmV0dXJuIHBhc190eXBl
ZF9hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKHRyeV9hbGxvY2F0ZShoZWFwX3JlZikpLnB0cjsKKyAg
ICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgICAgICB0cnlf
YWxsb2NhdGUoaGVhcF9yZWYpLCBUSElOR1lfSEVBUF9DT05GSUcuZ2V0X3R5cGVfc2l6ZShoZWFw
X3JlZi0+dHlwZSkpLmJlZ2luOwogfQogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9BUlJBWSgK
QEAgLTEyOCwxMiArMTI5LDE4IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0FSUkFZKAogX19h
dHRyaWJ1dGVfXygobWFsbG9jKSkKIHZvaWQqIHRoaW5neV90cnlfYWxsb2NhdGVfYXJyYXkocGFz
X2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGNvdW50LCBzaXplX3QgYWxpZ25tZW50KQogewot
ICAgIHJldHVybiB0cnlfYWxsb2NhdGVfYXJyYXkoaGVhcF9yZWYsIGNvdW50LCBhbGlnbm1lbnQp
LnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKXRyeV9hbGxvY2F0ZV9hcnJheV9ieV9jb3VudChoZWFw
X3JlZiwgY291bnQsIGFsaWdubWVudCkuYmVnaW47CiB9CiAKIHZvaWQqIHRoaW5neV90cnlfYWxs
b2NhdGVfemVyb2VkX2FycmF5KHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCwg
c2l6ZV90IGFsaWdubWVudCkKIHsKLSAgICByZXR1cm4gcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVz
dWx0X3plcm8odHJ5X2FsbG9jYXRlX2FycmF5KGhlYXBfcmVmLCBjb3VudCwgYWxpZ25tZW50KSku
cHRyOworICAgIHNpemVfdCBzaXplOworCisgICAgaWYgKF9fYnVpbHRpbl9tdWxfb3ZlcmZsb3co
Y291bnQsIFRISU5HWV9IRUFQX0NPTkZJRy5nZXRfdHlwZV9zaXplKGhlYXBfcmVmLT50eXBlKSwg
JnNpemUpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAKKyAgICByZXR1cm4gKHZvaWQqKXBh
c19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgICAgICB0cnlfYWxsb2NhdGVfYXJyYXlfYnlf
c2l6ZShoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KSwgc2l6ZSkuYmVnaW47CiB9CiAKIHNpemVf
dCB0aGluZ3lfZ2V0X2FsbG9jYXRpb25fc2l6ZSh2b2lkKiBwdHIpCkBAIC0xNDQsMTQgKzE1MSwx
NCBAQCBzaXplX3QgdGhpbmd5X2dldF9hbGxvY2F0aW9uX3NpemUodm9pZCogCiB2b2lkKiB0aGlu
Z3lfdHJ5X3JlYWxsb2NhdGVfYXJyYXkoCiAgICAgdm9pZCogb2xkX3B0ciwgcGFzX2hlYXBfcmVm
KiBoZWFwX3JlZiwgc2l6ZV90IG5ld19jb3VudCkKIHsKLSAgICByZXR1cm4gcGFzX3RyeV9yZWFs
bG9jYXRlX2FycmF5KG9sZF9wdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWFwX3JlZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19jb3Vu
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRISU5HWV9IRUFQX0NPTkZJ
RywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeV9hbGxvY2F0ZV9hcnJh
eV9mb3JfcmVhbGxvYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0aGlu
Z3lfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2Rpc2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX2lmX3N1Y2Nl
c3NmdWwpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9hcnJheV9i
eV9jb3VudChvbGRfcHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlYXBfcmVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5ld19jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUSElOR1lfSEVBUF9DT05GSUcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5X2FsbG9jYXRlX2Fy
cmF5X2Zvcl9yZWFsbG9jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZ0aGluZ3lfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0
ZV9kaXNhbGxvd19oZWFwX3RlbGVwb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfaWZfc3VjY2Vzc2Z1bCku
YmVnaW47CiB9CiAKIHZvaWQgdGhpbmd5X2RlYWxsb2NhdGUodm9pZCogcHRyKQpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfY29uZmlnLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfY29u
ZmlnLmgJKHJldmlzaW9uIDI4NTc4NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3RoaW5neV9oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw3IEBA
IFBBU19CRUdJTl9FWFRFUk5fQzsKICAgICAuYWN0aXZhdGUgPSBwYXNfaGVhcF9jb25maWdfdXRp
bHNfbnVsbF9hY3RpdmF0ZSwgXAogICAgIC5nZXRfdHlwZV9zaXplID0gcGFzX3NpbXBsZV90eXBl
X2FzX2hlYXBfdHlwZV9nZXRfdHlwZV9zaXplLCBcCiAgICAgLmdldF90eXBlX2FsaWdubWVudCA9
IHBhc19zaW1wbGVfdHlwZV9hc19oZWFwX3R5cGVfZ2V0X3R5cGVfYWxpZ25tZW50LCBcCisgICAg
LmR1bXBfdHlwZSA9IHBhc19zaW1wbGVfdHlwZV9hc19oZWFwX3R5cGVfZHVtcCwgXAogICAgIC5j
aGVja19kZWFsbG9jYXRpb24gPSB0cnVlLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfbWluX2Fs
aWduX3NoaWZ0ID0gVEhJTkdZX01JTl9BTElHTl9TSElGVCwgXAogICAgIC5zbWFsbF9zZWdyZWdh
dGVkX3NoYXJpbmdfc2hpZnQgPSBQQVNfU01BTExfU0hBUklOR19TSElGVCwgXApJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0V4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0V4cGVuZGFibGVNZW1v
cnlUZXN0cy5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90
ZXN0L0V4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwy
MjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgIlRlc3RIYXJuZXNzLmgiCisKKyNpZiBQQVNfRU5BQkxFX0JNQUxMT0MKKworI2luY2x1
ZGUgImJtYWxsb2NfaGVhcC5oIgorI2luY2x1ZGUgInBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVt
b3J5LmgiCisjaW5jbHVkZSAicGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmgiCisjaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1l
c3BhY2UgeworCitibWFsbG9jX3R5cGUgdGhlVHlwZSA9IEJNQUxMT0NfVFlQRV9JTklUSUFMSVpF
Uig0MiwgMiwgImZvbyIpOworcGFzX2hlYXBfcmVmIHRoZUhlYXAgPSBCTUFMTE9DX0hFQVBfUkVG
X0lOSVRJQUxJWkVSKCZ0aGVUeXBlKTsKKwordm9pZCB0ZXN0UGF5bG9hZEltcGwocGFzX2hlYXBf
cmVmJiBoZWFwLCBib29sIGZpcnN0UnVuKQoreworICAgIHZvaWQqIG9iamVjdCA9IGJtYWxsb2Nf
aXNvX2FsbG9jYXRlKCZoZWFwKTsKKyAgICBDSEVDSyhvYmplY3QpOworICAgIENIRUNLX0VRVUFM
KGJtYWxsb2NfZ2V0X2FsbG9jYXRpb25fc2l6ZShvYmplY3QpLCA0OCk7CisKKyAgICBpZiAoZmly
c3RSdW4pIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCBzbyBmYXIsIHdlIGRvbid0IG5lZWQgYW55
IGV4cGVuZGFibGUgbWVtb3JpZXMuCisgICAgICAgIENIRUNLKCFwYXNfY29tcGFjdF9leHBlbmRh
YmxlX21lbW9yeV9oZWFkZXIuaGVhZGVyLnNpemUpOworICAgICAgICBDSEVDSyghcGFzX2NvbXBh
Y3RfZXhwZW5kYWJsZV9tZW1vcnlfaGVhZGVyLmhlYWRlci5idW1wKTsKKyAgICAgICAgQ0hFQ0so
IXBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5X3BheWxvYWQpOworICAgICAgICBDSEVDSygh
cGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5X2hlYWQpOworICAgIH0KKworICAgIHZvaWQqIHNt
YWxsQXJyYXkgPSBibWFsbG9jX2lzb19hbGxvY2F0ZV9hcnJheV9ieV9zaXplKCZoZWFwLCAxMDAp
OworICAgIENIRUNLKHNtYWxsQXJyYXkpOworICAgIENIRUNLX0VRVUFMKGJtYWxsb2NfZ2V0X2Fs
bG9jYXRpb25fc2l6ZShzbWFsbEFycmF5KSwgMTEyKTsKKworICAgIHZvaWQqIG1lZGl1bUFycmF5
ID0gYm1hbGxvY19pc29fYWxsb2NhdGVfYXJyYXlfYnlfc2l6ZSgmaGVhcCwgNDAwKTsKKyAgICBD
SEVDSyhtZWRpdW1BcnJheSk7CisgICAgQ0hFQ0tfRVFVQUwoYm1hbGxvY19nZXRfYWxsb2NhdGlv
bl9zaXplKG1lZGl1bUFycmF5KSwgNDAwKTsKKworICAgIHZvaWQqIGxhcmdlQXJyYXkgPSBibWFs
bG9jX2lzb19hbGxvY2F0ZV9hcnJheV9ieV9zaXplKCZoZWFwLCAyMDAwKTsKKyAgICBDSEVDSyhs
YXJnZUFycmF5KTsKKyAgICBDSEVDS19FUVVBTChibWFsbG9jX2dldF9hbGxvY2F0aW9uX3NpemUo
bGFyZ2VBcnJheSksIDIwMTYpOworCisgICAgdm9pZCogbGFyZ2VyQXJyYXkgPSBibWFsbG9jX2lz
b19hbGxvY2F0ZV9hcnJheV9ieV9zaXplKCZoZWFwLCAxMDAwMCk7CisgICAgQ0hFQ0sobGFyZ2Vy
QXJyYXkpOworICAgIENIRUNLX0VRVUFMKGJtYWxsb2NfZ2V0X2FsbG9jYXRpb25fc2l6ZShsYXJn
ZXJBcnJheSksIDEwNzUyKTsKKworICAgIHZvaWQqIGxhcmdlc3RBcnJheSA9IGJtYWxsb2NfaXNv
X2FsbG9jYXRlX2FycmF5X2J5X3NpemUoJmhlYXAsIDEwMDAwMCk7CisgICAgQ0hFQ0sobGFyZ2Vz
dEFycmF5KTsKKyAgICBDSEVDS19FUVVBTChibWFsbG9jX2dldF9hbGxvY2F0aW9uX3NpemUobGFy
Z2VzdEFycmF5KSwgMTAwMDAwKTsKKworICAgIC8vIENoZWNrIHRoYXQgdGhlIHRlc3QgaW5kZWVk
IGNyZWF0ZWQgZXhwZW5kYWJsZSBtZW1vcmllcy4KKyAgICBDSEVDSyhwYXNfY29tcGFjdF9leHBl
bmRhYmxlX21lbW9yeV9oZWFkZXIuaGVhZGVyLnNpemUpOworICAgIENIRUNLKHBhc19jb21wYWN0
X2V4cGVuZGFibGVfbWVtb3J5X2hlYWRlci5oZWFkZXIuYnVtcCk7CisgICAgQ0hFQ0socGFzX2Nv
bXBhY3RfZXhwZW5kYWJsZV9tZW1vcnlfcGF5bG9hZCk7CisgICAgQ0hFQ0socGFzX2xhcmdlX2V4
cGVuZGFibGVfbWVtb3J5X2hlYWQpOworICAgIENIRUNLKHBhc19sYXJnZV9leHBlbmRhYmxlX21l
bW9yeV9oZWFkLT5oZWFkZXIuc2l6ZSk7CisgICAgQ0hFQ0socGFzX2xhcmdlX2V4cGVuZGFibGVf
bWVtb3J5X2hlYWQtPmhlYWRlci5idW1wKTsKK30KKwordm9pZCB0ZXN0UGF5bG9hZEltcGwoYm9v
bCBmaXJzdFJ1biA9IHRydWUpCit7CisgICAgdGVzdFBheWxvYWRJbXBsKHRoZUhlYXAsIGZpcnN0
UnVuKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KK3ZvaWQgZm9yRWFjaEV4cGVuZGFi
bGVNZW1vcnkoY29uc3QgRnVuYyYgZnVuYykKK3sKKyAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsK
KyAgICBmdW5jKHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5X2hlYWRlci5oZWFkZXIsIHBh
c19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5X3BheWxvYWQpOworICAgIGZvciAocGFzX2xhcmdl
X2V4cGVuZGFibGVfbWVtb3J5KiBsYXJnZU1lbW9yeSA9IHBhc19sYXJnZV9leHBlbmRhYmxlX21l
bW9yeV9oZWFkOworICAgICAgICAgbGFyZ2VNZW1vcnk7CisgICAgICAgICBsYXJnZU1lbW9yeSA9
IGxhcmdlTWVtb3J5LT5uZXh0KQorICAgICAgICBmdW5jKGxhcmdlTWVtb3J5LT5oZWFkZXIsIHBh
c19sYXJnZV9leHBlbmRhYmxlX21lbW9yeV9wYXlsb2FkKGxhcmdlTWVtb3J5KSk7CisgICAgcGFz
X2hlYXBfbG9ja191bmxvY2soKTsKK30KKwordm9pZCBjaGVja0FsbERlY29tbWl0dGVkKCkKK3sK
KyAgICBmb3JFYWNoRXhwZW5kYWJsZU1lbW9yeShbJl0gKHBhc19leHBlbmRhYmxlX21lbW9yeSYg
aGVhZGVyLCB2b2lkKiBwYXlsb2FkKSB7CisgICAgICAgIENIRUNLKHBhc19leHBlbmRhYmxlX21l
bW9yeV9udW1fcGFnZXNfaW5fdXNlKCZoZWFkZXIpKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
bmRleCA9IDA7IGluZGV4IDwgcGFzX2V4cGVuZGFibGVfbWVtb3J5X251bV9wYWdlcygmaGVhZGVy
KTsgKytpbmRleCkgeworICAgICAgICAgICAgQ0hFQ0tfRVFVQUwocGFzX2V4cGVuZGFibGVfbWVt
b3J5X3N0YXRlX2dldF9raW5kKGhlYWRlci5zdGF0ZXNbaW5kZXhdKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0RFQ09NTUlUVEVEKTsK
KyAgICAgICAgfQorICAgIH0pOworfQorCit2b2lkIGNoZWNrQWxsSW5Vc2VDb21taXR0ZWQoKQor
eworICAgIGZvckVhY2hFeHBlbmRhYmxlTWVtb3J5KFsmXSAocGFzX2V4cGVuZGFibGVfbWVtb3J5
JiBoZWFkZXIsIHZvaWQqIHBheWxvYWQpIHsKKyAgICAgICAgQ0hFQ0socGFzX2V4cGVuZGFibGVf
bWVtb3J5X251bV9wYWdlc19pbl91c2UoJmhlYWRlcikpOworICAgICAgICBDSEVDS19FUVVBTChw
YXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfZ2V0X2tpbmQoaGVhZGVyLnN0YXRlc1swXSksCisg
ICAgICAgICAgICAgICAgICAgIFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0pVU1Rf
VVNFRCk7CisgICAgICAgIENIRUNLX0VRVUFMKHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9n
ZXRfa2luZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlci5zdGF0ZXNbcGFzX2V4cGVu
ZGFibGVfbWVtb3J5X251bV9wYWdlc19pbl91c2UoJmhlYWRlcikgLSAxXSksCisgICAgICAgICAg
ICAgICAgICAgIFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0pVU1RfVVNFRCk7Cisg
ICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHBhc19leHBlbmRhYmxlX21l
bW9yeV9udW1fcGFnZXNfaW5fdXNlKCZoZWFkZXIpOyArK2luZGV4KSB7CisgICAgICAgICAgICBD
SEVDS19OT1RfRVFVQUwocGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX2dldF9raW5kKGhlYWRl
ci5zdGF0ZXNbaW5kZXhdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVNfRVhQRU5E
QUJMRV9NRU1PUllfU1RBVEVfS0lORF9ERUNPTU1JVFRFRCk7CisgICAgICAgICAgICBDSEVDS19M
RVNTX0VRVUFMKHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9nZXRfa2luZChoZWFkZXIuc3Rh
dGVzW2luZGV4XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBU19FWFBFTkRBQkxF
X01FTU9SWV9TVEFURV9LSU5EX0pVU1RfVVNFRCk7CisgICAgICAgICAgICBDSEVDSygocGFzX2V4
cGVuZGFibGVfbWVtb3J5X3N0YXRlX2dldF9raW5kKGhlYWRlci5zdGF0ZXNbaW5kZXhdKQorICAg
ICAgICAgICAgICAgICAgID09IFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFURV9LSU5EX0lOVEVS
SU9SKSB8fAorICAgICAgICAgICAgICAgICAgKHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9n
ZXRfa2luZChoZWFkZXIuc3RhdGVzW2luZGV4XSkKKyAgICAgICAgICAgICAgICAgICA9PSBQQVNf
RVhQRU5EQUJMRV9NRU1PUllfU1RBVEVfS0lORF9KVVNUX1VTRUQpKTsKKyAgICAgICAgfQorICAg
ICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gcGFzX2V4cGVuZGFibGVfbWVtb3J5X251bV9wYWdl
c19pbl91c2UoJmhlYWRlcik7CisgICAgICAgICAgICAgaW5kZXggPCBwYXNfZXhwZW5kYWJsZV9t
ZW1vcnlfbnVtX3BhZ2VzKCZoZWFkZXIpOworICAgICAgICAgICAgICsraW5kZXgpIHsKKyAgICAg
ICAgICAgIENIRUNLX0VRVUFMKHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9nZXRfa2luZCho
ZWFkZXIuc3RhdGVzW2luZGV4XSksCisgICAgICAgICAgICAgICAgICAgICAgICBQQVNfRVhQRU5E
QUJMRV9NRU1PUllfU1RBVEVfS0lORF9ERUNPTU1JVFRFRCk7CisgICAgICAgIH0KKyAgICB9KTsK
K30KKwordm9pZCB0ZXN0U3luY2hyb25vdXNTY2F2ZW5naW5nRXhwZW5kc0V4cGVuZGFibGVNZW1v
cnkoKQoreworICAgIHBhc19zY2F2ZW5nZXJfc3VzcGVuZCgpOworICAgIHRlc3RQYXlsb2FkSW1w
bCgpOworICAgIGNoZWNrQWxsSW5Vc2VDb21taXR0ZWQoKTsKKyAgICBDSEVDSyghcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9udW1fc2l6ZV9sb29rdXBfcmVtYXRlcmlhbGl6YXRpb25zKTsKKyAgICBwYXNf
c2NhdmVuZ2VyX3J1bl9zeW5jaHJvbm91c2x5X25vdygpOworICAgIGNoZWNrQWxsRGVjb21taXR0
ZWQoKTsKKyAgICB0ZXN0UGF5bG9hZEltcGwoZmFsc2UpOworICAgIGNoZWNrQWxsSW5Vc2VDb21t
aXR0ZWQoKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9oZWFwX251bV9zaXplX2xvb2t1cF9y
ZW1hdGVyaWFsaXphdGlvbnMpOworfQorCitib29sIHNjYXZlbmdlcklzRG9uZTsKK211dGV4IHNj
YXZlbmdlck11dGV4OworY29uZGl0aW9uX3ZhcmlhYmxlIHNjYXZlbmdlckNvbmRpdGlvbjsKKwor
dm9pZCBzY2F2ZW5nZXJXaWxsU2h1dERvd24oKQoreworICAgIGxvY2tfZ3VhcmQ8bXV0ZXg+IGxv
Y2tlcihzY2F2ZW5nZXJNdXRleCk7CisgICAgc2NhdmVuZ2VySXNEb25lID0gdHJ1ZTsKKyAgICBz
Y2F2ZW5nZXJDb25kaXRpb24ubm90aWZ5X2FsbCgpOworfQorCit2b2lkIHRlc3RTY2F2ZW5nZXJF
eHBlbmRzRXhwZW5kYWJsZU1lbW9yeSgpCit7CisgICAgLy8gTWFrZSB0aGUgc2NhdmVuZ2VyIHZl
cnkgZmFzdCBzbyB0aGF0IHRoaXMgdGVzdCBkb2VzIG5vdCBydW4gZm9yIHRvbyBsb25nLgorICAg
IHBhc19zY2F2ZW5nZXJfZGVlcF9zbGVlcF90aW1lb3V0X2luX21pbGxpc2Vjb25kcyA9IDE7Cisg
ICAgcGFzX3NjYXZlbmdlcl9wZXJpb2RfaW5fbWlsbGlzZWNvbmRzID0gMTsKKworICAgIHNjYXZl
bmdlcklzRG9uZSA9IGZhbHNlOworICAgIHBhc19zY2F2ZW5nZXJfd2lsbF9zaHV0X2Rvd25fY2Fs
bGJhY2sgPSBzY2F2ZW5nZXJXaWxsU2h1dERvd247CisKKyAgICB0ZXN0UGF5bG9hZEltcGwoKTsK
KworICAgIHsKKyAgICAgICAgdW5pcXVlX2xvY2s8bXV0ZXg+IGxvY2tlcihzY2F2ZW5nZXJNdXRl
eCk7CisgICAgICAgIHNjYXZlbmdlckNvbmRpdGlvbi53YWl0KGxvY2tlciwgWyZdICgpIC0+IGJv
b2wgeyByZXR1cm4gc2NhdmVuZ2VySXNEb25lOyB9KTsKKyAgICB9CisKKyAgICBjaGVja0FsbERl
Y29tbWl0dGVkKCk7CisgICAgdGVzdFBheWxvYWRJbXBsKGZhbHNlKTsKKyAgICBDSEVDSyhwYXNf
c2VncmVnYXRlZF9oZWFwX251bV9zaXplX2xvb2t1cF9yZW1hdGVyaWFsaXphdGlvbnMpOworfQor
Cit2b2lkIHRlc3RTb01hbnlIZWFwcygpCit7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBudW1IZWFwcyA9IDEwMDAwOworICAgIAorICAgIHBhc19oZWFwX3JlZiogaGVhcHMgPSBuZXcg
cGFzX2hlYXBfcmVmW251bUhlYXBzXTsKKworICAgIHBhc19zY2F2ZW5nZXJfc3VzcGVuZCgpOwor
ICAgIAorICAgIGZvciAodW5zaWduZWQgaSA9IG51bUhlYXBzOyBpLS07KQorICAgICAgICBoZWFw
c1tpXSA9IEJNQUxMT0NfSEVBUF9SRUZfSU5JVElBTElaRVIoJnRoZVR5cGUpOworCisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUhlYXBzOyArK2kpCisgICAgICAgIHRlc3RQYXlsb2Fk
SW1wbChoZWFwc1tpXSwgIWkpOworCisgICAgY2hlY2tBbGxJblVzZUNvbW1pdHRlZCgpOworICAg
IENIRUNLKCFwYXNfc2VncmVnYXRlZF9oZWFwX251bV9zaXplX2xvb2t1cF9yZW1hdGVyaWFsaXph
dGlvbnMpOworCisgICAgcGFzX3NjYXZlbmdlcl9ydW5fc3luY2hyb25vdXNseV9ub3coKTsKKyAg
ICBjaGVja0FsbERlY29tbWl0dGVkKCk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bnVtSGVhcHM7ICsraSkKKyAgICAgICAgdGVzdFBheWxvYWRJbXBsKGhlYXBzW2ldLCBmYWxzZSk7
CisKKyAgICBjaGVja0FsbEluVXNlQ29tbWl0dGVkKCk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9udW1fc2l6ZV9sb29rdXBfcmVtYXRlcmlhbGl6YXRpb25zKTsKK30KKworfSAvLyBh
bm9ueW1vdXMgbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBQQVNfRU5BQkxFX0JNQUxMT0MKKwordm9p
ZCBhZGRFeHBlbmRhYmxlTWVtb3J5VGVzdHMoKQoreworI2lmIFBBU19FTkFCTEVfQk1BTExPQwor
ICAgIEFERF9URVNUKHRlc3RTeW5jaHJvbm91c1NjYXZlbmdpbmdFeHBlbmRzRXhwZW5kYWJsZU1l
bW9yeSgpKTsKKyAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXhwZW5kc0V4cGVuZGFibGVNZW1v
cnkoKSk7CisgICAgQUREX1RFU1QodGVzdFNvTWFueUhlYXBzKCkpOworI2VuZGlmIC8vIFBBU19F
TkFCTEVfQk1BTExPQworfQorCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3Qv
SGVhcFJlZkFsbG9jYXRvckluZGV4VGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvdGVzdC9IZWFwUmVmQWxsb2NhdG9ySW5kZXhUZXN0cy5jcHAJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0hlYXBSZWZBbGxvY2F0
b3JJbmRleFRlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg2IEBACisvKgorICog
Q29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJUZXN0SGFy
bmVzcy5oIgorCisjaWYgUEFTX0VOQUJMRV9JU08KKworI2luY2x1ZGUgImlzb19oZWFwLmgiCisK
K25hbWVzcGFjZSB7CisKK3ZvaWQgdGVzdElzb0FsbG9jYXRlKHNpemVfdCByZXF1ZXN0ZWRTaXpl
LCBzaXplX3QgYWN0dWFsU2l6ZSkKK3sKKyAgICBwYXNfaGVhcF9yZWYgaGVhcCA9IElTT19IRUFQ
X1JFRl9JTklUSUFMSVpFUihyZXF1ZXN0ZWRTaXplKTsKKworICAgIHZvaWQqIG9iamVjdCA9IGlz
b19hbGxvY2F0ZSgmaGVhcCk7CisgICAgQ0hFQ0tfRVFVQUwoaXNvX2dldF9hbGxvY2F0aW9uX3Np
emUob2JqZWN0KSwgYWN0dWFsU2l6ZSk7CisgICAgQ0hFQ0tfTEVTUyhoZWFwLmFsbG9jYXRvcl9p
bmRleCwgMTAwMDApOworCisgICAgdm9pZCogb2JqZWN0MiA9IGlzb19hbGxvY2F0ZSgmaGVhcCk7
CisgICAgQ0hFQ0tfTk9UX0VRVUFMKG9iamVjdCwgb2JqZWN0Mik7CisgICAgQ0hFQ0tfRVFVQUwo
aXNvX2dldF9hbGxvY2F0aW9uX3NpemUob2JqZWN0MiksIGFjdHVhbFNpemUpOworfQorCit2b2lk
IHRlc3RBbGxvY2F0ZVByaW1pdGl2ZShzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90IGFjdHVh
bFNpemUpCit7CisgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiBoZWFwID0gSVNPX1BSSU1JVElW
RV9IRUFQX1JFRl9JTklUSUFMSVpFUjsKKworICAgIHZvaWQqIG9iamVjdCA9IGlzb19hbGxvY2F0
ZV9wcmltaXRpdmUoJmhlYXAsIHJlcXVlc3RlZFNpemUpOworICAgIENIRUNLX0VRVUFMKGlzb19n
ZXRfYWxsb2NhdGlvbl9zaXplKG9iamVjdCksIGFjdHVhbFNpemUpOworICAgIENIRUNLX0xFU1Mo
aGVhcC5iYXNlLmFsbG9jYXRvcl9pbmRleCwgMTAwMDApOworCisgICAgdm9pZCogb2JqZWN0MiA9
IGlzb19hbGxvY2F0ZV9wcmltaXRpdmUoJmhlYXAsIHJlcXVlc3RlZFNpemUpOworICAgIENIRUNL
X05PVF9FUVVBTChvYmplY3QsIG9iamVjdDIpOworICAgIENIRUNLX0VRVUFMKGlzb19nZXRfYWxs
b2NhdGlvbl9zaXplKG9iamVjdDIpLCBhY3R1YWxTaXplKTsKK30KKworfSAvLyBhbm9ueW1vdXMg
bmFtZXNwYWNlCisKKyNlbmRpZiAvLyBQQVNfRU5BQkxFX0lTTworCit2b2lkIGFkZEhlYXBSZWZB
bGxvY2F0b3JJbmRleFRlc3RzKCkKK3sKKyNpZiBQQVNfRU5BQkxFX0lTTworICAgIEFERF9URVNU
KHRlc3RJc29BbGxvY2F0ZSgxNiwgMTYpKTsKKyAgICBBRERfVEVTVCh0ZXN0SXNvQWxsb2NhdGUo
MzIsIDMyKSk7CisgICAgQUREX1RFU1QodGVzdElzb0FsbG9jYXRlKDQ4LCA0OCkpOworICAgIEFE
RF9URVNUKHRlc3RJc29BbGxvY2F0ZSg2NCwgNjQpKTsKKyAgICBBRERfVEVTVCh0ZXN0SXNvQWxs
b2NhdGUoMTAwMCwgMTAwOCkpOworICAgIEFERF9URVNUKHRlc3RJc29BbGxvY2F0ZSgxMDA4LCAx
MDA4KSk7CisgICAgQUREX1RFU1QodGVzdElzb0FsbG9jYXRlKDEwMDAwLCAxMDc1MikpOworICAg
IEFERF9URVNUKHRlc3RJc29BbGxvY2F0ZSgxMDc1MiwgMTA3NTIpKTsKKyAgICAKKyAgICBBRERf
VEVTVCh0ZXN0QWxsb2NhdGVQcmltaXRpdmUoMTYsIDE2KSk7CisgICAgQUREX1RFU1QodGVzdEFs
bG9jYXRlUHJpbWl0aXZlKDMyLCAzMikpOworICAgIEFERF9URVNUKHRlc3RBbGxvY2F0ZVByaW1p
dGl2ZSg0OCwgNDgpKTsKKyAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVQcmltaXRpdmUoNjQsIDY0
KSk7CisgICAgQUREX1RFU1QodGVzdEFsbG9jYXRlUHJpbWl0aXZlKDEwMDAsIDEwMDgpKTsKKyAg
ICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVQcmltaXRpdmUoMTAwOCwgMTAwOCkpOworICAgIEFERF9U
RVNUKHRlc3RBbGxvY2F0ZVByaW1pdGl2ZSgxMDAwMCwgMTA3NTIpKTsKKyAgICBBRERfVEVTVCh0
ZXN0QWxsb2NhdGVQcmltaXRpdmUoMTA3NTIsIDEwNzUyKSk7CisjZW5kaWYgLy8gUEFTX0VOQUJM
RV9JU08KK30KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBD
aGFvc1Rlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rl
c3QvSXNvSGVhcENoYW9zVGVzdHMuY3BwCShyZXZpc2lvbiAyODU3ODUpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9zVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01Nyw2ICs1Nyw4IEBACiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgog
I2luY2x1ZGUgInBhc191dGlsaXR5X2hlYXAuaCIKICNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8
c3N0cmVhbT4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDxzeXMvbW1hbi5oPgogI2lu
Y2x1ZGUgPHZlY3Rvcj4KICNpbmNsdWRlIDx0aHJlYWQ+CkBAIC03NSwxNCArNzcsMzQgQEAgdm9p
ZCAoKnNlbGVjdGVkU2hyaW5rKSh2b2lkKiBwdHIsIHNpemVfdAogdm9pZCAoKnNlbGVjdGVkRGVh
bGxvY2F0ZSkodm9pZCogcHRyKTsKIHBhc19oZWFwKiBzZWxlY3RlZENvbW1vblByaW1pdGl2ZUhl
YXA7CiBwYXNfaGVhcCogKCpzZWxlY3RlZEhlYXBSZWZHZXRIZWFwKShwYXNfaGVhcF9yZWYqIGhl
YXBSZWYpOworcGFzX2hlYXBfcmVmKiAoKnNlbGVjdGVkSGVhcFJlZkNyZWF0ZUZvclNpemUpKHNp
emVfdCBzaXplKTsKKworcGFzX2hlYXBfcmVmKiBjcmVhdGVJc29IZWFwUmVmRm9yU2l6ZShzaXpl
X3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gbmV3IHBhc19oZWFwX3JlZihJU09fSEVBUF9SRUZfSU5J
VElBTElaRVJfV0lUSF9BTElHTk1FTlQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRldGVybWluaXN0aWNSYW5kb21OdW1iZXIoMTAwKSwgMSkpOworfQogCiAjaWYgUEFTX0VOQUJM
RV9CTUFMTE9DCitibWFsbG9jX3R5cGUgZ2lnYWNhZ2VUeXBlOwogcGFzX3ByaW1pdGl2ZV9oZWFw
X3JlZiBnaWdhY2FnZUhlYXBSZWY7CiAKIHZvaWQqIGdpZ2FjYWdlQWxsb2NhdGUoc2l6ZV90IHNp
emUpCiB7CiAgICAgcmV0dXJuIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5KCZnaWdhY2FnZUhl
YXBSZWYsIHNpemUpOwogfQorCitwYXNfaGVhcF9yZWYqIGNyZWF0ZUJtYWxsb2NIZWFwUmVmRm9y
U2l6ZShzaXplX3Qgc2l6ZSkKK3sKKyAgICBQQVNfQVNTRVJUKCh1bnNpZ25lZClzaXplID09IHNp
emUpOworICAgIAorICAgIG9zdHJpbmdzdHJlYW0gc3RyaW5nT3V0OworICAgIHN0cmluZ091dCA8
PCAiVGVzdCBUeXBlIFdpdGggU2l6ZSA9ICIgPDwgc2l6ZTsKKworICAgIHJldHVybiBuZXcgcGFz
X2hlYXBfcmVmKAorICAgICAgICBCTUFMTE9DX0hFQVBfUkVGX0lOSVRJQUxJWkVSKAorICAgICAg
ICAgICAgbmV3IGJtYWxsb2NfdHlwZShCTUFMTE9DX1RZUEVfSU5JVElBTElaRVIoKHVuc2lnbmVk
KXNpemUsIDEsIHN0cmR1cChzdHJpbmdPdXQuc3RyKCkuY19zdHIoKSkpKSkpOworfQogI2VuZGlm
IC8vIFBBU19FTkFCTEVfQk1BTExPQwogCiB2b2lkIGZsdXNoRGVhbGxvY2F0aW9uTG9nQW5kU3Rv
cEFsbG9jYXRvcnMoKQpAQCAtNDE4LDE5ICs0NDAsMjggQEAgdm9pZCB0ZXN0QWxsb2NhdGlvbkNo
YW9zKHVuc2lnbmVkIG51bVRocgogICAgIH0KICAgICAKICAgICB2ZWN0b3I8cGFzX2hlYXBfcmVm
Kj4gaXNvbGF0ZWRIZWFwczsKLSAgICBmb3IgKHVuc2lnbmVkIGlzb2xhdGVkSGVhcEluZGV4ID0g
bnVtSXNvbGF0ZWRIZWFwczsgaXNvbGF0ZWRIZWFwSW5kZXgtLTspIHsKLSAgICAgICAgaXNvbGF0
ZWRIZWFwcy5wdXNoX2JhY2sobmV3IHBhc19oZWFwX3JlZihJU09fSEVBUF9SRUZfSU5JVElBTEla
RVJfV0lUSF9BTElHTk1FTlQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRldGVybWluaXN0aWNSYW5kb21OdW1iZXIoMTAwKSwgMSkpKTsKLSAg
ICB9CisgICAgZm9yICh1bnNpZ25lZCBpc29sYXRlZEhlYXBJbmRleCA9IG51bUlzb2xhdGVkSGVh
cHM7IGlzb2xhdGVkSGVhcEluZGV4LS07KQorICAgICAgICBpc29sYXRlZEhlYXBzLnB1c2hfYmFj
ayhzZWxlY3RlZEhlYXBSZWZDcmVhdGVGb3JTaXplKGRldGVybWluaXN0aWNSYW5kb21OdW1iZXIo
MTAwKSkpOwogICAgIAogICAgIGF1dG8gYWRkT2JqZWN0ID0KICAgICAgICAgWyZdICh1bnNpZ25l
ZCB0aHJlYWRJbmRleCwgdm9pZCogcHRyLCB1bnNpZ25lZCBzaXplKSB7CiAgICAgICAgICAgICBD
SEVDSyhwdHIpOwogICAgICAgICAgICAgdWludDhfdCBzdGFydFZhbHVlID0gc3RhdGljX2Nhc3Q8
dWludDhfdD4oZGV0ZXJtaW5pc3RpY1JhbmRvbU51bWJlcigyNTUpKTsKLSAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8dWludDhfdCo+KHB0cilbaV0gPSBzdGF0aWNfY2FzdDx1aW50OF90PihzdGFydFZhbHVl
ICsgaSk7CisKKyAgICAgICAgICAgIGF1dG8gcG9wdWxhdGVPYmplY3QgPSBbJl0gKCkgeworICAg
ICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAgICAg
ICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihwdHIpW2ldID0gc3RhdGljX2Nhc3Q8
dWludDhfdD4oc3RhcnRWYWx1ZSArIGkpOworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAg
aWYgKCF0ZXN0RW51bWVyYXRvcikKKyAgICAgICAgICAgICAgICBwb3B1bGF0ZU9iamVjdCgpOwor
ICAgICAgICAgICAgCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgbG9ja19ndWFyZDxt
dXRleD4gbG9ja2VyKGxvY2spOworCisgICAgICAgICAgICAgICAgaWYgKHRlc3RFbnVtZXJhdG9y
KQorICAgICAgICAgICAgICAgICAgICBwb3B1bGF0ZU9iamVjdCgpOworCiAgICAgICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgICAgIGNvdXQgPDwgIkFkZGluZyBvYmpl
Y3QgIiA8PCBwdHIgPDwgIlxuIjsKICAgICAgICAgICAgICAgICBpZiAodGVzdEVudW1lcmF0b3Ip
CkBAIC00ODMsNiArNTE0LDEzIEBAIHZvaWQgdGVzdEFsbG9jYXRpb25DaGFvcyh1bnNpZ25lZCBu
dW1UaHIKICAgICBhdXRvIGZyZWVTb21ldGhpbmcgPSBbJl0gKHVuc2lnbmVkIHRocmVhZEluZGV4
KSB7CiAgICAgICAgIE9iamVjdCBvYmplY3Q7CiAKKyAgICAgICAgYXV0byB2YWxpZGF0ZU9iamVj
dCA9IFsmXSAoKSB7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgb2JqZWN0
LnNpemU7ICsraSkgeworICAgICAgICAgICAgICAgIENIRUNLX0VRVUFMKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihzdGF0aWNfY2FzdDx1aW50OF90Kj4ob2JqZWN0LnB0cilbaV0pLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzdGF0aWNfY2FzdDx1aW50
OF90PihvYmplY3Quc3RhcnRWYWx1ZSArIGkpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07
CisKICAgICAgICAgewogICAgICAgICAgICAgbG9ja19ndWFyZDxtdXRleD4gbG9ja2VyKGxvY2sp
OwogICAgICAgICAgICAgaWYgKG9iamVjdHMuZW1wdHkoKSkKQEAgLTQ5NiwxNSArNTM0LDE1IEBA
IHZvaWQgdGVzdEFsbG9jYXRpb25DaGFvcyh1bnNpZ25lZCBudW1UaHIKICAgICAgICAgICAgIGlm
ICh2ZXJib3NlKQogICAgICAgICAgICAgICAgIGNvdXQgPDwgIkZyZWVpbmcgb2JqZWN0ICIgPDwg
b2JqZWN0LnB0ciA8PCAiXG4iOwogCi0gICAgICAgICAgICBpZiAodGVzdEVudW1lcmF0b3IpCisg
ICAgICAgICAgICBpZiAodGVzdEVudW1lcmF0b3IpIHsKICAgICAgICAgICAgICAgICBvcHRpb25h
bE9iamVjdHNbdGhyZWFkSW5kZXhdID0gT3B0aW9uYWxPYmplY3Qob2JqZWN0LnB0ciwgb2JqZWN0
LnNpemUpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgb2JqZWN0LnNpemU7ICsraSkgewotICAgICAgICAgICAgQ0hFQ0tfRVFVQUwoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KHN0YXRpY19jYXN0PHVpbnQ4X3QqPihvYmplY3QucHRyKVtpXSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RhdGljX2Nhc3Q8
dWludDhfdD4ob2JqZWN0LnN0YXJ0VmFsdWUgKyBpKSkpOworICAgICAgICAgICAgICAgIHZhbGlk
YXRlT2JqZWN0KCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoIXRl
c3RFbnVtZXJhdG9yKQorICAgICAgICAgICAgdmFsaWRhdGVPYmplY3QoKTsKKwogICAgICAgICBz
ZWxlY3RlZERlYWxsb2NhdGUob2JqZWN0LnB0cik7CiAKICAgICAgICAgaWYgKHRlc3RFbnVtZXJh
dG9yKSB7CkBAIC05MjMsMTEgKzk2MSw3IEBAIHZvaWQgYWRkU3BvdFRlc3RzKGJvb2wgdGVzdEVu
dW1lcmF0b3IpCiAgICAgfQogfQogCi19IC8vIGFub255bW91cyBuYW1lc3BhY2UKLQotI2VuZGlm
IC8vIFBBU19FTkFCTEVfSVNPCi0KLXZvaWQgYWRkSXNvSGVhcENoYW9zVGVzdHMoKQordm9pZCBh
ZGRJc29UZXN0cygpCiB7CiAjaWYgUEFTX0VOQUJMRV9JU08KICAgICB7CkBAIC05MzcsMTAgKzk3
MSwxMSBAQCB2b2lkIGFkZElzb0hlYXBDaGFvc1Rlc3RzKCkKICAgICAgICAgICAgICAgICBzZWxl
Y3RlZEhlYXBDb25maWcgPSAmaXNvX2hlYXBfY29uZmlnOwogICAgICAgICAgICAgICAgIHNlbGVj
dGVkQWxsb2NhdGVDb21tb25QcmltaXRpdmUgPSBpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmlt
aXRpdmU7CiAgICAgICAgICAgICAgICAgc2VsZWN0ZWRBbGxvY2F0ZSA9IGlzb190cnlfYWxsb2Nh
dGU7Ci0gICAgICAgICAgICAgICAgc2VsZWN0ZWRBbGxvY2F0ZUFycmF5ID0gaXNvX3RyeV9hbGxv
Y2F0ZV9hcnJheTsKKyAgICAgICAgICAgICAgICBzZWxlY3RlZEFsbG9jYXRlQXJyYXkgPSBpc29f
dHJ5X2FsbG9jYXRlX2FycmF5X2J5X2NvdW50OwogICAgICAgICAgICAgICAgIHNlbGVjdGVkRGVh
bGxvY2F0ZSA9IGlzb19kZWFsbG9jYXRlOwogICAgICAgICAgICAgICAgIHNlbGVjdGVkQ29tbW9u
UHJpbWl0aXZlSGVhcCA9ICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwOwogICAgICAgICAgICAg
ICAgIHNlbGVjdGVkSGVhcFJlZkdldEhlYXAgPSBpc29faGVhcF9yZWZfZ2V0X2hlYXA7CisgICAg
ICAgICAgICAgICAgc2VsZWN0ZWRIZWFwUmVmQ3JlYXRlRm9yU2l6ZSA9IGNyZWF0ZUlzb0hlYXBS
ZWZGb3JTaXplOwogICAgICAgICAgICAgfSk7CiAgICAgCiAgICAgICAgIEFERF9HUk9VUChhZGRU
aGVUZXN0cygxMCwgdHJ1ZSkpOwpAQCAtMTAwMCw2ICsxMDM1LDEyIEBAIHZvaWQgYWRkSXNvSGVh
cENoYW9zVGVzdHMoKQogICAgICAgICAgICAgYWRkU3BvdFRlc3RzKGZhbHNlKTsKICAgICAgICAg
fQogICAgIH0KKyNlbmRpZiAvLyBQQVNfRU5BQkxFX0lTTworfQorCit2b2lkIGFkZEFsbFRlc3Rz
KCkKK3sKKyAgICBhZGRJc29UZXN0cygpOwogCiAjaWYgUEFTX0VOQUJMRV9JU09fVEVTVAogICAg
IHsKQEAgLTEwMDksMTAgKzEwNTAsMTEgQEAgdm9pZCBhZGRJc29IZWFwQ2hhb3NUZXN0cygpCiAg
ICAgICAgICAgICAgICAgc2VsZWN0ZWRIZWFwQ29uZmlnID0gJmlzb190ZXN0X2hlYXBfY29uZmln
OwogICAgICAgICAgICAgICAgIHNlbGVjdGVkQWxsb2NhdGVDb21tb25QcmltaXRpdmUgPSBpc29f
dGVzdF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlOwogICAgICAgICAgICAgICAgIHNlbGVjdGVk
QWxsb2NhdGUgPSBpc29fdGVzdF9hbGxvY2F0ZTsKLSAgICAgICAgICAgICAgICBzZWxlY3RlZEFs
bG9jYXRlQXJyYXkgPSBpc29fdGVzdF9hbGxvY2F0ZV9hcnJheTsKKyAgICAgICAgICAgICAgICBz
ZWxlY3RlZEFsbG9jYXRlQXJyYXkgPSBpc29fdGVzdF9hbGxvY2F0ZV9hcnJheV9ieV9jb3VudDsK
ICAgICAgICAgICAgICAgICBzZWxlY3RlZERlYWxsb2NhdGUgPSBpc29fdGVzdF9kZWFsbG9jYXRl
OwogICAgICAgICAgICAgICAgIHNlbGVjdGVkQ29tbW9uUHJpbWl0aXZlSGVhcCA9ICZpc29fdGVz
dF9jb21tb25fcHJpbWl0aXZlX2hlYXA7CiAgICAgICAgICAgICAgICAgc2VsZWN0ZWRIZWFwUmVm
R2V0SGVhcCA9IGlzb190ZXN0X2hlYXBfcmVmX2dldF9oZWFwOworICAgICAgICAgICAgICAgIHNl
bGVjdGVkSGVhcFJlZkNyZWF0ZUZvclNpemUgPSBjcmVhdGVJc29IZWFwUmVmRm9yU2l6ZTsKICAg
ICAgICAgICAgIH0pOwogCiAgICAgICAgIGFkZFNwb3RUZXN0cyhmYWxzZSk7CkBAIC0xMDI3LDEw
ICsxMDY5LDExIEBAIHZvaWQgYWRkSXNvSGVhcENoYW9zVGVzdHMoKQogICAgICAgICAgICAgICAg
IHNlbGVjdGVkSGVhcENvbmZpZyA9ICZtaW5hbGlnbjMyX2hlYXBfY29uZmlnOwogICAgICAgICAg
ICAgICAgIHNlbGVjdGVkQWxsb2NhdGVDb21tb25QcmltaXRpdmUgPSBtaW5hbGlnbjMyX2FsbG9j
YXRlX2NvbW1vbl9wcmltaXRpdmU7CiAgICAgICAgICAgICAgICAgc2VsZWN0ZWRBbGxvY2F0ZSA9
IG1pbmFsaWduMzJfYWxsb2NhdGU7Ci0gICAgICAgICAgICAgICAgc2VsZWN0ZWRBbGxvY2F0ZUFy
cmF5ID0gbWluYWxpZ24zMl9hbGxvY2F0ZV9hcnJheTsKKyAgICAgICAgICAgICAgICBzZWxlY3Rl
ZEFsbG9jYXRlQXJyYXkgPSBtaW5hbGlnbjMyX2FsbG9jYXRlX2FycmF5X2J5X2NvdW50OwogICAg
ICAgICAgICAgICAgIHNlbGVjdGVkRGVhbGxvY2F0ZSA9IG1pbmFsaWduMzJfZGVhbGxvY2F0ZTsK
ICAgICAgICAgICAgICAgICBzZWxlY3RlZENvbW1vblByaW1pdGl2ZUhlYXAgPSAmbWluYWxpZ24z
Ml9jb21tb25fcHJpbWl0aXZlX2hlYXA7CiAgICAgICAgICAgICAgICAgc2VsZWN0ZWRIZWFwUmVm
R2V0SGVhcCA9IG1pbmFsaWduMzJfaGVhcF9yZWZfZ2V0X2hlYXA7CisgICAgICAgICAgICAgICAg
c2VsZWN0ZWRIZWFwUmVmQ3JlYXRlRm9yU2l6ZSA9IGNyZWF0ZUlzb0hlYXBSZWZGb3JTaXplOwog
ICAgICAgICAgICAgfSk7CiAgICAgCiAgICAgICAgIGFkZFNwb3RUZXN0cyhmYWxzZSk7CkBAIC0x
MDQ1LDEwICsxMDg4LDExIEBAIHZvaWQgYWRkSXNvSGVhcENoYW9zVGVzdHMoKQogICAgICAgICAg
ICAgICAgIHNlbGVjdGVkSGVhcENvbmZpZyA9ICZwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZzsKICAg
ICAgICAgICAgICAgICBzZWxlY3RlZEFsbG9jYXRlQ29tbW9uUHJpbWl0aXZlID0gcGFnZXNpemU2
NGtfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZTsKICAgICAgICAgICAgICAgICBzZWxlY3RlZEFs
bG9jYXRlID0gcGFnZXNpemU2NGtfYWxsb2NhdGU7Ci0gICAgICAgICAgICAgICAgc2VsZWN0ZWRB
bGxvY2F0ZUFycmF5ID0gcGFnZXNpemU2NGtfYWxsb2NhdGVfYXJyYXk7CisgICAgICAgICAgICAg
ICAgc2VsZWN0ZWRBbGxvY2F0ZUFycmF5ID0gcGFnZXNpemU2NGtfYWxsb2NhdGVfYXJyYXlfYnlf
Y291bnQ7CiAgICAgICAgICAgICAgICAgc2VsZWN0ZWREZWFsbG9jYXRlID0gcGFnZXNpemU2NGtf
ZGVhbGxvY2F0ZTsKICAgICAgICAgICAgICAgICBzZWxlY3RlZENvbW1vblByaW1pdGl2ZUhlYXAg
PSAmcGFnZXNpemU2NGtfY29tbW9uX3ByaW1pdGl2ZV9oZWFwOwogICAgICAgICAgICAgICAgIHNl
bGVjdGVkSGVhcFJlZkdldEhlYXAgPSBwYWdlc2l6ZTY0a19oZWFwX3JlZl9nZXRfaGVhcDsKKyAg
ICAgICAgICAgICAgICBzZWxlY3RlZEhlYXBSZWZDcmVhdGVGb3JTaXplID0gY3JlYXRlSXNvSGVh
cFJlZkZvclNpemU7CiAgICAgICAgICAgICB9KTsKICAgICAKICAgICAgICAgYWRkU3BvdFRlc3Rz
KHRydWUpOwpAQCAtMTA2MywxMCArMTEwNywxMSBAQCB2b2lkIGFkZElzb0hlYXBDaGFvc1Rlc3Rz
KCkKICAgICAgICAgICAgICAgICBzZWxlY3RlZEhlYXBDb25maWcgPSAmYm1hbGxvY19oZWFwX2Nv
bmZpZzsKICAgICAgICAgICAgICAgICBzZWxlY3RlZEFsbG9jYXRlQ29tbW9uUHJpbWl0aXZlID0g
Ym1hbGxvY19hbGxvY2F0ZTsKICAgICAgICAgICAgICAgICBzZWxlY3RlZEFsbG9jYXRlID0gYm1h
bGxvY19pc29fYWxsb2NhdGU7Ci0gICAgICAgICAgICAgICAgc2VsZWN0ZWRBbGxvY2F0ZUFycmF5
ID0gYm1hbGxvY19pc29fYWxsb2NhdGVfYXJyYXlfd2l0aF9hbGlnbm1lbnQ7CisgICAgICAgICAg
ICAgICAgc2VsZWN0ZWRBbGxvY2F0ZUFycmF5ID0gYm1hbGxvY19pc29fYWxsb2NhdGVfYXJyYXlf
YnlfY291bnRfd2l0aF9hbGlnbm1lbnQ7CiAgICAgICAgICAgICAgICAgc2VsZWN0ZWREZWFsbG9j
YXRlID0gYm1hbGxvY19kZWFsbG9jYXRlOwogICAgICAgICAgICAgICAgIHNlbGVjdGVkQ29tbW9u
UHJpbWl0aXZlSGVhcCA9ICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcDsKICAgICAgICAg
ICAgICAgICBzZWxlY3RlZEhlYXBSZWZHZXRIZWFwID0gYm1hbGxvY19oZWFwX3JlZl9nZXRfaGVh
cDsKKyAgICAgICAgICAgICAgICBzZWxlY3RlZEhlYXBSZWZDcmVhdGVGb3JTaXplID0gY3JlYXRl
Qm1hbGxvY0hlYXBSZWZGb3JTaXplOwogICAgICAgICAgICAgfSk7CiAgICAgCiAgICAgICAgIGFk
ZFNwb3RUZXN0cyh0cnVlKTsKQEAgLTEwNzYsNyArMTEyMSw4IEBAIHZvaWQgYWRkSXNvSGVhcENo
YW9zVGVzdHMoKQogICAgICAgICBUZXN0U2NvcGUgaXNvKAogICAgICAgICAgICAgImJtYWxsb2Mt
Z2lnYWNhZ2UiLAogICAgICAgICAgICAgW10gKCkgewotICAgICAgICAgICAgICAgIGdpZ2FjYWdl
SGVhcFJlZiA9IEJNQUxMT0NfQVVYSUxJQVJZX0hFQVBfUkVGX0lOSVRJQUxJWkVSOworICAgICAg
ICAgICAgICAgIGdpZ2FjYWdlVHlwZSA9IEJNQUxMT0NfVFlQRV9JTklUSUFMSVpFUigxLCAxLCAi
R2lnYWNhZ2UiKTsKKyAgICAgICAgICAgICAgICBnaWdhY2FnZUhlYXBSZWYgPSBCTUFMTE9DX0FV
WElMSUFSWV9IRUFQX1JFRl9JTklUSUFMSVpFUigmZ2lnYWNhZ2VUeXBlKTsKIAogICAgICAgICAg
ICAgICAgIHNpemVfdCByZXNlcnZhdGlvblNpemUgPSAxMDAwMDAwMDAwOwogICAgICAgICAgICAg
ICAgIHZvaWQqIHJlc2VydmF0aW9uID0gbWFsbG9jKHJlc2VydmF0aW9uU2l6ZSk7CkBAIC0xMDk0
LDYgKzExNDAsNyBAQCB2b2lkIGFkZElzb0hlYXBDaGFvc1Rlc3RzKCkKICAgICAgICAgICAgICAg
ICBzZWxlY3RlZERlYWxsb2NhdGUgPSBibWFsbG9jX2RlYWxsb2NhdGU7CiAgICAgICAgICAgICAg
ICAgc2VsZWN0ZWRDb21tb25QcmltaXRpdmVIZWFwID0gaGVhcDsKICAgICAgICAgICAgICAgICBz
ZWxlY3RlZEhlYXBSZWZHZXRIZWFwID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBzZWxlY3Rl
ZEhlYXBSZWZDcmVhdGVGb3JTaXplID0gbnVsbHB0cjsKICAgICAgICAgICAgIH0pOwogICAgIAog
ICAgICAgICBhZGRTcG90VGVzdHMoZmFsc2UpOwpAQCAtMTE0MSw2ICsxMTg4LDcgQEAgdm9pZCBh
ZGRJc29IZWFwQ2hhb3NUZXN0cygpCiAgICAgICAgICAgICAgICAgc2VsZWN0ZWREZWFsbG9jYXRl
ID0gaml0X2hlYXBfZGVhbGxvY2F0ZTsKICAgICAgICAgICAgICAgICBzZWxlY3RlZENvbW1vblBy
aW1pdGl2ZUhlYXAgPSAmaml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcDsKICAgICAgICAgICAgICAg
ICBzZWxlY3RlZEhlYXBSZWZHZXRIZWFwID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBzZWxl
Y3RlZEhlYXBSZWZDcmVhdGVGb3JTaXplID0gbnVsbHB0cjsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgIEJvb3RKSVRIZWFwIGJvb3RKSVRIZWFwOwpAQCAtMTE2MCw2ICsxMjA4LDcgQEAgdm9p
ZCBhZGRJc29IZWFwQ2hhb3NUZXN0cygpCiAgICAgICAgICAgICAgICAgc2VsZWN0ZWREZWFsbG9j
YXRlID0gaml0X2hlYXBfZGVhbGxvY2F0ZTsKICAgICAgICAgICAgICAgICBzZWxlY3RlZENvbW1v
blByaW1pdGl2ZUhlYXAgPSAmaml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcDsKICAgICAgICAgICAg
ICAgICBzZWxlY3RlZEhlYXBSZWZHZXRIZWFwID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBz
ZWxlY3RlZEhlYXBSZWZDcmVhdGVGb3JTaXplID0gbnVsbHB0cjsKICAgICAgICAgICAgIH0pOwog
CiAgICAgICAgIEJvb3RKSVRIZWFwIGJvb3RKSVRIZWFwOwpAQCAtMTE2Nyw2ICsxMjE2LDIxIEBA
IHZvaWQgYWRkSXNvSGVhcENoYW9zVGVzdHMoKQogICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVz
dHMoMSwgZmFsc2UpKTsKICAgICB9CiAjZW5kaWYgLy8gUEFTX0VOQUJMRV9IT1RCSVQKK30KKwor
fSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKICNlbmRpZiAvLyBQQVNfRU5BQkxFX0lTTworCit2
b2lkIGFkZElzb0hlYXBDaGFvc1Rlc3RzKCkKK3sKKyAgICB7CisgICAgICAgIEVuYWJsZVBhZ2VC
YWxhbmNpbmcgZW5hYmxlUGFnZUJhbGFuY2luZzsKKyAgICAgICAgYWRkSXNvVGVzdHMoKTsKKyAg
ICB9CisgICAgeworICAgICAgICBEaXNhYmxlUGFnZUJhbGFuY2luZyBkaXNhYmxlUGFnZUJhbGFu
Y2luZzsKKyAgICAgICAgYWRkQWxsVGVzdHMoKTsKKyAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYWdlU2hhcmlu
Z1Rlc3RzLmNwcAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEz
NCw2ICsxMTM0LDggQEAgdm9pZCB0ZXN0TGFyZ2VIZWFwVGFrZXNQYWdlc0Zyb21Db3JyZWN0TAog
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCiAgICAgcGFz
X3NjYXZlbmdlcl9zdXNwZW5kKCk7CisgICAgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29s
X2JhbGFuY2luZ19lbmFibGVkX2Zvcl91dGlsaXR5ID0gZmFsc2U7CisgICAgcGFzX2xhcmdlX3V0
aWxpdHlfZnJlZV9oZWFwX3RhbGtzX3RvX2xhcmdlX3NoYXJpbmdfcG9vbCA9IGZhbHNlOwogICAg
IAogICAgIHBhc19oZWFwX3JlZiBoZWFwUmVmT25lID0gSVNPX0hFQVBfUkVGX0lOSVRJQUxJWkVS
KDY0KTsKICAgICBwYXNfaGVhcF9yZWYgaGVhcFJlZlR3byA9IElTT19IRUFQX1JFRl9JTklUSUFM
SVpFUig1MTIpOwpAQCAtMTIxOSw2ICsxMjIxLDkgQEAgdm9pZCB0ZXN0TGFyZ2VIZWFwVGFrZXNQ
YWdlc0Zyb21Db3JyZWN0TAogICAgIENIRUNLX0VRVUFMKHN1bW1hcnlGb3VyLmZyZWUsIDApOwog
ICAgIENIRUNLX0VRVUFMKHN1bW1hcnlGb3VyLmNvbW1pdHRlZCwgMCk7CiAgICAgQ0hFQ0tfRVFV
QUwoc3VtbWFyeUZvdXIuZGVjb21taXR0ZWQsIDApOworCisgICAgaWYgKHZlcmJvc2UpCisgICAg
ICAgIHByaW50U3RhdHVzUmVwb3J0KCk7CiAgICAgCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAg
IGNvdXQgPDwgIkFsbG9jYXRpbmcgYmlnIG9iamVjdC5cbiI7CkBAIC0xMjI4LDYgKzEyMzMsOSBA
QCB2b2lkIHRlc3RMYXJnZUhlYXBUYWtlc1BhZ2VzRnJvbUNvcnJlY3RMCiAgICAgaWYgKHZlcmJv
c2UpCiAgICAgICAgIGNvdXQgPDwgIkRpZCBhbGxvY2F0ZSBiaWcgb2JqZWN0LlxuIjsKIAorICAg
IGlmICh2ZXJib3NlKQorICAgICAgICBwcmludFN0YXR1c1JlcG9ydCgpOworICAgIAogICAgIHN1
bW1hcnlPbmUgPSBwYXNfaGVhcF9jb21wdXRlX3N1bW1hcnkoaGVhcE9uZSwgcGFzX2xvY2tfaXNf
bm90X2hlbGQpOwogICAgIENIRUNLX0VRVUFMKHN1bW1hcnlPbmUuYWxsb2NhdGVkLCAwKTsKICAg
ICBDSEVDS19HUkVBVEVSX0VRVUFMKHN1bW1hcnlPbmUuZnJlZSwgMTAwMDAwMDApOwpAQCAtNDM5
NCw3ICs0NDAyLDE1IEBAIHZvaWQgYWRkQWxsVGVzdHMoKQogICAgICAgICAgICAgU0tJUF9URVNU
KHRlc3RMYXJnZUhlYXBUYWtlc1BhZ2VzRnJvbUNvcnJlY3RMYXJnZUhlYXAoKSk7CiAgICAgICAg
ICAgICBBRERfVEVTVCh0ZXN0TGFyZ2VIZWFwVGFrZXNQYWdlc0Zyb21Db3JyZWN0TGFyZ2VIZWFw
QWxsb2NhdGVBZnRlckZyZWVPblNtYWxsSGVhcCgpKTsKICAgICAgICAgICAgIEFERF9URVNUKHRl
c3RMYXJnZUhlYXBUYWtlc1BhZ2VzRnJvbUNvcnJlY3RMYXJnZUhlYXBBbGxvY2F0ZUFmdGVyRnJl
ZU9uQW5vdGhlckxhcmdlSGVhcCgpKTsKLSAgICAgICAgICAgIEFERF9URVNUKHRlc3RMYXJnZUhl
YXBUYWtlc1BhZ2VzRnJvbUNvcnJlY3RMYXJnZUhlYXBXaXRoRmFuY3lPcmRlcigpKTsKKworICAg
ICAgICAgICAgLy8gU2tpcCB0aGlzIHRlc3QgYmVjYXVzZSBzb21lIGxhcmdlIGFsbG9jYXRpb24g
bGVhdmVzIGJlaGluZCBtZW1vcnkgaW4gdGhlIGxhcmdlIHNoYXJpbmcKKyAgICAgICAgICAgIC8v
IGNhY2hlLCB0aGVuIGdldHMgZGVjb21taXR0ZWQsIGFuZCB0aGVuIHRoYXQgZGVjb21taXR0ZWQg
YWxsb2NhdGlvbiBnZXRzIHJldXNlZCBmb3IgYSBsYXRlcgorICAgICAgICAgICAgLy8gYWxsb2Nh
dGlvbi4gVGhpcyB0aGVuIGNyZWF0ZXMgYSBzaXR1YXRpb24gd2hlcmUgYWxsb2NhdGluZyBhIDFN
QiBvYmplY3QgY2F1c2VzIGFsbG9jYXRpb24KKyAgICAgICAgICAgIC8vIG9mIDFNQiBvZiBwaHlz
aWNhbCBtZW1vcnkgKGEgMU1CIHRha2UpIGFuZCBhbHNvIGEgY29tbWl0IG9mIHNvbWUgb2YgdGhh
dCBwcmV2aW91c2x5CisgICAgICAgICAgICAvLyBkZWNvbW1pdHRlZCBtZW1vcnkgKGEgaGFuZGZ1
bCBvZiBLQiB0YWtlKS4gVGhhdCBjYXVzZXMgdXMgdG8gdGFrZSBtb3JlIG1lbW9yeSB0aGFuIHRo
ZQorICAgICAgICAgICAgLy8gdGVzdCB0aGlua3Mgd2Ugc2hvdWxkIHRha2UuIEkgZ3Vlc3Mgd2Ug
Y291bGQgbWFrZSB0aGUgdGVzdCBoYXZlIHRoZSByaWdodCBudW1lcmljYWwgbGltaXRzCisgICAg
ICAgICAgICAvLyBidXQgc2luY2UgdGhpcyB0ZXN0IGhhcyBuZXZlciBjYXVnaHQgYSByZWFsIGlz
c3VlLCBpdCdzIHByb2JhYmx5IGJldHRlciB0byBza2lwLgorICAgICAgICAgICAgU0tJUF9URVNU
KHRlc3RMYXJnZUhlYXBUYWtlc1BhZ2VzRnJvbUNvcnJlY3RMYXJnZUhlYXBXaXRoRmFuY3lPcmRl
cigpKTsKICAgICAgICAgfQogICAgICAgICBBRERfVEVTVCh0ZXN0U21hbGxIZWFwVGFrZXNQYWdl
c0Zyb21Db3JyZWN0TGFyZ2VIZWFwKCkpOwogICAgICAgICBBRERfVEVTVCh0ZXN0U21hbGxIZWFw
VGFrZXNQYWdlc0Zyb21Db3JyZWN0TGFyZ2VIZWFwV2l0aEZhbmN5T3JkZXIoKSk7CkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRl
c3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNv
SGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzLmNwcAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzMSw3ICs4MzEsNyBAQCB2b2lkIGFkZFNjYXZlbmdl
ckRlcGVuZGVudFRlc3RzKCkKICAgICAgICAgICAgIEFERF9URVNUKHRlc3RTaW1wbGVQYXJ0aWFs
QWxsb2NhdGlvbnMoMzA3MiwgOCwgcGFzX21lZGl1bV9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3Zh
cmlhbnQsIDEsIDEwMCwgMSwgMSwgNCwgMywgRnJlZUluT3JkZXIoKSkpOwogICAgICAgICAgICAg
QUREX1RFU1QodGVzdFNpbXBsZVBhcnRpYWxBbGxvY2F0aW9ucyg0MDk2LCA4LCBwYXNfbWVkaXVt
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMSwgMSwgMSwgMSwgMSwgMSwgRnJlZUlu
T3JkZXIoKSkpOwogICAgICAgICAgICAgQUREX1RFU1QodGVzdFNpbXBsZVBhcnRpYWxBbGxvY2F0
aW9ucygxMDc1MiwgOCwgcGFzX21lZGl1bV9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQs
IDEsIDEsIDEsIDEsIDEsIDEsIEZyZWVJbk9yZGVyKCkpKTsKLSAgICAgICAgICAgIEFERF9URVNU
KHRlc3RTaW1wbGVQYXJ0aWFsQWxsb2NhdGlvbnMoMjA0ODAsIDgsIHBhc19tZWRpdW1fc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAxLCAxLCAxLCAxLCAxLCAxLCBGcmVlSW5PcmRlcigp
KSk7CisgICAgICAgICAgICBBRERfVEVTVCh0ZXN0U2ltcGxlUGFydGlhbEFsbG9jYXRpb25zKDIx
NTA0LCA4LCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMSwgMSwg
MSwgMSwgMSwgMSwgRnJlZUluT3JkZXIoKSkpOwogICAgIAogICAgICAgICAgICAgLy8gVGVzdCB0
aGF0IHdlIGNhbiBhbGxvY2F0ZSBvYmplY3RzIHdpdGggaW50ZXJlc3RpbmcgYWxpZ25tZW50Lgog
ICAgICAgICAgICAgQUREX1RFU1QodGVzdFNpbXBsZVBhcnRpYWxBbGxvY2F0aW9ucygzMiwgMzIs
IHBhc19zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEsIDEsIDEsIDEsIDEs
IDEsIEZyZWVJbk9yZGVyKCkpKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVz
dC9UU0RUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90
ZXN0L1RTRFRlc3RzLmNwcAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy90ZXN0L1RTRFRlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsOSArNTAsOSBA
QCB2b2lkIGRlc3RydWN0b3Iodm9pZCogdmFsdWUpCiAgICAgaXNvX2RlYWxsb2NhdGUoaXNvX3Jl
YWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZSgKICAgICAgICAgICAgICAgICAgICAgICAgaXNvX2Fs
bG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoNjY2KSwgMTMzNywgcGFzX3JlYWxsb2NhdGVfZnJlZV9p
Zl9zdWNjZXNzZnVsKSk7CiAgICAgaXNvX2RlYWxsb2NhdGUoaXNvX2FsbG9jYXRlKCZpc29IZWFw
KSk7Ci0gICAgaXNvX2RlYWxsb2NhdGUoaXNvX2FsbG9jYXRlX2FycmF5KCZpc29IZWFwLCAxMDAs
IDEpKTsKLSAgICBpc29fZGVhbGxvY2F0ZShpc29fYWxsb2NhdGVfYXJyYXkoJmlzb0hlYXAsIDEw
MCwgNjQpKTsKLSAgICBpc29fZGVhbGxvY2F0ZShpc29fcmVhbGxvY2F0ZV9hcnJheSgKKyAgICBp
c29fZGVhbGxvY2F0ZShpc29fYWxsb2NhdGVfYXJyYXlfYnlfY291bnQoJmlzb0hlYXAsIDEwMCwg
MSkpOworICAgIGlzb19kZWFsbG9jYXRlKGlzb19hbGxvY2F0ZV9hcnJheV9ieV9jb3VudCgmaXNv
SGVhcCwgMTAwLCA2NCkpOworICAgIGlzb19kZWFsbG9jYXRlKGlzb19yZWFsbG9jYXRlX2FycmF5
X2J5X2NvdW50KAogICAgICAgICAgICAgICAgICAgICAgICBpc29fYWxsb2NhdGUoJmlzb0hlYXAp
LCAmaXNvSGVhcCwgMjAwLCBwYXNfcmVhbGxvY2F0ZV9mcmVlX2lmX3N1Y2Nlc3NmdWwpKTsKICAg
ICBpc29fZGVhbGxvY2F0ZShpc29fYWxsb2NhdGVfcHJpbWl0aXZlKCZpc29QcmltaXRpdmVIZWFw
LCA2NjYpKTsKICAgICBpc29fZGVhbGxvY2F0ZShpc29fYWxsb2NhdGVfcHJpbWl0aXZlX3dpdGhf
YWxpZ25tZW50KCZpc29QcmltaXRpdmVIZWFwLCAxMjgsIDY0KSk7CkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5jcHAJKHJldmlzaW9uIDI4NTc4
NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI0MCw2ICsyNDAsMjQgQEAgQm9vdEpJVEhlYXA6OkJvb3RKSVRIZWFw
KCkKIHsKIH0KIAorRW5hYmxlUGFnZUJhbGFuY2luZzo6RW5hYmxlUGFnZUJhbGFuY2luZygpCisg
ICAgOiBUZXN0U2NvcGUoCisgICAgICAgICJlbmFibGUtcGFnZS1iYWxhbmNpbmciLAorICAgICAg
ICBbXSAoKSB7CisgICAgICAgICAgICBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfYmFs
YW5jaW5nX2VuYWJsZWQgPSB0cnVlOworICAgICAgICB9KQoreworfQorCitEaXNhYmxlUGFnZUJh
bGFuY2luZzo6RGlzYWJsZVBhZ2VCYWxhbmNpbmcoKQorICAgIDogVGVzdFNjb3BlKAorICAgICAg
ICAiZGlzYWJsZS1wYWdlLWJhbGFuY2luZyIsCisgICAgICAgIFtdICgpIHsKKyAgICAgICAgICAg
IHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF9iYWxhbmNpbmdfZW5hYmxlZCA9IGZhbHNl
OworICAgICAgICB9KQoreworfQorCiBuYW1lc3BhY2UgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBG
dW5jPgpAQCAtMzIwLDggKzMzOCwxMCBAQCB2b2lkIGFkZEJpdGZpZWxkVmVjdG9yVGVzdHMoKTsK
IHZvaWQgYWRkQml0dmVjdG9yVGVzdHMoKTsKIHZvaWQgYWRkQ2FydGVzaWFuVHJlZVRlc3RzKCk7
CiB2b2lkIGFkZENvYWxpZ25UZXN0cygpOwordm9pZCBhZGRFeHBlbmRhYmxlTWVtb3J5VGVzdHMo
KTsKIHZvaWQgYWRkRXh0ZW5kZWRHQ0RUZXN0cygpOwogdm9pZCBhZGRIYXNodGFibGVUZXN0cygp
Owordm9pZCBhZGRIZWFwUmVmQWxsb2NhdG9ySW5kZXhUZXN0cygpOwogdm9pZCBhZGRJc29EeW5h
bWljUHJpbWl0aXZlSGVhcFRlc3RzKCk7CiB2b2lkIGFkZElzb0hlYXBDaGFvc1Rlc3RzKCk7CiB2
b2lkIGFkZElzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzKCk7CkBAIC0zMzQsNyArMzU0LDYgQEAgdm9p
ZCBhZGRMb2NrRnJlZVJlYWRQdHJQdHJIYXNodGFibGVUZXN0cwogdm9pZCBhZGRNaW5IZWFwVGVz
dHMoKTsKIHZvaWQgYWRkUmFjZVRlc3RzKCk7CiB2b2lkIGFkZFJlZEJsYWNrVHJlZVRlc3RzKCk7
Ci12b2lkIGFkZFNraXBMaXN0VGVzdHMoKTsKIHZvaWQgYWRkVFNEVGVzdHMoKTsKIHZvaWQgYWRk
VGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMoKTsKIHZvaWQgYWRkVXRpbHNUZXN0
cygpOwpAQCAtNjcyLDEzICs2OTEsMTkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2
KQogI2lmIFNFR0hFQVAKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19kb192YWxpZGF0
ZSA9IHRydWU7CiAjZW5kaWYKLSAgICAKKworICAgIC8vIFJ1biB0aGUgVGhpbmd5IHRlc3RzIGZp
cnN0IGJlY2F1c2UgdGhleSBjYXRjaCB0aGUgbW9zdCBidWdzLgorICAgIEFERF9TVUlURShUaGlu
Z3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb24pOworCisgICAgLy8gUnVuIHRoZSByZXN0IG9mIHRo
ZSB0ZXN0cyBpbiBhbHBoYWJldGljYWwgb3JkZXIuCiAgICAgQUREX1NVSVRFKEJpdGZpZWxkVmVj
dG9yKTsKICAgICBBRERfU1VJVEUoQml0dmVjdG9yKTsKICAgICBBRERfU1VJVEUoQ2FydGVzaWFu
VHJlZSk7CiAgICAgQUREX1NVSVRFKENvYWxpZ24pOworICAgIEFERF9TVUlURShFeHBlbmRhYmxl
TWVtb3J5KTsKICAgICBBRERfU1VJVEUoRXh0ZW5kZWRHQ0QpOwogICAgIEFERF9TVUlURShIYXNo
dGFibGUpOworICAgIEFERF9TVUlURShIZWFwUmVmQWxsb2NhdG9ySW5kZXgpOwogICAgIEFERF9T
VUlURShJc29EeW5hbWljUHJpbWl0aXZlSGVhcCk7CiAgICAgQUREX1NVSVRFKElzb0hlYXBDaGFv
cyk7CiAgICAgQUREX1NVSVRFKElzb0hlYXBQYWdlU2hhcmluZyk7CkBAIC02OTEsOSArNzE2LDcg
QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIEFERF9TVUlURShNaW5IZWFw
KTsKICAgICBBRERfU1VJVEUoUmFjZSk7CiAgICAgQUREX1NVSVRFKFJlZEJsYWNrVHJlZSk7Ci0g
ICAgQUREX1NVSVRFKFNraXBMaXN0KTsKICAgICBBRERfU1VJVEUoVFNEKTsKLSAgICBBRERfU1VJ
VEUoVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uKTsKICAgICBBRERfU1VJVEUoVXRpbHMp
OwogICAgIAogICAgIHN0cmluZyBmaWx0ZXI7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL3Rlc3QvVGVzdEhhcm5lc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuaAkocmV2aXNpb24gMjg1Nzg1KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
NSw2ICsyODUsMTYgQEAgcHVibGljOgogICAgIEJvb3RKSVRIZWFwKCk7CiB9OwogCitjbGFzcyBF
bmFibGVQYWdlQmFsYW5jaW5nIDogcHVibGljIFRlc3RTY29wZSB7CitwdWJsaWM6CisgICAgRW5h
YmxlUGFnZUJhbGFuY2luZygpOworfTsKKworY2xhc3MgRGlzYWJsZVBhZ2VCYWxhbmNpbmcgOiBw
dWJsaWMgVGVzdFNjb3BlIHsKK3B1YmxpYzoKKyAgICBEaXNhYmxlUGFnZUJhbGFuY2luZygpOwor
fTsKKwogYm9vbCBoYXNTY29wZShjb25zdCBzdGQ6OnN0cmluZyYgZmlsdGVyKTsKIAogdm9pZCBk
dW1wT2JqZWN0U2V0KGNvbnN0IHN0ZDo6c2V0PHZvaWQqPiYgb2JqZWN0cyk7CkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9u
VGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9U
aGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cy5jcHAJKHJldmlzaW9uIDI4NTc4NSkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UaGluZ3lBbmRVdGlsaXR5SGVhcEFs
bG9jYXRpb25UZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0OSw2ICsyNDksOCBAQCB2b2lk
IHZlcmlmeU9iamVjdFNldChjb25zdCBtYXA8dm9pZCosIHNpCiAKIHZvaWQgdmVyaWZ5SGVhcEVt
cHR5KHBhc19oZWFwKiBoZWFwKQogeworICAgIHBhc19zY2F2ZW5nZXJfc3VzcGVuZCgpOworICAg
IAogICAgIGZsdXNoRGVhbGxvY2F0aW9uTG9nQW5kU3RvcEFsbG9jYXRvcnMoKTsKICAgICAKICAg
ICBmb3JFYWNoTGl2ZU9iamVjdCgKQEAgLTI2OSw2ICsyNzEsOCBAQCB2b2lkIHZlcmlmeUhlYXBF
bXB0eShwYXNfaGVhcCogaGVhcCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9
KTsKICNlbmRpZiAvLyBTRUdIRUFQCisKKyAgICBwYXNfc2NhdmVuZ2VyX3Jlc3VtZSgpOwogfQog
CiBjbGFzcyBBbGxvY2F0b3IgewpAQCAtMzc4LDcgKzM4Miw3IEBAIHBhc19oZWFwX3JlZiogY3Jl
YXRlSXNvbGF0ZWRIZWFwUmVmKHNpemUKICAgICBoZWFwUmVmLT50eXBlID0gcmVpbnRlcnByZXRf
Y2FzdDxwYXNfaGVhcF90eXBlKj4oUEFTX1NJTVBMRV9UWVBFX0NSRUFURShzaXplLCBhbGlnbm1l
bnQpKTsKICAgICBoZWFwUmVmLT5oZWFwID0gbnVsbHB0cjsKICNpZiBUTEMKLSAgICBoZWFwUmVm
LT5hbGxvY2F0b3JfaW5kZXggPSBVSU5UX01BWDsKKyAgICBoZWFwUmVmLT5hbGxvY2F0b3JfaW5k
ZXggPSAwOwogI2VuZGlmCiAgICAgCiAgICAgcmV0dXJuIGhlYXBSZWY7CkBAIC0yNDU4LDEwICsy
NDYyLDEwIEBAIHZvaWQgYWRkU21hbGxIZWFwVGVzdHMoKQogICAgIHBhc19oZWFwX3JlZiogaGVh
cDRCeXRlcyA9IGNyZWF0ZUlzb2xhdGVkSGVhcFJlZig0LCA0KTsKICAgICAKICAgICBBRERfVEVT
VCh0ZXN0U2l6ZUNsYXNzQ3JlYXRpb24oU0laRV9DTEFTU19QUk9HUkFNKElzb2xhdGVkSGVhcEFs
bG9jYXRvcihoZWFwNEJ5dGVzKSwgOCwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfb2JqZWN0X2tpbmQs
IDIwMCwgMiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNJWkVfQ0xBU1Nf
UFJPR1JBTShJc29sYXRlZEhlYXBBcnJheUFsbG9jYXRvcihoZWFwNEJ5dGVzLCAyLCAxKSwgOCwg
cGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfb2JqZWN0X2tpbmQsIDIwMCwgMSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNJWkVfQ0xBU1NfUFJPR1JBTShJc29sYXRlZEhlYXBBcnJh
eUFsbG9jYXRvcihoZWFwNEJ5dGVzLCAyLCAxKSwgOCwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfb2Jq
ZWN0X2tpbmQsIDIwMCwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNJ
WkVfQ0xBU1NfUFJPR1JBTShJc29sYXRlZEhlYXBBbGxvY2F0b3IoaGVhcDRCeXRlcyksIDgsIHBh
c19zbWFsbF9zZWdyZWdhdGVkX29iamVjdF9raW5kLCAyMDAsIDApKSk7CiAgICAgQUREX1RFU1Qo
dGVzdFNpemVDbGFzc0NyZWF0aW9uKFNJWkVfQ0xBU1NfUFJPR1JBTShJc29sYXRlZEhlYXBBcnJh
eUFsbG9jYXRvcihoZWFwNEJ5dGVzLCAyLCAxKSwgOCwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfb2Jq
ZWN0X2tpbmQsIDIwMCwgMiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNJ
WkVfQ0xBU1NfUFJPR1JBTShJc29sYXRlZEhlYXBBbGxvY2F0b3IoaGVhcDRCeXRlcyksIDgsIHBh
c19zbWFsbF9zZWdyZWdhdGVkX29iamVjdF9raW5kLCAyMDAsIDEpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTSVpFX0NMQVNTX1BST0dSQU0oSXNvbGF0ZWRIZWFwQWxsb2Nh
dG9yKGhlYXA0Qnl0ZXMpLCA4LCBwYXNfc21hbGxfc2VncmVnYXRlZF9vYmplY3Rfa2luZCwgMjAw
LCAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0laRV9DTEFTU19QUk9H
UkFNKElzb2xhdGVkSGVhcEFycmF5QWxsb2NhdG9yKGhlYXA0Qnl0ZXMsIDIsIDEpLCA4LCBwYXNf
c21hbGxfc2VncmVnYXRlZF9vYmplY3Rfa2luZCwgMjAwLCAwKSkpOwogICAgIEFERF9URVNUKHRl
c3RTaXplQ2xhc3NDcmVhdGlvbihTSVpFX0NMQVNTX1BST0dSQU0oSXNvbGF0ZWRIZWFwQXJyYXlB
bGxvY2F0b3IoaGVhcDRCeXRlcywgMTQsIDEpLCA1NiwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfb2Jq
ZWN0X2tpbmQsIDIwMCwgMiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNJ
WkVfQ0xBU1NfUFJPR1JBTShJc29sYXRlZEhlYXBBcnJheUFsbG9jYXRvcihoZWFwNEJ5dGVzLCAx
MiwgMSksIDU2LCBwYXNfc21hbGxfc2VncmVnYXRlZF9vYmplY3Rfa2luZCwgMjAwLCAyKSwKQEAg
LTI0NzMsMTkgKzI0NzcsMTkgQEAgdm9pZCBhZGRTbWFsbEhlYXBUZXN0cygpCiAgICAgCiAgICAg
QUREX1RFU1QodGVzdFNpemVDbGFzc0NyZWF0aW9uKFNJWkVfQ0xBU1NfUFJPR1JBTShJc29sYXRl
ZEhlYXBBbGxvY2F0b3IoaGVhcDI0Qnl0ZXMpLCAyNCwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfb2Jq
ZWN0X2tpbmQsIDIwMCwgMiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNJ
WkVfQ0xBU1NfUFJPR1JBTShJc29sYXRlZEhlYXBBcnJheUFsbG9jYXRvcihoZWFwMjRCeXRlcywg
MSwgMzIpLCAzMiwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfb2JqZWN0X2tpbmQsIDIwMCwgMiksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNJWkVfQ0xBU1NfUFJPR1JBTShJc29s
YXRlZEhlYXBBbGxvY2F0b3IoaGVhcDI0Qnl0ZXMpLCAzMiwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRf
b2JqZWN0X2tpbmQsIDIwMCwgMCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU0laRV9DTEFTU19QUk9HUkFNKElzb2xhdGVkSGVhcEFsbG9jYXRvcihoZWFwMjRCeXRlcyks
IDI0LCBwYXNfc21hbGxfc2VncmVnYXRlZF9vYmplY3Rfa2luZCwgMjAwLCAwKSkpOwogICAgIAog
ICAgIHBhc19oZWFwX3JlZiogaGVhcDNCeXRlcyA9IGNyZWF0ZUlzb2xhdGVkSGVhcFJlZigzLCAx
KTsKICAgICAKICAgICBBRERfVEVTVCh0ZXN0U2l6ZUNsYXNzQ3JlYXRpb24oU0laRV9DTEFTU19Q
Uk9HUkFNKElzb2xhdGVkSGVhcEFsbG9jYXRvcihoZWFwM0J5dGVzKSwgOCwgcGFzX3NtYWxsX3Nl
Z3JlZ2F0ZWRfb2JqZWN0X2tpbmQsIDIwMCwgMiksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNJWkVfQ0xBU1NfUFJPR1JBTShJc29sYXRlZEhlYXBBcnJheUFsbG9jYXRvciho
ZWFwM0J5dGVzLCAyLCAxKSwgOCwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfb2JqZWN0X2tpbmQsIDIw
MCwgMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNJWkVfQ0xBU1NfUFJP
R1JBTShJc29sYXRlZEhlYXBBcnJheUFsbG9jYXRvcihoZWFwM0J5dGVzLCAyLCAxKSwgOCwgcGFz
X3NtYWxsX3NlZ3JlZ2F0ZWRfb2JqZWN0X2tpbmQsIDIwMCwgMCksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNJWkVfQ0xBU1NfUFJPR1JBTShJc29sYXRlZEhlYXBBcnJheUFs
bG9jYXRvcihoZWFwM0J5dGVzLCAzLCAxKSwgMTYsIHBhc19zbWFsbF9zZWdyZWdhdGVkX29iamVj
dF9raW5kLCAyMDAsIDIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSVpF
X0NMQVNTX1BST0dSQU0oSXNvbGF0ZWRIZWFwQXJyYXlBbGxvY2F0b3IoaGVhcDNCeXRlcywgNCwg
MSksIDE2LCBwYXNfc21hbGxfc2VncmVnYXRlZF9vYmplY3Rfa2luZCwgMjAwLCAwKSkpOwogCiAg
ICAgcGFzX2hlYXBfcmVmKiBoZWFwN0J5dGVzID0gY3JlYXRlSXNvbGF0ZWRIZWFwUmVmKDcsIDEp
OwogICAgIAogICAgIEFERF9URVNUKHRlc3RTaXplQ2xhc3NDcmVhdGlvbihTSVpFX0NMQVNTX1BS
T0dSQU0oSXNvbGF0ZWRIZWFwQXJyYXlBbGxvY2F0b3IoaGVhcDdCeXRlcywgOCwgMSksIDU2LCBw
YXNfc21hbGxfc2VncmVnYXRlZF9vYmplY3Rfa2luZCwgMjAwLCAyKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU0laRV9DTEFTU19QUk9HUkFNKElzb2xhdGVkSGVhcEFycmF5
QWxsb2NhdG9yKGhlYXA3Qnl0ZXMsIDcsIDEpLCA1NiwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfb2Jq
ZWN0X2tpbmQsIDEwLCAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0la
RV9DTEFTU19QUk9HUkFNKElzb2xhdGVkSGVhcEFycmF5QWxsb2NhdG9yKGhlYXA3Qnl0ZXMsIDcs
IDEpLCA1NiwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfb2JqZWN0X2tpbmQsIDEwLCAwKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0laRV9DTEFTU19QUk9HUkFNKElzb2xhdGVk
SGVhcEFycmF5QWxsb2NhdG9yKGhlYXA3Qnl0ZXMsIDYsIDEpLCA1NiwgcGFzX3NtYWxsX3NlZ3Jl
Z2F0ZWRfb2JqZWN0X2tpbmQsIDEwLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU0laRV9DTEFTU19QUk9HUkFNKElzb2xhdGVkSGVhcEFycmF5QWxsb2NhdG9yKGhlYXA3
Qnl0ZXMsIDYsIDE2KSwgNDgsIHBhc19zbWFsbF9zZWdyZWdhdGVkX29iamVjdF9raW5kLCAyMDAs
IDIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSVpFX0NMQVNTX1BST0dS
QU0oSXNvbGF0ZWRIZWFwQXJyYXlBbGxvY2F0b3IoaGVhcDdCeXRlcywgOCwgMSksIDU2LCBwYXNf
c21hbGxfc2VncmVnYXRlZF9vYmplY3Rfa2luZCwgMTAsIDApLAo=
</data>
<flag name="review"
          id="469113"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
    <flag name="commit-queue"
          id="469119"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>