<?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>40776</bug_id>
          
          <creation_ts>2010-06-17 07:13:46 -0700</creation_ts>
          <short_desc>Add a bare bones speech UI for input elements with @speech attribute set</short_desc>
          <delta_ts>2010-06-19 05:44:57 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc>https://docs.google.com/View?id=dcfg79pz_5dhnp23f5</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>39485</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Satish Sampath">satish</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andreip</cc>
    
    <cc>dimich</cc>
    
    <cc>gustavo</cc>
    
    <cc>jorlow</cc>
    
    <cc>levin</cc>
    
    <cc>mjs</cc>
    
    <cc>satish</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>239371</commentid>
    <comment_count>0</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-06-17 07:13:46 -0700</bug_when>
    <thetext>This is the first in a series of patches to enable speech in HTML input elements. A new &apos;@speech&apos; attribute is used to explicitly enable individual form input elements for speech input, and the input element will allow users to start/stop speech recognition and insert the recognition results as the control&apos;s value. Please see the parent bug https://bugs.webkit.org/show_bug.cgi?id=39485 for more information.

Backwards compatibility:
1. Web developers will use a new &apos;@speech&apos; attribute to explicitly enable individual
   form input fields for speech input. UAs which don&apos;t recognize this new attribute
   will render the input element in it&apos;s normal form.
2. Once the initial implementation is ready we intend to enable this API in Chrome
   behind a run-time flag, which will let web developers turn on the feature in their
   own machines and experiment with it to give useful feedback.

Full API proposal: https://docs.google.com/View?id=dcfg79pz_5dhnp23f5

Relevant discussions in the WHATWG lists:
  - http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-May/026338.html
  - http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2010-June/026747.html

Changes in this patch:
  Add bare bones &apos;@speech&apos; attribute support to the text input element and associated rendering
  code. Input elements with &apos;@speech&apos; set will show a clickable button within the text field
  area similar to the clear buttons that appear in &lt;input type=&apos;search&apos;&gt; elements.
  a. Compile flag in the build script and makefiles to conditionally enable (default:off) the code
  b. Add speech input button styles to the UA style sheet and CSS parsing code.
  c. Recognize &apos;@speech&apos; as a valid attribute
  d. RenderTextControlSingleLine will check if @speech is set and if so create the speech
     input button in the same fashion as the search field&apos;s cancel button.
  e. Platform and UA specific themed rendering (RenderThemeXxxxx files) for the above speech
     input button</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239388</commentid>
    <comment_count>1</comment_count>
      <attachid>58995</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-06-17 07:54:59 -0700</bug_when>
    <thetext>Created attachment 58995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239434</commentid>
    <comment_count>2</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-06-17 09:53:05 -0700</bug_when>
    <thetext>I won&apos;t r- this, but this patch is pretty massive. It would be better to have more incremental patches. For example, a first patch could just add support for the define like this: http://trac.webkit.org/changeset/60543

I glanced at the patch, and you had an awesome attention to detail in the code styling. (This is much much better than most folks on first patch including my own.) 

A few minor items that are standard but probably not stated in some doc:
1. It is standard practice to add a copyright line when you change or add more than ~10 lines to a file like this &quot;Copyright (C) 2010 Google Inc. All rights reserved.&quot; in your case.
2. You don&apos;t need to add &quot; Copyright (C) 2010 Apple Inc. All rights reserved.&quot; to new files. In fact the reference to APPLE COMPUTER isn&apos;t needed below that (and is out of date as it is Apple, Inc. now anyway). You can use WebCore/loader/ThreadableLoader.h as a good template for the copyright boilerplate.
3. FIXME&apos;s don&apos;t get names attached to them. (Source history is consider good enough to identify who added it if needed.)
4. Please end comments with &quot;.&quot; and only one space after . in comments.
5. Your patch is having trouble being applied by the bots so it would be good to update your local code before submitting a new version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239448</commentid>
    <comment_count>3</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-06-17 10:11:37 -0700</bug_when>
    <thetext>Thanks for the comments, I&apos;ll address them in my next patch shortly. Regarding starting with a smaller patch - since the speech input API is a proposal/being discussed, I felt this patch was a good way to introduce the feature proposal to reviewers as well. Once a couple of reviewers had a look at it and feel positive about including the API in webkit, I&apos;m happy to split it up if required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239590</commentid>
    <comment_count>4</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-06-17 14:49:20 -0700</bug_when>
    <thetext>Suggested split points:
1) Adding ENABLE defines
2) Input stuff (minus Platform specific stuff)
3) Chromium specific stuff
4) Layout test

Now, ideally a reviewer would look at all of this together, but splitting things into their own patches will still make it a bit easier for people to grok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239880</commentid>
    <comment_count>5</comment_count>
      <attachid>59099</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-06-18 05:38:18 -0700</bug_when>
    <thetext>Created attachment 59099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239881</commentid>
    <comment_count>6</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-06-18 05:48:08 -0700</bug_when>
    <thetext>Addressed David Levin&apos;s comments in the latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239898</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-18 06:56:13 -0700</bug_when>
    <thetext>Attachment 59099 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3325331</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240196</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-06-18 15:58:25 -0700</bug_when>
    <thetext>So, if your plan is to publish this patch to facilitate the discussion on  the proposal, then I&apos;m not sure why you need a r? flag - since this is a request for a reviewer to do full-blown review that normally precedes landing. 

I&apos;d definitely second David&apos;s and Jeremy&apos;s suggestion on splitting the patch. Usually, &quot;add API&quot; kind of changes are done in smaller pieces, &apos;patch per bug&apos; using dependent bugs for implementation patches (see bug 39905 or bug 34990 for example)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240207</commentid>
    <comment_count>9</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-06-18 16:12:25 -0700</bug_when>
    <thetext>Sorry I didn&apos;t mean to say this patch was purely to facilitate discussion. 
Since the speech API proposal is nascent and perhaps the reviewers viewing this patch would be coming across the proposal for the first time, I thought a patch that shows how it would function with a mock implementation was more suitable to apply on their local branch and see what is being proposed. It would be useful to receive some high level feedback on the proposed design (as shown by this patch). And if the feature &amp; design look reasonably ok but the reviewers prefer smaller patches for doing a thorough review, I&apos;m happy to split it up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240236</commentid>
    <comment_count>10</comment_count>
      <attachid>59099</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-06-18 17:50:27 -0700</bug_when>
    <thetext>Comment on attachment 59099
Patch

Yes, please go ahead and split it up right off the batt.  r- to remove from the review queue in the mean time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240312</commentid>
    <comment_count>11</comment_count>
      <attachid>59099</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-06-19 04:15:16 -0700</bug_when>
    <thetext>Comment on attachment 59099
Patch

WebCore/WebCore.gypi:3161
 +              &apos;rendering/RenderInputSpeechChromium.cpp&apos;,
I guess you introduced RenderInputSppechChromium to share code in RenderThemeChromiumMac and RenderThemeSkia.
But I don&apos;t think rendering/RenderInputSpeechChromium is a right place.  Probably it should be in WebCore/platform/chromium/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240323</commentid>
    <comment_count>12</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-06-19 05:44:57 -0700</bug_when>
    <thetext>As suggested I have created bug https://bugs.webkit.org/show_bug.cgi?id=40878 which starts with adding support for the compile time feature define, and will break up the remaining parts of this patch as well into smaller patches. Closing this bug as resolved.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58995</attachid>
            <date>2010-06-17 07:54:59 -0700</date>
            <delta_ts>2010-06-18 05:38:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40776-20100617155456.patch</filename>
            <type>text/plain</type>
            <size>72071</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlMmNhODYwY2MzYjM0MzIz
