<?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>148945</bug_id>
          
          <creation_ts>2015-09-07 14:43:54 -0700</creation_ts>
          <short_desc>Implement the arithmetic instructions for doubles in WebAssembly</short_desc>
          <delta_ts>2015-09-18 17:31:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>148913</dependson>
          <blocked>146064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sukolsak Sakshuwong">sukolsak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>sukolsak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1124168</commentid>
    <comment_count>0</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-07 14:43:54 -0700</bug_when>
    <thetext>Implement the arithmetic instructions for doubles (float64) in WebAssembly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124169</commentid>
    <comment_count>1</comment_count>
      <attachid>260749</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-07 15:36:03 -0700</bug_when>
    <thetext>Created attachment 260749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124522</commentid>
    <comment_count>2</comment_count>
      <attachid>260828</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-08 20:47:28 -0700</bug_when>
    <thetext>Created attachment 260828
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124593</commentid>
    <comment_count>3</comment_count>
      <attachid>260851</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-09 02:34:42 -0700</bug_when>
    <thetext>Created attachment 260851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125150</commentid>
    <comment_count>4</comment_count>
      <attachid>260994</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-11 01:06:00 -0700</bug_when>
    <thetext>Created attachment 260994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125218</commentid>
    <comment_count>5</comment_count>
      <attachid>260994</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-11 10:52:47 -0700</bug_when>
    <thetext>Comment on attachment 260994
Patch

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

&gt; Source/JavaScriptCore/wasm/WASMFunctionCompiler.h:77
&gt; +// On Windows we need to wrap fmod; on other platforms we can call it directly.
&gt; +// On ARMv7 we assert that all function pointers have to low bit set (point to thumb code).
&gt; +#if CALLING_CONVENTION_IS_STDCALL || CPU(ARM_THUMB2)
&gt; +static double JIT_OPERATION operationFmod(double x, double y)

to low bit =&gt; the low bit

I don&apos;t understand this comment. Why do we need to wrap fmod on Windows? Your comment says that we need to wrap fmod on Windows and not other platforms, but your code tests for all stdcall and/or thumb2 platforms. Why is it relevant that ARMv7 code is thumb code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127040</commentid>
    <comment_count>6</comment_count>
      <attachid>261480</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-17 21:19:20 -0700</bug_when>
    <thetext>Created attachment 261480
Patch for ARM 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127041</commentid>
    <comment_count>7</comment_count>
      <attachid>261481</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-17 21:19:43 -0700</bug_when>
    <thetext>Created attachment 261481
Patch for ARM 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127222</commentid>
    <comment_count>8</comment_count>
      <attachid>261480</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-18 14:03:01 -0700</bug_when>
    <thetext>Comment on attachment 261480
Patch for ARM 1

Michael Saboff has tested this patch on both ARMv7 and ARM64. This patch doesn&apos;t use a wrapper for fmod. It passes every WASM tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127284</commentid>
    <comment_count>9</comment_count>
      <attachid>261541</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-18 16:15:08 -0700</bug_when>
    <thetext>Created attachment 261541
Update to ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127287</commentid>
    <comment_count>10</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-18 16:20:44 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 260994 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=260994&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/wasm/WASMFunctionCompiler.h:77
&gt; &gt; +// On Windows we need to wrap fmod; on other platforms we can call it directly.
&gt; &gt; +// On ARMv7 we assert that all function pointers have to low bit set (point to thumb code).
&gt; &gt; +#if CALLING_CONVENTION_IS_STDCALL || CPU(ARM_THUMB2)
&gt; &gt; +static double JIT_OPERATION operationFmod(double x, double y)
&gt; 
&gt; to low bit =&gt; the low bit
&gt; 
&gt; I don&apos;t understand this comment. Why do we need to wrap fmod on Windows?
&gt; Your comment says that we need to wrap fmod on Windows and not other
&gt; platforms, but your code tests for all stdcall and/or thumb2 platforms. Why
&gt; is it relevant that ARMv7 code is thumb code?

I copied this code from dfg/DFGSpeculativeJIT.cpp. My guess is that fmod was written in non-thumb code. I have removed the wrapper for fmod and tested this patch on ARMv7 and ARM64 with the help of Michael. It passes every WASM test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127288</commentid>
    <comment_count>11</comment_count>
      <attachid>261542</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-18 16:25:40 -0700</bug_when>
    <thetext>Created attachment 261542
Remove maxFrameExtentForSlowPathCall</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127289</commentid>
    <comment_count>12</comment_count>
      <attachid>261543</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-18 16:26:39 -0700</bug_when>
    <thetext>Created attachment 261543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127297</commentid>
    <comment_count>13</comment_count>
      <attachid>261543</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-18 16:44:27 -0700</bug_when>
    <thetext>Comment on attachment 261543
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127307</commentid>
    <comment_count>14</comment_count>
      <attachid>261543</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-18 17:31:21 -0700</bug_when>
    <thetext>Comment on attachment 261543
Patch

Clearing flags on attachment: 261543

Committed r190002: &lt;http://trac.webkit.org/changeset/190002&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127308</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-18 17:31:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260749</attachid>
            <date>2015-09-07 15:36:03 -0700</date>
            <delta_ts>2015-09-08 20:47:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>diff.txt</filename>
            <type>text/plain</type>
            <size>29052</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGUxNzY2Y2FhZWFhOGU5OTg0OWM4N2VhYTQ2MGM0
NmE3MjIxM2NmODMuLjRhZGI3M2E3NDQzNjNhMWU3MzI4MjM5MTE1Y2JiZmE3MGVjNTZiY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE1LTA5LTA3ICBTdWtv
bHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCB0aGUgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgZm9yIGRvdWJsZXMgaW4gV2ViQXNzZW1ibHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk0NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVu
dCB0aGUgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgZm9yIGRvdWJsZXMgKGZsb2F0NjQpIGluIFdl
YkFzc2VtYmx5LgorCisgICAgICAgICogdGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy1mbG9h
dDY0LmpzOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtaW50MzIuanM6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20tYXJp
dGhtZXRpYy5qcy4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHNob3VsZFRocm93KToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbToKKyAg
ICAgICAgKiB0ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWludDMyLndhc206IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20vYXJpdGhtZXRpYy53
YXNtLgorICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaDoKKyAgICAgICAgKEpT
Qzo6b3BlcmF0aW9uRm1vZCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpi
dWlsZFVuYXJ5RjY0KToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmJ1aWxk
QmluYXJ5RjY0KToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmFwcGVuZENh
bGxTZXRSZXN1bHQpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Y2FsbE9w
ZXJhdGlvbik6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjphZGp1c3RTdGFj
a1BvaW50ZXJBbmRDYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiB3YXNtL1dBU01GdW5jdGlvblBh
cnNlci5jcHA6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNz
aW9uRjY0KToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZVVuYXJ5RXhw
cmVzc2lvbkY2NCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VCaW5h
cnlFeHByZXNzaW9uRjY0KToKKyAgICAgICAgKiB3YXNtL1dBU01GdW5jdGlvblBhcnNlci5oOgor
ICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlci5oOgorICAgICAgICAoSlND
OjpXQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyOjpidWlsZFVuYXJ5RjY0KToKKyAgICAgICAgKEpT
Qzo6V0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlcjo6YnVpbGRCaW5hcnlGNjQpOgorCiAyMDE1LTA5
LTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBHYXJkZW5pbmc6
IGZpeCBicm9rZW4gV2luZG93cyBidWlsZCBhZnRlciByMTg5NDU0LgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS1hcml0aG1ldGljLWZs
b2F0NjQuanMKaW5kZXggOGViNWU5ZjA2MTY5NTgwMTk3NWMzZjBiYTExMzc1ZWVkNWQ5MjE0Mi4u
YjBlNzkyOTJlZTU0ODhjOGU0ZDQ4OTBiOThjMTg5YzNmM2ZhNDVlMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5q
cworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRp
Yy1mbG9hdDY0LmpzCkBAIC0xMSwxMiArMTEsMTY2IEBAIHdhc20vYXJpdGhtZXRpYy1mbG9hdDY0
Lndhc20gaXMgZ2VuZXJhdGVkIGJ5IHBhY2stYXNtanMgPGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJB
CiBmdW5jdGlvbiBhc21Nb2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewogICAgICJ1c2UgYXNt
IjsKIAorICAgIHZhciBhYnMgPSBnbG9iYWwuTWF0aC5hYnM7CisgICAgdmFyIGNlaWwgPSBnbG9i
YWwuTWF0aC5jZWlsOworICAgIHZhciBmbG9vciA9IGdsb2JhbC5NYXRoLmZsb29yOworICAgIHZh
ciBzcXJ0ID0gZ2xvYmFsLk1hdGguc3FydDsKKyAgICB2YXIgY29zID0gZ2xvYmFsLk1hdGguY29z
OworICAgIHZhciBzaW4gPSBnbG9iYWwuTWF0aC5zaW47CisgICAgdmFyIHRhbiA9IGdsb2JhbC5N
YXRoLnRhbjsKKyAgICB2YXIgYWNvcyA9IGdsb2JhbC5NYXRoLmFjb3M7CisgICAgdmFyIGFzaW4g
PSBnbG9iYWwuTWF0aC5hc2luOworICAgIHZhciBhdGFuID0gZ2xvYmFsLk1hdGguYXRhbjsKKyAg
ICB2YXIgYXRhbjIgPSBnbG9iYWwuTWF0aC5hdGFuMjsKKyAgICB2YXIgZXhwID0gZ2xvYmFsLk1h
dGguZXhwOworICAgIHZhciBsb2cgPSBnbG9iYWwuTWF0aC5sb2c7CisgICAgdmFyIHBvdyA9IGds
b2JhbC5NYXRoLnBvdzsKKyAgICB2YXIgTmFOID0gZ2xvYmFsLk5hTjsKKyAgICB2YXIgSW5maW5p
dHkgPSBnbG9iYWwuSW5maW5pdHk7CisKICAgICBmdW5jdGlvbiBudW1iZXIoKSB7CiAgICAgICAg
IHJldHVybiA0LjI7CiAgICAgfQogCisgICAgZnVuY3Rpb24gbmVnYXRlKCkgeworICAgICAgICB2
YXIgeCA9IDAuMDsKKyAgICAgICAgeCA9IDQuMjsKKyAgICAgICAgcmV0dXJuIC14OworICAgIH0K
KworICAgIGZ1bmN0aW9uIGFkZCgpIHsKKyAgICAgICAgcmV0dXJuIDMuOCArIDAuNDsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBhZGROYU4oKSB7CisgICAgICAgIHJldHVybiAxLjAgKyBOYU47Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gYWRkSW5maW5pdHkoKSB7CisgICAgICAgIHJldHVybiAxLjAg
KyBJbmZpbml0eTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhZGRJbmZpbml0eVRvTmVnYXRpdmVJ
bmZpbml0eSgpIHsKKyAgICAgICAgcmV0dXJuIC1JbmZpbml0eSArIEluZmluaXR5OworICAgIH0K
KworICAgIGZ1bmN0aW9uIHN1YnRyYWN0KCkgeworICAgICAgICByZXR1cm4gNS4wIC0gMC44Owor
ICAgIH0KKworICAgIGZ1bmN0aW9uIG11bHRpcGx5KCkgeworICAgICAgICByZXR1cm4gNi4wICog
MC43OworICAgIH0KKworICAgIGZ1bmN0aW9uIGRpdmlkZSgpIHsKKyAgICAgICAgcmV0dXJuIDgu
NCAvIDIuMDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkaXZpZGVCeVplcm8oKSB7CisgICAgICAg
IHJldHVybiAxLjAgLyAwLjA7CisgICAgfQorCisgICAgZnVuY3Rpb24gZGl2aWRlQnlOZWdhdGl2
ZVplcm8oKSB7CisgICAgICAgIHJldHVybiAxLjAgLyAtMC4wOworICAgIH0KKworICAgIGZ1bmN0
aW9uIG1vZHVsbygpIHsKKyAgICAgICAgcmV0dXJuIDQuMiAlIDEuOTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBtb2R1bG9CeVplcm8oKSB7CisgICAgICAgIHJldHVybiAxLjAgJSAwLjA7CisgICAg
fQorCisgICAgZnVuY3Rpb24gYWJzb2x1dGVOZWdhdGl2ZSgpIHsKKyAgICAgICAgcmV0dXJuIGFi
cygtNC4yKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhYnNvbHV0ZVBvc2l0aXZlKCkgeworICAg
ICAgICByZXR1cm4gYWJzKDQuMik7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2VpbE51bWJlcigp
IHsKKyAgICAgICAgcmV0dXJuIGNlaWwoNC4yKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmbG9v
ck51bWJlcigpIHsKKyAgICAgICAgcmV0dXJuIGZsb29yKDQuMik7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gc3F1YXJlUm9vdCgpIHsKKyAgICAgICAgcmV0dXJuIHNxcnQoNC4wKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBjb3NpbmUoKSB7CisgICAgICAgIHJldHVybiBjb3MoMy4xNCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gc2luZSgpIHsKKyAgICAgICAgcmV0dXJuIHNpbigzLjE0KTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiB0YW5nZW50KCkgeworICAgICAgICByZXR1cm4gdGFuKDMuMTQp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGFyY2Nvc2luZSgpIHsKKyAgICAgICAgcmV0dXJuIGFj
b3MoMC41KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcmNzaW5lKCkgeworICAgICAgICByZXR1
cm4gYXNpbigwLjUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFyY3RhbmdlbnQoKSB7CisgICAg
ICAgIHJldHVybiBhdGFuKDEuMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXJjdGFuZ2VudDIo
KSB7CisgICAgICAgIHJldHVybiBhdGFuMigxLjAsIDAuMCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gZXhwb25lbnRpYWwoKSB7CisgICAgICAgIHJldHVybiBleHAoMS4wKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBsb2dhcml0aG0oKSB7CisgICAgICAgIHJldHVybiBsb2coMi44MSk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcG93ZXIoKSB7CisgICAgICAgIHJldHVybiBwb3coMi4wLCA0LjAp
OworICAgIH0KKwogICAgIHJldHVybiB7CiAgICAgICAgIG51bWJlcjogbnVtYmVyLAorICAgICAg
ICBuZWdhdGU6IG5lZ2F0ZSwKKyAgICAgICAgYWRkOiBhZGQsCisgICAgICAgIGFkZE5hTjogYWRk
TmFOLAorICAgICAgICBhZGRJbmZpbml0eTogYWRkSW5maW5pdHksCisgICAgICAgIGFkZEluZmlu
aXR5VG9OZWdhdGl2ZUluZmluaXR5OiBhZGRJbmZpbml0eVRvTmVnYXRpdmVJbmZpbml0eSwKKyAg
ICAgICAgc3VidHJhY3Q6IHN1YnRyYWN0LAorICAgICAgICBtdWx0aXBseTogbXVsdGlwbHksCisg
ICAgICAgIGRpdmlkZTogZGl2aWRlLAorICAgICAgICBkaXZpZGVCeVplcm86IGRpdmlkZUJ5WmVy
bywKKyAgICAgICAgZGl2aWRlQnlOZWdhdGl2ZVplcm86IGRpdmlkZUJ5TmVnYXRpdmVaZXJvLAor
ICAgICAgICBtb2R1bG86IG1vZHVsbywKKyAgICAgICAgbW9kdWxvQnlaZXJvOiBtb2R1bG9CeVpl
cm8sCisgICAgICAgIGFic29sdXRlTmVnYXRpdmU6IGFic29sdXRlTmVnYXRpdmUsCisgICAgICAg
IGFic29sdXRlUG9zaXRpdmU6IGFic29sdXRlUG9zaXRpdmUsCisgICAgICAgIGNlaWxOdW1iZXI6
IGNlaWxOdW1iZXIsCisgICAgICAgIGZsb29yTnVtYmVyOiBmbG9vck51bWJlciwKKyAgICAgICAg
c3F1YXJlUm9vdDogc3F1YXJlUm9vdCwKKyAgICAgICAgY29zaW5lOiBjb3NpbmUsCisgICAgICAg
IHNpbmU6IHNpbmUsCisgICAgICAgIHRhbmdlbnQ6IHRhbmdlbnQsCisgICAgICAgIGFyY2Nvc2lu
ZTogYXJjY29zaW5lLAorICAgICAgICBhcmNzaW5lOiBhcmNzaW5lLAorICAgICAgICBhcmN0YW5n
ZW50OiBhcmN0YW5nZW50LAorICAgICAgICBhcmN0YW5nZW50MjogYXJjdGFuZ2VudDIsCisgICAg
ICAgIGV4cG9uZW50aWFsOiBleHBvbmVudGlhbCwKKyAgICAgICAgbG9nYXJpdGhtOiBsb2dhcml0
aG0sCisgICAgICAgIHBvd2VyOiBwb3dlciwKICAgICB9OwogfQogKi8KQEAgLTI0LDMgKzE3OCwz
MCBAQCBmdW5jdGlvbiBhc21Nb2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewogdmFyIG1vZHVs
ZSA9IGxvYWRXZWJBc3NlbWJseSgid2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbSIpOwogCiBz
aG91bGRCZShtb2R1bGUubnVtYmVyKCksIDQuMik7CitzaG91bGRCZShtb2R1bGUubmVnYXRlKCks
IC00LjIpOworc2hvdWxkQmUobW9kdWxlLmFkZCgpLCA0LjIpOworc2hvdWxkQmUoaXNOYU4obW9k
dWxlLmFkZE5hTigpKSwgdHJ1ZSk7CitzaG91bGRCZShtb2R1bGUuYWRkSW5maW5pdHkoKSwgSW5m
aW5pdHkpOworc2hvdWxkQmUoaXNOYU4obW9kdWxlLmFkZEluZmluaXR5VG9OZWdhdGl2ZUluZmlu
aXR5KCkpLCB0cnVlKTsKK3Nob3VsZEJlKG1vZHVsZS5zdWJ0cmFjdCgpLCA0LjIpOworc2hvdWxk
QmUobW9kdWxlLm11bHRpcGx5KCksIDQuMTk5OTk5OTk5OTk5OTk5KTsKK3Nob3VsZEJlKG1vZHVs
ZS5kaXZpZGUoKSwgNC4yKTsKK3Nob3VsZEJlKG1vZHVsZS5kaXZpZGVCeVplcm8oKSwgSW5maW5p
dHkpOworc2hvdWxkQmUobW9kdWxlLmRpdmlkZUJ5TmVnYXRpdmVaZXJvKCksIC1JbmZpbml0eSk7
CitzaG91bGRCZShtb2R1bGUubW9kdWxvKCksIDAuNDAwMDAwMDAwMDAwMDAwMzYpOworc2hvdWxk
QmUoaXNOYU4obW9kdWxlLm1vZHVsb0J5WmVybygpKSwgdHJ1ZSk7CitzaG91bGRCZShtb2R1bGUu
YWJzb2x1dGVOZWdhdGl2ZSgpLCA0LjIpOworc2hvdWxkQmUobW9kdWxlLmFic29sdXRlUG9zaXRp
dmUoKSwgNC4yKTsKK3Nob3VsZEJlKG1vZHVsZS5jZWlsTnVtYmVyKCksIDUpOworc2hvdWxkQmUo
bW9kdWxlLmZsb29yTnVtYmVyKCksIDQpOworc2hvdWxkQmUobW9kdWxlLnNxdWFyZVJvb3QoKSwg
Mik7CitzaG91bGRCZShtb2R1bGUuY29zaW5lKCksIC0wLjk5OTk5ODczMTcyNzUzOTUpOworc2hv
dWxkQmUobW9kdWxlLnNpbmUoKSwgMC4wMDE1OTI2NTI5MTY0ODY4MjgyKTsKK3Nob3VsZEJlKG1v
ZHVsZS50YW5nZW50KCksIC0wLjAwMTU5MjY1NDkzNjQwNzIyMzIpOworc2hvdWxkQmUobW9kdWxl
LmFyY2Nvc2luZSgpLCBNYXRoLlBJIC8gMyk7CitzaG91bGRCZShtb2R1bGUuYXJjc2luZSgpLCBN
YXRoLlBJIC8gNik7CitzaG91bGRCZShtb2R1bGUuYXJjdGFuZ2VudCgpLCBNYXRoLlBJIC8gNCk7
CitzaG91bGRCZShtb2R1bGUuYXJjdGFuZ2VudDIoKSwgTWF0aC5QSSAvIDIpOworc2hvdWxkQmUo
bW9kdWxlLmV4cG9uZW50aWFsKCksIE1hdGguRSk7CitzaG91bGRCZShtb2R1bGUubG9nYXJpdGht
KCksIDEuMDMzMTg0NDgzMzQ1NjU0NSk7CitzaG91bGRCZShtb2R1bGUucG93ZXIoKSwgMTYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRo
bWV0aWMtaW50MzIuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20t
YXJpdGhtZXRpYy1pbnQzMi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTMxMmE4YmEwYjlkOGYxZjlmZWIxMzY0
YTM1NzkyZjM4ZmU5ZDI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtaW50MzIuanMKQEAgLTAsMCArMSwxMzUgQEAK
Ky8vQCBza2lwCisKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBp
ZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFs
dWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBtZXNzYWdl
KSB7CisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7Cisg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJy
b3IpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibm90IHRocm93bi4iKTsKKyAgICBpZiAoU3Ry
aW5nKGVycm9yKSAhPT0gbWVzc2FnZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgZXJy
b3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsKK30KKworLyoKK3dhc20vYXJpdGhtZXRpYy1pbnQzMi53
YXNtIGlzIGdlbmVyYXRlZCBieSBwYWNrLWFzbWpzIDxodHRwczovL2dpdGh1Yi5jb20vV2ViQXNz
ZW1ibHkvcG9seWZpbGwtcHJvdG90eXBlLTE+IGZyb20gdGhlIGZvbGxvd2luZyBzY3JpcHQ6CisK
K2Z1bmN0aW9uIGFzbU1vZHVsZShnbG9iYWwsIGVudiwgYnVmZmVyKSB7CisgICAgInVzZSBhc20i
OworCisgICAgZnVuY3Rpb24gYWRkU3VidHJhY3QoKSB7CisgICAgICAgIHJldHVybiAoKDEwICsg
NDApIC0gOCkgfCAwOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFkZE92ZXJmbG93KCkgeworICAg
ICAgICByZXR1cm4gKDIxNDc0ODM2NDcgKyAxKSB8IDA7CisgICAgfQorCisgICAgZnVuY3Rpb24g
ZGl2aWRlKCkgeworICAgICAgICByZXR1cm4gKDQyIC8gNSkgfCAwOworICAgIH0KKworICAgIGZ1
bmN0aW9uIGRpdmlkZUJ5WmVybygpIHsKKyAgICAgICAgcmV0dXJuICgxIC8gMCkgfCAwOworICAg
IH0KKworICAgIGZ1bmN0aW9uIGRpdmlkZU92ZXJmbG93KCkgeworICAgICAgICByZXR1cm4gKC0y
MTQ3NDgzNjQ4IC8gLTEpIHwgMDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB1bnNpZ25lZERpdmlk
ZSgpIHsKKyAgICAgICAgcmV0dXJuICgoLTEgPj4+IDApIC8gMikgfCAwOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHVuc2lnbmVkRGl2aWRlQnlaZXJvKCkgeworICAgICAgICByZXR1cm4gKCgtMSA+
Pj4gMCkgLyAwKSB8IDA7CisgICAgfQorCisgICAgZnVuY3Rpb24gbW9kdWxvKCkgeworICAgICAg
ICByZXR1cm4gKDQyICUgNSkgfCAwOworICAgIH0KKworICAgIGZ1bmN0aW9uIG1vZHVsb05lZ2F0
aXZlKCkgeworICAgICAgICByZXR1cm4gKC00MiAlIDUpIHwgMDsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBtb2R1bG9aZXJvKCkgeworICAgICAgICByZXR1cm4gKDEgJSAwKSB8IDA7CisgICAgfQor
CisgICAgZnVuY3Rpb24gbW9kdWxvT3ZlcmZsb3coKSB7CisgICAgICAgIHJldHVybiAoLTIxNDc0
ODM2NDggJSAtMSkgfCAwOworICAgIH0KKworICAgIGZ1bmN0aW9uIHVuc2lnbmVkTW9kdWxvKCkg
eworICAgICAgICByZXR1cm4gKCgtMSA+Pj4gMCkgJSAxMDAwMDApIHwgMDsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB1bnNpZ25lZE1vZHVsb1plcm8oKSB7CisgICAgICAgIHJldHVybiAoKC0xID4+
PiAwKSAlIDApIHwgMDsKKyAgICB9CisKKyAgICByZXR1cm4geworICAgICAgICBhZGRTdWJ0cmFj
dDogYWRkU3VidHJhY3QsCisgICAgICAgIGFkZE92ZXJmbG93OiBhZGRPdmVyZmxvdywKKyAgICAg
ICAgZGl2aWRlOiBkaXZpZGUsCisgICAgICAgIGRpdmlkZUJ5WmVybzogZGl2aWRlQnlaZXJvLAor
ICAgICAgICBkaXZpZGVPdmVyZmxvdzogZGl2aWRlT3ZlcmZsb3csCisgICAgICAgIHVuc2lnbmVk
RGl2aWRlOiB1bnNpZ25lZERpdmlkZSwKKyAgICAgICAgdW5zaWduZWREaXZpZGVCeVplcm86IHVu
c2lnbmVkRGl2aWRlQnlaZXJvLAorICAgICAgICBtb2R1bG86IG1vZHVsbywKKyAgICAgICAgbW9k
dWxvTmVnYXRpdmU6IG1vZHVsb05lZ2F0aXZlLAorICAgICAgICBtb2R1bG9aZXJvOiBtb2R1bG9a
ZXJvLAorICAgICAgICBtb2R1bG9PdmVyZmxvdzogbW9kdWxvT3ZlcmZsb3csCisgICAgICAgIHVu
c2lnbmVkTW9kdWxvOiB1bnNpZ25lZE1vZHVsbywKKyAgICAgICAgdW5zaWduZWRNb2R1bG9aZXJv
OiB1bnNpZ25lZE1vZHVsb1plcm8sCisgICAgfTsKK30KKyovCisKK3ZhciBtb2R1bGUgPSBsb2Fk
V2ViQXNzZW1ibHkoIndhc20vYXJpdGhtZXRpYy1pbnQzMi53YXNtIik7CisKK3Nob3VsZEJlKG1v
ZHVsZS5hZGRTdWJ0cmFjdCgpLCA0Mik7CisKK3Nob3VsZEJlKG1vZHVsZS5hZGRPdmVyZmxvdygp
LCAtMjE0NzQ4MzY0OCk7CisKK3Nob3VsZEJlKG1vZHVsZS5kaXZpZGUoKSwgOCk7CisKK3Nob3Vs
ZFRocm93KCgpID0+IHsKKyAgICBtb2R1bGUuZGl2aWRlQnlaZXJvKCk7Cit9LCAiRXJyb3I6IERp
dmlzaW9uIGJ5IHplcm8gb3IgZGl2aXNpb24gb3ZlcmZsb3cuIik7CisKK3Nob3VsZFRocm93KCgp
ID0+IHsKKyAgICBtb2R1bGUuZGl2aWRlT3ZlcmZsb3coKTsKK30sICJFcnJvcjogRGl2aXNpb24g
YnkgemVybyBvciBkaXZpc2lvbiBvdmVyZmxvdy4iKTsKKworc2hvdWxkQmUobW9kdWxlLnVuc2ln
bmVkRGl2aWRlKCksIDIxNDc0ODM2NDcpOworCitzaG91bGRUaHJvdygoKSA9PiB7CisgICAgbW9k
dWxlLnVuc2lnbmVkRGl2aWRlQnlaZXJvKCk7Cit9LCAiRXJyb3I6IERpdmlzaW9uIGJ5IHplcm8g
b3IgZGl2aXNpb24gb3ZlcmZsb3cuIik7CisKK3Nob3VsZEJlKG1vZHVsZS5tb2R1bG8oKSwgMik7
CisKK3Nob3VsZEJlKG1vZHVsZS5tb2R1bG9OZWdhdGl2ZSgpLCAtMik7CisKK3Nob3VsZFRocm93
KCgpID0+IHsKKyAgICBtb2R1bGUubW9kdWxvWmVybygpOworfSwgIkVycm9yOiBEaXZpc2lvbiBi
eSB6ZXJvIG9yIGRpdmlzaW9uIG92ZXJmbG93LiIpOworCitzaG91bGRUaHJvdygoKSA9PiB7Cisg
ICAgbW9kdWxlLm1vZHVsb092ZXJmbG93KCk7Cit9LCAiRXJyb3I6IERpdmlzaW9uIGJ5IHplcm8g
b3IgZGl2aXNpb24gb3ZlcmZsb3cuIik7CisKK3Nob3VsZEJlKG1vZHVsZS51bnNpZ25lZE1vZHVs
bygpLCA2NzI5NSk7CisKK3Nob3VsZFRocm93KCgpID0+IHsKKyAgICBtb2R1bGUudW5zaWduZWRN
b2R1bG9aZXJvKCk7Cit9LCAiRXJyb3I6IERpdmlzaW9uIGJ5IHplcm8gb3IgZGl2aXNpb24gb3Zl
cmZsb3cuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3dhc20tYXJpdGhtZXRpYy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
d2FzbS1hcml0aG1ldGljLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTRjYjcx
NWM3YTFiNjJjNmYzMzQ5NGM1Mzc0NzJlMzcxYWVkY2RmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3Mvd2FzbS1hcml0aG1ldGljLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM1ICswLDAgQEAKLS8v
QCBza2lwCi0KLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAo
YWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6
ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBtZXNzYWdlKSB7
Ci0gICAgdmFyIGVycm9yID0gbnVsbDsKLSAgICB0cnkgewotICAgICAgICBmdW5jKCk7Ci0gICAg
fSBjYXRjaCAoZSkgewotICAgICAgICBlcnJvciA9IGU7Ci0gICAgfQotICAgIGlmICghZXJyb3Ip
Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigibm90IHRocm93bi4iKTsKLSAgICBpZiAoU3RyaW5n
KGVycm9yKSAhPT0gbWVzc2FnZSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgZXJyb3I6
ICIgKyBTdHJpbmcoZXJyb3IpKTsKLX0KLQotLyoKLXdhc20vYXJpdGhtZXRpYy53YXNtIGlzIGdl
bmVyYXRlZCBieSBwYWNrLWFzbWpzIDxodHRwczovL2dpdGh1Yi5jb20vV2ViQXNzZW1ibHkvcG9s
eWZpbGwtcHJvdG90eXBlLTE+IGZyb20gdGhlIGZvbGxvd2luZyBzY3JpcHQ6Ci0KLWZ1bmN0aW9u
IGFzbU1vZHVsZShnbG9iYWwsIGVudiwgYnVmZmVyKSB7Ci0gICAgInVzZSBhc20iOwotCi0gICAg
ZnVuY3Rpb24gYWRkU3VidHJhY3QoKSB7Ci0gICAgICAgIHJldHVybiAoKDEwICsgNDApIC0gOCkg
fCAwOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGFkZE92ZXJmbG93KCkgewotICAgICAgICByZXR1
cm4gKDIxNDc0ODM2NDcgKyAxKSB8IDA7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZGl2aWRlKCkg
ewotICAgICAgICByZXR1cm4gKDQyIC8gNSkgfCAwOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGRp
dmlkZUJ5WmVybygpIHsKLSAgICAgICAgcmV0dXJuICgxIC8gMCkgfCAwOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIGRpdmlkZU92ZXJmbG93KCkgewotICAgICAgICByZXR1cm4gKC0yMTQ3NDgzNjQ4
IC8gLTEpIHwgMDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB1bnNpZ25lZERpdmlkZSgpIHsKLSAg
ICAgICAgcmV0dXJuICgoLTEgPj4+IDApIC8gMikgfCAwOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHVuc2lnbmVkRGl2aWRlQnlaZXJvKCkgewotICAgICAgICByZXR1cm4gKCgtMSA+Pj4gMCkgLyAw
KSB8IDA7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbW9kdWxvKCkgewotICAgICAgICByZXR1cm4g
KDQyICUgNSkgfCAwOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG1vZHVsb05lZ2F0aXZlKCkgewot
ICAgICAgICByZXR1cm4gKC00MiAlIDUpIHwgMDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBtb2R1
bG9aZXJvKCkgewotICAgICAgICByZXR1cm4gKDEgJSAwKSB8IDA7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gbW9kdWxvT3ZlcmZsb3coKSB7Ci0gICAgICAgIHJldHVybiAoLTIxNDc0ODM2NDggJSAt
MSkgfCAwOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHVuc2lnbmVkTW9kdWxvKCkgewotICAgICAg
ICByZXR1cm4gKCgtMSA+Pj4gMCkgJSAxMDAwMDApIHwgMDsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biB1bnNpZ25lZE1vZHVsb1plcm8oKSB7Ci0gICAgICAgIHJldHVybiAoKC0xID4+PiAwKSAlIDAp
IHwgMDsKLSAgICB9Ci0KLSAgICByZXR1cm4gewotICAgICAgICBhZGRTdWJ0cmFjdDogYWRkU3Vi
dHJhY3QsCi0gICAgICAgIGFkZE92ZXJmbG93OiBhZGRPdmVyZmxvdywKLSAgICAgICAgZGl2aWRl
OiBkaXZpZGUsCi0gICAgICAgIGRpdmlkZUJ5WmVybzogZGl2aWRlQnlaZXJvLAotICAgICAgICBk
aXZpZGVPdmVyZmxvdzogZGl2aWRlT3ZlcmZsb3csCi0gICAgICAgIHVuc2lnbmVkRGl2aWRlOiB1
bnNpZ25lZERpdmlkZSwKLSAgICAgICAgdW5zaWduZWREaXZpZGVCeVplcm86IHVuc2lnbmVkRGl2
aWRlQnlaZXJvLAotICAgICAgICBtb2R1bG86IG1vZHVsbywKLSAgICAgICAgbW9kdWxvTmVnYXRp
dmU6IG1vZHVsb05lZ2F0aXZlLAotICAgICAgICBtb2R1bG9aZXJvOiBtb2R1bG9aZXJvLAotICAg
ICAgICBtb2R1bG9PdmVyZmxvdzogbW9kdWxvT3ZlcmZsb3csCi0gICAgICAgIHVuc2lnbmVkTW9k
dWxvOiB1bnNpZ25lZE1vZHVsbywKLSAgICAgICAgdW5zaWduZWRNb2R1bG9aZXJvOiB1bnNpZ25l
ZE1vZHVsb1plcm8sCi0gICAgfTsKLX0KLSovCi0KLXZhciBtb2R1bGUgPSBsb2FkV2ViQXNzZW1i
bHkoIndhc20vYXJpdGhtZXRpYy53YXNtIik7Ci0KLXNob3VsZEJlKG1vZHVsZS5hZGRTdWJ0cmFj
dCgpLCA0Mik7Ci0KLXNob3VsZEJlKG1vZHVsZS5hZGRPdmVyZmxvdygpLCAtMjE0NzQ4MzY0OCk7
Ci0KLXNob3VsZEJlKG1vZHVsZS5kaXZpZGUoKSwgOCk7Ci0KLXNob3VsZFRocm93KCgpID0+IHsK
LSAgICBtb2R1bGUuZGl2aWRlQnlaZXJvKCk7Ci19LCAiRXJyb3I6IERpdmlzaW9uIGJ5IHplcm8g
b3IgZGl2aXNpb24gb3ZlcmZsb3cuIik7Ci0KLXNob3VsZFRocm93KCgpID0+IHsKLSAgICBtb2R1
bGUuZGl2aWRlT3ZlcmZsb3coKTsKLX0sICJFcnJvcjogRGl2aXNpb24gYnkgemVybyBvciBkaXZp
c2lvbiBvdmVyZmxvdy4iKTsKLQotc2hvdWxkQmUobW9kdWxlLnVuc2lnbmVkRGl2aWRlKCksIDIx
NDc0ODM2NDcpOwotCi1zaG91bGRUaHJvdygoKSA9PiB7Ci0gICAgbW9kdWxlLnVuc2lnbmVkRGl2
aWRlQnlaZXJvKCk7Ci19LCAiRXJyb3I6IERpdmlzaW9uIGJ5IHplcm8gb3IgZGl2aXNpb24gb3Zl
cmZsb3cuIik7Ci0KLXNob3VsZEJlKG1vZHVsZS5tb2R1bG8oKSwgMik7Ci0KLXNob3VsZEJlKG1v
ZHVsZS5tb2R1bG9OZWdhdGl2ZSgpLCAtMik7Ci0KLXNob3VsZFRocm93KCgpID0+IHsKLSAgICBt
b2R1bGUubW9kdWxvWmVybygpOwotfSwgIkVycm9yOiBEaXZpc2lvbiBieSB6ZXJvIG9yIGRpdmlz
aW9uIG92ZXJmbG93LiIpOwotCi1zaG91bGRUaHJvdygoKSA9PiB7Ci0gICAgbW9kdWxlLm1vZHVs
b092ZXJmbG93KCk7Ci19LCAiRXJyb3I6IERpdmlzaW9uIGJ5IHplcm8gb3IgZGl2aXNpb24gb3Zl
cmZsb3cuIik7Ci0KLXNob3VsZEJlKG1vZHVsZS51bnNpZ25lZE1vZHVsbygpLCA2NzI5NSk7Ci0K
LXNob3VsZFRocm93KCgpID0+IHsKLSAgICBtb2R1bGUudW5zaWduZWRNb2R1bG9aZXJvKCk7Ci19
LCAiRXJyb3I6IERpdmlzaW9uIGJ5IHplcm8gb3IgZGl2aXNpb24gb3ZlcmZsb3cuIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20vYXJpdGhtZXRp
Yy1mbG9hdDY0Lndhc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20v
YXJpdGhtZXRpYy1mbG9hdDY0Lndhc20KaW5kZXggNDllMjA4MWUwMzE5MmY1YWM1ZDU2OGU4NzRh
YjYzZWM3MzgxMjcxMS4uNTc2NjA0MTM2NjQxMWQwYTY1ZjZhZDRhNTllNjg5NTAxMmU0M2EwZSAx
MDA2NDQKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDc3Mwp6Y21aYCNKNUI+SjVGTG1BSHo1ZkdM
TG1JPHhkMUJ+TD15cGBxSTByTnUoWjFseUl2cXJCcT14cVJHZmdDa157ZzIKej0lN0pEMnFgNU0h
bjVsUW59UjlFXldLfThYWnhJYl9TWD1vTk1IaSFZKEdDP3F6c31OTUhUfC16dGtlaGMwV245Cnor
UjV+dHN4emItI0gyeFBaIWxpQWshX0sxezx8NFJvZEJoXilAZ1BOKXMpcEI4IWhfNE1ibnl7SE1H
dz12TkkmUwp6X0w4QXhGcCFOKjBlVm5OcDxHK2Z8S05QQ3IhJWomcjU9QChaPnV6cXNlb3hnOD5H
LStrcmJ+IzQ7fmdyNUVTRUoKekRHcndQJXF2PjAjSzlfRld2JDEyOWpPZyttQSY3NnlCeCZEbzgz
MmN5LUM2Rz9KeyEjOTlFLX0waW1WfDM2KUI7CnoxYnluPGJFQDNvdkh8QHVhM282RCZkKnBeOWBP
OUtiWkpHeHB6VHxkKlIySyZuZiMySzQySHZWcipYXyYwVjVITAp6Yl9ERkdFbGw0TUZjek09Y2J0
fHpWZm02cHkpWTNtYEAtWFIxRExFWlprNTdrQiYoSlh0X0NVWilUYl54Nmhndk8Kek1ZVEgmKG1+
RWg+ZVFHY0F4cXRnUjtFPU1oJT41KV54UiopMSsobTtFKnYkK3NSZVZFczhOXjg2QzNoJWFqdzJf
CkZ7dWVBPSU5I0tGCgpsaXRlcmFsIDQ3CnBjbVhSPEVZQUpIIX5nPH01RExzPlV9I3xFWEZQaWIx
T3l4eThTX2VXbFR3UXE3eSNmXzNnYGQ7CgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy93YXNtL2FyaXRobWV0aWMtaW50MzIud2FzbSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWludDMyLndhc20KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjgzN2Y5ZTUxMjhhYTk1MGFhOGRlZmUzZjA2NzBiN2I4N2RjNGQzYQpHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMzM0CnpjbVhSPEVZNitCJUR9K1AhMDtha18jMSRMTHlNNkM0dFVgI0Zy
JEh5VXRWcSVxczlzI0x5aSVvZz8lQkFzbzFtPgp6TEByemFBeyFma3EqQjhvRmJOVi0yRm9mbFVJ
Vzx4UW03MThzMD4hOSghalcmbWtsVlcoeSlNJEghJnE4eEhQR3gKekNeNU4mZmRSPHpGSDA+LSVn
SFppVWApdkAlUz1nU1YxbSQybH5KaWhgMyVldTkkWGJtWDxsKD1kUn1VWjNxJjw1CnhEaiV3Z0Vq
S0A8RyQpXmQ5WVh1MXJZRHdVbVpkVXFLPUAjaklVI0pnJHlfaiNkPzkrZFFUYnAhSk9JUDdZIzBD
bAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy93YXNtL2FyaXRobWV0aWMud2FzbSBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLndhc20KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGI4MzdmOWU1MTI4YWE5NTBhYThkZWZlM2YwNjcwYjdiODdkYzRkM2EuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMzM0CnpjbVhSPEVZNitCJUR9K1AhMDtha18j
MSRMTHlNNkM0dFVgI0ZyJEh5VXRWcSVxczlzI0x5aSVvZz8lQkFzbzFtPgp6TEByemFBeyFma3Eq
QjhvRmJOVi0yRm9mbFVJVzx4UW03MThzMD4hOSghalcmbWtsVlcoeSlNJEghJnE4eEhQR3gKekNe
NU4mZmRSPHpGSDA+LSVnSFppVWApdkAlUz1nU1YxbSQybH5KaWhgMyVldTkkWGJtWDxsKD1kUn1V
WjNxJjw1CnhEaiV3Z0VqS0A8RyQpXmQ5WVh1MXJZRHdVbVpkVXFLPUAjaklVI0pnJHlfaiNkPzkr
ZFFUYnAhSk9JUDdZIzBDbAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dBU01GdW5jdGlvbkNvbXBpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNN
RnVuY3Rpb25Db21waWxlci5oCmluZGV4IDc3MTIyNjYxMzdiNWM5MmQ2ZTZhZTJmMjZiMmVlN2Ey
OTJmMTI3YzkuLjc3YTA2ZDkzYTNiYzU4MmU3NmVkOTI1ZjQ1ZjdkZjVmNDRhMjJkZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaApA
QCAtNTksNiArNTksMTcgQEAgc3RhdGljIHVpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VW5zaWduZWRNb2QodWludDMyX3QgbGVmdCwgdWludDMyX3QgcmlnaHQKIH0KICNlbmRpZgogCisv
LyBPbiBXaW5kb3dzIHdlIG5lZWQgdG8gd3JhcCBmbW9kOyBvbiBvdGhlciBwbGF0Zm9ybXMgd2Ug
Y2FuIGNhbGwgaXQgZGlyZWN0bHkuCisvLyBPbiBBUk12NyB3ZSBhc3NlcnQgdGhhdCBhbGwgZnVu
Y3Rpb24gcG9pbnRlcnMgaGF2ZSB0byBsb3cgYml0IHNldCAocG9pbnQgdG8gdGh1bWIgY29kZSku
CisjaWYgQ0FMTElOR19DT05WRU5USU9OX0lTX1NURENBTEwgfHwgQ1BVKEFSTV9USFVNQjIpCitz
dGF0aWMgZG91YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRm1vZChkb3VibGUgeCwgZG91Ymxl
IHkpCit7CisgICAgcmV0dXJuIGZtb2QoeCwgeSk7Cit9CisjZWxzZQorI2RlZmluZSBvcGVyYXRp
b25GbW9kIGZtb2QKKyNlbmRpZgorCiBjbGFzcyBXQVNNRnVuY3Rpb25Db21waWxlciA6IHByaXZh
dGUgQ0NhbGxIZWxwZXJzIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIGludCBFeHByZXNzaW9uOwpA
QCAtMjYzLDYgKzI3NCw1NiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAg
fQogCisgICAgaW50IGJ1aWxkVW5hcnlGNjQoaW50LCBXQVNNT3BFeHByZXNzaW9uRjY0IG9wKQor
ICAgIHsKKyAgICAgICAgbG9hZERvdWJsZSh0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9w
IC0gMSksIEZQUkluZm86OmZwUmVnVDEpOworICAgICAgICBzd2l0Y2ggKG9wKSB7CisgICAgICAg
IGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TmVnYXRlOgorICAgICAgICAgICAgbmVnYXRlRG91
YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QWJzOgorICAgICAgICAgICAg
YWJzRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoKKyAgICAg
ICAgICAgIGFkanVzdFN0YWNrUG9pbnRlckFuZENhbGxPcGVyYXRpb24oY2VpbCwgRlBSSW5mbzo6
ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGbG9vcjoKKyAgICAgICAgICAgIGFkanVzdFN0YWNr
UG9pbnRlckFuZENhbGxPcGVyYXRpb24oZmxvb3IsIEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86
OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6U3FydDoKKyAgICAgICAgICAgIHNxcnREb3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwg
RlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpDb3M6CisgICAgICAgICAgICBhZGp1c3RTdGFja1BvaW50ZXJBbmRD
YWxsT3BlcmF0aW9uKGNvcywgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTaW46
CisgICAgICAgICAgICBhZGp1c3RTdGFja1BvaW50ZXJBbmRDYWxsT3BlcmF0aW9uKHNpbiwgRlBS
SW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpUYW46CisgICAgICAgICAgICBhZGp1c3RT
dGFja1BvaW50ZXJBbmRDYWxsT3BlcmF0aW9uKHRhbiwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5m
bzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpBQ29zOgorICAgICAgICAgICAgYWRqdXN0U3RhY2tQb2ludGVyQW5kQ2FsbE9w
ZXJhdGlvbihhY29zLCBGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFTaW46Cisg
ICAgICAgICAgICBhZGp1c3RTdGFja1BvaW50ZXJBbmRDYWxsT3BlcmF0aW9uKGFzaW4sIEZQUklu
Zm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjoKKyAgICAgICAgICAgIGFkanVzdFN0
YWNrUG9pbnRlckFuZENhbGxPcGVyYXRpb24oYXRhbiwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5m
bzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpFeHA6CisgICAgICAgICAgICBhZGp1c3RTdGFja1BvaW50ZXJBbmRDYWxsT3Bl
cmF0aW9uKGV4cCwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpMbjoKKyAgICAg
ICAgICAgIGFkanVzdFN0YWNrUG9pbnRlckFuZENhbGxPcGVyYXRpb24obG9nLCBGUFJJbmZvOjpm
cFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAg
ICAgICAgc3RvcmVEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgdGVtcG9yYXJ5QWRkcmVzcyhtX3Rl
bXBTdGFja1RvcCAtIDEpKTsKKyAgICAgICAgcmV0dXJuIFVOVVNFRDsKKyAgICB9CisKICAgICBp
bnQgYnVpbGRCaW5hcnlJMzIoaW50LCBpbnQsIFdBU01PcEV4cHJlc3Npb25JMzIgb3ApCiAgICAg
ewogICAgICAgICBsb2FkMzIodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDIpLCBH
UFJJbmZvOjpyZWdUMCk7CkBAIC0zMzAsNiArMzkxLDQwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIFVOVVNFRDsKICAgICB9CiAKKyAgICBpbnQgYnVpbGRCaW5hcnlGNjQoaW50LCBpbnQsIFdB
U01PcEV4cHJlc3Npb25GNjQgb3ApCisgICAgeworICAgICAgICBsb2FkRG91YmxlKHRlbXBvcmFy
eUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAyKSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAg
IGxvYWREb3VibGUodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDEpLCBGUFJJbmZv
OjpmcFJlZ1QxKTsKKyAgICAgICAgc3dpdGNoIChvcCkgeworICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OkFkZDoKKyAgICAgICAgICAgIGFkZERvdWJsZShGUFJJbmZvOjpmcFJlZ1Qx
LCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6OlN1YjoKKyAgICAgICAgICAgIHN1YkRvdWJsZShGUFJJbmZvOjpm
cFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok11bDoKKyAgICAgICAgICAgIG11bERvdWJsZShGUFJJ
bmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkRpdjoKKyAgICAgICAgICAgIGRpdkRvdWJs
ZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok1vZDoKKyAgICAgICAgICAgIGFk
anVzdFN0YWNrUG9pbnRlckFuZENhbGxPcGVyYXRpb24ob3BlcmF0aW9uRm1vZCwgRlBSSW5mbzo6
ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBVGFuMjoKKyAgICAg
ICAgICAgIGFkanVzdFN0YWNrUG9pbnRlckFuZENhbGxPcGVyYXRpb24oYXRhbjIsIEZQUkluZm86
OmZwUmVnVDAsIEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6UG93OgorICAgICAg
ICAgICAgYWRqdXN0U3RhY2tQb2ludGVyQW5kQ2FsbE9wZXJhdGlvbihwb3csIEZQUkluZm86OmZw
UmVnVDAsIEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgfQorICAgICAgICBtX3RlbXBTdGFja1RvcC0tOworICAgICAgICBzdG9yZURv
dWJsZShGUFJJbmZvOjpmcFJlZ1QwLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0g
MSkpOworICAgICAgICByZXR1cm4gVU5VU0VEOworICAgIH0KKwogICAgIGludCBidWlsZFJlbGF0
aW9uYWxJMzIoaW50LCBpbnQsIFdBU01PcEV4cHJlc3Npb25JMzIgb3ApCiAgICAgewogICAgICAg
ICBsb2FkMzIodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDIpLCBHUFJJbmZvOjpy
ZWdUMCk7CkBAIC00MDUsMTggKzUwMCw2MyBAQCBwcml2YXRlOgogICAgICAgICBtX2V4Y2VwdGlv
bkNoZWNrcy5hcHBlbmQoZW1pdEV4Y2VwdGlvbkNoZWNrKCkpOwogICAgIH0KIAorICAgIHZvaWQg
YXBwZW5kQ2FsbFNldFJlc3VsdChjb25zdCBGdW5jdGlvblB0ciYgZnVuY3Rpb24sIEdQUlJlZyBy
ZXN1bHQpCisgICAgeworICAgICAgICBhcHBlbmRDYWxsKGZ1bmN0aW9uKTsKKyAgICAgICAgbW92
ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgcmVzdWx0KTsKKyAgICB9CisKKyNpZiBDUFUoWDg2
KQorICAgIHZvaWQgYXBwZW5kQ2FsbFNldFJlc3VsdChjb25zdCBGdW5jdGlvblB0ciYgZnVuY3Rp
b24sIEZQUlJlZyByZXN1bHQpCisgICAgeworICAgICAgICBhcHBlbmRDYWxsKGZ1bmN0aW9uKTsK
KyAgICAgICAgbV9hc3NlbWJsZXIuZnN0cGwoMCwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAg
ICAgICBsb2FkRG91YmxlKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCByZXN1bHQpOworICAgIH0KKyNl
bGlmIENQVShBUk0pICYmICFDUFUoQVJNX0hBUkRGUCkKKyAgICB2b2lkIGFwcGVuZENhbGxTZXRS
ZXN1bHQoY29uc3QgRnVuY3Rpb25QdHImIGZ1bmN0aW9uLCBGUFJSZWcgcmVzdWx0KQorICAgIHsK
KyAgICAgICAgYXBwZW5kQ2FsbChmdW5jdGlvbik7CisgICAgICAgIG1fYXNzZW1ibGVyLnZtb3Yo
cmVzdWx0LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIy
KTsKKyAgICB9CisjZWxzZSAvLyBDUFUoWDg2XzY0KSB8fCAoQ1BVKEFSTSkgJiYgQ1BVKEFSTV9I
QVJERlApKSB8fCBDUFUoQVJNNjQpIHx8IENQVShNSVBTKSB8fCBDUFUoU0g0KQorICAgIHZvaWQg
YXBwZW5kQ2FsbFNldFJlc3VsdChjb25zdCBGdW5jdGlvblB0ciYgZnVuY3Rpb24sIEZQUlJlZyBy
ZXN1bHQpCisgICAgeworICAgICAgICBhcHBlbmRDYWxsKGZ1bmN0aW9uKTsKKyAgICAgICAgbW92
ZURvdWJsZShGUFJJbmZvOjpyZXR1cm5WYWx1ZUZQUiwgcmVzdWx0KTsKKyAgICB9CisjZW5kaWYK
KwogICAgIHZvaWQgY2FsbE9wZXJhdGlvbihpbnQzMl90IEpJVF9PUEVSQVRJT04gKCpvcGVyYXRp
b24pKGludDMyX3QsIGludDMyX3QpLCBHUFJSZWcgc3JjMSwgR1BSUmVnIHNyYzIsIEdQUlJlZyBk
c3QpCiAgICAgewogICAgICAgICBzZXR1cEFyZ3VtZW50cyhzcmMxLCBzcmMyKTsKLSAgICAgICAg
YXBwZW5kQ2FsbChvcGVyYXRpb24pOwotICAgICAgICBtb3ZlKEdQUkluZm86OnJldHVyblZhbHVl
R1BSLCBkc3QpOworICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsK
ICAgICB9CiAKICAgICB2b2lkIGNhbGxPcGVyYXRpb24odWludDMyX3QgSklUX09QRVJBVElPTiAo
Km9wZXJhdGlvbikodWludDMyX3QsIHVpbnQzMl90KSwgR1BSUmVnIHNyYzEsIEdQUlJlZyBzcmMy
LCBHUFJSZWcgZHN0KQogICAgIHsKICAgICAgICAgc2V0dXBBcmd1bWVudHMoc3JjMSwgc3JjMik7
Ci0gICAgICAgIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKLSAgICAgICAgbW92ZShHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUiwgZHN0KTsKKyAgICAgICAgYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRp
b24sIGRzdCk7CisgICAgfQorCisgICAgdm9pZCBhZGp1c3RTdGFja1BvaW50ZXJBbmRDYWxsT3Bl
cmF0aW9uKERfSklUT3BlcmF0aW9uX0Qgb3BlcmF0aW9uLCBGUFJlZ2lzdGVySUQgc3JjLCBGUFJl
Z2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsKQorICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRG
b3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIHNldHVwQXJn
dW1lbnRzKHNyYyk7CisgICAgICAgIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCBkc3Qp
OworICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAg
ICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3Rh
Y2tQb2ludGVyUmVnaXN0ZXIpOworICAgIH0KKworICAgIHZvaWQgYWRqdXN0U3RhY2tQb2ludGVy
QW5kQ2FsbE9wZXJhdGlvbihEX0pJVE9wZXJhdGlvbl9ERCBvcGVyYXRpb24sIEZQUmVnaXN0ZXJJ
RCBzcmMxLCBGUFJlZ2lzdGVySUQgc3JjMiwgRlBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAg
ICAgIGlmIChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGFkZFB0
cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOworICAgICAgICBzZXR1cEFyZ3VtZW50cyhzcmMxLCBzcmMyKTsKKyAgICAg
ICAgYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIGRzdCk7CisgICAgICAgIGlmIChtYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1t
MzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CiAgICAgfQogCiAgICAgdW5zaWduZWQgbV9zdGFja0hlaWdodDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwCmluZGV4IGFiNzRiYzE5MjM3
MGY3YjNmZGYyN2YwNmNlMTJkM2ZhYTY4MDM3NmYuLmFlYTI3ZTU2YzJhNjhkOWE1ZmU3NGVjZTcx
MjU1NWYwYTYyZDRkYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01GdW5jdGlvblBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TUZ1bmN0aW9uUGFyc2VyLmNwcApAQCAtNjA2LDYgKzYwNiwyOCBAQCBDb250ZXh0RXhwcmVzc2lv
biBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0
KQogICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW1tZWRpYXRlRXhwcmVzc2lvbkY2NChjb250ZXh0
KTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpHZXRMb2NhbDoKICAgICAgICAg
ICAgIHJldHVybiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChjb250ZXh0KTsKKyAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpOZWdhdGU6CisgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkY2NDo6QWJzOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNlaWw6
CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Rmxvb3I6CisgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6U3FydDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpDb3M6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2luOgorICAgICAg
ICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlRhbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpBQ29zOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFTaW46
CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjoKKyAgICAgICAgY2FzZSBX
QVNNT3BFeHByZXNzaW9uRjY0OjpFeHA6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6TG46CisgICAgICAgICAgICByZXR1cm4gcGFyc2VVbmFyeUV4cHJlc3Npb25GNjQoY29udGV4
dCwgb3ApOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFkZDoKKyAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdWI6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6TXVsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkRpdjoKKyAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNb2Q6CisgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6QVRhbjI6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6
UG93OgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlQmluYXJ5RXhwcmVzc2lvbkY2NChjb250ZXh0
LCBvcCk7CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6R2V0R2xvYmFsOgogICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlNldExvY2FsOgogICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6OlNldEdsb2JhbDoKQEAgLTYyMSwyOCArNjQzLDggQEAgQ29udGV4
dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25GNjQoQ29udGV4
dCYgY29udGV4dCkKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGcm9tUzMyOgog
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkZyb21VMzI6CiAgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6RnJvbUYzMjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0OjpOZWdhdGU6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QWRkOgot
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN1YjoKLSAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpNdWw6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6
RGl2OgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok1vZDoKICAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNaW46CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkY2NDo6TWF4OgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFiczoKLSAgICAg
ICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDZWlsOgotICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OkZsb29yOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlNx
cnQ6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29zOgotICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OlNpbjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpUYW46Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QUNvczoKLSAgICAg
ICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBU2luOgotICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OkFUYW46Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRh
bjI6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RXhwOgotICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OkxuOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
NjQ6OlBvdzoKICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhlc2UgaW5zdHJ1Y3Rp
b25zLgogICAgICAgICAgICAgRkFJTF9XSVRIX01FU1NBR0UoIlVuc3VwcG9ydGVkIGluc3RydWN0
aW9uLiIpOwogICAgICAgICBkZWZhdWx0OgpAQCAtNzAwLDYgKzcwMiwyNCBAQCBDb250ZXh0RXhw
cmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlR2V0TG9jYWxFeHByZXNzaW9uRjY0KENv
bnRleHQmIGNvbnRleAogICAgIHJldHVybiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChjb250
ZXh0LCBsb2NhbEluZGV4KTsKIH0KIAordGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+CitDb250ZXh0
RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlVW5hcnlFeHByZXNzaW9uRjY0KENv
bnRleHQmIGNvbnRleHQsIFdBU01PcEV4cHJlc3Npb25GNjQgb3ApCit7CisgICAgQ29udGV4dEV4
cHJlc3Npb24gZXhwcmVzc2lvbiA9IHBhcnNlRXhwcmVzc2lvbkY2NChjb250ZXh0KTsKKyAgICBQ
Uk9QQUdBVEVfRVJST1IoKTsKKyAgICByZXR1cm4gY29udGV4dC5idWlsZFVuYXJ5RjY0KGV4cHJl
c3Npb24sIG9wKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+CitDb250ZXh0RXhwcmVz
c2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQmluYXJ5RXhwcmVzc2lvbkY2NChDb250ZXh0
JiBjb250ZXh0LCBXQVNNT3BFeHByZXNzaW9uRjY0IG9wKQoreworICAgIENvbnRleHRFeHByZXNz
aW9uIGxlZnQgPSBwYXJzZUV4cHJlc3Npb25GNjQoY29udGV4dCk7CisgICAgUFJPUEFHQVRFX0VS
Uk9SKCk7CisgICAgQ29udGV4dEV4cHJlc3Npb24gcmlnaHQgPSBwYXJzZUV4cHJlc3Npb25GNjQo
Y29udGV4dCk7CisgICAgUFJPUEFHQVRFX0VSUk9SKCk7CisgICAgcmV0dXJuIGNvbnRleHQuYnVp
bGRCaW5hcnlGNjQobGVmdCwgcmlnaHQsIG9wKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
ICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCmluZGV4IDEzNjE2YTc3ZTU5MzgwOWZhZWVjMTFj
OTg5MDJhNWI2MzUyZjJiNTEuLjNkMjI0OWQ2MmUzYWExM2M4OGE3ZjJhMTdjNDAxMjkyZGJlNjMx
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBh
cnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNl
ci5oCkBAIC05Myw2ICs5Myw4IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRl
eHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlSW1tZWRpYXRlRXhwcmVzc2lvbkY2NChDb250ZXh0
Jik7CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNl
R2V0TG9jYWxFeHByZXNzaW9uRjY0KENvbnRleHQmLCB1aW50MzJfdCBsb2NhbEluZGV4KTsKICAg
ICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VHZXRMb2Nh
bEV4cHJlc3Npb25GNjQoQ29udGV4dCYpOworICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBD
b250ZXh0RXhwcmVzc2lvbiBwYXJzZVVuYXJ5RXhwcmVzc2lvbkY2NChDb250ZXh0JiwgV0FTTU9w
RXhwcmVzc2lvbkY2NCk7CisgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHBy
ZXNzaW9uIHBhcnNlQmluYXJ5RXhwcmVzc2lvbkY2NChDb250ZXh0JiwgV0FTTU9wRXhwcmVzc2lv
bkY2NCk7CiAKICAgICBKU1dBU01Nb2R1bGUqIG1fbW9kdWxlOwogICAgIFdBU01SZWFkZXIgbV9y
ZWFkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rp
b25TeW50YXhDaGVja2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rp
b25TeW50YXhDaGVja2VyLmgKaW5kZXggMThlZTIxZThjNzk5ZWM5YzIyZTRiNmU4ODdlMWE4M2Ri
ZWVjZmU4Ni4uZjY5NmRmMjFjNWU2YzYxZmEwY2E2NjVkMTE2MzkyNmZhNWFhNjE2MSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5bnRheENo
ZWNrZXIuaApAQCAtNzksMTIgKzc5LDIzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFVOVVNF
RDsKICAgICB9CiAKKyAgICBpbnQgYnVpbGRVbmFyeUY2NChpbnQsIFdBU01PcEV4cHJlc3Npb25G
NjQpCisgICAgeworICAgICAgICByZXR1cm4gVU5VU0VEOworICAgIH0KKwogICAgIGludCBidWls
ZEJpbmFyeUkzMihpbnQsIGludCwgV0FTTU9wRXhwcmVzc2lvbkkzMikKICAgICB7CiAgICAgICAg
IG1fdGVtcFN0YWNrVG9wLS07CiAgICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAgfQogCisgICAg
aW50IGJ1aWxkQmluYXJ5RjY0KGludCwgaW50LCBXQVNNT3BFeHByZXNzaW9uRjY0KQorICAgIHsK
KyAgICAgICAgbV90ZW1wU3RhY2tUb3AtLTsKKyAgICAgICAgcmV0dXJuIFVOVVNFRDsKKyAgICB9
CisKICAgICBpbnQgYnVpbGRSZWxhdGlvbmFsSTMyKGludCwgaW50LCBXQVNNT3BFeHByZXNzaW9u
STMyKQogICAgIHsKICAgICAgICAgbV90ZW1wU3RhY2tUb3AtLTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260828</attachid>
            <date>2015-09-08 20:47:28 -0700</date>
            <delta_ts>2015-09-09 02:34:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148945-20150908204722.patch</filename>
            <type>text/plain</type>
            <size>29775</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MjI1NWVmYTc0YTViYTY5YzVlOTUzNTZiZTc3Mzk2OWFiMDcyMWU0Li4xZDI3ZWMwMzEwYTc3Mzk3
YTYwYWVhMTM1NmQ4MDljN2FiMmExOTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxNS0wOS0wOCAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIGFyaXRobWV0aWMgaW5zdHJ1Y3Rpb25z
IGZvciBkb3VibGVzIGluIFdlYkFzc2VtYmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGFyaXRobWV0aWMg
aW5zdHJ1Y3Rpb25zIGZvciBkb3VibGVzIChmbG9hdDY0KQorICAgICAgICBpbiBXZWJBc3NlbWJs
eS4gSXQgYWxzbyBjaGVja3MgdGhlIHR5cGVzIG9mIGZ1bmN0aW9uIGFyZ3VtZW50cyBhbmQKKyAg
ICAgICAgY29udmVydCB0aGVtIHRvIHRoZSBzcGVjaWZpZWQgdHlwZXMuIFRoaXMgaXMgbmVjZXNz
YXJ5IGJlY2F1c2UgZXZlbgorICAgICAgICB0aG91Z2ggdGhlIHVzZXIgcGFzc2VzLCBzYXksICIx
LjAiIHRvIGEgZnVuY3Rpb24gdGhhdCBleHBlY3RzIGEgZG91YmxlLAorICAgICAgICB3ZSBzdGls
bCB1c2UgYW4gaW50ZWdlciB0byByZXByZXNlbnQgdGhhdCBudW1iZXIgaW50ZXJuYWxseS4gQW5v
dGhlcgorICAgICAgICByZWFzb24gaXMgdGhhdCB3ZSBzaG91bGQgZm9sbG93IGFzbS5qcydzIGJl
aGF2aW9yLCBiZWNhdXNlIG9uZSBvZiBvdXIKKyAgICAgICAgZ29hbHMgaXMgdG8gY29tcGFyZSBX
ZWJBc3NlbWJseSBhcHBzIGFnYWluc3QgYXNtLmpzIGFwcHMuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBhbHNvIGFkZHMgcGFkZGluZyBvZiBzaXplIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
IHRvIHRoZQorICAgICAgICBjYWxsIGZyYW1lLCBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gYWRq
dXN0IHRoZSBzdGFjayBwb2ludGVyIGV2ZXJ5IHRpbWUKKyAgICAgICAgd2UgbWFrZSBhIHNsb3cg
cGF0aCBjYWxsLiBUaGlzIGNoYW5nZXMgdGhlIG1lYW5pbmcgb2Ygc3RhY2tIZWlnaHQgZnJvbQor
ICAgICAgICAidGhlIG51bWJlciBvZiBzdGFjayBzbG90cyBpbiB0aGUgY2FsbCBmcmFtZSIgdG8g
InRoZSBudW1iZXIgb2YgYnl0ZXMgaW4KKyAgICAgICAgdGhlIGNhbGwgZnJhbWUuIiBJIHdpbGwg
cmVuYW1lIGl0IHRvIHN0YWNrU2l6ZSBpbiBhIHNlcGFyYXRlIHBhdGNoLgorCisgICAgICAgICog
aml0L0pJVE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvd2FzbS1hcml0aG1l
dGljLWZsb2F0NjQuanM6CisgICAgICAgICh0d28udmFsdWVPZik6CisgICAgICAgICogdGVzdHMv
c3RyZXNzL3dhc20vYXJpdGhtZXRpYy1mbG9hdDY0Lndhc206CisgICAgICAgICogd2FzbS9XQVNN
RnVuY3Rpb25Db21waWxlci5oOgorICAgICAgICAoSlNDOjpvcGVyYXRpb25Db252ZXJ0SlNWYWx1
ZVRvSW50MzIpOgorICAgICAgICAoSlNDOjpvcGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRvRG91Ymxl
KToKKyAgICAgICAgKEpTQzo6b3BlcmF0aW9uRm1vZCk6CisgICAgICAgIChKU0M6OldBU01GdW5j
dGlvbkNvbXBpbGVyOjpzdGFydEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9u
Q29tcGlsZXI6OmJ1aWxkVW5hcnlGNjQpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21w
aWxlcjo6YnVpbGRCaW5hcnlGNjQpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxl
cjo6dGVtcG9yYXJ5QWRkcmVzcyk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVy
OjphcHBlbmRDYWxsU2V0UmVzdWx0KToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGls
ZXI6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6
bG9hZFZhbHVlQW5kQ29udmVydFRvSW50MzIpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25D
b21waWxlcjo6bG9hZFZhbHVlQW5kQ29udmVydFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6V0FT
TUZ1bmN0aW9uQ29tcGlsZXI6OmVuZEZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmJ1aWxkQmluYXJ5STMyKTogRGVsZXRlZC4KKyAgICAgICAg
KiB3YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlv
blBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjY0KToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9u
UGFyc2VyOjpwYXJzZVVuYXJ5RXhwcmVzc2lvbkY2NCk6CisgICAgICAgIChKU0M6OldBU01GdW5j
dGlvblBhcnNlcjo6cGFyc2VCaW5hcnlFeHByZXNzaW9uRjY0KToKKyAgICAgICAgKiB3YXNtL1dB
U01GdW5jdGlvblBhcnNlci5oOgorICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9uU3ludGF4Q2hl
Y2tlci5oOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyOjpidWlsZFVu
YXJ5RjY0KToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlcjo6YnVpbGRC
aW5hcnlGNjQpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyOjpzdGFj
a0hlaWdodCk6CisKIDIwMTUtMDktMDggIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIEZpeGVkIGEgYmFkIGNvbW1lbnQgcjE4OTUxNy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggNjU4NWYwNDBkMGY1NTM2YTE2ZDYxY2FhNWY4
MDc2ZWUxNmViYjkyMC4uZDcwOGJiYTE0OGEyNTA3Yzc5NjIxYjQzN2VmYTFjZWIyNWRmZDU5NyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKQEAgLTE3Myw2ICsx
NzMsNyBAQCB0eXBlZGVmIGludDMyX3QgSklUX09QRVJBVElPTiAoKlpfSklUT3BlcmF0aW9uX0Up
KEV4ZWNTdGF0ZSopOwogdHlwZWRlZiBpbnQzMl90IEpJVF9PUEVSQVRJT04gKCpaX0pJVE9wZXJh
dGlvbl9FQykoRXhlY1N0YXRlKiwgSlNDZWxsKik7CiB0eXBlZGVmIGludDMyX3QgSklUX09QRVJB
VElPTiAoKlpfSklUT3BlcmF0aW9uX0VHQykoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBK
U0NlbGwqKTsKIHR5cGVkZWYgaW50MzJfdCBKSVRfT1BFUkFUSU9OICgqWl9KSVRPcGVyYXRpb25f
RVNKc3MpKEV4ZWNTdGF0ZSosIHNpemVfdCwgSlNTdHJpbmcqKTsKK3R5cGVkZWYgaW50MzJfdCBK
SVRfT1BFUkFUSU9OICgqWl9KSVRPcGVyYXRpb25fRUopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlKTsKIHR5cGVkZWYgaW50MzJfdCBKSVRfT1BFUkFUSU9OICgqWl9KSVRPcGVyYXRpb25fRUpa
KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCk7CiB0eXBlZGVmIGludDMyX3Qg
SklUX09QRVJBVElPTiAoKlpfSklUT3BlcmF0aW9uX0VKWlopKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsKIHR5cGVkZWYgc2l6ZV90IEpJVF9PUEVSQVRJT04g
KCpTX0pJVE9wZXJhdGlvbl9FQ0MpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0
aWMtZmxvYXQ2NC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS1h
cml0aG1ldGljLWZsb2F0NjQuanMKaW5kZXggOGViNWU5ZjA2MTY5NTgwMTk3NWMzZjBiYTExMzc1
ZWVkNWQ5MjE0Mi4uZTE4ZDZiMWFmZjFmMjk0NTQxMTlmZmExMTA2MjMxYzY0NTM5NmFhZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0
aWMtZmxvYXQ2NC5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dh
c20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzCkBAIC0xMSwxMiArMTEsMTU0IEBAIHdhc20vYXJpdGht
ZXRpYy1mbG9hdDY0Lndhc20gaXMgZ2VuZXJhdGVkIGJ5IHBhY2stYXNtanMgPGh0dHBzOi8vZ2l0
aHViLmNvbS9XZWJBCiBmdW5jdGlvbiBhc21Nb2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewog
ICAgICJ1c2UgYXNtIjsKIAorICAgIHZhciBhYnMgPSBnbG9iYWwuTWF0aC5hYnM7CisgICAgdmFy
IGNlaWwgPSBnbG9iYWwuTWF0aC5jZWlsOworICAgIHZhciBmbG9vciA9IGdsb2JhbC5NYXRoLmZs
b29yOworICAgIHZhciBzcXJ0ID0gZ2xvYmFsLk1hdGguc3FydDsKKyAgICB2YXIgY29zID0gZ2xv
YmFsLk1hdGguY29zOworICAgIHZhciBzaW4gPSBnbG9iYWwuTWF0aC5zaW47CisgICAgdmFyIHRh
biA9IGdsb2JhbC5NYXRoLnRhbjsKKyAgICB2YXIgYWNvcyA9IGdsb2JhbC5NYXRoLmFjb3M7Cisg
ICAgdmFyIGFzaW4gPSBnbG9iYWwuTWF0aC5hc2luOworICAgIHZhciBhdGFuID0gZ2xvYmFsLk1h
dGguYXRhbjsKKyAgICB2YXIgYXRhbjIgPSBnbG9iYWwuTWF0aC5hdGFuMjsKKyAgICB2YXIgZXhw
ID0gZ2xvYmFsLk1hdGguZXhwOworICAgIHZhciBsb2cgPSBnbG9iYWwuTWF0aC5sb2c7CisgICAg
dmFyIHBvdyA9IGdsb2JhbC5NYXRoLnBvdzsKKwogICAgIGZ1bmN0aW9uIG51bWJlcigpIHsKICAg
ICAgICAgcmV0dXJuIDQuMjsKICAgICB9CiAKKyAgICBmdW5jdGlvbiBuZWdhdGUoeCkgeworICAg
ICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiAteDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBh
ZGQoeCwgeSkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHkgPSAreTsKKyAgICAgICAgcmV0
dXJuIHggKyB5OworICAgIH0KKworICAgIGZ1bmN0aW9uIHN1YnRyYWN0KHgsIHkpIHsKKyAgICAg
ICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAgIHJldHVybiB4IC0geTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBtdWx0aXBseSh4LCB5KSB7CisgICAgICAgIHggPSAreDsKKyAgICAg
ICAgeSA9ICt5OworICAgICAgICByZXR1cm4geCAqIHk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
ZGl2aWRlKHgsIHkpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAg
IHJldHVybiB4IC8geTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBtb2R1bG8oeCwgeSkgeworICAg
ICAgICB4ID0gK3g7CisgICAgICAgIHkgPSAreTsKKyAgICAgICAgcmV0dXJuIHggJSB5OworICAg
IH0KKworICAgIGZ1bmN0aW9uIGFic29sdXRlKHgpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAg
ICByZXR1cm4gYWJzKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNlaWxOdW1iZXIoeCkgewor
ICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBjZWlsKHgpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIGZsb29yTnVtYmVyKHgpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4g
Zmxvb3IoeCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3F1YXJlUm9vdCh4KSB7CisgICAgICAg
IHggPSAreDsKKyAgICAgICAgcmV0dXJuIHNxcnQoeCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
Y29zaW5lKHgpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gY29zKHgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHNpbmUoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJl
dHVybiBzaW4oeCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGFuZ2VudCh4KSB7CisgICAgICAg
IHggPSAreDsKKyAgICAgICAgcmV0dXJuIHRhbih4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBh
cmNjb3NpbmUoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBhY29zKHgpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGFyY3NpbmUoeCkgeworICAgICAgICB4ID0gK3g7CisgICAg
ICAgIHJldHVybiBhc2luKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFyY3RhbmdlbnQoeCkg
eworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBhdGFuKHgpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGFyY3RhbmdlbnQyKHgsIHkpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICB5
ID0gK3k7CisgICAgICAgIHJldHVybiBhdGFuMih4LCB5KTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBleHBvbmVudGlhbCh4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIGV4cCh4
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2dhcml0aG0oeCkgeworICAgICAgICB4ID0gK3g7
CisgICAgICAgIHJldHVybiBsb2coeCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcG93ZXIoeCwg
eSkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHkgPSAreTsKKyAgICAgICAgcmV0dXJuIHBv
dyh4LCB5KTsKKyAgICB9CisKICAgICByZXR1cm4gewogICAgICAgICBudW1iZXI6IG51bWJlciwK
KyAgICAgICAgbmVnYXRlOiBuZWdhdGUsCisgICAgICAgIGFkZDogYWRkLAorICAgICAgICBzdWJ0
cmFjdDogc3VidHJhY3QsCisgICAgICAgIG11bHRpcGx5OiBtdWx0aXBseSwKKyAgICAgICAgZGl2
aWRlOiBkaXZpZGUsCisgICAgICAgIG1vZHVsbzogbW9kdWxvLAorICAgICAgICBhYnNvbHV0ZTog
YWJzb2x1dGUsCisgICAgICAgIGNlaWxOdW1iZXI6IGNlaWxOdW1iZXIsCisgICAgICAgIGZsb29y
TnVtYmVyOiBmbG9vck51bWJlciwKKyAgICAgICAgc3F1YXJlUm9vdDogc3F1YXJlUm9vdCwKKyAg
ICAgICAgY29zaW5lOiBjb3NpbmUsCisgICAgICAgIHNpbmU6IHNpbmUsCisgICAgICAgIHRhbmdl
bnQ6IHRhbmdlbnQsCisgICAgICAgIGFyY2Nvc2luZTogYXJjY29zaW5lLAorICAgICAgICBhcmNz
aW5lOiBhcmNzaW5lLAorICAgICAgICBhcmN0YW5nZW50OiBhcmN0YW5nZW50LAorICAgICAgICBh
cmN0YW5nZW50MjogYXJjdGFuZ2VudDIsCisgICAgICAgIGV4cG9uZW50aWFsOiBleHBvbmVudGlh
bCwKKyAgICAgICAgbG9nYXJpdGhtOiBsb2dhcml0aG0sCisgICAgICAgIHBvd2VyOiBwb3dlciwK
ICAgICB9OwogfQogKi8KQEAgLTI0LDMgKzE2Niw0MCBAQCBmdW5jdGlvbiBhc21Nb2R1bGUoZ2xv
YmFsLCBlbnYsIGJ1ZmZlcikgewogdmFyIG1vZHVsZSA9IGxvYWRXZWJBc3NlbWJseSgid2FzbS9h
cml0aG1ldGljLWZsb2F0NjQud2FzbSIpOwogCiBzaG91bGRCZShtb2R1bGUubnVtYmVyKCksIDQu
Mik7CitzaG91bGRCZShtb2R1bGUubmVnYXRlKDQuMiksIC00LjIpOworc2hvdWxkQmUobW9kdWxl
LmFkZCgwLjEsIDAuNSksIDAuNik7CitzaG91bGRCZShpc05hTihtb2R1bGUuYWRkKDAuMSwgTmFO
KSksIHRydWUpOworc2hvdWxkQmUobW9kdWxlLmFkZCgwLjEsIEluZmluaXR5KSwgSW5maW5pdHkp
Oworc2hvdWxkQmUoaXNOYU4obW9kdWxlLmFkZChJbmZpbml0eSwgLUluZmluaXR5KSksIHRydWUp
Oworc2hvdWxkQmUobW9kdWxlLnN1YnRyYWN0KDAuMSwgMC41KSwgLTAuNCk7CitzaG91bGRCZSht
b2R1bGUubXVsdGlwbHkoMC4xLCAwLjUpLCAwLjA1KTsKK3Nob3VsZEJlKG1vZHVsZS5kaXZpZGUo
MC4xLCAwLjUpLCAwLjIpOworc2hvdWxkQmUobW9kdWxlLmRpdmlkZSgwLjEsIDApLCBJbmZpbml0
eSk7CitzaG91bGRCZShtb2R1bGUuZGl2aWRlKDAuMSwgLTApLCAtSW5maW5pdHkpOworc2hvdWxk
QmUobW9kdWxlLm1vZHVsbygwLjEsIDAuMDMpLCAwLjAxMDAwMDAwMDAwMDAwMDAwOSk7CitzaG91
bGRCZShpc05hTihtb2R1bGUubW9kdWxvKDAuMSwgMCkpLCB0cnVlKTsKK3Nob3VsZEJlKG1vZHVs
ZS5hYnNvbHV0ZSgtNC4yKSwgNC4yKTsKK3Nob3VsZEJlKG1vZHVsZS5hYnNvbHV0ZSg0LjIpLCA0
LjIpOworc2hvdWxkQmUobW9kdWxlLmNlaWxOdW1iZXIoNC4yKSwgNSk7CitzaG91bGRCZShtb2R1
bGUuZmxvb3JOdW1iZXIoNC4yKSwgNCk7CitzaG91bGRCZShtb2R1bGUuc3F1YXJlUm9vdCgwLjA5
KSwgMC4zKTsKK3Nob3VsZEJlKG1vZHVsZS5jb3NpbmUoTWF0aC5QSSksIC0xKTsKK3Nob3VsZEJl
KG1vZHVsZS5zaW5lKE1hdGguUEkpLCAxLjIyNDY0Njc5OTE0NzM1MzJlLTE2KTsKK3Nob3VsZEJl
KG1vZHVsZS50YW5nZW50KE1hdGguUEkgLyA0KSwgMC45OTk5OTk5OTk5OTk5OTk5KTsKK3Nob3Vs
ZEJlKG1vZHVsZS5hcmNjb3NpbmUoMC41KSwgTWF0aC5QSSAvIDMpOworc2hvdWxkQmUobW9kdWxl
LmFyY3NpbmUoMC41KSwgTWF0aC5QSSAvIDYpOworc2hvdWxkQmUobW9kdWxlLmFyY3RhbmdlbnQo
MSksIE1hdGguUEkgLyA0KTsKK3Nob3VsZEJlKG1vZHVsZS5hcmN0YW5nZW50MigxLCAwKSwgTWF0
aC5QSSAvIDIpOworc2hvdWxkQmUobW9kdWxlLmV4cG9uZW50aWFsKDEpLCBNYXRoLkUpOworc2hv
dWxkQmUobW9kdWxlLmxvZ2FyaXRobShNYXRoLkUpLCAxKTsKK3Nob3VsZEJlKG1vZHVsZS5wb3dl
cig0LCAxLjUpLCA4KTsKKworc2hvdWxkQmUobW9kdWxlLmFkZCgxLCAiMC41IiksIDEuNSk7Citz
aG91bGRCZShtb2R1bGUuYWRkKCIxIiwgIjAuNSIpLCAxLjUpOworc2hvdWxkQmUobW9kdWxlLmFk
ZCgxLCB0cnVlKSwgMik7CitzaG91bGRCZShpc05hTihtb2R1bGUuYWRkKDEsIHsgfSkpLCB0cnVl
KTsKK3Nob3VsZEJlKGlzTmFOKG1vZHVsZS5hZGQoMSwgImFiYyIpKSwgdHJ1ZSk7Cit2YXIgdHdv
ID0geworICAgIHZhbHVlT2YoKSB7IHJldHVybiAyOyB9Cit9Oworc2hvdWxkQmUobW9kdWxlLmFk
ZCgxLCB0d28pLCAzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3Mvd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbQppbmRleCA0OWUyMDgx
ZTAzMTkyZjVhYzVkNTY4ZTg3NGFiNjNlYzczODEyNzExLi43YjVmZjI5OTBmMzU0MDViOWZjNmYy
ZjgxZWI1MGNiMWVkYWNhNGNkIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzc2Cnpj
bVlNdlN4JjwrNUMtNn0zdVVMSlo5cmwjPnBMZ2wxVXpzOUNvI2QyP0ZuOGV5bTZIREs1IT1SeENR
PSlQeWM4Iwp6bU5GQ0dlRHtJVTxHPmxHPFN8amVWckdCZ2pCKXMyMU5RWXY4USFOcD5Kc0Jfb302
VGg/MCl0amRxfCVnNXkhKnsKemFZfiNLPWZzcV9BVEVpa2UwTlJ0aFBkdEt0Z3o5UChnOWY2aCMt
Tjl4KDRvSjhKd3NCXmkwJTJ3ZllAYVlXMXBXCnozOUFPe3MxZj8yXnImTXhTKnhWZDR+dThrcEVS
T2Q0amNYQDNNVV5DMThpMzRtNmZvUy00NFB3KGd4VE91M0J6KApsUV9hZ2tEIT0+VGY0X3IwYFBR
T01YRyYtb1g+NWQzO25+MnIjYWE0PSRxeU0jWVlQQVgKCmxpdGVyYWwgNDcKcGNtWFI8RVlBSkgh
fmc8fTVETHM+VX0jfEVYRlBpYjFPeXh5OFNfZVdsVHdRcTd5I2ZfM2dgZDsKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaAppbmRleCA3MTQ5
MmE0M2JiNjc1N2M4MDI3YjQ3NGNjMDQwMWQzNjllZGJkNDRmLi4zOGU3MTM4M2E3YThlZDk3MDIw
OTJlMjU5MGI0MTcyOTI1ZmRhNGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmgKQEAgLTM3LDYgKzM3LDE2IEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCitzdGF0aWMgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnZlcnRK
U1ZhbHVlVG9JbnQzMihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQorewor
ICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvSW50MzIoZXhlYyk7Cit9CisKK3N0
YXRpYyBkb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRvRG91Ymxl
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCit7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmRlY29kZSh2YWx1ZSkudG9OdW1iZXIoZXhlYyk7Cit9CisKICNpZiAhQ1BVKFg4Nikg
JiYgIUNQVShYODZfNjQpCiBzdGF0aWMgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRp
dihpbnQzMl90IGxlZnQsIGludDMyX3QgcmlnaHQpCiB7CkBAIC01OSw2ICs2OSwxNyBAQCBzdGF0
aWMgdWludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25VbnNpZ25lZE1vZCh1aW50MzJfdCBs
ZWZ0LCB1aW50MzJfdCByaWdodAogfQogI2VuZGlmCiAKKy8vIE9uIFdpbmRvd3Mgd2UgbmVlZCB0
byB3cmFwIGZtb2Q7IG9uIG90aGVyIHBsYXRmb3JtcyB3ZSBjYW4gY2FsbCBpdCBkaXJlY3RseS4K
Ky8vIE9uIEFSTXY3IHdlIGFzc2VydCB0aGF0IGFsbCBmdW5jdGlvbiBwb2ludGVycyBoYXZlIHRv
IGxvdyBiaXQgc2V0IChwb2ludCB0byB0aHVtYiBjb2RlKS4KKyNpZiBDQUxMSU5HX0NPTlZFTlRJ
T05fSVNfU1REQ0FMTCB8fCBDUFUoQVJNX1RIVU1CMikKK3N0YXRpYyBkb3VibGUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25GbW9kKGRvdWJsZSB4LCBkb3VibGUgeSkKK3sKKyAgICByZXR1cm4gZm1v
ZCh4LCB5KTsKK30KKyNlbHNlCisjZGVmaW5lIG9wZXJhdGlvbkZtb2QgZm1vZAorI2VuZGlmCisK
IGNsYXNzIFdBU01GdW5jdGlvbkNvbXBpbGVyIDogcHJpdmF0ZSBDQ2FsbEhlbHBlcnMgewogcHVi
bGljOgogICAgIHR5cGVkZWYgaW50IEV4cHJlc3Npb247CkBAIC04Miw3ICsxMDMsNyBAQCBwdWJs
aWM6CiAKICAgICAgICAgbV9iZWdpbkxhYmVsID0gbGFiZWwoKTsKIAotICAgICAgICBhZGRQdHIo
VHJ1c3RlZEltbTMyKC1XVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdp
c3RlcnMoKSwgbV9zdGFja0hlaWdodCkgKiBzaXplb2YoU3RhY2tTbG90KSksIEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgICAgIGFkZFB0cihUcnVzdGVk
SW1tMzIoLW1fc3RhY2tIZWlnaHQpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5m
bzo6cmVnVDEpOwogICAgICAgICBtX3N0YWNrT3ZlcmZsb3cgPSBicmFuY2hQdHIoQWJvdmUsIEFi
c29sdXRlQWRkcmVzcyhtX3ZtLT5hZGRyZXNzT2ZTdGFja0xpbWl0KCkpLCBHUFJJbmZvOjpyZWdU
MSk7CiAKICAgICAgICAgbW92ZShHUFJJbmZvOjpyZWdUMSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIp
OwpAQCAtOTUsMTggKzExNiwyMiBAQCBwdWJsaWM6CiAgICAgICAgICAgICBBZGRyZXNzIGFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6YXJndW1lbnRPZmZzZXQo
aSkgKiBzaXplb2YoUmVnaXN0ZXIpKTsKICAgICAgICAgICAgIHN3aXRjaCAoYXJndW1lbnRzW2ld
KSB7CiAgICAgICAgICAgICBjYXNlIFdBU01UeXBlOjpJMzI6Ci0gICAgICAgICAgICAgICAgbG9h
ZDMyKGFkZHJlc3MsIEdQUkluZm86OnJlZ1QwKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAg
ICAgICAgICAgIGxvYWRWYWx1ZUFuZENvbnZlcnRUb0ludDMyKGFkZHJlc3MsIEdQUkluZm86OnJl
Z1QwKTsKKyNlbHNlCisgICAgICAgICAgICAgICAgbG9hZFZhbHVlQW5kQ29udmVydFRvSW50MzIo
YWRkcmVzcywgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxKTsKKyNlbmRpZgogICAgICAg
ICAgICAgICAgIHN0b3JlMzIoR1BSSW5mbzo6cmVnVDAsIGxvY2FsQWRkcmVzcyhsb2NhbEluZGV4
KyspKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgV0FTTVR5cGU6
OkYzMjoKLSAgICAgICAgICAgICAgICBsb2FkNjQoYWRkcmVzcywgR1BSSW5mbzo6cmVnVDApOwot
ICAgICAgICAgICAgICAgIHVuYm94RG91YmxlV2l0aG91dEFzc2VydGlvbnMoR1BSSW5mbzo6cmVn
VDAsIEZQUkluZm86OmZwUmVnVDApOwotICAgICAgICAgICAgICAgIGNvbnZlcnREb3VibGVUb0Zs
b2F0KEZQUkluZm86OmZwUmVnVDAsIEZQUkluZm86OmZwUmVnVDApOwotICAgICAgICAgICAgICAg
IHN0b3JlRG91YmxlKEZQUkluZm86OmZwUmVnVDAsIGxvY2FsQWRkcmVzcyhsb2NhbEluZGV4Kysp
KTsKLSAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgV0FTTVR5cGU6OkY2
NDoKLSAgICAgICAgICAgICAgICBsb2FkNjQoYWRkcmVzcywgR1BSSW5mbzo6cmVnVDApOwotICAg
ICAgICAgICAgICAgIHVuYm94RG91YmxlV2l0aG91dEFzc2VydGlvbnMoR1BSSW5mbzo6cmVnVDAs
IEZQUkluZm86OmZwUmVnVDApOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICAgICAg
bG9hZFZhbHVlQW5kQ29udmVydFRvRG91YmxlKGFkZHJlc3MsIEZQUkluZm86OmZwUmVnVDAsIEdQ
UkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSk7CisjZWxzZQorICAgICAgICAgICAgICAgIGxv
YWRWYWx1ZUFuZENvbnZlcnRUb0RvdWJsZShhZGRyZXNzLCBGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJ
bmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEsIEdQUkluZm86OnJlZ1QyLCBGUFJJbmZvOjpmcFJl
Z1QxKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGlmIChhcmd1bWVudHNbaV0gPT0gV0FTTVR5
cGU6OkYzMikKKyAgICAgICAgICAgICAgICAgICAgY29udmVydERvdWJsZVRvRmxvYXQoRlBSSW5m
bzo6ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMCk7CiAgICAgICAgICAgICAgICAgc3RvcmVEb3Vi
bGUoRlBSSW5mbzo6ZnBSZWdUMCwgbG9jYWxBZGRyZXNzKGxvY2FsSW5kZXgrKykpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKQEAgLTE0Nyw4ICsxNzIsNiBA
QCBwdWJsaWM6CiAgICAgICAgIGlmICghbV9kaXZpZGVFcnJvckp1bXBMaXN0LmVtcHR5KCkpIHsK
ICAgICAgICAgICAgIG1fZGl2aWRlRXJyb3JKdW1wTGlzdC5saW5rKHRoaXMpOwogCi0gICAgICAg
ICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCi0gICAgICAgICAgICAgICAg
YWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgICAgICBzZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgp
OwogICAgICAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb25UaHJv
d0RpdmlkZUVycm9yKTsKICAgICAgICAgfQpAQCAtMzA1LDYgKzMyOCw1NiBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAgfQogCisgICAgaW50IGJ1aWxkVW5hcnlGNjQoaW50
LCBXQVNNT3BFeHByZXNzaW9uRjY0IG9wKQorICAgIHsKKyAgICAgICAgbG9hZERvdWJsZSh0ZW1w
b3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSksIEZQUkluZm86OmZwUmVnVDEpOworICAg
ICAgICBzd2l0Y2ggKG9wKSB7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TmVn
YXRlOgorICAgICAgICAgICAgbmVnYXRlRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86
OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6QWJzOgorICAgICAgICAgICAgYWJzRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQ
UkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6Q2VpbDoKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24oY2VpbCwgRlBS
SW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGbG9vcjoKKyAgICAgICAgICAgIGNhbGxP
cGVyYXRpb24oZmxvb3IsIEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3FydDoK
KyAgICAgICAgICAgIHNxcnREb3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdU
MCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0
OjpDb3M6CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKGNvcywgRlBSSW5mbzo6ZnBSZWdUMSwg
RlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpTaW46CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKHNpbiwgRlBS
SW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpUYW46CisgICAgICAgICAgICBjYWxsT3Bl
cmF0aW9uKHRhbiwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBQ29zOgorICAg
ICAgICAgICAgY2FsbE9wZXJhdGlvbihhY29zLCBGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpm
cFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Np
b25GNjQ6OkFTaW46CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKGFzaW4sIEZQUkluZm86OmZw
UmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjoKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24o
YXRhbiwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpFeHA6CisgICAgICAgICAg
ICBjYWxsT3BlcmF0aW9uKGV4cCwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpM
bjoKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obG9nLCBGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJ
bmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICAgICAgc3RvcmVE
b3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgdGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAt
IDEpKTsKKyAgICAgICAgcmV0dXJuIFVOVVNFRDsKKyAgICB9CisKICAgICBpbnQgYnVpbGRCaW5h
cnlJMzIoaW50LCBpbnQsIFdBU01PcEV4cHJlc3Npb25JMzIgb3ApCiAgICAgewogICAgICAgICBs
b2FkMzIodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDIpLCBHUFJJbmZvOjpyZWdU
MCk7CkBAIC0zNDQsOCArNDE3LDYgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIG1vdmUoWDg2
UmVnaXN0ZXJzOjplZHgsIEdQUkluZm86OnJlZ1QwKTsKICNlbHNlCiAgICAgICAgICAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gYW4gaW5saW5lIGRpdiBvbiBBUk12NyBhbmQg
QVJNNjQuCi0gICAgICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCi0g
ICAgICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgICAgICBzd2l0Y2ggKG9w
KSB7CiAgICAgICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25JMzI6OlNEaXY6CiAgICAgICAg
ICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25EaXYsIEdQUkluZm86OnJlZ1QwLCBHUFJJ
bmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDApOwpAQCAtMzYyLDggKzQzMyw2IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwpCi0gICAgICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICNlbmRpZgogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTM5Myw2ICs0NjIsNDAgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gVU5VU0VEOwogICAgIH0KIAorICAgIGludCBidWlsZEJpbmFyeUY2NChp
bnQsIGludCwgV0FTTU9wRXhwcmVzc2lvbkY2NCBvcCkKKyAgICB7CisgICAgICAgIGxvYWREb3Vi
bGUodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDIpLCBGUFJJbmZvOjpmcFJlZ1Qw
KTsKKyAgICAgICAgbG9hZERvdWJsZSh0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0g
MSksIEZQUkluZm86OmZwUmVnVDEpOworICAgICAgICBzd2l0Y2ggKG9wKSB7CisgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QWRkOgorICAgICAgICAgICAgYWRkRG91YmxlKEZQUklu
Zm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3ViOgorICAgICAgICAgICAgc3ViRG91Ymxl
KEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TXVsOgorICAgICAgICAgICAgbXVs
RG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RGl2OgorICAgICAgICAg
ICAgZGl2RG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TW9kOgorICAg
ICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25GbW9kLCBGUFJJbmZvOjpmcFJlZ1QwLCBG
UFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW4yOgorICAgICAgICAgICAgY2Fs
bE9wZXJhdGlvbihhdGFuMiwgRlBSSW5mbzo6ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBS
SW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpQb3c6CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKHBvdywgRlBSSW5m
bzo6ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICB9CisgICAgICAgIG1fdGVtcFN0YWNrVG9wLS07CisgICAgICAgIHN0
b3JlRG91YmxlKEZQUkluZm86OmZwUmVnVDAsIHRlbXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tU
b3AgLSAxKSk7CisgICAgICAgIHJldHVybiBVTlVTRUQ7CisgICAgfQorCiAgICAgaW50IGJ1aWxk
UmVsYXRpb25hbEkzMihpbnQsIGludCwgV0FTTU9wRXhwcmVzc2lvbkkzMiBvcCkKICAgICB7CiAg
ICAgICAgIGxvYWQzMih0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMiksIEdQUklu
Zm86OnJlZ1QwKTsKQEAgLTUzNiw3ICs2MzksNyBAQCBwcml2YXRlOgogCiAgICAgQWRkcmVzcyB0
ZW1wb3JhcnlBZGRyZXNzKHVuc2lnbmVkIHRlbXBvcmFyeUluZGV4KSBjb25zdAogICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fbnVtYmVyT2ZMb2NhbHMgKyB0ZW1wb3JhcnlJbmRleCA8IG1fc3RhY2tI
ZWlnaHQpOworICAgICAgICBBU1NFUlQoKG1fbnVtYmVyT2ZMb2NhbHMgKyB0ZW1wb3JhcnlJbmRl
eCArIDEpICogc2l6ZW9mKFN0YWNrU2xvdCkgPD0gbV9zdGFja0hlaWdodCk7CiAgICAgICAgIHJl
dHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCAtKG1fbnVtYmVyT2ZMb2Nh
bHMgKyB0ZW1wb3JhcnlJbmRleCArIDEpICogc2l6ZW9mKFN0YWNrU2xvdCkpOwogICAgIH0KIApA
QCAtNTUxLDIwICs2NTQsMTQ3IEBAIHByaXZhdGU6CiAgICAgICAgIG1fZXhjZXB0aW9uQ2hlY2tz
LmFwcGVuZChlbWl0RXhjZXB0aW9uQ2hlY2soKSk7CiAgICAgfQogCisgICAgdm9pZCBhcHBlbmRD
YWxsU2V0UmVzdWx0KGNvbnN0IEZ1bmN0aW9uUHRyJiBmdW5jdGlvbiwgR1BSUmVnIHJlc3VsdCkK
KyAgICB7CisgICAgICAgIGFwcGVuZENhbGwoZnVuY3Rpb24pOworICAgICAgICBtb3ZlKEdQUklu
Zm86OnJldHVyblZhbHVlR1BSLCByZXN1bHQpOworICAgIH0KKworI2lmIENQVShYODYpCisgICAg
dm9pZCBhcHBlbmRDYWxsU2V0UmVzdWx0KGNvbnN0IEZ1bmN0aW9uUHRyJiBmdW5jdGlvbiwgRlBS
UmVnIHJlc3VsdCkKKyAgICB7CisgICAgICAgIGFwcGVuZENhbGwoZnVuY3Rpb24pOworICAgICAg
ICBtX2Fzc2VtYmxlci5mc3RwbCgwLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgIGxv
YWREb3VibGUoc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHJlc3VsdCk7CisgICAgfQorI2VsaWYgQ1BV
KEFSTSkgJiYgIUNQVShBUk1fSEFSREZQKQorICAgIHZvaWQgYXBwZW5kQ2FsbFNldFJlc3VsdChj
b25zdCBGdW5jdGlvblB0ciYgZnVuY3Rpb24sIEZQUlJlZyByZXN1bHQpCisgICAgeworICAgICAg
ICBhcHBlbmRDYWxsKGZ1bmN0aW9uKTsKKyAgICAgICAgbV9hc3NlbWJsZXIudm1vdihyZXN1bHQs
IEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIpOworICAg
IH0KKyNlbHNlIC8vIENQVShYODZfNjQpIHx8IChDUFUoQVJNKSAmJiBDUFUoQVJNX0hBUkRGUCkp
IHx8IENQVShBUk02NCkgfHwgQ1BVKE1JUFMpIHx8IENQVShTSDQpCisgICAgdm9pZCBhcHBlbmRD
YWxsU2V0UmVzdWx0KGNvbnN0IEZ1bmN0aW9uUHRyJiBmdW5jdGlvbiwgRlBSUmVnIHJlc3VsdCkK
KyAgICB7CisgICAgICAgIGFwcGVuZENhbGwoZnVuY3Rpb24pOworICAgICAgICBtb3ZlRG91Ymxl
KEZQUkluZm86OnJldHVyblZhbHVlRlBSLCByZXN1bHQpOworICAgIH0KKyNlbmRpZgorCisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICB2b2lkIGNhbGxPcGVyYXRpb24oRF9KSVRPcGVyYXRpb25fRUog
b3BlcmF0aW9uLCBHUFJSZWcgc3JjLCBGUFJSZWcgZHN0KQorICAgIHsKKyAgICAgICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKHNyYyk7CisgICAgICAgIGFwcGVuZENhbGxTZXRSZXN1bHQo
b3BlcmF0aW9uLCBkc3QpOworICAgIH0KKworICAgIHZvaWQgY2FsbE9wZXJhdGlvbihaX0pJVE9w
ZXJhdGlvbl9FSiBvcGVyYXRpb24sIEdQUlJlZyBzcmMsIEdQUlJlZyBkc3QpCisgICAgeworICAg
ICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoc3JjKTsKKyAgICAgICAgYXBwZW5kQ2Fs
bFNldFJlc3VsdChvcGVyYXRpb24sIGRzdCk7CisgICAgfQorI2Vsc2UKKyAgICB2b2lkIGNhbGxP
cGVyYXRpb24oRF9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgc3JjVGFnLCBHUFJS
ZWcgc3JjUGF5bG9hZCwgRlBSUmVnIGRzdCkKKyAgICB7CisgICAgICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBzcmNQYXlsb2FkLCBzcmNUYWcpOwor
ICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKKyAgICB9CisKKyAg
ICB2b2lkIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcg
c3JjVGFnLCBHUFJSZWcgc3JjUGF5bG9hZCwgR1BSUmVnIGRzdCkKKyAgICB7CisgICAgICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBzcmNQYXlsb2Fk
LCBzcmNUYWcpOworICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsK
KyAgICB9CisjZW5kaWYKKwogICAgIHZvaWQgY2FsbE9wZXJhdGlvbihpbnQzMl90IEpJVF9PUEVS
QVRJT04gKCpvcGVyYXRpb24pKGludDMyX3QsIGludDMyX3QpLCBHUFJSZWcgc3JjMSwgR1BSUmVn
IHNyYzIsIEdQUlJlZyBkc3QpCiAgICAgewogICAgICAgICBzZXR1cEFyZ3VtZW50cyhzcmMxLCBz
cmMyKTsKLSAgICAgICAgYXBwZW5kQ2FsbChvcGVyYXRpb24pOwotICAgICAgICBtb3ZlKEdQUklu
Zm86OnJldHVyblZhbHVlR1BSLCBkc3QpOworICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9w
ZXJhdGlvbiwgZHN0KTsKICAgICB9CiAKICAgICB2b2lkIGNhbGxPcGVyYXRpb24odWludDMyX3Qg
SklUX09QRVJBVElPTiAoKm9wZXJhdGlvbikodWludDMyX3QsIHVpbnQzMl90KSwgR1BSUmVnIHNy
YzEsIEdQUlJlZyBzcmMyLCBHUFJSZWcgZHN0KQogICAgIHsKICAgICAgICAgc2V0dXBBcmd1bWVu
dHMoc3JjMSwgc3JjMik7Ci0gICAgICAgIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKLSAgICAgICAg
bW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZHN0KTsKKyAgICAgICAgYXBwZW5kQ2FsbFNl
dFJlc3VsdChvcGVyYXRpb24sIGRzdCk7CisgICAgfQorCisgICAgdm9pZCBjYWxsT3BlcmF0aW9u
KERfSklUT3BlcmF0aW9uX0Qgb3BlcmF0aW9uLCBGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVy
SUQgZHN0KQorICAgIHsKKyAgICAgICAgc2V0dXBBcmd1bWVudHMoc3JjKTsKKyAgICAgICAgYXBw
ZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIGRzdCk7CisgICAgfQorCisgICAgdm9pZCBjYWxs
T3BlcmF0aW9uKERfSklUT3BlcmF0aW9uX0REIG9wZXJhdGlvbiwgRlBSZWdpc3RlcklEIHNyYzEs
IEZQUmVnaXN0ZXJJRCBzcmMyLCBGUFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgc2V0
dXBBcmd1bWVudHMoc3JjMSwgc3JjMik7CisgICAgICAgIGFwcGVuZENhbGxTZXRSZXN1bHQob3Bl
cmF0aW9uLCBkc3QpOwogICAgIH0KIAorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgdm9pZCBsb2Fk
VmFsdWVBbmRDb252ZXJ0VG9JbnQzMihBZGRyZXNzIGFkZHJlc3MsIEdQUlJlZyBkc3QpCisgICAg
eworICAgICAgICBKU1ZhbHVlUmVncyB0ZW1wUmVncyhkc3QpOworICAgICAgICBsb2FkVmFsdWUo
YWRkcmVzcywgdGVtcFJlZ3MpOworICAgICAgICBKdW1wIGNoZWNrSlNJbnQzMiA9IGJyYW5jaElm
SW50MzIodGVtcFJlZ3MpOworCisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ29udmVy
dEpTVmFsdWVUb0ludDMyLCBkc3QsIGRzdCk7CisKKyAgICAgICAgY2hlY2tKU0ludDMyLmxpbmso
dGhpcyk7CisgICAgfQorCisgICAgdm9pZCBsb2FkVmFsdWVBbmRDb252ZXJ0VG9Eb3VibGUoQWRk
cmVzcyBhZGRyZXNzLCBGUFJSZWcgZHN0LCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNo
MikKKyAgICB7CisgICAgICAgIEpTVmFsdWVSZWdzIHRlbXBSZWdzKHNjcmF0Y2gxKTsKKyAgICAg
ICAgbG9hZFZhbHVlKGFkZHJlc3MsIHRlbXBSZWdzKTsKKyAgICAgICAgSnVtcCBjaGVja0pTSW50
MzIgPSBicmFuY2hJZkludDMyKHRlbXBSZWdzKTsKKyAgICAgICAgSnVtcCBjaGVja0pTTnVtYmVy
ID0gYnJhbmNoSWZOdW1iZXIodGVtcFJlZ3MsIHNjcmF0Y2gyKTsKKyAgICAgICAgSnVtcExpc3Qg
ZW5kOworCisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ29udmVydEpTVmFsdWVUb0Rv
dWJsZSwgdGVtcFJlZ3MuZ3ByKCksIGRzdCk7CisgICAgICAgIGVuZC5hcHBlbmQoanVtcCgpKTsK
KworICAgICAgICBjaGVja0pTSW50MzIubGluayh0aGlzKTsKKyAgICAgICAgY29udmVydEludDMy
VG9Eb3VibGUodGVtcFJlZ3MuZ3ByKCksIGRzdCk7CisgICAgICAgIGVuZC5hcHBlbmQoanVtcCgp
KTsKKworICAgICAgICBjaGVja0pTTnVtYmVyLmxpbmsodGhpcyk7CisgICAgICAgIHVuYm94RG91
YmxlV2l0aG91dEFzc2VydGlvbnModGVtcFJlZ3MuZ3ByKCksIGRzdCk7CisgICAgICAgIGVuZC5s
aW5rKHRoaXMpOworICAgIH0KKyNlbHNlCisgICAgdm9pZCBsb2FkVmFsdWVBbmRDb252ZXJ0VG9J
bnQzMihBZGRyZXNzIGFkZHJlc3MsIEdQUlJlZyBkc3QsIEdQUlJlZyBzY3JhdGNoKQorICAgIHsK
KyAgICAgICAgSlNWYWx1ZVJlZ3MgdGVtcFJlZ3Moc2NyYXRjaCwgZHN0KTsKKyAgICAgICAgbG9h
ZFZhbHVlKGFkZHJlc3MsIHRlbXBSZWdzKTsKKyAgICAgICAgSnVtcCBjaGVja0pTSW50MzIgPSBi
cmFuY2hJZkludDMyKHRlbXBSZWdzKTsKKworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
bkNvbnZlcnRKU1ZhbHVlVG9JbnQzMiwgdGVtcFJlZ3MudGFnR1BSKCksIHRlbXBSZWdzLnBheWxv
YWRHUFIoKSwgZHN0KTsKKworICAgICAgICBjaGVja0pTSW50MzIubGluayh0aGlzKTsKKyAgICB9
CisKKyAgICB2b2lkIGxvYWRWYWx1ZUFuZENvbnZlcnRUb0RvdWJsZShBZGRyZXNzIGFkZHJlc3Ms
IEZQUlJlZyBkc3QsIEdQUlJlZyBzY3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gyLCBHUFJSZWcgc2Ny
YXRjaDMsIEZQUlJlZyBmcFNjcmF0Y2gpCisgICAgeworICAgICAgICBKU1ZhbHVlUmVncyB0ZW1w
UmVncyhzY3JhdGNoMiwgc2NyYXRjaDEpOworICAgICAgICBsb2FkVmFsdWUoYWRkcmVzcywgdGVt
cFJlZ3MpOworICAgICAgICBKdW1wIGNoZWNrSlNJbnQzMiA9IGJyYW5jaElmSW50MzIodGVtcFJl
Z3MpOworICAgICAgICBKdW1wIGNoZWNrSlNOdW1iZXIgPSBicmFuY2hJZk51bWJlcih0ZW1wUmVn
cywgc2NyYXRjaDMpOworICAgICAgICBKdW1wTGlzdCBlbmQ7CisKKyAgICAgICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRvRG91YmxlLCB0ZW1wUmVncy50YWdHUFIoKSwg
dGVtcFJlZ3MucGF5bG9hZEdQUigpLCBkc3QpOworICAgICAgICBlbmQuYXBwZW5kKGp1bXAoKSk7
CisKKyAgICAgICAgY2hlY2tKU0ludDMyLmxpbmsodGhpcyk7CisgICAgICAgIGNvbnZlcnRJbnQz
MlRvRG91YmxlKGVtcFJlZ3MucGF5bG9hZEdQUigpLCBkc3QpOworICAgICAgICBlbmQuYXBwZW5k
KGp1bXAoKSk7CisKKyAgICAgICAgY2hlY2tKU051bWJlci5saW5rKHRoaXMpOworICAgICAgICB1
bmJveERvdWJsZSh0ZW1wUmVncy50YWdHUFIoKSwgdGVtcFJlZ3MucGF5bG9hZEdQUigpLCBkc3Qs
IGZwU2NyYXRjaCkKKyAgICAgICAgZW5kLmxpbmsodGhpcyk7CisgICAgfQorI2VuZGlmCisKICAg
ICB1bnNpZ25lZCBtX3N0YWNrSGVpZ2h0OwogICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZMb2NhbHM7
CiAgICAgdW5zaWduZWQgbV90ZW1wU3RhY2tUb3AgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcAppbmRleCBjYjUzZDUyYTU2ZGVi
MGFmMGY2ZjQ3YzJhNTk2MzBiZjBhMjRhNDY3Li5hOTA3N2E1NDEzZmYyYzBjYjRhY2NiZTdkOGY0
ZTMwMGIwNTIxYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNN
RnVuY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01G
dW5jdGlvblBhcnNlci5jcHAKQEAgLTY1Niw2ICs2NTYsMjggQEAgQ29udGV4dEV4cHJlc3Npb24g
V0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCkK
ICAgICAgICAgICAgIHJldHVybiBwYXJzZUltbWVkaWF0ZUV4cHJlc3Npb25GNjQoY29udGV4dCk7
CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6R2V0TG9jYWw6CiAgICAgICAgICAg
ICByZXR1cm4gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GNjQoY29udGV4dCk7CisgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TmVnYXRlOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GNjQ6OkFiczoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDZWlsOgor
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkZsb29yOgorICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6OlNxcnQ6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6Q29zOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlNpbjoKKyAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpUYW46CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6QUNvczoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBU2luOgor
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW46CisgICAgICAgIGNhc2UgV0FT
TU9wRXhwcmVzc2lvbkY2NDo6RXhwOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6
OkxuOgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlVW5hcnlFeHByZXNzaW9uRjY0KGNvbnRleHQs
IG9wKTsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBZGQ6CisgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3ViOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Np
b25GNjQ6Ok11bDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpEaXY6CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TW9kOgorICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OkFUYW4yOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlBv
dzoKKyAgICAgICAgICAgIHJldHVybiBwYXJzZUJpbmFyeUV4cHJlc3Npb25GNjQoY29udGV4dCwg
b3ApOwogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkdldEdsb2JhbDoKICAgICAg
ICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTZXRMb2NhbDoKICAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpTZXRHbG9iYWw6CkBAIC02NzEsMjggKzY5Myw4IEBAIENvbnRleHRF
eHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjY0KENvbnRleHQm
IGNvbnRleHQpCiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RnJvbVMzMjoKICAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGcm9tVTMyOgogICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6OkZyb21GMzI6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkY2NDo6TmVnYXRlOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFkZDoKLSAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdWI6Ci0gICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6TXVsOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkRp
djoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNb2Q6CiAgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6TWluOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
NjQ6Ok1heDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBYnM6Ci0gICAgICAg
IGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpGbG9vcjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTcXJ0
OgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNvczoKLSAgICAgICAgY2FzZSBX
QVNNT3BFeHByZXNzaW9uRjY0OjpTaW46Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6VGFuOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFDb3M6Ci0gICAgICAg
IGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVNpbjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpBVGFuOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW4y
OgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkV4cDoKLSAgICAgICAgY2FzZSBX
QVNNT3BFeHByZXNzaW9uRjY0OjpMbjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0
OjpQb3c6CiAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoZXNlIGluc3RydWN0aW9u
cy4KICAgICAgICAgICAgIEZBSUxfV0lUSF9NRVNTQUdFKCJVbnN1cHBvcnRlZCBpbnN0cnVjdGlv
bi4iKTsKICAgICAgICAgZGVmYXVsdDoKQEAgLTc1MCw2ICs3NTIsMjQgQEAgQ29udGV4dEV4cHJl
c3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChDb250
ZXh0JiBjb250ZXgKICAgICByZXR1cm4gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GNjQoY29udGV4
dCwgbG9jYWxJbmRleCk7CiB9CiAKK3RlbXBsYXRlIDxjbGFzcyBDb250ZXh0PgorQ29udGV4dEV4
cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZVVuYXJ5RXhwcmVzc2lvbkY2NChDb250
ZXh0JiBjb250ZXh0LCBXQVNNT3BFeHByZXNzaW9uRjY0IG9wKQoreworICAgIENvbnRleHRFeHBy
ZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJzZUV4cHJlc3Npb25GNjQoY29udGV4dCk7CisgICAgUFJP
UEFHQVRFX0VSUk9SKCk7CisgICAgcmV0dXJuIGNvbnRleHQuYnVpbGRVbmFyeUY2NChleHByZXNz
aW9uLCBvcCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBDb250ZXh0PgorQ29udGV4dEV4cHJlc3Np
b24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUJpbmFyeUV4cHJlc3Npb25GNjQoQ29udGV4dCYg
Y29udGV4dCwgV0FTTU9wRXhwcmVzc2lvbkY2NCBvcCkKK3sKKyAgICBDb250ZXh0RXhwcmVzc2lv
biBsZWZ0ID0gcGFyc2VFeHByZXNzaW9uRjY0KGNvbnRleHQpOworICAgIFBST1BBR0FURV9FUlJP
UigpOworICAgIENvbnRleHRFeHByZXNzaW9uIHJpZ2h0ID0gcGFyc2VFeHByZXNzaW9uRjY0KGNv
bnRleHQpOworICAgIFBST1BBR0FURV9FUlJPUigpOworICAgIHJldHVybiBjb250ZXh0LmJ1aWxk
QmluYXJ5RjY0KGxlZnQsIHJpZ2h0LCBvcCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAj
ZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaAppbmRleCAwMmFhYzUyZDI3YzQ1ZTY5ZDZmMjAxY2Ni
YmNjZTE4YjU1NmQ3OTgwLi4yODQ1ZTg4NjY3NThkNmFiNjI3ODBkZjE0ZmQwMDYzMGM5YTZmNGRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJz
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIu
aApAQCAtOTUsNiArOTUsOCBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0
PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUltbWVkaWF0ZUV4cHJlc3Npb25GNjQoQ29udGV4dCYp
OwogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUdl
dExvY2FsRXhwcmVzc2lvbkY2NChDb250ZXh0JiwgdWludDMyX3QgbG9jYWxJbmRleCk7CiAgICAg
dGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlR2V0TG9jYWxF
eHByZXNzaW9uRjY0KENvbnRleHQmKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29u
dGV4dEV4cHJlc3Npb24gcGFyc2VVbmFyeUV4cHJlc3Npb25GNjQoQ29udGV4dCYsIFdBU01PcEV4
cHJlc3Npb25GNjQpOworICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVz
c2lvbiBwYXJzZUJpbmFyeUV4cHJlc3Npb25GNjQoQ29udGV4dCYsIFdBU01PcEV4cHJlc3Npb25G
NjQpOwogCiAgICAgSlNXQVNNTW9kdWxlKiBtX21vZHVsZTsKICAgICBXQVNNUmVhZGVyIG1fcmVh
ZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9u
U3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9u
U3ludGF4Q2hlY2tlci5oCmluZGV4IDg0MmZhYTU5MmE1NTI3OGMwYzU4YmUyZWNkMGI1Y2M4MTdk
MDUxNzguLmMwOTc2YWViOTFhMDk3ZGE0OTk4MWZiMzhlZmM2NGNjZTcxOWExZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5bnRheENoZWNrZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25TeW50YXhDaGVj
a2VyLmgKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAorI2lu
Y2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCisKICNkZWZpbmUgVU5VU0VE
IDAKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC04NiwxMiArODgsMjMgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gVU5VU0VEOwogICAgIH0KIAorICAgIGludCBidWlsZFVuYXJ5RjY0KGludCwgV0FT
TU9wRXhwcmVzc2lvbkY2NCkKKyAgICB7CisgICAgICAgIHJldHVybiBVTlVTRUQ7CisgICAgfQor
CiAgICAgaW50IGJ1aWxkQmluYXJ5STMyKGludCwgaW50LCBXQVNNT3BFeHByZXNzaW9uSTMyKQog
ICAgIHsKICAgICAgICAgbV90ZW1wU3RhY2tUb3AtLTsKICAgICAgICAgcmV0dXJuIFVOVVNFRDsK
ICAgICB9CiAKKyAgICBpbnQgYnVpbGRCaW5hcnlGNjQoaW50LCBpbnQsIFdBU01PcEV4cHJlc3Np
b25GNjQpCisgICAgeworICAgICAgICBtX3RlbXBTdGFja1RvcC0tOworICAgICAgICByZXR1cm4g
VU5VU0VEOworICAgIH0KKwogICAgIGludCBidWlsZFJlbGF0aW9uYWxJMzIoaW50LCBpbnQsIFdB
U01PcEV4cHJlc3Npb25JMzIpCiAgICAgewogICAgICAgICBtX3RlbXBTdGFja1RvcC0tOwpAQCAt
MTE3LDEyICsxMzAsMTggQEAgcHVibGljOgogICAgIGludCBicmVha0xhYmVsVGFyZ2V0KHVpbnQz
Ml90KSB7IHJldHVybiBVTlVTRUQ7IH0KICAgICBpbnQgY29udGludWVMYWJlbFRhcmdldCh1aW50
MzJfdCkgeyByZXR1cm4gVU5VU0VEOyB9CiAKLSAgICB1bnNpZ25lZCBzdGFja0hlaWdodCgpCisg
ICAgdW5zaWduZWQgc3RhY2tIZWlnaHQoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1f
bnVtYmVyT2ZMb2NhbHMgKyBtX3RlbXBTdGFja0hlaWdodDsKKyAgICAgICAgcmV0dXJuIFdURjo6
cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBtX251bWJlck9m
TG9jYWxzICsgbV90ZW1wU3RhY2tIZWlnaHQpICogc2l6ZW9mKFN0YWNrU2xvdCkgKyBtYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbDsKICAgICB9CiAKIHByaXZhdGU6CisgICAgdW5pb24gU3Rh
Y2tTbG90IHsKKyAgICAgICAgaW50MzJfdCBpbnRWYWx1ZTsKKyAgICAgICAgZmxvYXQgZmxvYXRW
YWx1ZTsKKyAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVlOworICAgIH07CisKICAgICB2b2lkIHVw
ZGF0ZVRlbXBTdGFja0hlaWdodCgpCiAgICAgewogICAgICAgICBpZiAobV90ZW1wU3RhY2tUb3Ag
PiBtX3RlbXBTdGFja0hlaWdodCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260851</attachid>
            <date>2015-09-09 02:34:42 -0700</date>
            <delta_ts>2015-09-11 01:05:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148945-20150909023436.patch</filename>
            <type>text/plain</type>
            <size>29913</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NzVkY2EzZmM2Y2I5ZmQ1YzFkMzQyMzA1NWM5YzNmNzdmNWY2NTkyLi5iMGM0MGNiN2Y1NTVkMDQ2
ZTQwYmZiYWY5OThmNWY5ZDU0Mzg5ZDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAxNS0wOS0wOSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIGFyaXRobWV0aWMgaW5zdHJ1Y3Rpb25z
IGZvciBkb3VibGVzIGluIFdlYkFzc2VtYmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGFyaXRobWV0aWMg
aW5zdHJ1Y3Rpb25zIGZvciBkb3VibGVzIChmbG9hdDY0KQorICAgICAgICBpbiBXZWJBc3NlbWJs
eS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBjaGVja3MgdGhlIHR5cGVzIG9m
IGFyZ3VtZW50cyBwYXNzZWQgdG8gV2ViQXNzZW1ibHkKKyAgICAgICAgZnVuY3Rpb25zIGFuZCBj
b252ZXJ0cyB0aGVtIHRvIHRoZSBkZWNsYXJlZCB0eXBlcy4gVGhpcyBpcyBuZWNlc3NhcnkKKyAg
ICAgICAgYmVjYXVzZToKKyAgICAgICAgLSBGb3IgZXhhbXBsZSwgaWYgYSBmdW5jdGlvbiBleHBl
Y3RzIGFuIGFyZ3VtZW50IG9mIHR5cGUgZG91YmxlIGFuZCB3ZQorICAgICAgICAgIHBhc3MgMS4w
IHRvIGl0LCBpdCB3aWxsIHJlY2VpdmUgYSBKU1ZhbHVlIG9mIGFuIGludGVnZXIsIG5vdCBhIGRv
dWJsZS4KKyAgICAgICAgLSBXZSBzaG91bGQgZm9sbG93IGFzbS5qcydzIGJlaGF2aW9yLCB3aGlj
aCBwZXJmb3JtcyB0eXBlIGNvZXJjaW9uIG9uCisgICAgICAgICAgYXJndW1lbnRzLCBiZWNhdXNl
IHdlIHdhbnQgdG8gY29tcGFyZSBXZWJBc3NlbWJseSBhcHBzIGFnYWluc3QgYXNtLmpzCisgICAg
ICAgICAgYXBwcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIHBhZGRp
bmcgb2Ygc2l6ZSBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCB0bworICAgICAgICBXZWJB
c3NlbWJseSBjYWxsIGZyYW1lcywgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGFkanVzdCB0aGUg
c3RhY2sKKyAgICAgICAgcG9pbnRlciBldmVyeSB0aW1lIHdlIG1ha2UgYSBzbG93IHBhdGggY2Fs
bC4gU3RhY2tIZWlnaHQgbm93IG1lYW5zICJ0aGUKKyAgICAgICAgbnVtYmVyIG9mIGJ5dGVzIGlu
IHRoZSBjYWxsIGZyYW1lIiBpbnN0ZWFkIG9mICJ0aGUgbnVtYmVyIG9mIHN0YWNrIHNsb3RzCisg
ICAgICAgIGluIHRoZSBjYWxsIGZyYW1lLiIgSSB3aWxsIHJlbmFtZSBpdCB0byBzdGFja1NpemUg
aW4gYSBzZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6Cisg
ICAgICAgICogdGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzOgorICAgICAg
ICAodHdvLnZhbHVlT2YpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy93YXNtL2FyaXRobWV0aWMt
ZmxvYXQ2NC53YXNtOgorICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaDoKKyAg
ICAgICAgKEpTQzo6b3BlcmF0aW9uQ29udmVydEpTVmFsdWVUb0ludDMyKToKKyAgICAgICAgKEpT
Qzo6b3BlcmF0aW9uQ29udmVydEpTVmFsdWVUb0RvdWJsZSk6CisgICAgICAgIChKU0M6Om9wZXJh
dGlvbkZtb2QpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6c3RhcnRGdW5j
dGlvbik6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpidWlsZFVuYXJ5RjY0
KToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmJ1aWxkQmluYXJ5RjY0KToK
KyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OnRlbXBvcmFyeUFkZHJlc3MpOgor
ICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6YXBwZW5kQ2FsbFNldFJlc3VsdCk6
CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpjYWxsT3BlcmF0aW9uKToKKyAg
ICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmxvYWRWYWx1ZUFuZENvbnZlcnRUb0lu
dDMyKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmxvYWRWYWx1ZUFuZENv
bnZlcnRUb0RvdWJsZSk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjplbmRG
dW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpi
dWlsZEJpbmFyeUkzMik6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25QYXJz
ZXIuY3BwOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lv
bkY2NCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VVbmFyeUV4cHJl
c3Npb25GNjQpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQmluYXJ5
RXhwcmVzc2lvbkY2NCk6CisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaDoKKyAg
ICAgICAgKiB3YXNtL1dBU01GdW5jdGlvblN5bnRheENoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6
V0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlcjo6YnVpbGRVbmFyeUY2NCk6CisgICAgICAgIChKU0M6
OldBU01GdW5jdGlvblN5bnRheENoZWNrZXI6OmJ1aWxkQmluYXJ5RjY0KToKKyAgICAgICAgKEpT
Qzo6V0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlcjo6c3RhY2tIZWlnaHQpOgorCiAyMDE1LTA5LTA4
ICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgogCiAgICAgICAgIFJl
ZmFjdG9yIHRoZSB0ZXN0IGZvciB0aGUgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgaW4gV2ViQXNz
ZW1ibHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggNjU4
NWYwNDBkMGY1NTM2YTE2ZDYxY2FhNWY4MDc2ZWUxNmViYjkyMC4uZDcwOGJiYTE0OGEyNTA3Yzc5
NjIxYjQzN2VmYTFjZWIyNWRmZDU5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmgKQEAgLTE3Myw2ICsxNzMsNyBAQCB0eXBlZGVmIGludDMyX3QgSklUX09QRVJB
VElPTiAoKlpfSklUT3BlcmF0aW9uX0UpKEV4ZWNTdGF0ZSopOwogdHlwZWRlZiBpbnQzMl90IEpJ
VF9PUEVSQVRJT04gKCpaX0pJVE9wZXJhdGlvbl9FQykoRXhlY1N0YXRlKiwgSlNDZWxsKik7CiB0
eXBlZGVmIGludDMyX3QgSklUX09QRVJBVElPTiAoKlpfSklUT3BlcmF0aW9uX0VHQykoRXhlY1N0
YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKTsKIHR5cGVkZWYgaW50MzJfdCBKSVRfT1BF
UkFUSU9OICgqWl9KSVRPcGVyYXRpb25fRVNKc3MpKEV4ZWNTdGF0ZSosIHNpemVfdCwgSlNTdHJp
bmcqKTsKK3R5cGVkZWYgaW50MzJfdCBKSVRfT1BFUkFUSU9OICgqWl9KSVRPcGVyYXRpb25fRUop
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgaW50MzJfdCBKSVRfT1BFUkFU
SU9OICgqWl9KSVRPcGVyYXRpb25fRUpaKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50
MzJfdCk7CiB0eXBlZGVmIGludDMyX3QgSklUX09QRVJBVElPTiAoKlpfSklUT3BlcmF0aW9uX0VK
WlopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsKIHR5cGVk
ZWYgc2l6ZV90IEpJVF9PUEVSQVRJT04gKCpTX0pJVE9wZXJhdGlvbl9FQ0MpKEV4ZWNTdGF0ZSos
IEpTQ2VsbCosIEpTQ2VsbCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS1hcml0aG1ldGljLWZsb2F0NjQuanMKaW5kZXggOGViNWU5
ZjA2MTY5NTgwMTk3NWMzZjBiYTExMzc1ZWVkNWQ5MjE0Mi4uZTE4ZDZiMWFmZjFmMjk0NTQxMTlm
ZmExMTA2MjMxYzY0NTM5NmFhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qcworKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzCkBAIC0xMSwx
MiArMTEsMTU0IEBAIHdhc20vYXJpdGhtZXRpYy1mbG9hdDY0Lndhc20gaXMgZ2VuZXJhdGVkIGJ5
IHBhY2stYXNtanMgPGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBCiBmdW5jdGlvbiBhc21Nb2R1bGUo
Z2xvYmFsLCBlbnYsIGJ1ZmZlcikgewogICAgICJ1c2UgYXNtIjsKIAorICAgIHZhciBhYnMgPSBn
bG9iYWwuTWF0aC5hYnM7CisgICAgdmFyIGNlaWwgPSBnbG9iYWwuTWF0aC5jZWlsOworICAgIHZh
ciBmbG9vciA9IGdsb2JhbC5NYXRoLmZsb29yOworICAgIHZhciBzcXJ0ID0gZ2xvYmFsLk1hdGgu
c3FydDsKKyAgICB2YXIgY29zID0gZ2xvYmFsLk1hdGguY29zOworICAgIHZhciBzaW4gPSBnbG9i
YWwuTWF0aC5zaW47CisgICAgdmFyIHRhbiA9IGdsb2JhbC5NYXRoLnRhbjsKKyAgICB2YXIgYWNv
cyA9IGdsb2JhbC5NYXRoLmFjb3M7CisgICAgdmFyIGFzaW4gPSBnbG9iYWwuTWF0aC5hc2luOwor
ICAgIHZhciBhdGFuID0gZ2xvYmFsLk1hdGguYXRhbjsKKyAgICB2YXIgYXRhbjIgPSBnbG9iYWwu
TWF0aC5hdGFuMjsKKyAgICB2YXIgZXhwID0gZ2xvYmFsLk1hdGguZXhwOworICAgIHZhciBsb2cg
PSBnbG9iYWwuTWF0aC5sb2c7CisgICAgdmFyIHBvdyA9IGdsb2JhbC5NYXRoLnBvdzsKKwogICAg
IGZ1bmN0aW9uIG51bWJlcigpIHsKICAgICAgICAgcmV0dXJuIDQuMjsKICAgICB9CiAKKyAgICBm
dW5jdGlvbiBuZWdhdGUoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiAteDsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBhZGQoeCwgeSkgeworICAgICAgICB4ID0gK3g7CisgICAg
ICAgIHkgPSAreTsKKyAgICAgICAgcmV0dXJuIHggKyB5OworICAgIH0KKworICAgIGZ1bmN0aW9u
IHN1YnRyYWN0KHgsIHkpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7CisgICAg
ICAgIHJldHVybiB4IC0geTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBtdWx0aXBseSh4LCB5KSB7
CisgICAgICAgIHggPSAreDsKKyAgICAgICAgeSA9ICt5OworICAgICAgICByZXR1cm4geCAqIHk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gZGl2aWRlKHgsIHkpIHsKKyAgICAgICAgeCA9ICt4Owor
ICAgICAgICB5ID0gK3k7CisgICAgICAgIHJldHVybiB4IC8geTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBtb2R1bG8oeCwgeSkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHkgPSAreTsKKyAg
ICAgICAgcmV0dXJuIHggJSB5OworICAgIH0KKworICAgIGZ1bmN0aW9uIGFic29sdXRlKHgpIHsK
KyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gYWJzKHgpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIGNlaWxOdW1iZXIoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBj
ZWlsKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZsb29yTnVtYmVyKHgpIHsKKyAgICAgICAg
eCA9ICt4OworICAgICAgICByZXR1cm4gZmxvb3IoeCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3F1YXJlUm9vdCh4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIHNxcnQoeCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gY29zaW5lKHgpIHsKKyAgICAgICAgeCA9ICt4OworICAg
ICAgICByZXR1cm4gY29zKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNpbmUoeCkgeworICAg
ICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBzaW4oeCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gdGFuZ2VudCh4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIHRhbih4KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBhcmNjb3NpbmUoeCkgeworICAgICAgICB4ID0gK3g7Cisg
ICAgICAgIHJldHVybiBhY29zKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFyY3NpbmUoeCkg
eworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBhc2luKHgpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGFyY3RhbmdlbnQoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVy
biBhdGFuKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFyY3RhbmdlbnQyKHgsIHkpIHsKKyAg
ICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAgIHJldHVybiBhdGFuMih4LCB5
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBleHBvbmVudGlhbCh4KSB7CisgICAgICAgIHggPSAr
eDsKKyAgICAgICAgcmV0dXJuIGV4cCh4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2dhcml0
aG0oeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBsb2coeCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcG93ZXIoeCwgeSkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHkg
PSAreTsKKyAgICAgICAgcmV0dXJuIHBvdyh4LCB5KTsKKyAgICB9CisKICAgICByZXR1cm4gewog
ICAgICAgICBudW1iZXI6IG51bWJlciwKKyAgICAgICAgbmVnYXRlOiBuZWdhdGUsCisgICAgICAg
IGFkZDogYWRkLAorICAgICAgICBzdWJ0cmFjdDogc3VidHJhY3QsCisgICAgICAgIG11bHRpcGx5
OiBtdWx0aXBseSwKKyAgICAgICAgZGl2aWRlOiBkaXZpZGUsCisgICAgICAgIG1vZHVsbzogbW9k
dWxvLAorICAgICAgICBhYnNvbHV0ZTogYWJzb2x1dGUsCisgICAgICAgIGNlaWxOdW1iZXI6IGNl
aWxOdW1iZXIsCisgICAgICAgIGZsb29yTnVtYmVyOiBmbG9vck51bWJlciwKKyAgICAgICAgc3F1
YXJlUm9vdDogc3F1YXJlUm9vdCwKKyAgICAgICAgY29zaW5lOiBjb3NpbmUsCisgICAgICAgIHNp
bmU6IHNpbmUsCisgICAgICAgIHRhbmdlbnQ6IHRhbmdlbnQsCisgICAgICAgIGFyY2Nvc2luZTog
YXJjY29zaW5lLAorICAgICAgICBhcmNzaW5lOiBhcmNzaW5lLAorICAgICAgICBhcmN0YW5nZW50
OiBhcmN0YW5nZW50LAorICAgICAgICBhcmN0YW5nZW50MjogYXJjdGFuZ2VudDIsCisgICAgICAg
IGV4cG9uZW50aWFsOiBleHBvbmVudGlhbCwKKyAgICAgICAgbG9nYXJpdGhtOiBsb2dhcml0aG0s
CisgICAgICAgIHBvd2VyOiBwb3dlciwKICAgICB9OwogfQogKi8KQEAgLTI0LDMgKzE2Niw0MCBA
QCBmdW5jdGlvbiBhc21Nb2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewogdmFyIG1vZHVsZSA9
IGxvYWRXZWJBc3NlbWJseSgid2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbSIpOwogCiBzaG91
bGRCZShtb2R1bGUubnVtYmVyKCksIDQuMik7CitzaG91bGRCZShtb2R1bGUubmVnYXRlKDQuMiks
IC00LjIpOworc2hvdWxkQmUobW9kdWxlLmFkZCgwLjEsIDAuNSksIDAuNik7CitzaG91bGRCZShp
c05hTihtb2R1bGUuYWRkKDAuMSwgTmFOKSksIHRydWUpOworc2hvdWxkQmUobW9kdWxlLmFkZCgw
LjEsIEluZmluaXR5KSwgSW5maW5pdHkpOworc2hvdWxkQmUoaXNOYU4obW9kdWxlLmFkZChJbmZp
bml0eSwgLUluZmluaXR5KSksIHRydWUpOworc2hvdWxkQmUobW9kdWxlLnN1YnRyYWN0KDAuMSwg
MC41KSwgLTAuNCk7CitzaG91bGRCZShtb2R1bGUubXVsdGlwbHkoMC4xLCAwLjUpLCAwLjA1KTsK
K3Nob3VsZEJlKG1vZHVsZS5kaXZpZGUoMC4xLCAwLjUpLCAwLjIpOworc2hvdWxkQmUobW9kdWxl
LmRpdmlkZSgwLjEsIDApLCBJbmZpbml0eSk7CitzaG91bGRCZShtb2R1bGUuZGl2aWRlKDAuMSwg
LTApLCAtSW5maW5pdHkpOworc2hvdWxkQmUobW9kdWxlLm1vZHVsbygwLjEsIDAuMDMpLCAwLjAx
MDAwMDAwMDAwMDAwMDAwOSk7CitzaG91bGRCZShpc05hTihtb2R1bGUubW9kdWxvKDAuMSwgMCkp
LCB0cnVlKTsKK3Nob3VsZEJlKG1vZHVsZS5hYnNvbHV0ZSgtNC4yKSwgNC4yKTsKK3Nob3VsZEJl
KG1vZHVsZS5hYnNvbHV0ZSg0LjIpLCA0LjIpOworc2hvdWxkQmUobW9kdWxlLmNlaWxOdW1iZXIo
NC4yKSwgNSk7CitzaG91bGRCZShtb2R1bGUuZmxvb3JOdW1iZXIoNC4yKSwgNCk7CitzaG91bGRC
ZShtb2R1bGUuc3F1YXJlUm9vdCgwLjA5KSwgMC4zKTsKK3Nob3VsZEJlKG1vZHVsZS5jb3NpbmUo
TWF0aC5QSSksIC0xKTsKK3Nob3VsZEJlKG1vZHVsZS5zaW5lKE1hdGguUEkpLCAxLjIyNDY0Njc5
OTE0NzM1MzJlLTE2KTsKK3Nob3VsZEJlKG1vZHVsZS50YW5nZW50KE1hdGguUEkgLyA0KSwgMC45
OTk5OTk5OTk5OTk5OTk5KTsKK3Nob3VsZEJlKG1vZHVsZS5hcmNjb3NpbmUoMC41KSwgTWF0aC5Q
SSAvIDMpOworc2hvdWxkQmUobW9kdWxlLmFyY3NpbmUoMC41KSwgTWF0aC5QSSAvIDYpOworc2hv
dWxkQmUobW9kdWxlLmFyY3RhbmdlbnQoMSksIE1hdGguUEkgLyA0KTsKK3Nob3VsZEJlKG1vZHVs
ZS5hcmN0YW5nZW50MigxLCAwKSwgTWF0aC5QSSAvIDIpOworc2hvdWxkQmUobW9kdWxlLmV4cG9u
ZW50aWFsKDEpLCBNYXRoLkUpOworc2hvdWxkQmUobW9kdWxlLmxvZ2FyaXRobShNYXRoLkUpLCAx
KTsKK3Nob3VsZEJlKG1vZHVsZS5wb3dlcig0LCAxLjUpLCA4KTsKKworc2hvdWxkQmUobW9kdWxl
LmFkZCgxLCAiMC41IiksIDEuNSk7CitzaG91bGRCZShtb2R1bGUuYWRkKCIxIiwgIjAuNSIpLCAx
LjUpOworc2hvdWxkQmUobW9kdWxlLmFkZCgxLCB0cnVlKSwgMik7CitzaG91bGRCZShpc05hTiht
b2R1bGUuYWRkKDEsIHsgfSkpLCB0cnVlKTsKK3Nob3VsZEJlKGlzTmFOKG1vZHVsZS5hZGQoMSwg
ImFiYyIpKSwgdHJ1ZSk7Cit2YXIgdHdvID0geworICAgIHZhbHVlT2YoKSB7IHJldHVybiAyOyB9
Cit9Oworc2hvdWxkQmUobW9kdWxlLmFkZCgxLCB0d28pLCAzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2Fz
bSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWZs
b2F0NjQud2FzbQppbmRleCA0OWUyMDgxZTAzMTkyZjVhYzVkNTY4ZTg3NGFiNjNlYzczODEyNzEx
Li43YjVmZjI5OTBmMzU0MDViOWZjNmYyZjgxZWI1MGNiMWVkYWNhNGNkIDEwMDY0NApHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgMzc2CnpjbVlNdlN4JjwrNUMtNn0zdVVMSlo5cmwjPnBMZ2wxVXpz
OUNvI2QyP0ZuOGV5bTZIREs1IT1SeENRPSlQeWM4Iwp6bU5GQ0dlRHtJVTxHPmxHPFN8amVWckdC
Z2pCKXMyMU5RWXY4USFOcD5Kc0Jfb302VGg/MCl0amRxfCVnNXkhKnsKemFZfiNLPWZzcV9BVEVp
a2UwTlJ0aFBkdEt0Z3o5UChnOWY2aCMtTjl4KDRvSjhKd3NCXmkwJTJ3ZllAYVlXMXBXCnozOUFP
e3MxZj8yXnImTXhTKnhWZDR+dThrcEVST2Q0amNYQDNNVV5DMThpMzRtNmZvUy00NFB3KGd4VE91
M0J6KApsUV9hZ2tEIT0+VGY0X3IwYFBRT01YRyYtb1g+NWQzO25+MnIjYWE0PSRxeU0jWVlQQVgK
CmxpdGVyYWwgNDcKcGNtWFI8RVlBSkghfmc8fTVETHM+VX0jfEVYRlBpYjFPeXh5OFNfZVdsVHdR
cTd5I2ZfM2dgZDsKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNN
RnVuY3Rpb25Db21waWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0
aW9uQ29tcGlsZXIuaAppbmRleCA3MTQ5MmE0M2JiNjc1N2M4MDI3YjQ3NGNjMDQwMWQzNjllZGJk
NDRmLi4zOGU3MTM4M2E3YThlZDk3MDIwOTJlMjU5MGI0MTcyOTI1ZmRhNGRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmgKQEAgLTM3
LDYgKzM3LDE2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitzdGF0aWMgaW50MzJfdCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkNvbnZlcnRKU1ZhbHVlVG9JbnQzMihFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIHZhbHVlKQoreworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodmFsdWUp
LnRvSW50MzIoZXhlYyk7Cit9CisKK3N0YXRpYyBkb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Db252ZXJ0SlNWYWx1ZVRvRG91YmxlKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
dmFsdWUpCit7CisgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9OdW1iZXIoZXhl
Yyk7Cit9CisKICNpZiAhQ1BVKFg4NikgJiYgIUNQVShYODZfNjQpCiBzdGF0aWMgaW50MzJfdCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpdihpbnQzMl90IGxlZnQsIGludDMyX3QgcmlnaHQpCiB7
CkBAIC01OSw2ICs2OSwxNyBAQCBzdGF0aWMgdWludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRp
b25VbnNpZ25lZE1vZCh1aW50MzJfdCBsZWZ0LCB1aW50MzJfdCByaWdodAogfQogI2VuZGlmCiAK
Ky8vIE9uIFdpbmRvd3Mgd2UgbmVlZCB0byB3cmFwIGZtb2Q7IG9uIG90aGVyIHBsYXRmb3JtcyB3
ZSBjYW4gY2FsbCBpdCBkaXJlY3RseS4KKy8vIE9uIEFSTXY3IHdlIGFzc2VydCB0aGF0IGFsbCBm
dW5jdGlvbiBwb2ludGVycyBoYXZlIHRvIGxvdyBiaXQgc2V0IChwb2ludCB0byB0aHVtYiBjb2Rl
KS4KKyNpZiBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTCB8fCBDUFUoQVJNX1RIVU1CMikK
K3N0YXRpYyBkb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25GbW9kKGRvdWJsZSB4LCBkb3Vi
bGUgeSkKK3sKKyAgICByZXR1cm4gZm1vZCh4LCB5KTsKK30KKyNlbHNlCisjZGVmaW5lIG9wZXJh
dGlvbkZtb2QgZm1vZAorI2VuZGlmCisKIGNsYXNzIFdBU01GdW5jdGlvbkNvbXBpbGVyIDogcHJp
dmF0ZSBDQ2FsbEhlbHBlcnMgewogcHVibGljOgogICAgIHR5cGVkZWYgaW50IEV4cHJlc3Npb247
CkBAIC04Miw3ICsxMDMsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgbV9iZWdpbkxhYmVsID0gbGFi
ZWwoKTsKIAotICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1XVEY6OnJvdW5kVXBUb011bHRp
cGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbV9zdGFja0hlaWdodCkgKiBzaXplb2Yo
U3RhY2tTbG90KSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7
CisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1fc3RhY2tIZWlnaHQpLCBHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDEpOwogICAgICAgICBtX3N0YWNrT3ZlcmZs
b3cgPSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRkcmVzcyhtX3ZtLT5hZGRyZXNzT2ZTdGFj
a0xpbWl0KCkpLCBHUFJJbmZvOjpyZWdUMSk7CiAKICAgICAgICAgbW92ZShHUFJJbmZvOjpyZWdU
MSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtOTUsMTggKzExNiwyMiBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBBZGRyZXNzIGFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENh
bGxGcmFtZTo6YXJndW1lbnRPZmZzZXQoaSkgKiBzaXplb2YoUmVnaXN0ZXIpKTsKICAgICAgICAg
ICAgIHN3aXRjaCAoYXJndW1lbnRzW2ldKSB7CiAgICAgICAgICAgICBjYXNlIFdBU01UeXBlOjpJ
MzI6Ci0gICAgICAgICAgICAgICAgbG9hZDMyKGFkZHJlc3MsIEdQUkluZm86OnJlZ1QwKTsKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgICAgIGxvYWRWYWx1ZUFuZENvbnZlcnRUb0lu
dDMyKGFkZHJlc3MsIEdQUkluZm86OnJlZ1QwKTsKKyNlbHNlCisgICAgICAgICAgICAgICAgbG9h
ZFZhbHVlQW5kQ29udmVydFRvSW50MzIoYWRkcmVzcywgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86
OnJlZ1QxKTsKKyNlbmRpZgogICAgICAgICAgICAgICAgIHN0b3JlMzIoR1BSSW5mbzo6cmVnVDAs
IGxvY2FsQWRkcmVzcyhsb2NhbEluZGV4KyspKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIGNhc2UgV0FTTVR5cGU6OkYzMjoKLSAgICAgICAgICAgICAgICBsb2FkNjQoYWRk
cmVzcywgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAgICAgIHVuYm94RG91YmxlV2l0aG91
dEFzc2VydGlvbnMoR1BSSW5mbzo6cmVnVDAsIEZQUkluZm86OmZwUmVnVDApOwotICAgICAgICAg
ICAgICAgIGNvbnZlcnREb3VibGVUb0Zsb2F0KEZQUkluZm86OmZwUmVnVDAsIEZQUkluZm86OmZw
UmVnVDApOwotICAgICAgICAgICAgICAgIHN0b3JlRG91YmxlKEZQUkluZm86OmZwUmVnVDAsIGxv
Y2FsQWRkcmVzcyhsb2NhbEluZGV4KyspKTsKLSAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGNhc2UgV0FTTVR5cGU6OkY2NDoKLSAgICAgICAgICAgICAgICBsb2FkNjQoYWRkcmVz
cywgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAgICAgIHVuYm94RG91YmxlV2l0aG91dEFz
c2VydGlvbnMoR1BSSW5mbzo6cmVnVDAsIEZQUkluZm86OmZwUmVnVDApOworI2lmIFVTRShKU1ZB
TFVFNjQpCisgICAgICAgICAgICAgICAgbG9hZFZhbHVlQW5kQ29udmVydFRvRG91YmxlKGFkZHJl
c3MsIEZQUkluZm86OmZwUmVnVDAsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSk7Cisj
ZWxzZQorICAgICAgICAgICAgICAgIGxvYWRWYWx1ZUFuZENvbnZlcnRUb0RvdWJsZShhZGRyZXNz
LCBGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEsIEdQUklu
Zm86OnJlZ1QyLCBGUFJJbmZvOjpmcFJlZ1QxKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGlm
IChhcmd1bWVudHNbaV0gPT0gV0FTTVR5cGU6OkYzMikKKyAgICAgICAgICAgICAgICAgICAgY29u
dmVydERvdWJsZVRvRmxvYXQoRlBSSW5mbzo6ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMCk7CiAg
ICAgICAgICAgICAgICAgc3RvcmVEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgbG9jYWxBZGRyZXNz
KGxvY2FsSW5kZXgrKykpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVm
YXVsdDoKQEAgLTE0Nyw4ICsxNzIsNiBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghbV9kaXZpZGVF
cnJvckp1bXBMaXN0LmVtcHR5KCkpIHsKICAgICAgICAgICAgIG1fZGl2aWRlRXJyb3JKdW1wTGlz
dC5saW5rKHRoaXMpOwogCi0gICAgICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwpCi0gICAgICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgICAgICAgICBz
ZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOwogICAgICAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVjayhvcGVyYXRpb25UaHJvd0RpdmlkZUVycm9yKTsKICAgICAgICAgfQpAQCAtMzA1
LDYgKzMyOCw1NiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAgfQogCisg
ICAgaW50IGJ1aWxkVW5hcnlGNjQoaW50LCBXQVNNT3BFeHByZXNzaW9uRjY0IG9wKQorICAgIHsK
KyAgICAgICAgbG9hZERvdWJsZSh0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSks
IEZQUkluZm86OmZwUmVnVDEpOworICAgICAgICBzd2l0Y2ggKG9wKSB7CisgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6TmVnYXRlOgorICAgICAgICAgICAgbmVnYXRlRG91YmxlKEZQ
UkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QWJzOgorICAgICAgICAgICAgYWJzRG91
YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoKKyAgICAgICAgICAg
IGNhbGxPcGVyYXRpb24oY2VpbCwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpG
bG9vcjoKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24oZmxvb3IsIEZQUkluZm86OmZwUmVnVDEs
IEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FT
TU9wRXhwcmVzc2lvbkY2NDo6U3FydDoKKyAgICAgICAgICAgIHNxcnREb3VibGUoRlBSSW5mbzo6
ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDb3M6CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9u
KGNvcywgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTaW46CisgICAgICAgICAg
ICBjYWxsT3BlcmF0aW9uKHNpbiwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpU
YW46CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKHRhbiwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBS
SW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpBQ29zOgorICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihhY29zLCBGUFJJ
bmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFTaW46CisgICAgICAgICAgICBjYWxsT3Bl
cmF0aW9uKGFzaW4sIEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjoKKyAg
ICAgICAgICAgIGNhbGxPcGVyYXRpb24oYXRhbiwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6
ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0OjpFeHA6CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKGV4cCwgRlBSSW5mbzo6ZnBS
ZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpMbjoKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obG9n
LCBGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIH0KKyAgICAgICAgc3RvcmVEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgdGVtcG9yYXJ5
QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDEpKTsKKyAgICAgICAgcmV0dXJuIFVOVVNFRDsKKyAg
ICB9CisKICAgICBpbnQgYnVpbGRCaW5hcnlJMzIoaW50LCBpbnQsIFdBU01PcEV4cHJlc3Npb25J
MzIgb3ApCiAgICAgewogICAgICAgICBsb2FkMzIodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFj
a1RvcCAtIDIpLCBHUFJJbmZvOjpyZWdUMCk7CkBAIC0zNDQsOCArNDE3LDYgQEAgcHVibGljOgog
ICAgICAgICAgICAgICAgIG1vdmUoWDg2UmVnaXN0ZXJzOjplZHgsIEdQUkluZm86OnJlZ1QwKTsK
ICNlbHNlCiAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gYW4g
aW5saW5lIGRpdiBvbiBBUk12NyBhbmQgQVJNNjQuCi0gICAgICAgICAgICBpZiAobWF4RnJhbWVF
eHRlbnRGb3JTbG93UGF0aENhbGwpCi0gICAgICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0z
MigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CiAgICAgICAgICAgICBzd2l0Y2ggKG9wKSB7CiAgICAgICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25JMzI6OlNEaXY6CiAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25E
aXYsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDApOwpAQCAt
MzYyLDggKzQzMyw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCi0gICAgICAgICAgICAgICAgYWRkUHRy
KFRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKICNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTM5
Myw2ICs0NjIsNDAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gVU5VU0VEOwogICAgIH0KIAor
ICAgIGludCBidWlsZEJpbmFyeUY2NChpbnQsIGludCwgV0FTTU9wRXhwcmVzc2lvbkY2NCBvcCkK
KyAgICB7CisgICAgICAgIGxvYWREb3VibGUodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1Rv
cCAtIDIpLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgbG9hZERvdWJsZSh0ZW1wb3JhcnlB
ZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSksIEZQUkluZm86OmZwUmVnVDEpOworICAgICAgICBz
d2l0Y2ggKG9wKSB7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QWRkOgorICAg
ICAgICAgICAgYWRkRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3Vi
OgorICAgICAgICAgICAgc3ViRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVn
VDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6TXVsOgorICAgICAgICAgICAgbXVsRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86
OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6RGl2OgorICAgICAgICAgICAgZGl2RG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQ
UkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6TW9kOgorICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25G
bW9kLCBGUFJJbmZvOjpmcFJlZ1QwLCBGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1Qw
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6
OkFUYW4yOgorICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihhdGFuMiwgRlBSSW5mbzo6ZnBSZWdU
MCwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpQb3c6CisgICAgICAgICAgICBj
YWxsT3BlcmF0aW9uKHBvdywgRlBSSW5mbzo6ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBS
SW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgICAgIG1fdGVt
cFN0YWNrVG9wLS07CisgICAgICAgIHN0b3JlRG91YmxlKEZQUkluZm86OmZwUmVnVDAsIHRlbXBv
cmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAxKSk7CisgICAgICAgIHJldHVybiBVTlVTRUQ7
CisgICAgfQorCiAgICAgaW50IGJ1aWxkUmVsYXRpb25hbEkzMihpbnQsIGludCwgV0FTTU9wRXhw
cmVzc2lvbkkzMiBvcCkKICAgICB7CiAgICAgICAgIGxvYWQzMih0ZW1wb3JhcnlBZGRyZXNzKG1f
dGVtcFN0YWNrVG9wIC0gMiksIEdQUkluZm86OnJlZ1QwKTsKQEAgLTUzNiw3ICs2MzksNyBAQCBw
cml2YXRlOgogCiAgICAgQWRkcmVzcyB0ZW1wb3JhcnlBZGRyZXNzKHVuc2lnbmVkIHRlbXBvcmFy
eUluZGV4KSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fbnVtYmVyT2ZMb2NhbHMgKyB0
ZW1wb3JhcnlJbmRleCA8IG1fc3RhY2tIZWlnaHQpOworICAgICAgICBBU1NFUlQoKG1fbnVtYmVy
T2ZMb2NhbHMgKyB0ZW1wb3JhcnlJbmRleCArIDEpICogc2l6ZW9mKFN0YWNrU2xvdCkgPD0gbV9z
dGFja0hlaWdodCk7CiAgICAgICAgIHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyLCAtKG1fbnVtYmVyT2ZMb2NhbHMgKyB0ZW1wb3JhcnlJbmRleCArIDEpICogc2l6ZW9m
KFN0YWNrU2xvdCkpOwogICAgIH0KIApAQCAtNTUxLDIwICs2NTQsMTQ3IEBAIHByaXZhdGU6CiAg
ICAgICAgIG1fZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChlbWl0RXhjZXB0aW9uQ2hlY2soKSk7CiAg
ICAgfQogCisgICAgdm9pZCBhcHBlbmRDYWxsU2V0UmVzdWx0KGNvbnN0IEZ1bmN0aW9uUHRyJiBm
dW5jdGlvbiwgR1BSUmVnIHJlc3VsdCkKKyAgICB7CisgICAgICAgIGFwcGVuZENhbGwoZnVuY3Rp
b24pOworICAgICAgICBtb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1bHQpOworICAg
IH0KKworI2lmIENQVShYODYpCisgICAgdm9pZCBhcHBlbmRDYWxsU2V0UmVzdWx0KGNvbnN0IEZ1
bmN0aW9uUHRyJiBmdW5jdGlvbiwgRlBSUmVnIHJlc3VsdCkKKyAgICB7CisgICAgICAgIGFwcGVu
ZENhbGwoZnVuY3Rpb24pOworICAgICAgICBtX2Fzc2VtYmxlci5mc3RwbCgwLCBzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CisgICAgICAgIGxvYWREb3VibGUoc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHJl
c3VsdCk7CisgICAgfQorI2VsaWYgQ1BVKEFSTSkgJiYgIUNQVShBUk1fSEFSREZQKQorICAgIHZv
aWQgYXBwZW5kQ2FsbFNldFJlc3VsdChjb25zdCBGdW5jdGlvblB0ciYgZnVuY3Rpb24sIEZQUlJl
ZyByZXN1bHQpCisgICAgeworICAgICAgICBhcHBlbmRDYWxsKGZ1bmN0aW9uKTsKKyAgICAgICAg
bV9hc3NlbWJsZXIudm1vdihyZXN1bHQsIEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUjIpOworICAgIH0KKyNlbHNlIC8vIENQVShYODZfNjQpIHx8IChDUFUo
QVJNKSAmJiBDUFUoQVJNX0hBUkRGUCkpIHx8IENQVShBUk02NCkgfHwgQ1BVKE1JUFMpIHx8IENQ
VShTSDQpCisgICAgdm9pZCBhcHBlbmRDYWxsU2V0UmVzdWx0KGNvbnN0IEZ1bmN0aW9uUHRyJiBm
dW5jdGlvbiwgRlBSUmVnIHJlc3VsdCkKKyAgICB7CisgICAgICAgIGFwcGVuZENhbGwoZnVuY3Rp
b24pOworICAgICAgICBtb3ZlRG91YmxlKEZQUkluZm86OnJldHVyblZhbHVlRlBSLCByZXN1bHQp
OworICAgIH0KKyNlbmRpZgorCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICB2b2lkIGNhbGxPcGVy
YXRpb24oRF9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgc3JjLCBGUFJSZWcgZHN0
KQorICAgIHsKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHNyYyk7CisgICAg
ICAgIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCBkc3QpOworICAgIH0KKworICAgIHZv
aWQgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIEdQUlJlZyBzcmMs
IEdQUlJlZyBkc3QpCisgICAgeworICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
c3JjKTsKKyAgICAgICAgYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIGRzdCk7CisgICAg
fQorI2Vsc2UKKyAgICB2b2lkIGNhbGxPcGVyYXRpb24oRF9KSVRPcGVyYXRpb25fRUogb3BlcmF0
aW9uLCBHUFJSZWcgc3JjVGFnLCBHUFJSZWcgc3JjUGF5bG9hZCwgRlBSUmVnIGRzdCkKKyAgICB7
CisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FS
RyBzcmNQYXlsb2FkLCBzcmNUYWcpOworICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJh
dGlvbiwgZHN0KTsKKyAgICB9CisKKyAgICB2b2lkIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRp
b25fRUogb3BlcmF0aW9uLCBHUFJSZWcgc3JjVGFnLCBHUFJSZWcgc3JjUGF5bG9hZCwgR1BSUmVn
IGRzdCkKKyAgICB7CisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMy
QklUX0RVTU1ZX0FSRyBzcmNQYXlsb2FkLCBzcmNUYWcpOworICAgICAgICBhcHBlbmRDYWxsU2V0
UmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKKyAgICB9CisjZW5kaWYKKwogICAgIHZvaWQgY2FsbE9w
ZXJhdGlvbihpbnQzMl90IEpJVF9PUEVSQVRJT04gKCpvcGVyYXRpb24pKGludDMyX3QsIGludDMy
X3QpLCBHUFJSZWcgc3JjMSwgR1BSUmVnIHNyYzIsIEdQUlJlZyBkc3QpCiAgICAgewogICAgICAg
ICBzZXR1cEFyZ3VtZW50cyhzcmMxLCBzcmMyKTsKLSAgICAgICAgYXBwZW5kQ2FsbChvcGVyYXRp
b24pOwotICAgICAgICBtb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBkc3QpOworICAgICAg
ICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKICAgICB9CiAKICAgICB2b2lk
IGNhbGxPcGVyYXRpb24odWludDMyX3QgSklUX09QRVJBVElPTiAoKm9wZXJhdGlvbikodWludDMy
X3QsIHVpbnQzMl90KSwgR1BSUmVnIHNyYzEsIEdQUlJlZyBzcmMyLCBHUFJSZWcgZHN0KQogICAg
IHsKICAgICAgICAgc2V0dXBBcmd1bWVudHMoc3JjMSwgc3JjMik7Ci0gICAgICAgIGFwcGVuZENh
bGwob3BlcmF0aW9uKTsKLSAgICAgICAgbW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZHN0
KTsKKyAgICAgICAgYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIGRzdCk7CisgICAgfQor
CisgICAgdm9pZCBjYWxsT3BlcmF0aW9uKERfSklUT3BlcmF0aW9uX0Qgb3BlcmF0aW9uLCBGUFJl
Z2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgc2V0dXBBcmd1
bWVudHMoc3JjKTsKKyAgICAgICAgYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIGRzdCk7
CisgICAgfQorCisgICAgdm9pZCBjYWxsT3BlcmF0aW9uKERfSklUT3BlcmF0aW9uX0REIG9wZXJh
dGlvbiwgRlBSZWdpc3RlcklEIHNyYzEsIEZQUmVnaXN0ZXJJRCBzcmMyLCBGUFJlZ2lzdGVySUQg
ZHN0KQorICAgIHsKKyAgICAgICAgc2V0dXBBcmd1bWVudHMoc3JjMSwgc3JjMik7CisgICAgICAg
IGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogICAgIH0KIAorI2lmIFVTRShK
U1ZBTFVFNjQpCisgICAgdm9pZCBsb2FkVmFsdWVBbmRDb252ZXJ0VG9JbnQzMihBZGRyZXNzIGFk
ZHJlc3MsIEdQUlJlZyBkc3QpCisgICAgeworICAgICAgICBKU1ZhbHVlUmVncyB0ZW1wUmVncyhk
c3QpOworICAgICAgICBsb2FkVmFsdWUoYWRkcmVzcywgdGVtcFJlZ3MpOworICAgICAgICBKdW1w
IGNoZWNrSlNJbnQzMiA9IGJyYW5jaElmSW50MzIodGVtcFJlZ3MpOworCisgICAgICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uQ29udmVydEpTVmFsdWVUb0ludDMyLCBkc3QsIGRzdCk7CisKKyAg
ICAgICAgY2hlY2tKU0ludDMyLmxpbmsodGhpcyk7CisgICAgfQorCisgICAgdm9pZCBsb2FkVmFs
dWVBbmRDb252ZXJ0VG9Eb3VibGUoQWRkcmVzcyBhZGRyZXNzLCBGUFJSZWcgZHN0LCBHUFJSZWcg
c2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMikKKyAgICB7CisgICAgICAgIEpTVmFsdWVSZWdzIHRl
bXBSZWdzKHNjcmF0Y2gxKTsKKyAgICAgICAgbG9hZFZhbHVlKGFkZHJlc3MsIHRlbXBSZWdzKTsK
KyAgICAgICAgSnVtcCBjaGVja0pTSW50MzIgPSBicmFuY2hJZkludDMyKHRlbXBSZWdzKTsKKyAg
ICAgICAgSnVtcCBjaGVja0pTTnVtYmVyID0gYnJhbmNoSWZOdW1iZXIodGVtcFJlZ3MsIHNjcmF0
Y2gyKTsKKyAgICAgICAgSnVtcExpc3QgZW5kOworCisgICAgICAgIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uQ29udmVydEpTVmFsdWVUb0RvdWJsZSwgdGVtcFJlZ3MuZ3ByKCksIGRzdCk7CisgICAg
ICAgIGVuZC5hcHBlbmQoanVtcCgpKTsKKworICAgICAgICBjaGVja0pTSW50MzIubGluayh0aGlz
KTsKKyAgICAgICAgY29udmVydEludDMyVG9Eb3VibGUodGVtcFJlZ3MuZ3ByKCksIGRzdCk7Cisg
ICAgICAgIGVuZC5hcHBlbmQoanVtcCgpKTsKKworICAgICAgICBjaGVja0pTTnVtYmVyLmxpbmso
dGhpcyk7CisgICAgICAgIHVuYm94RG91YmxlV2l0aG91dEFzc2VydGlvbnModGVtcFJlZ3MuZ3By
KCksIGRzdCk7CisgICAgICAgIGVuZC5saW5rKHRoaXMpOworICAgIH0KKyNlbHNlCisgICAgdm9p
ZCBsb2FkVmFsdWVBbmRDb252ZXJ0VG9JbnQzMihBZGRyZXNzIGFkZHJlc3MsIEdQUlJlZyBkc3Qs
IEdQUlJlZyBzY3JhdGNoKQorICAgIHsKKyAgICAgICAgSlNWYWx1ZVJlZ3MgdGVtcFJlZ3Moc2Ny
YXRjaCwgZHN0KTsKKyAgICAgICAgbG9hZFZhbHVlKGFkZHJlc3MsIHRlbXBSZWdzKTsKKyAgICAg
ICAgSnVtcCBjaGVja0pTSW50MzIgPSBicmFuY2hJZkludDMyKHRlbXBSZWdzKTsKKworICAgICAg
ICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNvbnZlcnRKU1ZhbHVlVG9JbnQzMiwgdGVtcFJlZ3Mu
dGFnR1BSKCksIHRlbXBSZWdzLnBheWxvYWRHUFIoKSwgZHN0KTsKKworICAgICAgICBjaGVja0pT
SW50MzIubGluayh0aGlzKTsKKyAgICB9CisKKyAgICB2b2lkIGxvYWRWYWx1ZUFuZENvbnZlcnRU
b0RvdWJsZShBZGRyZXNzIGFkZHJlc3MsIEZQUlJlZyBkc3QsIEdQUlJlZyBzY3JhdGNoMSwgR1BS
UmVnIHNjcmF0Y2gyLCBHUFJSZWcgc2NyYXRjaDMsIEZQUlJlZyBmcFNjcmF0Y2gpCisgICAgewor
ICAgICAgICBKU1ZhbHVlUmVncyB0ZW1wUmVncyhzY3JhdGNoMiwgc2NyYXRjaDEpOworICAgICAg
ICBsb2FkVmFsdWUoYWRkcmVzcywgdGVtcFJlZ3MpOworICAgICAgICBKdW1wIGNoZWNrSlNJbnQz
MiA9IGJyYW5jaElmSW50MzIodGVtcFJlZ3MpOworICAgICAgICBKdW1wIGNoZWNrSlNOdW1iZXIg
PSBicmFuY2hJZk51bWJlcih0ZW1wUmVncywgc2NyYXRjaDMpOworICAgICAgICBKdW1wTGlzdCBl
bmQ7CisKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Db252ZXJ0SlNWYWx1ZVRvRG91
YmxlLCB0ZW1wUmVncy50YWdHUFIoKSwgdGVtcFJlZ3MucGF5bG9hZEdQUigpLCBkc3QpOworICAg
ICAgICBlbmQuYXBwZW5kKGp1bXAoKSk7CisKKyAgICAgICAgY2hlY2tKU0ludDMyLmxpbmsodGhp
cyk7CisgICAgICAgIGNvbnZlcnRJbnQzMlRvRG91YmxlKGVtcFJlZ3MucGF5bG9hZEdQUigpLCBk
c3QpOworICAgICAgICBlbmQuYXBwZW5kKGp1bXAoKSk7CisKKyAgICAgICAgY2hlY2tKU051bWJl
ci5saW5rKHRoaXMpOworICAgICAgICB1bmJveERvdWJsZSh0ZW1wUmVncy50YWdHUFIoKSwgdGVt
cFJlZ3MucGF5bG9hZEdQUigpLCBkc3QsIGZwU2NyYXRjaCkKKyAgICAgICAgZW5kLmxpbmsodGhp
cyk7CisgICAgfQorI2VuZGlmCisKICAgICB1bnNpZ25lZCBtX3N0YWNrSGVpZ2h0OwogICAgIHVu
c2lnbmVkIG1fbnVtYmVyT2ZMb2NhbHM7CiAgICAgdW5zaWduZWQgbV90ZW1wU3RhY2tUb3AgeyAw
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Q
YXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2Vy
LmNwcAppbmRleCBjYjUzZDUyYTU2ZGViMGFmMGY2ZjQ3YzJhNTk2MzBiZjBhMjRhNDY3Li5hOTA3
N2E1NDEzZmYyYzBjYjRhY2NiZTdkOGY0ZTMwMGIwNTIxYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAKQEAgLTY1Niw2ICs2NTYs
MjggQEAgQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Np
b25GNjQoQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgICAgIHJldHVybiBwYXJzZUltbWVkaWF0
ZUV4cHJlc3Npb25GNjQoY29udGV4dCk7CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6R2V0TG9jYWw6CiAgICAgICAgICAgICByZXR1cm4gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25G
NjQoY29udGV4dCk7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TmVnYXRlOgor
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFiczoKKyAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpDZWlsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6
OkZsb29yOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlNxcnQ6CisgICAgICAg
IGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29zOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GNjQ6OlNpbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpUYW46Cisg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QUNvczoKKyAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpBU2luOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6
OkFUYW46CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RXhwOgorICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkxuOgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlVW5h
cnlFeHByZXNzaW9uRjY0KGNvbnRleHQsIG9wKTsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0OjpBZGQ6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3ViOgorICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok11bDoKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpEaXY6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TW9k
OgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW4yOgorICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OlBvdzoKKyAgICAgICAgICAgIHJldHVybiBwYXJzZUJpbmFy
eUV4cHJlc3Npb25GNjQoY29udGV4dCwgb3ApOwogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Np
b25GNjQ6OkdldEdsb2JhbDoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTZXRM
b2NhbDoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTZXRHbG9iYWw6CkBAIC02
NzEsMjggKzY5Myw4IEBAIENvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFy
c2VFeHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkY2NDo6RnJvbVMzMjoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpG
cm9tVTMyOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkZyb21GMzI6Ci0gICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TmVnYXRlOgotICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OkFkZDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpT
dWI6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TXVsOgotICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OkRpdjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpNb2Q6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TWluOgogICAgICAg
ICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok1heDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpBYnM6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoK
LSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGbG9vcjoKLSAgICAgICAgY2FzZSBX
QVNNT3BFeHByZXNzaW9uRjY0OjpTcXJ0OgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
NjQ6OkNvczoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTaW46Ci0gICAgICAg
IGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6VGFuOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GNjQ6OkFDb3M6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVNpbjoK
LSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBVGFuOgotICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6OkFUYW4yOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
NjQ6OkV4cDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpMbjoKLSAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpQb3c6CiAgICAgICAgICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHRoZXNlIGluc3RydWN0aW9ucy4KICAgICAgICAgICAgIEZBSUxfV0lUSF9NRVNTQUdF
KCJVbnN1cHBvcnRlZCBpbnN0cnVjdGlvbi4iKTsKICAgICAgICAgZGVmYXVsdDoKQEAgLTc1MCw2
ICs3NTIsMjQgQEAgQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUdl
dExvY2FsRXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXgKICAgICByZXR1cm4gcGFyc2VHZXRM
b2NhbEV4cHJlc3Npb25GNjQoY29udGV4dCwgbG9jYWxJbmRleCk7CiB9CiAKK3RlbXBsYXRlIDxj
bGFzcyBDb250ZXh0PgorQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJz
ZVVuYXJ5RXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0LCBXQVNNT3BFeHByZXNzaW9uRjY0
IG9wKQoreworICAgIENvbnRleHRFeHByZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJzZUV4cHJlc3Np
b25GNjQoY29udGV4dCk7CisgICAgUFJPUEFHQVRFX0VSUk9SKCk7CisgICAgcmV0dXJuIGNvbnRl
eHQuYnVpbGRVbmFyeUY2NChleHByZXNzaW9uLCBvcCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBD
b250ZXh0PgorQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUJpbmFy
eUV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCwgV0FTTU9wRXhwcmVzc2lvbkY2NCBvcCkK
K3sKKyAgICBDb250ZXh0RXhwcmVzc2lvbiBsZWZ0ID0gcGFyc2VFeHByZXNzaW9uRjY0KGNvbnRl
eHQpOworICAgIFBST1BBR0FURV9FUlJPUigpOworICAgIENvbnRleHRFeHByZXNzaW9uIHJpZ2h0
ID0gcGFyc2VFeHByZXNzaW9uRjY0KGNvbnRleHQpOworICAgIFBST1BBR0FURV9FUlJPUigpOwor
ICAgIHJldHVybiBjb250ZXh0LmJ1aWxkQmluYXJ5RjY0KGxlZnQsIHJpZ2h0LCBvcCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaAppbmRleCAw
MmFhYzUyZDI3YzQ1ZTY5ZDZmMjAxY2NiYmNjZTE4YjU1NmQ3OTgwLi4yODQ1ZTg4NjY3NThkNmFi
NjI3ODBkZjE0ZmQwMDYzMGM5YTZmNGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaApAQCAtOTUsNiArOTUsOCBAQCBwcml2YXRlOgogICAg
IHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUltbWVkaWF0
ZUV4cHJlc3Npb25GNjQoQ29udGV4dCYpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBD
b250ZXh0RXhwcmVzc2lvbiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChDb250ZXh0JiwgdWlu
dDMyX3QgbG9jYWxJbmRleCk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRF
eHByZXNzaW9uIHBhcnNlR2V0TG9jYWxFeHByZXNzaW9uRjY0KENvbnRleHQmKTsKKyAgICB0ZW1w
bGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VVbmFyeUV4cHJlc3Np
b25GNjQoQ29udGV4dCYsIFdBU01PcEV4cHJlc3Npb25GNjQpOworICAgIHRlbXBsYXRlIDxjbGFz
cyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUJpbmFyeUV4cHJlc3Npb25GNjQoQ29u
dGV4dCYsIFdBU01PcEV4cHJlc3Npb25GNjQpOwogCiAgICAgSlNXQVNNTW9kdWxlKiBtX21vZHVs
ZTsKICAgICBXQVNNUmVhZGVyIG1fcmVhZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlci5oCmluZGV4IDg0MmZhYTU5MmE1
NTI3OGMwYzU4YmUyZWNkMGI1Y2M4MTdkMDUxNzguLmMwOTc2YWViOTFhMDk3ZGE0OTk4MWZiMzhl
ZmM2NGNjZTcxOWExZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01GdW5jdGlvblN5bnRheENoZWNrZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyLmgKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkKIAorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsLmgiCisKICNkZWZpbmUgVU5VU0VEIDAKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC04NiwxMiAr
ODgsMjMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gVU5VU0VEOwogICAgIH0KIAorICAgIGlu
dCBidWlsZFVuYXJ5RjY0KGludCwgV0FTTU9wRXhwcmVzc2lvbkY2NCkKKyAgICB7CisgICAgICAg
IHJldHVybiBVTlVTRUQ7CisgICAgfQorCiAgICAgaW50IGJ1aWxkQmluYXJ5STMyKGludCwgaW50
LCBXQVNNT3BFeHByZXNzaW9uSTMyKQogICAgIHsKICAgICAgICAgbV90ZW1wU3RhY2tUb3AtLTsK
ICAgICAgICAgcmV0dXJuIFVOVVNFRDsKICAgICB9CiAKKyAgICBpbnQgYnVpbGRCaW5hcnlGNjQo
aW50LCBpbnQsIFdBU01PcEV4cHJlc3Npb25GNjQpCisgICAgeworICAgICAgICBtX3RlbXBTdGFj
a1RvcC0tOworICAgICAgICByZXR1cm4gVU5VU0VEOworICAgIH0KKwogICAgIGludCBidWlsZFJl
bGF0aW9uYWxJMzIoaW50LCBpbnQsIFdBU01PcEV4cHJlc3Npb25JMzIpCiAgICAgewogICAgICAg
ICBtX3RlbXBTdGFja1RvcC0tOwpAQCAtMTE3LDEyICsxMzAsMTggQEAgcHVibGljOgogICAgIGlu
dCBicmVha0xhYmVsVGFyZ2V0KHVpbnQzMl90KSB7IHJldHVybiBVTlVTRUQ7IH0KICAgICBpbnQg
Y29udGludWVMYWJlbFRhcmdldCh1aW50MzJfdCkgeyByZXR1cm4gVU5VU0VEOyB9CiAKLSAgICB1
bnNpZ25lZCBzdGFja0hlaWdodCgpCisgICAgdW5zaWduZWQgc3RhY2tIZWlnaHQoKSBjb25zdAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbnVtYmVyT2ZMb2NhbHMgKyBtX3RlbXBTdGFja0hlaWdo
dDsKKyAgICAgICAgcmV0dXJuIFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVu
dFJlZ2lzdGVycygpLCBtX251bWJlck9mTG9jYWxzICsgbV90ZW1wU3RhY2tIZWlnaHQpICogc2l6
ZW9mKFN0YWNrU2xvdCkgKyBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbDsKICAgICB9CiAK
IHByaXZhdGU6CisgICAgdW5pb24gU3RhY2tTbG90IHsKKyAgICAgICAgaW50MzJfdCBpbnRWYWx1
ZTsKKyAgICAgICAgZmxvYXQgZmxvYXRWYWx1ZTsKKyAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVl
OworICAgIH07CisKICAgICB2b2lkIHVwZGF0ZVRlbXBTdGFja0hlaWdodCgpCiAgICAgewogICAg
ICAgICBpZiAobV90ZW1wU3RhY2tUb3AgPiBtX3RlbXBTdGFja0hlaWdodCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260994</attachid>
            <date>2015-09-11 01:06:00 -0700</date>
            <delta_ts>2015-09-17 21:19:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148945-20150911040552.patch</filename>
            <type>text/plain</type>
            <size>19141</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
Y2M4Mzc5MGIwNGQxZGNiNDNjZmVkYmIxNTRjZjdjYmRhMmY1Y2E5Li4yYWZlZTFkYTgwNWVhODVj
ZWVmNjUwMGE1MmFmNDY0NGQ0NjkwYjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxNS0wOS0xMSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIGFyaXRobWV0aWMgaW5zdHJ1Y3Rpb25z
IGZvciBkb3VibGVzIGluIFdlYkFzc2VtYmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg5NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGFyaXRobWV0aWMg
aW5zdHJ1Y3Rpb25zIGZvciBkb3VibGVzIChmbG9hdDY0KQorICAgICAgICBpbiBXZWJBc3NlbWJs
eS4KKworICAgICAgICAqIHRlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qczoK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbToKKyAg
ICAgICAgKiB3YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmg6CisgICAgICAgIChKU0M6Om9wZXJh
dGlvbkZtb2QpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6YnVpbGRVbmFy
eUY2NCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpidWlsZEJpbmFyeUY2
NCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpjYWxsT3BlcmF0aW9uKToK
KyAgICAgICAgKiB3YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OldB
U01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjY0KToKKyAgICAgICAgKEpTQzo6V0FT
TUZ1bmN0aW9uUGFyc2VyOjpwYXJzZVVuYXJ5RXhwcmVzc2lvbkY2NCk6CisgICAgICAgIChKU0M6
OldBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VCaW5hcnlFeHByZXNzaW9uRjY0KToKKyAgICAgICAg
KiB3YXNtL1dBU01GdW5jdGlvblBhcnNlci5oOgorICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9u
U3ludGF4Q2hlY2tlci5oOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25TeW50YXhDaGVja2Vy
OjpidWlsZFVuYXJ5RjY0KToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tl
cjo6YnVpbGRCaW5hcnlJMzIpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25TeW50YXhDaGVj
a2VyOjpidWlsZEJpbmFyeUY2NCk6CisKIDIwMTUtMDktMTAgIFN1a29sc2FrIFNha3NodXdvbmcg
IDxzdWtvbHNha0BnbWFpbC5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHN3aXRjaCBzdGF0ZW1l
bnRzIGluIFdlYkFzc2VtYmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qcwppbmRleCA4ZWI1ZTlm
MDYxNjk1ODAxOTc1YzNmMGJhMTEzNzVlZWQ1ZDkyMTQyLi5jNjgzNzI2MGU3MjE2YzFhYjEyNDA3
YWJmOTZmY2ExOTM1MTI2YjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS1hcml0aG1ldGljLWZsb2F0NjQuanMKQEAgLTExLDEy
ICsxMSwxNTQgQEAgd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbSBpcyBnZW5lcmF0ZWQgYnkg
cGFjay1hc21qcyA8aHR0cHM6Ly9naXRodWIuY29tL1dlYkEKIGZ1bmN0aW9uIGFzbU1vZHVsZShn
bG9iYWwsIGVudiwgYnVmZmVyKSB7CiAgICAgInVzZSBhc20iOwogCisgICAgdmFyIGFicyA9IGds
b2JhbC5NYXRoLmFiczsKKyAgICB2YXIgY2VpbCA9IGdsb2JhbC5NYXRoLmNlaWw7CisgICAgdmFy
IGZsb29yID0gZ2xvYmFsLk1hdGguZmxvb3I7CisgICAgdmFyIHNxcnQgPSBnbG9iYWwuTWF0aC5z
cXJ0OworICAgIHZhciBjb3MgPSBnbG9iYWwuTWF0aC5jb3M7CisgICAgdmFyIHNpbiA9IGdsb2Jh
bC5NYXRoLnNpbjsKKyAgICB2YXIgdGFuID0gZ2xvYmFsLk1hdGgudGFuOworICAgIHZhciBhY29z
ID0gZ2xvYmFsLk1hdGguYWNvczsKKyAgICB2YXIgYXNpbiA9IGdsb2JhbC5NYXRoLmFzaW47Cisg
ICAgdmFyIGF0YW4gPSBnbG9iYWwuTWF0aC5hdGFuOworICAgIHZhciBhdGFuMiA9IGdsb2JhbC5N
YXRoLmF0YW4yOworICAgIHZhciBleHAgPSBnbG9iYWwuTWF0aC5leHA7CisgICAgdmFyIGxvZyA9
IGdsb2JhbC5NYXRoLmxvZzsKKyAgICB2YXIgcG93ID0gZ2xvYmFsLk1hdGgucG93OworCiAgICAg
ZnVuY3Rpb24gbnVtYmVyKCkgewogICAgICAgICByZXR1cm4gNC4yOwogICAgIH0KIAorICAgIGZ1
bmN0aW9uIG5lZ2F0ZSh4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIC14Owor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGFkZCh4LCB5KSB7CisgICAgICAgIHggPSAreDsKKyAgICAg
ICAgeSA9ICt5OworICAgICAgICByZXR1cm4geCArIHk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3VidHJhY3QoeCwgeSkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHkgPSAreTsKKyAgICAg
ICAgcmV0dXJuIHggLSB5OworICAgIH0KKworICAgIGZ1bmN0aW9uIG11bHRpcGx5KHgsIHkpIHsK
KyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAgIHJldHVybiB4ICogeTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBkaXZpZGUoeCwgeSkgeworICAgICAgICB4ID0gK3g7Cisg
ICAgICAgIHkgPSAreTsKKyAgICAgICAgcmV0dXJuIHggLyB5OworICAgIH0KKworICAgIGZ1bmN0
aW9uIG1vZHVsbyh4LCB5KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgeSA9ICt5OworICAg
ICAgICByZXR1cm4geCAlIHk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWJzb2x1dGUoeCkgewor
ICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBhYnMoeCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gY2VpbE51bWJlcih4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIGNl
aWwoeCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmxvb3JOdW1iZXIoeCkgeworICAgICAgICB4
ID0gK3g7CisgICAgICAgIHJldHVybiBmbG9vcih4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBz
cXVhcmVSb290KHgpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gc3FydCh4KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBjb3NpbmUoeCkgeworICAgICAgICB4ID0gK3g7CisgICAg
ICAgIHJldHVybiBjb3MoeCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2luZSh4KSB7CisgICAg
ICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIHNpbih4KTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biB0YW5nZW50KHgpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gdGFuKHgpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGFyY2Nvc2luZSh4KSB7CisgICAgICAgIHggPSAreDsKKyAg
ICAgICAgcmV0dXJuIGFjb3MoeCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXJjc2luZSh4KSB7
CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIGFzaW4oeCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gYXJjdGFuZ2VudCh4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJu
IGF0YW4oeCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXJjdGFuZ2VudDIoeCwgeSkgeworICAg
ICAgICB4ID0gK3g7CisgICAgICAgIHkgPSAreTsKKyAgICAgICAgcmV0dXJuIGF0YW4yKHgsIHkp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGV4cG9uZW50aWFsKHgpIHsKKyAgICAgICAgeCA9ICt4
OworICAgICAgICByZXR1cm4gZXhwKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvZ2FyaXRo
bSh4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIGxvZyh4KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBwb3dlcih4LCB5KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgeSA9
ICt5OworICAgICAgICByZXR1cm4gcG93KHgsIHkpOworICAgIH0KKwogICAgIHJldHVybiB7CiAg
ICAgICAgIG51bWJlcjogbnVtYmVyLAorICAgICAgICBuZWdhdGU6IG5lZ2F0ZSwKKyAgICAgICAg
YWRkOiBhZGQsCisgICAgICAgIHN1YnRyYWN0OiBzdWJ0cmFjdCwKKyAgICAgICAgbXVsdGlwbHk6
IG11bHRpcGx5LAorICAgICAgICBkaXZpZGU6IGRpdmlkZSwKKyAgICAgICAgbW9kdWxvOiBtb2R1
bG8sCisgICAgICAgIGFic29sdXRlOiBhYnNvbHV0ZSwKKyAgICAgICAgY2VpbE51bWJlcjogY2Vp
bE51bWJlciwKKyAgICAgICAgZmxvb3JOdW1iZXI6IGZsb29yTnVtYmVyLAorICAgICAgICBzcXVh
cmVSb290OiBzcXVhcmVSb290LAorICAgICAgICBjb3NpbmU6IGNvc2luZSwKKyAgICAgICAgc2lu
ZTogc2luZSwKKyAgICAgICAgdGFuZ2VudDogdGFuZ2VudCwKKyAgICAgICAgYXJjY29zaW5lOiBh
cmNjb3NpbmUsCisgICAgICAgIGFyY3NpbmU6IGFyY3NpbmUsCisgICAgICAgIGFyY3RhbmdlbnQ6
IGFyY3RhbmdlbnQsCisgICAgICAgIGFyY3RhbmdlbnQyOiBhcmN0YW5nZW50MiwKKyAgICAgICAg
ZXhwb25lbnRpYWw6IGV4cG9uZW50aWFsLAorICAgICAgICBsb2dhcml0aG06IGxvZ2FyaXRobSwK
KyAgICAgICAgcG93ZXI6IHBvd2VyLAogICAgIH07CiB9CiAqLwpAQCAtMjQsMyArMTY2LDMwIEBA
IGZ1bmN0aW9uIGFzbU1vZHVsZShnbG9iYWwsIGVudiwgYnVmZmVyKSB7CiB2YXIgbW9kdWxlID0g
bG9hZFdlYkFzc2VtYmx5KCJ3YXNtL2FyaXRobWV0aWMtZmxvYXQ2NC53YXNtIik7CiAKIHNob3Vs
ZEJlKG1vZHVsZS5udW1iZXIoKSwgNC4yKTsKK3Nob3VsZEJlKG1vZHVsZS5uZWdhdGUoMC4xKSwg
LTAuMSk7CitzaG91bGRCZShtb2R1bGUuYWRkKDAuMSwgMC41KSwgMC42KTsKK3Nob3VsZEJlKGlz
TmFOKG1vZHVsZS5hZGQoMC4xLCBOYU4pKSwgdHJ1ZSk7CitzaG91bGRCZShtb2R1bGUuYWRkKDAu
MSwgSW5maW5pdHkpLCBJbmZpbml0eSk7CitzaG91bGRCZShpc05hTihtb2R1bGUuYWRkKEluZmlu
aXR5LCAtSW5maW5pdHkpKSwgdHJ1ZSk7CitzaG91bGRCZShtb2R1bGUuc3VidHJhY3QoMC4xLCAw
LjUpLCAtMC40KTsKK3Nob3VsZEJlKG1vZHVsZS5tdWx0aXBseSgwLjEsIDAuNSksIDAuMDUpOwor
c2hvdWxkQmUobW9kdWxlLmRpdmlkZSgwLjEsIDAuNSksIDAuMik7CitzaG91bGRCZShtb2R1bGUu
ZGl2aWRlKDAuMSwgMCksIEluZmluaXR5KTsKK3Nob3VsZEJlKG1vZHVsZS5kaXZpZGUoMC4xLCAt
MCksIC1JbmZpbml0eSk7CitzaG91bGRCZShtb2R1bGUubW9kdWxvKDAuMSwgMC4wMyksIDAuMDEw
MDAwMDAwMDAwMDAwMDA5KTsKK3Nob3VsZEJlKGlzTmFOKG1vZHVsZS5tb2R1bG8oMC4xLCAwKSks
IHRydWUpOworc2hvdWxkQmUobW9kdWxlLmFic29sdXRlKC00LjIpLCA0LjIpOworc2hvdWxkQmUo
bW9kdWxlLmFic29sdXRlKDQuMiksIDQuMik7CitzaG91bGRCZShtb2R1bGUuY2VpbE51bWJlcig0
LjIpLCA1KTsKK3Nob3VsZEJlKG1vZHVsZS5mbG9vck51bWJlcig0LjIpLCA0KTsKK3Nob3VsZEJl
KG1vZHVsZS5zcXVhcmVSb290KDAuMDkpLCAwLjMpOworc2hvdWxkQmUobW9kdWxlLmNvc2luZShN
YXRoLlBJKSwgLTEpOworc2hvdWxkQmUobW9kdWxlLnNpbmUoTWF0aC5QSSAvIDIpLCAxKTsKK3No
b3VsZEJlKG1vZHVsZS50YW5nZW50KE1hdGguUEkgLyA0KSwgMC45OTk5OTk5OTk5OTk5OTk5KTsK
K3Nob3VsZEJlKG1vZHVsZS5hcmNjb3NpbmUoMC41KSwgTWF0aC5QSSAvIDMpOworc2hvdWxkQmUo
bW9kdWxlLmFyY3NpbmUoMC41KSwgTWF0aC5QSSAvIDYpOworc2hvdWxkQmUobW9kdWxlLmFyY3Rh
bmdlbnQoMSksIE1hdGguUEkgLyA0KTsKK3Nob3VsZEJlKG1vZHVsZS5hcmN0YW5nZW50MigxLCAw
KSwgTWF0aC5QSSAvIDIpOworc2hvdWxkQmUobW9kdWxlLmV4cG9uZW50aWFsKDEpLCBNYXRoLkUp
Oworc2hvdWxkQmUobW9kdWxlLmxvZ2FyaXRobShNYXRoLkUpLCAxKTsKK3Nob3VsZEJlKG1vZHVs
ZS5wb3dlcig0LCAxLjUpLCA4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbQppbmRleCA0
OWUyMDgxZTAzMTkyZjVhYzVkNTY4ZTg3NGFiNjNlYzczODEyNzExLi43YjVmZjI5OTBmMzU0MDVi
OWZjNmYyZjgxZWI1MGNiMWVkYWNhNGNkIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
Mzc2CnpjbVlNdlN4JjwrNUMtNn0zdVVMSlo5cmwjPnBMZ2wxVXpzOUNvI2QyP0ZuOGV5bTZIREs1
IT1SeENRPSlQeWM4Iwp6bU5GQ0dlRHtJVTxHPmxHPFN8amVWckdCZ2pCKXMyMU5RWXY4USFOcD5K
c0Jfb302VGg/MCl0amRxfCVnNXkhKnsKemFZfiNLPWZzcV9BVEVpa2UwTlJ0aFBkdEt0Z3o5UChn
OWY2aCMtTjl4KDRvSjhKd3NCXmkwJTJ3ZllAYVlXMXBXCnozOUFPe3MxZj8yXnImTXhTKnhWZDR+
dThrcEVST2Q0amNYQDNNVV5DMThpMzRtNmZvUy00NFB3KGd4VE91M0J6KApsUV9hZ2tEIT0+VGY0
X3IwYFBRT01YRyYtb1g+NWQzO25+MnIjYWE0PSRxeU0jWVlQQVgKCmxpdGVyYWwgNDcKcGNtWFI8
RVlBSkghfmc8fTVETHM+VX0jfEVYRlBpYjFPeXh5OFNfZVdsVHdRcTd5I2ZfM2dgZDsKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaAppbmRl
eCBmZmQ1OTM3YzRiZGM1M2E1OTQ0MmRkNmQwY2I0OWNmNWMxNWI1ZWRhLi5iYWI5NzYwMDljYjg5
NzQxYWNkOWZiMTQ2MTEzMzQ3YmZlOTI1MzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmgKQEAgLTcxLDYgKzcxLDE3IEBAIHN0YXRp
YyB1aW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblVuc2lnbmVkTW9kKHVpbnQzMl90IGxl
ZnQsIHVpbnQzMl90IHJpZ2h0CiB9CiAjZW5kaWYKIAorLy8gT24gV2luZG93cyB3ZSBuZWVkIHRv
IHdyYXAgZm1vZDsgb24gb3RoZXIgcGxhdGZvcm1zIHdlIGNhbiBjYWxsIGl0IGRpcmVjdGx5Lgor
Ly8gT24gQVJNdjcgd2UgYXNzZXJ0IHRoYXQgYWxsIGZ1bmN0aW9uIHBvaW50ZXJzIGhhdmUgdG8g
bG93IGJpdCBzZXQgKHBvaW50IHRvIHRodW1iIGNvZGUpLgorI2lmIENBTExJTkdfQ09OVkVOVElP
Tl9JU19TVERDQUxMIHx8IENQVShBUk1fVEhVTUIyKQorc3RhdGljIGRvdWJsZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkZtb2QoZG91YmxlIHgsIGRvdWJsZSB5KQoreworICAgIHJldHVybiBmbW9k
KHgsIHkpOworfQorI2Vsc2UKKyNkZWZpbmUgb3BlcmF0aW9uRm1vZCBmbW9kCisjZW5kaWYKKwog
Y2xhc3MgV0FTTUZ1bmN0aW9uQ29tcGlsZXIgOiBwcml2YXRlIENDYWxsSGVscGVycyB7CiBwdWJs
aWM6CiAgICAgdHlwZWRlZiBpbnQgRXhwcmVzc2lvbjsKQEAgLTM2OSw2ICszODAsNzcgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gVU5VU0VEOwogICAgIH0KIAorICAgIGludCBidWlsZFVuYXJ5
RjY0KGludCwgV0FTTU9wRXhwcmVzc2lvbkY2NCBvcCkKKyAgICB7CisgICAgICAgIGxvYWREb3Vi
bGUodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDEpLCBGUFJJbmZvOjpmcFJlZ1Qx
KTsKKyAgICAgICAgc3dpdGNoIChvcCkgeworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
NjQ6Ok5lZ2F0ZToKKyAgICAgICAgICAgIG5lZ2F0ZURvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBG
UFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OkFiczoKKyAgICAgICAgICAgIGFic0RvdWJsZShGUFJJbmZvOjpmcFJl
Z1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OlNxcnQ6CisgICAgICAgICAgICBzcXJ0RG91YmxlKEZQUklu
Zm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpGbG9vcjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpD
b3M6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2luOgorICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OlRhbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpBQ29zOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFTaW46CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjoKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpFeHA6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG46
CisgICAgICAgICAgICBEX0pJVE9wZXJhdGlvbl9EIG9wZXJhdGlvbjsKKyAgICAgICAgICAgIHN3
aXRjaCAob3ApIHsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoK
KyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBjZWlsOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGbG9vcjoKKyAgICAgICAg
ICAgICAgICBvcGVyYXRpb24gPSBmbG9vcjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29zOgorICAgICAgICAgICAgICAgIG9w
ZXJhdGlvbiA9IGNvczsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6U2luOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IHNp
bjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6VGFuOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IHRhbjsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QUNv
czoKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBhY29zOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBU2luOgorICAgICAg
ICAgICAgICAgIG9wZXJhdGlvbiA9IGFzaW47CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW46CisgICAgICAgICAgICAgICAg
b3BlcmF0aW9uID0gYXRhbjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RXhwOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9
IGV4cDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkY2NDo6TG46CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gbG9nOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
aWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgICAgIGFkZFB0
cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOworICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIEZQUklu
Zm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgaWYgKG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1t
MzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgICAgIHN0b3JlRG91YmxlKEZQUkluZm86
OmZwUmVnVDAsIHRlbXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAxKSk7CisgICAgICAg
IHJldHVybiBVTlVTRUQ7CisgICAgfQorCiAgICAgaW50IGJ1aWxkQmluYXJ5STMyKGludCwgaW50
LCBXQVNNT3BFeHByZXNzaW9uSTMyIG9wKQogICAgIHsKICAgICAgICAgbG9hZDMyKHRlbXBvcmFy
eUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAyKSwgR1BSSW5mbzo6cmVnVDApOwpAQCAtNDU3LDYg
KzUzOSw1NCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAgfQogCisgICAg
aW50IGJ1aWxkQmluYXJ5RjY0KGludCwgaW50LCBXQVNNT3BFeHByZXNzaW9uRjY0IG9wKQorICAg
IHsKKyAgICAgICAgbG9hZERvdWJsZSh0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0g
MiksIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICBsb2FkRG91YmxlKHRlbXBvcmFyeUFkZHJl
c3MobV90ZW1wU3RhY2tUb3AgLSAxKSwgRlBSSW5mbzo6ZnBSZWdUMSk7CisgICAgICAgIHN3aXRj
aCAob3ApIHsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBZGQ6CisgICAgICAg
ICAgICBhZGREb3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdWI6Cisg
ICAgICAgICAgICBzdWJEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpN
dWw6CisgICAgICAgICAgICBtdWxEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBS
ZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpEaXY6CisgICAgICAgICAgICBkaXZEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5m
bzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpNb2Q6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjI6
CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6UG93OgorICAgICAgICAgICAgRF9K
SVRPcGVyYXRpb25fREQgb3BlcmF0aW9uOworICAgICAgICAgICAgc3dpdGNoIChvcCkgeworICAg
ICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNb2Q6CisgICAgICAgICAgICAgICAg
b3BlcmF0aW9uID0gb3BlcmF0aW9uRm1vZDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjI6CisgICAgICAgICAgICAgICAg
b3BlcmF0aW9uID0gYXRhbjI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlBvdzoKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24g
PSBwb3c7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAg
ICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvbiwgRlBSSW5mbzo6ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBS
ZWdUMCk7CisgICAgICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisg
ICAgICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IH0KKyAgICAgICAgbV90ZW1wU3RhY2tUb3AtLTsKKyAgICAgICAgc3RvcmVEb3VibGUoRlBSSW5m
bzo6ZnBSZWdUMCwgdGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDEpKTsKKyAgICAg
ICAgcmV0dXJuIFVOVVNFRDsKKyAgICB9CisKICAgICBpbnQgYnVpbGRSZWxhdGlvbmFsSTMyKGlu
dCwgaW50LCBXQVNNT3BFeHByZXNzaW9uSTMyIG9wKQogICAgIHsKICAgICAgICAgbG9hZDMyKHRl
bXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAyKSwgR1BSSW5mbzo6cmVnVDApOwpAQCAt
NzQ5LDYgKzg3OSwxOCBAQCBwcml2YXRlOgogICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9w
ZXJhdGlvbiwgZHN0KTsKICAgICB9CiAKKyAgICB2b2lkIGNhbGxPcGVyYXRpb24oRF9KSVRPcGVy
YXRpb25fRCBvcGVyYXRpb24sIEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkc3QpCisg
ICAgeworICAgICAgICBzZXR1cEFyZ3VtZW50cyhzcmMpOworICAgICAgICBhcHBlbmRDYWxsU2V0
UmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKKyAgICB9CisKKyAgICB2b2lkIGNhbGxPcGVyYXRpb24o
RF9KSVRPcGVyYXRpb25fREQgb3BlcmF0aW9uLCBGUFJlZ2lzdGVySUQgc3JjMSwgRlBSZWdpc3Rl
cklEIHNyYzIsIEZQUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBzZXR1cEFyZ3VtZW50
cyhzcmMxLCBzcmMyKTsKKyAgICAgICAgYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIGRz
dCk7CisgICAgfQorCiAgICAgdm9pZCBib3hBcmd1bWVudHNBbmRBZGp1c3RTdGFja1BvaW50ZXIo
Y29uc3QgVmVjdG9yPFdBU01UeXBlPiYgYXJndW1lbnRzKQogICAgIHsKICAgICAgICAgc2l6ZV90
IGFyZ3VtZW50Q291bnQgPSBhcmd1bWVudHMuc2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAKaW5kZXggODkxODJlODU2ZTM5NzZh
ODRiZDJhNGEwZWNiZWM0M2JlOTk2NzhmOC4uNTE0MGE2MDBiMDEwYzAwOTAwYjAzZWU3NmM5Yzg4
NjY3OGMwY2UyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1
bmN0aW9uUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVu
Y3Rpb25QYXJzZXIuY3BwCkBAIC03MzUsNiArNzM1LDI4IEBAIENvbnRleHRFeHByZXNzaW9uIFdB
U01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRleHQpCiAg
ICAgICAgICAgICByZXR1cm4gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GNjQoY29udGV4dCk7CiAg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6R2V0R2xvYmFsOgogICAgICAgICAgICAg
cmV0dXJuIHBhcnNlR2V0R2xvYmFsRXhwcmVzc2lvbkY2NChjb250ZXh0KTsKKyAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpOZWdhdGU6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6QWJzOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNlaWw6Cisg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Rmxvb3I6CisgICAgICAgIGNhc2UgV0FT
TU9wRXhwcmVzc2lvbkY2NDo6U3FydDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0
OjpDb3M6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2luOgorICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlRhbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0OjpBQ29zOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFTaW46Cisg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjoKKyAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpFeHA6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6
TG46CisgICAgICAgICAgICByZXR1cm4gcGFyc2VVbmFyeUV4cHJlc3Npb25GNjQoY29udGV4dCwg
b3ApOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFkZDoKKyAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdWI6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkY2NDo6TXVsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkRpdjoKKyAgICAg
ICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNb2Q6CisgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkY2NDo6QVRhbjI6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6UG93
OgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlQmluYXJ5RXhwcmVzc2lvbkY2NChjb250ZXh0LCBv
cCk7CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2V0TG9jYWw6CiAgICAgICAg
IGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2V0R2xvYmFsOgogICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OkxvYWQ6CkBAIC03NDksMjggKzc3MSw4IEBAIENvbnRleHRFeHByZXNz
aW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRl
eHQpCiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RnJvbVMzMjoKICAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGcm9tVTMyOgogICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OkZyb21GMzI6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6
TmVnYXRlOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFkZDoKLSAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdWI6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6TXVsOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkRpdjoKLSAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNb2Q6CiAgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6TWluOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok1h
eDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBYnM6Ci0gICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpGbG9vcjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTcXJ0OgotICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNvczoKLSAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpTaW46Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6VGFu
OgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFDb3M6Ci0gICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6QVNpbjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpBVGFuOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW4yOgotICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkV4cDoKLSAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpMbjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpQb3c6
CiAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoZXNlIGluc3RydWN0aW9ucy4KICAg
ICAgICAgICAgIEZBSUxfV0lUSF9NRVNTQUdFKCJVbnN1cHBvcnRlZCBpbnN0cnVjdGlvbi4iKTsK
ICAgICAgICAgZGVmYXVsdDoKQEAgLTgzOSw2ICs4NDEsMjQgQEAgQ29udGV4dEV4cHJlc3Npb24g
V0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUdldEdsb2JhbEV4cHJlc3Npb25GNjQoQ29udGV4dCYg
Y29udGUKIH0KIAogdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+CitDb250ZXh0RXhwcmVzc2lvbiBX
QVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlVW5hcnlFeHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRl
eHQsIFdBU01PcEV4cHJlc3Npb25GNjQgb3ApCit7CisgICAgQ29udGV4dEV4cHJlc3Npb24gZXhw
cmVzc2lvbiA9IHBhcnNlRXhwcmVzc2lvbkY2NChjb250ZXh0KTsKKyAgICBQUk9QQUdBVEVfRVJS
T1IoKTsKKyAgICByZXR1cm4gY29udGV4dC5idWlsZFVuYXJ5RjY0KGV4cHJlc3Npb24sIG9wKTsK
K30KKwordGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+CitDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVu
Y3Rpb25QYXJzZXI6OnBhcnNlQmluYXJ5RXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0LCBX
QVNNT3BFeHByZXNzaW9uRjY0IG9wKQoreworICAgIENvbnRleHRFeHByZXNzaW9uIGxlZnQgPSBw
YXJzZUV4cHJlc3Npb25GNjQoY29udGV4dCk7CisgICAgUFJPUEFHQVRFX0VSUk9SKCk7CisgICAg
Q29udGV4dEV4cHJlc3Npb24gcmlnaHQgPSBwYXJzZUV4cHJlc3Npb25GNjQoY29udGV4dCk7Cisg
ICAgUFJPUEFHQVRFX0VSUk9SKCk7CisgICAgcmV0dXJuIGNvbnRleHQuYnVpbGRCaW5hcnlGNjQo
bGVmdCwgcmlnaHQsIG9wKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+CiBDb250ZXh0
RXhwcmVzc2lvbkxpc3QgV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUNhbGxBcmd1bWVudHMoQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgVmVjdG9yPFdBU01UeXBlPiYgYXJndW1lbnRzKQogewogICAg
IENvbnRleHRFeHByZXNzaW9uTGlzdCBhcmd1bWVudExpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCmluZGV4IGJlNjQyN2Y5M2I1ODQwMmYy
ZWJmYzc3N2U5ODZmMGQ4ZTdjZjk3YzguLjU2MzljYjQyYmJhZDFlNjdlNmUxZWU4NDViMDg5MGQ4
YmVmMjkxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5j
dGlvblBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlv
blBhcnNlci5oCkBAIC0xMDIsNiArMTAyLDggQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8Y2xh
c3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GNjQo
Q29udGV4dCYsIHVpbnQzMl90IGxvY2FsSW5kZXgpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250
ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChDb250ZXh0
Jik7CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNl
R2V0R2xvYmFsRXhwcmVzc2lvbkY2NChDb250ZXh0Jik7CisgICAgdGVtcGxhdGUgPGNsYXNzIENv
bnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlVW5hcnlFeHByZXNzaW9uRjY0KENvbnRleHQm
LCBXQVNNT3BFeHByZXNzaW9uRjY0KTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29u
dGV4dEV4cHJlc3Npb24gcGFyc2VCaW5hcnlFeHByZXNzaW9uRjY0KENvbnRleHQmLCBXQVNNT3BF
eHByZXNzaW9uRjY0KTsKIAogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhw
cmVzc2lvbkxpc3QgcGFyc2VDYWxsQXJndW1lbnRzKENvbnRleHQmLCBjb25zdCBWZWN0b3I8V0FT
TVR5cGU+JiBhcmd1bWVudHMpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0
RXhwcmVzc2lvbiBwYXJzZUNhbGxJbnRlcm5hbChDb250ZXh0JiwgV0FTTUV4cHJlc3Npb25UeXBl
IHJldHVyblR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TUZ1bmN0aW9uU3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TUZ1bmN0aW9uU3ludGF4Q2hlY2tlci5oCmluZGV4IDE3OWM4NjdkNDE3ODRhZDM0ZGExM2Q4ZjNm
NDk0YzlkNjM4OWIyYTYuLjJhYTI4Yzk3NGZlNDZkNmJlOGExY2YzMGM0YjRmYmJlMGNiZTBlNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5bnRh
eENoZWNrZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25T
eW50YXhDaGVja2VyLmgKQEAgLTk5LDEyICs5OSwyMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBVTlVTRUQ7CiAgICAgfQogCisgICAgaW50IGJ1aWxkVW5hcnlGNjQoaW50LCBXQVNNT3BFeHBy
ZXNzaW9uRjY0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIFVOVVNFRDsKKyAgICB9CisKICAgICBp
bnQgYnVpbGRCaW5hcnlJMzIoaW50LCBpbnQsIFdBU01PcEV4cHJlc3Npb25JMzIpCiAgICAgewog
ICAgICAgICBtX3RlbXBTdGFja1RvcC0tOwogICAgICAgICByZXR1cm4gVU5VU0VEOwogICAgIH0K
IAorICAgIGludCBidWlsZEJpbmFyeUY2NChpbnQsIGludCwgV0FTTU9wRXhwcmVzc2lvbkY2NCkK
KyAgICB7CisgICAgICAgIG1fdGVtcFN0YWNrVG9wLS07CisgICAgICAgIHJldHVybiBVTlVTRUQ7
CisgICAgfQorCiAgICAgaW50IGJ1aWxkUmVsYXRpb25hbEkzMihpbnQsIGludCwgV0FTTU9wRXhw
cmVzc2lvbkkzMikKICAgICB7CiAgICAgICAgIG1fdGVtcFN0YWNrVG9wLS07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261480</attachid>
            <date>2015-09-17 21:19:20 -0700</date>
            <delta_ts>2015-09-18 14:06:13 -0700</delta_ts>
            <desc>Patch for ARM 1</desc>
            <filename>diff.txt</filename>
            <type>text/plain</type>
            <size>17729</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS1hcml0
aG1ldGljLWZsb2F0NjQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dh
c20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzCmluZGV4IDhlYjVlOWYwNjE2OTU4MDE5NzVjM2YwYmEx
MTM3NWVlZDVkOTIxNDIuLmMwOWMyYzljMDQ4ZWMyYzQ4YTUwMTNmNTljZTdmNzIwZjdjYTg4N2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS1hcml0
aG1ldGljLWZsb2F0NjQuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qcwpAQCAtMTEsMTIgKzExLDE1NCBAQCB3YXNtL2Fy
aXRobWV0aWMtZmxvYXQ2NC53YXNtIGlzIGdlbmVyYXRlZCBieSBwYWNrLWFzbWpzIDxodHRwczov
L2dpdGh1Yi5jb20vV2ViQQogZnVuY3Rpb24gYXNtTW9kdWxlKGdsb2JhbCwgZW52LCBidWZmZXIp
IHsKICAgICAidXNlIGFzbSI7CiAKKyAgICB2YXIgYWJzID0gZ2xvYmFsLk1hdGguYWJzOworICAg
IHZhciBjZWlsID0gZ2xvYmFsLk1hdGguY2VpbDsKKyAgICB2YXIgZmxvb3IgPSBnbG9iYWwuTWF0
aC5mbG9vcjsKKyAgICB2YXIgc3FydCA9IGdsb2JhbC5NYXRoLnNxcnQ7CisgICAgdmFyIGNvcyA9
IGdsb2JhbC5NYXRoLmNvczsKKyAgICB2YXIgc2luID0gZ2xvYmFsLk1hdGguc2luOworICAgIHZh
ciB0YW4gPSBnbG9iYWwuTWF0aC50YW47CisgICAgdmFyIGFjb3MgPSBnbG9iYWwuTWF0aC5hY29z
OworICAgIHZhciBhc2luID0gZ2xvYmFsLk1hdGguYXNpbjsKKyAgICB2YXIgYXRhbiA9IGdsb2Jh
bC5NYXRoLmF0YW47CisgICAgdmFyIGF0YW4yID0gZ2xvYmFsLk1hdGguYXRhbjI7CisgICAgdmFy
IGV4cCA9IGdsb2JhbC5NYXRoLmV4cDsKKyAgICB2YXIgbG9nID0gZ2xvYmFsLk1hdGgubG9nOwor
ICAgIHZhciBwb3cgPSBnbG9iYWwuTWF0aC5wb3c7CisKICAgICBmdW5jdGlvbiBudW1iZXIoKSB7
CiAgICAgICAgIHJldHVybiA0LjI7CiAgICAgfQogCisgICAgZnVuY3Rpb24gbmVnYXRlKHgpIHsK
KyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gLXg7CisgICAgfQorCisgICAgZnVuY3Rp
b24gYWRkKHgsIHkpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAg
IHJldHVybiB4ICsgeTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdWJ0cmFjdCh4LCB5KSB7Cisg
ICAgICAgIHggPSAreDsKKyAgICAgICAgeSA9ICt5OworICAgICAgICByZXR1cm4geCAtIHk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gbXVsdGlwbHkoeCwgeSkgeworICAgICAgICB4ID0gK3g7Cisg
ICAgICAgIHkgPSAreTsKKyAgICAgICAgcmV0dXJuIHggKiB5OworICAgIH0KKworICAgIGZ1bmN0
aW9uIGRpdmlkZSh4LCB5KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgeSA9ICt5OworICAg
ICAgICByZXR1cm4geCAvIHk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbW9kdWxvKHgsIHkpIHsK
KyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAgIHJldHVybiB4ICUgeTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBhYnNvbHV0ZSh4KSB7CisgICAgICAgIHggPSAreDsKKyAg
ICAgICAgcmV0dXJuIGFicyh4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjZWlsTnVtYmVyKHgp
IHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gY2VpbCh4KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBmbG9vck51bWJlcih4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0
dXJuIGZsb29yKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNxdWFyZVJvb3QoeCkgeworICAg
ICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBzcXJ0KHgpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGNvc2luZSh4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIGNvcyh4KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBzaW5lKHgpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAg
ICByZXR1cm4gc2luKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRhbmdlbnQoeCkgeworICAg
ICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiB0YW4oeCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gYXJjY29zaW5lKHgpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gYWNvcyh4
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcmNzaW5lKHgpIHsKKyAgICAgICAgeCA9ICt4Owor
ICAgICAgICByZXR1cm4gYXNpbih4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcmN0YW5nZW50
KHgpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gYXRhbih4KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBhcmN0YW5nZW50Mih4LCB5KSB7CisgICAgICAgIHggPSAreDsKKyAgICAg
ICAgeSA9ICt5OworICAgICAgICByZXR1cm4gYXRhbjIoeCwgeSk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gZXhwb25lbnRpYWwoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBl
eHAoeCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nYXJpdGhtKHgpIHsKKyAgICAgICAgeCA9
ICt4OworICAgICAgICByZXR1cm4gbG9nKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHBvd2Vy
KHgsIHkpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAgIHJldHVy
biBwb3coeCwgeSk7CisgICAgfQorCiAgICAgcmV0dXJuIHsKICAgICAgICAgbnVtYmVyOiBudW1i
ZXIsCisgICAgICAgIG5lZ2F0ZTogbmVnYXRlLAorICAgICAgICBhZGQ6IGFkZCwKKyAgICAgICAg
c3VidHJhY3Q6IHN1YnRyYWN0LAorICAgICAgICBtdWx0aXBseTogbXVsdGlwbHksCisgICAgICAg
IGRpdmlkZTogZGl2aWRlLAorICAgICAgICBtb2R1bG86IG1vZHVsbywKKyAgICAgICAgYWJzb2x1
dGU6IGFic29sdXRlLAorICAgICAgICBjZWlsTnVtYmVyOiBjZWlsTnVtYmVyLAorICAgICAgICBm
bG9vck51bWJlcjogZmxvb3JOdW1iZXIsCisgICAgICAgIHNxdWFyZVJvb3Q6IHNxdWFyZVJvb3Qs
CisgICAgICAgIGNvc2luZTogY29zaW5lLAorICAgICAgICBzaW5lOiBzaW5lLAorICAgICAgICB0
YW5nZW50OiB0YW5nZW50LAorICAgICAgICBhcmNjb3NpbmU6IGFyY2Nvc2luZSwKKyAgICAgICAg
YXJjc2luZTogYXJjc2luZSwKKyAgICAgICAgYXJjdGFuZ2VudDogYXJjdGFuZ2VudCwKKyAgICAg
ICAgYXJjdGFuZ2VudDI6IGFyY3RhbmdlbnQyLAorICAgICAgICBleHBvbmVudGlhbDogZXhwb25l
bnRpYWwsCisgICAgICAgIGxvZ2FyaXRobTogbG9nYXJpdGhtLAorICAgICAgICBwb3dlcjogcG93
ZXIsCiAgICAgfTsKIH0KICovCkBAIC0yNCwzICsxNjYsMzAgQEAgZnVuY3Rpb24gYXNtTW9kdWxl
KGdsb2JhbCwgZW52LCBidWZmZXIpIHsKIHZhciBtb2R1bGUgPSBsb2FkV2ViQXNzZW1ibHkoIndh
c20vYXJpdGhtZXRpYy1mbG9hdDY0Lndhc20iKTsKIAogc2hvdWxkQmUobW9kdWxlLm51bWJlcigp
LCA0LjIpOworc2hvdWxkQmUobW9kdWxlLm5lZ2F0ZSgwLjEpLCAtMC4xKTsKK3Nob3VsZEJlKG1v
ZHVsZS5hZGQoMC4xLCAwLjUpLCAwLjYpOworc2hvdWxkQmUoaXNOYU4obW9kdWxlLmFkZCgwLjEs
IE5hTikpLCB0cnVlKTsKK3Nob3VsZEJlKG1vZHVsZS5hZGQoMC4xLCBJbmZpbml0eSksIEluZmlu
aXR5KTsKK3Nob3VsZEJlKGlzTmFOKG1vZHVsZS5hZGQoSW5maW5pdHksIC1JbmZpbml0eSkpLCB0
cnVlKTsKK3Nob3VsZEJlKG1vZHVsZS5zdWJ0cmFjdCgwLjEsIDAuNSksIC0wLjQpOworc2hvdWxk
QmUobW9kdWxlLm11bHRpcGx5KDAuMSwgMC41KSwgMC4wNSk7CitzaG91bGRCZShtb2R1bGUuZGl2
aWRlKDAuMSwgMC41KSwgMC4yKTsKK3Nob3VsZEJlKG1vZHVsZS5kaXZpZGUoMC4xLCAwKSwgSW5m
aW5pdHkpOworc2hvdWxkQmUobW9kdWxlLmRpdmlkZSgwLjEsIC0wKSwgLUluZmluaXR5KTsKK3No
b3VsZEJlKG1vZHVsZS5tb2R1bG8oMC4xLCAwLjAzKSwgMC4wMTAwMDAwMDAwMDAwMDAwMDkpOwor
c2hvdWxkQmUoaXNOYU4obW9kdWxlLm1vZHVsbygwLjEsIDApKSwgdHJ1ZSk7CitzaG91bGRCZSht
b2R1bGUuYWJzb2x1dGUoLTQuMiksIDQuMik7CitzaG91bGRCZShtb2R1bGUuYWJzb2x1dGUoNC4y
KSwgNC4yKTsKK3Nob3VsZEJlKG1vZHVsZS5jZWlsTnVtYmVyKDQuMiksIDUpOworc2hvdWxkQmUo
bW9kdWxlLmZsb29yTnVtYmVyKDQuMiksIDQpOworc2hvdWxkQmUobW9kdWxlLnNxdWFyZVJvb3Qo
MC4wOSksIDAuMyk7CitzaG91bGRCZShtb2R1bGUuY29zaW5lKE1hdGguUEkpLCAtMSk7CitzaG91
bGRCZShtb2R1bGUuc2luZShNYXRoLlBJIC8gMiksIDEpOworc2hvdWxkQmUobW9kdWxlLnRhbmdl
bnQoTWF0aC5QSSAvIDQpLCAwLjk5OTk5OTk5OTk5OTk5OTkpOworc2hvdWxkQmUobW9kdWxlLmFy
Y2Nvc2luZSgtMSksIE1hdGguUEkpOworc2hvdWxkQmUobW9kdWxlLmFyY3NpbmUoMSksIE1hdGgu
UEkgLyAyKTsKK3Nob3VsZEJlKG1vZHVsZS5hcmN0YW5nZW50KDEpLCBNYXRoLlBJIC8gNCk7Citz
aG91bGRCZShtb2R1bGUuYXJjdGFuZ2VudDIoMSwgMCksIE1hdGguUEkgLyAyKTsKK3Nob3VsZEJl
KG1vZHVsZS5leHBvbmVudGlhbCgxKSwgTWF0aC5FKTsKK3Nob3VsZEJlKG1vZHVsZS5sb2dhcml0
aG0oTWF0aC5FKSwgMSk7CitzaG91bGRCZShtb2R1bGUucG93ZXIoNCwgMS41KSwgOCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20vYXJpdGhtZXRp
Yy1mbG9hdDY0Lndhc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20v
YXJpdGhtZXRpYy1mbG9hdDY0Lndhc20KaW5kZXggNDllMjA4MWUwMzE5MmY1YWM1ZDU2OGU4NzRh
YjYzZWM3MzgxMjcxMS4uN2I1ZmYyOTkwZjM1NDA1YjlmYzZmMmY4MWViNTBjYjFlZGFjYTRjZCAx
MDA2NDQKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDM3Ngp6Y21ZTXZTeCY8KzVDLTZ9M3VVTEpa
OXJsIz5wTGdsMVV6czlDbyNkMj9GbjhleW02SERLNSE9UnhDUT0pUHljOCMKem1ORkNHZUR7SVU8
Rz5sRzxTfGplVnJHQmdqQilzMjFOUVl2OFEhTnA+SnNCX299NlRoPzApdGpkcXwlZzV5ISp7Cnph
WX4jSz1mc3FfQVRFaWtlME5SdGhQZHRLdGd6OVAoZzlmNmgjLU45eCg0b0o4SndzQl5pMCUyd2ZZ
QGFZVzFwVwp6MzlBT3tzMWY/Ml5yJk14Uyp4VmQ0fnU4a3BFUk9kNGpjWEAzTVVeQzE4aTM0bTZm
b1MtNDRQdyhneFRPdTNCeigKbFFfYWdrRCE9PlRmNF9yMGBQUU9NWEcmLW9YPjVkMztufjJyI2Fh
ND0kcXlNI1lZUEFYCgpsaXRlcmFsIDQ3CnBjbVhSPEVZQUpIIX5nPH01RExzPlV9I3xFWEZQaWIx
T3l4eThTX2VXbFR3UXE3eSNmXzNnYGQ7CgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmgKaW5kZXggOGEyYjFkZGFlODEyMTMyOTE5OGU1NmRm
ZjU4NzAwNjA1ZjcyODgxMy4uMDEyYjQzMDc0ZTJhNmRlZjYyNTFkNDZiYWU4ZTVkZjUwNDkyNGNh
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29t
cGlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21w
aWxlci5oCkBAIC03MSw2ICs3MSw4IEBAIHN0YXRpYyB1aW50MzJfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblVuc2lnbmVkTW9kKHVpbnQzMl90IGxlZnQsIHVpbnQzMl90IHJpZ2h0CiB9CiAjZW5k
aWYKIAorI2RlZmluZSBvcGVyYXRpb25GbW9kIGZtb2QKKwogY2xhc3MgV0FTTUZ1bmN0aW9uQ29t
cGlsZXIgOiBwcml2YXRlIENDYWxsSGVscGVycyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBpbnQg
RXhwcmVzc2lvbjsKQEAgLTQzNyw2ICs0MzksNzcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
VU5VU0VEOwogICAgIH0KIAorICAgIGludCBidWlsZFVuYXJ5RjY0KGludCwgV0FTTU9wRXhwcmVz
c2lvbkY2NCBvcCkKKyAgICB7CisgICAgICAgIGxvYWREb3VibGUodGVtcG9yYXJ5QWRkcmVzcyht
X3RlbXBTdGFja1RvcCAtIDEpLCBGUFJJbmZvOjpmcFJlZ1QxKTsKKyAgICAgICAgc3dpdGNoIChv
cCkgeworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok5lZ2F0ZToKKyAgICAgICAg
ICAgIG5lZ2F0ZURvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFiczoK
KyAgICAgICAgICAgIGFic0RvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1Qw
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6
OlNxcnQ6CisgICAgICAgICAgICBzcXJ0RG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86
OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6Q2VpbDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGbG9vcjoK
KyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDb3M6CisgICAgICAgIGNhc2UgV0FT
TU9wRXhwcmVzc2lvbkY2NDo6U2luOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6
OlRhbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBQ29zOgorICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFTaW46CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6QVRhbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpFeHA6Cisg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG46CisgICAgICAgICAgICBEX0pJVE9w
ZXJhdGlvbl9EIG9wZXJhdGlvbjsKKyAgICAgICAgICAgIHN3aXRjaCAob3ApIHsKKyAgICAgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoKKyAgICAgICAgICAgICAgICBvcGVy
YXRpb24gPSBjZWlsOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBX
QVNNT3BFeHByZXNzaW9uRjY0OjpGbG9vcjoKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBm
bG9vcjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkY2NDo6Q29zOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IGNvczsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6
U2luOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IHNpbjsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6VGFuOgorICAgICAg
ICAgICAgICAgIG9wZXJhdGlvbiA9IHRhbjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QUNvczoKKyAgICAgICAgICAgICAgICBv
cGVyYXRpb24gPSBhY29zOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBU2luOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9
IGFzaW47CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OkFUYW46CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gYXRhbjsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6RXhwOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IGV4cDsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG46CisgICAg
ICAgICAgICAgICAgb3BlcmF0aW9uID0gbG9nOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAg
ICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86
OmZwUmVnVDApOworICAgICAgICAgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxs
KQorICAgICAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICB9CisgICAgICAgIHN0b3JlRG91YmxlKEZQUkluZm86OmZwUmVnVDAsIHRlbXBvcmFyeUFk
ZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAxKSk7CisgICAgICAgIHJldHVybiBVTlVTRUQ7CisgICAg
fQorCiAgICAgaW50IGJ1aWxkQmluYXJ5STMyKGludCwgaW50LCBXQVNNT3BFeHByZXNzaW9uSTMy
IG9wKQogICAgIHsKICAgICAgICAgbG9hZDMyKHRlbXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tU
b3AgLSAyKSwgR1BSSW5mbzo6cmVnVDApOwpAQCAtNTQ5LDYgKzYyMiw1NCBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAgfQogCisgICAgaW50IGJ1aWxkQmluYXJ5RjY0KGlu
dCwgaW50LCBXQVNNT3BFeHByZXNzaW9uRjY0IG9wKQorICAgIHsKKyAgICAgICAgbG9hZERvdWJs
ZSh0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMiksIEZQUkluZm86OmZwUmVnVDAp
OworICAgICAgICBsb2FkRG91YmxlKHRlbXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAx
KSwgRlBSSW5mbzo6ZnBSZWdUMSk7CisgICAgICAgIHN3aXRjaCAob3ApIHsKKyAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBZGQ6CisgICAgICAgICAgICBhZGREb3VibGUoRlBSSW5m
bzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdWI6CisgICAgICAgICAgICBzdWJEb3VibGUo
RlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNdWw6CisgICAgICAgICAgICBtdWxE
b3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpEaXY6CisgICAgICAgICAg
ICBkaXZEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNb2Q6CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjI6CisgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6UG93OgorICAgICAgICAgICAgRF9KSVRPcGVyYXRpb25fREQgb3BlcmF0
aW9uOworICAgICAgICAgICAgc3dpdGNoIChvcCkgeworICAgICAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpNb2Q6CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gb3BlcmF0aW9u
Rm1vZDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkY2NDo6QVRhbjI6CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gYXRhbjI7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
NjQ6OlBvdzoKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBwb3c7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICAgICAgYWRkUHRyKFRydXN0
ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdp
c3Rlcik7CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgRlBSSW5mbzo6ZnBS
ZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBp
ZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICAgICAgYWRkUHRy
KFRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICAgICAgbV90ZW1wU3Rh
Y2tUb3AtLTsKKyAgICAgICAgc3RvcmVEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgdGVtcG9yYXJ5
QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDEpKTsKKyAgICAgICAgcmV0dXJuIFVOVVNFRDsKKyAg
ICB9CisKICAgICBpbnQgYnVpbGRSZWxhdGlvbmFsSTMyKGludCwgaW50LCBXQVNNT3BFeHByZXNz
aW9uSTMyIG9wKQogICAgIHsKICAgICAgICAgbG9hZDMyKHRlbXBvcmFyeUFkZHJlc3MobV90ZW1w
U3RhY2tUb3AgLSAyKSwgR1BSSW5mbzo6cmVnVDApOwpAQCAtOTE3LDYgKzEwMzgsMTIgQEAgcHJp
dmF0ZToKICAgICAgICAgYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIGRzdCwgRmxvYXRp
bmdQb2ludFByZWNpc2lvbjo6U2luZ2xlKTsKICAgICB9CiAKKyAgICB2b2lkIGNhbGxPcGVyYXRp
b24oRF9KSVRPcGVyYXRpb25fRCBvcGVyYXRpb24sIEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0
ZXJJRCBkc3QpCisgICAgeworICAgICAgICBzZXR1cEFyZ3VtZW50cyhzcmMpOworICAgICAgICBh
cHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgZHN0LCBGbG9hdGluZ1BvaW50UHJlY2lzaW9u
OjpEb3VibGUpOworICAgIH0KKwogICAgIHZvaWQgY2FsbE9wZXJhdGlvbihpbnQzMl90IEpJVF9P
UEVSQVRJT04gKCpvcGVyYXRpb24pKGludDMyX3QsIGludDMyX3QpLCBHUFJSZWcgc3JjMSwgR1BS
UmVnIHNyYzIsIEdQUlJlZyBkc3QpCiAgICAgewogICAgICAgICBzZXR1cEFyZ3VtZW50cyhzcmMx
LCBzcmMyKTsKQEAgLTkyOSw2ICsxMDU2LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIGFwcGVuZENh
bGxTZXRSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogICAgIH0KIAorICAgIHZvaWQgY2FsbE9wZXJh
dGlvbihEX0pJVE9wZXJhdGlvbl9ERCBvcGVyYXRpb24sIEZQUmVnaXN0ZXJJRCBzcmMxLCBGUFJl
Z2lzdGVySUQgc3JjMiwgRlBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIHNldHVwQXJn
dW1lbnRzKHNyYzEsIHNyYzIpOworICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlv
biwgZHN0LCBGbG9hdGluZ1BvaW50UHJlY2lzaW9uOjpEb3VibGUpOworICAgIH0KKwogICAgIHZv
aWQgYm94QXJndW1lbnRzQW5kQWRqdXN0U3RhY2tQb2ludGVyKGNvbnN0IFZlY3RvcjxXQVNNVHlw
ZT4mIGFyZ3VtZW50cykKICAgICB7CiAgICAgICAgIHNpemVfdCBhcmd1bWVudENvdW50ID0gYXJn
dW1lbnRzLnNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01GdW5jdGlvblBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVu
Y3Rpb25QYXJzZXIuY3BwCmluZGV4IDA3OTU1ZTE3YzhhNWMwYTYxMzA5MDlhOTc2MzllN2RlZjFm
MzdkYjUuLjlmNzAxMzMyNDRiNmI3MDE4YTRjYmIwOTgwZTE1MTJhY2IxYzI0MDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcApAQCAt
ODgxLDI1ICs4ODEsNyBAQCBDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBh
cnNlRXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0KQogICAgICAgICAgICAgcmV0dXJuIHBh
cnNlQ2FsbEltcG9ydChjb250ZXh0LCBXQVNNRXhwcmVzc2lvblR5cGU6OkY2NCk7CiAgICAgICAg
IGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2FsbEluZGlyZWN0OgogICAgICAgICAgICAgcmV0
dXJuIHBhcnNlQ2FsbEluZGlyZWN0KGNvbnRleHQsIFdBU01FeHByZXNzaW9uVHlwZTo6RjY0KTsK
LSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTZXRMb2NhbDoKLSAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTZXRHbG9iYWw6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkY2NDo6TG9hZDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpMb2Fk
V2l0aE9mZnNldDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdG9yZToKLSAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdG9yZVdpdGhPZmZzZXQ6Ci0gICAgICAg
IGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29uZGl0aW9uYWw6Ci0gICAgICAgIGNhc2UgV0FT
TU9wRXhwcmVzc2lvbkY2NDo6Q29tbWE6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6RnJvbVMzMjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGcm9tVTMyOgot
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkZyb21GMzI6CiAgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6TmVnYXRlOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Np
b25GNjQ6OkFkZDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdWI6Ci0gICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TXVsOgotICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OkRpdjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNb2Q6
Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TWluOgotICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6Ok1heDoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0
OjpBYnM6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoKICAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGbG9vcjoKQEAgLTkxMCwxMCArODkyLDMwIEBAIENv
bnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjY0KENv
bnRleHQmIGNvbnRleHQpCiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QUNvczoK
ICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBU2luOgogICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6OkFUYW46Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6QVRhbjI6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RXhwOgogICAgICAg
ICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkxuOgorICAgICAgICAgICAgcmV0dXJuIHBhcnNl
VW5hcnlFeHByZXNzaW9uRjY0KGNvbnRleHQsIG9wKTsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpBZGQ6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3ViOgor
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok11bDoKKyAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpEaXY6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6
TW9kOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW4yOgogICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlBvdzoKKyAgICAgICAgICAgIHJldHVybiBwYXJzZUJp
bmFyeUV4cHJlc3Npb25GNjQoY29udGV4dCwgb3ApOworICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GNjQ6OlNldExvY2FsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlNl
dEdsb2JhbDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpMb2FkOgorICAgICAg
ICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkxvYWRXaXRoT2Zmc2V0OgorICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OlN0b3JlOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Np
b25GNjQ6OlN0b3JlV2l0aE9mZnNldDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0
OjpDb25kaXRpb25hbDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDb21tYToK
KyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGcm9tUzMyOgorICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OkZyb21VMzI6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6RnJvbUYzMjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNaW46
CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TWF4OgogICAgICAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0aGVzZSBpbnN0cnVjdGlvbnMuCiAgICAgICAgICAgICBGQUlMX1dJ
VEhfTUVTU0FHRSgiVW5zdXBwb3J0ZWQgaW5zdHJ1Y3Rpb24uIik7CiAgICAgICAgIGRlZmF1bHQ6
CkBAIC05ODIsNiArOTg0LDI0IEBAIENvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNl
cjo6cGFyc2VHZXRHbG9iYWxFeHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRlCiB9CiAKIHRlbXBs
YXRlIDxjbGFzcyBDb250ZXh0PgorQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2Vy
OjpwYXJzZVVuYXJ5RXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0LCBXQVNNT3BFeHByZXNz
aW9uRjY0IG9wKQoreworICAgIENvbnRleHRFeHByZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJzZUV4
cHJlc3Npb25GNjQoY29udGV4dCk7CisgICAgUFJPUEFHQVRFX0VSUk9SKCk7CisgICAgcmV0dXJu
IGNvbnRleHQuYnVpbGRVbmFyeUY2NChleHByZXNzaW9uLCBvcCk7Cit9CisKK3RlbXBsYXRlIDxj
bGFzcyBDb250ZXh0PgorQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJz
ZUJpbmFyeUV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCwgV0FTTU9wRXhwcmVzc2lvbkY2
NCBvcCkKK3sKKyAgICBDb250ZXh0RXhwcmVzc2lvbiBsZWZ0ID0gcGFyc2VFeHByZXNzaW9uRjY0
KGNvbnRleHQpOworICAgIFBST1BBR0FURV9FUlJPUigpOworICAgIENvbnRleHRFeHByZXNzaW9u
IHJpZ2h0ID0gcGFyc2VFeHByZXNzaW9uRjY0KGNvbnRleHQpOworICAgIFBST1BBR0FURV9FUlJP
UigpOworICAgIHJldHVybiBjb250ZXh0LmJ1aWxkQmluYXJ5RjY0KGxlZnQsIHJpZ2h0LCBvcCk7
Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBDb250ZXh0PgogQ29udGV4dEV4cHJlc3Npb25MaXN0IFdB
U01GdW5jdGlvblBhcnNlcjo6cGFyc2VDYWxsQXJndW1lbnRzKENvbnRleHQmIGNvbnRleHQsIGNv
bnN0IFZlY3RvcjxXQVNNVHlwZT4mIGFyZ3VtZW50cykKIHsKICAgICBDb250ZXh0RXhwcmVzc2lv
bkxpc3QgYXJndW1lbnRMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV0FTTUZ1bmN0aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNN
RnVuY3Rpb25QYXJzZXIuaAppbmRleCBiYmJkMTNkYmQxOGNkMGU2ZDI2OGQxOTcyODJkMGUzNWI1
ZmVhODU4Li5lOTliNzRhYzU1MzE3ZjQ0MDY4OTU3YzAwYmFlMjBkMWYxZGU0MmM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaApAQCAtMTEy
LDYgKzExMiw4IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRl
eHRFeHByZXNzaW9uIHBhcnNlR2V0TG9jYWxFeHByZXNzaW9uRjY0KENvbnRleHQmLCB1aW50MzJf
dCBsb2NhbEluZGV4KTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJl
c3Npb24gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GNjQoQ29udGV4dCYpOwogICAgIHRlbXBsYXRl
IDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUdldEdsb2JhbEV4cHJlc3Np
b25GNjQoQ29udGV4dCYpOworICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhw
cmVzc2lvbiBwYXJzZVVuYXJ5RXhwcmVzc2lvbkY2NChDb250ZXh0JiwgV0FTTU9wRXhwcmVzc2lv
bkY2NCk7CisgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBh
cnNlQmluYXJ5RXhwcmVzc2lvbkY2NChDb250ZXh0JiwgV0FTTU9wRXhwcmVzc2lvbkY2NCk7CiAK
ICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb25MaXN0IHBhcnNl
Q2FsbEFyZ3VtZW50cyhDb250ZXh0JiwgY29uc3QgVmVjdG9yPFdBU01UeXBlPiYgYXJndW1lbnRz
KTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VD
YWxsSW50ZXJuYWwoQ29udGV4dCYsIFdBU01FeHByZXNzaW9uVHlwZSByZXR1cm5UeXBlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5bnRheENo
ZWNrZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5bnRheENo
ZWNrZXIuaAppbmRleCA2Mjg2M2Q0ZTc1MDU1ZjQwNDg2ZWQ5ZDUzNmZmZWE5OTc4NmMyOWIxLi5i
N2QzOGY0YmZiZjliZWU2MmY1ODk2MDU4MTIxMGJmYjk0MjVjNGUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlci5oCkBA
IC0xMTEsNiArMTExLDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFVOVVNFRDsKICAgICB9
CiAKKyAgICBpbnQgYnVpbGRVbmFyeUY2NChpbnQsIFdBU01PcEV4cHJlc3Npb25GNjQpCisgICAg
eworICAgICAgICByZXR1cm4gVU5VU0VEOworICAgIH0KKwogICAgIGludCBidWlsZEJpbmFyeUkz
MihpbnQsIGludCwgV0FTTU9wRXhwcmVzc2lvbkkzMikKICAgICB7CiAgICAgICAgIG1fdGVtcFN0
YWNrVG9wLS07CkBAIC0xMjMsNiArMTI4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFVO
VVNFRDsKICAgICB9CiAKKyAgICBpbnQgYnVpbGRCaW5hcnlGNjQoaW50LCBpbnQsIFdBU01PcEV4
cHJlc3Npb25GNjQpCisgICAgeworICAgICAgICBtX3RlbXBTdGFja1RvcC0tOworICAgICAgICBy
ZXR1cm4gVU5VU0VEOworICAgIH0KKwogICAgIGludCBidWlsZFJlbGF0aW9uYWxJMzIoaW50LCBp
bnQsIFdBU01PcEV4cHJlc3Npb25JMzIpCiAgICAgewogICAgICAgICBtX3RlbXBTdGFja1RvcC0t
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261481</attachid>
            <date>2015-09-17 21:19:43 -0700</date>
            <delta_ts>2015-09-18 14:01:04 -0700</delta_ts>
            <desc>Patch for ARM 2</desc>
            <filename>diff2.txt</filename>
            <type>text/plain</type>
            <size>18067</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS1hcml0
aG1ldGljLWZsb2F0NjQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dh
c20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzCmluZGV4IDhlYjVlOWYwNjE2OTU4MDE5NzVjM2YwYmEx
MTM3NWVlZDVkOTIxNDIuLmMwOWMyYzljMDQ4ZWMyYzQ4YTUwMTNmNTljZTdmNzIwZjdjYTg4N2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS1hcml0
aG1ldGljLWZsb2F0NjQuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qcwpAQCAtMTEsMTIgKzExLDE1NCBAQCB3YXNtL2Fy
aXRobWV0aWMtZmxvYXQ2NC53YXNtIGlzIGdlbmVyYXRlZCBieSBwYWNrLWFzbWpzIDxodHRwczov
L2dpdGh1Yi5jb20vV2ViQQogZnVuY3Rpb24gYXNtTW9kdWxlKGdsb2JhbCwgZW52LCBidWZmZXIp
IHsKICAgICAidXNlIGFzbSI7CiAKKyAgICB2YXIgYWJzID0gZ2xvYmFsLk1hdGguYWJzOworICAg
IHZhciBjZWlsID0gZ2xvYmFsLk1hdGguY2VpbDsKKyAgICB2YXIgZmxvb3IgPSBnbG9iYWwuTWF0
aC5mbG9vcjsKKyAgICB2YXIgc3FydCA9IGdsb2JhbC5NYXRoLnNxcnQ7CisgICAgdmFyIGNvcyA9
IGdsb2JhbC5NYXRoLmNvczsKKyAgICB2YXIgc2luID0gZ2xvYmFsLk1hdGguc2luOworICAgIHZh
ciB0YW4gPSBnbG9iYWwuTWF0aC50YW47CisgICAgdmFyIGFjb3MgPSBnbG9iYWwuTWF0aC5hY29z
OworICAgIHZhciBhc2luID0gZ2xvYmFsLk1hdGguYXNpbjsKKyAgICB2YXIgYXRhbiA9IGdsb2Jh
bC5NYXRoLmF0YW47CisgICAgdmFyIGF0YW4yID0gZ2xvYmFsLk1hdGguYXRhbjI7CisgICAgdmFy
IGV4cCA9IGdsb2JhbC5NYXRoLmV4cDsKKyAgICB2YXIgbG9nID0gZ2xvYmFsLk1hdGgubG9nOwor
ICAgIHZhciBwb3cgPSBnbG9iYWwuTWF0aC5wb3c7CisKICAgICBmdW5jdGlvbiBudW1iZXIoKSB7
CiAgICAgICAgIHJldHVybiA0LjI7CiAgICAgfQogCisgICAgZnVuY3Rpb24gbmVnYXRlKHgpIHsK
KyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gLXg7CisgICAgfQorCisgICAgZnVuY3Rp
b24gYWRkKHgsIHkpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAg
IHJldHVybiB4ICsgeTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdWJ0cmFjdCh4LCB5KSB7Cisg
ICAgICAgIHggPSAreDsKKyAgICAgICAgeSA9ICt5OworICAgICAgICByZXR1cm4geCAtIHk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gbXVsdGlwbHkoeCwgeSkgeworICAgICAgICB4ID0gK3g7Cisg
ICAgICAgIHkgPSAreTsKKyAgICAgICAgcmV0dXJuIHggKiB5OworICAgIH0KKworICAgIGZ1bmN0
aW9uIGRpdmlkZSh4LCB5KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgeSA9ICt5OworICAg
ICAgICByZXR1cm4geCAvIHk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbW9kdWxvKHgsIHkpIHsK
KyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAgIHJldHVybiB4ICUgeTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBhYnNvbHV0ZSh4KSB7CisgICAgICAgIHggPSAreDsKKyAg
ICAgICAgcmV0dXJuIGFicyh4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjZWlsTnVtYmVyKHgp
IHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gY2VpbCh4KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBmbG9vck51bWJlcih4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0
dXJuIGZsb29yKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNxdWFyZVJvb3QoeCkgeworICAg
ICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBzcXJ0KHgpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGNvc2luZSh4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIGNvcyh4KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBzaW5lKHgpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAg
ICByZXR1cm4gc2luKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRhbmdlbnQoeCkgeworICAg
ICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiB0YW4oeCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gYXJjY29zaW5lKHgpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gYWNvcyh4
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcmNzaW5lKHgpIHsKKyAgICAgICAgeCA9ICt4Owor
ICAgICAgICByZXR1cm4gYXNpbih4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcmN0YW5nZW50
KHgpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gYXRhbih4KTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBhcmN0YW5nZW50Mih4LCB5KSB7CisgICAgICAgIHggPSAreDsKKyAgICAg
ICAgeSA9ICt5OworICAgICAgICByZXR1cm4gYXRhbjIoeCwgeSk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gZXhwb25lbnRpYWwoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBl
eHAoeCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nYXJpdGhtKHgpIHsKKyAgICAgICAgeCA9
ICt4OworICAgICAgICByZXR1cm4gbG9nKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHBvd2Vy
KHgsIHkpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAgIHJldHVy
biBwb3coeCwgeSk7CisgICAgfQorCiAgICAgcmV0dXJuIHsKICAgICAgICAgbnVtYmVyOiBudW1i
ZXIsCisgICAgICAgIG5lZ2F0ZTogbmVnYXRlLAorICAgICAgICBhZGQ6IGFkZCwKKyAgICAgICAg
c3VidHJhY3Q6IHN1YnRyYWN0LAorICAgICAgICBtdWx0aXBseTogbXVsdGlwbHksCisgICAgICAg
IGRpdmlkZTogZGl2aWRlLAorICAgICAgICBtb2R1bG86IG1vZHVsbywKKyAgICAgICAgYWJzb2x1
dGU6IGFic29sdXRlLAorICAgICAgICBjZWlsTnVtYmVyOiBjZWlsTnVtYmVyLAorICAgICAgICBm
bG9vck51bWJlcjogZmxvb3JOdW1iZXIsCisgICAgICAgIHNxdWFyZVJvb3Q6IHNxdWFyZVJvb3Qs
CisgICAgICAgIGNvc2luZTogY29zaW5lLAorICAgICAgICBzaW5lOiBzaW5lLAorICAgICAgICB0
YW5nZW50OiB0YW5nZW50LAorICAgICAgICBhcmNjb3NpbmU6IGFyY2Nvc2luZSwKKyAgICAgICAg
YXJjc2luZTogYXJjc2luZSwKKyAgICAgICAgYXJjdGFuZ2VudDogYXJjdGFuZ2VudCwKKyAgICAg
ICAgYXJjdGFuZ2VudDI6IGFyY3RhbmdlbnQyLAorICAgICAgICBleHBvbmVudGlhbDogZXhwb25l
bnRpYWwsCisgICAgICAgIGxvZ2FyaXRobTogbG9nYXJpdGhtLAorICAgICAgICBwb3dlcjogcG93
ZXIsCiAgICAgfTsKIH0KICovCkBAIC0yNCwzICsxNjYsMzAgQEAgZnVuY3Rpb24gYXNtTW9kdWxl
KGdsb2JhbCwgZW52LCBidWZmZXIpIHsKIHZhciBtb2R1bGUgPSBsb2FkV2ViQXNzZW1ibHkoIndh
c20vYXJpdGhtZXRpYy1mbG9hdDY0Lndhc20iKTsKIAogc2hvdWxkQmUobW9kdWxlLm51bWJlcigp
LCA0LjIpOworc2hvdWxkQmUobW9kdWxlLm5lZ2F0ZSgwLjEpLCAtMC4xKTsKK3Nob3VsZEJlKG1v
ZHVsZS5hZGQoMC4xLCAwLjUpLCAwLjYpOworc2hvdWxkQmUoaXNOYU4obW9kdWxlLmFkZCgwLjEs
IE5hTikpLCB0cnVlKTsKK3Nob3VsZEJlKG1vZHVsZS5hZGQoMC4xLCBJbmZpbml0eSksIEluZmlu
aXR5KTsKK3Nob3VsZEJlKGlzTmFOKG1vZHVsZS5hZGQoSW5maW5pdHksIC1JbmZpbml0eSkpLCB0
cnVlKTsKK3Nob3VsZEJlKG1vZHVsZS5zdWJ0cmFjdCgwLjEsIDAuNSksIC0wLjQpOworc2hvdWxk
QmUobW9kdWxlLm11bHRpcGx5KDAuMSwgMC41KSwgMC4wNSk7CitzaG91bGRCZShtb2R1bGUuZGl2
aWRlKDAuMSwgMC41KSwgMC4yKTsKK3Nob3VsZEJlKG1vZHVsZS5kaXZpZGUoMC4xLCAwKSwgSW5m
aW5pdHkpOworc2hvdWxkQmUobW9kdWxlLmRpdmlkZSgwLjEsIC0wKSwgLUluZmluaXR5KTsKK3No
b3VsZEJlKG1vZHVsZS5tb2R1bG8oMC4xLCAwLjAzKSwgMC4wMTAwMDAwMDAwMDAwMDAwMDkpOwor
c2hvdWxkQmUoaXNOYU4obW9kdWxlLm1vZHVsbygwLjEsIDApKSwgdHJ1ZSk7CitzaG91bGRCZSht
b2R1bGUuYWJzb2x1dGUoLTQuMiksIDQuMik7CitzaG91bGRCZShtb2R1bGUuYWJzb2x1dGUoNC4y
KSwgNC4yKTsKK3Nob3VsZEJlKG1vZHVsZS5jZWlsTnVtYmVyKDQuMiksIDUpOworc2hvdWxkQmUo
bW9kdWxlLmZsb29yTnVtYmVyKDQuMiksIDQpOworc2hvdWxkQmUobW9kdWxlLnNxdWFyZVJvb3Qo
MC4wOSksIDAuMyk7CitzaG91bGRCZShtb2R1bGUuY29zaW5lKE1hdGguUEkpLCAtMSk7CitzaG91
bGRCZShtb2R1bGUuc2luZShNYXRoLlBJIC8gMiksIDEpOworc2hvdWxkQmUobW9kdWxlLnRhbmdl
bnQoTWF0aC5QSSAvIDQpLCAwLjk5OTk5OTk5OTk5OTk5OTkpOworc2hvdWxkQmUobW9kdWxlLmFy
Y2Nvc2luZSgtMSksIE1hdGguUEkpOworc2hvdWxkQmUobW9kdWxlLmFyY3NpbmUoMSksIE1hdGgu
UEkgLyAyKTsKK3Nob3VsZEJlKG1vZHVsZS5hcmN0YW5nZW50KDEpLCBNYXRoLlBJIC8gNCk7Citz
aG91bGRCZShtb2R1bGUuYXJjdGFuZ2VudDIoMSwgMCksIE1hdGguUEkgLyAyKTsKK3Nob3VsZEJl
KG1vZHVsZS5leHBvbmVudGlhbCgxKSwgTWF0aC5FKTsKK3Nob3VsZEJlKG1vZHVsZS5sb2dhcml0
aG0oTWF0aC5FKSwgMSk7CitzaG91bGRCZShtb2R1bGUucG93ZXIoNCwgMS41KSwgOCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20vYXJpdGhtZXRp
Yy1mbG9hdDY0Lndhc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20v
YXJpdGhtZXRpYy1mbG9hdDY0Lndhc20KaW5kZXggNDllMjA4MWUwMzE5MmY1YWM1ZDU2OGU4NzRh
YjYzZWM3MzgxMjcxMS4uN2I1ZmYyOTkwZjM1NDA1YjlmYzZmMmY4MWViNTBjYjFlZGFjYTRjZCAx
MDA2NDQKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDM3Ngp6Y21ZTXZTeCY8KzVDLTZ9M3VVTEpa
OXJsIz5wTGdsMVV6czlDbyNkMj9GbjhleW02SERLNSE9UnhDUT0pUHljOCMKem1ORkNHZUR7SVU8
Rz5sRzxTfGplVnJHQmdqQilzMjFOUVl2OFEhTnA+SnNCX299NlRoPzApdGpkcXwlZzV5ISp7Cnph
WX4jSz1mc3FfQVRFaWtlME5SdGhQZHRLdGd6OVAoZzlmNmgjLU45eCg0b0o4SndzQl5pMCUyd2ZZ
QGFZVzFwVwp6MzlBT3tzMWY/Ml5yJk14Uyp4VmQ0fnU4a3BFUk9kNGpjWEAzTVVeQzE4aTM0bTZm
b1MtNDRQdyhneFRPdTNCeigKbFFfYWdrRCE9PlRmNF9yMGBQUU9NWEcmLW9YPjVkMztufjJyI2Fh
ND0kcXlNI1lZUEFYCgpsaXRlcmFsIDQ3CnBjbVhSPEVZQUpIIX5nPH01RExzPlV9I3xFWEZQaWIx
T3l4eThTX2VXbFR3UXE3eSNmXzNnYGQ7CgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmgKaW5kZXggOGEyYjFkZGFlODEyMTMyOTE5OGU1NmRm
ZjU4NzAwNjA1ZjcyODgxMy4uNWIxM2JmMTZlOTc3ZWRiYmI1Yjk5YTIyZDAwMjg0MGFlZjZjYTNm
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29t
cGlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21w
aWxlci5oCkBAIC03MSw2ICs3MSwxNyBAQCBzdGF0aWMgdWludDMyX3QgSklUX09QRVJBVElPTiBv
cGVyYXRpb25VbnNpZ25lZE1vZCh1aW50MzJfdCBsZWZ0LCB1aW50MzJfdCByaWdodAogfQogI2Vu
ZGlmCiAKKy8vIE9uIFdpbmRvd3Mgd2UgbmVlZCB0byB3cmFwIGZtb2Q7IG9uIG90aGVyIHBsYXRm
b3JtcyB3ZSBjYW4gY2FsbCBpdCBkaXJlY3RseS4KKy8vIE9uIEFSTXY3IHdlIGFzc2VydCB0aGF0
IGFsbCBmdW5jdGlvbiBwb2ludGVycyBoYXZlIHRoZSBsb3cgYml0IHNldCAocG9pbnQgdG8gdGh1
bWIgY29kZSkuCisjaWYgQ0FMTElOR19DT05WRU5USU9OX0lTX1NURENBTEwgfHwgQ1BVKEFSTV9U
SFVNQjIpCitzdGF0aWMgZG91YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRm1vZChkb3VibGUg
eCwgZG91YmxlIHkpCit7CisgICAgcmV0dXJuIGZtb2QoeCwgeSk7Cit9CisjZWxzZQorI2RlZmlu
ZSBvcGVyYXRpb25GbW9kIGZtb2QKKyNlbmRpZgorCiBjbGFzcyBXQVNNRnVuY3Rpb25Db21waWxl
ciA6IHByaXZhdGUgQ0NhbGxIZWxwZXJzIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIGludCBFeHBy
ZXNzaW9uOwpAQCAtNDM3LDYgKzQ0OCw3NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBVTlVT
RUQ7CiAgICAgfQogCisgICAgaW50IGJ1aWxkVW5hcnlGNjQoaW50LCBXQVNNT3BFeHByZXNzaW9u
RjY0IG9wKQorICAgIHsKKyAgICAgICAgbG9hZERvdWJsZSh0ZW1wb3JhcnlBZGRyZXNzKG1fdGVt
cFN0YWNrVG9wIC0gMSksIEZQUkluZm86OmZwUmVnVDEpOworICAgICAgICBzd2l0Y2ggKG9wKSB7
CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TmVnYXRlOgorICAgICAgICAgICAg
bmVnYXRlRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QWJzOgorICAg
ICAgICAgICAgYWJzRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3Fy
dDoKKyAgICAgICAgICAgIHNxcnREb3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBS
ZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpDZWlsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkZsb29yOgorICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNvczoKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpTaW46CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6VGFu
OgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFDb3M6CisgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6QVNpbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpBVGFuOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkV4cDoKKyAgICAg
ICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpMbjoKKyAgICAgICAgICAgIERfSklUT3BlcmF0
aW9uX0Qgb3BlcmF0aW9uOworICAgICAgICAgICAgc3dpdGNoIChvcCkgeworICAgICAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDZWlsOgorICAgICAgICAgICAgICAgIG9wZXJhdGlv
biA9IGNlaWw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OkZsb29yOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IGZsb29y
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0OjpDb3M6CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gY29zOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTaW46
CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gc2luOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpUYW46CisgICAgICAgICAg
ICAgICAgb3BlcmF0aW9uID0gdGFuOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBQ29zOgorICAgICAgICAgICAgICAgIG9wZXJh
dGlvbiA9IGFjb3M7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6OkFTaW46CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gYXNp
bjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6QVRhbjoKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBhdGFuOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpF
eHA6CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gZXhwOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpMbjoKKyAgICAgICAg
ICAgICAgICBvcGVyYXRpb24gPSBsb2c7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwpCisgICAgICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVF
eHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgICAg
ICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBS
ZWdUMCk7CisgICAgICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisg
ICAgICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IH0KKyAgICAgICAgc3RvcmVEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgdGVtcG9yYXJ5QWRkcmVz
cyhtX3RlbXBTdGFja1RvcCAtIDEpKTsKKyAgICAgICAgcmV0dXJuIFVOVVNFRDsKKyAgICB9CisK
ICAgICBpbnQgYnVpbGRCaW5hcnlJMzIoaW50LCBpbnQsIFdBU01PcEV4cHJlc3Npb25JMzIgb3Ap
CiAgICAgewogICAgICAgICBsb2FkMzIodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAt
IDIpLCBHUFJJbmZvOjpyZWdUMCk7CkBAIC01NDksNiArNjMxLDU0IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIFVOVVNFRDsKICAgICB9CiAKKyAgICBpbnQgYnVpbGRCaW5hcnlGNjQoaW50LCBp
bnQsIFdBU01PcEV4cHJlc3Npb25GNjQgb3ApCisgICAgeworICAgICAgICBsb2FkRG91YmxlKHRl
bXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAyKSwgRlBSSW5mbzo6ZnBSZWdUMCk7Cisg
ICAgICAgIGxvYWREb3VibGUodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDEpLCBG
UFJJbmZvOjpmcFJlZ1QxKTsKKyAgICAgICAgc3dpdGNoIChvcCkgeworICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6OkFkZDoKKyAgICAgICAgICAgIGFkZERvdWJsZShGUFJJbmZvOjpm
cFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN1YjoKKyAgICAgICAgICAgIHN1YkRvdWJsZShGUFJJ
bmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok11bDoKKyAgICAgICAgICAgIG11bERvdWJs
ZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkRpdjoKKyAgICAgICAgICAgIGRp
dkRvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok1vZDoKKyAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBVGFuMjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpQb3c6CisgICAgICAgICAgICBEX0pJVE9wZXJhdGlvbl9ERCBvcGVyYXRpb247
CisgICAgICAgICAgICBzd2l0Y2ggKG9wKSB7CisgICAgICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GNjQ6Ok1vZDoKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBvcGVyYXRpb25GbW9k
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0OjpBVGFuMjoKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBhdGFuMjsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6
UG93OgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IHBvdzsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgICAgICBhZGRQdHIoVHJ1c3RlZElt
bTMyKC1tYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCBGUFJJbmZvOjpmcFJlZ1Qw
LCBGUFJJbmZvOjpmcFJlZ1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGlmICht
YXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgICAgICBhZGRQdHIoVHJ1
c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVn
aXN0ZXIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICAgICBtX3RlbXBTdGFja1Rv
cC0tOworICAgICAgICBzdG9yZURvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCB0ZW1wb3JhcnlBZGRy
ZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSkpOworICAgICAgICByZXR1cm4gVU5VU0VEOworICAgIH0K
KwogICAgIGludCBidWlsZFJlbGF0aW9uYWxJMzIoaW50LCBpbnQsIFdBU01PcEV4cHJlc3Npb25J
MzIgb3ApCiAgICAgewogICAgICAgICBsb2FkMzIodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFj
a1RvcCAtIDIpLCBHUFJJbmZvOjpyZWdUMCk7CkBAIC05MTcsNiArMTA0NywxMiBAQCBwcml2YXRl
OgogICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgZHN0LCBGbG9hdGluZ1Bv
aW50UHJlY2lzaW9uOjpTaW5nbGUpOwogICAgIH0KIAorICAgIHZvaWQgY2FsbE9wZXJhdGlvbihE
X0pJVE9wZXJhdGlvbl9EIG9wZXJhdGlvbiwgRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklE
IGRzdCkKKyAgICB7CisgICAgICAgIHNldHVwQXJndW1lbnRzKHNyYyk7CisgICAgICAgIGFwcGVu
ZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCBkc3QsIEZsb2F0aW5nUG9pbnRQcmVjaXNpb246OkRv
dWJsZSk7CisgICAgfQorCiAgICAgdm9pZCBjYWxsT3BlcmF0aW9uKGludDMyX3QgSklUX09QRVJB
VElPTiAoKm9wZXJhdGlvbikoaW50MzJfdCwgaW50MzJfdCksIEdQUlJlZyBzcmMxLCBHUFJSZWcg
c3JjMiwgR1BSUmVnIGRzdCkKICAgICB7CiAgICAgICAgIHNldHVwQXJndW1lbnRzKHNyYzEsIHNy
YzIpOwpAQCAtOTI5LDYgKzEwNjUsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgYXBwZW5kQ2FsbFNl
dFJlc3VsdChvcGVyYXRpb24sIGRzdCk7CiAgICAgfQogCisgICAgdm9pZCBjYWxsT3BlcmF0aW9u
KERfSklUT3BlcmF0aW9uX0REIG9wZXJhdGlvbiwgRlBSZWdpc3RlcklEIHNyYzEsIEZQUmVnaXN0
ZXJJRCBzcmMyLCBGUFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgc2V0dXBBcmd1bWVu
dHMoc3JjMSwgc3JjMik7CisgICAgICAgIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCBk
c3QsIEZsb2F0aW5nUG9pbnRQcmVjaXNpb246OkRvdWJsZSk7CisgICAgfQorCiAgICAgdm9pZCBi
b3hBcmd1bWVudHNBbmRBZGp1c3RTdGFja1BvaW50ZXIoY29uc3QgVmVjdG9yPFdBU01UeXBlPiYg
YXJndW1lbnRzKQogICAgIHsKICAgICAgICAgc2l6ZV90IGFyZ3VtZW50Q291bnQgPSBhcmd1bWVu
dHMuc2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1
bmN0aW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlv
blBhcnNlci5jcHAKaW5kZXggMDc5NTVlMTdjOGE1YzBhNjEzMDkwOWE5NzYzOWU3ZGVmMWYzN2Ri
NS4uOWY3MDEzMzI0NGI2YjcwMThhNGNiYjA5ODBlMTUxMmFjYjFjMjQwMyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwCkBAIC04ODEs
MjUgKzg4MSw3IEBAIENvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VF
eHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRleHQpCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VD
YWxsSW1wb3J0KGNvbnRleHQsIFdBU01FeHByZXNzaW9uVHlwZTo6RjY0KTsKICAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDYWxsSW5kaXJlY3Q6CiAgICAgICAgICAgICByZXR1cm4g
cGFyc2VDYWxsSW5kaXJlY3QoY29udGV4dCwgV0FTTUV4cHJlc3Npb25UeXBlOjpGNjQpOwotICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlNldExvY2FsOgotICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6OlNldEdsb2JhbDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0OjpMb2FkOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkxvYWRXaXRo
T2Zmc2V0OgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN0b3JlOgotICAgICAg
ICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN0b3JlV2l0aE9mZnNldDoKLSAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDb25kaXRpb25hbDoKLSAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpDb21tYToKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpG
cm9tUzMyOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkZyb21VMzI6Ci0gICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RnJvbUYzMjoKICAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpOZWdhdGU6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6QWRkOgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN1YjoKLSAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNdWw6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6RGl2OgotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok1vZDoKLSAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNaW46Ci0gICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6TWF4OgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFi
czoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDZWlsOgogICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OkZsb29yOgpAQCAtOTEwLDEwICs4OTIsMzAgQEAgQ29udGV4
dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25GNjQoQ29udGV4
dCYgY29udGV4dCkKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBQ29zOgogICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFTaW46CiAgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6QVRhbjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpB
VGFuMjoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpFeHA6CiAgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG46CisgICAgICAgICAgICByZXR1cm4gcGFyc2VVbmFy
eUV4cHJlc3Npb25GNjQoY29udGV4dCwgb3ApOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Np
b25GNjQ6OkFkZDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdWI6CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TXVsOgorICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OkRpdjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNb2Q6
CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjI6CiAgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6UG93OgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlQmluYXJ5
RXhwcmVzc2lvbkY2NChjb250ZXh0LCBvcCk7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkY2NDo6U2V0TG9jYWw6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2V0R2xv
YmFsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkxvYWQ6CisgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG9hZFdpdGhPZmZzZXQ6CisgICAgICAgIGNhc2UgV0FT
TU9wRXhwcmVzc2lvbkY2NDo6U3RvcmU6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6U3RvcmVXaXRoT2Zmc2V0OgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNv
bmRpdGlvbmFsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNvbW1hOgorICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkZyb21TMzI6CisgICAgICAgIGNhc2UgV0FT
TU9wRXhwcmVzc2lvbkY2NDo6RnJvbVUzMjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpGcm9tRjMyOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok1pbjoKKyAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNYXg6CiAgICAgICAgICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRoZXNlIGluc3RydWN0aW9ucy4KICAgICAgICAgICAgIEZBSUxfV0lUSF9N
RVNTQUdFKCJVbnN1cHBvcnRlZCBpbnN0cnVjdGlvbi4iKTsKICAgICAgICAgZGVmYXVsdDoKQEAg
LTk4Miw2ICs5ODQsMjQgQEAgQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpw
YXJzZUdldEdsb2JhbEV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGUKIH0KIAogdGVtcGxhdGUg
PGNsYXNzIENvbnRleHQ+CitDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBh
cnNlVW5hcnlFeHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRleHQsIFdBU01PcEV4cHJlc3Npb25G
NjQgb3ApCit7CisgICAgQ29udGV4dEV4cHJlc3Npb24gZXhwcmVzc2lvbiA9IHBhcnNlRXhwcmVz
c2lvbkY2NChjb250ZXh0KTsKKyAgICBQUk9QQUdBVEVfRVJST1IoKTsKKyAgICByZXR1cm4gY29u
dGV4dC5idWlsZFVuYXJ5RjY0KGV4cHJlc3Npb24sIG9wKTsKK30KKwordGVtcGxhdGUgPGNsYXNz
IENvbnRleHQ+CitDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQmlu
YXJ5RXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0LCBXQVNNT3BFeHByZXNzaW9uRjY0IG9w
KQoreworICAgIENvbnRleHRFeHByZXNzaW9uIGxlZnQgPSBwYXJzZUV4cHJlc3Npb25GNjQoY29u
dGV4dCk7CisgICAgUFJPUEFHQVRFX0VSUk9SKCk7CisgICAgQ29udGV4dEV4cHJlc3Npb24gcmln
aHQgPSBwYXJzZUV4cHJlc3Npb25GNjQoY29udGV4dCk7CisgICAgUFJPUEFHQVRFX0VSUk9SKCk7
CisgICAgcmV0dXJuIGNvbnRleHQuYnVpbGRCaW5hcnlGNjQobGVmdCwgcmlnaHQsIG9wKTsKK30K
KwordGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+CiBDb250ZXh0RXhwcmVzc2lvbkxpc3QgV0FTTUZ1
bmN0aW9uUGFyc2VyOjpwYXJzZUNhbGxBcmd1bWVudHMoQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
VmVjdG9yPFdBU01UeXBlPiYgYXJndW1lbnRzKQogewogICAgIENvbnRleHRFeHByZXNzaW9uTGlz
dCBhcmd1bWVudExpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
QVNNRnVuY3Rpb25QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5j
dGlvblBhcnNlci5oCmluZGV4IGJiYmQxM2RiZDE4Y2QwZTZkMjY4ZDE5NzI4MmQwZTM1YjVmZWE4
NTguLmU5OWI3NGFjNTUzMTdmNDQwNjg5NTdjMDBiYWUyMGQxZjFkZTQyYzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCkBAIC0xMTIsNiAr
MTEyLDggQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4
cHJlc3Npb24gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GNjQoQ29udGV4dCYsIHVpbnQzMl90IGxv
Y2FsSW5kZXgpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lv
biBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChDb250ZXh0Jik7CiAgICAgdGVtcGxhdGUgPGNs
YXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlR2V0R2xvYmFsRXhwcmVzc2lvbkY2
NChDb250ZXh0Jik7CisgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNz
aW9uIHBhcnNlVW5hcnlFeHByZXNzaW9uRjY0KENvbnRleHQmLCBXQVNNT3BFeHByZXNzaW9uRjY0
KTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VC
aW5hcnlFeHByZXNzaW9uRjY0KENvbnRleHQmLCBXQVNNT3BFeHByZXNzaW9uRjY0KTsKIAogICAg
IHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbkxpc3QgcGFyc2VDYWxs
QXJndW1lbnRzKENvbnRleHQmLCBjb25zdCBWZWN0b3I8V0FTTVR5cGU+JiBhcmd1bWVudHMpOwog
ICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUNhbGxJ
bnRlcm5hbChDb250ZXh0JiwgV0FTTUV4cHJlc3Npb25UeXBlIHJldHVyblR5cGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tl
ci5oCmluZGV4IDYyODYzZDRlNzUwNTVmNDA0ODZlZDlkNTM2ZmZlYTk5Nzg2YzI5YjEuLmI3ZDM4
ZjRiZmJmOWJlZTYyZjU4OTYwNTgxMjEwYmZiOTQyNWM0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5bnRheENoZWNrZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyLmgKQEAgLTEx
MSw2ICsxMTEsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gVU5VU0VEOwogICAgIH0KIAor
ICAgIGludCBidWlsZFVuYXJ5RjY0KGludCwgV0FTTU9wRXhwcmVzc2lvbkY2NCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBVTlVTRUQ7CisgICAgfQorCiAgICAgaW50IGJ1aWxkQmluYXJ5STMyKGlu
dCwgaW50LCBXQVNNT3BFeHByZXNzaW9uSTMyKQogICAgIHsKICAgICAgICAgbV90ZW1wU3RhY2tU
b3AtLTsKQEAgLTEyMyw2ICsxMjgsMTIgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gVU5VU0VE
OwogICAgIH0KIAorICAgIGludCBidWlsZEJpbmFyeUY2NChpbnQsIGludCwgV0FTTU9wRXhwcmVz
c2lvbkY2NCkKKyAgICB7CisgICAgICAgIG1fdGVtcFN0YWNrVG9wLS07CisgICAgICAgIHJldHVy
biBVTlVTRUQ7CisgICAgfQorCiAgICAgaW50IGJ1aWxkUmVsYXRpb25hbEkzMihpbnQsIGludCwg
V0FTTU9wRXhwcmVzc2lvbkkzMikKICAgICB7CiAgICAgICAgIG1fdGVtcFN0YWNrVG9wLS07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261541</attachid>
            <date>2015-09-18 16:15:08 -0700</date>
            <delta_ts>2015-09-18 16:25:40 -0700</delta_ts>
            <desc>Update to ToT</desc>
            <filename>diff.txt</filename>
            <type>text/plain</type>
            <size>18718</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGY1YzIyYmIwNzJmZGIxMmFhOTkzMTdjNmM0N2Vk
NGUxYmM4YWNkZTguLmYyZTgxOGM0ZGZjMzhkYmI2NWZkNGQ0ZDcwZGQ2ZTEwYTllODdlYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA5LTE4ICBTdWtv
bHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCB0aGUgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgZm9yIGRvdWJsZXMgaW4gV2ViQXNzZW1ibHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk0NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaW1wbGVtZW50cyB0aGUgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgZm9yIGRvdWJsZXMgKGZs
b2F0NjQpCisgICAgICAgIGluIFdlYkFzc2VtYmx5LgorCisgICAgICAgICogdGVzdHMvc3RyZXNz
L3dhc20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy93YXNt
L2FyaXRobWV0aWMtZmxvYXQ2NC53YXNtOgorICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9uQ29t
cGlsZXIuaDoKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmJ1aWxkVW5hcnlG
NjQpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6YnVpbGRCaW5hcnlGNjQp
OgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Y2FsbE9wZXJhdGlvbik6Cisg
ICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpXQVNN
RnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbkY2NCk6CisgICAgICAgIChKU0M6OldBU01G
dW5jdGlvblBhcnNlcjo6cGFyc2VVbmFyeUV4cHJlc3Npb25GNjQpOgorICAgICAgICAoSlNDOjpX
QVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQmluYXJ5RXhwcmVzc2lvbkY2NCk6CisgICAgICAgICog
d2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaDoKKyAgICAgICAgKiB3YXNtL1dBU01GdW5jdGlvblN5
bnRheENoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlcjo6
YnVpbGRVbmFyeUY2NCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblN5bnRheENoZWNrZXI6
OmJ1aWxkQmluYXJ5RjMyKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tl
cjo6YnVpbGRCaW5hcnlGNjQpOgorCiAyMDE1LTA5LTE4ICBTdWtvbHNhayBTYWtzaHV3b25nICA8
c3Vrb2xzYWtAZ21haWwuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBsaW5lYXIgbWVtb3J5IGlu
c3RydWN0aW9ucyBpbiBXZWJBc3NlbWJseQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qcyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS1hcml0aG1ldGljLWZsb2F0NjQuanMKaW5kZXgg
OGViNWU5ZjA2MTY5NTgwMTk3NWMzZjBiYTExMzc1ZWVkNWQ5MjE0Mi4uYzA5YzJjOWMwNDhlYzJj
NDhhNTAxM2Y1OWNlN2Y3MjBmN2NhODg3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qcworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzCkBA
IC0xMSwxMiArMTEsMTU0IEBAIHdhc20vYXJpdGhtZXRpYy1mbG9hdDY0Lndhc20gaXMgZ2VuZXJh
dGVkIGJ5IHBhY2stYXNtanMgPGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBCiBmdW5jdGlvbiBhc21N
b2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewogICAgICJ1c2UgYXNtIjsKIAorICAgIHZhciBh
YnMgPSBnbG9iYWwuTWF0aC5hYnM7CisgICAgdmFyIGNlaWwgPSBnbG9iYWwuTWF0aC5jZWlsOwor
ICAgIHZhciBmbG9vciA9IGdsb2JhbC5NYXRoLmZsb29yOworICAgIHZhciBzcXJ0ID0gZ2xvYmFs
Lk1hdGguc3FydDsKKyAgICB2YXIgY29zID0gZ2xvYmFsLk1hdGguY29zOworICAgIHZhciBzaW4g
PSBnbG9iYWwuTWF0aC5zaW47CisgICAgdmFyIHRhbiA9IGdsb2JhbC5NYXRoLnRhbjsKKyAgICB2
YXIgYWNvcyA9IGdsb2JhbC5NYXRoLmFjb3M7CisgICAgdmFyIGFzaW4gPSBnbG9iYWwuTWF0aC5h
c2luOworICAgIHZhciBhdGFuID0gZ2xvYmFsLk1hdGguYXRhbjsKKyAgICB2YXIgYXRhbjIgPSBn
bG9iYWwuTWF0aC5hdGFuMjsKKyAgICB2YXIgZXhwID0gZ2xvYmFsLk1hdGguZXhwOworICAgIHZh
ciBsb2cgPSBnbG9iYWwuTWF0aC5sb2c7CisgICAgdmFyIHBvdyA9IGdsb2JhbC5NYXRoLnBvdzsK
KwogICAgIGZ1bmN0aW9uIG51bWJlcigpIHsKICAgICAgICAgcmV0dXJuIDQuMjsKICAgICB9CiAK
KyAgICBmdW5jdGlvbiBuZWdhdGUoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVy
biAteDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhZGQoeCwgeSkgeworICAgICAgICB4ID0gK3g7
CisgICAgICAgIHkgPSAreTsKKyAgICAgICAgcmV0dXJuIHggKyB5OworICAgIH0KKworICAgIGZ1
bmN0aW9uIHN1YnRyYWN0KHgsIHkpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7
CisgICAgICAgIHJldHVybiB4IC0geTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBtdWx0aXBseSh4
LCB5KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgeSA9ICt5OworICAgICAgICByZXR1cm4g
eCAqIHk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZGl2aWRlKHgsIHkpIHsKKyAgICAgICAgeCA9
ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAgIHJldHVybiB4IC8geTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBtb2R1bG8oeCwgeSkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHkgPSAr
eTsKKyAgICAgICAgcmV0dXJuIHggJSB5OworICAgIH0KKworICAgIGZ1bmN0aW9uIGFic29sdXRl
KHgpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gYWJzKHgpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGNlaWxOdW1iZXIoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJl
dHVybiBjZWlsKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZsb29yTnVtYmVyKHgpIHsKKyAg
ICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gZmxvb3IoeCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gc3F1YXJlUm9vdCh4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIHNx
cnQoeCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY29zaW5lKHgpIHsKKyAgICAgICAgeCA9ICt4
OworICAgICAgICByZXR1cm4gY29zKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNpbmUoeCkg
eworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBzaW4oeCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gdGFuZ2VudCh4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIHRh
bih4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcmNjb3NpbmUoeCkgeworICAgICAgICB4ID0g
K3g7CisgICAgICAgIHJldHVybiBhY29zKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFyY3Np
bmUoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBhc2luKHgpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGFyY3RhbmdlbnQoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAg
IHJldHVybiBhdGFuKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFyY3RhbmdlbnQyKHgsIHkp
IHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAgIHJldHVybiBhdGFu
Mih4LCB5KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBleHBvbmVudGlhbCh4KSB7CisgICAgICAg
IHggPSAreDsKKyAgICAgICAgcmV0dXJuIGV4cCh4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBs
b2dhcml0aG0oeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBsb2coeCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gcG93ZXIoeCwgeSkgeworICAgICAgICB4ID0gK3g7CisgICAg
ICAgIHkgPSAreTsKKyAgICAgICAgcmV0dXJuIHBvdyh4LCB5KTsKKyAgICB9CisKICAgICByZXR1
cm4gewogICAgICAgICBudW1iZXI6IG51bWJlciwKKyAgICAgICAgbmVnYXRlOiBuZWdhdGUsCisg
ICAgICAgIGFkZDogYWRkLAorICAgICAgICBzdWJ0cmFjdDogc3VidHJhY3QsCisgICAgICAgIG11
bHRpcGx5OiBtdWx0aXBseSwKKyAgICAgICAgZGl2aWRlOiBkaXZpZGUsCisgICAgICAgIG1vZHVs
bzogbW9kdWxvLAorICAgICAgICBhYnNvbHV0ZTogYWJzb2x1dGUsCisgICAgICAgIGNlaWxOdW1i
ZXI6IGNlaWxOdW1iZXIsCisgICAgICAgIGZsb29yTnVtYmVyOiBmbG9vck51bWJlciwKKyAgICAg
ICAgc3F1YXJlUm9vdDogc3F1YXJlUm9vdCwKKyAgICAgICAgY29zaW5lOiBjb3NpbmUsCisgICAg
ICAgIHNpbmU6IHNpbmUsCisgICAgICAgIHRhbmdlbnQ6IHRhbmdlbnQsCisgICAgICAgIGFyY2Nv
c2luZTogYXJjY29zaW5lLAorICAgICAgICBhcmNzaW5lOiBhcmNzaW5lLAorICAgICAgICBhcmN0
YW5nZW50OiBhcmN0YW5nZW50LAorICAgICAgICBhcmN0YW5nZW50MjogYXJjdGFuZ2VudDIsCisg
ICAgICAgIGV4cG9uZW50aWFsOiBleHBvbmVudGlhbCwKKyAgICAgICAgbG9nYXJpdGhtOiBsb2dh
cml0aG0sCisgICAgICAgIHBvd2VyOiBwb3dlciwKICAgICB9OwogfQogKi8KQEAgLTI0LDMgKzE2
NiwzMCBAQCBmdW5jdGlvbiBhc21Nb2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewogdmFyIG1v
ZHVsZSA9IGxvYWRXZWJBc3NlbWJseSgid2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbSIpOwog
CiBzaG91bGRCZShtb2R1bGUubnVtYmVyKCksIDQuMik7CitzaG91bGRCZShtb2R1bGUubmVnYXRl
KDAuMSksIC0wLjEpOworc2hvdWxkQmUobW9kdWxlLmFkZCgwLjEsIDAuNSksIDAuNik7CitzaG91
bGRCZShpc05hTihtb2R1bGUuYWRkKDAuMSwgTmFOKSksIHRydWUpOworc2hvdWxkQmUobW9kdWxl
LmFkZCgwLjEsIEluZmluaXR5KSwgSW5maW5pdHkpOworc2hvdWxkQmUoaXNOYU4obW9kdWxlLmFk
ZChJbmZpbml0eSwgLUluZmluaXR5KSksIHRydWUpOworc2hvdWxkQmUobW9kdWxlLnN1YnRyYWN0
KDAuMSwgMC41KSwgLTAuNCk7CitzaG91bGRCZShtb2R1bGUubXVsdGlwbHkoMC4xLCAwLjUpLCAw
LjA1KTsKK3Nob3VsZEJlKG1vZHVsZS5kaXZpZGUoMC4xLCAwLjUpLCAwLjIpOworc2hvdWxkQmUo
bW9kdWxlLmRpdmlkZSgwLjEsIDApLCBJbmZpbml0eSk7CitzaG91bGRCZShtb2R1bGUuZGl2aWRl
KDAuMSwgLTApLCAtSW5maW5pdHkpOworc2hvdWxkQmUobW9kdWxlLm1vZHVsbygwLjEsIDAuMDMp
LCAwLjAxMDAwMDAwMDAwMDAwMDAwOSk7CitzaG91bGRCZShpc05hTihtb2R1bGUubW9kdWxvKDAu
MSwgMCkpLCB0cnVlKTsKK3Nob3VsZEJlKG1vZHVsZS5hYnNvbHV0ZSgtNC4yKSwgNC4yKTsKK3No
b3VsZEJlKG1vZHVsZS5hYnNvbHV0ZSg0LjIpLCA0LjIpOworc2hvdWxkQmUobW9kdWxlLmNlaWxO
dW1iZXIoNC4yKSwgNSk7CitzaG91bGRCZShtb2R1bGUuZmxvb3JOdW1iZXIoNC4yKSwgNCk7Citz
aG91bGRCZShtb2R1bGUuc3F1YXJlUm9vdCgwLjA5KSwgMC4zKTsKK3Nob3VsZEJlKG1vZHVsZS5j
b3NpbmUoTWF0aC5QSSksIC0xKTsKK3Nob3VsZEJlKG1vZHVsZS5zaW5lKE1hdGguUEkgLyAyKSwg
MSk7CitzaG91bGRCZShtb2R1bGUudGFuZ2VudChNYXRoLlBJIC8gNCksIDAuOTk5OTk5OTk5OTk5
OTk5OSk7CitzaG91bGRCZShtb2R1bGUuYXJjY29zaW5lKC0xKSwgTWF0aC5QSSk7CitzaG91bGRC
ZShtb2R1bGUuYXJjc2luZSgxKSwgTWF0aC5QSSAvIDIpOworc2hvdWxkQmUobW9kdWxlLmFyY3Rh
bmdlbnQoMSksIE1hdGguUEkgLyA0KTsKK3Nob3VsZEJlKG1vZHVsZS5hcmN0YW5nZW50MigxLCAw
KSwgTWF0aC5QSSAvIDIpOworc2hvdWxkQmUobW9kdWxlLmV4cG9uZW50aWFsKDEpLCBNYXRoLkUp
Oworc2hvdWxkQmUobW9kdWxlLmxvZ2FyaXRobShNYXRoLkUpLCAxKTsKK3Nob3VsZEJlKG1vZHVs
ZS5wb3dlcig0LCAxLjUpLCA4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbQppbmRleCA0
OWUyMDgxZTAzMTkyZjVhYzVkNTY4ZTg3NGFiNjNlYzczODEyNzExLi43YjVmZjI5OTBmMzU0MDVi
OWZjNmYyZjgxZWI1MGNiMWVkYWNhNGNkIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
Mzc2CnpjbVlNdlN4JjwrNUMtNn0zdVVMSlo5cmwjPnBMZ2wxVXpzOUNvI2QyP0ZuOGV5bTZIREs1
IT1SeENRPSlQeWM4Iwp6bU5GQ0dlRHtJVTxHPmxHPFN8amVWckdCZ2pCKXMyMU5RWXY4USFOcD5K
c0Jfb302VGg/MCl0amRxfCVnNXkhKnsKemFZfiNLPWZzcV9BVEVpa2UwTlJ0aFBkdEt0Z3o5UChn
OWY2aCMtTjl4KDRvSjhKd3NCXmkwJTJ3ZllAYVlXMXBXCnozOUFPe3MxZj8yXnImTXhTKnhWZDR+
dThrcEVST2Q0amNYQDNNVV5DMThpMzRtNmZvUy00NFB3KGd4VE91M0J6KApsUV9hZ2tEIT0+VGY0
X3IwYFBRT01YRyYtb1g+NWQzO25+MnIjYWE0PSRxeU0jWVlQQVgKCmxpdGVyYWwgNDcKcGNtWFI8
RVlBSkghfmc8fTVETHM+VX0jfEVYRlBpYjFPeXh5OFNfZVdsVHdRcTd5I2ZfM2dgZDsKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaAppbmRl
eCA0NzM1ZjYwNjcyOGM4NWZjNWM3NGExOTBmNjM2MThhNGQxMWE2ZGU1Li5lOGE3MGIwYzUyNjI0
ODk5OTA4MGU2OTY3ZGU0ZDczY2VlZTU2YTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmgKQEAgLTY0OSw2ICs2NDksNzcgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gVU5VU0VEOwogICAgIH0KIAorICAgIGludCBidWlsZFVuYXJ5
RjY0KGludCwgV0FTTU9wRXhwcmVzc2lvbkY2NCBvcCkKKyAgICB7CisgICAgICAgIGxvYWREb3Vi
bGUodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDEpLCBGUFJJbmZvOjpmcFJlZ1Qx
KTsKKyAgICAgICAgc3dpdGNoIChvcCkgeworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
NjQ6Ok5lZ2F0ZToKKyAgICAgICAgICAgIG5lZ2F0ZURvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBG
UFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OkFiczoKKyAgICAgICAgICAgIGFic0RvdWJsZShGUFJJbmZvOjpmcFJl
Z1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OlNxcnQ6CisgICAgICAgICAgICBzcXJ0RG91YmxlKEZQUklu
Zm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpGbG9vcjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpD
b3M6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2luOgorICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OlRhbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpBQ29zOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFTaW46CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjoKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpFeHA6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG46
CisgICAgICAgICAgICBEX0pJVE9wZXJhdGlvbl9EIG9wZXJhdGlvbjsKKyAgICAgICAgICAgIHN3
aXRjaCAob3ApIHsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoK
KyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBjZWlsOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGbG9vcjoKKyAgICAgICAg
ICAgICAgICBvcGVyYXRpb24gPSBmbG9vcjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29zOgorICAgICAgICAgICAgICAgIG9w
ZXJhdGlvbiA9IGNvczsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6U2luOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IHNp
bjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6VGFuOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IHRhbjsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QUNv
czoKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBhY29zOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBU2luOgorICAgICAg
ICAgICAgICAgIG9wZXJhdGlvbiA9IGFzaW47CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW46CisgICAgICAgICAgICAgICAg
b3BlcmF0aW9uID0gYXRhbjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RXhwOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9
IGV4cDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkY2NDo6TG46CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gbG9nOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
aWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgICAgIGFkZFB0
cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOworICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIEZQUklu
Zm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgaWYgKG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1t
MzIobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgICAgIHN0b3JlRG91YmxlKEZQUkluZm86
OmZwUmVnVDAsIHRlbXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAxKSk7CisgICAgICAg
IHJldHVybiBVTlVTRUQ7CisgICAgfQorCiAgICAgaW50IGJ1aWxkQmluYXJ5STMyKGludCwgaW50
LCBXQVNNT3BFeHByZXNzaW9uSTMyIG9wKQogICAgIHsKICAgICAgICAgbG9hZDMyKHRlbXBvcmFy
eUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAyKSwgR1BSSW5mbzo6cmVnVDApOwpAQCAtNzYxLDYg
KzgzMiw1NCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAgfQogCisgICAg
aW50IGJ1aWxkQmluYXJ5RjY0KGludCwgaW50LCBXQVNNT3BFeHByZXNzaW9uRjY0IG9wKQorICAg
IHsKKyAgICAgICAgbG9hZERvdWJsZSh0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0g
MiksIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICBsb2FkRG91YmxlKHRlbXBvcmFyeUFkZHJl
c3MobV90ZW1wU3RhY2tUb3AgLSAxKSwgRlBSSW5mbzo6ZnBSZWdUMSk7CisgICAgICAgIHN3aXRj
aCAob3ApIHsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBZGQ6CisgICAgICAg
ICAgICBhZGREb3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdWI6Cisg
ICAgICAgICAgICBzdWJEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpN
dWw6CisgICAgICAgICAgICBtdWxEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBS
ZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpEaXY6CisgICAgICAgICAgICBkaXZEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5m
bzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpNb2Q6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjI6
CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6UG93OgorICAgICAgICAgICAgRF9K
SVRPcGVyYXRpb25fREQgb3BlcmF0aW9uOworICAgICAgICAgICAgc3dpdGNoIChvcCkgeworICAg
ICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNb2Q6CisgICAgICAgICAgICAgICAg
b3BlcmF0aW9uID0gZm1vZDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjI6CisgICAgICAgICAgICAgICAgb3BlcmF0aW9u
ID0gYXRhbjI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OlBvdzoKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBwb3c7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICAgICAg
YWRkUHRyKFRydXN0ZWRJbW0zMigtbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpLCBzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwg
RlBSSW5mbzo6ZnBSZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMSwgRlBSSW5mbzo6ZnBSZWdUMCk7Cisg
ICAgICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAg
ICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCks
IHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICAg
ICAgbV90ZW1wU3RhY2tUb3AtLTsKKyAgICAgICAgc3RvcmVEb3VibGUoRlBSSW5mbzo6ZnBSZWdU
MCwgdGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDEpKTsKKyAgICAgICAgcmV0dXJu
IFVOVVNFRDsKKyAgICB9CisKICAgICBpbnQgYnVpbGRSZWxhdGlvbmFsSTMyKGludCwgaW50LCBX
QVNNT3BFeHByZXNzaW9uSTMyIG9wKQogICAgIHsKICAgICAgICAgbG9hZDMyKHRlbXBvcmFyeUFk
ZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAyKSwgR1BSSW5mbzo6cmVnVDApOwpAQCAtMTEyOSw2ICsx
MjQ4LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9u
LCBkc3QsIEZsb2F0aW5nUG9pbnRQcmVjaXNpb246OlNpbmdsZSk7CiAgICAgfQogCisgICAgdm9p
ZCBjYWxsT3BlcmF0aW9uKERfSklUT3BlcmF0aW9uX0Qgb3BlcmF0aW9uLCBGUFJlZ2lzdGVySUQg
c3JjLCBGUFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgc2V0dXBBcmd1bWVudHMoc3Jj
KTsKKyAgICAgICAgYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIGRzdCwgRmxvYXRpbmdQ
b2ludFByZWNpc2lvbjo6RG91YmxlKTsKKyAgICB9CisKICAgICB2b2lkIGNhbGxPcGVyYXRpb24o
aW50MzJfdCBKSVRfT1BFUkFUSU9OICgqb3BlcmF0aW9uKShpbnQzMl90LCBpbnQzMl90KSwgR1BS
UmVnIHNyYzEsIEdQUlJlZyBzcmMyLCBHUFJSZWcgZHN0KQogICAgIHsKICAgICAgICAgc2V0dXBB
cmd1bWVudHMoc3JjMSwgc3JjMik7CkBAIC0xMTQxLDYgKzEyNjYsMTIgQEAgcHJpdmF0ZToKICAg
ICAgICAgYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIGRzdCk7CiAgICAgfQogCisgICAg
dm9pZCBjYWxsT3BlcmF0aW9uKERfSklUT3BlcmF0aW9uX0REIG9wZXJhdGlvbiwgRlBSZWdpc3Rl
cklEIHNyYzEsIEZQUmVnaXN0ZXJJRCBzcmMyLCBGUFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAg
ICAgICAgc2V0dXBBcmd1bWVudHMoc3JjMSwgc3JjMik7CisgICAgICAgIGFwcGVuZENhbGxTZXRS
ZXN1bHQob3BlcmF0aW9uLCBkc3QsIEZsb2F0aW5nUG9pbnRQcmVjaXNpb246OkRvdWJsZSk7Cisg
ICAgfQorCiAgICAgdm9pZCBjYWxsT3BlcmF0aW9uKGRvdWJsZSBKSVRfT1BFUkFUSU9OICgqb3Bl
cmF0aW9uKSh1aW50MzJfdCksIEdQUlJlZyBzcmMsIEZQUmVnaXN0ZXJJRCBkc3QpCiAgICAgewog
ICAgICAgICBzZXR1cEFyZ3VtZW50cyhzcmMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAKaW5kZXggNTNlYWIxNWQxZmI0ZTI5YzcyZTc0
N2U2ZmQ0NTg0Y2MzOWE2MjdkMy4uODRkODhjYzhlMmFiNzMxNmYzNGJkODEzY2I0ZWI1ZjQyZGZh
ZWE1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9u
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Q
YXJzZXIuY3BwCkBAIC05MjgsMjAgKzkyOCw3IEBAIENvbnRleHRFeHByZXNzaW9uIFdBU01GdW5j
dGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRleHQpCiAgICAgICAg
ICAgICByZXR1cm4gcGFyc2VDb252ZXJ0VHlwZShjb250ZXh0LCBXQVNNRXhwcmVzc2lvblR5cGU6
OkkzMiwgV0FTTUV4cHJlc3Npb25UeXBlOjpGNjQsIFdBU01UeXBlQ29udmVyc2lvbjo6Q29udmVy
dFVuc2lnbmVkKTsKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGcm9tRjMyOgog
ICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ29udmVydFR5cGUoY29udGV4dCwgV0FTTUV4cHJlc3Np
b25UeXBlOjpGMzIsIFdBU01FeHByZXNzaW9uVHlwZTo6RjY0LCBXQVNNVHlwZUNvbnZlcnNpb246
OlByb21vdGUpOwotICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlNldExvY2FsOgot
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlNldEdsb2JhbDoKLSAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdG9yZToKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0OjpTdG9yZVdpdGhPZmZzZXQ6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6Q29uZGl0aW9uYWw6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29tbWE6
CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TmVnYXRlOgotICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OkFkZDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpTdWI6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TXVsOgotICAgICAg
ICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkRpdjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpNb2Q6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TWluOgot
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok1heDoKICAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpBYnM6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6
Q2VpbDoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGbG9vcjoKQEAgLTk1Miwx
MCArOTM5LDI1IEBAIENvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VF
eHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6QUNvczoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBU2luOgog
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW46Ci0gICAgICAgIGNhc2UgV0FT
TU9wRXhwcmVzc2lvbkY2NDo6QVRhbjI6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6RXhwOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkxuOgorICAgICAgICAg
ICAgcmV0dXJuIHBhcnNlVW5hcnlFeHByZXNzaW9uRjY0KGNvbnRleHQsIG9wKTsKKyAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBZGQ6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6U3ViOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok11bDoKKyAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpEaXY6CisgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6TW9kOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFU
YW4yOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlBvdzoKKyAgICAgICAgICAg
IHJldHVybiBwYXJzZUJpbmFyeUV4cHJlc3Npb25GNjQoY29udGV4dCwgb3ApOworICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlNldExvY2FsOgorICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OlNldEdsb2JhbDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0
OjpTdG9yZToKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdG9yZVdpdGhPZmZz
ZXQ6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29uZGl0aW9uYWw6CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29tbWE6CisgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6TWluOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok1h
eDoKICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhlc2UgaW5zdHJ1Y3Rpb25zLgog
ICAgICAgICAgICAgRkFJTF9XSVRIX01FU1NBR0UoIlVuc3VwcG9ydGVkIGluc3RydWN0aW9uLiIp
OwogICAgICAgICBkZWZhdWx0OgpAQCAtMTAyNCw2ICsxMDI2LDI0IEBAIENvbnRleHRFeHByZXNz
aW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VHZXRHbG9iYWxFeHByZXNzaW9uRjY0KENvbnRl
eHQmIGNvbnRlCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PgorQ29udGV4dEV4cHJlc3Np
b24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZVVuYXJ5RXhwcmVzc2lvbkY2NChDb250ZXh0JiBj
b250ZXh0LCBXQVNNT3BFeHByZXNzaW9uRjY0IG9wKQoreworICAgIENvbnRleHRFeHByZXNzaW9u
IGV4cHJlc3Npb24gPSBwYXJzZUV4cHJlc3Npb25GNjQoY29udGV4dCk7CisgICAgUFJPUEFHQVRF
X0VSUk9SKCk7CisgICAgcmV0dXJuIGNvbnRleHQuYnVpbGRVbmFyeUY2NChleHByZXNzaW9uLCBv
cCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBDb250ZXh0PgorQ29udGV4dEV4cHJlc3Npb24gV0FT
TUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUJpbmFyeUV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4
dCwgV0FTTU9wRXhwcmVzc2lvbkY2NCBvcCkKK3sKKyAgICBDb250ZXh0RXhwcmVzc2lvbiBsZWZ0
ID0gcGFyc2VFeHByZXNzaW9uRjY0KGNvbnRleHQpOworICAgIFBST1BBR0FURV9FUlJPUigpOwor
ICAgIENvbnRleHRFeHByZXNzaW9uIHJpZ2h0ID0gcGFyc2VFeHByZXNzaW9uRjY0KGNvbnRleHQp
OworICAgIFBST1BBR0FURV9FUlJPUigpOworICAgIHJldHVybiBjb250ZXh0LmJ1aWxkQmluYXJ5
RjY0KGxlZnQsIHJpZ2h0LCBvcCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBDb250ZXh0PgogQ29u
dGV4dE1lbW9yeUFkZHJlc3MgV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZU1lbW9yeUFkZHJlc3Mo
Q29udGV4dCYgY29udGV4dCwgTWVtb3J5QWNjZXNzT2Zmc2V0TW9kZSBvZmZzZXRNb2RlKQogewog
ICAgIHVpbnQzMl90IG9mZnNldCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dBU01GdW5jdGlvblBhcnNlci5oCmluZGV4IDE2MzExMThmZmI0OTBmYzZjNWExZjNmMDU2MzI0
NjI3ZmViMjgyMDIuLjgxZjBiNzhmNTI3M2MxY2M4ZGFiYzFmOTQ2OWQ4MWNiZWJlZmZiYjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCkBA
IC0xMTMsNiArMTEzLDggQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4g
Q29udGV4dEV4cHJlc3Npb24gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GNjQoQ29udGV4dCYsIHVp
bnQzMl90IGxvY2FsSW5kZXgpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0
RXhwcmVzc2lvbiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChDb250ZXh0Jik7CiAgICAgdGVt
cGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlR2V0R2xvYmFsRXhw
cmVzc2lvbkY2NChDb250ZXh0Jik7CisgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRl
eHRFeHByZXNzaW9uIHBhcnNlVW5hcnlFeHByZXNzaW9uRjY0KENvbnRleHQmLCBXQVNNT3BFeHBy
ZXNzaW9uRjY0KTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Np
b24gcGFyc2VCaW5hcnlFeHByZXNzaW9uRjY0KENvbnRleHQmLCBXQVNNT3BFeHByZXNzaW9uRjY0
KTsKIAogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0TWVtb3J5QWRkcmVzcyBw
YXJzZU1lbW9yeUFkZHJlc3MoQ29udGV4dCYsIE1lbW9yeUFjY2Vzc09mZnNldE1vZGUpOwogICAg
IHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUxvYWQoQ29u
dGV4dCYsIFdBU01FeHByZXNzaW9uVHlwZSwgV0FTTU1lbW9yeVR5cGUsIE1lbW9yeUFjY2Vzc09m
ZnNldE1vZGUsIE1lbW9yeUFjY2Vzc0NvbnZlcnNpb24gPSBNZW1vcnlBY2Nlc3NDb252ZXJzaW9u
OjpOb0NvbnZlcnNpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlci5oCmluZGV4IDQ2YWNhNWQ2NmJkNjI1ZjM3OGQ1ZDYw
NWRlZTI3YzE4MzNhNGIyNWQuLmI3YmIxOTIzNTY2YThkMmMxN2JhY2Q3OTI3NTA4ZDJlZGIxZTJl
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5
bnRheENoZWNrZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rp
b25TeW50YXhDaGVja2VyLmgKQEAgLTEzMSw2ICsxMzEsMTEgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gVU5VU0VEOwogICAgIH0KIAorICAgIGludCBidWlsZFVuYXJ5RjY0KGludCwgV0FTTU9w
RXhwcmVzc2lvbkY2NCkKKyAgICB7CisgICAgICAgIHJldHVybiBVTlVTRUQ7CisgICAgfQorCiAg
ICAgaW50IGJ1aWxkQmluYXJ5STMyKGludCwgaW50LCBXQVNNT3BFeHByZXNzaW9uSTMyKQogICAg
IHsKICAgICAgICAgbV90ZW1wU3RhY2tUb3AtLTsKQEAgLTE0Myw2ICsxNDgsMTIgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gVU5VU0VEOwogICAgIH0KIAorICAgIGludCBidWlsZEJpbmFyeUY2
NChpbnQsIGludCwgV0FTTU9wRXhwcmVzc2lvbkY2NCkKKyAgICB7CisgICAgICAgIG1fdGVtcFN0
YWNrVG9wLS07CisgICAgICAgIHJldHVybiBVTlVTRUQ7CisgICAgfQorCiAgICAgaW50IGJ1aWxk
UmVsYXRpb25hbEkzMihpbnQsIGludCwgV0FTTU9wRXhwcmVzc2lvbkkzMikKICAgICB7CiAgICAg
ICAgIG1fdGVtcFN0YWNrVG9wLS07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>261542</attachid>
            <date>2015-09-18 16:25:40 -0700</date>
            <delta_ts>2015-09-18 16:26:39 -0700</delta_ts>
            <desc>Remove maxFrameExtentForSlowPathCall</desc>
            <filename>diff.txt</filename>
            <type>text/plain</type>
            <size>18156</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGY1YzIyYmIwNzJmZGIxMmFhOTkzMTdjNmM0N2Vk
NGUxYmM4YWNkZTguLmYyZTgxOGM0ZGZjMzhkYmI2NWZkNGQ0ZDcwZGQ2ZTEwYTllODdlYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA5LTE4ICBTdWtv
bHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCB0aGUgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgZm9yIGRvdWJsZXMgaW4gV2ViQXNzZW1ibHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk0NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaW1wbGVtZW50cyB0aGUgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgZm9yIGRvdWJsZXMgKGZs
b2F0NjQpCisgICAgICAgIGluIFdlYkFzc2VtYmx5LgorCisgICAgICAgICogdGVzdHMvc3RyZXNz
L3dhc20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy93YXNt
L2FyaXRobWV0aWMtZmxvYXQ2NC53YXNtOgorICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9uQ29t
cGlsZXIuaDoKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmJ1aWxkVW5hcnlG
NjQpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6YnVpbGRCaW5hcnlGNjQp
OgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Y2FsbE9wZXJhdGlvbik6Cisg
ICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpXQVNN
RnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbkY2NCk6CisgICAgICAgIChKU0M6OldBU01G
dW5jdGlvblBhcnNlcjo6cGFyc2VVbmFyeUV4cHJlc3Npb25GNjQpOgorICAgICAgICAoSlNDOjpX
QVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQmluYXJ5RXhwcmVzc2lvbkY2NCk6CisgICAgICAgICog
d2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaDoKKyAgICAgICAgKiB3YXNtL1dBU01GdW5jdGlvblN5
bnRheENoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlcjo6
YnVpbGRVbmFyeUY2NCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblN5bnRheENoZWNrZXI6
OmJ1aWxkQmluYXJ5RjMyKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tl
cjo6YnVpbGRCaW5hcnlGNjQpOgorCiAyMDE1LTA5LTE4ICBTdWtvbHNhayBTYWtzaHV3b25nICA8
c3Vrb2xzYWtAZ21haWwuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBsaW5lYXIgbWVtb3J5IGlu
c3RydWN0aW9ucyBpbiBXZWJBc3NlbWJseQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qcyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS1hcml0aG1ldGljLWZsb2F0NjQuanMKaW5kZXgg
OGViNWU5ZjA2MTY5NTgwMTk3NWMzZjBiYTExMzc1ZWVkNWQ5MjE0Mi4uYzA5YzJjOWMwNDhlYzJj
NDhhNTAxM2Y1OWNlN2Y3MjBmN2NhODg3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qcworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzCkBA
IC0xMSwxMiArMTEsMTU0IEBAIHdhc20vYXJpdGhtZXRpYy1mbG9hdDY0Lndhc20gaXMgZ2VuZXJh
dGVkIGJ5IHBhY2stYXNtanMgPGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBCiBmdW5jdGlvbiBhc21N
b2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewogICAgICJ1c2UgYXNtIjsKIAorICAgIHZhciBh
YnMgPSBnbG9iYWwuTWF0aC5hYnM7CisgICAgdmFyIGNlaWwgPSBnbG9iYWwuTWF0aC5jZWlsOwor
ICAgIHZhciBmbG9vciA9IGdsb2JhbC5NYXRoLmZsb29yOworICAgIHZhciBzcXJ0ID0gZ2xvYmFs
Lk1hdGguc3FydDsKKyAgICB2YXIgY29zID0gZ2xvYmFsLk1hdGguY29zOworICAgIHZhciBzaW4g
PSBnbG9iYWwuTWF0aC5zaW47CisgICAgdmFyIHRhbiA9IGdsb2JhbC5NYXRoLnRhbjsKKyAgICB2
YXIgYWNvcyA9IGdsb2JhbC5NYXRoLmFjb3M7CisgICAgdmFyIGFzaW4gPSBnbG9iYWwuTWF0aC5h
c2luOworICAgIHZhciBhdGFuID0gZ2xvYmFsLk1hdGguYXRhbjsKKyAgICB2YXIgYXRhbjIgPSBn
bG9iYWwuTWF0aC5hdGFuMjsKKyAgICB2YXIgZXhwID0gZ2xvYmFsLk1hdGguZXhwOworICAgIHZh
ciBsb2cgPSBnbG9iYWwuTWF0aC5sb2c7CisgICAgdmFyIHBvdyA9IGdsb2JhbC5NYXRoLnBvdzsK
KwogICAgIGZ1bmN0aW9uIG51bWJlcigpIHsKICAgICAgICAgcmV0dXJuIDQuMjsKICAgICB9CiAK
KyAgICBmdW5jdGlvbiBuZWdhdGUoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVy
biAteDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhZGQoeCwgeSkgeworICAgICAgICB4ID0gK3g7
CisgICAgICAgIHkgPSAreTsKKyAgICAgICAgcmV0dXJuIHggKyB5OworICAgIH0KKworICAgIGZ1
bmN0aW9uIHN1YnRyYWN0KHgsIHkpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7
CisgICAgICAgIHJldHVybiB4IC0geTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBtdWx0aXBseSh4
LCB5KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgeSA9ICt5OworICAgICAgICByZXR1cm4g
eCAqIHk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZGl2aWRlKHgsIHkpIHsKKyAgICAgICAgeCA9
ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAgIHJldHVybiB4IC8geTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBtb2R1bG8oeCwgeSkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHkgPSAr
eTsKKyAgICAgICAgcmV0dXJuIHggJSB5OworICAgIH0KKworICAgIGZ1bmN0aW9uIGFic29sdXRl
KHgpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gYWJzKHgpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGNlaWxOdW1iZXIoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJl
dHVybiBjZWlsKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZsb29yTnVtYmVyKHgpIHsKKyAg
ICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gZmxvb3IoeCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gc3F1YXJlUm9vdCh4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIHNx
cnQoeCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY29zaW5lKHgpIHsKKyAgICAgICAgeCA9ICt4
OworICAgICAgICByZXR1cm4gY29zKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNpbmUoeCkg
eworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBzaW4oeCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gdGFuZ2VudCh4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIHRh
bih4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcmNjb3NpbmUoeCkgeworICAgICAgICB4ID0g
K3g7CisgICAgICAgIHJldHVybiBhY29zKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFyY3Np
bmUoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBhc2luKHgpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGFyY3RhbmdlbnQoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAg
IHJldHVybiBhdGFuKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFyY3RhbmdlbnQyKHgsIHkp
IHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAgIHJldHVybiBhdGFu
Mih4LCB5KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBleHBvbmVudGlhbCh4KSB7CisgICAgICAg
IHggPSAreDsKKyAgICAgICAgcmV0dXJuIGV4cCh4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBs
b2dhcml0aG0oeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBsb2coeCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gcG93ZXIoeCwgeSkgeworICAgICAgICB4ID0gK3g7CisgICAg
ICAgIHkgPSAreTsKKyAgICAgICAgcmV0dXJuIHBvdyh4LCB5KTsKKyAgICB9CisKICAgICByZXR1
cm4gewogICAgICAgICBudW1iZXI6IG51bWJlciwKKyAgICAgICAgbmVnYXRlOiBuZWdhdGUsCisg
ICAgICAgIGFkZDogYWRkLAorICAgICAgICBzdWJ0cmFjdDogc3VidHJhY3QsCisgICAgICAgIG11
bHRpcGx5OiBtdWx0aXBseSwKKyAgICAgICAgZGl2aWRlOiBkaXZpZGUsCisgICAgICAgIG1vZHVs
bzogbW9kdWxvLAorICAgICAgICBhYnNvbHV0ZTogYWJzb2x1dGUsCisgICAgICAgIGNlaWxOdW1i
ZXI6IGNlaWxOdW1iZXIsCisgICAgICAgIGZsb29yTnVtYmVyOiBmbG9vck51bWJlciwKKyAgICAg
ICAgc3F1YXJlUm9vdDogc3F1YXJlUm9vdCwKKyAgICAgICAgY29zaW5lOiBjb3NpbmUsCisgICAg
ICAgIHNpbmU6IHNpbmUsCisgICAgICAgIHRhbmdlbnQ6IHRhbmdlbnQsCisgICAgICAgIGFyY2Nv
c2luZTogYXJjY29zaW5lLAorICAgICAgICBhcmNzaW5lOiBhcmNzaW5lLAorICAgICAgICBhcmN0
YW5nZW50OiBhcmN0YW5nZW50LAorICAgICAgICBhcmN0YW5nZW50MjogYXJjdGFuZ2VudDIsCisg
ICAgICAgIGV4cG9uZW50aWFsOiBleHBvbmVudGlhbCwKKyAgICAgICAgbG9nYXJpdGhtOiBsb2dh
cml0aG0sCisgICAgICAgIHBvd2VyOiBwb3dlciwKICAgICB9OwogfQogKi8KQEAgLTI0LDMgKzE2
NiwzMCBAQCBmdW5jdGlvbiBhc21Nb2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewogdmFyIG1v
ZHVsZSA9IGxvYWRXZWJBc3NlbWJseSgid2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbSIpOwog
CiBzaG91bGRCZShtb2R1bGUubnVtYmVyKCksIDQuMik7CitzaG91bGRCZShtb2R1bGUubmVnYXRl
KDAuMSksIC0wLjEpOworc2hvdWxkQmUobW9kdWxlLmFkZCgwLjEsIDAuNSksIDAuNik7CitzaG91
bGRCZShpc05hTihtb2R1bGUuYWRkKDAuMSwgTmFOKSksIHRydWUpOworc2hvdWxkQmUobW9kdWxl
LmFkZCgwLjEsIEluZmluaXR5KSwgSW5maW5pdHkpOworc2hvdWxkQmUoaXNOYU4obW9kdWxlLmFk
ZChJbmZpbml0eSwgLUluZmluaXR5KSksIHRydWUpOworc2hvdWxkQmUobW9kdWxlLnN1YnRyYWN0
KDAuMSwgMC41KSwgLTAuNCk7CitzaG91bGRCZShtb2R1bGUubXVsdGlwbHkoMC4xLCAwLjUpLCAw
LjA1KTsKK3Nob3VsZEJlKG1vZHVsZS5kaXZpZGUoMC4xLCAwLjUpLCAwLjIpOworc2hvdWxkQmUo
bW9kdWxlLmRpdmlkZSgwLjEsIDApLCBJbmZpbml0eSk7CitzaG91bGRCZShtb2R1bGUuZGl2aWRl
KDAuMSwgLTApLCAtSW5maW5pdHkpOworc2hvdWxkQmUobW9kdWxlLm1vZHVsbygwLjEsIDAuMDMp
LCAwLjAxMDAwMDAwMDAwMDAwMDAwOSk7CitzaG91bGRCZShpc05hTihtb2R1bGUubW9kdWxvKDAu
MSwgMCkpLCB0cnVlKTsKK3Nob3VsZEJlKG1vZHVsZS5hYnNvbHV0ZSgtNC4yKSwgNC4yKTsKK3No
b3VsZEJlKG1vZHVsZS5hYnNvbHV0ZSg0LjIpLCA0LjIpOworc2hvdWxkQmUobW9kdWxlLmNlaWxO
dW1iZXIoNC4yKSwgNSk7CitzaG91bGRCZShtb2R1bGUuZmxvb3JOdW1iZXIoNC4yKSwgNCk7Citz
aG91bGRCZShtb2R1bGUuc3F1YXJlUm9vdCgwLjA5KSwgMC4zKTsKK3Nob3VsZEJlKG1vZHVsZS5j
b3NpbmUoTWF0aC5QSSksIC0xKTsKK3Nob3VsZEJlKG1vZHVsZS5zaW5lKE1hdGguUEkgLyAyKSwg
MSk7CitzaG91bGRCZShtb2R1bGUudGFuZ2VudChNYXRoLlBJIC8gNCksIDAuOTk5OTk5OTk5OTk5
OTk5OSk7CitzaG91bGRCZShtb2R1bGUuYXJjY29zaW5lKC0xKSwgTWF0aC5QSSk7CitzaG91bGRC
ZShtb2R1bGUuYXJjc2luZSgxKSwgTWF0aC5QSSAvIDIpOworc2hvdWxkQmUobW9kdWxlLmFyY3Rh
bmdlbnQoMSksIE1hdGguUEkgLyA0KTsKK3Nob3VsZEJlKG1vZHVsZS5hcmN0YW5nZW50MigxLCAw
KSwgTWF0aC5QSSAvIDIpOworc2hvdWxkQmUobW9kdWxlLmV4cG9uZW50aWFsKDEpLCBNYXRoLkUp
Oworc2hvdWxkQmUobW9kdWxlLmxvZ2FyaXRobShNYXRoLkUpLCAxKTsKK3Nob3VsZEJlKG1vZHVs
ZS5wb3dlcig0LCAxLjUpLCA4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbQppbmRleCA0
OWUyMDgxZTAzMTkyZjVhYzVkNTY4ZTg3NGFiNjNlYzczODEyNzExLi43YjVmZjI5OTBmMzU0MDVi
OWZjNmYyZjgxZWI1MGNiMWVkYWNhNGNkIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
Mzc2CnpjbVlNdlN4JjwrNUMtNn0zdVVMSlo5cmwjPnBMZ2wxVXpzOUNvI2QyP0ZuOGV5bTZIREs1
IT1SeENRPSlQeWM4Iwp6bU5GQ0dlRHtJVTxHPmxHPFN8amVWckdCZ2pCKXMyMU5RWXY4USFOcD5K
c0Jfb302VGg/MCl0amRxfCVnNXkhKnsKemFZfiNLPWZzcV9BVEVpa2UwTlJ0aFBkdEt0Z3o5UChn
OWY2aCMtTjl4KDRvSjhKd3NCXmkwJTJ3ZllAYVlXMXBXCnozOUFPe3MxZj8yXnImTXhTKnhWZDR+
dThrcEVST2Q0amNYQDNNVV5DMThpMzRtNmZvUy00NFB3KGd4VE91M0J6KApsUV9hZ2tEIT0+VGY0
X3IwYFBRT01YRyYtb1g+NWQzO25+MnIjYWE0PSRxeU0jWVlQQVgKCmxpdGVyYWwgNDcKcGNtWFI8
RVlBSkghfmc8fTVETHM+VX0jfEVYRlBpYjFPeXh5OFNfZVdsVHdRcTd5I2ZfM2dgZDsKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaAppbmRl
eCA0NzM1ZjYwNjcyOGM4NWZjNWM3NGExOTBmNjM2MThhNGQxMWE2ZGU1Li5jY2E1YWVmYWQ0YTQy
MGE0OWNlNWQzOWYyZWFmNTJhZTJiZTUwNjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmgKQEAgLTY0OSw2ICs2NDksNzMgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gVU5VU0VEOwogICAgIH0KIAorICAgIGludCBidWlsZFVuYXJ5
RjY0KGludCwgV0FTTU9wRXhwcmVzc2lvbkY2NCBvcCkKKyAgICB7CisgICAgICAgIGxvYWREb3Vi
bGUodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDEpLCBGUFJJbmZvOjpmcFJlZ1Qx
KTsKKyAgICAgICAgc3dpdGNoIChvcCkgeworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
NjQ6Ok5lZ2F0ZToKKyAgICAgICAgICAgIG5lZ2F0ZURvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBG
UFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OkFiczoKKyAgICAgICAgICAgIGFic0RvdWJsZShGUFJJbmZvOjpmcFJl
Z1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OlNxcnQ6CisgICAgICAgICAgICBzcXJ0RG91YmxlKEZQUklu
Zm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpGbG9vcjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpD
b3M6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2luOgorICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OlRhbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpBQ29zOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFTaW46CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjoKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpFeHA6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG46
CisgICAgICAgICAgICBEX0pJVE9wZXJhdGlvbl9EIG9wZXJhdGlvbjsKKyAgICAgICAgICAgIHN3
aXRjaCAob3ApIHsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoK
KyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBjZWlsOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGbG9vcjoKKyAgICAgICAg
ICAgICAgICBvcGVyYXRpb24gPSBmbG9vcjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29zOgorICAgICAgICAgICAgICAgIG9w
ZXJhdGlvbiA9IGNvczsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6U2luOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IHNp
bjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6VGFuOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IHRhbjsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QUNv
czoKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBhY29zOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBU2luOgorICAgICAg
ICAgICAgICAgIG9wZXJhdGlvbiA9IGFzaW47CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW46CisgICAgICAgICAgICAgICAg
b3BlcmF0aW9uID0gYXRhbjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RXhwOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9
IGV4cDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkY2NDo6TG46CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gbG9nOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVn
VDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICAgICBzdG9yZURvdWJsZShGUFJJ
bmZvOjpmcFJlZ1QwLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSkpOworICAg
ICAgICByZXR1cm4gVU5VU0VEOworICAgIH0KKwogICAgIGludCBidWlsZEJpbmFyeUkzMihpbnQs
IGludCwgV0FTTU9wRXhwcmVzc2lvbkkzMiBvcCkKICAgICB7CiAgICAgICAgIGxvYWQzMih0ZW1w
b3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMiksIEdQUkluZm86OnJlZ1QwKTsKQEAgLTc2
MSw2ICs4MjgsNTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gVU5VU0VEOwogICAgIH0KIAor
ICAgIGludCBidWlsZEJpbmFyeUY2NChpbnQsIGludCwgV0FTTU9wRXhwcmVzc2lvbkY2NCBvcCkK
KyAgICB7CisgICAgICAgIGxvYWREb3VibGUodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1Rv
cCAtIDIpLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgbG9hZERvdWJsZSh0ZW1wb3JhcnlB
ZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSksIEZQUkluZm86OmZwUmVnVDEpOworICAgICAgICBz
d2l0Y2ggKG9wKSB7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QWRkOgorICAg
ICAgICAgICAgYWRkRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3Vi
OgorICAgICAgICAgICAgc3ViRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVn
VDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6TXVsOgorICAgICAgICAgICAgbXVsRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86
OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6RGl2OgorICAgICAgICAgICAgZGl2RG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQ
UkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6TW9kOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFU
YW4yOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlBvdzoKKyAgICAgICAgICAg
IERfSklUT3BlcmF0aW9uX0REIG9wZXJhdGlvbjsKKyAgICAgICAgICAgIHN3aXRjaCAob3ApIHsK
KyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TW9kOgorICAgICAgICAgICAg
ICAgIG9wZXJhdGlvbiA9IGZtb2Q7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW4yOgorICAgICAgICAgICAgICAgIG9wZXJh
dGlvbiA9IGF0YW4yOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBX
QVNNT3BFeHByZXNzaW9uRjY0OjpQb3c6CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gcG93
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIEZQUkluZm86OmZwUmVnVDAsIEZQUklu
Zm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
fQorICAgICAgICBtX3RlbXBTdGFja1RvcC0tOworICAgICAgICBzdG9yZURvdWJsZShGUFJJbmZv
OjpmcFJlZ1QwLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSkpOworICAgICAg
ICByZXR1cm4gVU5VU0VEOworICAgIH0KKwogICAgIGludCBidWlsZFJlbGF0aW9uYWxJMzIoaW50
LCBpbnQsIFdBU01PcEV4cHJlc3Npb25JMzIgb3ApCiAgICAgewogICAgICAgICBsb2FkMzIodGVt
cG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDIpLCBHUFJJbmZvOjpyZWdUMCk7CkBAIC0x
MTI5LDYgKzEyNDAsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgYXBwZW5kQ2FsbFNldFJlc3VsdChv
cGVyYXRpb24sIGRzdCwgRmxvYXRpbmdQb2ludFByZWNpc2lvbjo6U2luZ2xlKTsKICAgICB9CiAK
KyAgICB2b2lkIGNhbGxPcGVyYXRpb24oRF9KSVRPcGVyYXRpb25fRCBvcGVyYXRpb24sIEZQUmVn
aXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBzZXR1cEFyZ3Vt
ZW50cyhzcmMpOworICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgZHN0LCBG
bG9hdGluZ1BvaW50UHJlY2lzaW9uOjpEb3VibGUpOworICAgIH0KKwogICAgIHZvaWQgY2FsbE9w
ZXJhdGlvbihpbnQzMl90IEpJVF9PUEVSQVRJT04gKCpvcGVyYXRpb24pKGludDMyX3QsIGludDMy
X3QpLCBHUFJSZWcgc3JjMSwgR1BSUmVnIHNyYzIsIEdQUlJlZyBkc3QpCiAgICAgewogICAgICAg
ICBzZXR1cEFyZ3VtZW50cyhzcmMxLCBzcmMyKTsKQEAgLTExNDEsNiArMTI1OCwxMiBAQCBwcml2
YXRlOgogICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKICAgICB9
CiAKKyAgICB2b2lkIGNhbGxPcGVyYXRpb24oRF9KSVRPcGVyYXRpb25fREQgb3BlcmF0aW9uLCBG
UFJlZ2lzdGVySUQgc3JjMSwgRlBSZWdpc3RlcklEIHNyYzIsIEZQUmVnaXN0ZXJJRCBkc3QpCisg
ICAgeworICAgICAgICBzZXR1cEFyZ3VtZW50cyhzcmMxLCBzcmMyKTsKKyAgICAgICAgYXBwZW5k
Q2FsbFNldFJlc3VsdChvcGVyYXRpb24sIGRzdCwgRmxvYXRpbmdQb2ludFByZWNpc2lvbjo6RG91
YmxlKTsKKyAgICB9CisKICAgICB2b2lkIGNhbGxPcGVyYXRpb24oZG91YmxlIEpJVF9PUEVSQVRJ
T04gKCpvcGVyYXRpb24pKHVpbnQzMl90KSwgR1BSUmVnIHNyYywgRlBSZWdpc3RlcklEIGRzdCkK
ICAgICB7CiAgICAgICAgIHNldHVwQXJndW1lbnRzKHNyYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcAppbmRleCA1M2VhYjE1ZDFmYjRl
MjljNzJlNzQ3ZTZmZDQ1ODRjYzM5YTYyN2QzLi44NGQ4OGNjOGUyYWI3MzE2ZjM0YmQ4MTNjYjRl
YjVmNDJkZmFlYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNN
RnVuY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01G
dW5jdGlvblBhcnNlci5jcHAKQEAgLTkyOCwyMCArOTI4LDcgQEAgQ29udGV4dEV4cHJlc3Npb24g
V0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCkK
ICAgICAgICAgICAgIHJldHVybiBwYXJzZUNvbnZlcnRUeXBlKGNvbnRleHQsIFdBU01FeHByZXNz
aW9uVHlwZTo6STMyLCBXQVNNRXhwcmVzc2lvblR5cGU6OkY2NCwgV0FTTVR5cGVDb252ZXJzaW9u
OjpDb252ZXJ0VW5zaWduZWQpOwogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkZy
b21GMzI6CiAgICAgICAgICAgICByZXR1cm4gcGFyc2VDb252ZXJ0VHlwZShjb250ZXh0LCBXQVNN
RXhwcmVzc2lvblR5cGU6OkYzMiwgV0FTTUV4cHJlc3Npb25UeXBlOjpGNjQsIFdBU01UeXBlQ29u
dmVyc2lvbjo6UHJvbW90ZSk7Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2V0
TG9jYWw6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2V0R2xvYmFsOgotICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN0b3JlOgotICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OlN0b3JlV2l0aE9mZnNldDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpDb25kaXRpb25hbDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0
OjpDb21tYToKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpOZWdhdGU6Ci0gICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QWRkOgotICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OlN1YjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNdWw6
Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RGl2OgotICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6Ok1vZDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0
OjpNaW46Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TWF4OgogICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFiczoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0OjpDZWlsOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkZsb29yOgpA
QCAtOTUyLDEwICs5MzksMjUgQEAgQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2Vy
OjpwYXJzZUV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpBQ29zOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6
OkFTaW46CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjoKLSAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBVGFuMjoKICAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpFeHA6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG46Cisg
ICAgICAgICAgICByZXR1cm4gcGFyc2VVbmFyeUV4cHJlc3Npb25GNjQoY29udGV4dCwgb3ApOwor
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFkZDoKKyAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpTdWI6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6
TXVsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkRpdjoKKyAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNb2Q6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkY2NDo6QVRhbjI6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6UG93OgorICAg
ICAgICAgICAgcmV0dXJuIHBhcnNlQmluYXJ5RXhwcmVzc2lvbkY2NChjb250ZXh0LCBvcCk7Cisg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2V0TG9jYWw6CisgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6U2V0R2xvYmFsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GNjQ6OlN0b3JlOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN0b3Jl
V2l0aE9mZnNldDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDb25kaXRpb25h
bDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDb21tYToKKyAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNaW46CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkY2NDo6TWF4OgogICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGVzZSBpbnN0cnVj
dGlvbnMuCiAgICAgICAgICAgICBGQUlMX1dJVEhfTUVTU0FHRSgiVW5zdXBwb3J0ZWQgaW5zdHJ1
Y3Rpb24uIik7CiAgICAgICAgIGRlZmF1bHQ6CkBAIC0xMDI0LDYgKzEwMjYsMjQgQEAgQ29udGV4
dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUdldEdsb2JhbEV4cHJlc3Npb25G
NjQoQ29udGV4dCYgY29udGUKIH0KIAogdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+CitDb250ZXh0
RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlVW5hcnlFeHByZXNzaW9uRjY0KENv
bnRleHQmIGNvbnRleHQsIFdBU01PcEV4cHJlc3Npb25GNjQgb3ApCit7CisgICAgQ29udGV4dEV4
cHJlc3Npb24gZXhwcmVzc2lvbiA9IHBhcnNlRXhwcmVzc2lvbkY2NChjb250ZXh0KTsKKyAgICBQ
Uk9QQUdBVEVfRVJST1IoKTsKKyAgICByZXR1cm4gY29udGV4dC5idWlsZFVuYXJ5RjY0KGV4cHJl
c3Npb24sIG9wKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+CitDb250ZXh0RXhwcmVz
c2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQmluYXJ5RXhwcmVzc2lvbkY2NChDb250ZXh0
JiBjb250ZXh0LCBXQVNNT3BFeHByZXNzaW9uRjY0IG9wKQoreworICAgIENvbnRleHRFeHByZXNz
aW9uIGxlZnQgPSBwYXJzZUV4cHJlc3Npb25GNjQoY29udGV4dCk7CisgICAgUFJPUEFHQVRFX0VS
Uk9SKCk7CisgICAgQ29udGV4dEV4cHJlc3Npb24gcmlnaHQgPSBwYXJzZUV4cHJlc3Npb25GNjQo
Y29udGV4dCk7CisgICAgUFJPUEFHQVRFX0VSUk9SKCk7CisgICAgcmV0dXJuIGNvbnRleHQuYnVp
bGRCaW5hcnlGNjQobGVmdCwgcmlnaHQsIG9wKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIENvbnRl
eHQ+CiBDb250ZXh0TWVtb3J5QWRkcmVzcyBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlTWVtb3J5
QWRkcmVzcyhDb250ZXh0JiBjb250ZXh0LCBNZW1vcnlBY2Nlc3NPZmZzZXRNb2RlIG9mZnNldE1v
ZGUpCiB7CiAgICAgdWludDMyX3Qgb2Zmc2V0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmgKaW5kZXggMTYzMTExOGZmYjQ5MGZjNmM1YTFm
M2YwNTYzMjQ2MjdmZWIyODIwMi4uODFmMGI3OGY1MjczYzFjYzhkYWJjMWY5NDY5ZDgxY2JlYmVm
ZmJiOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9u
UGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFy
c2VyLmgKQEAgLTExMyw2ICsxMTMsOCBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxjbGFzcyBD
b250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChDb250
ZXh0JiwgdWludDMyX3QgbG9jYWxJbmRleCk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+
IENvbnRleHRFeHByZXNzaW9uIHBhcnNlR2V0TG9jYWxFeHByZXNzaW9uRjY0KENvbnRleHQmKTsK
ICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VHZXRH
bG9iYWxFeHByZXNzaW9uRjY0KENvbnRleHQmKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4
dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VVbmFyeUV4cHJlc3Npb25GNjQoQ29udGV4dCYsIFdB
U01PcEV4cHJlc3Npb25GNjQpOworICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0
RXhwcmVzc2lvbiBwYXJzZUJpbmFyeUV4cHJlc3Npb25GNjQoQ29udGV4dCYsIFdBU01PcEV4cHJl
c3Npb25GNjQpOwogCiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRNZW1vcnlB
ZGRyZXNzIHBhcnNlTWVtb3J5QWRkcmVzcyhDb250ZXh0JiwgTWVtb3J5QWNjZXNzT2Zmc2V0TW9k
ZSk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNl
TG9hZChDb250ZXh0JiwgV0FTTUV4cHJlc3Npb25UeXBlLCBXQVNNTWVtb3J5VHlwZSwgTWVtb3J5
QWNjZXNzT2Zmc2V0TW9kZSwgTWVtb3J5QWNjZXNzQ29udmVyc2lvbiA9IE1lbW9yeUFjY2Vzc0Nv
bnZlcnNpb246Ok5vQ29udmVyc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyLmgKaW5kZXggNDZhY2E1ZDY2YmQ2MjVm
Mzc4ZDVkNjA1ZGVlMjdjMTgzM2E0YjI1ZC4uYjdiYjE5MjM1NjZhOGQyYzE3YmFjZDc5Mjc1MDhk
MmVkYjFlMmU2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1
bmN0aW9uU3ludGF4Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01GdW5jdGlvblN5bnRheENoZWNrZXIuaApAQCAtMTMxLDYgKzEzMSwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAgfQogCisgICAgaW50IGJ1aWxkVW5hcnlGNjQoaW50
LCBXQVNNT3BFeHByZXNzaW9uRjY0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIFVOVVNFRDsKKyAg
ICB9CisKICAgICBpbnQgYnVpbGRCaW5hcnlJMzIoaW50LCBpbnQsIFdBU01PcEV4cHJlc3Npb25J
MzIpCiAgICAgewogICAgICAgICBtX3RlbXBTdGFja1RvcC0tOwpAQCAtMTQzLDYgKzE0OCwxMiBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAgfQogCisgICAgaW50IGJ1aWxk
QmluYXJ5RjY0KGludCwgaW50LCBXQVNNT3BFeHByZXNzaW9uRjY0KQorICAgIHsKKyAgICAgICAg
bV90ZW1wU3RhY2tUb3AtLTsKKyAgICAgICAgcmV0dXJuIFVOVVNFRDsKKyAgICB9CisKICAgICBp
bnQgYnVpbGRSZWxhdGlvbmFsSTMyKGludCwgaW50LCBXQVNNT3BFeHByZXNzaW9uSTMyKQogICAg
IHsKICAgICAgICAgbV90ZW1wU3RhY2tUb3AtLTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261543</attachid>
            <date>2015-09-18 16:26:39 -0700</date>
            <delta_ts>2015-09-18 17:31:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>diff.txt</filename>
            <type>text/plain</type>
            <size>18156</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGY1YzIyYmIwNzJmZGIxMmFhOTkzMTdjNmM0N2Vk
NGUxYmM4YWNkZTguLmYyZTgxOGM0ZGZjMzhkYmI2NWZkNGQ0ZDcwZGQ2ZTEwYTllODdlYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA5LTE4ICBTdWtv
bHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCB0aGUgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgZm9yIGRvdWJsZXMgaW4gV2ViQXNzZW1ibHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODk0NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaW1wbGVtZW50cyB0aGUgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgZm9yIGRvdWJsZXMgKGZs
b2F0NjQpCisgICAgICAgIGluIFdlYkFzc2VtYmx5LgorCisgICAgICAgICogdGVzdHMvc3RyZXNz
L3dhc20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy93YXNt
L2FyaXRobWV0aWMtZmxvYXQ2NC53YXNtOgorICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9uQ29t
cGlsZXIuaDoKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmJ1aWxkVW5hcnlG
NjQpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6YnVpbGRCaW5hcnlGNjQp
OgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6Y2FsbE9wZXJhdGlvbik6Cisg
ICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpXQVNN
RnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbkY2NCk6CisgICAgICAgIChKU0M6OldBU01G
dW5jdGlvblBhcnNlcjo6cGFyc2VVbmFyeUV4cHJlc3Npb25GNjQpOgorICAgICAgICAoSlNDOjpX
QVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQmluYXJ5RXhwcmVzc2lvbkY2NCk6CisgICAgICAgICog
d2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaDoKKyAgICAgICAgKiB3YXNtL1dBU01GdW5jdGlvblN5
bnRheENoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlcjo6
YnVpbGRVbmFyeUY2NCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblN5bnRheENoZWNrZXI6
OmJ1aWxkQmluYXJ5RjMyKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tl
cjo6YnVpbGRCaW5hcnlGNjQpOgorCiAyMDE1LTA5LTE4ICBTdWtvbHNhayBTYWtzaHV3b25nICA8
c3Vrb2xzYWtAZ21haWwuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBsaW5lYXIgbWVtb3J5IGlu
c3RydWN0aW9ucyBpbiBXZWJBc3NlbWJseQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qcyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS1hcml0aG1ldGljLWZsb2F0NjQuanMKaW5kZXgg
OGViNWU5ZjA2MTY5NTgwMTk3NWMzZjBiYTExMzc1ZWVkNWQ5MjE0Mi4uYzA5YzJjOWMwNDhlYzJj
NDhhNTAxM2Y1OWNlN2Y3MjBmN2NhODg3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qcworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzCkBA
IC0xMSwxMiArMTEsMTU0IEBAIHdhc20vYXJpdGhtZXRpYy1mbG9hdDY0Lndhc20gaXMgZ2VuZXJh
dGVkIGJ5IHBhY2stYXNtanMgPGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBCiBmdW5jdGlvbiBhc21N
b2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewogICAgICJ1c2UgYXNtIjsKIAorICAgIHZhciBh
YnMgPSBnbG9iYWwuTWF0aC5hYnM7CisgICAgdmFyIGNlaWwgPSBnbG9iYWwuTWF0aC5jZWlsOwor
ICAgIHZhciBmbG9vciA9IGdsb2JhbC5NYXRoLmZsb29yOworICAgIHZhciBzcXJ0ID0gZ2xvYmFs
Lk1hdGguc3FydDsKKyAgICB2YXIgY29zID0gZ2xvYmFsLk1hdGguY29zOworICAgIHZhciBzaW4g
PSBnbG9iYWwuTWF0aC5zaW47CisgICAgdmFyIHRhbiA9IGdsb2JhbC5NYXRoLnRhbjsKKyAgICB2
YXIgYWNvcyA9IGdsb2JhbC5NYXRoLmFjb3M7CisgICAgdmFyIGFzaW4gPSBnbG9iYWwuTWF0aC5h
c2luOworICAgIHZhciBhdGFuID0gZ2xvYmFsLk1hdGguYXRhbjsKKyAgICB2YXIgYXRhbjIgPSBn
bG9iYWwuTWF0aC5hdGFuMjsKKyAgICB2YXIgZXhwID0gZ2xvYmFsLk1hdGguZXhwOworICAgIHZh
ciBsb2cgPSBnbG9iYWwuTWF0aC5sb2c7CisgICAgdmFyIHBvdyA9IGdsb2JhbC5NYXRoLnBvdzsK
KwogICAgIGZ1bmN0aW9uIG51bWJlcigpIHsKICAgICAgICAgcmV0dXJuIDQuMjsKICAgICB9CiAK
KyAgICBmdW5jdGlvbiBuZWdhdGUoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVy
biAteDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhZGQoeCwgeSkgeworICAgICAgICB4ID0gK3g7
CisgICAgICAgIHkgPSAreTsKKyAgICAgICAgcmV0dXJuIHggKyB5OworICAgIH0KKworICAgIGZ1
bmN0aW9uIHN1YnRyYWN0KHgsIHkpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7
CisgICAgICAgIHJldHVybiB4IC0geTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBtdWx0aXBseSh4
LCB5KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgeSA9ICt5OworICAgICAgICByZXR1cm4g
eCAqIHk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZGl2aWRlKHgsIHkpIHsKKyAgICAgICAgeCA9
ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAgIHJldHVybiB4IC8geTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBtb2R1bG8oeCwgeSkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHkgPSAr
eTsKKyAgICAgICAgcmV0dXJuIHggJSB5OworICAgIH0KKworICAgIGZ1bmN0aW9uIGFic29sdXRl
KHgpIHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gYWJzKHgpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGNlaWxOdW1iZXIoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJl
dHVybiBjZWlsKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGZsb29yTnVtYmVyKHgpIHsKKyAg
ICAgICAgeCA9ICt4OworICAgICAgICByZXR1cm4gZmxvb3IoeCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gc3F1YXJlUm9vdCh4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIHNx
cnQoeCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY29zaW5lKHgpIHsKKyAgICAgICAgeCA9ICt4
OworICAgICAgICByZXR1cm4gY29zKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNpbmUoeCkg
eworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBzaW4oeCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gdGFuZ2VudCh4KSB7CisgICAgICAgIHggPSAreDsKKyAgICAgICAgcmV0dXJuIHRh
bih4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcmNjb3NpbmUoeCkgeworICAgICAgICB4ID0g
K3g7CisgICAgICAgIHJldHVybiBhY29zKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFyY3Np
bmUoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBhc2luKHgpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGFyY3RhbmdlbnQoeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAg
IHJldHVybiBhdGFuKHgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFyY3RhbmdlbnQyKHgsIHkp
IHsKKyAgICAgICAgeCA9ICt4OworICAgICAgICB5ID0gK3k7CisgICAgICAgIHJldHVybiBhdGFu
Mih4LCB5KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBleHBvbmVudGlhbCh4KSB7CisgICAgICAg
IHggPSAreDsKKyAgICAgICAgcmV0dXJuIGV4cCh4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBs
b2dhcml0aG0oeCkgeworICAgICAgICB4ID0gK3g7CisgICAgICAgIHJldHVybiBsb2coeCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gcG93ZXIoeCwgeSkgeworICAgICAgICB4ID0gK3g7CisgICAg
ICAgIHkgPSAreTsKKyAgICAgICAgcmV0dXJuIHBvdyh4LCB5KTsKKyAgICB9CisKICAgICByZXR1
cm4gewogICAgICAgICBudW1iZXI6IG51bWJlciwKKyAgICAgICAgbmVnYXRlOiBuZWdhdGUsCisg
ICAgICAgIGFkZDogYWRkLAorICAgICAgICBzdWJ0cmFjdDogc3VidHJhY3QsCisgICAgICAgIG11
bHRpcGx5OiBtdWx0aXBseSwKKyAgICAgICAgZGl2aWRlOiBkaXZpZGUsCisgICAgICAgIG1vZHVs
bzogbW9kdWxvLAorICAgICAgICBhYnNvbHV0ZTogYWJzb2x1dGUsCisgICAgICAgIGNlaWxOdW1i
ZXI6IGNlaWxOdW1iZXIsCisgICAgICAgIGZsb29yTnVtYmVyOiBmbG9vck51bWJlciwKKyAgICAg
ICAgc3F1YXJlUm9vdDogc3F1YXJlUm9vdCwKKyAgICAgICAgY29zaW5lOiBjb3NpbmUsCisgICAg
ICAgIHNpbmU6IHNpbmUsCisgICAgICAgIHRhbmdlbnQ6IHRhbmdlbnQsCisgICAgICAgIGFyY2Nv
c2luZTogYXJjY29zaW5lLAorICAgICAgICBhcmNzaW5lOiBhcmNzaW5lLAorICAgICAgICBhcmN0
YW5nZW50OiBhcmN0YW5nZW50LAorICAgICAgICBhcmN0YW5nZW50MjogYXJjdGFuZ2VudDIsCisg
ICAgICAgIGV4cG9uZW50aWFsOiBleHBvbmVudGlhbCwKKyAgICAgICAgbG9nYXJpdGhtOiBsb2dh
cml0aG0sCisgICAgICAgIHBvd2VyOiBwb3dlciwKICAgICB9OwogfQogKi8KQEAgLTI0LDMgKzE2
NiwzMCBAQCBmdW5jdGlvbiBhc21Nb2R1bGUoZ2xvYmFsLCBlbnYsIGJ1ZmZlcikgewogdmFyIG1v
ZHVsZSA9IGxvYWRXZWJBc3NlbWJseSgid2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbSIpOwog
CiBzaG91bGRCZShtb2R1bGUubnVtYmVyKCksIDQuMik7CitzaG91bGRCZShtb2R1bGUubmVnYXRl
KDAuMSksIC0wLjEpOworc2hvdWxkQmUobW9kdWxlLmFkZCgwLjEsIDAuNSksIDAuNik7CitzaG91
bGRCZShpc05hTihtb2R1bGUuYWRkKDAuMSwgTmFOKSksIHRydWUpOworc2hvdWxkQmUobW9kdWxl
LmFkZCgwLjEsIEluZmluaXR5KSwgSW5maW5pdHkpOworc2hvdWxkQmUoaXNOYU4obW9kdWxlLmFk
ZChJbmZpbml0eSwgLUluZmluaXR5KSksIHRydWUpOworc2hvdWxkQmUobW9kdWxlLnN1YnRyYWN0
KDAuMSwgMC41KSwgLTAuNCk7CitzaG91bGRCZShtb2R1bGUubXVsdGlwbHkoMC4xLCAwLjUpLCAw
LjA1KTsKK3Nob3VsZEJlKG1vZHVsZS5kaXZpZGUoMC4xLCAwLjUpLCAwLjIpOworc2hvdWxkQmUo
bW9kdWxlLmRpdmlkZSgwLjEsIDApLCBJbmZpbml0eSk7CitzaG91bGRCZShtb2R1bGUuZGl2aWRl
KDAuMSwgLTApLCAtSW5maW5pdHkpOworc2hvdWxkQmUobW9kdWxlLm1vZHVsbygwLjEsIDAuMDMp
LCAwLjAxMDAwMDAwMDAwMDAwMDAwOSk7CitzaG91bGRCZShpc05hTihtb2R1bGUubW9kdWxvKDAu
MSwgMCkpLCB0cnVlKTsKK3Nob3VsZEJlKG1vZHVsZS5hYnNvbHV0ZSgtNC4yKSwgNC4yKTsKK3No
b3VsZEJlKG1vZHVsZS5hYnNvbHV0ZSg0LjIpLCA0LjIpOworc2hvdWxkQmUobW9kdWxlLmNlaWxO
dW1iZXIoNC4yKSwgNSk7CitzaG91bGRCZShtb2R1bGUuZmxvb3JOdW1iZXIoNC4yKSwgNCk7Citz
aG91bGRCZShtb2R1bGUuc3F1YXJlUm9vdCgwLjA5KSwgMC4zKTsKK3Nob3VsZEJlKG1vZHVsZS5j
b3NpbmUoTWF0aC5QSSksIC0xKTsKK3Nob3VsZEJlKG1vZHVsZS5zaW5lKE1hdGguUEkgLyAyKSwg
MSk7CitzaG91bGRCZShtb2R1bGUudGFuZ2VudChNYXRoLlBJIC8gNCksIDAuOTk5OTk5OTk5OTk5
OTk5OSk7CitzaG91bGRCZShtb2R1bGUuYXJjY29zaW5lKC0xKSwgTWF0aC5QSSk7CitzaG91bGRC
ZShtb2R1bGUuYXJjc2luZSgxKSwgTWF0aC5QSSAvIDIpOworc2hvdWxkQmUobW9kdWxlLmFyY3Rh
bmdlbnQoMSksIE1hdGguUEkgLyA0KTsKK3Nob3VsZEJlKG1vZHVsZS5hcmN0YW5nZW50MigxLCAw
KSwgTWF0aC5QSSAvIDIpOworc2hvdWxkQmUobW9kdWxlLmV4cG9uZW50aWFsKDEpLCBNYXRoLkUp
Oworc2hvdWxkQmUobW9kdWxlLmxvZ2FyaXRobShNYXRoLkUpLCAxKTsKK3Nob3VsZEJlKG1vZHVs
ZS5wb3dlcig0LCAxLjUpLCA4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbQppbmRleCA0
OWUyMDgxZTAzMTkyZjVhYzVkNTY4ZTg3NGFiNjNlYzczODEyNzExLi43YjVmZjI5OTBmMzU0MDVi
OWZjNmYyZjgxZWI1MGNiMWVkYWNhNGNkIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
Mzc2CnpjbVlNdlN4JjwrNUMtNn0zdVVMSlo5cmwjPnBMZ2wxVXpzOUNvI2QyP0ZuOGV5bTZIREs1
IT1SeENRPSlQeWM4Iwp6bU5GQ0dlRHtJVTxHPmxHPFN8amVWckdCZ2pCKXMyMU5RWXY4USFOcD5K
c0Jfb302VGg/MCl0amRxfCVnNXkhKnsKemFZfiNLPWZzcV9BVEVpa2UwTlJ0aFBkdEt0Z3o5UChn
OWY2aCMtTjl4KDRvSjhKd3NCXmkwJTJ3ZllAYVlXMXBXCnozOUFPe3MxZj8yXnImTXhTKnhWZDR+
dThrcEVST2Q0amNYQDNNVV5DMThpMzRtNmZvUy00NFB3KGd4VE91M0J6KApsUV9hZ2tEIT0+VGY0
X3IwYFBRT01YRyYtb1g+NWQzO25+MnIjYWE0PSRxeU0jWVlQQVgKCmxpdGVyYWwgNDcKcGNtWFI8
RVlBSkghfmc8fTVETHM+VX0jfEVYRlBpYjFPeXh5OFNfZVdsVHdRcTd5I2ZfM2dgZDsKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaAppbmRl
eCA0NzM1ZjYwNjcyOGM4NWZjNWM3NGExOTBmNjM2MThhNGQxMWE2ZGU1Li5jY2E1YWVmYWQ0YTQy
MGE0OWNlNWQzOWYyZWFmNTJhZTJiZTUwNjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmgKQEAgLTY0OSw2ICs2NDksNzMgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gVU5VU0VEOwogICAgIH0KIAorICAgIGludCBidWlsZFVuYXJ5
RjY0KGludCwgV0FTTU9wRXhwcmVzc2lvbkY2NCBvcCkKKyAgICB7CisgICAgICAgIGxvYWREb3Vi
bGUodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDEpLCBGUFJJbmZvOjpmcFJlZ1Qx
KTsKKyAgICAgICAgc3dpdGNoIChvcCkgeworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
NjQ6Ok5lZ2F0ZToKKyAgICAgICAgICAgIG5lZ2F0ZURvdWJsZShGUFJJbmZvOjpmcFJlZ1QxLCBG
UFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OkFiczoKKyAgICAgICAgICAgIGFic0RvdWJsZShGUFJJbmZvOjpmcFJl
Z1QxLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OlNxcnQ6CisgICAgICAgICAgICBzcXJ0RG91YmxlKEZQUklu
Zm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpGbG9vcjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpD
b3M6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2luOgorICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OlRhbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpBQ29zOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFTaW46CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjoKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpFeHA6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG46
CisgICAgICAgICAgICBEX0pJVE9wZXJhdGlvbl9EIG9wZXJhdGlvbjsKKyAgICAgICAgICAgIHN3
aXRjaCAob3ApIHsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoK
KyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBjZWlsOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGbG9vcjoKKyAgICAgICAg
ICAgICAgICBvcGVyYXRpb24gPSBmbG9vcjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29zOgorICAgICAgICAgICAgICAgIG9w
ZXJhdGlvbiA9IGNvczsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6U2luOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IHNp
bjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6VGFuOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IHRhbjsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QUNv
czoKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBhY29zOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBU2luOgorICAgICAg
ICAgICAgICAgIG9wZXJhdGlvbiA9IGFzaW47CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW46CisgICAgICAgICAgICAgICAg
b3BlcmF0aW9uID0gYXRhbjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RXhwOgorICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9
IGV4cDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkY2NDo6TG46CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gbG9nOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVn
VDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICAgICBzdG9yZURvdWJsZShGUFJJ
bmZvOjpmcFJlZ1QwLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSkpOworICAg
ICAgICByZXR1cm4gVU5VU0VEOworICAgIH0KKwogICAgIGludCBidWlsZEJpbmFyeUkzMihpbnQs
IGludCwgV0FTTU9wRXhwcmVzc2lvbkkzMiBvcCkKICAgICB7CiAgICAgICAgIGxvYWQzMih0ZW1w
b3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMiksIEdQUkluZm86OnJlZ1QwKTsKQEAgLTc2
MSw2ICs4MjgsNTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gVU5VU0VEOwogICAgIH0KIAor
ICAgIGludCBidWlsZEJpbmFyeUY2NChpbnQsIGludCwgV0FTTU9wRXhwcmVzc2lvbkY2NCBvcCkK
KyAgICB7CisgICAgICAgIGxvYWREb3VibGUodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1Rv
cCAtIDIpLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgbG9hZERvdWJsZSh0ZW1wb3JhcnlB
ZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSksIEZQUkluZm86OmZwUmVnVDEpOworICAgICAgICBz
d2l0Y2ggKG9wKSB7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QWRkOgorICAg
ICAgICAgICAgYWRkRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3Vi
OgorICAgICAgICAgICAgc3ViRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVn
VDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6TXVsOgorICAgICAgICAgICAgbXVsRG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQUkluZm86
OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6RGl2OgorICAgICAgICAgICAgZGl2RG91YmxlKEZQUkluZm86OmZwUmVnVDEsIEZQ
UkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6TW9kOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFU
YW4yOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlBvdzoKKyAgICAgICAgICAg
IERfSklUT3BlcmF0aW9uX0REIG9wZXJhdGlvbjsKKyAgICAgICAgICAgIHN3aXRjaCAob3ApIHsK
KyAgICAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TW9kOgorICAgICAgICAgICAg
ICAgIG9wZXJhdGlvbiA9IGZtb2Q7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW4yOgorICAgICAgICAgICAgICAgIG9wZXJh
dGlvbiA9IGF0YW4yOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBX
QVNNT3BFeHByZXNzaW9uRjY0OjpQb3c6CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gcG93
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIEZQUkluZm86OmZwUmVnVDAsIEZQUklu
Zm86OmZwUmVnVDEsIEZQUkluZm86OmZwUmVnVDApOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
fQorICAgICAgICBtX3RlbXBTdGFja1RvcC0tOworICAgICAgICBzdG9yZURvdWJsZShGUFJJbmZv
OjpmcFJlZ1QwLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSkpOworICAgICAg
ICByZXR1cm4gVU5VU0VEOworICAgIH0KKwogICAgIGludCBidWlsZFJlbGF0aW9uYWxJMzIoaW50
LCBpbnQsIFdBU01PcEV4cHJlc3Npb25JMzIgb3ApCiAgICAgewogICAgICAgICBsb2FkMzIodGVt
cG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDIpLCBHUFJJbmZvOjpyZWdUMCk7CkBAIC0x
MTI5LDYgKzEyNDAsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgYXBwZW5kQ2FsbFNldFJlc3VsdChv
cGVyYXRpb24sIGRzdCwgRmxvYXRpbmdQb2ludFByZWNpc2lvbjo6U2luZ2xlKTsKICAgICB9CiAK
KyAgICB2b2lkIGNhbGxPcGVyYXRpb24oRF9KSVRPcGVyYXRpb25fRCBvcGVyYXRpb24sIEZQUmVn
aXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBzZXR1cEFyZ3Vt
ZW50cyhzcmMpOworICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgZHN0LCBG
bG9hdGluZ1BvaW50UHJlY2lzaW9uOjpEb3VibGUpOworICAgIH0KKwogICAgIHZvaWQgY2FsbE9w
ZXJhdGlvbihpbnQzMl90IEpJVF9PUEVSQVRJT04gKCpvcGVyYXRpb24pKGludDMyX3QsIGludDMy
X3QpLCBHUFJSZWcgc3JjMSwgR1BSUmVnIHNyYzIsIEdQUlJlZyBkc3QpCiAgICAgewogICAgICAg
ICBzZXR1cEFyZ3VtZW50cyhzcmMxLCBzcmMyKTsKQEAgLTExNDEsNiArMTI1OCwxMiBAQCBwcml2
YXRlOgogICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKICAgICB9
CiAKKyAgICB2b2lkIGNhbGxPcGVyYXRpb24oRF9KSVRPcGVyYXRpb25fREQgb3BlcmF0aW9uLCBG
UFJlZ2lzdGVySUQgc3JjMSwgRlBSZWdpc3RlcklEIHNyYzIsIEZQUmVnaXN0ZXJJRCBkc3QpCisg
ICAgeworICAgICAgICBzZXR1cEFyZ3VtZW50cyhzcmMxLCBzcmMyKTsKKyAgICAgICAgYXBwZW5k
Q2FsbFNldFJlc3VsdChvcGVyYXRpb24sIGRzdCwgRmxvYXRpbmdQb2ludFByZWNpc2lvbjo6RG91
YmxlKTsKKyAgICB9CisKICAgICB2b2lkIGNhbGxPcGVyYXRpb24oZG91YmxlIEpJVF9PUEVSQVRJ
T04gKCpvcGVyYXRpb24pKHVpbnQzMl90KSwgR1BSUmVnIHNyYywgRlBSZWdpc3RlcklEIGRzdCkK
ICAgICB7CiAgICAgICAgIHNldHVwQXJndW1lbnRzKHNyYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcAppbmRleCA1M2VhYjE1ZDFmYjRl
MjljNzJlNzQ3ZTZmZDQ1ODRjYzM5YTYyN2QzLi44NGQ4OGNjOGUyYWI3MzE2ZjM0YmQ4MTNjYjRl
YjVmNDJkZmFlYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNN
RnVuY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01G
dW5jdGlvblBhcnNlci5jcHAKQEAgLTkyOCwyMCArOTI4LDcgQEAgQ29udGV4dEV4cHJlc3Npb24g
V0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCkK
ICAgICAgICAgICAgIHJldHVybiBwYXJzZUNvbnZlcnRUeXBlKGNvbnRleHQsIFdBU01FeHByZXNz
aW9uVHlwZTo6STMyLCBXQVNNRXhwcmVzc2lvblR5cGU6OkY2NCwgV0FTTVR5cGVDb252ZXJzaW9u
OjpDb252ZXJ0VW5zaWduZWQpOwogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkZy
b21GMzI6CiAgICAgICAgICAgICByZXR1cm4gcGFyc2VDb252ZXJ0VHlwZShjb250ZXh0LCBXQVNN
RXhwcmVzc2lvblR5cGU6OkYzMiwgV0FTTUV4cHJlc3Npb25UeXBlOjpGNjQsIFdBU01UeXBlQ29u
dmVyc2lvbjo6UHJvbW90ZSk7Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2V0
TG9jYWw6Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2V0R2xvYmFsOgotICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN0b3JlOgotICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OlN0b3JlV2l0aE9mZnNldDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpDb25kaXRpb25hbDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0
OjpDb21tYToKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpOZWdhdGU6Ci0gICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QWRkOgotICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OlN1YjoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNdWw6
Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RGl2OgotICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6Ok1vZDoKLSAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0
OjpNaW46Ci0gICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TWF4OgogICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFiczoKICAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0OjpDZWlsOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkZsb29yOgpA
QCAtOTUyLDEwICs5MzksMjUgQEAgQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2Vy
OjpwYXJzZUV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpBQ29zOgogICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6
OkFTaW46CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRhbjoKLSAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBVGFuMjoKICAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpFeHA6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG46Cisg
ICAgICAgICAgICByZXR1cm4gcGFyc2VVbmFyeUV4cHJlc3Npb25GNjQoY29udGV4dCwgb3ApOwor
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFkZDoKKyAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpTdWI6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6
TXVsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkRpdjoKKyAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNb2Q6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkY2NDo6QVRhbjI6CiAgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6UG93OgorICAg
ICAgICAgICAgcmV0dXJuIHBhcnNlQmluYXJ5RXhwcmVzc2lvbkY2NChjb250ZXh0LCBvcCk7Cisg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2V0TG9jYWw6CisgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6U2V0R2xvYmFsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GNjQ6OlN0b3JlOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN0b3Jl
V2l0aE9mZnNldDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDb25kaXRpb25h
bDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDb21tYToKKyAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNaW46CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkY2NDo6TWF4OgogICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGVzZSBpbnN0cnVj
dGlvbnMuCiAgICAgICAgICAgICBGQUlMX1dJVEhfTUVTU0FHRSgiVW5zdXBwb3J0ZWQgaW5zdHJ1
Y3Rpb24uIik7CiAgICAgICAgIGRlZmF1bHQ6CkBAIC0xMDI0LDYgKzEwMjYsMjQgQEAgQ29udGV4
dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUdldEdsb2JhbEV4cHJlc3Npb25G
NjQoQ29udGV4dCYgY29udGUKIH0KIAogdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+CitDb250ZXh0
RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlVW5hcnlFeHByZXNzaW9uRjY0KENv
bnRleHQmIGNvbnRleHQsIFdBU01PcEV4cHJlc3Npb25GNjQgb3ApCit7CisgICAgQ29udGV4dEV4
cHJlc3Npb24gZXhwcmVzc2lvbiA9IHBhcnNlRXhwcmVzc2lvbkY2NChjb250ZXh0KTsKKyAgICBQ
Uk9QQUdBVEVfRVJST1IoKTsKKyAgICByZXR1cm4gY29udGV4dC5idWlsZFVuYXJ5RjY0KGV4cHJl
c3Npb24sIG9wKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+CitDb250ZXh0RXhwcmVz
c2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQmluYXJ5RXhwcmVzc2lvbkY2NChDb250ZXh0
JiBjb250ZXh0LCBXQVNNT3BFeHByZXNzaW9uRjY0IG9wKQoreworICAgIENvbnRleHRFeHByZXNz
aW9uIGxlZnQgPSBwYXJzZUV4cHJlc3Npb25GNjQoY29udGV4dCk7CisgICAgUFJPUEFHQVRFX0VS
Uk9SKCk7CisgICAgQ29udGV4dEV4cHJlc3Npb24gcmlnaHQgPSBwYXJzZUV4cHJlc3Npb25GNjQo
Y29udGV4dCk7CisgICAgUFJPUEFHQVRFX0VSUk9SKCk7CisgICAgcmV0dXJuIGNvbnRleHQuYnVp
bGRCaW5hcnlGNjQobGVmdCwgcmlnaHQsIG9wKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIENvbnRl
eHQ+CiBDb250ZXh0TWVtb3J5QWRkcmVzcyBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlTWVtb3J5
QWRkcmVzcyhDb250ZXh0JiBjb250ZXh0LCBNZW1vcnlBY2Nlc3NPZmZzZXRNb2RlIG9mZnNldE1v
ZGUpCiB7CiAgICAgdWludDMyX3Qgb2Zmc2V0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmgKaW5kZXggMTYzMTExOGZmYjQ5MGZjNmM1YTFm
M2YwNTYzMjQ2MjdmZWIyODIwMi4uODFmMGI3OGY1MjczYzFjYzhkYWJjMWY5NDY5ZDgxY2JlYmVm
ZmJiOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9u
UGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFy
c2VyLmgKQEAgLTExMyw2ICsxMTMsOCBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxjbGFzcyBD
b250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChDb250
ZXh0JiwgdWludDMyX3QgbG9jYWxJbmRleCk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+
IENvbnRleHRFeHByZXNzaW9uIHBhcnNlR2V0TG9jYWxFeHByZXNzaW9uRjY0KENvbnRleHQmKTsK
ICAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VHZXRH
bG9iYWxFeHByZXNzaW9uRjY0KENvbnRleHQmKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4
dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VVbmFyeUV4cHJlc3Npb25GNjQoQ29udGV4dCYsIFdB
U01PcEV4cHJlc3Npb25GNjQpOworICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0
RXhwcmVzc2lvbiBwYXJzZUJpbmFyeUV4cHJlc3Npb25GNjQoQ29udGV4dCYsIFdBU01PcEV4cHJl
c3Npb25GNjQpOwogCiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRNZW1vcnlB
ZGRyZXNzIHBhcnNlTWVtb3J5QWRkcmVzcyhDb250ZXh0JiwgTWVtb3J5QWNjZXNzT2Zmc2V0TW9k
ZSk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNl
TG9hZChDb250ZXh0JiwgV0FTTUV4cHJlc3Npb25UeXBlLCBXQVNNTWVtb3J5VHlwZSwgTWVtb3J5
QWNjZXNzT2Zmc2V0TW9kZSwgTWVtb3J5QWNjZXNzQ29udmVyc2lvbiA9IE1lbW9yeUFjY2Vzc0Nv
bnZlcnNpb246Ok5vQ29udmVyc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyLmgKaW5kZXggNDZhY2E1ZDY2YmQ2MjVm
Mzc4ZDVkNjA1ZGVlMjdjMTgzM2E0YjI1ZC4uYjdiYjE5MjM1NjZhOGQyYzE3YmFjZDc5Mjc1MDhk
MmVkYjFlMmU2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1
bmN0aW9uU3ludGF4Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01GdW5jdGlvblN5bnRheENoZWNrZXIuaApAQCAtMTMxLDYgKzEzMSwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAgfQogCisgICAgaW50IGJ1aWxkVW5hcnlGNjQoaW50
LCBXQVNNT3BFeHByZXNzaW9uRjY0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIFVOVVNFRDsKKyAg
ICB9CisKICAgICBpbnQgYnVpbGRCaW5hcnlJMzIoaW50LCBpbnQsIFdBU01PcEV4cHJlc3Npb25J
MzIpCiAgICAgewogICAgICAgICBtX3RlbXBTdGFja1RvcC0tOwpAQCAtMTQzLDYgKzE0OCwxMiBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAgfQogCisgICAgaW50IGJ1aWxk
QmluYXJ5RjY0KGludCwgaW50LCBXQVNNT3BFeHByZXNzaW9uRjY0KQorICAgIHsKKyAgICAgICAg
bV90ZW1wU3RhY2tUb3AtLTsKKyAgICAgICAgcmV0dXJuIFVOVVNFRDsKKyAgICB9CisKICAgICBp
bnQgYnVpbGRSZWxhdGlvbmFsSTMyKGludCwgaW50LCBXQVNNT3BFeHByZXNzaW9uSTMyKQogICAg
IHsKICAgICAgICAgbV90ZW1wU3RhY2tUb3AtLTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>