OTY0OTU2ZjczNTRjOWUxNzAyYjMxNmY3Li44NjViMmVkZGM1MDgyY2I4NGZhNWY2MGEyZjExYTlh
MGU3MmM2YjM3IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTAtMDYtMTcgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBiYXJlIGJvbmVzIHNwZWVjaCBVSSBmb3IgaW5wdXQgZWxlbWVudHMgd2l0aCBAc3BlZWNoIGF0
dHJpYnV0ZSBzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwNzc2CisKKyAgICAgICAgKiBjb25maWd1cmUuYWM6IENvbXBpbGUgdGltZSBkZWZpbmUg
dG8gY29uZGl0aW9uYWxseSBlbmFibGUgc3BlZWNoIGlucHV0IGZlYXR1cmUuCisKIDIwMTAtMDYt
MTUgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
YnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDc0ZmJjZjk4ZWVhMDllZTVlMjg3MDQ1MWQ0MTg3NmY0
N2U1Y2MzYjMuLjJlNTAxOWUxYTBkZTk0MjY5OWI5ODA4ZGUzZjU1ZjJmODE3ZTIzOTIgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wNi0xNyAgU2F0aXNoIFNhbXBhdGggIDxzYXRp
c2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhIGJhcmUgYm9uZXMgc3BlZWNoIFVJIGZvciBpbnB1dCBlbGVtZW50cyB3
aXRoIEBzcGVlY2ggYXR0cmlidXRlIHNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDA3NzYKKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnOiBDb21waWxlIHRpbWUgZGVmaW5lIHRvIGNvbmRpdGlvbmFsbHkg
ZW5hYmxlIHNwZWVjaCBpbnB1dCBmZWF0dXJlLgorCiAyMDEwLTA2LTE2ICBQZXRlciBWYXJnYSAg
PHB2YXJnYUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkg
R2FyZW4uCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZyBiL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCmluZGV4IDViNTI3OTMxZmUyYTBjNzA2ZGMyMGEyNDNmYjMyNjk3N2Jh
NDAwMmYuLjA4ZDllZjljNDBkY2M1ZDZkMGJjNjM5M2ZiN2I1MjJkMGE0ZmE5NGQgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CisrKyBiL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCkBAIC01Nyw2ICs1Nyw3IEBAIEVOQUJMRV9HRU9MT0NBVElPTiA9IEVOQUJMRV9HRU9MT0NB
VElPTjsKIEVOQUJMRV9JQ09OREFUQUJBU0UgPSBFTkFCTEVfSUNPTkRBVEFCQVNFOwogRU5BQkxF
X0lNQUdFX1JFU0laRVIgPSA7CiBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSA9IDsKK0VOQUJMRV9J
TlBVVF9TUEVFQ0ggPSA7CiBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUiA9IEVOQUJMRV9KQVZB
U0NSSVBUX0RFQlVHR0VSOwogRU5BQkxFX01BVEhNTCA9IDsKIEVOQUJMRV9NRVRFUl9UQUcgPSBF
TkFCTEVfTUVURVJfVEFHOwpAQCAtODEsNCArODIsNCBAQCBFTkFCTEVfWEhUTUxNUCA9IDsKIEVO
QUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAK
LUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX0NBTlZBUykgJChFTkFCTEVfM0RfUkVOREVS
SU5HKSAkKEVOQUJMRV9CTE9CX1NMSUNFKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChF
TkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFC
TEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJ
T04pICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVf
RklMVEVSUykgJChFTkFCTEVfRklMRV9SRUFERVIpICQoRU5BQkxFX0ZJTEVfV1JJVEVSKSAkKEVO
QUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9S
RVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RF
QlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9U
SUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9Q
Uk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkpICQoRU5BQkxFX1NBTkRCT1gpICQoRU5BQkxFX1NI
QVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5B
QkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJM
RV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VT
RSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XTUwpICQo
RU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJM
RV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX0NBTlZBUykgJChFTkFCTEVf
M0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CX1NMSUNFKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NB
R0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFT
RSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0Vf
T1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkg
JChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9SRUFERVIpICQoRU5BQkxFX0ZJTEVfV1JJ
VEVSKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJM
RV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBV
VF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUlVC
WSkgJChFTkFCTEVfU0FOREJPWCkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NW
RykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJM
RV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZH
X0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVf
WEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM2MDczZTNi
YmExZjFiNDllNDliNTU0ZGViMGM2OWJhZTRhNzliMDQuLjc3N2U2ZWIwZTRiMDRjODBhODgzOWNm
YmQzODNiNTJlMmNmYTA0NGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wNi0xNyAgU2F0
aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGJhcmUgYm9uZXMgc3BlZWNoIFVJIGZv
ciBpbnB1dCBlbGVtZW50cyB3aXRoIEBzcGVlY2ggYXR0cmlidXRlIHNldAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA3NzYKKworICAgICAgICBCYXNp
YyBsYXlvdXQgdGVzdCBhbmQgYXNzb2NpYXRlZCBzZXR1cCBmb3IgdGVzdGluZyBzcGVlY2ggaW5w
dXQgQVBJLiBTaW5jZSB0aGUKKyAgICAgICAgQVBJIGNvZGUgaXMgZGlzYWJsZWQgZm9yIG5vdywg
dGhlIHRlc3RzIGFyZSBhZGRlZCB0byB0aGUgc2tpcCBsaXN0cyBvbiBhbGwgcGxhdGZvcm1zLgor
CisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaC1idXR0b24tZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXRleHQtc3BlZWNoLWJ1dHRv
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlYXJjaC1zcGVlY2gtYW5kLWNh
bmNlbC1idXR0b25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9z
ZWFyY2gtc3BlZWNoLWFuZC1jYW5jZWwtYnV0dG9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoK
KwogMjAxMC0wNi0xNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC10ZXh0LXNwZWVjaC1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaC1idXR0b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYwMGYzYWVhNDE4MjkwZGJkYjNhNTRmNWUxOGZmNmYzZmE1MDE4NjUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXRleHQtc3BlZWNoLWJ1dHRvbi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDbGlja2luZyB0aGUgc3BlZWNoIGJ1dHRvbiBz
aG91bGQgZmlsbCBpbiBtb2NrIHNwZWVjaC1yZWNvZ25pemVkIHRleHQuCisKKworUEFTUwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaC1idXR0b24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdGV4dC1zcGVlY2gtYnV0dG9uLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzBlNGU4YTVjMTIxOTQ1ZDVjMDkwMjQyMTRhYzk0OThmODBjZDk2OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdGV4dC1zcGVl
Y2gtYnV0dG9uLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0
bGU+SW5wdXQgRmllbGQgd2l0aCBTcGVlY2g8L3RpdGxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD4KKyAgICAgICAgQ2xpY2tp
bmcgdGhlIHNwZWVjaCBidXR0b24gc2hvdWxkIGZpbGwgaW4gbW9jayBzcGVlY2gtcmVjb2duaXpl
ZCB0ZXh0LgorICAgIDwvcD4KKyAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InRhcmdldCIgc3Bl
ZWNoPgorICAgIDxwIGlkPSJyZXN1bHQiIHN0eWxlPSJtYXJnaW4tdG9wOiA2MHB4OyI+PC9wPgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAg
ICAgIC8vIEZJWE1FKHNhdGlzaCk6IFJpZ2h0IG5vdyB0aGUgbW9jayBzdHJpbmcgJ3Rlc3QnIGlz
IGhhcmR3aXJlZCBpbiB0aGUgY29kZS4KKyAgICAgICAgICAgIC8vIE9uY2UgYSBTcGVlY2ggc2Vy
dmljZSBoYXMgYmVlbiBpbXBsZW1lbnRlZCBpbml0aWFsaXplIGEgbW9jayBzcGVlY2ggc2Vydmlj
ZSBoZXJlCisgICAgICAgICAgICAvLyBhbmQgcmVtb3ZlIHRoZSBoYXJkd2lyZWQgdGVzdCBzdHJp
bmcuCisgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldCIpOworICAgICAgICAgICAgdmFyIHggPSB0YXJnZXQub2Zmc2V0TGVmdCArIHRhcmdldC5v
ZmZzZXRXaWR0aCAtIDQ7CisgICAgICAgICAgICB2YXIgeSA9IHRhcmdldC5vZmZzZXRUb3AgKyB0
YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHgsIHkpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgICAgICB2YXIgcmVzdWx0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOworICAgICAgICAgICAgaWYgKHRhcmdldC52
YWx1ZSA9PSAidGVzdCIpCisgICAgICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9ICJQQVNT
IjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXN1bHQuaW5uZXJUZXh0ID0g
IkZBSUwiOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1zcGVlY2gtYW5kLWNhbmNlbC1i
dXR0b25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLXNwZWVj
aC1hbmQtY2FuY2VsLWJ1dHRvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkNjExNmE5NDYz
MzMxM2JjZDZmYTAzYThjN2U3MGMxOTU2YTllZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1zcGVlY2gtYW5kLWNhbmNlbC1idXR0b25zLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3RzIHRoYXQgdGhlIHNwZWVjaCBidXR0b24gaXMgcGxh
Y2VkIGF0IHRoZSBmYXIgcmlnaHQgb2YgdGhlIHNlYXJjaCBmaWVsZCBhbmQgdGhlCitzZWFyY2gg
ZmllbGQncyBjYW5jZWwgYnV0dG9uIGlzIHBsYWNlZCB0byB0aGUgbGVmdCBvZiB0aGUgc3BlZWNo
IGJ1dHRvbi4KK0NsaWNraW5nIHRoZSBzcGVlY2ggYnV0dG9uIHNob3VsZCBmaWxsIGluIG1vY2sg
c3BlZWNoLXJlY29nbml6ZWQgdGV4dCBhbmQgY2xpY2tpbmcgdGhlCitjYW5jZWwgYnV0dG9uIHNo
b3VsZCBjbGVhciBpdC4KKworCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NlYXJjaC1zcGVlY2gtYW5kLWNhbmNlbC1idXR0b25zLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3NlYXJjaC1zcGVlY2gtYW5kLWNhbmNlbC1idXR0b25zLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGEwZWJjMGM4YmQxYzAxYjVjZjZiMzkyOGE5YmYyMDI5ZWUxMWU1MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLXNwZWVjaC1hbmQtY2FuY2VsLWJ1
dHRvbnMuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5J
bnB1dCBGaWVsZCB3aXRoIFNwZWVjaDwvdGl0bGU+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxwPgorICAgICAgICBUZXN0cyB0aGF0
IHRoZSBzcGVlY2ggYnV0dG9uIGlzIHBsYWNlZCBhdCB0aGUgZmFyIHJpZ2h0IG9mIHRoZSBzZWFy
Y2ggZmllbGQgYW5kIHRoZTxiciAvPgorICAgICAgICBzZWFyY2ggZmllbGQncyBjYW5jZWwgYnV0
dG9uIGlzIHBsYWNlZCB0byB0aGUgbGVmdCBvZiB0aGUgc3BlZWNoIGJ1dHRvbi48YnIgLz4KKyAg
ICAgICAgQ2xpY2tpbmcgdGhlIHNwZWVjaCBidXR0b24gc2hvdWxkIGZpbGwgaW4gbW9jayBzcGVl
Y2gtcmVjb2duaXplZCB0ZXh0IGFuZCBjbGlja2luZyB0aGU8YnIgLz4KKyAgICAgICAgY2FuY2Vs
IGJ1dHRvbiBzaG91bGQgY2xlYXIgaXQuCisgICAgPC9wPgorICAgIDxpbnB1dCB0eXBlPSJzZWFy
Y2giIGlkPSJ0YXJnZXQiIHNwZWVjaD4KKyAgICA8cCBpZD0icmVzdWx0IiBzdHlsZT0ibWFyZ2lu
LXRvcDogNjBweDsiPjwvcD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LmV2ZW50
U2VuZGVyKSB7CisgICAgICAgICAgICAvLyBGSVhNRShzYXRpc2gpOiBSaWdodCBub3cgdGhlIG1v
Y2sgc3RyaW5nICd0ZXN0JyBpcyBoYXJkd2lyZWQgaW4gdGhlIGNvZGUuCisgICAgICAgICAgICAv
LyBPbmNlIGEgU3BlZWNoIHNlcnZpY2UgaGFzIGJlZW4gaW1wbGVtZW50ZWQgaW5pdGlhbGl6ZSBh
IG1vY2sgc3BlZWNoIHNlcnZpY2UgaGVyZQorICAgICAgICAgICAgLy8gYW5kIHJlbW92ZSB0aGUg
aGFyZHdpcmVkIHRlc3Qgc3RyaW5nLgorICAgICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKKyAgICAgICAgICAgIHZhciB4ID0gdGFyZ2V0Lm9m
ZnNldExlZnQgKyB0YXJnZXQub2Zmc2V0V2lkdGggLSA0OworICAgICAgICAgICAgdmFyIHkgPSB0
YXJnZXQub2Zmc2V0VG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlRG93bigpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAg
ICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKKyAgICAg
ICAgICAgIGlmICh0YXJnZXQudmFsdWUgIT0gInRlc3QiKSB7CisgICAgICAgICAgICAgICAgcmVz
dWx0LmlubmVyVGV4dCA9ICJGQUlMIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgeCAtPSB0YXJnZXQub2Zmc2V0SGVpZ2h0ICsgNDsKKyAgICAgICAgICAgICAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAg
ICAgICAgICAgICAgaWYgKHRhcmdldC52YWx1ZSA9PSAiIikKKyAgICAgICAgICAgICAgICAgICAg
cmVzdWx0LmlubmVyVGV4dCA9ICJQQVNTIjsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiRkFJTCI7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBlZmU3
NmQ1ZjgxMmYyYzY2Mzk3MjhmZjFlNTQ0OTY0YjFkOTU0N2M2Li42MTJiNjlhOTllOThlNDFiM2Y5
OTdlYTdmMDBjODhkOTUyODFlMmYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0yOTE3LDMgKzI5MTcsNyBAQCBCVUdX
SzM1OTYxIDogcHJpbnRpbmcvcGFnZS1ydWxlLXNlbGVjdGlvbi5odG1sID0gVEVYVAogLy8gQmVm
b3JlIGJ1bGFjaC9hbmRyZWlwIHJlYmFzZWxpbmUgdGhlc2UgdGVzdHMgKGNoYW5nZWQgYXQgcjYx
MjM0IC8gbmV3IGh0bWw1IHBhcnNlcikuCiBCVUc0NjY3NCBMSU5VWCA6IGZhc3QvdGV4dC9pbnRl
cm5hdGlvbmFsL2hpbmRpLXdoaXRlc3BhY2UuaHRtbCA9IEZBSUwKIEJVRzQ2Njc0IE1BQyA6IGZh
c3QvdG9rZW5pemVyL3NjcmlwdF9leHRyYV9jbG9zZS5odG1sID0gRkFJTAorCisjIFNwZWVjaCBp
bnB1dCBpcyBub3QgeWV0IGVuYWJsZWQuCitCVUc0NDg0NDogZmFzdC9mb3Jtcy9pbnB1dC10ZXh0
LXNwZWVjaC1idXR0b24uaHRtbCA9IFRFWFQKK0JVRzQ0ODQ0OiBmYXN0L2Zvcm1zL3NlYXJjaC1z
cGVlY2gtYW5kLWNhbmNlbC1idXR0b25zLmh0bWwgPSBURVhUCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCmluZGV4IGVlNDUxNDgyMmE2NzIwMWRjZDhlY2JhYzlmMDliZDhiNWMzYWRjNTEuLjg2ZGQy
YTBmOGI4ZGZmNTYxNzVlYjg4ZmQ0YTAxNzEwNTMzNzU2MGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9T
a2lwcGVkCkBAIC01OTMxLDMgKzU5MzEsNyBAQCBwcmludGluZy9wYWdlLXJ1bGUtc2VsZWN0aW9u
Lmh0bWwKICMgSFRNTDUgTGV4ZXIgaW4gcjYxMjM0LgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDA2NjQKIGluc3BlY3Rvci90aW1lbGluZS1zY3JpcHQtdGFnLTEu
aHRtbAorCisjIFNwZWVjaCBpbnB1dCBpcyBub3QgeWV0IGVuYWJsZWQuCitmYXN0L2Zvcm1zL2lu
cHV0LXRleHQtc3BlZWNoLWJ1dHRvbi5odG1sCitmYXN0L2Zvcm1zL3NlYXJjaC1zcGVlY2gtYW5k
LWNhbmNlbC1idXR0b25zLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggNDExMTcy
YjAwM2RlODIwMDI2ZDU1YzVjN2MzODYwNDRjZWQ0OTNhOC4uMGNmYTI4YTU3Mjg1YzJjYTc2NGEy
MGE4ZGQzNzMwMWE5ZGU3ZjMyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTI5OSwz
ICsyOTksNyBAQCBlZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1kcmFnLXRvLWVkaXRhYmxlLmh0bWwK
ICMgYWJhcnRoIGtlZXBzIHNjcmV3aW5nIHVwIHRoZSBleHBlY3RhdGlvbnMgZm9yIHRoaXMgdGVz
dC4gIE1hcmsgUm93ZSB0b2xkIG1lCiAjIGhvdyB0byBmaXggdGhlbS4gIEknbGwgZml4IHRoZW0g
YmUgdGhlIGVuZCBvZiB0b2RheS4KIHRhYmxlcy9tb3ppbGxhL2ltYWdlcy9hZGZvcmNlX2ltZ2lz
X2NvbS5odG1sCisKKyMgU3BlZWNoIGlucHV0IGlzIG5vdCB5ZXQgZW5hYmxlZC4KK2Zhc3QvZm9y
bXMvaW5wdXQtdGV4dC1zcGVlY2gtYnV0dG9uLmh0bWwKK2Zhc3QvZm9ybXMvc2VhcmNoLXNwZWVj
aC1hbmQtY2FuY2VsLWJ1dHRvbnMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggZGU1
Y2Q0MjBiMzg2YTdiMjg0MDQ3NWEyMWRmNDhmYzY2MGEzZmQzMi4uMmU5YTg1MjY4YzljZWRiNmI4
YjliYjg2Mjk2ZmQ0NzgyZGZkODcyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC01NDIy
LDMgKzU0MjIsNiBAQCBmYXN0L2RvbS9HZW9sb2NhdGlvbi9jYWxsYmFjay10by1yZW1vdGUtY29u
dGV4dDIuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA2
NjEKIGZhc3QvZW5jb2RpbmcvamFwYW5lc2UtZW5jb2RpbmctbWl4Lmh0bWwKIAorIyBTcGVlY2gg
aW5wdXQgaXMgbm90IHlldCBlbmFibGVkLgorZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaC1i
dXR0b24uaHRtbAorZmFzdC9mb3Jtcy9zZWFyY2gtc3BlZWNoLWFuZC1jYW5jZWwtYnV0dG9ucy5o
dG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IDdmYjlhYWQ4OTMwZGNjZjUwYTBiNzZi
Y2MzOWUxZjIyOGE3MTkzOTUuLmRlYjRkN2Y0Y2FhOWQ1YjNkOWY4NDNjYjY4MDE2NzdkYmU4ZWU0
MjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC04OTYsMyArODk2LDcgQEAgZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLW9uLWRldmljZS1vcmllbnRhdGlvbi5odG1sCiAK
ICMgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBhZ2VQcm9wZXJ0eSBpcyBub3QgaW1wbGVtZW50ZWQg
Zm9yIFdJTiB5ZXQuCiBwcmludGluZy9wYWdlLXJ1bGUtc2VsZWN0aW9uLmh0bWwKKworIyBTcGVl
Y2ggaW5wdXQgaXMgbm90IHlldCBlbmFibGVkLgorZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVj
aC1idXR0b24uaHRtbAorZmFzdC9mb3Jtcy9zZWFyY2gtc3BlZWNoLWFuZC1jYW5jZWwtYnV0dG9u
cy5odG1sCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGQ0NGFiYWQyZDg4NjQzZGNmNzFhNzNlODUyNGVjNjQyNmVlNjgxNDMuLjc5OTllZGJl
MzVhNGNiMDI1ZGM0NWEyZTc1ZDk4MDc0ZGZhMjI5ZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMTAtMDYt
MTcgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBiYXJlIGJvbmVzIHNwZWVj
aCBVSSBmb3IgaW5wdXQgZWxlbWVudHMgd2l0aCBAc3BlZWNoIGF0dHJpYnV0ZSBzZXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNzc2CisKKyAgICAg
ICAgU3BlZWNoIGlucHV0IFVJIENTUyBzdHlsZXMgYWRkZWQgdG8gVUEgc3R5bGVzaGVldCBhbmQg
Q1NTIHBhcnNpbmcgY29kZS4KKyAgICAgICAgSFRNTElucHV0RWxlbWVudCByZWNvZ25pemVzICdA
c3BlZWNoJyBhcyBhIHZhbGlkIGF0dHJpYnV0ZS4KKyAgICAgICAgUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lIGFkZHMgYSBzcGVlY2ggYnV0dG9uIHRvIHRoZSB0ZXh0IGZpZWxkIGlmICdAc3Bl
ZWNoJyBhdHRyaWJ1dGUgaXMgc2V0LgorICAgICAgICBSZW5kZXJJbnB1dFNwZWVjaENocm9taXVt
IGFkZGVkIGFuZCBSZW5kZXJUaGVtZSogZmlsZXMgbW9kaWZpZWQgdG8gcmVuZGVyIHRoZSBzcGVl
Y2ggaW5wdXQgY29udHJvbC4KKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9pbnB1dC10ZXh0
LXNwZWVjaC1idXR0b24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9zZWFyY2gtc3Bl
ZWNoLWFuZC1jYW5jZWwtYnV0dG9ucy5odG1sCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVW
YWx1ZSk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NlbGVjdG9yOjpwc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpuYW1lVG9Qc2V1ZG9U
eXBlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlw
ZSk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NT
ZWxlY3Rvcjo6KToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjoKKyAgICAgICAg
KiBjc3MvaHRtbC5jc3M6CisgICAgICAgIChpbnB1dDo6LXdlYmtpdC1pbnB1dC1zcGVlY2gtc3Rh
dHVzKToKKyAgICAgICAgKiBkb20vSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmlzU3BlZWNoRW5hYmxlZCk6Cisg
ICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vVGhl
bWVUeXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVySW5wdXRTcGVlY2hDaHJvbWl1bS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6cGxh
dGZvcm1SZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbnB1dFNwZWVjaENocm9t
aXVtOjpyZWxlYXNlSW1hZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklucHV0U3BlZWNo
Q2hyb21pdW06OnBhaW50SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbik6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlcklucHV0U3BlZWNoQ2hyb21pdW0uaDogQWRkZWQuCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6Om5vZGVBdFBvaW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Zm9yd2FyZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c3R5bGVEaWRDaGFuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpoYXNDb250cm9s
Q2xpcCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmNv
bnRyb2xDbGlwUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmU6OnRleHRCbG9ja1dpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6cHJlZmVycmVkQ29udGVudFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6YWRqdXN0Q29udHJvbEhlaWdodEJhc2VkT25M
aW5lSGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZTo6Y3JlYXRlU3VidHJlZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6Y3JlYXRlU3BlZWNoQnV0dG9uU3R5bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpjbGllbnRQYWRkaW5nUmlnaHQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWU6OmFkanVzdFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWlu
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRCb3JkZXJPbmx5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWludERlY29yYXRpb25zKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
OjphZGp1c3RJbnB1dEZpZWxkU3BlZWNoQnV0dG9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWU6OnBhaW50SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hy
b21pdW1NYWM6On5SZW5kZXJUaGVtZUNocm9taXVtTWFjKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbik6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjp+UmVuZGVyVGhlbWVDaHJvbWl1bVNraWEp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OmFkanVzdElucHV0
RmllbGRTcGVlY2hCdXR0b25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNo
cm9taXVtU2tpYTo6cGFpbnRJbnB1dEZpZWxkU3BlZWNoQnV0dG9uKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3BlZWNoQnV0dG9uU2l6ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmFkanVzdElucHV0RmllbGRTcGVlY2hCdXR0
b25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRJbnB1dEZp
ZWxkU3BlZWNoQnV0dG9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVs
ZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVt
ZW50OjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgor
ICAgICAgICAqIHJlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoKKyAgICAgICAgKFdlYkNv
cmU6Oik6CisKIDIwMTAtMDYtMTYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9XZWJDb3JlL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDViNTI3OTMxZmUyYTBjNzA2ZGMyMGEy
NDNmYjMyNjk3N2JhNDAwMmYuLjA4ZDllZjljNDBkY2M1ZDZkMGJjNjM5M2ZiN2I1MjJkMGE0ZmE5
NGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKKysrIGIvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwpAQCAtNTcsNiArNTcsNyBAQCBFTkFCTEVfR0VPTE9DQVRJT04gPSBFTkFCTEVfR0VPTE9DQVRJ
T047CiBFTkFCTEVfSUNPTkRBVEFCQVNFID0gRU5BQkxFX0lDT05EQVRBQkFTRTsKIEVOQUJMRV9J
TUFHRV9SRVNJWkVSID0gOwogRU5BQkxFX0lOREVYRURfREFUQUJBU0UgPSA7CitFTkFCTEVfSU5Q
VVRfU1BFRUNIID0gOwogRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIgPSBFTkFCTEVfSkFWQVND
UklQVF9ERUJVR0dFUjsKIEVOQUJMRV9NQVRITUwgPSA7CiBFTkFCTEVfTUVURVJfVEFHID0gRU5B
QkxFX01FVEVSX1RBRzsKQEAgLTgxLDQgKzgyLDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFC
TEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1G
RUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNEX1JFTkRFUklO
RykgJChFTkFCTEVfQkxPQl9TTElDRSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5B
QkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxF
X0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJ
TFRFUlMpICQoRU5BQkxFX0ZJTEVfUkVBREVSKSAkKEVOQUJMRV9GSUxFX1dSSVRFUikgJChFTkFC
TEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVT
SVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJV
R0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElG
SUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJP
R1JFU1NfVEFHKSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJMRV9TQU5EQk9YKSAkKEVOQUJMRV9TSEFS
RURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJM
RV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVf
U1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0Up
ICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV01MKSAkKEVO
QUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVf
WFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNE
X1JFTkRFUklORykgJChFTkFCTEVfQkxPQl9TTElDRSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJ
TkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0Up
ICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQo
RU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfUkVBREVSKSAkKEVOQUJMRV9GSUxFX1dSSVRF
UikgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVf
SU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRf
U1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQo
RU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkp
ICQoRU5BQkxFX1NBTkRCT1gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcp
ICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVf
U1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19G
T1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hI
VE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDQ5YTFjOGI1
OTlkNDYyMTFlN2VhM2U4M2U3ZDFkNzViYmEwYjRmMjkuLmYwMDQyZTA3OTRiMDM3ZGY2ODJjZWI5
OWE0MWRmMTkwZTkzOGRiYWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysr
IGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjU4NSw2ICsyNTg1LDE3IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5oCiBlbmRp
ZiAjIEVORCBFTkFCTEVfRE9NX1NUT1JBR0UKIAorIyAtLS0tDQorIyBTcGVlY2ggSW5wdXQgQVBJ
IHN1cHBvcnQNCisjIC0tLS0NCitpZiBFTkFCTEVfSU5QVVRfU1BFRUNIDQorRkVBVFVSRV9ERUZJ
TkVTICs9IEVOQUJMRV9JTlBVVF9TUEVFQ0g9MQ0KKw0KK0hUTUxfRkVBVFVSRSArPSBFTkFCTEVf
SU5QVVRfU1BFRUNIPTENCit3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX0lOUFVUX1NQRUVD
SD0xDQorDQorZW5kaWYgIyBFTkQgRU5BQkxFX0lOUFVUX1NQRUVDSAorCiAjIC0tLS0KICMgSWNv
biBEYXRhYmFzZSBTdXBwb3J0CiAjIC0tLS0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5n
eXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMGMwZjU4MGI1NmY3YjNkZWY5NzcyZTAx
NmYwZjlmZmNhZGIxYjgyNi4uMTU2OGJmNjgzZDY5ZjZmMGQ0MjdjZGQwZjI0M2FiM2EzOWViNDZl
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKQEAgLTMxNTQsNiArMzE1NCw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRl
ckltYWdlR2VuZXJhdGVkQ29udGVudC5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlcklubGluZS5oJywKKyAg
ICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVySW5wdXRTcGVlY2hDaHJvbWl1bS5jcHAnLAorICAg
ICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJJbnB1dFNwZWVjaENocm9taXVtLmgnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBp
bmdzLmggYi9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggZjY0
NmIyOWU0MzAwOTkwNjU2NTM4ZGVmN2JkZTkzNzFkYjdjY2M2Ni4uNWJjZjAxOTVjYjVhMTViNGE4
MTNkYTNjM2M2MzJlNTA5MzVjMzJjMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaApAQCAtMzQ0LDYgKzM0NCwxMSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkKICAgICAgICAgY2FzZSBD
YXBzTG9ja0luZGljYXRvclBhcnQ6CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVDYXBzTG9ja0luZGljYXRvcjsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIElu
cHV0U3BlZWNoUGFydDoKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgICAgICAgICAgbV92
YWx1ZS5pZGVudCA9IENTU1ZhbHVlSW5wdXRTcGVlY2g7CisjZW5kaWYKKyAgICAgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3Bw
IGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IDhlOThhM2ZkYjVhZmUzMWMxZTBi
NDU5YTJiMTM0YTk1M2U2Y2QyZDguLmQ5Zjk1OGEyYjEzMWEzYTMwZDc1NzI4ZDViYzNiM2ZmN2Zl
M2Q2MWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKQEAgLTEwNSw2ICsxMDUsMTAgQEAgUHNldWRvSWQgQ1NT
U2VsZWN0b3I6OnBzZXVkb0lkKFBzZXVkb1R5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIEFGVEVS
OwogICAgIGNhc2UgUHNldWRvRmlsZVVwbG9hZEJ1dHRvbjoKICAgICAgICAgcmV0dXJuIEZJTEVf
VVBMT0FEX0JVVFRPTjsKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIGNhc2UgUHNldWRv
SW5wdXRTcGVlY2hTdGF0dXM6CisgICAgICAgIHJldHVybiBJTlBVVF9TUEVFQ0hfU1RBVFVTOwor
I2VuZGlmCiAgICAgY2FzZSBQc2V1ZG9JbnB1dFBsYWNlaG9sZGVyOgogICAgICAgICByZXR1cm4g
SU5QVVRfUExBQ0VIT0xERVI7CiAgICAgY2FzZSBQc2V1ZG9TbGlkZXJUaHVtYjoKQEAgLTI0OSw2
ICsyNTMsOSBAQCBzdGF0aWMgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgQ1NTU2VsZWN0b3I6
OlBzZXVkb1R5cGU+KiBuYW1lVG9Qc2V1ZG9UeXBlTWFwKAogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBiZWZvcmUsICgiYmVmb3JlIikpOwogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBjaGVja2VkLCAoImNoZWNrZWQiKSk7CiAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGVVcGxvYWRCdXR0b24sICgiLXdlYmtpdC1maWxl
LXVwbG9hZC1idXR0b24iKSk7CisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaW5wdXRTcGVlY2hTdGF0dXMsICgiLXdlYmtpdC1p
bnB1dC1zcGVlY2gtc3RhdHVzIikpOworI2VuZGlmCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGRlZmF1bHRTdHJpbmcsICgiZGVmYXVsdCIpKTsKICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgZGlzYWJsZWQsICgiZGlzYWJsZWQiKSk7CiAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWRPbmx5LCAoInJlYWQtb25seSIpKTsK
QEAgLTM0Nyw2ICszNTQsOSBAQCBzdGF0aWMgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgQ1NT
U2VsZWN0b3I6OlBzZXVkb1R5cGU+KiBuYW1lVG9Qc2V1ZG9UeXBlTWFwKAogICAgICAgICBuYW1l
VG9Qc2V1ZG9UeXBlLT5zZXQoYmVmb3JlLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0JlZm9y
ZSk7CiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChjaGVja2VkLmltcGwoKSwgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NoZWNrZWQpOwogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQoZmls
ZVVwbG9hZEJ1dHRvbi5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9GaWxlVXBsb2FkQnV0dG9u
KTsKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5z
ZXQoaW5wdXRTcGVlY2hTdGF0dXMuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvSW5wdXRTcGVl
Y2hTdGF0dXMpOworI2VuZGlmCiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChkZWZhdWx0
U3RyaW5nLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0RlZmF1bHQpOwogICAgICAgICBuYW1l
VG9Qc2V1ZG9UeXBlLT5zZXQoZGlzYWJsZWQuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvRGlz
YWJsZWQpOwogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQocmVhZE9ubHkuaW1wbCgpLCBD
U1NTZWxlY3Rvcjo6UHNldWRvUmVhZE9ubHkpOwpAQCAtNDY0LDYgKzQ3NCw5IEBAIHZvaWQgQ1NT
U2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3QKICAgICBjYXNlIFBzZXVkb0ZpcnN0
TGluZToKICAgICAgICAgY29tcGF0ID0gdHJ1ZTsKICAgICBjYXNlIFBzZXVkb0ZpbGVVcGxvYWRC
dXR0b246CisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICBjYXNlIFBzZXVkb0lucHV0U3Bl
ZWNoU3RhdHVzOgorI2VuZGlmCiAgICAgY2FzZSBQc2V1ZG9JbnB1dExpc3RCdXR0b246CiAgICAg
Y2FzZSBQc2V1ZG9JbnB1dFBsYWNlaG9sZGVyOgogICAgIGNhc2UgUHNldWRvSW5uZXJTcGluQnV0
dG9uOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmgKaW5kZXggZWIwNzA3OGVmZDQ3NGNmNGE4OGZiNDY0YzgyNjU2ZGNjZDcx
ZDQ3My4uMzhlYzdlMjQ4OGZmNGZiYmJiZjNlMzYwYzYzOTVkMWM1ZDM5MDljZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5oCkBAIC0xODgsNiArMTg4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAg
UHNldWRvTWVkaWFDb250cm9sc1N0YXR1c0Rpc3BsYXksCiAgICAgICAgICAgICBQc2V1ZG9NZWRp
YUNvbnRyb2xzRnVsbHNjcmVlbkJ1dHRvbiwKICAgICAgICAgICAgIFBzZXVkb0lucHV0TGlzdEJ1
dHRvbiwKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgICAgICAgICAgUHNldWRvSW5wdXRT
cGVlY2hTdGF0dXMsCisjZW5kaWYKICAgICAgICAgICAgIFBzZXVkb0lubmVyU3BpbkJ1dHRvbiwK
ICAgICAgICAgICAgIFBzZXVkb091dGVyU3BpbkJ1dHRvbiwKICAgICAgICAgICAgIFBzZXVkb1By
b2dyZXNzQmFyVmFsdWUsCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluIGIvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCAxNTQxODNiNTQ0NTgz
ZmU1YmY3MjYyMzc2N2Y3ZGI1ZmUxMzNkNWMzLi44ZWRjODk1YWNlZGVjYTJmOGY3OTBlZGEyMzgw
YTlhNDU0ODk1NmViIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CisrKyBiL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTU2Niw2ICs1NjYsNyBA
QCBidXR0b24KIGJ1dHRvbi1iZXZlbAogZGVmYXVsdC1idXR0b24KIGlubmVyLXNwaW4tYnV0dG9u
CitpbnB1dC1zcGVlY2gKIGxpc3QtYnV0dG9uCiBsaXN0Ym94CiBsaXN0aXRlbQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9jc3MvaHRtbC5jc3MgYi9XZWJDb3JlL2Nzcy9odG1sLmNzcwppbmRleCBmZTI4
NTI4NzBjYzdjZGRlZTM4YzczODAwYTkwYjg5MzdjOWI4ODU2Li4yMmZmMTkyMzA1YmJiY2Y4N2M3
MjFjYjM5NDBiMGM4ZWI4OWQxOTI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9odG1sLmNzcwor
KysgYi9XZWJDb3JlL2Nzcy9odG1sLmNzcwpAQCAtMzcyLDYgKzM3MiwxMSBAQCBpbnB1dDo6LXdl
YmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7CiAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsK
IH0KIAoraW5wdXQ6Oi13ZWJraXQtaW5wdXQtc3BlZWNoLXN0YXR1cyB7CisgICAgLXdlYmtpdC1h
cHBlYXJhbmNlOiBpbnB1dC1zcGVlY2g7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworfQor
CiB0ZXh0YXJlYSB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0YXJlYTsKICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiB3aGl0ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVu
dC5oIGIvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKaW5kZXggZDQ3NzA0NjQ0YmFiOTc2NjE4
ODQ0ZGY2Njk0MmVkOWVkMzYyZjBhNS4uNzRkZTVmODQ2NmJhYTM1ZDEzZjI5ODJhODU4MmQxZTUx
MTI2ODQwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKKysrIGIvV2Vi
Q29yZS9kb20vSW5wdXRFbGVtZW50LmgKQEAgLTQ0LDYgKzQ0LDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBp
c1RleHRGaWVsZCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU3BpbkJ1dHRvbigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICB2
aXJ0dWFsIGJvb2wgaXNTcGVlY2hFbmFibGVkKCkgY29uc3QgPSAwOworI2VuZGlmCiAKICAgICB2
aXJ0dWFsIGJvb2wgc2VhcmNoRXZlbnRzU2hvdWxkQmVEaXNwYXRjaGVkKCkgY29uc3QgPSAwOwog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvV2ViQ29y
ZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgppbmRleCA5MGIyNDlhNGExNzRkYjJmM2M0NjVl
ZDRmYjg3YmU2OTYyOGFiNmE0Li5lYmNhZmMzMTNkMDE3MmIxMTA4YWVlZWFkOTU4NmFjOGI1YTQy
MDYzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KQEAgLTI1NCw2ICsyNTQsNyBAQCBz
aXplCiBzb3J0YWJsZQogc29ydGRpcmVjdGlvbgogc3Bhbgorc3BlZWNoCiBzcGVsbGNoZWNrCiBz
cmMKIHN0YW5kYnkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAzZDMzZmY4YjhhMTgz
N2MzMmMzMTk1ZTcxZWE3N2NlNmQ5NTY5MjBiLi5mODczZDM5ODI2NmFhZjMxNzdhNjBmOTgyZGNj
OWNhYmU3ZjUzNGY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0yODE2LDYgKzI4
MTYsMzMgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRXYXBJbnB1dEZvcm1hdChTdHJpbmcm
IG1hc2spCiB9CiAjZW5kaWYKIAotCisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKK2Jvb2wgSFRN
TElucHV0RWxlbWVudDo6aXNTcGVlY2hFbmFibGVkKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKGlu
cHV0VHlwZSgpKSB7CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2Fz
ZSBTRUFSQ0g6CisgICAgY2FzZSBOVU1CRVI6CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAgICAg
IHJldHVybiBoYXNBdHRyaWJ1dGUoc3BlZWNoQXR0cik7CisgICAgLyogRklYTUUoc2F0aXNoKTog
RW5hYmxlIHRoZSBmb2xsb3dpbmcgYXMgdGhlIHJlbmRlcmVycyBhcmUgdXBkYXRlZCB0byBpbmNs
dWRlIHNwZWVjaCBVSS4KKyAgICBjYXNlIFJBTkdFOgorICAgIGNhc2UgRU1BSUw6CisgICAgY2Fz
ZSBVUkw6CisgICAgY2FzZSBDT0xPUjoKKyAgICBjYXNlIERBVEU6CisgICAgY2FzZSBEQVRFVElN
RToKKyAgICBjYXNlIERBVEVUSU1FTE9DQUw6CisgICAgY2FzZSBNT05USDoKKyAgICBjYXNlIFRJ
TUU6CisgICAgY2FzZSBXRUVLOgorICAgICovCisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggYTlhN2JiMGUyZTU2ODUwNzNiOTdlODUwOGNlYWU3
YTBhMjU5MGU2ZC4uMjc3OTY2MThlNjdjNjcwYjk2YjZiZDA0N2E0MjAwOGZlZWRlMjkxOCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0xMDUsNiArMTA1LDkgQEAgcHVibGljOgogICAgIGJv
b2wgaXNOdW1iZXJGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBOVU1CRVI7IH0KICAg
ICBib29sIGlzRW1haWxGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBFTUFJTDsgfQog
ICAgIGJvb2wgaXNVcmxGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBVUkw7IH0KKyNp
ZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIHZpcnR1YWwgYm9vbCBpc1NwZWVjaEVuYWJsZWQo
KSBjb25zdDsKKyNlbmRpZgogCiAgICAgYm9vbCBjaGVja2VkKCkgY29uc3QgeyByZXR1cm4gbV9j
aGVja2VkOyB9CiAgICAgdm9pZCBzZXRDaGVja2VkKGJvb2wsIGJvb2wgc2VuZENoYW5nZUV2ZW50
ID0gZmFsc2UpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaAppbmRleCA3MzE0ZmJhZDMzZThiNjdiM2FkNTUz
NDcwYjljZGUyMDI3MjI5Y2ZhLi42OGI3Mjc3MzMyZTc2YWVhY2MyMjFmNWJkMzQ3MGNiMmNhNDMw
NTk2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaApAQCAtNDcsNyArNDcsNyBAQCB0eXBlZGVmIHVuc2ln
bmVkIENvbnRyb2xTdGF0ZXM7CiAvLyBNdXN0IGZvbGxvdyBDU1NWYWx1ZUtleXdvcmRzLmluIG9y
ZGVyCiBlbnVtIENvbnRyb2xQYXJ0IHsKICAgICBOb0NvbnRyb2xQYXJ0LCBDaGVja2JveFBhcnQs
IFJhZGlvUGFydCwgUHVzaEJ1dHRvblBhcnQsIFNxdWFyZUJ1dHRvblBhcnQsIEJ1dHRvblBhcnQs
Ci0gICAgQnV0dG9uQmV2ZWxQYXJ0LCBEZWZhdWx0QnV0dG9uUGFydCwgSW5uZXJTcGluQnV0dG9u
UGFydCwgTGlzdEJ1dHRvblBhcnQsIExpc3Rib3hQYXJ0LCBMaXN0SXRlbVBhcnQsCisgICAgQnV0
dG9uQmV2ZWxQYXJ0LCBEZWZhdWx0QnV0dG9uUGFydCwgSW5uZXJTcGluQnV0dG9uUGFydCwgSW5w
dXRTcGVlY2hQYXJ0LCBMaXN0QnV0dG9uUGFydCwgTGlzdGJveFBhcnQsIExpc3RJdGVtUGFydCwK
ICAgICBNZWRpYUZ1bGxzY3JlZW5CdXR0b25QYXJ0LCBNZWRpYU11dGVCdXR0b25QYXJ0LCBNZWRp
YVBsYXlCdXR0b25QYXJ0LCBNZWRpYVNlZWtCYWNrQnV0dG9uUGFydCwgCiAgICAgTWVkaWFTZWVr
Rm9yd2FyZEJ1dHRvblBhcnQsIE1lZGlhUmV3aW5kQnV0dG9uUGFydCwgTWVkaWFSZXR1cm5Ub1Jl
YWx0aW1lQnV0dG9uUGFydCwgTWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvblBhcnQsCiAg
ICAgTWVkaWFTbGlkZXJQYXJ0LCBNZWRpYVNsaWRlclRodW1iUGFydCwgTWVkaWFWb2x1bWVTbGlk
ZXJDb250YWluZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclBhcnQsIE1lZGlhVm9sdW1lU2xpZGVy
VGh1bWJQYXJ0LApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5wdXRTcGVl
Y2hDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbnB1dFNwZWVjaENocm9t
aXVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kN2VlYTRkMTA0NzEwZTRlZjQ0MmZmZmE5NTIxZWIyYTBkNjYw
ZmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5wdXRTcGVl
Y2hDaHJvbWl1bS5jcHAKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorI2luY2x1ZGUgIlJlbmRlcklucHV0U3Bl
ZWNoQ2hyb21pdW0uaCIKKworI2luY2x1ZGUgIkdyYWRpZW50LmgiCisjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxNZWRpYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJSZW5k
ZXJCb3guaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0eXBlZGVmIFdURjo6SGFzaE1hcDxj
b25zdCBjaGFyKiwgSW1hZ2UqPiBJbnB1dFNwZWVjaEltYWdlTWFwOworc3RhdGljIElucHV0U3Bl
ZWNoSW1hZ2VNYXAqIGdJbnB1dFNwZWVjaEltYWdlTWFwID0gMDsKKworc3RhdGljIEltYWdlKiBw
bGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIqIG5hbWUpCit7CisgICAgaWYgKCFnSW5wdXRTcGVl
Y2hJbWFnZU1hcCkKKyAgICAgICAgZ0lucHV0U3BlZWNoSW1hZ2VNYXAgPSBuZXcgSW5wdXRTcGVl
Y2hJbWFnZU1hcCgpOworICAgIGlmIChJbWFnZSogaW1hZ2UgPSBnSW5wdXRTcGVlY2hJbWFnZU1h
cC0+Z2V0KG5hbWUpKQorICAgICAgICByZXR1cm4gaW1hZ2U7CisgICAgaWYgKEltYWdlKiBpbWFn
ZSA9IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShuYW1lKS5yZWxlYXNlUmVmKCkpIHsKKyAg
ICAgICAgZ0lucHV0U3BlZWNoSW1hZ2VNYXAtPnNldChuYW1lLCBpbWFnZSk7CisgICAgICAgIHJl
dHVybiBpbWFnZTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IDA7Cit9CisKK3ZvaWQgUmVuZGVySW5wdXRTcGVlY2hDaHJvbWl1bTo6cmVsZWFzZUltYWdlcygp
Cit7CisgICAgZm9yIChJbnB1dFNwZWVjaEltYWdlTWFwOjppdGVyYXRvciBpdCA9IGdJbnB1dFNw
ZWVjaEltYWdlTWFwLT5iZWdpbigpOyBpdCAhPSBnSW5wdXRTcGVlY2hJbWFnZU1hcC0+ZW5kKCk7
ICsraXQpCisgICAgICAgICgqaXQpLnNlY29uZC0+ZGVyZWYoKTsKKyAgICBkZWxldGUgZ0lucHV0
U3BlZWNoSW1hZ2VNYXA7CisgICAgZ0lucHV0U3BlZWNoSW1hZ2VNYXAgPSAwOworfQorCitib29s
IFJlbmRlcklucHV0U3BlZWNoQ2hyb21pdW06OnBhaW50SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbihS
ZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICAvLyBHZXQgdGhlIHJlbmRlcmVyIG9m
IDxpbnB1dD4gZWxlbWVudC4KKyAgICBOb2RlKiBpbnB1dCA9IG9iamVjdC0+bm9kZSgpLT5zaGFk
b3dBbmNlc3Rvck5vZGUoKTsKKyAgICBpZiAoIWlucHV0LT5yZW5kZXJlcigpLT5pc0JveCgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgUmVuZGVyQm94KiBpbnB1dFJlbmRlckJveCA9IHRv
UmVuZGVyQm94KGlucHV0LT5yZW5kZXJlcigpKTsKKyAgICBJbnRSZWN0IGlucHV0Q29udGVudEJv
eCA9IGlucHV0UmVuZGVyQm94LT5jb250ZW50Qm94UmVjdCgpOworCisgICAgLy8gTWFrZSBzdXJl
IHRoZSBzY2FsZWQgYnV0dG9uIHN0YXlzIHNxdWFyZSBhbmQgd2lsbCBmaXQgaW4gaXRzIHBhcmVu
dCdzIGJveC4KKyAgICBpbnQgYnV0dG9uU2l6ZSA9IHN0ZDo6bWluKGlucHV0Q29udGVudEJveC53
aWR0aCgpLCBzdGQ6Om1pbihpbnB1dENvbnRlbnRCb3guaGVpZ2h0KCksIHJlY3QuaGVpZ2h0KCkp
KTsKKyAgICAvLyBDYWxjdWxhdGUgYnV0dG9uJ3MgY29vcmRpbmF0ZXMgcmVsYXRpdmUgdG8gdGhl
IGlucHV0IGVsZW1lbnQuCisgICAgLy8gQ2VudGVyIHRoZSBidXR0b24gdmVydGljYWxseS4gIFJv
dW5kIHVwIHRob3VnaCwgc28gaWYgaXQgaGFzIHRvIGJlIG9uZSBwaXhlbCBvZmYtY2VudGVyLCBp
dCB3aWxsCisgICAgLy8gYmUgb25lIHBpeGVsIGNsb3NlciB0byB0aGUgYm90dG9tIG9mIHRoZSBm
aWVsZC4gIFRoaXMgdGVuZHMgdG8gbG9vayBiZXR0ZXIgd2l0aCB0aGUgdGV4dC4KKyAgICBJbnRS
ZWN0IGJ1dHRvblJlY3Qob2JqZWN0LT5vZmZzZXRGcm9tQW5jZXN0b3JDb250YWluZXIoaW5wdXRS
ZW5kZXJCb3gpLndpZHRoKCksCisgICAgICAgICAgICAgICAgICAgICAgIGlucHV0Q29udGVudEJv
eC55KCkgKyAoaW5wdXRDb250ZW50Qm94LmhlaWdodCgpIC0gYnV0dG9uU2l6ZSArIDEpIC8gMiwK
KyAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uU2l6ZSwgYnV0dG9uU2l6ZSk7CisKKyAgICAv
LyBDb21wdXRlIGFuIG9mZnNldCBiZXR3ZWVuIHRoZSBwYXJ0IHJlbmRlcmVyIGFuZCB0aGUgaW5w
dXQgcmVuZGVyZXIuCisgICAgSW50U2l6ZSBvZmZzZXRGcm9tSW5wdXRSZW5kZXJlciA9IC0ob2Jq
ZWN0LT5vZmZzZXRGcm9tQW5jZXN0b3JDb250YWluZXIoaW5wdXRSZW5kZXJCb3gpKTsKKyAgICAv
LyBNb3ZlIHRoZSByZWN0IGludG8gcGFydFJlbmRlcmVyJ3MgY29vcmRzLgorICAgIGJ1dHRvblJl
Y3QubW92ZShvZmZzZXRGcm9tSW5wdXRSZW5kZXJlcik7CisgICAgLy8gQWNjb3VudCBmb3IgdGhl
IGxvY2FsIGRyYXdpbmcgb2Zmc2V0LgorICAgIGJ1dHRvblJlY3QubW92ZShyZWN0LngoKSwgcmVj
dC55KCkpOworCisgICAgc3RhdGljIEltYWdlKiBpbnB1dFNwZWVjaCA9IHBsYXRmb3JtUmVzb3Vy
Y2UoImlucHV0U3BlZWNoIik7CisgICAgcGFpbnRJbmZvLmNvbnRleHQtPmRyYXdJbWFnZShpbnB1
dFNwZWVjaCwgb2JqZWN0LT5zdHlsZSgpLT5jb2xvclNwYWNlKCksIGJ1dHRvblJlY3QpOworCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoSU5QVVRfU1BFRUNIKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5wdXRTcGVlY2hDaHJvbWl1bS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5wdXRT
cGVlY2hDaHJvbWl1bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzYTQ0Yzc2NTUzMTVlOTk2MTQzMzQwYjQyODEw
Y2JiNjQxNzIzNzMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bnB1dFNwZWVjaENocm9taXVtLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJl
bmRlcklucHV0U3BlZWNoQ2hyb21pdW1faAorI2RlZmluZSBSZW5kZXJJbnB1dFNwZWVjaENocm9t
aXVtX2gKKworI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorCisjaWYgRU5BQkxFKElOUFVUX1NQ
RUVDSCkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJJbnB1dFNwZWVjaENo
cm9taXVtIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBwYWludElucHV0RmllbGRTcGVlY2hC
dXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0Jik7CisgICAgc3RhdGljIHZvaWQgcmVsZWFzZUltYWdlcygpOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKyNlbmRpZiAvLyBSZW5kZXJJbnB1dFNwZWVj
aENocm9taXVtX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUuY3BwCmluZGV4IDJkYmZiOWY2ZjUwYzllZWNmOTA3YjAyYzUxOTdkN2YzNDk5ZWFi
YmYuLjhmNzAyZmIzMWFhODgwNDVjNjI1ZWIxYjNjNzc2OTgyM2Q2NDliNGMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtMjg4
LDkgKzI4OCwxMyBAQCBib29sIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6bm9kZUF0UG9p
bnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdAogICAgIC8vIElmIHdlIGZvdW5k
IGEgc3BpbiBidXR0b24sIHdlJ3JlIGRvbmUuCiAgICAgaWYgKG1fb3V0ZXJTcGluQnV0dG9uICYm
IHJlc3VsdC5pbm5lck5vZGUoKSA9PSBtX291dGVyU3BpbkJ1dHRvbikKICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgLy8gSWYgd2UncmUgbm90IGEgc2VhcmNoIGZpZWxkLCBvciB3ZSBhbHJlYWR5
IGZvdW5kIHRoZSByZXN1bHRzIG9yIGNhbmNlbCBidXR0b25zLCB3ZSdyZSBkb25lLgorICAgIC8v
IElmIHdlJ3JlIG5vdCBhIHNlYXJjaCBmaWVsZCwgb3Igd2UgYWxyZWFkeSBmb3VuZCB0aGUgc3Bl
ZWNoLCByZXN1bHRzIG9yIGNhbmNlbCBidXR0b25zLCB3ZSdyZSBkb25lLgogICAgIGlmICghbV9p
bm5lckJsb2NrIHx8IHJlc3VsdC5pbm5lck5vZGUoKSA9PSBtX3Jlc3VsdHNCdXR0b24gfHwgcmVz
dWx0LmlubmVyTm9kZSgpID09IG1fY2FuY2VsQnV0dG9uKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
KyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIGlmIChtX2lubmVyQmxvY2sgJiYgbV9zcGVl
Y2hCdXR0b24gJiYgcmVzdWx0LmlubmVyTm9kZSgpID09IG1fc3BlZWNoQnV0dG9uKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgogCiAgICAgTm9kZSogaW5uZXJOb2RlID0gMDsKICAgICBS
ZW5kZXJCb3gqIGlubmVyQmxvY2tSZW5kZXJlciA9IG1faW5uZXJCbG9jay0+cmVuZGVyQm94KCk7
CkBAIC0zMDMsNiArMzA3LDE5IEBAIGJvb2wgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpu
b2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0CiAgICAgaWYgKG1f
cmVzdWx0c0J1dHRvbiAmJiBtX3Jlc3VsdHNCdXR0b24tPnJlbmRlcmVyKCkgJiYgeFBvcyA8IHRl
eHRMZWZ0KQogICAgICAgICBpbm5lck5vZGUgPSBtX3Jlc3VsdHNCdXR0b24uZ2V0KCk7CiAKKyNp
ZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIGlmICghaW5uZXJOb2RlICYmIG1fc3BlZWNoQnV0
dG9uICYmIG1fc3BlZWNoQnV0dG9uLT5yZW5kZXJlcigpKSB7CisgICAgICAgIGludCBidXR0b25M
ZWZ0ID0gdGV4dExlZnQgKyBpbm5lclRleHRSZW5kZXJlci0+d2lkdGgoKTsKKyAgICAgICAgaWYg
KG1fY2FuY2VsQnV0dG9uKSB7CisgICAgICAgICAgICBSZW5kZXJCb3gqIGNhbmNlbFJlbmRlcmVy
ID0gbV9jYW5jZWxCdXR0b24tPnJlbmRlckJveCgpOworICAgICAgICAgICAgY2FuY2VsUmVuZGVy
ZXItPmNhbGNXaWR0aCgpOworICAgICAgICAgICAgYnV0dG9uTGVmdCArPSBjYW5jZWxSZW5kZXJl
ci0+d2lkdGgoKSArIGNhbmNlbFJlbmRlcmVyLT5tYXJnaW5MZWZ0KCkgKyBjYW5jZWxSZW5kZXJl
ci0+bWFyZ2luUmlnaHQoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoeFBvcyA+IGJ1dHRvbkxl
ZnQpCisgICAgICAgICAgICBpbm5lck5vZGUgPSBtX3NwZWVjaEJ1dHRvbi5nZXQoKTsKKyAgICB9
CisjZW5kaWYKKwogICAgIGlmICghaW5uZXJOb2RlKSB7CiAgICAgICAgIGludCB0ZXh0UmlnaHQg
PSB0ZXh0TGVmdCArIGlubmVyVGV4dFJlbmRlcmVyLT53aWR0aCgpOwogICAgICAgICBpZiAobV9j
YW5jZWxCdXR0b24gJiYgbV9jYW5jZWxCdXR0b24tPnJlbmRlcmVyKCkgJiYgeFBvcyA+IHRleHRS
aWdodCkKQEAgLTMzOSw4ICszNTYsMjAgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmU6OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQpCiAKICAgICBGbG9hdFBvaW50IGxvY2FsUG9p
bnQgPSBpbm5lclRleHRSZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHN0YXRpY19jYXN0PE1vdXNl
RXZlbnQqPihldmVudCktPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpOwogICAgIGlu
dCB0ZXh0UmlnaHQgPSBpbm5lclRleHRSZW5kZXJlci0+Ym9yZGVyQm94UmVjdCgpLnJpZ2h0KCk7
CisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICBpbnQgY2FuY2VsUmlnaHQgPSB0ZXh0Umln
aHQ7CisgICAgaWYgKG1fY2FuY2VsQnV0dG9uICYmIG1fY2FuY2VsQnV0dG9uLT5yZW5kZXJCb3go
KSkgeworICAgICAgICBSZW5kZXJCb3gqIGNhbmNlbFJlbmRlcmVyID0gbV9jYW5jZWxCdXR0b24t
PnJlbmRlckJveCgpOworICAgICAgICBjYW5jZWxSaWdodCArPSBjYW5jZWxSZW5kZXJlci0+d2lk
dGgoKSArIGNhbmNlbFJlbmRlcmVyLT5tYXJnaW5MZWZ0KCkgKyBjYW5jZWxSZW5kZXJlci0+bWFy
Z2luUmlnaHQoKTsKKyAgICB9CisjZW5kaWYKKwogICAgIGlmIChtX3Jlc3VsdHNCdXR0b24gJiYg
bG9jYWxQb2ludC54KCkgPCBpbm5lclRleHRSZW5kZXJlci0+Ym9yZGVyQm94UmVjdCgpLngoKSkK
ICAgICAgICAgbV9yZXN1bHRzQnV0dG9uLT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyNp
ZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIGVsc2UgaWYgKG1fc3BlZWNoQnV0dG9uICYmIGxv
Y2FsUG9pbnQueCgpID4gY2FuY2VsUmlnaHQpCisgICAgICAgIG1fc3BlZWNoQnV0dG9uLT5kZWZh
dWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyNlbmRpZgogICAgIGVsc2UgaWYgKG1fY2FuY2VsQnV0
dG9uICYmIGxvY2FsUG9pbnQueCgpID4gdGV4dFJpZ2h0KQogICAgICAgICBtX2NhbmNlbEJ1dHRv
bi0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiAgICAgZWxzZSBpZiAobV9vdXRlclNwaW5C
dXR0b24gJiYgbG9jYWxQb2ludC54KCkgPiB0ZXh0UmlnaHQpCkBAIC0zNzAsNiArMzk5LDExIEBA
IHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdHlsZURpZENoYW5nZShTdHlsZURp
ZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuCiAgICAgaWYgKFJlbmRlck9iamVjdCogc3BpblJlbmRl
cmVyID0gbV9vdXRlclNwaW5CdXR0b24gPyBtX291dGVyU3BpbkJ1dHRvbi0+cmVuZGVyZXIoKSA6
IDApCiAgICAgICAgIHNwaW5SZW5kZXJlci0+c2V0U3R5bGUoY3JlYXRlT3V0ZXJTcGluQnV0dG9u
U3R5bGUoKSk7CiAKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIGlmIChSZW5kZXJPYmpl
Y3QqIHNwZWVjaFJlbmRlcmVyID0gbV9zcGVlY2hCdXR0b24gPyBtX3NwZWVjaEJ1dHRvbi0+cmVu
ZGVyZXIoKSA6IDApCisgICAgICAgIHNwZWVjaFJlbmRlcmVyLT5zZXRTdHlsZShjcmVhdGVTcGVl
Y2hCdXR0b25TdHlsZShzdHlsZSgpKSk7CisjZW5kaWYKKwogICAgIHNldEhhc092ZXJmbG93Q2xp
cChmYWxzZSk7CiB9CiAKQEAgLTM5Nyw5ICs0MzEsMTkgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmU6OmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpCiAgICAgfQogfQogCiti
b29sIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6aGFzQ29udHJvbENsaXAoKSBjb25zdAor
eworICAgIGJvb2wgY2xpcCA9IG1fY2FuY2VsQnV0dG9uOworI2lmIEVOQUJMRShJTlBVVF9TUEVF
Q0gpCisgICAgaWYgKG1fc3BlZWNoQnV0dG9uKQorICAgICAgICBjbGlwID0gdHJ1ZTsKKyNlbmRp
ZgorICAgIHJldHVybiBjbGlwOworfQorCiBJbnRSZWN0IFJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZTo6Y29udHJvbENsaXBSZWN0KGludCB0eCwgaW50IHR5KSBjb25zdAogewotICAgIC8vIFRo
aXMgc2hvdWxkIG9ubHkgZ2V0IGNhbGxlZCBmb3Igc2VhcmNoIGlucHV0cy4KKyAgICAvLyBUaGlz
IHNob3VsZCBvbmx5IGdldCBjYWxsZWQgZm9yIHNlYXJjaCAmIHNwZWVjaCBpbnB1dHMuCiAgICAg
QVNTRVJUKGhhc0NvbnRyb2xDbGlwKCkpOwogCiAgICAgSW50UmVjdCBjbGlwUmVjdCA9IEludFJl
Y3QobV9pbm5lckJsb2NrLT5yZW5kZXJCb3goKS0+ZnJhbWVSZWN0KCkpOwpAQCAtNDIxLDYgKzQ2
NSwxMyBAQCBpbnQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp0ZXh0QmxvY2tXaWR0aCgp
IGNvbnN0CiAgICAgICAgIHdpZHRoIC09IGNhbmNlbFJlbmRlcmVyLT53aWR0aCgpICsgY2FuY2Vs
UmVuZGVyZXItPm1hcmdpbkxlZnQoKSArIGNhbmNlbFJlbmRlcmVyLT5tYXJnaW5SaWdodCgpOwog
ICAgIH0KIAorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAgaWYgKFJlbmRlckJveCogc3Bl
ZWNoUmVuZGVyZXIgPSBtX3NwZWVjaEJ1dHRvbiA/IG1fc3BlZWNoQnV0dG9uLT5yZW5kZXJCb3go
KSA6IDApIHsKKyAgICAgICAgc3BlZWNoUmVuZGVyZXItPmNhbGNXaWR0aCgpOworICAgICAgICB3
aWR0aCAtPSBzcGVlY2hSZW5kZXJlci0+d2lkdGgoKSArIHNwZWVjaFJlbmRlcmVyLT5tYXJnaW5M
ZWZ0KCkgKyBzcGVlY2hSZW5kZXJlci0+bWFyZ2luUmlnaHQoKTsKKyAgICB9CisjZW5kaWYKKwog
ICAgIHJldHVybiB3aWR0aCAtIGRlY29yYXRpb25XaWR0aFJpZ2h0KCk7CiB9CiAKQEAgLTQ3OSw2
ICs1MzAsMTIgQEAgaW50IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6cHJlZmVycmVkQ29u
dGVudFdpZHRoKGZsb2F0IGNoYXJXaWR0aCkgY29uc3QKICAgICAgICAgcmVzdWx0ICs9IGNhbmNl
bFJlbmRlcmVyLT5ib3JkZXJMZWZ0KCkgKyBjYW5jZWxSZW5kZXJlci0+Ym9yZGVyUmlnaHQoKSAr
CiAgICAgICAgICAgICAgICAgICBjYW5jZWxSZW5kZXJlci0+cGFkZGluZ0xlZnQoKSArIGNhbmNl
bFJlbmRlcmVyLT5wYWRkaW5nUmlnaHQoKTsKIAorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisg
ICAgaWYgKFJlbmRlckJveCogc3BlZWNoUmVuZGVyZXIgPSBtX3NwZWVjaEJ1dHRvbiA/IG1fc3Bl
ZWNoQnV0dG9uLT5yZW5kZXJCb3goKSA6IDApIHsKKyAgICAgICAgcmVzdWx0ICs9IHNwZWVjaFJl
bmRlcmVyLT5ib3JkZXJMZWZ0KCkgKyBzcGVlY2hSZW5kZXJlci0+Ym9yZGVyUmlnaHQoKSArCisg
ICAgICAgICAgICAgICAgICBzcGVlY2hSZW5kZXJlci0+cGFkZGluZ0xlZnQoKSArIHNwZWVjaFJl
bmRlcmVyLT5wYWRkaW5nUmlnaHQoKTsKKyAgICB9CisjZW5kaWYKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCkBAIC01MTQsMTIgKzU3MSwyOCBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZTo6YWRqdXN0Q29udHJvbEhlaWdodEJhc2VkT25MaW5lSGVpZ2h0KGludCBsaW5lSAogICAg
ICAgICBsaW5lSGVpZ2h0ID0gbWF4KGxpbmVIZWlnaHQsIGNhbmNlbFJlbmRlcmVyLT5oZWlnaHQo
KSk7CiAgICAgfQogCisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICBpZiAoUmVuZGVyQm94
KiBzcGVlY2hSZW5kZXJlciA9IG1fc3BlZWNoQnV0dG9uID8gbV9zcGVlY2hCdXR0b24tPnJlbmRl
ckJveCgpIDogMCkgeworICAgICAgICB0b1JlbmRlckJsb2NrKHNwZWVjaFJlbmRlcmVyKS0+Y2Fs
Y0hlaWdodCgpOworICAgICAgICBzZXRIZWlnaHQobWF4KGhlaWdodCgpLAorICAgICAgICAgICAg
ICAgICAgc3BlZWNoUmVuZGVyZXItPmJvcmRlclRvcCgpICsgc3BlZWNoUmVuZGVyZXItPmJvcmRl
ckJvdHRvbSgpICsKKyAgICAgICAgICAgICAgICAgIHNwZWVjaFJlbmRlcmVyLT5wYWRkaW5nVG9w
KCkgKyBzcGVlY2hSZW5kZXJlci0+cGFkZGluZ0JvdHRvbSgpICsKKyAgICAgICAgICAgICAgICAg
IHNwZWVjaFJlbmRlcmVyLT5tYXJnaW5Ub3AoKSArIHNwZWVjaFJlbmRlcmVyLT5tYXJnaW5Cb3R0
b20oKSkpOworICAgICAgICBsaW5lSGVpZ2h0ID0gbWF4KGxpbmVIZWlnaHQsIHNwZWVjaFJlbmRl
cmVyLT5oZWlnaHQoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBzZXRIZWlnaHQoaGVpZ2h0KCkg
KyBsaW5lSGVpZ2h0KTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmNy
ZWF0ZVN1YnRyZWVJZk5lZWRlZCgpCiB7Ci0gICAgaWYgKCFpbnB1dEVsZW1lbnQoKS0+aXNTZWFy
Y2hGaWVsZCgpKSB7CisgICAgYm9vbCBjcmVhdGVTdWJ0cmVlID0gaW5wdXRFbGVtZW50KCktPmlz
U2VhcmNoRmllbGQoKTsKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIGlmIChpbnB1dEVs
ZW1lbnQoKS0+aXNTcGVlY2hFbmFibGVkKCkpCisgICAgICAgIGNyZWF0ZVN1YnRyZWUgPSB0cnVl
OworI2VuZGlmCisgICAgaWYgKCFjcmVhdGVTdWJ0cmVlKSB7CiAgICAgICAgIFJlbmRlclRleHRD
b250cm9sOjpjcmVhdGVTdWJ0cmVlSWZOZWVkZWQobV9pbm5lckJsb2NrLmdldCgpKTsKICAgICAg
ICAgaWYgKGlucHV0RWxlbWVudCgpLT5oYXNTcGluQnV0dG9uKCkgJiYgIW1fb3V0ZXJTcGluQnV0
dG9uKSB7CiAgICAgICAgICAgICBtX291dGVyU3BpbkJ1dHRvbiA9IFNwaW5CdXR0b25FbGVtZW50
OjpjcmVhdGUobm9kZSgpKTsKQEAgLTUzNCwyMCArNjA3LDMxIEBAIHZvaWQgUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjpjcmVhdGVTdWJ0cmVlSWZOZWVkZWQoKQogICAgICAgICBtX2lubmVy
QmxvY2stPmF0dGFjaElubmVyRWxlbWVudChub2RlKCksIGNyZWF0ZUlubmVyQmxvY2tTdHlsZShz
dHlsZSgpKSwgcmVuZGVyQXJlbmEoKSk7CiAgICAgfQogCi0gICAgaWYgKCFtX3Jlc3VsdHNCdXR0
b24pIHsKLSAgICAgICAgLy8gQ3JlYXRlIHRoZSBzZWFyY2ggcmVzdWx0cyBidXR0b24gZWxlbWVu
dAotICAgICAgICBtX3Jlc3VsdHNCdXR0b24gPSBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgICAgIG1fcmVzdWx0c0J1dHRvbi0+YXR0YWNo
SW5uZXJFbGVtZW50KG1faW5uZXJCbG9jay5nZXQoKSwgY3JlYXRlUmVzdWx0c0J1dHRvblN0eWxl
KG1faW5uZXJCbG9jay0+cmVuZGVyZXIoKS0+c3R5bGUoKSksIHJlbmRlckFyZW5hKCkpOworICAg
IGlmIChpbnB1dEVsZW1lbnQoKS0+aXNTZWFyY2hGaWVsZCgpKSB7CisgICAgICAgIGlmICghbV9y
ZXN1bHRzQnV0dG9uKSB7CisgICAgICAgICAgICAvLyBDcmVhdGUgdGhlIHNlYXJjaCByZXN1bHRz
IGJ1dHRvbiBlbGVtZW50CisgICAgICAgICAgICBtX3Jlc3VsdHNCdXR0b24gPSBTZWFyY2hGaWVs
ZFJlc3VsdHNCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBt
X3Jlc3VsdHNCdXR0b24tPmF0dGFjaElubmVyRWxlbWVudChtX2lubmVyQmxvY2suZ2V0KCksIGNy
ZWF0ZVJlc3VsdHNCdXR0b25TdHlsZShtX2lubmVyQmxvY2stPnJlbmRlcmVyKCktPnN0eWxlKCkp
LCByZW5kZXJBcmVuYSgpKTsKKyAgICAgICAgfQogICAgIH0KIAotICAgIC8vIENyZWF0ZSBpbm5l
clRleHQgZWxlbWVudCBiZWZvcmUgYWRkaW5nIHRoZSBjYW5jZWwgYnV0dG9uCisgICAgLy8gQ3Jl
YXRlIGlubmVyVGV4dCBlbGVtZW50IGJlZm9yZSBhZGRpbmcgdGhlIG90aGVyIGJ1dHRvbnMuCiAg
ICAgUmVuZGVyVGV4dENvbnRyb2w6OmNyZWF0ZVN1YnRyZWVJZk5lZWRlZChtX2lubmVyQmxvY2su
Z2V0KCkpOwogCi0gICAgaWYgKCFtX2NhbmNlbEJ1dHRvbikgewotICAgICAgICAvLyBDcmVhdGUg
dGhlIGNhbmNlbCBidXR0b24gZWxlbWVudAotICAgICAgICBtX2NhbmNlbEJ1dHRvbiA9IFNlYXJj
aEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgICAgICBt
X2NhbmNlbEJ1dHRvbi0+YXR0YWNoSW5uZXJFbGVtZW50KG1faW5uZXJCbG9jay5nZXQoKSwgY3Jl
YXRlQ2FuY2VsQnV0dG9uU3R5bGUobV9pbm5lckJsb2NrLT5yZW5kZXJlcigpLT5zdHlsZSgpKSwg
cmVuZGVyQXJlbmEoKSk7CisgICAgaWYgKGlucHV0RWxlbWVudCgpLT5pc1NlYXJjaEZpZWxkKCkp
IHsKKyAgICAgICAgaWYgKCFtX2NhbmNlbEJ1dHRvbikgeworICAgICAgICAgICAgLy8gQ3JlYXRl
IHRoZSBjYW5jZWwgYnV0dG9uIGVsZW1lbnQKKyAgICAgICAgICAgIG1fY2FuY2VsQnV0dG9uID0g
U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAg
ICAgICAgICBtX2NhbmNlbEJ1dHRvbi0+YXR0YWNoSW5uZXJFbGVtZW50KG1faW5uZXJCbG9jay5n
ZXQoKSwgY3JlYXRlQ2FuY2VsQnV0dG9uU3R5bGUobV9pbm5lckJsb2NrLT5yZW5kZXJlcigpLT5z
dHlsZSgpKSwgcmVuZGVyQXJlbmEoKSk7CisgICAgICAgIH0KICAgICB9CisjaWYgRU5BQkxFKElO
UFVUX1NQRUVDSCkKKyAgICBpZiAoaW5wdXRFbGVtZW50KCktPmlzU3BlZWNoRW5hYmxlZCgpICYm
ICFtX3NwZWVjaEJ1dHRvbikgeworICAgICAgICAvLyBDcmVhdGUgdGhlIHNwZWVjaCBidXR0b24g
ZWxlbWVudAorICAgICAgICBtX3NwZWVjaEJ1dHRvbiA9IElucHV0RmllbGRTcGVlY2hCdXR0b25F
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgICAgIG1fc3BlZWNoQnV0dG9uLT5hdHRh
Y2hJbm5lckVsZW1lbnQobV9pbm5lckJsb2NrLmdldCgpLCBjcmVhdGVTcGVlY2hCdXR0b25TdHls
ZShtX2lubmVyQmxvY2stPnJlbmRlcmVyKCktPnN0eWxlKCkpLCByZW5kZXJBcmVuYSgpKTsKKyAg
ICB9CisjZW5kaWYKIH0KIAogdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0
ZUZyb21FbGVtZW50KCkKQEAgLTY4NSw2ICs3NjksMTkgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4gUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpjcmVhdGVPdXRlclNwaW5CdXR0b25TdHls
ZSgKICAgICByZXR1cm4gYnV0dG9uU3R5bGUucmVsZWFzZSgpOwogfQogCisjaWYgRU5BQkxFKElO
UFVUX1NQRUVDSCkKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6Y3JlYXRlU3BlZWNoQnV0dG9uU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUqIHN0YXJ0
U3R5bGUpIGNvbnN0Cit7CisgICAgQVNTRVJUKG5vZGUoKS0+aXNIVE1MRWxlbWVudCgpKTsKKyAg
ICBSZWZQdHI8UmVuZGVyU3R5bGU+IGJ1dHRvblN0eWxlID0gZ2V0Q2FjaGVkUHNldWRvU3R5bGUo
SU5QVVRfU1BFRUNIX1NUQVRVUyk7CisgICAgaWYgKCFidXR0b25TdHlsZSkKKyAgICAgICAgYnV0
dG9uU3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7CisgICAgaWYgKHN0YXJ0U3R5bGUpCisg
ICAgICAgIGJ1dHRvblN0eWxlLT5pbmhlcml0RnJvbShzdGFydFN0eWxlKTsKKyAgICByZXR1cm4g
YnV0dG9uU3R5bGUucmVsZWFzZSgpOworfQorI2VuZGlmCisKIHZvaWQgUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lOjp1cGRhdGVDYW5jZWxCdXR0b25WaXNpYmlsaXR5KCkgY29uc3QKIHsKICAg
ICBpZiAoIW1fY2FuY2VsQnV0dG9uLT5yZW5kZXJlcigpKQpAQCAtODIzLDYgKzkyMCwxMCBAQCBp
bnQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpjbGllbnRQYWRkaW5nUmlnaHQoKSBjb25z
dAogCiAgICAgaWYgKFJlbmRlckJveCogY2FuY2VsUmVuZGVyZXIgPSBtX2NhbmNlbEJ1dHRvbiA/
IG1fY2FuY2VsQnV0dG9uLT5yZW5kZXJCb3goKSA6IDApCiAgICAgICAgIHBhZGRpbmcgKz0gY2Fu
Y2VsUmVuZGVyZXItPndpZHRoKCk7CisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICBpZiAo
UmVuZGVyQm94KiBzcGVlY2hSZW5kZXJlciA9IG1fc3BlZWNoQnV0dG9uID8gbV9zcGVlY2hCdXR0
b24tPnJlbmRlckJveCgpIDogMCkKKyAgICAgICAgcGFkZGluZyArPSBzcGVlY2hSZW5kZXJlci0+
d2lkdGgoKTsKKyNlbmRpZgogCiAgICAgcmV0dXJuIHBhZGRpbmc7CiB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCmluZGV4IGRmZjllNWY4YzY2
YTE0ZDQwNzc1ZjcwMTQyOTA2MDZkNTE3ZTg0OWMuLmFiOWY3MTFiNWIwOTk0MzQzZGE2MWZhNmM5
Yzg0MTJhZmQxZmQ2ZDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5oCkBAIC0yOSw2ICsyOSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIElucHV0RWxlbWVudDsKK2NsYXNzIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50
OwogY2xhc3MgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OwogY2xhc3MgU2VhcmNoRmll
bGRSZXN1bHRzQnV0dG9uRWxlbWVudDsKIGNsYXNzIFNlYXJjaFBvcHVwTWVudTsKQEAgLTU5LDcg
KzYwLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGludCBwcmVmZXJyZWREZWNvcmF0aW9u
V2lkdGhSaWdodCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBoYXNDb250cm9sQ2xpcCgpIGNv
bnN0IHsgcmV0dXJuIG1fY2FuY2VsQnV0dG9uOyB9CisgICAgdmlydHVhbCBib29sIGhhc0NvbnRy
b2xDbGlwKCkgY29uc3Q7CiAgICAgdmlydHVhbCBJbnRSZWN0IGNvbnRyb2xDbGlwUmVjdChpbnQg
dHgsIGludCB0eSkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzVGV4dEZpZWxkKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogCkBAIC05OCw2ICs5OSw5IEBAIHByaXZhdGU6CiAgICAgUGFzc1Jl
ZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRlUmVzdWx0c0J1dHRvblN0eWxlKGNvbnN0IFJlbmRlclN0
eWxlKiBzdGFydFN0eWxlKSBjb25zdDsKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjcmVh
dGVDYW5jZWxCdXR0b25TdHlsZShjb25zdCBSZW5kZXJTdHlsZSogc3RhcnRTdHlsZSkgY29uc3Q7
CiAgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRlT3V0ZXJTcGluQnV0dG9uU3R5bGUo
KSBjb25zdDsKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIFBhc3NSZWZQdHI8UmVuZGVy
U3R5bGU+IGNyZWF0ZVNwZWVjaEJ1dHRvblN0eWxlKGNvbnN0IFJlbmRlclN0eWxlKiBzdGFydFN0
eWxlKSBjb25zdDsKKyNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVDYW5jZWxCdXR0b25WaXNpYmls
aXR5KCkgY29uc3Q7CiAgICAgRVZpc2liaWxpdHkgdmlzaWJpbGl0eUZvckNhbmNlbEJ1dHRvbigp
IGNvbnN0OwpAQCAtMTQyLDYgKzE0Niw5IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNlYXJjaEZp
ZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IG1fcmVzdWx0c0J1dHRvbjsKICAgICBSZWZQdHI8U2Vh
cmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBtX2NhbmNlbEJ1dHRvbjsKICAgICBSZWZQdHI8
VGV4dENvbnRyb2xJbm5lckVsZW1lbnQ+IG1fb3V0ZXJTcGluQnV0dG9uOworI2lmIEVOQUJMRShJ
TlBVVF9TUEVFQ0gpCisgICAgUmVmUHRyPElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50PiBt
X3NwZWVjaEJ1dHRvbjsKKyNlbmRpZgogCiAgICAgVGltZXI8UmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lPiBtX3NlYXJjaEV2ZW50VGltZXI7CiAgICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4g
bV9zZWFyY2hQb3B1cDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCBhOWQ4ZjZlNzhj
YTVjMGFkMjkxNjNjNGNhZjRkZWI4NmI3ZWE3ZjAwLi41Y2RkYmI4YzdkMGNiNTY5YjNlMTEzZjdi
NmFmYTRkMzIyNmYyMjdmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC0yMjgsNiAr
MjI4LDEwIEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdFN0eWxlKENTU1N0eWxlU2VsZWN0b3Iq
IHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsCiAgICAgICAgIGNhc2UgUmF0aW5nTGV2
ZWxJbmRpY2F0b3JQYXJ0OgogICAgICAgICAgICAgcmV0dXJuIGFkanVzdE1ldGVyU3R5bGUoc2Vs
ZWN0b3IsIHN0eWxlLCBlKTsKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAg
ICAgIGNhc2UgSW5wdXRTcGVlY2hQYXJ0OgorICAgICAgICAgICAgcmV0dXJuIGFkanVzdElucHV0
RmllbGRTcGVlY2hCdXR0b25TdHlsZShzZWxlY3Rvciwgc3R5bGUsIGUpOworI2VuZGlmCiAgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICB9CkBAIC0zNTgsNiArMzYyLDEw
IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVy
T2JqZWN0OjpQYWludEluZm8mIHBhaW50SW5mCiAgICAgICAgICAgICByZXR1cm4gcGFpbnRTZWFy
Y2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uKG8sIHBhaW50SW5mbywgcik7CiAgICAgICAgIGNhc2Ug
U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uUGFydDoKICAgICAgICAgICAgIHJldHVybiBwYWludFNl
YXJjaEZpZWxkUmVzdWx0c0J1dHRvbihvLCBwYWludEluZm8sIHIpOworI2lmIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCisgICAgICAgIGNhc2UgSW5wdXRTcGVlY2hQYXJ0OgorICAgICAgICAgICAgcmV0
dXJuIHBhaW50SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbihvLCBwYWludEluZm8sIHIpOworI2VuZGlm
CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICB9CkBAIC0zOTgsNiAr
NDA2LDkgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnRCb3JkZXJPbmx5KFJlbmRlck9iamVjdCog
bywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8KICNpZiBFTkFCTEUoUFJPR1JFU1NfVEFH
KQogICAgICAgICBjYXNlIFByb2dyZXNzQmFyUGFydDoKICNlbmRpZgorI2lmIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCisgICAgICAgIGNhc2UgSW5wdXRTcGVlY2hQYXJ0OgorI2VuZGlmCiAgICAgICAg
IGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNhc2UgU2xpZGVyVmVydGljYWxQ
YXJ0OgogICAgICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6CkBAIC00NDMsNiAr
NDU0LDkgQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0aW9ucyhSZW5kZXJPYmplY3Qq
IG8sIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmYKICNpZiBFTkFCTEUoUFJPR1JFU1NfVEFH
KQogICAgICAgICBjYXNlIFByb2dyZXNzQmFyUGFydDoKICNlbmRpZgorI2lmIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCisgICAgICAgIGNhc2UgSW5wdXRTcGVlY2hQYXJ0OgorI2VuZGlmCiAgICAgICAg
IGNhc2UgU2xpZGVySG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNhc2UgU2xpZGVyVmVydGljYWxQ
YXJ0OgogICAgICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuaAppbmRleCBkNzJhMmEyYzM4MzlmYWFlZWZhZmEwYjZkMDBlYjcwNzAxMGUzM2Fk
Li5mYWQ2ZjRhYjM2MTdiMGQyZGUxNzE0NGI0ZWQwODFmZGE1NWI2NzUzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmgKQEAgLTI5Miw2ICsyOTIsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
Ym9vbCBwYWludE1lZGlhQ3VycmVudFRpbWUoUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2Jq
ZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBwYWludE1lZGlhVGltZVJlbWFpbmluZyhSZW5kZXJPYmplY3QqLCBjb25zdCBS
ZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9
CiAKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RJbnB1
dEZpZWxkU3BlZWNoQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwg
RWxlbWVudCopIGNvbnN0IHsgfQorICAgIHZpcnR1YWwgYm9vbCBwYWludElucHV0RmllbGRTcGVl
Y2hCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBj
b25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQorI2VuZGlmCisKIHB1YmxpYzoKICAgICAv
LyBNZXRob2RzIGZvciBzdGF0ZSBxdWVyeWluZwogICAgIENvbnRyb2xTdGF0ZXMgY29udHJvbFN0
YXRlc0ZvclJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCogbykgY29uc3Q7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmggYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmgKaW5kZXggYWFhYWRlMDM5OGZmNzQ1ZjBm
M2ZkYzk3Y2IyMjBlZDAyMjQyYmQwNi4uNDZkMmRkZDIzMDc2MTk1Y2UzM2EyYWUyM2RmODFlYTJl
NjVlN2NhMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bU1hYy5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaApA
QCAtMzEsNiArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZW5kZXJUaGVtZUNo
cm9taXVtTWFjIDogcHVibGljIFJlbmRlclRoZW1lTWFjIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gY3JlYXRlKCk7CisgICAgdmlydHVhbCB+UmVuZGVyVGhl
bWVDaHJvbWl1bU1hYygpOwogcHJvdGVjdGVkOgogI2lmIEVOQUJMRShWSURFTykKICAgICB2aXJ0
dWFsIHZvaWQgYWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KikgY29uc3Q7
CkBAIC00Niw2ICs0NywxMCBAQCBwcm90ZWN0ZWQ6CiAKICNlbmRpZgogCisjaWYgRU5BQkxFKElO
UFVUX1NQRUVDSCkKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRJbnB1dEZpZWxkU3BlZWNoQnV0dG9u
KFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50
UmVjdCYpOworI2VuZGlmCisKICAgICB2aXJ0dWFsIGJvb2wgdXNlc1Rlc3RNb2RlRm9jdXNSaW5n
Q29sb3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIE5TVmlldyogZG9jdW1lbnRWaWV3Rm9yKFJlbmRl
ck9iamVjdCopIGNvbnN0OwogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0gYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtTWFjLm1tCmluZGV4IDQ3YTg3MmQ3ZmIxODRmNDU5ZDQ0NGFkZjAyYmVhNjdhMDUx
NzIyYTEuLjRjNjg3MTI1NmIxY2RlNmI0NTZjZWYzMjQ4MmY5NDUzMjJmNDkwZDEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0KKysrIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQpAQCAtMjEsNiArMjEsNyBA
QAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJSZW5kZXJUaGVtZUNocm9taXVtTWFjLmgi
CiAjaW1wb3J0ICJDaHJvbWl1bUJyaWRnZS5oIgorI2ltcG9ydCAiUmVuZGVySW5wdXRTcGVlY2hD
aHJvbWl1bS5oIgogI2ltcG9ydCAiUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmgiCiAjaW1w
b3J0ICJVc2VyQWdlbnRTdHlsZVNoZWV0cy5oIgogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgpA
QCAtNjgsNiArNjksMTMgQEAgUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gUmVuZGVyVGhlbWVDaHJv
bWl1bU1hYzo6Y3JlYXRlKCkKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbmRlclRoZW1lQ2hy
b21pdW1NYWMpOwogfQogCitSZW5kZXJUaGVtZUNocm9taXVtTWFjOjp+UmVuZGVyVGhlbWVDaHJv
bWl1bU1hYygpCit7CisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICBSZW5kZXJJbnB1dFNw
ZWVjaENocm9taXVtOjpyZWxlYXNlSW1hZ2VzKCk7CisjZW5kaWYKK30KKwogYm9vbCBSZW5kZXJU
aGVtZUNocm9taXVtTWFjOjp1c2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xvcigpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjpsYXlvdXRUZXN0TW9kZSgpOwpAQCAtMTQ2LDQgKzE1
NCwxMyBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50TWVkaWFWb2x1bWVTbGlk
ZXJUaHVtYihSZW5kZXJPYmplY3QqIG9iamVjdCwgYwogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShJ
TlBVVF9TUEVFQ0gpCisKK2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRJbnB1dEZp
ZWxkU3BlZWNoQnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBSZW5kZXJPYmplY3Q6
OlBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIHJldHVy
biBSZW5kZXJJbnB1dFNwZWVjaENocm9taXVtOjpwYWludElucHV0RmllbGRTcGVlY2hCdXR0b24o
b2JqZWN0LCBwYWludEluZm8sIHJlY3QpOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bVNraWEuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3Bw
CmluZGV4IGUzYWZkMWY3YjhhMDg2NDY0NDk0OWRhMjM1MmZmYWJlYzc4MjEwMjEuLmYxMzgxOThm
ZThlNzVkMzZlNjBlMzc0NTg2MDEyYTk1MzQ0ZWU2ZmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJNZWRpYUNvbnRyb2xFbGVtZW50cy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEu
aCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKKyNpbmNsdWRlICJSZW5kZXJJbnB1dFNwZWVjaENo
cm9taXVtLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmgiCiAjaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKQEAgLTY2
LDYgKzY3LDkgQEAgc3RhdGljIGNvbnN0IGZsb2F0IGRlZmF1bHRTZWFyY2hGaWVsZFJlc3VsdHNE
ZWNvcmF0aW9uU2l6ZSA9IDEzOwogc3RhdGljIGNvbnN0IGZsb2F0IG1pblNlYXJjaEZpZWxkUmVz
dWx0c0RlY29yYXRpb25TaXplID0gOTsKIHN0YXRpYyBjb25zdCBmbG9hdCBtYXhTZWFyY2hGaWVs
ZFJlc3VsdHNEZWNvcmF0aW9uU2l6ZSA9IDMwOwogc3RhdGljIGNvbnN0IGZsb2F0IGRlZmF1bHRT
ZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25XaWR0aCA9IDE4Oworc3RhdGljIGNvbnN0IGZsb2F0IGRl
ZmF1bHRTcGVlY2hCdXR0b25TaXplID0gMTY7CitzdGF0aWMgY29uc3QgZmxvYXQgbWluU3BlZWNo
QnV0dG9uU2l6ZSA9IDEyOworc3RhdGljIGNvbnN0IGZsb2F0IG1heFNwZWVjaEJ1dHRvblNpemUg
PSA0MDsKIAogc3RhdGljIHZvaWQgc2V0U2l6ZUlmQXV0byhSZW5kZXJTdHlsZSogc3R5bGUsIGNv
bnN0IEludFNpemUmIHNpemUpCiB7CkBAIC0xMjIsNiArMTI2LDkgQEAgUmVuZGVyVGhlbWVDaHJv
bWl1bVNraWE6OlJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhKCkKIAogUmVuZGVyVGhlbWVDaHJvbWl1
bVNraWE6On5SZW5kZXJUaGVtZUNocm9taXVtU2tpYSgpCiB7CisjaWYgRU5BQkxFKElOUFVUX1NQ
RUVDSCkKKyAgICBSZW5kZXJJbnB1dFNwZWVjaENocm9taXVtOjpyZWxlYXNlSW1hZ2VzKCk7Cisj
ZW5kaWYKIH0KIAogLy8gVXNlIHRoZSBXaW5kb3dzIHN0eWxlIHNoZWV0cyB0byBtYXRjaCB0aGVp
ciBtZXRyaWNzLgpAQCAtNjEwLDYgKzYxNywyMiBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1T
a2lhOjpwYWludE1lZGlhTXV0ZUJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUgog
I2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQordm9pZCBSZW5kZXJUaGVtZUNo
cm9taXVtU2tpYTo6YWRqdXN0SW5wdXRGaWVsZFNwZWVjaEJ1dHRvblN0eWxlKENTU1N0eWxlU2Vs
ZWN0b3IqLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqKSBjb25zdAoreworICAgIC8vIFNj
YWxlIHRoZSBidXR0b24gc2l6ZSBiYXNlZCBvbiB0aGUgZm9udCBzaXplCisgICAgZmxvYXQgZm9u
dFNjYWxlID0gc3R5bGUtPmZvbnRTaXplKCkgLyBkZWZhdWx0Q29udHJvbEZvbnRQaXhlbFNpemU7
CisgICAgaW50IHNwZWVjaEJ1dHRvblNpemUgPSBscm91bmRmKHN0ZDo6bWluKHN0ZDo6bWF4KG1p
blNwZWVjaEJ1dHRvblNpemUsIGRlZmF1bHRTcGVlY2hCdXR0b25TaXplICogZm9udFNjYWxlKSwg
bWF4U3BlZWNoQnV0dG9uU2l6ZSkpOworICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc3BlZWNo
QnV0dG9uU2l6ZSwgRml4ZWQpKTsKKyAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChzcGVlY2hC
dXR0b25TaXplLCBGaXhlZCkpOworfQorCitib29sIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpw
YWludElucHV0RmllbGRTcGVlY2hCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFJl
bmRlck9iamVjdDo6UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCit7
CisgICAgcmV0dXJuIFJlbmRlcklucHV0U3BlZWNoQ2hyb21pdW06OnBhaW50SW5wdXRGaWVsZFNw
ZWVjaEJ1dHRvbihvYmplY3QsIHBhaW50SW5mbywgcmVjdCk7Cit9CisjZW5kaWYKKwogdm9pZCBS
ZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6YWRqdXN0TWVudUxpc3RTdHlsZShDU1NTdHlsZVNlbGVj
dG9yKiBzZWxlY3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBXZWJDb3JlOjpFbGVtZW50KiBlKSBj
b25zdAogewogICAgIC8vIEhlaWdodCBpcyBsb2NrZWQgdG8gYXV0byBvbiBhbGwgYnJvd3NlcnMu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5o
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaAppbmRleCA1NmMz
MTVlYjhjNTM1MzMxM2QzNTIwNTRlMzVmNDQ1NDE1MjA5NWJmLi41MjE1N2MwMDBiMmQ2NGM4OWM0
ODgxZWIyZjZmM2Q5OTllZThiMmNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtU2tpYS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1Ta2lhLmgKQEAgLTEwMiw2ICsxMDIsMTEgQEAgY2xhc3MgUmVuZGVyUHJvZ3Jlc3M7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3Qq
LCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICAg
ICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0
IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogCisjaWYgRU5BQkxF
KElOUFVUX1NQRUVDSCkKKyAgICAgICAgdmlydHVhbCB2b2lkIGFkanVzdElucHV0RmllbGRTcGVl
Y2hCdXR0b25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50Kikg
Y29uc3Q7CisgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludElucHV0RmllbGRTcGVlY2hCdXR0b24o
UmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0Jik7CisjZW5kaWYKKwogICAgICAgICAvLyBNZW51TGlzdCByZWZlcnMgdG8gYW4gdW5zdHls
ZWQgbWVudWxpc3QgKG1lYW5pbmcgYSBtZW51bGlzdCB3aXRob3V0CiAgICAgICAgIC8vIGJhY2tn
cm91bmQtY29sb3Igb3IgYm9yZGVyIHNldCkgYW5kIE1lbnVMaXN0QnV0dG9uIHJlZmVycyB0byBh
IHN0eWxlZAogICAgICAgICAvLyBtZW51bGlzdCAoYSBtZW51bGlzdCB3aXRoIGJhY2tncm91bmQt
Y29sb3Igb3IgYm9yZGVyIHNldCkuIFRoZXkgaGF2ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
LmgKaW5kZXggN2NiNGUzYmNiNTRhZGFlYTNhZmU3YzQ5MTA3MWVjM2YwOTQwMzJkMC4uOTRjMTE3
YjY0OGYxYmU1MjdiYTFhZmY0YTcwZDM0OGFkNmE1ZTY1OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5oCkBAIC0xMjAsNiArMTIwLDExIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJv
b2wgcGFpbnRQcm9ncmVzc0JhcihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1NQ
RUVDSCkKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0SW5wdXRGaWVsZFNwZWVjaEJ1dHRvblN0eWxl
KENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRJbnB1dEZpZWxkU3BlZWNoQnV0dG9uKFJlbmRlck9iamVjdCosIGNv
bnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOworI2VuZGlmCisK
ICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBS
ZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZv
aWQgYWRqdXN0U2xpZGVyVHJhY2tTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUq
LCBFbGVtZW50KikgY29uc3Q7CiAKQEAgLTE5NCw2ICsxOTksOSBAQCBwcml2YXRlOgogICAgIHZv
aWQgcGFpbnRNZW51TGlzdEJ1dHRvbkdyYWRpZW50cyhSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5k
ZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICBjb25zdCBJbnRTaXpl
KiBtZW51TGlzdFNpemVzKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAg
IGNvbnN0IEludFNpemUqIHNwZWVjaEJ1dHRvblNpemVzKCkgY29uc3Q7CisjZW5kaWYKICAgICBj
b25zdCBJbnRTaXplKiBzZWFyY2hGaWVsZFNpemVzKCkgY29uc3Q7CiAgICAgY29uc3QgSW50U2l6
ZSogY2FuY2VsQnV0dG9uU2l6ZXMoKSBjb25zdDsKICAgICBjb25zdCBJbnRTaXplKiByZXN1bHRz
QnV0dG9uU2l6ZXMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXgg
ZDAyODlkZTQ0ODJiMzZmOGMyZWI0MGY0ZWFjNmM3ZTI1Y2UwNjhhZC4uNGNhNzk5OGRhNGJjNjg4
Yzc3ZmVlZDVhZTA4ZTJiMTA0OTUxZmRmYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMubW0KKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0KQEAgLTE0OTYsNiArMTQ5NiwzMCBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFNlYXJj
aEZpZWxkQ2FuY2VsQnV0dG9uKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyTwogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCitjb25zdCBJbnRTaXpl
KiBSZW5kZXJUaGVtZU1hYzo6c3BlZWNoQnV0dG9uU2l6ZXMoKSBjb25zdAoreworICAgIHN0YXRp
YyBjb25zdCBJbnRTaXplIHNpemVzWzNdID0geyBJbnRTaXplKDE2LCAxMyksIEludFNpemUoMTMs
IDExKSwgSW50U2l6ZSgxMywgOSkgfTsKKyAgICByZXR1cm4gc2l6ZXM7Cit9CisKK3ZvaWQgUmVu
ZGVyVGhlbWVNYWM6OmFkanVzdElucHV0RmllbGRTcGVlY2hCdXR0b25TdHlsZShDU1NTdHlsZVNl
bGVjdG9yKiwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KikgY29uc3QKK3sKKyAgICBJbnRT
aXplIHNpemUgPSBzaXplRm9yU3lzdGVtRm9udChzdHlsZSwgc3BlZWNoQnV0dG9uU2l6ZXMoKSk7
CisgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChzaXplLndpZHRoKCksIEZpeGVkKSk7CisgICAg
c3R5bGUtPnNldEhlaWdodChMZW5ndGgoc2l6ZS5oZWlnaHQoKSwgRml4ZWQpKTsKKyAgICBzdHls
ZS0+c2V0Qm94U2hhZG93KDApOworfQorCitib29sIFJlbmRlclRoZW1lTWFjOjpwYWludElucHV0
RmllbGRTcGVlY2hCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFJlbmRlck9iamVj
dDo6UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgVU5V
U0VEX1BBUkFNKG9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHBhaW50SW5mbyk7CisgICAgVU5V
U0VEX1BBUkFNKHJlY3QpOworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCiBjb25zdCBJ
bnRTaXplKiBSZW5kZXJUaGVtZU1hYzo6Y2FuY2VsQnV0dG9uU2l6ZXMoKSBjb25zdAogewogICAg
IHN0YXRpYyBjb25zdCBJbnRTaXplIHNpemVzWzNdID0geyBJbnRTaXplKDE2LCAxMyksIEludFNp
emUoMTMsIDExKSwgSW50U2l6ZSgxMywgOSkgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVy
aW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4IGVkMTI2MTE2ZDFjMDEzMzBhNmJmNDc4ZTVl
NGVhNWVjY2RkMjgzYjIuLmI5M2NlMzdhODczZmE3YzM2Zjk1N2M4YWRkMWRhOTA3ZjIyMzRkZmEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApA
QCAtMzA3LDQgKzMwNyw2NiBAQCB2b2lkIFNwaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVu
dEhhbmRsZXIoZXZlbnQpOwogfQogCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
KyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCitpbmxpbmUgSW5wdXRGaWVsZFNwZWVjaEJ1dHRv
bkVsZW1lbnQ6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVu
dCkKKyAgICA6IFRleHRDb250cm9sSW5uZXJFbGVtZW50KGRvY3VtZW50KQorICAgICwgbV9jYXB0
dXJpbmcoZmFsc2UpCit7Cit9CisKK1Bhc3NSZWZQdHI8SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVs
ZW1lbnQ+IElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZW50KQoreworICAgIHJldHVybiBuZXcgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQo
ZG9jdW1lbnQpOworfQorCit2b2lkIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpkZXRh
Y2goKQoreworICAgIGlmIChtX2NhcHR1cmluZykgeworICAgICAgICBpZiAoRnJhbWUqIGZyYW1l
ID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIo
KS0+c2V0Q2FwdHVyaW5nTW91c2VFdmVudHNOb2RlKDApOyAgICAgIAorICAgIH0KKyAgICBUZXh0
Q29udHJvbElubmVyRWxlbWVudDo6ZGV0YWNoKCk7Cit9CisKK3ZvaWQgSW5wdXRGaWVsZFNwZWVj
aEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQoreworICAg
IC8vIElmIHRoZSBlbGVtZW50IGlzIHZpc2libGUsIG9uIG1vdXNldXAsIHN0YXJ0IGF1ZGlvIGNh
cHR1cmUuCisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5w
dXRFbGVtZW50Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkpOworICAgIGlmIChldmVudC0+dHlwZSgp
ID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBldmVudC0+aXNNb3VzZUV2ZW50KCkg
JiYgc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRv
bikgeworICAgICAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT52aXNpYmxlVG9IaXRU
ZXN0aW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5m
cmFtZSgpKSB7CisgICAgICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zZXRDYXB0
dXJpbmdNb3VzZUV2ZW50c05vZGUodGhpcyk7CisgICAgICAgICAgICAgICAgbV9jYXB0dXJpbmcg
PSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlucHV0LT5mb2N1cygp
OworICAgICAgICBpbnB1dC0+c2VsZWN0KCk7CisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFu
ZGxlZCgpOworICAgIH0KKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91
c2V1cEV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNfY2FzdDxNb3VzZUV2
ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CisgICAgICAgIGlmIChtX2Nh
cHR1cmluZyAmJiByZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnZpc2libGVUb0hpdFRlc3Rpbmco
KSkgeworICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkp
IHsKKyAgICAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNldENhcHR1cmluZ01v
dXNlRXZlbnRzTm9kZSgwKTsKKyAgICAgICAgICAgICAgICBtX2NhcHR1cmluZyA9IGZhbHNlOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGhvdmVyZWQoKSkgeworICAgICAgICAgICAg
ICAgIC8vIEZJWE1FKHNhdGlzaCk6IFN0YXJ0IHNwZWVjaCByZWNvZ25pdGlvbiBoZXJlLgorICAg
ICAgICAgICAgICAgIC8vIEZJWE1FKHNhdGlzaCk6IFRoZSBoYXJkIGNvZGVkIHN0cmluZyAndGVz
dCcgaXMgc2V0IGhlcmUgZm9yIGVuYWJsaW5nIHRoZSBsYXlvdXQgdGVzdHMuIEluIG15CisgICAg
ICAgICAgICAgICAgLy8gbmV4dCBwYXRjaCBJJ2xsIGFkZCBhIFNwZWVjaCBTZXJ2aWNlIHdoaWNo
IHdpbGwgYmUgbW9ja2VkIG91dCBmcm9tIHRoZSBsYXlvdXQgdGVzdCBqYXZhc2NyaXB0CisgICAg
ICAgICAgICAgICAgLy8gY29kZSBhbmQgdGhpcyBoYXJkY29kZWQgc2V0VmFsdWUgd2lsbCBiZSBy
ZW1vdmVkLgorICAgICAgICAgICAgICAgIGlucHV0LT5zZXRWYWx1ZSgidGVzdCIpOworICAgICAg
ICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfQorCisgICAgaWYgKCFldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKKyAgICAg
ICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworfQorCisjZW5k
aWYgLy8gRU5BQkxFKElOUFVUX1NQRUVDSCkKKwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmggYi9XZWJDb3JlL3JlbmRlcmluZy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuaAppbmRleCBlZDE4ODdlN2M5YjM0MGE0ZTE4Y2QxODI5Yzll
ZDgwNmFhZDQ1MzY0Li5mMzQxZTM0MTkwOWNmNjVkMThkODUzYzAwYjYxYTVlNmVmZmEyOWFkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaApAQCAtMTA0
LDYgKzEwNCwyNCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9vblVwQnV0dG9uOwogfTsKIAorI2lm
IEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKK2NsYXNzIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVt
ZW50IDogcHVibGljIFRleHRDb250cm9sSW5uZXJFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwor
Citwcml2YXRlOgorICAgIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50KERvY3VtZW50Kik7
CisKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CisKKyAgICBib29sIG1fY2FwdHVyaW5nOwor
fTsKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKIH0gLy8gbmFtZXNwYWNlCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVD
b25zdGFudHMuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
LmgKaW5kZXggYjZkY2UxOGY1ZjNkYmQzZGE1OTk4MjQ3ZWNlN2ExOGY2ZWM3ODI1Zi4uZGM4NTNk
NWVjZjk0MWM0MDk3MGEzOGQ0M2E3NDdiNzFjYzhjYWRlMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC03NCw3ICs3NCw3IEBAIGVudW0g
UHNldWRvSWQgewogICAgIE1FRElBX0NPTlRST0xTX1NFRUtfQkFDS19CVVRUT04sIE1FRElBX0NP
TlRST0xTX1NFRUtfRk9SV0FSRF9CVVRUT04sIE1FRElBX0NPTlRST0xTX0ZVTExTQ1JFRU5fQlVU
VE9OLCBNRURJQV9DT05UUk9MU19SRVdJTkRfQlVUVE9OLCAKICAgICBNRURJQV9DT05UUk9MU19S
RVRVUk5fVE9fUkVBTFRJTUVfQlVUVE9OLCBNRURJQV9DT05UUk9MU19UT0dHTEVfQ0xPU0VEX0NB
UFRJT05TX0JVVFRPTiwKICAgICBNRURJQV9DT05UUk9MU19TVEFUVVNfRElTUExBWSwgU0NST0xM
QkFSX1RIVU1CLCBTQ1JPTExCQVJfQlVUVE9OLCBTQ1JPTExCQVJfVFJBQ0ssIFNDUk9MTEJBUl9U
UkFDS19QSUVDRSwgU0NST0xMQkFSX0NPUk5FUiwgUkVTSVpFUiwKLSAgICBJTlBVVF9MSVNUX0JV
VFRPTiwgSU5ORVJfU1BJTl9CVVRUT04sIE9VVEVSX1NQSU5fQlVUVE9OLCBWSVNJVEVEX0xJTkss
IFBST0dSRVNTX0JBUl9WQUxVRSwKKyAgICBJTlBVVF9MSVNUX0JVVFRPTiwgSU5ORVJfU1BJTl9C
VVRUT04sIE9VVEVSX1NQSU5fQlVUVE9OLCBWSVNJVEVEX0xJTkssIFBST0dSRVNTX0JBUl9WQUxV
RSwgSU5QVVRfU1BFRUNIX1NUQVRVUywKIAogICAgIEFGVEVSX0xBU1RfSU5URVJOQUxfUFNFVURP
SUQsCiAgICAgRklSU1RfUFVCTElDX1BTRVVET0lEID0gRklSU1RfTElORSwKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IDcxOTYwNTZmYzk1MTExZmM3MTkzMGFhZGVhMWRmMzM4ZGQ3ZTJmMDAuLjAwMWZlNjgxODk0
MGIwNDhlMzg1MDQ0NTA1MGEzMTA0ZmJlY2E0YjIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDEwLTA2LTE3ICBTYXRpc2ggU2FtcGF0aCAgPHNhdGlzaEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgYmFy
ZSBib25lcyBzcGVlY2ggVUkgZm9yIGlucHV0IGVsZW1lbnRzIHdpdGggQHNwZWVjaCBhdHRyaWJ1
dGUgc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MDc3NgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaTogQ29tcGlsZSBkZWZpbmUgZm9yIGVuYWJs
aW5nIHRoZSBzcGVlY2ggQVBJIChkZWZhdWx0Om9mZikuCisKIDIwMTAtMDYtMTYgIERyZXcgV2ls
c29uICA8YXR3aWxzb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQg
VGFtdXJhLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9XZWJL
aXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCA5YTIzOTQ5ODk3ZjRhZDNkODA2MjhjMzI0
YzdjMGI3Y2NiZDJkOWVhLi4zNzI3MzZhMDk5MWE3ZThmYjM3NTNmNzhkMjVlNTczMzYzYjZkMWI4
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9XZWJLaXQv
Y2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtNTMsNiArNTMsNyBAQAogICAgICAgICAnRU5BQkxF
X0lDT05EQVRBQkFTRT0wJywKICAgICAgICAgJ0VOQUJMRV9JTUFHRV9SRVNJWkVSPTAnLAogICAg
ICAgICAnRU5BQkxFX0lOREVYRURfREFUQUJBU0U9MScsCisgICAgICAgICdFTkFCTEVfSU5QVVRf
U1BFRUNIPTAnLAogICAgICAgICAnRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVI9MScsCiAgICAg
ICAgICdFTkFCTEVfSlNDX01VTFRJUExFX1RIUkVBRFM9MCcsCiAgICAgICAgICdFTkFCTEVfTUVU
RVJfVEFHPTEnLApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCAzOTAwYzgxMTE2OGYyYjczYjA5NTI0NGVkZjRmMmViYjEzMDZmNzAx
Li45YTRmOTA0MjNkNzk1YmVhYjk0Nzc4NTI3YjMzNzk4YTgzN2I3Yjg1IDEwMDY0NAotLS0gYS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDEwLTA2LTE3ICBTYXRpc2ggU2FtcGF0aCAgPHNhdGlzaEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEg
YmFyZSBib25lcyBzcGVlY2ggVUkgZm9yIGlucHV0IGVsZW1lbnRzIHdpdGggQHNwZWVjaCBhdHRy
aWJ1dGUgc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MDc3NgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWc6IENvbXBpbGUgZGVmaW5lIGZvciBlbmFibGluZyB0aGUgc3BlZWNoIEFQSSAoZGVmYXVsdDpv
ZmYpLgorCiAyMDEwLTA2LTE2ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1dlYktpdC9tYWMvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggNWI1Mjc5MzFmZTJhMGM3MDZkYzIw
YTI0M2ZiMzI2OTc3YmE0MDAyZi4uMDhkOWVmOWM0MGRjYzVkNmQwYmM2MzkzZmI3YjUyMmQwYTRm
YTk0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZworKysgYi9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCkBAIC01Nyw2ICs1Nyw3IEBAIEVOQUJMRV9HRU9MT0NBVElPTiA9IEVOQUJMRV9H
RU9MT0NBVElPTjsKIEVOQUJMRV9JQ09OREFUQUJBU0UgPSBFTkFCTEVfSUNPTkRBVEFCQVNFOwog
RU5BQkxFX0lNQUdFX1JFU0laRVIgPSA7CiBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSA9IDsKK0VO
QUJMRV9JTlBVVF9TUEVFQ0ggPSA7CiBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUiA9IEVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSOwogRU5BQkxFX01BVEhNTCA9IDsKIEVOQUJMRV9NRVRFUl9U
QUcgPSBFTkFCTEVfTUVURVJfVEFHOwpAQCAtODEsNCArODIsNCBAQCBFTkFCTEVfWEhUTUxNUCA9
IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hT
TFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX0NBTlZBUykgJChFTkFCTEVfM0Rf
UkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CX1NMSUNFKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
RykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkg
JChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT04pICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChF
TkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9SRUFERVIpICQoRU5BQkxFX0ZJTEVfV1JJVEVS
KSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9J
TUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9KQVZBU0NS
SVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFC
TEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVO
QUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkpICQoRU5BQkxFX1NBTkRCT1gpICQoRU5B
QkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04p
ICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAk
KEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVf
U1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9X
TUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAk
KEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX0NBTlZBUykgJChF
TkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CX1NMSUNFKSAkKEVOQUJMRV9DSEFOTkVM
X01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9E
QVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9E
RVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNP
VVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9SRUFERVIpICQoRU5BQkxFX0ZJ
TEVfV1JJVEVSKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAk
KEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJM
RV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01B
VEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJM
RV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFC
TEVfUlVCWSkgJChFTkFCTEVfU0FOREJPWCkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5B
QkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAk
KEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFC
TEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykg
JChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChF
TkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ5
ZjZhZmU4YWUyN2UwZDY4OTI4ODRiMWFmYmE3MzllMzE0YjI2MjcuLmQ2OTU3ZGUwNmU2MWVjMGJh
YWE5ZTk3MzRiMzhiMTUxZTA1ZTRmNWUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wNi0x
NyAgU2F0aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGJhcmUgYm9uZXMgc3BlZWNo
IFVJIGZvciBpbnB1dCBlbGVtZW50cyB3aXRoIEBzcGVlY2ggYXR0cmlidXRlIHNldAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA3NzYKKworICAgICAg
ICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OiBDb21tYW5kIGxpbmUgZmxhZyB0byBjb25kaXRpb25h
bGx5IGVuYWJsZSBzcGVlY2ggaW5wdXQgQVBJIGNvZGUgKGRlZmF1bHQ6b2ZmKQorCiAyMDEwLTA2
LTE2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWls
ZC13ZWJraXQgYi9XZWJLaXRUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAppbmRleCBhMjlhNmZk
MzFmYjI3ODU4Yjk3YTc5MDlmOThkYzUyNzM4ZGIyYzVhLi44ODc2NWU4ZGM1YTIwOGFiZDk0NTQ3
ZjFkMjdkOTA4N2M4OTcyMzBlIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL2J1aWxk
LXdlYmtpdAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAtNTYsNyAr
NTYsNyBAQCBteSAkbWFrZUFyZ3M7CiBteSAkc3RhcnRUaW1lID0gdGltZSgpOwogCiBteSAoJHRo
cmVlRENhbnZhc1N1cHBvcnQsICR0aHJlZURSZW5kZXJpbmdTdXBwb3J0LCAkY2hhbm5lbE1lc3Nh
Z2luZ1N1cHBvcnQsICRjbGllbnRCYXNlZEdlb2xvY2F0aW9uU3VwcG9ydCwgJGRhdGFiYXNlU3Vw
cG9ydCwgJGRhdGFncmlkU3VwcG9ydCwgJGRhdGFsaXN0U3VwcG9ydCwKLSAgICAkZG9tU3RvcmFn
ZVN1cHBvcnQsICRldmVudHNvdXJjZVN1cHBvcnQsICRmaWx0ZXJzU3VwcG9ydCwgJGdlb2xvY2F0
aW9uU3VwcG9ydCwgJGljb25EYXRhYmFzZVN1cHBvcnQsICRpbWFnZVJlc2l6ZXJTdXBwb3J0LCAk
aW5kZXhlZERhdGFiYXNlU3VwcG9ydCwKKyAgICAkZG9tU3RvcmFnZVN1cHBvcnQsICRldmVudHNv
dXJjZVN1cHBvcnQsICRmaWx0ZXJzU3VwcG9ydCwgJGdlb2xvY2F0aW9uU3VwcG9ydCwgJGljb25E
YXRhYmFzZVN1cHBvcnQsICRpbWFnZVJlc2l6ZXJTdXBwb3J0LCAkaW5kZXhlZERhdGFiYXNlU3Vw
cG9ydCwgJGlucHV0U3BlZWNoU3VwcG9ydCwKICAgICAkamF2YVNjcmlwdERlYnVnZ2VyU3VwcG9y
dCwgJG1hdGhtbFN1cHBvcnQsICRvZmZsaW5lV2ViQXBwbGljYXRpb25TdXBwb3J0LCAkcnVieVN1
cHBvcnQsICRzeXN0ZW1NYWxsb2NTdXBwb3J0LCAkc2FuZGJveFN1cHBvcnQsICRzaGFyZWRXb3Jr
ZXJzU3VwcG9ydCwKICAgICAkc3ZnU3VwcG9ydCwgJHN2Z0FuaW1hdGlvblN1cHBvcnQsICRzdmdB
c0ltYWdlU3VwcG9ydCwgJHN2Z0RPTU9iakNCaW5kaW5nc1N1cHBvcnQsICRzdmdGb250c1N1cHBv
cnQsCiAgICAgJHN2Z0ZvcmVpZ25PYmplY3RTdXBwb3J0LCAkc3ZnVXNlU3VwcG9ydCwgJHZpZGVv
U3VwcG9ydCwgJHdlYlNvY2tldHNTdXBwb3J0LCAkd21sU3VwcG9ydCwgJHdjc3NTdXBwb3J0LCAk
eGh0bWxtcFN1cHBvcnQsICR3b3JrZXJzU3VwcG9ydCwKQEAgLTExMiw2ICsxMTIsOSBAQCBteSBA
ZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gImluZGV4ZWQtZGF0YWJhc2UiLCBkZXNjID0+
ICJUb2dnbGUgSW5kZXhlZCBEYXRhYmFzZSBBUEkgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGluZGV4
ZWREYXRhYmFzZVN1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9uID0+ICJpbnB1dC1zcGVlY2giLCBk
ZXNjID0+ICJTcGVlY2ggSW5wdXQgQVBJIHN1cHBvcnQiLAorICAgICAgZGVmaW5lID0+ICJFTkFC
TEVfSU5QVVRfU1BFRUNIIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGlucHV0U3BlZWNoU3Vw
cG9ydCB9LAorCiAgICAgeyBvcHRpb24gPT4gImphdmFzY3JpcHQtZGVidWdnZXIiLCBkZXNjID0+
ICJUb2dnbGUgSmF2YVNjcmlwdCBEZWJ1Z2dlci9Qcm9maWxlciBzdXBwb3J0IiwKICAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIiLCBkZWZhdWx0ID0+IDEsIHZhbHVl
ID0+IFwkamF2YVNjcmlwdERlYnVnZ2VyU3VwcG9ydCB9LAogCmRpZmYgLS1naXQgYS9jb25maWd1
cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggZjA1ZjVmMDA3NTE3OGU5NTViZjgwMDc4MjBhMmQx
MTZjNzg5Mjk3OS4uZjk0ODRkMDkxMjIxMTYwZmI2OTZjNjM0YjllNjVhYzZkY2ZmYWYzNCAxMDA2
NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMzQ3LDYgKzM0Nywx
NCBAQCBBQ19BUkdfRU5BQkxFKGluZGV4ZWRfZGF0YWJhc2UsCiAgICAgICAgICAgICAgIFtdLFtl
bmFibGVfaW5kZXhlZF9kYXRhYmFzZT0ibm8iXSkKIEFDX01TR19SRVNVTFQoWyRlbmFibGVfaW5k
ZXhlZF9kYXRhYmFzZV0pCiAKKyMgY2hlY2sgd2hldGhlciB0byBlbmFibGUgdGhlIHNwZWVjaCBp
bnB1dCBBUEkKK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBlbmFibGUgdGhlIHNwZWVjaCBp
bnB1dCBBUEldKQorQUNfQVJHX0VOQUJMRShpbnB1dF9zcGVlY2gsCisgICAgICAgICAgICAgIEFD
X0hFTFBfU1RSSU5HKFstLWVuYWJsZS1pbnB1dC1zcGVlY2hdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbZW5hYmxlIHRoZSBzcGVlY2ggaW5wdXQgQVBJIFtkZWZhdWx0PW5vXV0pLAor
ICAgICAgICAgICAgICBbXSxbZW5hYmxlX2lucHV0X3NwZWVjaD0ibm8iXSkKK0FDX01TR19SRVNV
TFQoWyRlbmFibGVfaW5wdXRfc3BlZWNoXSkKKwogIyBjaGVjayB3aGV0aGVyIHRvIGJ1aWxkIHdp
dGggZGF0YWJhc2Ugc3VwcG9ydAogQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJsZSBI
VE1MNSBjbGllbnQtc2lkZSBkYXRhYmFzZSBzdG9yYWdlIHN1cHBvcnRdKQogQUNfQVJHX0VOQUJM
RShkYXRhYmFzZSwKQEAgLTgyMyw2ICs4MzEsNyBAQCBBTV9DT05ESVRJT05BTChbRU5BQkxFX0ZB
U1RfTU9CSUxFX1NDUk9MTElOR10sW3Rlc3QgIiRlbmFibGVfZmFzdF9tb2JpbGVfc2Nyb2xsaQog
QU1fQ09ORElUSU9OQUwoW0VOQUJMRV9JQ09OREFUQUJBU0VdLFt0ZXN0ICIkZW5hYmxlX2ljb25f
ZGF0YWJhc2UiID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9JTUFHRV9SRVNJWkVS
XSxbdGVzdCAiJGVuYWJsZV9pbWFnZV9yZXNpemVyIiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFM
KFtFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV0sW3Rlc3QgIiRlbmFibGVfaW5kZXhlZF9kYXRhYmFz
ZSIgPSAieWVzIl0pCitBTV9DT05ESVRJT05BTChbRU5BQkxFX0lOUFVUX1NQRUVDSF0sW3Rlc3Qg
IiRlbmFibGVfaW5wdXRfc3BlZWNoIiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVf
WEhUTUxNUF0sW3Rlc3QgIiRlbmFibGVfeGh0bWxtcCIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05B
TChbRU5BQkxFX1hQQVRIXSxbdGVzdCAiJGVuYWJsZV94cGF0aCIgPSAieWVzIl0pCiBBTV9DT05E
SVRJT05BTChbRU5BQkxFX1hTTFRdLFt0ZXN0ICIkZW5hYmxlX3hzbHQiID0gInllcyJdKQpAQCAt
ODk4LDYgKzkwNyw3IEBAIEZlYXR1cmVzOgogIEljb24gZGF0YWJhc2Ugc3VwcG9ydCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9pY29uX2RhdGFiYXNlCiAgSW1h
Z2UgcmVzaXplciBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAk
ZW5hYmxlX2ltYWdlX3Jlc2l6ZXIKICBTaGFyZWRXb3JrZXJzIHN1cHBvcnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfc2hhcmVkX3dvcmtlcnMKKyBTcGVlY2gg
aW5wdXQgc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFi
bGVfaW5wdXRfc3BlZWNoCiAgU1ZHIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX3N2ZwogIFNWRyBhbmltYXRpb24gc3VwcG9ydCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9zdmdfYW5pbWF0aW9u
CiAgU1ZHIGZvbnRzIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOiAkZW5hYmxlX3N2Z19mb250cwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59099</attachid>
            <date>2010-06-18 05:38:18 -0700</date>
            <delta_ts>2010-06-19 04:15:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40776-20100618133815.patch</filename>
            <type>text/plain</type>
            <size>75699</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBiZTBiOWY0ODI5ZTk2NGJh
MjViZWRjYWUwMGJjN2Q5ZDMwNTM5NGIxLi43NjhlOTI0Y2NiNTVjZGI1YTY3YjM1MzQ5ZDc4OWNi
ZThiNDVhOWE4IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTAtMDYtMTcgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBiYXJlIGJvbmVzIHNwZWVjaCBVSSBmb3IgaW5wdXQgZWxlbWVudHMgd2l0aCBAc3BlZWNoIGF0
dHJpYnV0ZSBzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwNzc2CisKKyAgICAgICAgKiBjb25maWd1cmUuYWM6IENvbXBpbGUgdGltZSBkZWZpbmUg
dG8gY29uZGl0aW9uYWxseSBlbmFibGUgc3BlZWNoIGlucHV0IGZlYXR1cmUuCisKIDIwMTAtMDYt
MTcgIFNodSBDaGFuZyAgPGNoYW5nLnNodUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzU2MzU4ZjZiYjFm
YTdkMTFhYzU0MWQ4YTVkZGVjYjVlNjFkMTgxZi4uMGYwMDhlMjE4ZjA4ZjdiZDY2ZjZkNWQ5Yzk2
N2I5OGVmM2UyOWMwMyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBi
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEwLTA2LTE3ICBT
YXRpc2ggU2FtcGF0aCAgPHNhdGlzaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgYmFyZSBib25lcyBzcGVlY2ggVUkg
Zm9yIGlucHV0IGVsZW1lbnRzIHdpdGggQHNwZWVjaCBhdHRyaWJ1dGUgc2V0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDc3NgorCisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IENvbXBpbGUgdGltZSBkZWZp
bmUgdG8gY29uZGl0aW9uYWxseSBlbmFibGUgc3BlZWNoIGlucHV0IGZlYXR1cmUuCisKIDIwMTAt
MDYtMTcgIFNodSBDaGFuZyAgPGNoYW5nLnNodUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0
Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDViNTI3OTMx
ZmUyYTBjNzA2ZGMyMGEyNDNmYjMyNjk3N2JhNDAwMmYuLjA4ZDllZjljNDBkY2M1ZDZkMGJjNjM5
M2ZiN2I1MjJkMGE0ZmE5NGQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC01Nyw2ICs1Nyw3IEBAIEVOQUJMRV9H
RU9MT0NBVElPTiA9IEVOQUJMRV9HRU9MT0NBVElPTjsKIEVOQUJMRV9JQ09OREFUQUJBU0UgPSBF
TkFCTEVfSUNPTkRBVEFCQVNFOwogRU5BQkxFX0lNQUdFX1JFU0laRVIgPSA7CiBFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSA9IDsKK0VOQUJMRV9JTlBVVF9TUEVFQ0ggPSA7CiBFTkFCTEVfSkFWQVND
UklQVF9ERUJVR0dFUiA9IEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSOwogRU5BQkxFX01BVEhN
TCA9IDsKIEVOQUJMRV9NRVRFUl9UQUcgPSBFTkFCTEVfTUVURVJfVEFHOwpAQCAtODEsNCArODIs
NCBAQCBFTkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVO
QUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNE
X0NBTlZBUykgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CX1NMSUNFKSAkKEVO
QUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
KSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNU
KSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVO
QUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9SRUFERVIp
ICQoRU5BQkxFX0ZJTEVfV1JJVEVSKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNP
TkRBVEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5B
QkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkpICQo
RU5BQkxFX1NBTkRCT1gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQo
RU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZH
X0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JF
SUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1dF
Ql9TT0NLRVRTKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1M
TVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQo
RU5BQkxFXzNEX0NBTlZBUykgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CX1NM
SUNFKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxF
X0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTV9TVE9S
QUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklM
RV9SRUFERVIpICQoRU5BQkxFX0ZJTEVfV1JJVEVSKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChF
TkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRf
REVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxF
X1BST0dSRVNTX1RBRykgJChFTkFCTEVfUlVCWSkgJChFTkFCTEVfU0FOREJPWCkgJChFTkFCTEVf
U0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChF
TkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5B
QkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdf
VVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dNTCkg
JChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5B
QkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGMwYjBjYzI4MWY0YWVhYWQ2MmE4MmNhMmQ2ZWMyMzEwNDFmNzNi
YjYuLmJmZDg3ZDVhN2EzNjIzYzgwZDhkZGJiMTY0YTBmZGQ3NDhlYjVhZmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMC0wNi0xNyAgU2F0aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBhIGJhcmUgYm9uZXMgc3BlZWNoIFVJIGZvciBpbnB1dCBlbGVtZW50cyB3aXRoIEBzcGVlY2gg
YXR0cmlidXRlIHNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDA3NzYKKworICAgICAgICBCYXNpYyBsYXlvdXQgdGVzdCBhbmQgYXNzb2NpYXRlZCBz
ZXR1cCBmb3IgdGVzdGluZyBzcGVlY2ggaW5wdXQgQVBJLiBTaW5jZSB0aGUKKyAgICAgICAgQVBJ
IGNvZGUgaXMgZGlzYWJsZWQgZm9yIG5vdywgdGhlIHRlc3RzIGFyZSBhZGRlZCB0byB0aGUgc2tp
cCBsaXN0cyBvbiBhbGwgcGxhdGZvcm1zLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC10
ZXh0LXNwZWVjaC1idXR0b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL2lucHV0LXRleHQtc3BlZWNoLWJ1dHRvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2Zvcm1zL3NlYXJjaC1zcGVlY2gtYW5kLWNhbmNlbC1idXR0b25zLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zZWFyY2gtc3BlZWNoLWFuZC1jYW5jZWwtYnV0dG9u
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0wNi0xOCAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaC1idXR0b24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaC1i
dXR0b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwMGYzYWVhNDE4MjkwZGJkYjNhNTRmNWUx
OGZmNmYzZmE1MDE4NjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXRleHQtc3BlZWNoLWJ1dHRvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitD
bGlja2luZyB0aGUgc3BlZWNoIGJ1dHRvbiBzaG91bGQgZmlsbCBpbiBtb2NrIHNwZWVjaC1yZWNv
Z25pemVkIHRleHQuCisKKworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC10ZXh0LXNwZWVjaC1idXR0b24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtdGV4dC1zcGVlY2gtYnV0dG9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg4NjQzMzJkMDQ0YzM1
MzBjZDhiNGEyOTZiMjdhMTVkOTQ2YjQ5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaW5wdXQtdGV4dC1zcGVlY2gtYnV0dG9uLmh0bWwKQEAgLTAsMCArMSwzNCBA
QAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+SW5wdXQgRmllbGQgd2l0aCBTcGVlY2g8L3Rp
dGxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+
CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgICA8cD4KKyAgICAgICAgQ2xpY2tpbmcgdGhlIHNwZWVjaCBidXR0b24gc2hvdWxkIGZp
bGwgaW4gbW9jayBzcGVlY2gtcmVjb2duaXplZCB0ZXh0LgorICAgIDwvcD4KKyAgICA8aW5wdXQg
dHlwZT0idGV4dCIgaWQ9InRhcmdldCIgc3BlZWNoPgorICAgIDxwIGlkPSJyZXN1bHQiIHN0eWxl
PSJtYXJnaW4tdG9wOiA2MHB4OyI+PC9wPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBSaWdodCBub3cgdGhlIG1v
Y2sgc3RyaW5nICd0ZXN0JyBpcyBoYXJkd2lyZWQgaW4gdGhlIGNvZGUuCisgICAgICAgICAgICAv
LyBPbmNlIGEgU3BlZWNoIHNlcnZpY2UgaGFzIGJlZW4gaW1wbGVtZW50ZWQgaW5pdGlhbGl6ZSBh
IG1vY2sgc3BlZWNoIHNlcnZpY2UgaGVyZQorICAgICAgICAgICAgLy8gYW5kIHJlbW92ZSB0aGUg
aGFyZHdpcmVkIHRlc3Qgc3RyaW5nLgorICAgICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKKyAgICAgICAgICAgIHZhciB4ID0gdGFyZ2V0Lm9m
ZnNldExlZnQgKyB0YXJnZXQub2Zmc2V0V2lkdGggLSA0OworICAgICAgICAgICAgdmFyIHkgPSB0
YXJnZXQub2Zmc2V0VG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlRG93bigpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAg
ICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKKyAgICAg
ICAgICAgIGlmICh0YXJnZXQudmFsdWUgPT0gInRlc3QiKQorICAgICAgICAgICAgICAgIHJlc3Vs
dC5pbm5lclRleHQgPSAiUEFTUyI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
cmVzdWx0LmlubmVyVGV4dCA9ICJGQUlMIjsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWFyY2gt
c3BlZWNoLWFuZC1jYW5jZWwtYnV0dG9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3NlYXJjaC1zcGVlY2gtYW5kLWNhbmNlbC1idXR0b25zLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZDYxMTZhOTQ2MzMzMTNiY2Q2ZmEwM2E4YzdlNzBjMTk1NmE5ZWViCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWFyY2gtc3BlZWNoLWFuZC1jYW5j
ZWwtYnV0dG9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0cyB0aGF0IHRoZSBz
cGVlY2ggYnV0dG9uIGlzIHBsYWNlZCBhdCB0aGUgZmFyIHJpZ2h0IG9mIHRoZSBzZWFyY2ggZmll
bGQgYW5kIHRoZQorc2VhcmNoIGZpZWxkJ3MgY2FuY2VsIGJ1dHRvbiBpcyBwbGFjZWQgdG8gdGhl
IGxlZnQgb2YgdGhlIHNwZWVjaCBidXR0b24uCitDbGlja2luZyB0aGUgc3BlZWNoIGJ1dHRvbiBz
aG91bGQgZmlsbCBpbiBtb2NrIHNwZWVjaC1yZWNvZ25pemVkIHRleHQgYW5kIGNsaWNraW5nIHRo
ZQorY2FuY2VsIGJ1dHRvbiBzaG91bGQgY2xlYXIgaXQuCisKKworUEFTUwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWFyY2gtc3BlZWNoLWFuZC1jYW5jZWwtYnV0dG9ucy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWFyY2gtc3BlZWNoLWFuZC1jYW5jZWwtYnV0
dG9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlNzk0Yzg2MmIxMmM0ZWM3MDkyNTE1NTFhN2M1MWJiNWI5
M2FkZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1z
cGVlY2gtYW5kLWNhbmNlbC1idXR0b25zLmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPGh0bWw+Cis8
aGVhZD4KKyAgICA8dGl0bGU+SW5wdXQgRmllbGQgd2l0aCBTcGVlY2g8L3RpdGxlPgorICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD4K
KyAgICAgICAgVGVzdHMgdGhhdCB0aGUgc3BlZWNoIGJ1dHRvbiBpcyBwbGFjZWQgYXQgdGhlIGZh
ciByaWdodCBvZiB0aGUgc2VhcmNoIGZpZWxkIGFuZCB0aGU8YnIgLz4KKyAgICAgICAgc2VhcmNo
IGZpZWxkJ3MgY2FuY2VsIGJ1dHRvbiBpcyBwbGFjZWQgdG8gdGhlIGxlZnQgb2YgdGhlIHNwZWVj
aCBidXR0b24uPGJyIC8+CisgICAgICAgIENsaWNraW5nIHRoZSBzcGVlY2ggYnV0dG9uIHNob3Vs
ZCBmaWxsIGluIG1vY2sgc3BlZWNoLXJlY29nbml6ZWQgdGV4dCBhbmQgY2xpY2tpbmcgdGhlPGJy
IC8+CisgICAgICAgIGNhbmNlbCBidXR0b24gc2hvdWxkIGNsZWFyIGl0LgorICAgIDwvcD4KKyAg
ICA8aW5wdXQgdHlwZT0ic2VhcmNoIiBpZD0idGFyZ2V0IiBzcGVlY2g+CisgICAgPHAgaWQ9InJl
c3VsdCIgc3R5bGU9Im1hcmdpbi10b3A6IDYwcHg7Ij48L3A+CisgICAgPHNjcmlwdD4KKyAgICAg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgLy8gRklYTUU6IFJpZ2h0
IG5vdyB0aGUgbW9jayBzdHJpbmcgJ3Rlc3QnIGlzIGhhcmR3aXJlZCBpbiB0aGUgY29kZS4KKyAg
ICAgICAgICAgIC8vIE9uY2UgYSBTcGVlY2ggc2VydmljZSBoYXMgYmVlbiBpbXBsZW1lbnRlZCBp
bml0aWFsaXplIGEgbW9jayBzcGVlY2ggc2VydmljZSBoZXJlCisgICAgICAgICAgICAvLyBhbmQg
cmVtb3ZlIHRoZSBoYXJkd2lyZWQgdGVzdCBzdHJpbmcuCisgICAgICAgICAgICB2YXIgdGFyZ2V0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworICAgICAgICAgICAgdmFyIHgg
PSB0YXJnZXQub2Zmc2V0TGVmdCArIHRhcmdldC5vZmZzZXRXaWR0aCAtIDQ7CisgICAgICAgICAg
ICB2YXIgeSA9IHRhcmdldC5vZmZzZXRUb3AgKyB0YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
CisgICAgICAgICAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3Vs
dCIpOworICAgICAgICAgICAgaWYgKHRhcmdldC52YWx1ZSAhPSAidGVzdCIpIHsKKyAgICAgICAg
ICAgICAgICByZXN1bHQuaW5uZXJUZXh0ID0gIkZBSUwiOworICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICB4IC09IHRhcmdldC5vZmZzZXRIZWlnaHQgKyA0OworICAgICAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LnZhbHVlID09ICIiKQorICAgICAgICAg
ICAgICAgICAgICByZXN1bHQuaW5uZXJUZXh0ID0gIlBBU1MiOworICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9ICJGQUlMIjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
CmluZGV4IDZkZjQ4NjM3NDI5NjNhMzRkZWIyN2QxODBlZjRlMzQxMzdmYzQxMTcuLjU3ZThmNjdj
MTdkNTE1MzRhY2Y0ZjBkNDA5YzlhN2FlNWMxOTBiNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTI4ODgsMyArMjg4
OCw3IEBAIEJVR1dLMzU5NjEgOiBwcmludGluZy9wYWdlLXJ1bGUtc2VsZWN0aW9uLmh0bWwgPSBU
RVhUCiAKIC8vIE5lZWRzIHRvIGltcGxlbWVudCBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wUmVz
b3VyY2VSZXNwb25zZU1JTUVUeXBlcygpCiBCVUc0Njg3MiA6IGZhc3QvcHJlbG9hZGVyID0gVEVY
VAorCisjIFNwZWVjaCBpbnB1dCBpcyBub3QgeWV0IGVuYWJsZWQuCitCVUc0NDg0NDogZmFzdC9m
b3Jtcy9pbnB1dC10ZXh0LXNwZWVjaC1idXR0b24uaHRtbCA9IFRFWFQKK0JVRzQ0ODQ0OiBmYXN0
L2Zvcm1zL3NlYXJjaC1zcGVlY2gtYW5kLWNhbmNlbC1idXR0b25zLmh0bWwgPSBURVhUCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGRmMWI0NjRkOTUxNDc0ZDRjMDNjY2Y0NTUwYTBmZTk5
YTE1YTRiZDQuLmNjMTliZGNlZTk1NTAwMDVmMmZhMmE3NzI0MGFkZmM3MzY1ZWJjODUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC01OTQ2LDMgKzU5NDYsNyBAQCBlZGl0aW5nL3NlbGVj
dGlvbi81MzU0NDU1LTIuaHRtbAogIyBHdGsgZG9lc24ndCBpbXBsZW1lbnQgZHVtcFJlc291cmNl
UmVzcG9uc2VNSU1FVHlwZXMgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIHRoZQogIyBwcmVsb2FkZXIg
dGVzdHMuCiBmYXN0L3ByZWxvYWRlcgorCisjIFNwZWVjaCBpbnB1dCBpcyBub3QgeWV0IGVuYWJs
ZWQuCitmYXN0L2Zvcm1zL2lucHV0LXRleHQtc3BlZWNoLWJ1dHRvbi5odG1sCitmYXN0L2Zvcm1z
L3NlYXJjaC1zcGVlY2gtYW5kLWNhbmNlbC1idXR0b25zLmh0bQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZAppbmRleCBlZjhlMmZlYzhkYzkxYmNjNmU4ZjhlMGFhZTEwMjUzMzA3NmFhYmVhLi5kMmEx
MDNhOGZhMTRlM2I3OThlMTZmZjZjZTU0OWFjZDFmZjkxZTQxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
U2tpcHBlZApAQCAtMjk1LDMgKzI5NSw3IEBAIGZhc3QvZG9tL0dlb2xvY2F0aW9uL21heGltdW0t
YWdlLmh0bWwKIAogIyBGaWxlbmFtZXMgYXJlbid0IGZpbHRlcmVkIG91dCBmcm9tIGVkaXQgZHJh
Z3MgeWV0LCBzZWUgaHR0cHM6Ly9idWdzLndla2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg4MjYK
IGVkaXRpbmcvcGFzdGVib2FyZC9maWxlLWRyYWctdG8tZWRpdGFibGUuaHRtbAorCisjIFNwZWVj
aCBpbnB1dCBpcyBub3QgeWV0IGVuYWJsZWQuCitmYXN0L2Zvcm1zL2lucHV0LXRleHQtc3BlZWNo
LWJ1dHRvbi5odG1sCitmYXN0L2Zvcm1zL3NlYXJjaC1zcGVlY2gtYW5kLWNhbmNlbC1idXR0b25z
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGM3ZWRmZjk5NWM1ZGI2NDM1NDhhYmU3
OTI4NzljMjA5NzM1MjhmZGYuLjFmM2JkNTQ2NzdiOGJlZGIxMzc0ZjQxZDQwNTc1ZmEyODhkZDRh
ZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtNTQyMSwzICs1NDIxLDcgQEAgZmFzdC9l
bmNvZGluZy9qYXBhbmVzZS1lbmNvZGluZy1taXguaHRtbAogIyBRdCBkb2Vzbid0IGltcGxlbWVu
dCBkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyB3aGljaCBpcyByZXF1aXJlZCBmb3IgdGhl
CiAjIHByZWxvYWRlciB0ZXN0cy4KIGZhc3QvcHJlbG9hZGVyCisKKyMgU3BlZWNoIGlucHV0IGlz
IG5vdCB5ZXQgZW5hYmxlZC4KK2Zhc3QvZm9ybXMvaW5wdXQtdGV4dC1zcGVlY2gtYnV0dG9uLmh0
bWwKK2Zhc3QvZm9ybXMvc2VhcmNoLXNwZWVjaC1hbmQtY2FuY2VsLWJ1dHRvbnMuaHRtbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA5MWEwMGI5MjVjOWM4N2Q0ZmI4NDdmZTcwNzhkOGU3
YzcwMDVkOThiLi40NzgzZmJjZTNlN2QzYzRlNTdkYmQxODE3NjUyZTU0NzZjMmQ0MmY2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtODk4LDMgKzg5OCw3IEBAIGZhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcHJvcGVydGllcy1vbi1kZXZpY2Utb3JpZW50YXRpb24uaHRtbAogCiAjIExheW91
dFRlc3RDb250cm9sbGVyOjpwYWdlUHJvcGVydHkgaXMgbm90IGltcGxlbWVudGVkIGZvciBXSU4g
eWV0LgogcHJpbnRpbmcvcGFnZS1ydWxlLXNlbGVjdGlvbi5odG1sCisKKyMgU3BlZWNoIGlucHV0
IGlzIG5vdCB5ZXQgZW5hYmxlZC4KK2Zhc3QvZm9ybXMvaW5wdXQtdGV4dC1zcGVlY2gtYnV0dG9u
Lmh0bWwKK2Zhc3QvZm9ybXMvc2VhcmNoLXNwZWVjaC1hbmQtY2FuY2VsLWJ1dHRvbnMuaHRtbApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAw
MWYxZjIxZjQ0OTgzZmUzM2MwNjkyY2I2YmE0NTAzNzA1MGQxMmViLi5hYmQxMzhlNWZkM2Q2ZjEw
NTEzZWFmZTczN2Y5NDFiM2I3NTg3Mzk3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDEwLTA2LTE3ICBTYXRp
c2ggU2FtcGF0aCAgPHNhdGlzaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgYmFyZSBib25lcyBzcGVlY2ggVUkgZm9y
IGlucHV0IGVsZW1lbnRzIHdpdGggQHNwZWVjaCBhdHRyaWJ1dGUgc2V0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDc3NgorCisgICAgICAgIFNwZWVj
aCBpbnB1dCBVSSBDU1Mgc3R5bGVzIGFkZGVkIHRvIFVBIHN0eWxlc2hlZXQgYW5kIENTUyBwYXJz
aW5nIGNvZGUuCisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQgcmVjb2duaXplcyAnQHNwZWVjaCcg
YXMgYSB2YWxpZCBhdHRyaWJ1dGUuCisgICAgICAgIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZSBhZGRzIGEgc3BlZWNoIGJ1dHRvbiB0byB0aGUgdGV4dCBmaWVsZCBpZiAnQHNwZWVjaCcgYXR0
cmlidXRlIGlzIHNldC4KKyAgICAgICAgUmVuZGVySW5wdXRTcGVlY2hDaHJvbWl1bSBhZGRlZCBh
bmQgUmVuZGVyVGhlbWUqIGZpbGVzIG1vZGlmaWVkIHRvIHJlbmRlciB0aGUgc3BlZWNoIGlucHV0
IGNvbnRyb2wuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvaW5wdXQtdGV4dC1zcGVlY2gt
YnV0dG9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvc2VhcmNoLXNwZWVjaC1hbmQt
Y2FuY2VsLWJ1dHRvbnMuaHRtbAorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWc6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgor
ICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxl
Y3Rvcjo6cHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6bmFtZVRvUHNldWRvVHlwZU1hcCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOgorICAg
ICAgICAqIGNzcy9DU1NTZWxlY3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6
Oik6CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL2h0
bWwuY3NzOgorICAgICAgICAoaW5wdXQ6Oi13ZWJraXQtaW5wdXQtc3BlZWNoLXN0YXR1cyk6Cisg
ICAgICAgICogZG9tL0lucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppc1NwZWVjaEVuYWJsZWQpOgorICAgICAgICAq
IGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1RoZW1lVHlwZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklucHV0
U3BlZWNoQ2hyb21pdW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnBsYXRmb3JtUmVz
b3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5wdXRTcGVlY2hDaHJvbWl1bTo6cmVs
ZWFzZUltYWdlcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbnB1dFNwZWVjaENocm9taXVt
OjpwYWludElucHV0RmllbGRTcGVlY2hCdXR0b24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJJbnB1dFNwZWVjaENocm9taXVtLmg6IEFkZGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lOjpub2RlQXRQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmZvcndhcmRFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6aGFzQ29udHJvbENsaXApOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpjb250cm9sQ2xp
cFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp0
ZXh0QmxvY2tXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmU6OnByZWZlcnJlZENvbnRlbnRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OmFkanVzdENvbnRyb2xIZWlnaHRCYXNlZE9uTGluZUhlaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmNyZWF0
ZVN1YnRyZWVJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmU6OmNyZWF0ZVNwZWVjaEJ1dHRvblN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Y2xpZW50UGFkZGluZ1JpZ2h0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjph
ZGp1c3RTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50Qm9yZGVyT25seSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0aW9ucyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0
SW5wdXRGaWVsZFNwZWVjaEJ1dHRvblN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lOjpwYWludElucHV0RmllbGRTcGVlY2hCdXR0b24pOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZUNocm9taXVtTWFjLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFj
Ojp+UmVuZGVyVGhlbWVDaHJvbWl1bU1hYyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUNocm9taXVtTWFjOjpwYWludElucHV0RmllbGRTcGVlY2hCdXR0b24pOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6flJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjphZGp1c3RJbnB1dEZpZWxkU3Bl
ZWNoQnV0dG9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVNr
aWE6OnBhaW50SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1Ta2lhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnNwZWVjaEJ1dHRvblNpemVzKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lTWFjOjphZGp1c3RJbnB1dEZpZWxkU3BlZWNoQnV0dG9uU3R5bGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50SW5wdXRGaWVsZFNwZWVj
aEJ1dHRvbik6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6SW5w
dXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRGaWVs
ZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZp
ZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0
RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAg
KiByZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmg6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjopOgor
CiAyMDEwLTA2LTE4ICBMdWNhcyBEZSBNYXJjaGkgIDxsdWNhcy5kZW1hcmNoaUBwcm9mdXNpb24u
bW9iaT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9XZWJDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDViNTI3OTMxZmUyYTBj
NzA2ZGMyMGEyNDNmYjMyNjk3N2JhNDAwMmYuLjA4ZDllZjljNDBkY2M1ZDZkMGJjNjM5M2ZiN2I1
MjJkMGE0ZmE5NGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKKysrIGIvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwpAQCAtNTcsNiArNTcsNyBAQCBFTkFCTEVfR0VPTE9DQVRJT04gPSBFTkFCTEVf
R0VPTE9DQVRJT047CiBFTkFCTEVfSUNPTkRBVEFCQVNFID0gRU5BQkxFX0lDT05EQVRBQkFTRTsK
IEVOQUJMRV9JTUFHRV9SRVNJWkVSID0gOwogRU5BQkxFX0lOREVYRURfREFUQUJBU0UgPSA7CitF
TkFCTEVfSU5QVVRfU1BFRUNIID0gOwogRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIgPSBFTkFC
TEVfSkFWQVNDUklQVF9ERUJVR0dFUjsKIEVOQUJMRV9NQVRITUwgPSA7CiBFTkFCTEVfTUVURVJf
VEFHID0gRU5BQkxFX01FVEVSX1RBRzsKQEAgLTgxLDQgKzgyLDQgQEAgRU5BQkxFX1hIVE1MTVAg
PSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9Y
U0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNE
X1JFTkRFUklORykgJChFTkFCTEVfQkxPQl9TTElDRSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJ
TkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0Up
ICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQo
RU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfUkVBREVSKSAkKEVOQUJMRV9GSUxFX1dSSVRF
UikgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVf
SU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSkFWQVND
UklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5B
QkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChF
TkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJMRV9TQU5EQk9YKSAkKEVO
QUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9O
KSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykg
JChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxF
X1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVf
V01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkg
JChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9DQU5WQVMpICQo
RU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQl9TTElDRSkgJChFTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVf
REFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRT
T1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfUkVBREVSKSAkKEVOQUJMRV9G
SUxFX1dSSVRFUikgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkg
JChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFC
TEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9N
QVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5B
QkxFX1JVQlkpICQoRU5BQkxFX1NBTkRCT1gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVO
QUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkg
JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8p
ICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQo
RU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4
IDgwNzI3MmYzZjFjMTFjYTJiOTgzMGQ5MDBlY2EzNmNjYWRiM2E0ZWUuLjQ3YTFhZWExNmRkNmIx
OTk0ODcwOTgwNGZhNDAyYzgzODk2YzA1MzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjU5MCw2ICsyNTkwLDE3IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiBlbmRpZiAjIEVORCBFTkFCTEVfRE9NX1NUT1JBR0UKIAog
IyAtLS0tCisjIFNwZWVjaCBJbnB1dCBBUEkgc3VwcG9ydAorIyAtLS0tCitpZiBFTkFCTEVfSU5Q
VVRfU1BFRUNICitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX0lOUFVUX1NQRUVDSD0xCisKK0hU
TUxfRkVBVFVSRSArPSBFTkFCTEVfSU5QVVRfU1BFRUNIPTEKK3dlYmNvcmVfY3BwZmxhZ3MgKz0g
LURFTkFCTEVfSU5QVVRfU1BFRUNIPTEKKworZW5kaWYgIyBFTkQgRU5BQkxFX0lOUFVUX1NQRUVD
SAorCisjIC0tLS0KICMgSWNvbiBEYXRhYmFzZSBTdXBwb3J0CiAjIC0tLS0KIGlmIEVOQUJMRV9J
Q09OREFUQUJBU0UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggOTljZmM3ZTkzM2E5Y2VkYjlhYzg0MGVhMjFiMDg1YjRkZjQ1YTJh
NC4uYTI5OTUwOThlMWFiZDUyZTcxNzkzNzNkYmU1ODc5ZDVlMGVmZjg3OSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMxNTgs
NiArMzE1OCw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlckluZGljYXRvci5oJywK
ICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCcsCiAgICAgICAgICAgICAn
cmVuZGVyaW5nL1JlbmRlcklubGluZS5oJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVy
SW5wdXRTcGVlY2hDaHJvbWl1bS5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJJ
bnB1dFNwZWVjaENocm9taXVtLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJMYXllci5oJywKICAgICAgICAg
ICAgICdyZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggZjY0NmIyOWU0MzAwOTkwNjU2NTM4ZGVmN2JkZTkz
NzFkYjdjY2M2Ni4uNWJjZjAxOTVjYjVhMTViNGE4MTNkYTNjM2M2MzJlNTA5MzVjMzJjMSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1dl
YkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtMzQ0LDYgKzM0NCwxMSBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
Q29udHJvbFBhcnQgZSkKICAgICAgICAgY2FzZSBDYXBzTG9ja0luZGljYXRvclBhcnQ6CiAgICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDYXBzTG9ja0luZGljYXRvcjsKICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIElucHV0U3BlZWNoUGFydDoKKyNpZiBFTkFCTEUo
SU5QVVRfU1BFRUNIKQorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSW5wdXRT
cGVlY2g7CisjZW5kaWYKKyAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3Iu
Y3BwCmluZGV4IDNmZjkzNzNkZGU2Njc2NzI1NTQ5ZGM4MDIzYzhlOTc5OTUwNjIwODYuLjE4ZGNl
ZTk4Yzc4MGE4OTI4ZjE4MGEyNDE0YzgzNWFlYjFjMjllZWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKQEAg
LTUsNiArNSw3IEBACiAgKiAgICAgICAgICAgICAgIDIwMDEtMjAwMyBEaXJrIE11ZWxsZXIgKG11
ZWxsZXJAa2RlLm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNiwgMjAwNywgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRGF2
aWQgU21pdGggKGNhdGZpc2gubWFuQGdtYWlsLmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0x
MDUsNiArMTA2LDEwIEBAIFBzZXVkb0lkIENTU1NlbGVjdG9yOjpwc2V1ZG9JZChQc2V1ZG9UeXBl
IHR5cGUpCiAgICAgICAgIHJldHVybiBBRlRFUjsKICAgICBjYXNlIFBzZXVkb0ZpbGVVcGxvYWRC
dXR0b246CiAgICAgICAgIHJldHVybiBGSUxFX1VQTE9BRF9CVVRUT047CisjaWYgRU5BQkxFKElO
UFVUX1NQRUVDSCkKKyAgICBjYXNlIFBzZXVkb0lucHV0U3BlZWNoU3RhdHVzOgorICAgICAgICBy
ZXR1cm4gSU5QVVRfU1BFRUNIX1NUQVRVUzsKKyNlbmRpZgogICAgIGNhc2UgUHNldWRvSW5wdXRQ
bGFjZWhvbGRlcjoKICAgICAgICAgcmV0dXJuIElOUFVUX1BMQUNFSE9MREVSOwogICAgIGNhc2Ug
UHNldWRvU2xpZGVyVGh1bWI6CkBAIC0yODAsNiArMjg1LDkgQEAgc3RhdGljIEhhc2hNYXA8QXRv
bWljU3RyaW5nSW1wbCosIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlw
ZU1hcCgKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYmVmb3JlLCAoImJl
Zm9yZSIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY2hlY2tlZCwg
KCJjaGVja2VkIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxl
VXBsb2FkQnV0dG9uLCAoIi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIikpOworI2lmIEVOQUJM
RShJTlBVVF9TUEVFQ0gpCisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlu
cHV0U3BlZWNoU3RhdHVzLCAoIi13ZWJraXQtaW5wdXQtc3BlZWNoLXN0YXR1cyIpKTsKKyNlbmRp
ZgogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZWZhdWx0U3RyaW5nLCAo
ImRlZmF1bHQiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRpc2Fi
bGVkLCAoImRpc2FibGVkIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCByZWFkT25seSwgKCJyZWFkLW9ubHkiKSk7CkBAIC0zOTAsNiArMzk4LDkgQEAgc3RhdGljIEhh
c2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlPiogbmFtZVRv
UHNldWRvVHlwZU1hcCgKICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KGJlZm9yZS5pbXBs
KCksIENTU1NlbGVjdG9yOjpQc2V1ZG9CZWZvcmUpOwogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBl
LT5zZXQoY2hlY2tlZC5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9DaGVja2VkKTsKICAgICAg
ICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KGZpbGVVcGxvYWRCdXR0b24uaW1wbCgpLCBDU1NTZWxl
Y3Rvcjo6UHNldWRvRmlsZVVwbG9hZEJ1dHRvbik7CisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkK
KyAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KGlucHV0U3BlZWNoU3RhdHVzLmltcGwoKSwg
Q1NTU2VsZWN0b3I6OlBzZXVkb0lucHV0U3BlZWNoU3RhdHVzKTsKKyNlbmRpZgogICAgICAgICBu
YW1lVG9Qc2V1ZG9UeXBlLT5zZXQoZGVmYXVsdFN0cmluZy5pbXBsKCksIENTU1NlbGVjdG9yOjpQ
c2V1ZG9EZWZhdWx0KTsKICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KGRpc2FibGVkLmlt
cGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0Rpc2FibGVkKTsKICAgICAgICAgbmFtZVRvUHNldWRv
VHlwZS0+c2V0KHJlYWRPbmx5LmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb1JlYWRPbmx5KTsK
QEAgLTUxNyw2ICs1MjgsOSBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgp
IGNvbnN0CiAgICAgY2FzZSBQc2V1ZG9GaXJzdExpbmU6CiAgICAgICAgIGNvbXBhdCA9IHRydWU7
CiAgICAgY2FzZSBQc2V1ZG9GaWxlVXBsb2FkQnV0dG9uOgorI2lmIEVOQUJMRShJTlBVVF9TUEVF
Q0gpCisgICAgY2FzZSBQc2V1ZG9JbnB1dFNwZWVjaFN0YXR1czoKKyNlbmRpZgogICAgIGNhc2Ug
UHNldWRvSW5wdXRMaXN0QnV0dG9uOgogICAgIGNhc2UgUHNldWRvSW5wdXRQbGFjZWhvbGRlcjoK
ICAgICBjYXNlIFBzZXVkb0lubmVyU3BpbkJ1dHRvbjoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmggYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IGY1YjU2ZWYz
ZWVlY2UzMDM1YzYwNDkxNTM3MTk0YzgxY2FmZGZhODUuLjMyMDJhZDBhMWFmNzk5ZmE3ODBjMjkx
NzZiY2E1Njk2ZjM1Nzk3MjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgK
KysrIGIvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApAQCAtMTk2LDYgKzE5Niw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFBzZXVkb01ldGVyVmVydGljYWxTdWJvcHRpbWFs
LAogICAgICAgICAgICAgUHNldWRvTWV0ZXJWZXJ0aWNhbEV2ZW5MZXNzR29vZCwKICAgICAgICAg
ICAgIFBzZXVkb0lucHV0TGlzdEJ1dHRvbiwKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAg
ICAgICAgICAgUHNldWRvSW5wdXRTcGVlY2hTdGF0dXMsCisjZW5kaWYKICAgICAgICAgICAgIFBz
ZXVkb0lubmVyU3BpbkJ1dHRvbiwKICAgICAgICAgICAgIFBzZXVkb091dGVyU3BpbkJ1dHRvbiwK
ICAgICAgICAgICAgIFBzZXVkb1Byb2dyZXNzQmFyVmFsdWUsCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bgppbmRleCAxNTQxODNiNTQ0NTgzZmU1YmY3MjYyMzc2N2Y3ZGI1ZmUxMzNkNWMzLi44ZWRjODk1
YWNlZGVjYTJmOGY3OTBlZGEyMzgwYTlhNDU0ODk1NmViIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4KQEAgLTU2Niw2ICs1NjYsNyBAQCBidXR0b24KIGJ1dHRvbi1iZXZlbAogZGVmYXVsdC1idXR0
b24KIGlubmVyLXNwaW4tYnV0dG9uCitpbnB1dC1zcGVlY2gKIGxpc3QtYnV0dG9uCiBsaXN0Ym94
CiBsaXN0aXRlbQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvaHRtbC5jc3MgYi9XZWJDb3JlL2Nz
cy9odG1sLmNzcwppbmRleCAxNjMzNGNmMjUxZGE2N2E1YWI3YWFjMzU0ODAxYjAwMTI4YWE0MTg5
Li5mNjI5ODIwY2JjMmQ3MGI3NWVkMDlmZjc3NjNlOGQ4YTY3NmUwNjU4IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9odG1sLmNzcworKysgYi9XZWJDb3JlL2Nzcy9odG1sLmNzcwpAQCAtMzcyLDYg
KzM3MiwxMSBAQCBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7CiAgICAgLXdlYmtp
dC11c2VyLXNlbGVjdDogbm9uZTsKIH0KIAoraW5wdXQ6Oi13ZWJraXQtaW5wdXQtc3BlZWNoLXN0
YXR1cyB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBpbnB1dC1zcGVlY2g7CisgICAgZGlzcGxh
eTogaW5saW5lLWJsb2NrOworfQorCiB0ZXh0YXJlYSB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNl
OiB0ZXh0YXJlYTsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL0lucHV0RWxlbWVudC5oIGIvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKaW5k
ZXggZDQ3NzA0NjQ0YmFiOTc2NjE4ODQ0ZGY2Njk0MmVkOWVkMzYyZjBhNS4uNzRkZTVmODQ2NmJh
YTM1ZDEzZjI5ODJhODU4MmQxZTUxMTI2ODQwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vSW5w
dXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKQEAgLTQ0LDYgKzQ0
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IGJvb2wgaGFzU3BpbkJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjaWYgRU5BQkxF
KElOUFVUX1NQRUVDSCkKKyAgICB2aXJ0dWFsIGJvb2wgaXNTcGVlY2hFbmFibGVkKCkgY29uc3Qg
PSAwOworI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgc2VhcmNoRXZlbnRzU2hvdWxkQmVEaXNw
YXRjaGVkKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJp
YnV0ZU5hbWVzLmluIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgppbmRleCA5
MGIyNDlhNGExNzRkYjJmM2M0NjVlZDRmYjg3YmU2OTYyOGFiNmE0Li5lYmNhZmMzMTNkMDE3MmIx
MTA4YWVlZWFkOTU4NmFjOGI1YTQyMDYzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEF0
dHJpYnV0ZU5hbWVzLmluCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4K
QEAgLTI1NCw2ICsyNTQsNyBAQCBzaXplCiBzb3J0YWJsZQogc29ydGRpcmVjdGlvbgogc3Bhbgor
c3BlZWNoCiBzcGVsbGNoZWNrCiBzcmMKIHN0YW5kYnkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cAppbmRleCA3ZGI5NjFlM2VjOWU1ZmY5MDE2MjNiODQyOWFjY2RiNzJiZTRjZDdmLi5iZWMzZGJi
YzVkM2JkYzA4NjJkMWZiM2MyZTE2ZTU0MTc1YjA5YjhlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCkBAIC01LDYgKzUsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20p
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMjgxNiw2ICsyODE3LDMzIEBAIHZvaWQgSFRNTElucHV0RWxl
bWVudDo6c2V0V2FwSW5wdXRGb3JtYXQoU3RyaW5nJiBtYXNrKQogfQogI2VuZGlmCiAKLQorI2lm
IEVOQUJMRShJTlBVVF9TUEVFQ0gpCitib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzU3BlZWNoRW5h
YmxlZCgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgeworICAgIGNhc2UgVEVY
VDoKKyAgICBjYXNlIFBBU1NXT1JEOgorICAgIGNhc2UgU0VBUkNIOgorICAgIGNhc2UgTlVNQkVS
OgorICAgIGNhc2UgVEVMRVBIT05FOgorICAgICAgICByZXR1cm4gaGFzQXR0cmlidXRlKHNwZWVj
aEF0dHIpOworICAgIC8qIEZJWE1FOiBFbmFibGUgdGhlIGZvbGxvd2luZyBhcyB0aGUgcmVuZGVy
ZXJzIGFyZSB1cGRhdGVkIHRvIGluY2x1ZGUgc3BlZWNoIFVJLgorICAgIGNhc2UgUkFOR0U6Cisg
ICAgY2FzZSBFTUFJTDoKKyAgICBjYXNlIFVSTDoKKyAgICBjYXNlIENPTE9SOgorICAgIGNhc2Ug
REFURToKKyAgICBjYXNlIERBVEVUSU1FOgorICAgIGNhc2UgREFURVRJTUVMT0NBTDoKKyAgICBj
YXNlIE1PTlRIOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFdFRUs6CisgICAgKi8KKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorI2Vu
ZGlmCiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCBhOWE3YmIw
ZTJlNTY4NTA3M2I5N2U4NTA4Y2VhZTdhMGEyNTkwZTZkLi4yNzc5NjYxOGU2N2M2NzBiOTZiNmJk
MDQ3YTQyMDA4ZmVlZGUyOTE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTEwNSw2ICsx
MDUsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc051bWJlckZpZWxkKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlID09IE5VTUJFUjsgfQogICAgIGJvb2wgaXNFbWFpbEZpZWxkKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlID09IEVNQUlMOyB9CiAgICAgYm9vbCBpc1VybEZpZWxkKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlID09IFVSTDsgfQorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAgdmlydHVh
bCBib29sIGlzU3BlZWNoRW5hYmxlZCgpIGNvbnN0OworI2VuZGlmCiAKICAgICBib29sIGNoZWNr
ZWQoKSBjb25zdCB7IHJldHVybiBtX2NoZWNrZWQ7IH0KICAgICB2b2lkIHNldENoZWNrZWQoYm9v
bCwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL1RoZW1lVHlwZXMuaCBiL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCmluZGV4
IDczMTRmYmFkMzNlOGI2N2IzYWQ1NTM0NzBiOWNkZTIwMjcyMjljZmEuLjY4YjcyNzczMzJlNzZh
ZWFjYzIyMWY1YmQzNDcwY2IyY2E0MzA1OTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
VGhlbWVUeXBlcy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCkBAIC00Nyw3
ICs0Nyw3IEBAIHR5cGVkZWYgdW5zaWduZWQgQ29udHJvbFN0YXRlczsKIC8vIE11c3QgZm9sbG93
IENTU1ZhbHVlS2V5d29yZHMuaW4gb3JkZXIKIGVudW0gQ29udHJvbFBhcnQgewogICAgIE5vQ29u
dHJvbFBhcnQsIENoZWNrYm94UGFydCwgUmFkaW9QYXJ0LCBQdXNoQnV0dG9uUGFydCwgU3F1YXJl
QnV0dG9uUGFydCwgQnV0dG9uUGFydCwKLSAgICBCdXR0b25CZXZlbFBhcnQsIERlZmF1bHRCdXR0
b25QYXJ0LCBJbm5lclNwaW5CdXR0b25QYXJ0LCBMaXN0QnV0dG9uUGFydCwgTGlzdGJveFBhcnQs
IExpc3RJdGVtUGFydCwKKyAgICBCdXR0b25CZXZlbFBhcnQsIERlZmF1bHRCdXR0b25QYXJ0LCBJ
bm5lclNwaW5CdXR0b25QYXJ0LCBJbnB1dFNwZWVjaFBhcnQsIExpc3RCdXR0b25QYXJ0LCBMaXN0
Ym94UGFydCwgTGlzdEl0ZW1QYXJ0LAogICAgIE1lZGlhRnVsbHNjcmVlbkJ1dHRvblBhcnQsIE1l
ZGlhTXV0ZUJ1dHRvblBhcnQsIE1lZGlhUGxheUJ1dHRvblBhcnQsIE1lZGlhU2Vla0JhY2tCdXR0
b25QYXJ0LCAKICAgICBNZWRpYVNlZWtGb3J3YXJkQnV0dG9uUGFydCwgTWVkaWFSZXdpbmRCdXR0
b25QYXJ0LCBNZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b25QYXJ0LCBNZWRpYVRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uUGFydCwKICAgICBNZWRpYVNsaWRlclBhcnQsIE1lZGlhU2xpZGVyVGh1
bWJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lclBhcnQsIE1lZGlhVm9sdW1lU2xpZGVy
UGFydCwgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQsCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbnB1dFNwZWVjaENocm9taXVtLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcklucHV0U3BlZWNoQ2hyb21pdW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4NjU0MWQxMjMwMzU4
YTU5NzM5ZmZhNTQzYWJkOTIxZDAwNzFjODYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbnB1dFNwZWVjaENocm9taXVtLmNwcApAQCAtMCwwICsxLDEwNCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorI2luY2x1ZGUgIlJl
bmRlcklucHV0U3BlZWNoQ2hyb21pdW0uaCIKKworI2luY2x1ZGUgIkdyYWRpZW50LmgiCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNp
bmNsdWRlICJSZW5kZXJCb3guaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0eXBlZGVmIFdU
Rjo6SGFzaE1hcDxjb25zdCBjaGFyKiwgSW1hZ2UqPiBJbnB1dFNwZWVjaEltYWdlTWFwOworc3Rh
dGljIElucHV0U3BlZWNoSW1hZ2VNYXAqIGdJbnB1dFNwZWVjaEltYWdlTWFwID0gMDsKKworc3Rh
dGljIEltYWdlKiBwbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIqIG5hbWUpCit7CisgICAgaWYg
KCFnSW5wdXRTcGVlY2hJbWFnZU1hcCkKKyAgICAgICAgZ0lucHV0U3BlZWNoSW1hZ2VNYXAgPSBu
ZXcgSW5wdXRTcGVlY2hJbWFnZU1hcCgpOworICAgIGlmIChJbWFnZSogaW1hZ2UgPSBnSW5wdXRT
cGVlY2hJbWFnZU1hcC0+Z2V0KG5hbWUpKQorICAgICAgICByZXR1cm4gaW1hZ2U7CisgICAgaWYg
KEltYWdlKiBpbWFnZSA9IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShuYW1lKS5yZWxlYXNl
UmVmKCkpIHsKKyAgICAgICAgZ0lucHV0U3BlZWNoSW1hZ2VNYXAtPnNldChuYW1lLCBpbWFnZSk7
CisgICAgICAgIHJldHVybiBpbWFnZTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgUmVuZGVySW5wdXRTcGVlY2hDaHJvbWl1bTo6cmVs
ZWFzZUltYWdlcygpCit7CisgICAgZm9yIChJbnB1dFNwZWVjaEltYWdlTWFwOjppdGVyYXRvciBp
dCA9IGdJbnB1dFNwZWVjaEltYWdlTWFwLT5iZWdpbigpOyBpdCAhPSBnSW5wdXRTcGVlY2hJbWFn
ZU1hcC0+ZW5kKCk7ICsraXQpCisgICAgICAgICgqaXQpLnNlY29uZC0+ZGVyZWYoKTsKKyAgICBk
ZWxldGUgZ0lucHV0U3BlZWNoSW1hZ2VNYXA7CisgICAgZ0lucHV0U3BlZWNoSW1hZ2VNYXAgPSAw
OworfQorCitib29sIFJlbmRlcklucHV0U3BlZWNoQ2hyb21pdW06OnBhaW50SW5wdXRGaWVsZFNw
ZWVjaEJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICAvLyBHZXQgdGhl
IHJlbmRlcmVyIG9mIDxpbnB1dD4gZWxlbWVudC4KKyAgICBOb2RlKiBpbnB1dCA9IG9iamVjdC0+
bm9kZSgpLT5zaGFkb3dBbmNlc3Rvck5vZGUoKTsKKyAgICBpZiAoIWlucHV0LT5yZW5kZXJlcigp
LT5pc0JveCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgUmVuZGVyQm94KiBpbnB1dFJl
bmRlckJveCA9IHRvUmVuZGVyQm94KGlucHV0LT5yZW5kZXJlcigpKTsKKyAgICBJbnRSZWN0IGlu
cHV0Q29udGVudEJveCA9IGlucHV0UmVuZGVyQm94LT5jb250ZW50Qm94UmVjdCgpOworCisgICAg
Ly8gTWFrZSBzdXJlIHRoZSBzY2FsZWQgYnV0dG9uIHN0YXlzIHNxdWFyZSBhbmQgd2lsbCBmaXQg
aW4gaXRzIHBhcmVudCdzIGJveC4KKyAgICBpbnQgYnV0dG9uU2l6ZSA9IHN0ZDo6bWluKGlucHV0
Q29udGVudEJveC53aWR0aCgpLCBzdGQ6Om1pbihpbnB1dENvbnRlbnRCb3guaGVpZ2h0KCksIHJl
Y3QuaGVpZ2h0KCkpKTsKKyAgICAvLyBDYWxjdWxhdGUgYnV0dG9uJ3MgY29vcmRpbmF0ZXMgcmVs
YXRpdmUgdG8gdGhlIGlucHV0IGVsZW1lbnQuCisgICAgLy8gQ2VudGVyIHRoZSBidXR0b24gdmVy
dGljYWxseS4gIFJvdW5kIHVwIHRob3VnaCwgc28gaWYgaXQgaGFzIHRvIGJlIG9uZSBwaXhlbCBv
ZmYtY2VudGVyLCBpdCB3aWxsCisgICAgLy8gYmUgb25lIHBpeGVsIGNsb3NlciB0byB0aGUgYm90
dG9tIG9mIHRoZSBmaWVsZC4gIFRoaXMgdGVuZHMgdG8gbG9vayBiZXR0ZXIgd2l0aCB0aGUgdGV4
dC4KKyAgICBJbnRSZWN0IGJ1dHRvblJlY3Qob2JqZWN0LT5vZmZzZXRGcm9tQW5jZXN0b3JDb250
YWluZXIoaW5wdXRSZW5kZXJCb3gpLndpZHRoKCksCisgICAgICAgICAgICAgICAgICAgICAgIGlu
cHV0Q29udGVudEJveC55KCkgKyAoaW5wdXRDb250ZW50Qm94LmhlaWdodCgpIC0gYnV0dG9uU2l6
ZSArIDEpIC8gMiwKKyAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uU2l6ZSwgYnV0dG9uU2l6
ZSk7CisKKyAgICAvLyBDb21wdXRlIGFuIG9mZnNldCBiZXR3ZWVuIHRoZSBwYXJ0IHJlbmRlcmVy
IGFuZCB0aGUgaW5wdXQgcmVuZGVyZXIuCisgICAgSW50U2l6ZSBvZmZzZXRGcm9tSW5wdXRSZW5k
ZXJlciA9IC0ob2JqZWN0LT5vZmZzZXRGcm9tQW5jZXN0b3JDb250YWluZXIoaW5wdXRSZW5kZXJC
b3gpKTsKKyAgICAvLyBNb3ZlIHRoZSByZWN0IGludG8gcGFydFJlbmRlcmVyJ3MgY29vcmRzLgor
ICAgIGJ1dHRvblJlY3QubW92ZShvZmZzZXRGcm9tSW5wdXRSZW5kZXJlcik7CisgICAgLy8gQWNj
b3VudCBmb3IgdGhlIGxvY2FsIGRyYXdpbmcgb2Zmc2V0LgorICAgIGJ1dHRvblJlY3QubW92ZShy
ZWN0LngoKSwgcmVjdC55KCkpOworCisgICAgc3RhdGljIEltYWdlKiBpbnB1dFNwZWVjaCA9IHBs
YXRmb3JtUmVzb3VyY2UoImlucHV0U3BlZWNoIik7CisgICAgcGFpbnRJbmZvLmNvbnRleHQtPmRy
YXdJbWFnZShpbnB1dFNwZWVjaCwgb2JqZWN0LT5zdHlsZSgpLT5jb2xvclNwYWNlKCksIGJ1dHRv
blJlY3QpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW5wdXRTcGVlY2hDaHJvbWl1bS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5wdXRTcGVlY2hDaHJvbWl1bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1N2VhZWRhZjg3MjNhNmM3
NWFlNzk0NWNmOTk2MTY3NzBmMGE3NTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbnB1dFNwZWVjaENocm9taXVtLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJl
bmRlcklucHV0U3BlZWNoQ2hyb21pdW1faAorI2RlZmluZSBSZW5kZXJJbnB1dFNwZWVjaENocm9t
aXVtX2gKKworI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorCisjaWYgRU5BQkxFKElOUFVUX1NQ
RUVDSCkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJJbnB1dFNwZWVjaENo
cm9taXVtIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBwYWludElucHV0RmllbGRTcGVlY2hC
dXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0Jik7CisgICAgc3RhdGljIHZvaWQgcmVsZWFzZUltYWdlcygpOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKyNlbmRpZiAvLyBSZW5kZXJJbnB1dFNwZWVj
aENocm9taXVtX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUuY3BwCmluZGV4IDJkYmZiOWY2ZjUwYzllZWNmOTA3YjAyYzUxOTdkN2YzNDk5ZWFi
YmYuLjYwNDI1M2YyMTAyODMyYzkyNzQwOTlmY2I3Y2I0YzI0YzQwNGY2NTYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtMSw2
ICsxLDcgQEAKIC8qKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwOCBUb3JjaCBNb2Jp
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20v
KSAKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yODgsOSArMjg5LDEzIEBAIGJvb2wgUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lOjpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgSGl0CiAgICAgLy8gSWYgd2UgZm91bmQgYSBzcGluIGJ1dHRvbiwgd2UncmUgZG9uZS4K
ICAgICBpZiAobV9vdXRlclNwaW5CdXR0b24gJiYgcmVzdWx0LmlubmVyTm9kZSgpID09IG1fb3V0
ZXJTcGluQnV0dG9uKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAvLyBJZiB3ZSdyZSBub3Qg
YSBzZWFyY2ggZmllbGQsIG9yIHdlIGFscmVhZHkgZm91bmQgdGhlIHJlc3VsdHMgb3IgY2FuY2Vs
IGJ1dHRvbnMsIHdlJ3JlIGRvbmUuCisgICAgLy8gSWYgd2UncmUgbm90IGEgc2VhcmNoIGZpZWxk
LCBvciB3ZSBhbHJlYWR5IGZvdW5kIHRoZSBzcGVlY2gsIHJlc3VsdHMgb3IgY2FuY2VsIGJ1dHRv
bnMsIHdlJ3JlIGRvbmUuCiAgICAgaWYgKCFtX2lubmVyQmxvY2sgfHwgcmVzdWx0LmlubmVyTm9k
ZSgpID09IG1fcmVzdWx0c0J1dHRvbiB8fCByZXN1bHQuaW5uZXJOb2RlKCkgPT0gbV9jYW5jZWxC
dXR0b24pCiAgICAgICAgIHJldHVybiB0cnVlOworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisg
ICAgaWYgKG1faW5uZXJCbG9jayAmJiBtX3NwZWVjaEJ1dHRvbiAmJiByZXN1bHQuaW5uZXJOb2Rl
KCkgPT0gbV9zcGVlY2hCdXR0b24pCisgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCiAKICAg
ICBOb2RlKiBpbm5lck5vZGUgPSAwOwogICAgIFJlbmRlckJveCogaW5uZXJCbG9ja1JlbmRlcmVy
ID0gbV9pbm5lckJsb2NrLT5yZW5kZXJCb3goKTsKQEAgLTMwMyw2ICszMDgsMTkgQEAgYm9vbCBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiByZXF1ZXN0LCBIaXQKICAgICBpZiAobV9yZXN1bHRzQnV0dG9uICYmIG1fcmVzdWx0c0J1
dHRvbi0+cmVuZGVyZXIoKSAmJiB4UG9zIDwgdGV4dExlZnQpCiAgICAgICAgIGlubmVyTm9kZSA9
IG1fcmVzdWx0c0J1dHRvbi5nZXQoKTsKIAorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAg
aWYgKCFpbm5lck5vZGUgJiYgbV9zcGVlY2hCdXR0b24gJiYgbV9zcGVlY2hCdXR0b24tPnJlbmRl
cmVyKCkpIHsKKyAgICAgICAgaW50IGJ1dHRvbkxlZnQgPSB0ZXh0TGVmdCArIGlubmVyVGV4dFJl
bmRlcmVyLT53aWR0aCgpOworICAgICAgICBpZiAobV9jYW5jZWxCdXR0b24pIHsKKyAgICAgICAg
ICAgIFJlbmRlckJveCogY2FuY2VsUmVuZGVyZXIgPSBtX2NhbmNlbEJ1dHRvbi0+cmVuZGVyQm94
KCk7CisgICAgICAgICAgICBjYW5jZWxSZW5kZXJlci0+Y2FsY1dpZHRoKCk7CisgICAgICAgICAg
ICBidXR0b25MZWZ0ICs9IGNhbmNlbFJlbmRlcmVyLT53aWR0aCgpICsgY2FuY2VsUmVuZGVyZXIt
Pm1hcmdpbkxlZnQoKSArIGNhbmNlbFJlbmRlcmVyLT5tYXJnaW5SaWdodCgpOworICAgICAgICB9
CisgICAgICAgIGlmICh4UG9zID4gYnV0dG9uTGVmdCkKKyAgICAgICAgICAgIGlubmVyTm9kZSA9
IG1fc3BlZWNoQnV0dG9uLmdldCgpOworICAgIH0KKyNlbmRpZgorCiAgICAgaWYgKCFpbm5lck5v
ZGUpIHsKICAgICAgICAgaW50IHRleHRSaWdodCA9IHRleHRMZWZ0ICsgaW5uZXJUZXh0UmVuZGVy
ZXItPndpZHRoKCk7CiAgICAgICAgIGlmIChtX2NhbmNlbEJ1dHRvbiAmJiBtX2NhbmNlbEJ1dHRv
bi0+cmVuZGVyZXIoKSAmJiB4UG9zID4gdGV4dFJpZ2h0KQpAQCAtMzM5LDggKzM1NywyMCBAQCB2
b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Zm9yd2FyZEV2ZW50KEV2ZW50KiBldmVu
dCkKIAogICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IGlubmVyVGV4dFJlbmRlcmVyLT5hYnNv
bHV0ZVRvTG9jYWwoc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+YWJzb2x1dGVMb2Nh
dGlvbigpLCBmYWxzZSwgdHJ1ZSk7CiAgICAgaW50IHRleHRSaWdodCA9IGlubmVyVGV4dFJlbmRl
cmVyLT5ib3JkZXJCb3hSZWN0KCkucmlnaHQoKTsKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQor
ICAgIGludCBjYW5jZWxSaWdodCA9IHRleHRSaWdodDsKKyAgICBpZiAobV9jYW5jZWxCdXR0b24g
JiYgbV9jYW5jZWxCdXR0b24tPnJlbmRlckJveCgpKSB7CisgICAgICAgIFJlbmRlckJveCogY2Fu
Y2VsUmVuZGVyZXIgPSBtX2NhbmNlbEJ1dHRvbi0+cmVuZGVyQm94KCk7CisgICAgICAgIGNhbmNl
bFJpZ2h0ICs9IGNhbmNlbFJlbmRlcmVyLT53aWR0aCgpICsgY2FuY2VsUmVuZGVyZXItPm1hcmdp
bkxlZnQoKSArIGNhbmNlbFJlbmRlcmVyLT5tYXJnaW5SaWdodCgpOworICAgIH0KKyNlbmRpZgor
CiAgICAgaWYgKG1fcmVzdWx0c0J1dHRvbiAmJiBsb2NhbFBvaW50LngoKSA8IGlubmVyVGV4dFJl
bmRlcmVyLT5ib3JkZXJCb3hSZWN0KCkueCgpKQogICAgICAgICBtX3Jlc3VsdHNCdXR0b24tPmRl
ZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAg
ZWxzZSBpZiAobV9zcGVlY2hCdXR0b24gJiYgbG9jYWxQb2ludC54KCkgPiBjYW5jZWxSaWdodCkK
KyAgICAgICAgbV9zcGVlY2hCdXR0b24tPmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworI2Vu
ZGlmCiAgICAgZWxzZSBpZiAobV9jYW5jZWxCdXR0b24gJiYgbG9jYWxQb2ludC54KCkgPiB0ZXh0
UmlnaHQpCiAgICAgICAgIG1fY2FuY2VsQnV0dG9uLT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50
KTsKICAgICBlbHNlIGlmIChtX291dGVyU3BpbkJ1dHRvbiAmJiBsb2NhbFBvaW50LngoKSA+IHRl
eHRSaWdodCkKQEAgLTM3MCw2ICs0MDAsMTEgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmU6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW4KICAg
ICBpZiAoUmVuZGVyT2JqZWN0KiBzcGluUmVuZGVyZXIgPSBtX291dGVyU3BpbkJ1dHRvbiA/IG1f
b3V0ZXJTcGluQnV0dG9uLT5yZW5kZXJlcigpIDogMCkKICAgICAgICAgc3BpblJlbmRlcmVyLT5z
ZXRTdHlsZShjcmVhdGVPdXRlclNwaW5CdXR0b25TdHlsZSgpKTsKIAorI2lmIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCisgICAgaWYgKFJlbmRlck9iamVjdCogc3BlZWNoUmVuZGVyZXIgPSBtX3NwZWVj
aEJ1dHRvbiA/IG1fc3BlZWNoQnV0dG9uLT5yZW5kZXJlcigpIDogMCkKKyAgICAgICAgc3BlZWNo
UmVuZGVyZXItPnNldFN0eWxlKGNyZWF0ZVNwZWVjaEJ1dHRvblN0eWxlKHN0eWxlKCkpKTsKKyNl
bmRpZgorCiAgICAgc2V0SGFzT3ZlcmZsb3dDbGlwKGZhbHNlKTsKIH0KIApAQCAtMzk3LDkgKzQz
MiwxOSBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Y2Fwc0xvY2tTdGF0ZU1h
eUhhdmVDaGFuZ2VkKCkKICAgICB9CiB9CiAKK2Jvb2wgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjpoYXNDb250cm9sQ2xpcCgpIGNvbnN0Cit7CisgICAgYm9vbCBjbGlwID0gbV9jYW5jZWxC
dXR0b247CisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICBpZiAobV9zcGVlY2hCdXR0b24p
CisgICAgICAgIGNsaXAgPSB0cnVlOworI2VuZGlmCisgICAgcmV0dXJuIGNsaXA7Cit9CisKIElu
dFJlY3QgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpjb250cm9sQ2xpcFJlY3QoaW50IHR4
LCBpbnQgdHkpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBzaG91bGQgb25seSBnZXQgY2FsbGVkIGZv
ciBzZWFyY2ggaW5wdXRzLgorICAgIC8vIFRoaXMgc2hvdWxkIG9ubHkgZ2V0IGNhbGxlZCBmb3Ig
c2VhcmNoICYgc3BlZWNoIGlucHV0cy4KICAgICBBU1NFUlQoaGFzQ29udHJvbENsaXAoKSk7CiAK
ICAgICBJbnRSZWN0IGNsaXBSZWN0ID0gSW50UmVjdChtX2lubmVyQmxvY2stPnJlbmRlckJveCgp
LT5mcmFtZVJlY3QoKSk7CkBAIC00MjEsNiArNDY2LDEzIEBAIGludCBSZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmU6OnRleHRCbG9ja1dpZHRoKCkgY29uc3QKICAgICAgICAgd2lkdGggLT0gY2Fu
Y2VsUmVuZGVyZXItPndpZHRoKCkgKyBjYW5jZWxSZW5kZXJlci0+bWFyZ2luTGVmdCgpICsgY2Fu
Y2VsUmVuZGVyZXItPm1hcmdpblJpZ2h0KCk7CiAgICAgfQogCisjaWYgRU5BQkxFKElOUFVUX1NQ
RUVDSCkKKyAgICBpZiAoUmVuZGVyQm94KiBzcGVlY2hSZW5kZXJlciA9IG1fc3BlZWNoQnV0dG9u
ID8gbV9zcGVlY2hCdXR0b24tPnJlbmRlckJveCgpIDogMCkgeworICAgICAgICBzcGVlY2hSZW5k
ZXJlci0+Y2FsY1dpZHRoKCk7CisgICAgICAgIHdpZHRoIC09IHNwZWVjaFJlbmRlcmVyLT53aWR0
aCgpICsgc3BlZWNoUmVuZGVyZXItPm1hcmdpbkxlZnQoKSArIHNwZWVjaFJlbmRlcmVyLT5tYXJn
aW5SaWdodCgpOworICAgIH0KKyNlbmRpZgorCiAgICAgcmV0dXJuIHdpZHRoIC0gZGVjb3JhdGlv
bldpZHRoUmlnaHQoKTsKIH0KIApAQCAtNDc5LDYgKzUzMSwxMiBAQCBpbnQgUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjpwcmVmZXJyZWRDb250ZW50V2lkdGgoZmxvYXQgY2hhcldpZHRoKSBj
b25zdAogICAgICAgICByZXN1bHQgKz0gY2FuY2VsUmVuZGVyZXItPmJvcmRlckxlZnQoKSArIGNh
bmNlbFJlbmRlcmVyLT5ib3JkZXJSaWdodCgpICsKICAgICAgICAgICAgICAgICAgIGNhbmNlbFJl
bmRlcmVyLT5wYWRkaW5nTGVmdCgpICsgY2FuY2VsUmVuZGVyZXItPnBhZGRpbmdSaWdodCgpOwog
CisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICBpZiAoUmVuZGVyQm94KiBzcGVlY2hSZW5k
ZXJlciA9IG1fc3BlZWNoQnV0dG9uID8gbV9zcGVlY2hCdXR0b24tPnJlbmRlckJveCgpIDogMCkg
eworICAgICAgICByZXN1bHQgKz0gc3BlZWNoUmVuZGVyZXItPmJvcmRlckxlZnQoKSArIHNwZWVj
aFJlbmRlcmVyLT5ib3JkZXJSaWdodCgpICsKKyAgICAgICAgICAgICAgICAgIHNwZWVjaFJlbmRl
cmVyLT5wYWRkaW5nTGVmdCgpICsgc3BlZWNoUmVuZGVyZXItPnBhZGRpbmdSaWdodCgpOworICAg
IH0KKyNlbmRpZgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTUxNCwxMiArNTcyLDI4IEBA
IHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjphZGp1c3RDb250cm9sSGVpZ2h0QmFz
ZWRPbkxpbmVIZWlnaHQoaW50IGxpbmVICiAgICAgICAgIGxpbmVIZWlnaHQgPSBtYXgobGluZUhl
aWdodCwgY2FuY2VsUmVuZGVyZXItPmhlaWdodCgpKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoSU5Q
VVRfU1BFRUNIKQorICAgIGlmIChSZW5kZXJCb3gqIHNwZWVjaFJlbmRlcmVyID0gbV9zcGVlY2hC
dXR0b24gPyBtX3NwZWVjaEJ1dHRvbi0+cmVuZGVyQm94KCkgOiAwKSB7CisgICAgICAgIHRvUmVu
ZGVyQmxvY2soc3BlZWNoUmVuZGVyZXIpLT5jYWxjSGVpZ2h0KCk7CisgICAgICAgIHNldEhlaWdo
dChtYXgoaGVpZ2h0KCksCisgICAgICAgICAgICAgICAgICBzcGVlY2hSZW5kZXJlci0+Ym9yZGVy
VG9wKCkgKyBzcGVlY2hSZW5kZXJlci0+Ym9yZGVyQm90dG9tKCkgKworICAgICAgICAgICAgICAg
ICAgc3BlZWNoUmVuZGVyZXItPnBhZGRpbmdUb3AoKSArIHNwZWVjaFJlbmRlcmVyLT5wYWRkaW5n
Qm90dG9tKCkgKworICAgICAgICAgICAgICAgICAgc3BlZWNoUmVuZGVyZXItPm1hcmdpblRvcCgp
ICsgc3BlZWNoUmVuZGVyZXItPm1hcmdpbkJvdHRvbSgpKSk7CisgICAgICAgIGxpbmVIZWlnaHQg
PSBtYXgobGluZUhlaWdodCwgc3BlZWNoUmVuZGVyZXItPmhlaWdodCgpKTsKKyAgICB9CisjZW5k
aWYKKwogICAgIHNldEhlaWdodChoZWlnaHQoKSArIGxpbmVIZWlnaHQpOwogfQogCiB2b2lkIFJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Y3JlYXRlU3VidHJlZUlmTmVlZGVkKCkKIHsKLSAg
ICBpZiAoIWlucHV0RWxlbWVudCgpLT5pc1NlYXJjaEZpZWxkKCkpIHsKKyAgICBib29sIGNyZWF0
ZVN1YnRyZWUgPSBpbnB1dEVsZW1lbnQoKS0+aXNTZWFyY2hGaWVsZCgpOworI2lmIEVOQUJMRShJ
TlBVVF9TUEVFQ0gpCisgICAgaWYgKGlucHV0RWxlbWVudCgpLT5pc1NwZWVjaEVuYWJsZWQoKSkK
KyAgICAgICAgY3JlYXRlU3VidHJlZSA9IHRydWU7CisjZW5kaWYKKyAgICBpZiAoIWNyZWF0ZVN1
YnRyZWUpIHsKICAgICAgICAgUmVuZGVyVGV4dENvbnRyb2w6OmNyZWF0ZVN1YnRyZWVJZk5lZWRl
ZChtX2lubmVyQmxvY2suZ2V0KCkpOwogICAgICAgICBpZiAoaW5wdXRFbGVtZW50KCktPmhhc1Nw
aW5CdXR0b24oKSAmJiAhbV9vdXRlclNwaW5CdXR0b24pIHsKICAgICAgICAgICAgIG1fb3V0ZXJT
cGluQnV0dG9uID0gU3BpbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShub2RlKCkpOwpAQCAtNTM0LDIw
ICs2MDgsMzEgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmNyZWF0ZVN1YnRy
ZWVJZk5lZWRlZCgpCiAgICAgICAgIG1faW5uZXJCbG9jay0+YXR0YWNoSW5uZXJFbGVtZW50KG5v
ZGUoKSwgY3JlYXRlSW5uZXJCbG9ja1N0eWxlKHN0eWxlKCkpLCByZW5kZXJBcmVuYSgpKTsKICAg
ICB9CiAKLSAgICBpZiAoIW1fcmVzdWx0c0J1dHRvbikgewotICAgICAgICAvLyBDcmVhdGUgdGhl
IHNlYXJjaCByZXN1bHRzIGJ1dHRvbiBlbGVtZW50Ci0gICAgICAgIG1fcmVzdWx0c0J1dHRvbiA9
IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAg
ICAgICAgbV9yZXN1bHRzQnV0dG9uLT5hdHRhY2hJbm5lckVsZW1lbnQobV9pbm5lckJsb2NrLmdl
dCgpLCBjcmVhdGVSZXN1bHRzQnV0dG9uU3R5bGUobV9pbm5lckJsb2NrLT5yZW5kZXJlcigpLT5z
dHlsZSgpKSwgcmVuZGVyQXJlbmEoKSk7CisgICAgaWYgKGlucHV0RWxlbWVudCgpLT5pc1NlYXJj
aEZpZWxkKCkpIHsKKyAgICAgICAgaWYgKCFtX3Jlc3VsdHNCdXR0b24pIHsKKyAgICAgICAgICAg
IC8vIENyZWF0ZSB0aGUgc2VhcmNoIHJlc3VsdHMgYnV0dG9uIGVsZW1lbnQuCisgICAgICAgICAg
ICBtX3Jlc3VsdHNCdXR0b24gPSBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBtX3Jlc3VsdHNCdXR0b24tPmF0dGFjaElubmVy
RWxlbWVudChtX2lubmVyQmxvY2suZ2V0KCksIGNyZWF0ZVJlc3VsdHNCdXR0b25TdHlsZShtX2lu
bmVyQmxvY2stPnJlbmRlcmVyKCktPnN0eWxlKCkpLCByZW5kZXJBcmVuYSgpKTsKKyAgICAgICAg
fQogICAgIH0KIAotICAgIC8vIENyZWF0ZSBpbm5lclRleHQgZWxlbWVudCBiZWZvcmUgYWRkaW5n
IHRoZSBjYW5jZWwgYnV0dG9uCisgICAgLy8gQ3JlYXRlIGlubmVyVGV4dCBlbGVtZW50IGJlZm9y
ZSBhZGRpbmcgdGhlIG90aGVyIGJ1dHRvbnMuCiAgICAgUmVuZGVyVGV4dENvbnRyb2w6OmNyZWF0
ZVN1YnRyZWVJZk5lZWRlZChtX2lubmVyQmxvY2suZ2V0KCkpOwogCi0gICAgaWYgKCFtX2NhbmNl
bEJ1dHRvbikgewotICAgICAgICAvLyBDcmVhdGUgdGhlIGNhbmNlbCBidXR0b24gZWxlbWVudAot
ICAgICAgICBtX2NhbmNlbEJ1dHRvbiA9IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgICAgICBtX2NhbmNlbEJ1dHRvbi0+YXR0YWNoSW5uZXJF
bGVtZW50KG1faW5uZXJCbG9jay5nZXQoKSwgY3JlYXRlQ2FuY2VsQnV0dG9uU3R5bGUobV9pbm5l
ckJsb2NrLT5yZW5kZXJlcigpLT5zdHlsZSgpKSwgcmVuZGVyQXJlbmEoKSk7CisgICAgaWYgKGlu
cHV0RWxlbWVudCgpLT5pc1NlYXJjaEZpZWxkKCkpIHsKKyAgICAgICAgaWYgKCFtX2NhbmNlbEJ1
dHRvbikgeworICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBjYW5jZWwgYnV0dG9uIGVsZW1lbnQu
CisgICAgICAgICAgICBtX2NhbmNlbEJ1dHRvbiA9IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgICAgICAgICAgbV9jYW5jZWxCdXR0b24tPmF0
dGFjaElubmVyRWxlbWVudChtX2lubmVyQmxvY2suZ2V0KCksIGNyZWF0ZUNhbmNlbEJ1dHRvblN0
eWxlKG1faW5uZXJCbG9jay0+cmVuZGVyZXIoKS0+c3R5bGUoKSksIHJlbmRlckFyZW5hKCkpOwor
ICAgICAgICB9CiAgICAgfQorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAgaWYgKGlucHV0
RWxlbWVudCgpLT5pc1NwZWVjaEVuYWJsZWQoKSAmJiAhbV9zcGVlY2hCdXR0b24pIHsKKyAgICAg
ICAgLy8gQ3JlYXRlIHRoZSBzcGVlY2ggYnV0dG9uIGVsZW1lbnQuCisgICAgICAgIG1fc3BlZWNo
QnV0dG9uID0gSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgp
KTsKKyAgICAgICAgbV9zcGVlY2hCdXR0b24tPmF0dGFjaElubmVyRWxlbWVudChtX2lubmVyQmxv
Y2suZ2V0KCksIGNyZWF0ZVNwZWVjaEJ1dHRvblN0eWxlKG1faW5uZXJCbG9jay0+cmVuZGVyZXIo
KS0+c3R5bGUoKSksIHJlbmRlckFyZW5hKCkpOworICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIFJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRlRnJvbUVsZW1lbnQoKQpAQCAtNjg1LDYg
Kzc3MCwxOSBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmU6OmNyZWF0ZU91dGVyU3BpbkJ1dHRvblN0eWxlKAogICAgIHJldHVybiBidXR0b25TdHls
ZS5yZWxlYXNlKCk7CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorUGFzc1JlZlB0cjxS
ZW5kZXJTdHlsZT4gUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpjcmVhdGVTcGVlY2hCdXR0
b25TdHlsZShjb25zdCBSZW5kZXJTdHlsZSogc3RhcnRTdHlsZSkgY29uc3QKK3sKKyAgICBBU1NF
UlQobm9kZSgpLT5pc0hUTUxFbGVtZW50KCkpOworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gYnV0
dG9uU3R5bGUgPSBnZXRDYWNoZWRQc2V1ZG9TdHlsZShJTlBVVF9TUEVFQ0hfU1RBVFVTKTsKKyAg
ICBpZiAoIWJ1dHRvblN0eWxlKQorICAgICAgICBidXR0b25TdHlsZSA9IFJlbmRlclN0eWxlOjpj
cmVhdGUoKTsKKyAgICBpZiAoc3RhcnRTdHlsZSkKKyAgICAgICAgYnV0dG9uU3R5bGUtPmluaGVy
aXRGcm9tKHN0YXJ0U3R5bGUpOworICAgIHJldHVybiBidXR0b25TdHlsZS5yZWxlYXNlKCk7Cit9
CisjZW5kaWYKKwogdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUNhbmNl
bEJ1dHRvblZpc2liaWxpdHkoKSBjb25zdAogewogICAgIGlmICghbV9jYW5jZWxCdXR0b24tPnJl
bmRlcmVyKCkpCkBAIC04MjMsNiArOTIxLDEwIEBAIGludCBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmU6OmNsaWVudFBhZGRpbmdSaWdodCgpIGNvbnN0CiAKICAgICBpZiAoUmVuZGVyQm94KiBj
YW5jZWxSZW5kZXJlciA9IG1fY2FuY2VsQnV0dG9uID8gbV9jYW5jZWxCdXR0b24tPnJlbmRlckJv
eCgpIDogMCkKICAgICAgICAgcGFkZGluZyArPSBjYW5jZWxSZW5kZXJlci0+d2lkdGgoKTsKKyNp
ZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIGlmIChSZW5kZXJCb3gqIHNwZWVjaFJlbmRlcmVy
ID0gbV9zcGVlY2hCdXR0b24gPyBtX3NwZWVjaEJ1dHRvbi0+cmVuZGVyQm94KCkgOiAwKQorICAg
ICAgICBwYWRkaW5nICs9IHNwZWVjaFJlbmRlcmVyLT53aWR0aCgpOworI2VuZGlmCiAKICAgICBy
ZXR1cm4gcGFkZGluZzsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLmgKaW5kZXggZGZmOWU1ZjhjNjZhMTRkNDA3NzVmNzAxNDI5MDYwNmQ1MTdl
ODQ5Yy4uYWI5ZjcxMWI1YjA5OTQzNDNkYTYxZmE2YzljODQxMmFmZDFmZDZkMSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKKysrIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKQEAgLTI5LDYg
KzI5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5wdXRFbGVtZW50OworY2xh
c3MgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBTZWFyY2hGaWVsZENhbmNl
bEJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50Owog
Y2xhc3MgU2VhcmNoUG9wdXBNZW51OwpAQCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgaW50IHByZWZlcnJlZERlY29yYXRpb25XaWR0aFJpZ2h0KCkgY29uc3Q7Ci0gICAg
dmlydHVhbCBib29sIGhhc0NvbnRyb2xDbGlwKCkgY29uc3QgeyByZXR1cm4gbV9jYW5jZWxCdXR0
b247IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzQ29udHJvbENsaXAoKSBjb25zdDsKICAgICB2aXJ0
dWFsIEludFJlY3QgY29udHJvbENsaXBSZWN0KGludCB0eCwgaW50IHR5KSBjb25zdDsKICAgICB2
aXJ0dWFsIGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTk4
LDYgKzk5LDkgQEAgcHJpdmF0ZToKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjcmVhdGVS
ZXN1bHRzQnV0dG9uU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUqIHN0YXJ0U3R5bGUpIGNvbnN0Owog
ICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IGNyZWF0ZUNhbmNlbEJ1dHRvblN0eWxlKGNvbnN0
IFJlbmRlclN0eWxlKiBzdGFydFN0eWxlKSBjb25zdDsKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiBjcmVhdGVPdXRlclNwaW5CdXR0b25TdHlsZSgpIGNvbnN0OworI2lmIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCisgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRlU3BlZWNoQnV0dG9u
U3R5bGUoY29uc3QgUmVuZGVyU3R5bGUqIHN0YXJ0U3R5bGUpIGNvbnN0OworI2VuZGlmCiAKICAg
ICB2b2lkIHVwZGF0ZUNhbmNlbEJ1dHRvblZpc2liaWxpdHkoKSBjb25zdDsKICAgICBFVmlzaWJp
bGl0eSB2aXNpYmlsaXR5Rm9yQ2FuY2VsQnV0dG9uKCkgY29uc3Q7CkBAIC0xNDIsNiArMTQ2LDkg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudD4g
bV9yZXN1bHRzQnV0dG9uOwogICAgIFJlZlB0cjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1l
bnQ+IG1fY2FuY2VsQnV0dG9uOwogICAgIFJlZlB0cjxUZXh0Q29udHJvbElubmVyRWxlbWVudD4g
bV9vdXRlclNwaW5CdXR0b247CisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICBSZWZQdHI8
SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ+IG1fc3BlZWNoQnV0dG9uOworI2VuZGlmCiAK
ICAgICBUaW1lcjxSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU+IG1fc2VhcmNoRXZlbnRUaW1l
cjsKICAgICBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBtX3NlYXJjaFBvcHVwOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuY3BwCmluZGV4IDRmMzI4OWQ2ZDg3OWNjZWY1MzEyZmY3MGZmMTkzZjZjNmVi
N2I5OGQuLjgyY2NlODYwMThiNWYxNmY3NjE3NGI1YzYwYTNhMjk4MTYyYjlkNDggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBUaGlzIGZpbGUgaXMgcGFy
dCBvZiB0aGUgdGhlbWUgaW1wbGVtZW50YXRpb24gZm9yIGZvcm0gY29udHJvbHMgaW4gV2ViQ29y
ZS4KICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBw
bGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMjgsNiArMjI5LDEwIEBA
IHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdFN0eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9y
LCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsCiAgICAgICAgIGNhc2UgUmF0aW5nTGV2ZWxJbmRpY2F0
b3JQYXJ0OgogICAgICAgICAgICAgcmV0dXJuIGFkanVzdE1ldGVyU3R5bGUoc2VsZWN0b3IsIHN0
eWxlLCBlKTsKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAgICAgIGNhc2Ug
SW5wdXRTcGVlY2hQYXJ0OgorICAgICAgICAgICAgcmV0dXJuIGFkanVzdElucHV0RmllbGRTcGVl
Y2hCdXR0b25TdHlsZShzZWxlY3Rvciwgc3R5bGUsIGUpOworI2VuZGlmCiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICB9CkBAIC0zNTgsNiArMzYzLDEwIEBAIGJvb2wg
UmVuZGVyVGhlbWU6OnBhaW50KFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQ
YWludEluZm8mIHBhaW50SW5mCiAgICAgICAgICAgICByZXR1cm4gcGFpbnRTZWFyY2hGaWVsZFJl
c3VsdHNEZWNvcmF0aW9uKG8sIHBhaW50SW5mbywgcik7CiAgICAgICAgIGNhc2UgU2VhcmNoRmll
bGRSZXN1bHRzQnV0dG9uUGFydDoKICAgICAgICAgICAgIHJldHVybiBwYWludFNlYXJjaEZpZWxk
UmVzdWx0c0J1dHRvbihvLCBwYWludEluZm8sIHIpOworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gp
CisgICAgICAgIGNhc2UgSW5wdXRTcGVlY2hQYXJ0OgorICAgICAgICAgICAgcmV0dXJuIHBhaW50
SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbihvLCBwYWludEluZm8sIHIpOworI2VuZGlmCiAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICB9CkBAIC0zOTgsNiArNDA3LDkgQEAg
Ym9vbCBSZW5kZXJUaGVtZTo6cGFpbnRCb3JkZXJPbmx5KFJlbmRlck9iamVjdCogbywgY29uc3Qg
UmVuZGVyT2JqZWN0OjpQYWludEluZm8KICNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQogICAgICAg
ICBjYXNlIFByb2dyZXNzQmFyUGFydDoKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gp
CisgICAgICAgIGNhc2UgSW5wdXRTcGVlY2hQYXJ0OgorI2VuZGlmCiAgICAgICAgIGNhc2UgU2xp
ZGVySG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNhc2UgU2xpZGVyVmVydGljYWxQYXJ0OgogICAg
ICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6CkBAIC00NDMsNiArNDU1LDkgQEAg
Ym9vbCBSZW5kZXJUaGVtZTo6cGFpbnREZWNvcmF0aW9ucyhSZW5kZXJPYmplY3QqIG8sIGNvbnN0
IFJlbmRlck9iamVjdDo6UGFpbnRJbmYKICNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQogICAgICAg
ICBjYXNlIFByb2dyZXNzQmFyUGFydDoKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gp
CisgICAgICAgIGNhc2UgSW5wdXRTcGVlY2hQYXJ0OgorI2VuZGlmCiAgICAgICAgIGNhc2UgU2xp
ZGVySG9yaXpvbnRhbFBhcnQ6CiAgICAgICAgIGNhc2UgU2xpZGVyVmVydGljYWxQYXJ0OgogICAg
ICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
aAppbmRleCA3NzAyMzA4MWEyYjhmNWQxNjc1ZmMzODNmZjJjNmU3YjE2YzRiZjdjLi44MTg3MWM5
YTQ2ZDU2MWU4NGZkMjM2YzVhMmMwMTA3MTdiZjFkZWY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmgKQEAgLTI5Myw2ICsyOTMsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBwYWlu
dE1lZGlhQ3VycmVudFRpbWUoUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWlu
dEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBwYWludE1lZGlhVGltZVJlbWFpbmluZyhSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmpl
Y3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAKKyNpZiBF
TkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RJbnB1dEZpZWxkU3Bl
ZWNoQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCop
IGNvbnN0IHsgfQorICAgIHZpcnR1YWwgYm9vbCBwYWludElucHV0RmllbGRTcGVlY2hCdXR0b24o
UmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQorI2VuZGlmCisKIHB1YmxpYzoKICAgICAvLyBNZXRob2Rz
IGZvciBzdGF0ZSBxdWVyeWluZwogICAgIENvbnRyb2xTdGF0ZXMgY29udHJvbFN0YXRlc0ZvclJl
bmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCogbykgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmggYi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUNocm9taXVtTWFjLmgKaW5kZXggYWFhYWRlMDM5OGZmNzQ1ZjBmM2ZkYzk3Y2Iy
MjBlZDAyMjQyYmQwNi4uNDZkMmRkZDIzMDc2MTk1Y2UzM2EyYWUyM2RmODFlYTJlNjVlN2NhMCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCisr
KyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaApAQCAtMzEsNiAr
MzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZW5kZXJUaGVtZUNocm9taXVtTWFj
IDogcHVibGljIFJlbmRlclRoZW1lTWFjIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxSZW5kZXJUaGVtZT4gY3JlYXRlKCk7CisgICAgdmlydHVhbCB+UmVuZGVyVGhlbWVDaHJvbWl1
bU1hYygpOwogcHJvdGVjdGVkOgogI2lmIEVOQUJMRShWSURFTykKICAgICB2aXJ0dWFsIHZvaWQg
YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyT2JqZWN0KikgY29uc3Q7CkBAIC00Niw2
ICs0NywxMCBAQCBwcm90ZWN0ZWQ6CiAKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1NQRUVD
SCkKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRJbnB1dEZpZWxkU3BlZWNoQnV0dG9uKFJlbmRlck9i
amVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwor
I2VuZGlmCisKICAgICB2aXJ0dWFsIGJvb2wgdXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29sb3IoKSBj
b25zdDsKICAgICB2aXJ0dWFsIE5TVmlldyogZG9jdW1lbnRWaWV3Rm9yKFJlbmRlck9iamVjdCop
IGNvbnN0OwogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lQ2hyb21pdW1NYWMubW0gYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
TWFjLm1tCmluZGV4IDQ3YTg3MmQ3ZmIxODRmNDU5ZDQ0NGFkZjAyYmVhNjdhMDUxNzIyYTEuLjc4
ZWQ0ZWJhZTY2OTM4M2M3NGIyOGVhYTQzM2UyN2YwYzcyOTMwMzEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0KKysrIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEdvb2dsZSwgSW5j
LgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEdvb2dsZSwgSW5jLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC0yMSw2ICsyMSw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBv
cnQgIlJlbmRlclRoZW1lQ2hyb21pdW1NYWMuaCIKICNpbXBvcnQgIkNocm9taXVtQnJpZGdlLmgi
CisjaW1wb3J0ICJSZW5kZXJJbnB1dFNwZWVjaENocm9taXVtLmgiCiAjaW1wb3J0ICJSZW5kZXJN
ZWRpYUNvbnRyb2xzQ2hyb21pdW0uaCIKICNpbXBvcnQgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgi
CiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CkBAIC02OCw2ICs2OSwxMyBAQCBQYXNzUmVmUHRy
PFJlbmRlclRoZW1lPiBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpjcmVhdGUoKQogICAgIHJldHVy
biBhZG9wdFJlZihuZXcgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYyk7CiB9CiAKK1JlbmRlclRoZW1l
Q2hyb21pdW1NYWM6On5SZW5kZXJUaGVtZUNocm9taXVtTWFjKCkKK3sKKyNpZiBFTkFCTEUoSU5Q
VVRfU1BFRUNIKQorICAgIFJlbmRlcklucHV0U3BlZWNoQ2hyb21pdW06OnJlbGVhc2VJbWFnZXMo
KTsKKyNlbmRpZgorfQorCiBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnVzZXNUZXN0TW9k
ZUZvY3VzUmluZ0NvbG9yKCkgY29uc3QKIHsKICAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6Omxh
eW91dFRlc3RNb2RlKCk7CkBAIC0xNDYsNCArMTU0LDEzIEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJv
bWl1bU1hYzo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCogb2JqZWN0
LCBjCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKworYm9vbCBSZW5kZXJU
aGVtZUNocm9taXVtTWFjOjpwYWludElucHV0RmllbGRTcGVlY2hCdXR0b24oUmVuZGVyT2JqZWN0
KiBvYmplY3QsIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IEludFJlY3QmIHJlY3QpCit7CisgICAgcmV0dXJuIFJlbmRlcklucHV0U3BlZWNoQ2hyb21pdW06
OnBhaW50SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbihvYmplY3QsIHBhaW50SW5mbywgcmVjdCk7Cit9
CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKaW5kZXggZTNhZmQxZjdiOGEwODY0NjQ0OTQ5
ZGEyMzUyZmZhYmVjNzgyMTAyMS4uNmRhMjRhZDI4ZmFjYmMxNTZlNjMyZmZhMDEwN2E5NDhmZTE1
M2E2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNr
aWEuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNw
cApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KICAqIENvcHlyaWdo
dCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEdv
b2dsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgR29vZ2xlIEluYy4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk1lZGlhQ29u
dHJvbEVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgogI2luY2x1
ZGUgIlJlbmRlckJveC5oIgorI2luY2x1ZGUgIlJlbmRlcklucHV0U3BlZWNoQ2hyb21pdW0uaCIK
ICNpbmNsdWRlICJSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uaCIKICNpbmNsdWRlICJSZW5k
ZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJQcm9ncmVzcy5oIgpAQCAtNjYsNiArNjcsOSBA
QCBzdGF0aWMgY29uc3QgZmxvYXQgZGVmYXVsdFNlYXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25T
aXplID0gMTM7CiBzdGF0aWMgY29uc3QgZmxvYXQgbWluU2VhcmNoRmllbGRSZXN1bHRzRGVjb3Jh
dGlvblNpemUgPSA5Owogc3RhdGljIGNvbnN0IGZsb2F0IG1heFNlYXJjaEZpZWxkUmVzdWx0c0Rl
Y29yYXRpb25TaXplID0gMzA7CiBzdGF0aWMgY29uc3QgZmxvYXQgZGVmYXVsdFNlYXJjaEZpZWxk
UmVzdWx0c0J1dHRvbldpZHRoID0gMTg7CitzdGF0aWMgY29uc3QgZmxvYXQgZGVmYXVsdFNwZWVj
aEJ1dHRvblNpemUgPSAxNjsKK3N0YXRpYyBjb25zdCBmbG9hdCBtaW5TcGVlY2hCdXR0b25TaXpl
ID0gMTI7CitzdGF0aWMgY29uc3QgZmxvYXQgbWF4U3BlZWNoQnV0dG9uU2l6ZSA9IDQwOwogCiBz
dGF0aWMgdm9pZCBzZXRTaXplSWZBdXRvKFJlbmRlclN0eWxlKiBzdHlsZSwgY29uc3QgSW50U2l6
ZSYgc2l6ZSkKIHsKQEAgLTEyMiw2ICsxMjYsOSBAQCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6
UmVuZGVyVGhlbWVDaHJvbWl1bVNraWEoKQogCiBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6flJl
bmRlclRoZW1lQ2hyb21pdW1Ta2lhKCkKIHsKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAg
IFJlbmRlcklucHV0U3BlZWNoQ2hyb21pdW06OnJlbGVhc2VJbWFnZXMoKTsKKyNlbmRpZgogfQog
CiAvLyBVc2UgdGhlIFdpbmRvd3Mgc3R5bGUgc2hlZXRzIHRvIG1hdGNoIHRoZWlyIG1ldHJpY3Mu
CkBAIC02MTAsNiArNjE3LDIyIEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnBhaW50
TWVkaWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBSCiAjZW5kaWYKIH0K
IAorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCit2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lh
OjphZGp1c3RJbnB1dEZpZWxkU3BlZWNoQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJl
bmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCopIGNvbnN0Cit7CisgICAgLy8gU2NhbGUgdGhlIGJ1
dHRvbiBzaXplIGJhc2VkIG9uIHRoZSBmb250IHNpemUuCisgICAgZmxvYXQgZm9udFNjYWxlID0g
c3R5bGUtPmZvbnRTaXplKCkgLyBkZWZhdWx0Q29udHJvbEZvbnRQaXhlbFNpemU7CisgICAgaW50
IHNwZWVjaEJ1dHRvblNpemUgPSBscm91bmRmKHN0ZDo6bWluKHN0ZDo6bWF4KG1pblNwZWVjaEJ1
dHRvblNpemUsIGRlZmF1bHRTcGVlY2hCdXR0b25TaXplICogZm9udFNjYWxlKSwgbWF4U3BlZWNo
QnV0dG9uU2l6ZSkpOworICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc3BlZWNoQnV0dG9uU2l6
ZSwgRml4ZWQpKTsKKyAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChzcGVlY2hCdXR0b25TaXpl
LCBGaXhlZCkpOworfQorCitib29sIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpwYWludElucHV0
RmllbGRTcGVlY2hCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFJlbmRlck9iamVj
dDo6UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgcmV0
dXJuIFJlbmRlcklucHV0U3BlZWNoQ2hyb21pdW06OnBhaW50SW5wdXRGaWVsZFNwZWVjaEJ1dHRv
bihvYmplY3QsIHBhaW50SW5mbywgcmVjdCk7Cit9CisjZW5kaWYKKwogdm9pZCBSZW5kZXJUaGVt
ZUNocm9taXVtU2tpYTo6YWRqdXN0TWVudUxpc3RTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxl
Y3RvciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBXZWJDb3JlOjpFbGVtZW50KiBlKSBjb25zdAogewog
ICAgIC8vIEhlaWdodCBpcyBsb2NrZWQgdG8gYXV0byBvbiBhbGwgYnJvd3NlcnMuCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaAppbmRleCA1NmMzMTVlYjhjNTM1
MzMxM2QzNTIwNTRlMzVmNDQ1NDE1MjA5NWJmLi41MjE1N2MwMDBiMmQ2NGM4OWM0ODgxZWIyZjZm
M2Q5OTllZThiMmNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtU2tpYS5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1T
a2lhLmgKQEAgLTEwMiw2ICsxMDIsMTEgQEAgY2xhc3MgUmVuZGVyUHJvZ3Jlc3M7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBS
ZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVh
bCBib29sIHBhaW50TWVkaWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlck9i
amVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogCisjaWYgRU5BQkxFKElOUFVUX1NQ
RUVDSCkKKyAgICAgICAgdmlydHVhbCB2b2lkIGFkanVzdElucHV0RmllbGRTcGVlY2hCdXR0b25T
dHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7Cisg
ICAgICAgIHZpcnR1YWwgYm9vbCBwYWludElucHV0RmllbGRTcGVlY2hCdXR0b24oUmVuZGVyT2Jq
ZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7Cisj
ZW5kaWYKKwogICAgICAgICAvLyBNZW51TGlzdCByZWZlcnMgdG8gYW4gdW5zdHlsZWQgbWVudWxp
c3QgKG1lYW5pbmcgYSBtZW51bGlzdCB3aXRob3V0CiAgICAgICAgIC8vIGJhY2tncm91bmQtY29s
b3Igb3IgYm9yZGVyIHNldCkgYW5kIE1lbnVMaXN0QnV0dG9uIHJlZmVycyB0byBhIHN0eWxlZAog
ICAgICAgICAvLyBtZW51bGlzdCAoYSBtZW51bGlzdCB3aXRoIGJhY2tncm91bmQtY29sb3Igb3Ig
Ym9yZGVyIHNldCkuIFRoZXkgaGF2ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKaW5kZXgg
MzRkYmVkMzRjZTg3NzU0MjI5OGZmZTNmYjAxZTk5OGJmMmY1MjkwOC4uOTRkOTBmNzg1N2FjMjJh
ZDM2ZGM3ZDFhOTIwOTY5MjFhNGUxOWE1ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5o
CkBAIC0xMjEsNiArMTIxLDExIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRQ
cm9ncmVzc0JhcihSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAg
ICB2aXJ0dWFsIHZvaWQgYWRqdXN0SW5wdXRGaWVsZFNwZWVjaEJ1dHRvblN0eWxlKENTU1N0eWxl
U2VsZWN0b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgcGFpbnRJbnB1dEZpZWxkU3BlZWNoQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRl
ck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOworI2VuZGlmCisKICAgICB2aXJ0
dWFsIGJvb2wgcGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmpl
Y3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0
U2xpZGVyVHJhY2tTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50
KikgY29uc3Q7CiAKQEAgLTE5NSw2ICsyMDAsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRN
ZW51TGlzdEJ1dHRvbkdyYWRpZW50cyhSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6
OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICBjb25zdCBJbnRTaXplKiBtZW51TGlz
dFNpemVzKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIGNvbnN0IElu
dFNpemUqIHNwZWVjaEJ1dHRvblNpemVzKCkgY29uc3Q7CisjZW5kaWYKICAgICBjb25zdCBJbnRT
aXplKiBzZWFyY2hGaWVsZFNpemVzKCkgY29uc3Q7CiAgICAgY29uc3QgSW50U2l6ZSogY2FuY2Vs
QnV0dG9uU2l6ZXMoKSBjb25zdDsKICAgICBjb25zdCBJbnRTaXplKiByZXN1bHRzQnV0dG9uU2l6
ZXMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggOWM3OTM4NjFk
NTdkMjYwZWM3YTdjNzM2MGU3NGIyM2JkOTJhMjQ5Ni4uOWM4ZDcyN2RmOTZmNGY2YTY1YmEwZWUz
YmU5MDRiMGNkMzY0ZDI1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0KKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTEs
NSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAy
MDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0xNTEwLDYgKzE1MTEsMzAgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRTZWFyY2hGaWVs
ZENhbmNlbEJ1dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck8KICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorY29uc3QgSW50U2l6ZSogUmVu
ZGVyVGhlbWVNYWM6OnNwZWVjaEJ1dHRvblNpemVzKCkgY29uc3QKK3sKKyAgICBzdGF0aWMgY29u
c3QgSW50U2l6ZSBzaXplc1szXSA9IHsgSW50U2l6ZSgxNiwgMTMpLCBJbnRTaXplKDEzLCAxMSks
IEludFNpemUoMTMsIDkpIH07CisgICAgcmV0dXJuIHNpemVzOworfQorCit2b2lkIFJlbmRlclRo
ZW1lTWFjOjphZGp1c3RJbnB1dEZpZWxkU3BlZWNoQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3Rv
ciosIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCopIGNvbnN0Cit7CisgICAgSW50U2l6ZSBz
aXplID0gc2l6ZUZvclN5c3RlbUZvbnQoc3R5bGUsIHNwZWVjaEJ1dHRvblNpemVzKCkpOworICAg
IHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc2l6ZS53aWR0aCgpLCBGaXhlZCkpOworICAgIHN0eWxl
LT5zZXRIZWlnaHQoTGVuZ3RoKHNpemUuaGVpZ2h0KCksIEZpeGVkKSk7CisgICAgc3R5bGUtPnNl
dEJveFNoYWRvdygwKTsKK30KKworYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRJbnB1dEZpZWxk
U3BlZWNoQnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBSZW5kZXJPYmplY3Q6OlBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIFVOVVNFRF9Q
QVJBTShvYmplY3QpOworICAgIFVOVVNFRF9QQVJBTShwYWludEluZm8pOworICAgIFVOVVNFRF9Q
QVJBTShyZWN0KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwogY29uc3QgSW50U2l6
ZSogUmVuZGVyVGhlbWVNYWM6OmNhbmNlbEJ1dHRvblNpemVzKCkgY29uc3QKIHsKICAgICBzdGF0
aWMgY29uc3QgSW50U2l6ZSBzaXplc1szXSA9IHsgSW50U2l6ZSgxNiwgMTMpLCBJbnRTaXplKDEz
LCAxMSksIEludFNpemUoMTMsIDkpIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9U
ZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRy
b2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCAyYzcyMzI4MTZlOThmNjcyNjY2ZmIxMDI0NWE0ZWM1
OGRiNzQ0ZDFjLi5kNWZhNWJhYzIyNTEwZjQ1NzI2NWI3YzdkZjMyN2M2ZWU3NzIwMzQ3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCisr
KyBiL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTEs
NSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4LCAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zMDcsNCArMzA4LDY2IEBAIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhh
bmRsZXIoRXZlbnQqIGV2ZW50KQogICAgICAgICBIVE1MRGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50
SGFuZGxlcihldmVudCk7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
I2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKK2lubGluZSBJbnB1dEZpZWxkU3BlZWNoQnV0dG9u
RWxlbWVudDo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50
KQorICAgIDogVGV4dENvbnRyb2xJbm5lckVsZW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX2NhcHR1
cmluZyhmYWxzZSkKK3sKK30KKworUGFzc1JlZlB0cjxJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxl
bWVudD4gSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9j
dW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudChk
b2N1bWVudCk7Cit9CisKK3ZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmRldGFj
aCgpCit7CisgICAgaWYgKG1fY2FwdHVyaW5nKSB7CisgICAgICAgIGlmIChGcmFtZSogZnJhbWUg
PSBkb2N1bWVudCgpLT5mcmFtZSgpKQorICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigp
LT5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUoMCk7ICAgICAgCisgICAgfQorICAgIFRleHRD
b250cm9sSW5uZXJFbGVtZW50OjpkZXRhY2goKTsKK30KKwordm9pZCBJbnB1dEZpZWxkU3BlZWNo
QnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCit7CisgICAg
Ly8gSWYgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZSwgb24gbW91c2V1cCwgc3RhcnQgYXVkaW8gY2Fw
dHVyZS4KKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1
dEVsZW1lbnQqPihzaGFkb3dBbmNlc3Rvck5vZGUoKSk7CisgICAgaWYgKGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAm
JiBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9u
KSB7CisgICAgICAgIGlmIChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnZpc2libGVUb0hpdFRl
c3RpbmcoKSkgeworICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZy
YW1lKCkpIHsKKyAgICAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNldENhcHR1
cmluZ01vdXNlRXZlbnRzTm9kZSh0aGlzKTsKKyAgICAgICAgICAgICAgICBtX2NhcHR1cmluZyA9
IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW5wdXQtPmZvY3VzKCk7
CisgICAgICAgIGlucHV0LT5zZWxlY3QoKTsKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5k
bGVkKCk7CisgICAgfQorICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZXVwRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpICYmIHN0YXRpY19jYXN0PE1vdXNlRXZl
bnQqPihldmVudCktPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKKyAgICAgICAgaWYgKG1fY2Fw
dHVyaW5nICYmIHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+dmlzaWJsZVRvSGl0VGVzdGluZygp
KSB7CisgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkg
eworICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2V0Q2FwdHVyaW5nTW91
c2VFdmVudHNOb2RlKDApOworICAgICAgICAgICAgICAgIG1fY2FwdHVyaW5nID0gZmFsc2U7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaG92ZXJlZCgpKSB7CisgICAgICAgICAgICAg
ICAgLy8gRklYTUU6IFN0YXJ0IHNwZWVjaCByZWNvZ25pdGlvbiBoZXJlLgorICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBUaGUgaGFyZCBjb2RlZCBzdHJpbmcgJ3Rlc3QnIGlzIHNldCBoZXJlIGZv
ciBlbmFibGluZyB0aGUgbGF5b3V0IHRlc3RzLiBJbiBteQorICAgICAgICAgICAgICAgIC8vIG5l
eHQgcGF0Y2ggSSdsbCBhZGQgYSBTcGVlY2ggU2VydmljZSB3aGljaCB3aWxsIGJlIG1vY2tlZCBv
dXQgZnJvbSB0aGUgbGF5b3V0IHRlc3QgamF2YXNjcmlwdAorICAgICAgICAgICAgICAgIC8vIGNv
ZGUgYW5kIHRoaXMgaGFyZGNvZGVkIHNldFZhbHVlIHdpbGwgYmUgcmVtb3ZlZC4KKyAgICAgICAg
ICAgICAgICBpbnB1dC0+c2V0VmFsdWUoInRlc3QiKTsKKyAgICAgICAgICAgICAgICBldmVudC0+
c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGlmICghZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgIEhUTUxEaXZFbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCisKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9s
SW5uZXJFbGVtZW50cy5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1l
bnRzLmgKaW5kZXggZWQxODg3ZTdjOWIzNDBhNGUxOGNkMTgyOWM5ZWQ4MDZhYWQ0NTM2NC4uOWQ0
Y2U3NGZlMDRkM2I0NjcyNGVlZjUzYTIzMjNhZjc5ZDE2ZDE0MCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKKysrIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDQsNiArMTA1LDI0IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX29uVXBCdXR0b247CiB9OwogCisjaWYgRU5BQkxFKElOUFVU
X1NQRUVDSCkKKworY2xhc3MgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMg
VGV4dENvbnRyb2xJbm5lckVsZW1lbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKworICAg
IHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CisKK3ByaXZhdGU6Cisg
ICAgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKKworICAgIHZpcnR1
YWwgdm9pZCBkZXRhY2goKTsKKworICAgIGJvb2wgbV9jYXB0dXJpbmc7Cit9OworCisjZW5kaWYg
Ly8gRU5BQkxFKElOUFVUX1NQRUVDSCkKKwogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCAwODU4
ZWMyMjQ4N2M3MDkzYzJlNjJiNDQyZWM2NDY2MmIwYjM4N2I1Li5iMThjNmU5NTBmZTI0N2U0YzJl
NGQzMWQwODc4NTMwYzBmYzMwNWU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTc0LDkgKzc0LDEwIEBAIGVudW0gUHNldWRvSWQgewog
ICAgIE1FRElBX0NPTlRST0xTX1NFRUtfQkFDS19CVVRUT04sIE1FRElBX0NPTlRST0xTX1NFRUtf
Rk9SV0FSRF9CVVRUT04sIE1FRElBX0NPTlRST0xTX0ZVTExTQ1JFRU5fQlVUVE9OLCBNRURJQV9D
T05UUk9MU19SRVdJTkRfQlVUVE9OLCAKICAgICBNRURJQV9DT05UUk9MU19SRVRVUk5fVE9fUkVB
TFRJTUVfQlVUVE9OLCBNRURJQV9DT05UUk9MU19UT0dHTEVfQ0xPU0VEX0NBUFRJT05TX0JVVFRP
TiwKICAgICBNRURJQV9DT05UUk9MU19TVEFUVVNfRElTUExBWSwgU0NST0xMQkFSX1RIVU1CLCBT
Q1JPTExCQVJfQlVUVE9OLCBTQ1JPTExCQVJfVFJBQ0ssIFNDUk9MTEJBUl9UUkFDS19QSUVDRSwg
U0NST0xMQkFSX0NPUk5FUiwgUkVTSVpFUiwKLSAgICBJTlBVVF9MSVNUX0JVVFRPTiwgSU5ORVJf
U1BJTl9CVVRUT04sIE9VVEVSX1NQSU5fQlVUVE9OLCBWSVNJVEVEX0xJTkssIFBST0dSRVNTX0JB
Ul9WQUxVRSwKKyAgICBJTlBVVF9MSVNUX0JVVFRPTiwgSU5ORVJfU1BJTl9CVVRUT04sIE9VVEVS
X1NQSU5fQlVUVE9OLCBWSVNJVEVEX0xJTkssIFBST0dSRVNTX0JBUl9WQUxVRSwgSU5QVVRfU1BF
RUNIX1NUQVRVUywKICAgICBNRVRFUl9IT1JJWk9OVEFMX0JBUiwgTUVURVJfSE9SSVpPTlRBTF9P
UFRJTVVNLCBNRVRFUl9IT1JJWk9OVEFMX1NVQk9QVElNQUwsIE1FVEVSX0hPUklaT05UQUxfRVZF
Tl9MRVNTX0dPT0QsCiAgICAgTUVURVJfVkVSVElDQUxfQkFSLCBNRVRFUl9WRVJUSUNBTF9PUFRJ
TVVNLCBNRVRFUl9WRVJUSUNBTF9TVUJPUFRJTUFMLCBNRVRFUl9WRVJUSUNBTF9FVkVOX0xFU1Nf
R09PRCwgCisKICAgICBBRlRFUl9MQVNUX0lOVEVSTkFMX1BTRVVET0lELAogICAgIEZJUlNUX1BV
QkxJQ19QU0VVRE9JRCA9IEZJUlNUX0xJTkUsCiAgICAgRklSU1RfSU5URVJOQUxfUFNFVURPSUQg
PSBGSUxFX1VQTE9BRF9CVVRUT04sCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA3Zjg2MDEzODgzNGIyMzJkZWMx
YmY4YTQwYzNlNGJjMDUwODFhMzc4Li5kODAxYTYxMzA4NmIzZTcwNTllNzBhY2Q0YTliNzg4MWZl
YjNjMWU4IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wNi0xNyAgU2F0aXNo
IFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGJhcmUgYm9uZXMgc3BlZWNoIFVJIGZvciBp
bnB1dCBlbGVtZW50cyB3aXRoIEBzcGVlY2ggYXR0cmlidXRlIHNldAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA3NzYKKworICAgICAgICAqIGZlYXR1
cmVzLmd5cGk6IENvbXBpbGUgZGVmaW5lIGZvciBlbmFibGluZyB0aGUgc3BlZWNoIEFQSSAoZGVm
YXVsdDpvZmYpLgorCiAyMDEwLTA2LTE1ICBEdW1pdHJ1IERhbmlsaXVjICA8ZHVtaUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5
cGkKaW5kZXggOWEyMzk0OTg5N2Y0YWQzZDgwNjI4YzMyNGM3YzBiN2NjYmQyZDllYS4uMzcyNzM2
YTA5OTFhN2U4ZmIzNzUzZjc4ZDI1ZTU3MzM2M2I2ZDFiOCAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL2ZlYXR1cmVzLmd5cGkKKysrIGIvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkK
QEAgLTUzLDYgKzUzLDcgQEAKICAgICAgICAgJ0VOQUJMRV9JQ09OREFUQUJBU0U9MCcsCiAgICAg
ICAgICdFTkFCTEVfSU1BR0VfUkVTSVpFUj0wJywKICAgICAgICAgJ0VOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFPTEnLAorICAgICAgICAnRU5BQkxFX0lOUFVUX1NQRUVDSD0wJywKICAgICAgICAgJ0VO
QUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSPTEnLAogICAgICAgICAnRU5BQkxFX0pTQ19NVUxUSVBM
RV9USFJFQURTPTAnLAogICAgICAgICAnRU5BQkxFX01FVEVSX1RBRz0xJywKZGlmZiAtLWdpdCBh
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMWEwZjFi
MDRkMDBjOTQ4YTAxZmE5OWZlMzNiYzVjMDdjOGU4ZDdjMS4uNDhlYmZjOGJiZjk3YTRmNWY3NzA5
OGU4MWMyMzhmOTY3NWIwMzg5OCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wNi0xNyAgU2F0
aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGJhcmUgYm9uZXMgc3BlZWNoIFVJIGZv
ciBpbnB1dCBlbGVtZW50cyB3aXRoIEBzcGVlY2ggYXR0cmlidXRlIHNldAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA3NzYKKworICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBDb21waWxlIGRlZmluZSBmb3Ig
ZW5hYmxpbmcgdGhlIHNwZWVjaCBBUEkgKGRlZmF1bHQ6b2ZmKS4KKwogMjAxMC0wNi0xNSAgRHVt
aXRydSBEYW5pbGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnIGIvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwppbmRleCA1YjUyNzkzMWZlMmEwYzcwNmRjMjBhMjQzZmIzMjY5NzdiYTQw
MDJmLi4wOGQ5ZWY5YzQwZGNjNWQ2ZDBiYzYzOTNmYjdiNTIyZDBhNGZhOTRkIDEwMDY0NAotLS0g
YS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBi
L1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTU3
LDYgKzU3LDcgQEAgRU5BQkxFX0dFT0xPQ0FUSU9OID0gRU5BQkxFX0dFT0xPQ0FUSU9OOwogRU5B
QkxFX0lDT05EQVRBQkFTRSA9IEVOQUJMRV9JQ09OREFUQUJBU0U7CiBFTkFCTEVfSU1BR0VfUkVT
SVpFUiA9IDsKIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFID0gOworRU5BQkxFX0lOUFVUX1NQRUVD
SCA9IDsKIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSID0gRU5BQkxFX0pBVkFTQ1JJUFRfREVC
VUdHRVI7CiBFTkFCTEVfTUFUSE1MID0gOwogRU5BQkxFX01FVEVSX1RBRyA9IEVOQUJMRV9NRVRF
Ul9UQUc7CkBAIC04MSw0ICs4Miw0IEBAIEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxFX1hQQVRI
ID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9E
RUZJTkVTID0gJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5B
QkxFX0JMT0JfU0xJQ0UpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJ
RCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFC
TEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAk
KEVOQUJMRV9GSUxFX1JFQURFUikgJChFTkFCTEVfRklMRV9XUklURVIpICQoRU5BQkxFX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQo
RU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RB
RykgJChFTkFCTEVfUlVCWSkgJChFTkFCTEVfU0FOREJPWCkgJChFTkFCTEVfU0hBUkVEX1dPUktF
UlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FT
X0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05U
UykgJChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJM
RV9WSURFTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09S
S0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwor
RkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJ
TkcpICQoRU5BQkxFX0JMT0JfU0xJQ0UpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVO
QUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJM
RV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElP
TikgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9G
SUxURVJTKSAkKEVOQUJMRV9GSUxFX1JFQURFUikgJChFTkFCTEVfRklMRV9XUklURVIpICQoRU5B
QkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JF
U0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkg
JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9N
RVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJM
RV9TQU5EQk9YKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJM
RV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01f
T0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9P
QkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfU09D
S0VUUykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAk
KEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9D
aGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggMWI5OTM2ZDQyYTFkMGJhNDM1
NGFkMjNjNGI0NTY1NDllZDhmMDZiNS4uOWEwYmY5MTE2MTEzNzM4MTBlMmE0YThlYmQ2MmY1NGEw
NjUxM2MzOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEwLTA2LTE3ICBTYXRpc2ggU2FtcGF0
aCAgPHNhdGlzaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgYmFyZSBib25lcyBzcGVlY2ggVUkgZm9yIGlucHV0IGVs
ZW1lbnRzIHdpdGggQHNwZWVjaCBhdHRyaWJ1dGUgc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDc3NgorCisgICAgICAgICogU2NyaXB0cy9idWls
ZC13ZWJraXQ6IENvbW1hbmQgbGluZSBmbGFnIHRvIGNvbmRpdGlvbmFsbHkgZW5hYmxlIHNwZWVj
aCBpbnB1dCBBUEkgY29kZSAoZGVmYXVsdDpvZmYpCisKIDIwMTAtMDYtMTcgIFRvbnkgQ2hhbmcg
IDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4K
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy9idWlsZC13ZWJraXQKaW5kZXggYTI5YTZmZDMxZmIyNzg1OGI5N2E3OTA5Zjk4
ZGM1MjczOGRiMmM1YS4uODg3NjVlOGRjNWEyMDhhYmQ5NDU0N2YxZDI3ZDkwODdjODk3MjMwZSAx
MDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKQEAgLTU2LDcgKzU2LDcgQEAgbXkgJG1ha2VBcmdz
OwogbXkgJHN0YXJ0VGltZSA9IHRpbWUoKTsKIAogbXkgKCR0aHJlZURDYW52YXNTdXBwb3J0LCAk
dGhyZWVEUmVuZGVyaW5nU3VwcG9ydCwgJGNoYW5uZWxNZXNzYWdpbmdTdXBwb3J0LCAkY2xpZW50
QmFzZWRHZW9sb2NhdGlvblN1cHBvcnQsICRkYXRhYmFzZVN1cHBvcnQsICRkYXRhZ3JpZFN1cHBv
cnQsICRkYXRhbGlzdFN1cHBvcnQsCi0gICAgJGRvbVN0b3JhZ2VTdXBwb3J0LCAkZXZlbnRzb3Vy
Y2VTdXBwb3J0LCAkZmlsdGVyc1N1cHBvcnQsICRnZW9sb2NhdGlvblN1cHBvcnQsICRpY29uRGF0
YWJhc2VTdXBwb3J0LCAkaW1hZ2VSZXNpemVyU3VwcG9ydCwgJGluZGV4ZWREYXRhYmFzZVN1cHBv
cnQsCisgICAgJGRvbVN0b3JhZ2VTdXBwb3J0LCAkZXZlbnRzb3VyY2VTdXBwb3J0LCAkZmlsdGVy
c1N1cHBvcnQsICRnZW9sb2NhdGlvblN1cHBvcnQsICRpY29uRGF0YWJhc2VTdXBwb3J0LCAkaW1h
Z2VSZXNpemVyU3VwcG9ydCwgJGluZGV4ZWREYXRhYmFzZVN1cHBvcnQsICRpbnB1dFNwZWVjaFN1
cHBvcnQsCiAgICAgJGphdmFTY3JpcHREZWJ1Z2dlclN1cHBvcnQsICRtYXRobWxTdXBwb3J0LCAk
b2ZmbGluZVdlYkFwcGxpY2F0aW9uU3VwcG9ydCwgJHJ1YnlTdXBwb3J0LCAkc3lzdGVtTWFsbG9j
U3VwcG9ydCwgJHNhbmRib3hTdXBwb3J0LCAkc2hhcmVkV29ya2Vyc1N1cHBvcnQsCiAgICAgJHN2
Z1N1cHBvcnQsICRzdmdBbmltYXRpb25TdXBwb3J0LCAkc3ZnQXNJbWFnZVN1cHBvcnQsICRzdmdE
T01PYmpDQmluZGluZ3NTdXBwb3J0LCAkc3ZnRm9udHNTdXBwb3J0LAogICAgICRzdmdGb3JlaWdu
T2JqZWN0U3VwcG9ydCwgJHN2Z1VzZVN1cHBvcnQsICR2aWRlb1N1cHBvcnQsICR3ZWJTb2NrZXRz
U3VwcG9ydCwgJHdtbFN1cHBvcnQsICR3Y3NzU3VwcG9ydCwgJHhodG1sbXBTdXBwb3J0LCAkd29y
a2Vyc1N1cHBvcnQsCkBAIC0xMTIsNiArMTEyLDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsg
b3B0aW9uID0+ICJpbmRleGVkLWRhdGFiYXNlIiwgZGVzYyA9PiAiVG9nZ2xlIEluZGV4ZWQgRGF0
YWJhc2UgQVBJIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRSIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRpbmRleGVkRGF0YWJhc2VTdXBwb3J0IH0s
CiAKKyAgICB7IG9wdGlvbiA9PiAiaW5wdXQtc3BlZWNoIiwgZGVzYyA9PiAiU3BlZWNoIElucHV0
IEFQSSBzdXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lOUFVUX1NQRUVDSCIsIGRl
ZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRpbnB1dFNwZWVjaFN1cHBvcnQgfSwKKwogICAgIHsgb3B0
aW9uID0+ICJqYXZhc2NyaXB0LWRlYnVnZ2VyIiwgZGVzYyA9PiAiVG9nZ2xlIEphdmFTY3JpcHQg
RGVidWdnZXIvUHJvZmlsZXIgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9KQVZB
U0NSSVBUX0RFQlVHR0VSIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGphdmFTY3JpcHREZWJ1
Z2dlclN1cHBvcnQgfSwKIApkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFj
CmluZGV4IGYwNWY1ZjAwNzUxNzhlOTU1YmY4MDA3ODIwYTJkMTE2Yzc4OTI5NzkuLmY5NDg0ZDA5
MTIyMTE2MGZiNjk2YzYzNGI5ZTY1YWM2ZGNmZmFmMzQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5h
YworKysgYi9jb25maWd1cmUuYWMKQEAgLTM0Nyw2ICszNDcsMTQgQEAgQUNfQVJHX0VOQUJMRShp
bmRleGVkX2RhdGFiYXNlLAogICAgICAgICAgICAgICBbXSxbZW5hYmxlX2luZGV4ZWRfZGF0YWJh
c2U9Im5vIl0pCiBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX2luZGV4ZWRfZGF0YWJhc2VdKQogCisj
IGNoZWNrIHdoZXRoZXIgdG8gZW5hYmxlIHRoZSBzcGVlY2ggaW5wdXQgQVBJCitBQ19NU0dfQ0hF
Q0tJTkcoW3doZXRoZXIgdG8gZW5hYmxlIHRoZSBzcGVlY2ggaW5wdXQgQVBJXSkKK0FDX0FSR19F
TkFCTEUoaW5wdXRfc3BlZWNoLAorICAgICAgICAgICAgICBBQ19IRUxQX1NUUklORyhbLS1lbmFi
bGUtaW5wdXQtc3BlZWNoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuYWJsZSB0
aGUgc3BlZWNoIGlucHV0IEFQSSBbZGVmYXVsdD1ub11dKSwKKyAgICAgICAgICAgICAgW10sW2Vu
YWJsZV9pbnB1dF9zcGVlY2g9Im5vIl0pCitBQ19NU0dfUkVTVUxUKFskZW5hYmxlX2lucHV0X3Nw
ZWVjaF0pCisKICMgY2hlY2sgd2hldGhlciB0byBidWlsZCB3aXRoIGRhdGFiYXNlIHN1cHBvcnQK
IEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBlbmFibGUgSFRNTDUgY2xpZW50LXNpZGUgZGF0
YWJhc2Ugc3RvcmFnZSBzdXBwb3J0XSkKIEFDX0FSR19FTkFCTEUoZGF0YWJhc2UsCkBAIC04MjMs
NiArODMxLDcgQEAgQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9GQVNUX01PQklMRV9TQ1JPTExJTkdd
LFt0ZXN0ICIkZW5hYmxlX2Zhc3RfbW9iaWxlX3Njcm9sbGkKIEFNX0NPTkRJVElPTkFMKFtFTkFC
TEVfSUNPTkRBVEFCQVNFXSxbdGVzdCAiJGVuYWJsZV9pY29uX2RhdGFiYXNlIiA9ICJ5ZXMiXSkK
IEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfSU1BR0VfUkVTSVpFUl0sW3Rlc3QgIiRlbmFibGVfaW1h
Z2VfcmVzaXplciIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0lOREVYRURfREFU
QUJBU0VdLFt0ZXN0ICIkZW5hYmxlX2luZGV4ZWRfZGF0YWJhc2UiID0gInllcyJdKQorQU1fQ09O
RElUSU9OQUwoW0VOQUJMRV9JTlBVVF9TUEVFQ0hdLFt0ZXN0ICIkZW5hYmxlX2lucHV0X3NwZWVj
aCIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX1hIVE1MTVBdLFt0ZXN0ICIkZW5h
YmxlX3hodG1sbXAiID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9YUEFUSF0sW3Rl
c3QgIiRlbmFibGVfeHBhdGgiID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9YU0xU
XSxbdGVzdCAiJGVuYWJsZV94c2x0IiA9ICJ5ZXMiXSkKQEAgLTg5OCw2ICs5MDcsNyBAQCBGZWF0
dXJlczoKICBJY29uIGRhdGFiYXNlIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA6ICRlbmFibGVfaWNvbl9kYXRhYmFzZQogIEltYWdlIHJlc2l6ZXIgc3VwcG9ydCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9pbWFnZV9yZXNpemVy
CiAgU2hhcmVkV29ya2VycyBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOiAkZW5hYmxlX3NoYXJlZF93b3JrZXJzCisgU3BlZWNoIGlucHV0IHN1cHBvcnQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX2lucHV0X3NwZWVjaAogIFNW
RyBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDog
JGVuYWJsZV9zdmcKICBTVkcgYW5pbWF0aW9uIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6ICRlbmFibGVfc3ZnX2FuaW1hdGlvbgogIFNWRyBmb250cyBzdXBwb3J0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9zdmdfZm9u
dHMK
</data>
<flag name="review"
          id="45744"
          type_id="1"
          status="-"
          setter="jorlow"
    />
          </attachment>
      

    </bug>

</bugzilla>