<?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>64138</bug_id>
          
          <creation_ts>2011-07-07 17:42:13 -0700</creation_ts>
          <short_desc>Clean up RenderWidget::destroy() to share more code</short_desc>
          <delta_ts>2011-07-08 17:43:31 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bdakin</cc>
    
    <cc>jamesr</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>433817</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-07 17:42:13 -0700</bug_when>
    <thetext>RenderWidget::destroy() has comments about not sharing more code with other classes. This needs cleaning up. It&apos;s a PITA to add code here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434395</commentid>
    <comment_count>1</comment_count>
      <attachid>100185</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-08 16:55:37 -0700</bug_when>
    <thetext>Created attachment 100185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434399</commentid>
    <comment_count>2</comment_count>
      <attachid>100185</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-08 17:07:06 -0700</bug_when>
    <thetext>Comment on attachment 100185
Patch

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

Looks great, just one question.

&gt; Source/WebCore/rendering/RenderWidget.cpp:-142
&gt; -    if (hasOverrideSize())
&gt; -        setOverrideSize(-1);

this is different from what RenderBox::destroy() did, it did:
gOverrideSizeMap-&gt;remove(this)

are these equivalent?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434406</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-08 17:20:30 -0700</bug_when>
    <thetext>Almost:

void RenderBox::setOverrideSize(int s)
{
    if (s == -1) {
        if (hasOverrideSize()) {
            setHasOverrideSize(false);
            gOverrideSizeMap-&gt;remove(this);
        }

I&apos;ll change RenderBox::willBeDestroyed() to call setOverrideSize(-1);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434408</commentid>
    <comment_count>4</comment_count>
      <attachid>100189</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-08 17:24:39 -0700</bug_when>
    <thetext>Created attachment 100189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434410</commentid>
    <comment_count>5</comment_count>
      <attachid>100189</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-08 17:25:27 -0700</bug_when>
    <thetext>Comment on attachment 100189
Patch

Transferring r+ from jamesr. New patch for the bots to chew on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434416</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-08 17:43:31 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/90675</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100185</attachid>
            <date>2011-07-08 16:55:37 -0700</date>
            <delta_ts>2011-07-08 17:24:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64138-20110708165536.patch</filename>
            <type>text/plain</type>
            <size>39241</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA2NDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNGE1NDA4ODVlZjhjNmQz
NDExODc0YzExMWMzMTVlZGZjZTVhZTMyLi5iMmViMzk3YjgzOTc2M2U3ODI1Y2RlYTEyOTY5MWVm
NWI3MmM2YjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODYgQEAKKzIwMTEtMDctMDggIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgUmVu
ZGVyV2lkZ2V0OjpkZXN0cm95KCkgdG8gc2hhcmUgbW9yZSBjb2RlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDEzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlcldpZGdldDo6ZGVzdHJveSgpIGNv
cGllZCBjb2RlIGZyb20gdmFyaW91cyBvdGhlcgorICAgICAgICBkZXN0cm95KCkgbWV0aG9kcywg
d2hpY2ggbWFkZSBjb2RlIG1haW50ZW5hbmNlIGluIHRoaXMKKyAgICAgICAgYXJlYSB2ZXJ5IHJp
c2t5LgorICAgICAgICAKKyAgICAgICAgRml4IGJ5IGFkZGluZyBhIHZpcnR1YWwgd2lsbEJlRGVz
dHJveWVkKCkgbWV0aG9kLCB3aGljaAorICAgICAgICByZXBsYWNlcyBtb3N0IGluc3RhbmNlcyBv
ZiBkZXN0cm95KCkuIE5vdywgb25seSBSZW5kZXJXaWRnZXQKKyAgICAgICAgYW5kIFJlbmRlck9i
amVjdCBpbXBsZW1lbnQgZGVzdHJveSgpLCBhbmQgZWFjaCBqdXN0IGNhbGxzCisgICAgICAgIHdp
bGxCZURlc3Ryb3llZCgpLiBDb2RlIGR1cGxpY2F0aW9uIGlzIGF2ZXJ0ZWQuCisgICAgICAgIAor
ICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UsIHNvIG5vIHRlc3RzLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp3
aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckZ1bGxTY3JlZW4uY3BwOgorICAgICAgICAoUmVuZGVyRnVsbFNjcmVlblBsYWNlaG9s
ZGVyOjp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAoUmVuZGVyRnVsbFNjcmVlbjo6d2lsbEJl
RGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVySW5saW5lOjp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJ
bmxpbmUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEl0ZW06OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OndpbGxCZURlc3Ryb3ll
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmRlc3Ryb3kpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OndpbGxCZURlc3Ry
b3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
YWJsZUNlbGw6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRh
YmxlQ2VsbC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVJvdzo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9u
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dDo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dEZyYWdtZW50Ojp3aWxsQmVEZXN0cm95ZWQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6
d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6ZGVzdHJv
eSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
QmxvY2s6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdCbG9jay5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGluZTo6d2lsbEJlRGVzdHJveWVkKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oOgorICAgICAgICAqIHJlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdJbmxpbmVUZXh0Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHTW9kZWxPYmpl
Y3Q6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdN
b2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VD
b250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VDb250YWlu
ZXI6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZUNvbnRhaW5lci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290Ojp3aWxsQmVEZXN0cm95ZWQp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuaDoKKwogMjAxMS0wNy0wOCAgSWx5YSBUaWto
b25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
TmV0d29ya1BhbmVsIHNlYXJjaCBmYWlsZWQgaWYgdGhlIG1hdGNoZWQgc3RpbmcgaXMgaW4gdGhl
IHF1ZXJ5IHBhcnQgb2YgdXJsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cAppbmRleCAyN2ZkNmVlY2JlNTY1NTQwYWU2ODA4NzNhOTM5MmI2NDVjZWE0MjVjLi5hZmM0MWEy
OWVlZmRmNzU5NmE0NjE1YmQ3ZmM4YTFhYjE5MzE4OGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE0OSw3ICsxNDksNyBAQCBSZW5kZXJCbG9jazo6flJl
bmRlckJsb2NrKCkKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyQmxvY2s6OmRlc3Ryb3koKQordm9p
ZCBSZW5kZXJCbG9jazo6d2lsbEJlRGVzdHJveWVkKCkKIHsKICAgICAvLyBNYXJrIGFzIGJlaW5n
IGRlc3Ryb3llZCB0byBhdm9pZCB0cm91YmxlIHdpdGggbWVyZ2VzIGluIHJlbW92ZUNoaWxkKCku
CiAgICAgbV9iZWluZ0Rlc3Ryb3llZCA9IHRydWU7CkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBS
ZW5kZXJCbG9jazo6ZGVzdHJveSgpCiAKICAgICBtX2xpbmVCb3hlcy5kZWxldGVMaW5lQm94ZXMo
cmVuZGVyQXJlbmEoKSk7CiAKLSAgICBSZW5kZXJCb3g6OmRlc3Ryb3koKTsKKyAgICBSZW5kZXJC
b3g6OndpbGxCZURlc3Ryb3llZCgpOwogfQogCiB2b2lkIFJlbmRlckJsb2NrOjpzdHlsZVdpbGxD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggY2FkNzMyNDgxODI3MzI0
ODQxNTY2ZDM0MTMxZTA0YWE1M2Y3MzQxNi4uZmMxZDI4NGViMDQ4MTdlYmRkNjY1Zjk1NzVhZTNl
ZGRkNWMyNWQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTcy
LDcgKzcyLDYgQEAgcHVibGljOgogICAgIGNvbnN0IFJlbmRlck9iamVjdENoaWxkTGlzdCogY2hp
bGRyZW4oKSBjb25zdCB7IHJldHVybiAmbV9jaGlsZHJlbjsgfQogICAgIFJlbmRlck9iamVjdENo
aWxkTGlzdCogY2hpbGRyZW4oKSB7IHJldHVybiAmbV9jaGlsZHJlbjsgfQogCi0gICAgdmlydHVh
bCB2b2lkIGRlc3Ryb3koKTsKICAgICBib29sIGJlaW5nRGVzdHJveWVkKCkgY29uc3QgeyByZXR1
cm4gbV9iZWluZ0Rlc3Ryb3llZDsgfQogCiAgICAgLy8gVGhlc2UgdHdvIGZ1bmN0aW9ucyBhcmUg
b3ZlcnJpZGRlbiBmb3IgaW5saW5lLWJsb2NrLgpAQCAtMjQ5LDcgKzI0OCwxMCBAQCBwdWJsaWM6
CiAjaWZuZGVmIE5ERUJVRwogICAgIHZvaWQgc2hvd0xpbmVUcmVlQW5kTWFyayhjb25zdCBJbmxp
bmVCb3gqID0gMCwgY29uc3QgY2hhciogPSAwLCBjb25zdCBJbmxpbmVCb3gqID0gMCwgY29uc3Qg
Y2hhciogPSAwLCBjb25zdCBSZW5kZXJPYmplY3QqID0gMCkgY29uc3Q7CiAjZW5kaWYKKwogcHJv
dGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKKwogICAgIC8vIFRo
ZXNlIGZ1bmN0aW9ucyBhcmUgb25seSB1c2VkIGludGVybmFsbHkgdG8gbWFuaXB1bGF0ZSB0aGUg
cmVuZGVyIHRyZWUgc3RydWN0dXJlIHZpYSByZW1vdmUvaW5zZXJ0L2FwcGVuZENoaWxkTm9kZS4K
ICAgICAvLyBTaW5jZSB0aGV5IGFyZSB0eXBpY2FsbHkgY2FsbGVkIG9ubHkgdG8gbW92ZSBvYmpl
Y3RzIGFyb3VuZCB3aXRoaW4gYW5vbnltb3VzIGJsb2NrcyAod2hpY2ggb25seSBoYXZlIGxheWVy
cyBpbgogICAgIC8vIHRoZSBjYXNlIG9mIGNvbHVtbiBzcGFucyksIHRoZSBkZWZhdWx0IGZvciBm
dWxsUmVtb3ZlSW5zZXJ0IGlzIGZhbHNlIHJhdGhlciB0aGFuIHRydWUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDkzY2M4NDhkNTRmNzZhNzM0OGY2NjVjMWMwOWNi
OWIwOThjNGMyMDMuLmQyYzM3YmM4YjkyZmRhOTY4MjI1ZjVmZmEzNTVhZDE1NjA3N2YyZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0xOTMsMjIgKzE5MywyMCBA
QCB2b2lkIFJlbmRlckJveDo6c2V0TWFyZ2luQWZ0ZXIoTGF5b3V0VW5pdCBtYXJnaW4pCiAgICAg
fQogfQogCi12b2lkIFJlbmRlckJveDo6ZGVzdHJveSgpCit2b2lkIFJlbmRlckJveDo6d2lsbEJl
RGVzdHJveWVkKCkKIHsKLSAgICAvLyBBIGxvdCBvZiB0aGUgY29kZSBpbiB0aGlzIGZ1bmN0aW9u
IGlzIGp1c3QgcGFzdGVkIGludG8KLSAgICAvLyBSZW5kZXJXaWRnZXQ6OmRlc3Ryb3kuIElmIGFu
eXRoaW5nIGluIHRoaXMgZnVuY3Rpb24gY2hhbmdlcywKLSAgICAvLyBiZSBzdXJlIHRvIGZpeCBS
ZW5kZXJXaWRnZXQ6OmRlc3Ryb3koKSBhcyB3ZWxsLgogICAgIGlmIChoYXNPdmVycmlkZVNpemUo
KSkKICAgICAgICAgZ092ZXJyaWRlU2l6ZU1hcC0+cmVtb3ZlKHRoaXMpOwogCiAgICAgaWYgKHN0
eWxlKCkgJiYgKHN0eWxlKCktPmxvZ2ljYWxIZWlnaHQoKS5pc1BlcmNlbnQoKSB8fCBzdHlsZSgp
LT5sb2dpY2FsTWluSGVpZ2h0KCkuaXNQZXJjZW50KCkgfHwgc3R5bGUoKS0+bG9naWNhbE1heEhl
aWdodCgpLmlzUGVyY2VudCgpKSkKICAgICAgICAgUmVuZGVyQmxvY2s6OnJlbW92ZVBlcmNlbnRI
ZWlnaHREZXNjZW5kYW50KHRoaXMpOworCiAgICAgLy8gSWYgdGhlIGZvbGxvd2luZyBhc3NlcnRp
b24gZmFpbHMsIGxvZ2ljYWxIZWlnaHQoKS9sb2dpY2FsTWluSGVpZ2h0KCkvCiAgICAgLy8gbG9n
aWNhbE1heEhlaWdodCgpIHZhbHVlcyBhcmUgY2hhbmdlZCBmcm9tIGEgcGVyY2VudCB2YWx1ZSB0
byBhIG5vbi1wZXJjZW50CiAgICAgLy8gdmFsdWUgZHVyaW5nIGxheWluZyBvdXQuIEl0IGNhdXNl
cyBhIHVzZS1hZnRlci1mcmVlIGJ1Zy4KICAgICBBU1NFUlQoIVJlbmRlckJsb2NrOjpoYXNQZXJj
ZW50SGVpZ2h0RGVzY2VuZGFudCh0aGlzKSk7CiAKLSAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
ZGVzdHJveSgpOworICAgIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsK
IH0KIAogdm9pZCBSZW5kZXJCb3g6OnJlbW92ZUZsb2F0aW5nT3JQb3NpdGlvbmVkQ2hpbGRGcm9t
QmxvY2tMaXN0cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggZWZhZWM3
ZGY3Y2RiYmMyNjQ4NmZhZTgxNmZhYjYzNWRmOGVhNjA1NS4uMGNmMzJmYTQyYWNjZjgxYWQwMWNh
NTYxZWE2MDFhZGRmYWFjZjNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApA
QCAtMjM5LDggKzIzOSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQo
Y29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgTGF5b3V0UG9pbnQm
IHBvaW50SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwg
SGl0VGVzdEFjdGlvbik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpOwotCiAgICAgdmly
dHVhbCBpbnQgbWluUHJlZmVycmVkTG9naWNhbFdpZHRoKCkgY29uc3Q7CiAgICAgdmlydHVhbCBp
bnQgbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCkgY29uc3Q7CiAKQEAgLTQxMCw2ICs0MDgsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0
aW9uKEZsb2F0U2l6ZSYgLyogaW50cmluc2ljUmF0aW8gKi8sIGJvb2wmIC8qIGlzUGVyY2VudGFn
ZUludHJpbnNpY1NpemUgKi8pIGNvbnN0IHsgfQogCiBwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2
b2lkIHdpbGxCZURlc3Ryb3llZCgpOworCiAgICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENoYW5n
ZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSk7CiAgICAgdmly
dHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5
bGUqIG9sZFN0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQm94TW9kZWxJbmZvRnJvbVN0
eWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmNwcAppbmRleCA3MTEzZWE1Yjk0ZDE1NGY2NDFkMzg2ZDQ2OTJjZWY1NjFmMWU3Y2RhLi4y
ZGI0NjI5OTg5NTI3YjUwYTQ3Y2NhMjZiZTQ5MDZhYWQ0MzQ3ZmQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTI2OCw3ICsy
NjgsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpkZXN0cm95TGF5ZXIoKQogICAgIG1f
bGF5ZXIgPSAwOwogfQogCi12b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpkZXN0cm95KCkKK3Zv
aWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpCiB7CiAgICAgLy8gVGhp
cyBtdXN0IGJlIGRvbmUgYmVmb3JlIHdlIGRlc3Ryb3kgdGhlIFJlbmRlck9iamVjdC4KICAgICBp
ZiAobV9sYXllcikKQEAgLTI3Nyw4ICsyNzcsOCBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0
OjpkZXN0cm95KCkKICAgICAvLyBBIGNvbnRpbnVhdGlvbiBvZiB0aGlzIFJlbmRlck9iamVjdCBz
aG91bGQgYmUgZGVzdHJveWVkIGF0IHN1YmNsYXNzZXMuCiAgICAgQVNTRVJUKCFjb250aW51YXRp
b24oKSk7CiAKLSAgICAvLyBSZW5kZXJPYmplY3Q6OmRlc3Ryb3kgY2FsbHMgYmFjayB0byBkZXN0
cm95TGF5ZXIoKSBmb3IgbGF5ZXIgZGVzdHJ1Y3Rpb24KLSAgICBSZW5kZXJPYmplY3Q6OmRlc3Ry
b3koKTsKKyAgICAvLyBSZW5kZXJPYmplY3Q6OndpbGxCZURlc3Ryb3llZCBjYWxscyBiYWNrIHRv
IGRlc3Ryb3lMYXllcigpIGZvciBsYXllciBkZXN0cnVjdGlvbgorICAgIFJlbmRlck9iamVjdDo6
d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6Omhhc1Nl
bGZQYWludGluZ0xheWVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmgKaW5kZXggMTRjMDNkYWM5OGE1ZGQ0Njg2ZWVlYjRmZTljZDA0
N2Q2NzgyMWM3Yi4uMmJiNjEzNWE0ZjdmYjM2NjNhMWY3NTBlZDIwMzFhM2RmNjhkMmZlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKQEAg
LTQ4LDggKzQ4LDYgQEAgcHVibGljOgogICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KE5vZGUqKTsK
ICAgICB2aXJ0dWFsIH5SZW5kZXJCb3hNb2RlbE9iamVjdCgpOwogICAgIAotICAgIHZpcnR1YWwg
dm9pZCBkZXN0cm95KCk7Ci0KICAgICBMYXlvdXRVbml0IHJlbGF0aXZlUG9zaXRpb25PZmZzZXRY
KCkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCByZWxhdGl2ZVBvc2l0aW9uT2Zmc2V0WSgpIGNvbnN0
OwogICAgIExheW91dFNpemUgcmVsYXRpdmVQb3NpdGlvbk9mZnNldCgpIGNvbnN0IHsgcmV0dXJu
IExheW91dFNpemUocmVsYXRpdmVQb3NpdGlvbk9mZnNldFgoKSwgcmVsYXRpdmVQb3NpdGlvbk9m
ZnNldFkoKSk7IH0KQEAgLTEyNywxMyArMTI1LDE2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGlu
dCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0
aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGlu
ZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xp
bmUpIGNvbnN0ID0gMDsKIAotICAgIC8vIENhbGxlZCBieSBSZW5kZXJPYmplY3Q6OmRlc3Ryb3ko
KSAoYW5kIFJlbmRlcldpZGdldDo6ZGVzdHJveSgpKSBhbmQgaXMgdGhlIG9ubHkgd2F5IGxheWVy
cyBzaG91bGQgZXZlciBiZSBkZXN0cm95ZWQKKyAgICAvLyBDYWxsZWQgYnkgUmVuZGVyT2JqZWN0
Ojp3aWxsQmVEZXN0cm95ZWQoKSBhbmQgaXMgdGhlIG9ubHkgd2F5IGxheWVycyBzaG91bGQgZXZl
ciBiZSBkZXN0cm95ZWQKICAgICB2b2lkIGRlc3Ryb3lMYXllcigpOwogCiAgICAgdm9pZCBoaWdo
UXVhbGl0eVJlcGFpbnRUaW1lckZpcmVkKFRpbWVyPFJlbmRlckJveE1vZGVsT2JqZWN0PiopOwog
CiAgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGlvblN0YXRlKFNlbGVjdGlvblN0YXRlIHMpOwor
CiBwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOworCiAgICAg
dm9pZCBjYWxjdWxhdGVCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeShjb25zdCBGaWxsTGF5ZXIqLCBj
b25zdCBJbnRSZWN0JiBwYWludFJlY3QsIEludFJlY3QmIGRlc3RSZWN0LCBJbnRQb2ludCYgcGhh
c2UsIEludFNpemUmIHRpbGVTaXplKTsKICAgICB2b2lkIGdldEJvcmRlckVkZ2VJbmZvKGNsYXNz
IEJvcmRlckVkZ2VbXSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlID0gdHJ1ZSwgYm9vbCBp
bmNsdWRlTG9naWNhbFJpZ2h0RWRnZSA9IHRydWUpIGNvbnN0OwogICAgIGJvb2wgYm9yZGVyT2Jz
Y3VyZXNCYWNrZ3JvdW5kRWRnZShjb25zdCBGbG9hdFNpemUmIGNvbnRleHRTY2FsZSkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKaW5kZXgg
NTE0YWJlODE2ZGQyYWIxOWQxMTM2ZWE4NzVjNmVhMTRhNTYxMTc1My4uMThkYmM5ZjQ4NzMzY2Yw
NTBjOThiMmM0Y2UxYmM5Y2Y3NmU1YWNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGdWxsU2NyZWVuLmNwcApAQCAtNDUsMTQgKzQ1LDE0IEBAIHB1YmxpYzoKICAgICB9
CiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckZ1bGxTY3JlZW5QbGFjZWhvbGRl
cigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpOwor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKICAgICBSZW5kZXJGdWxsU2NyZWVu
KiBtX293bmVyOwogfTsKIAotdm9pZCBSZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xkZXI6OmRlc3Ry
b3koKQordm9pZCBSZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xkZXI6OndpbGxCZURlc3Ryb3llZCgp
CiB7CiAgICAgbV9vd25lci0+c2V0UGxhY2Vob2xkZXIoMCk7Ci0gICAgUmVuZGVyQmxvY2s6OmRl
c3Ryb3koKTsKKyAgICBSZW5kZXJCbG9jazo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIFJlbmRl
ckZ1bGxTY3JlZW46OlJlbmRlckZ1bGxTY3JlZW4oTm9kZSogbm9kZSkgCkBAIC02Miw3ICs2Miw3
IEBAIFJlbmRlckZ1bGxTY3JlZW46OlJlbmRlckZ1bGxTY3JlZW4oTm9kZSogbm9kZSkKICAgICBz
ZXRSZXBsYWNlZChmYWxzZSk7IAogfQogCi12b2lkIFJlbmRlckZ1bGxTY3JlZW46OmRlc3Ryb3ko
KQordm9pZCBSZW5kZXJGdWxsU2NyZWVuOjp3aWxsQmVEZXN0cm95ZWQoKQogewogICAgIGlmICht
X3BsYWNlaG9sZGVyKSB7CiAgICAgICAgIHJlbW92ZSgpOwpAQCAtNzYsNyArNzYsNyBAQCB2b2lk
IFJlbmRlckZ1bGxTY3JlZW46OmRlc3Ryb3koKQogICAgIGlmIChkb2N1bWVudCgpICYmIGRvY3Vt
ZW50KCktPmZ1bGxTY3JlZW5SZW5kZXJlcigpID09IHRoaXMpCiAgICAgICAgIGRvY3VtZW50KCkt
PmZ1bGxTY3JlZW5SZW5kZXJlckRlc3Ryb3llZCgpOwogCi0gICAgUmVuZGVyRGVwcmVjYXRlZEZs
ZXhpYmxlQm94OjpkZXN0cm95KCk7CisgICAgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94Ojp3
aWxsQmVEZXN0cm95ZWQoKTsKIH0KIAogUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gUmVuZGVyRnVs
bFNjcmVlbjo6Y3JlYXRlRnVsbFNjcmVlblN0eWxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRnVsbFNjcmVlbi5oCmluZGV4IGQ0Njg0NjEzOTc1YmE0OWI3MDRmZmJhMjE5OThl
NDUyODkzOTI3Y2MuLjZmNGM3ODMxY2RkYzFkNjNmYTAzMWRiODcwNzg2MjJlYTVhYjY3ZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaApAQCAtMzQsNyAr
MzQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZW5kZXJGdWxsU2NyZWVuIDogcHVi
bGljIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCB7CiBwdWJsaWM6CiAgICAgUmVuZGVyRnVs
bFNjcmVlbihOb2RlKik7Ci0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNSZW5kZXJGdWxsU2NyZWVuKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJGdWxs
U2NyZWVuIjsgfQogCkBAIC00Myw2ICs0Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZVBs
YWNlaG9sZGVyKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+LCBjb25zdCBJbnRSZWN0JiBmcmFtZVJl
Y3QpOwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IGNyZWF0ZUZ1bGxTY3Jl
ZW5TdHlsZSgpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQo
KTsKICAgICAKIHByb3RlY3RlZDoKICAgICBSZW5kZXJCbG9jayogbV9wbGFjZWhvbGRlcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggYzlhNGViMjlmMTFi
Mzk1ZDAxZTJkYzlkZGFjNGZlNzI0OTUwOWY4Ni4uNzA4M2Q3YmFlM2QzYjFlMmRhOThlZjVlOWEx
YjdkNTkxNDQxMzU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHAKQEAgLTUzLDcgKzUzLDcgQEAgUmVuZGVySW5saW5lOjpSZW5kZXJJbmxpbmUoTm9kZSogbm9k
ZSkKICAgICBzZXRDaGlsZHJlbklubGluZSh0cnVlKTsKIH0KIAotdm9pZCBSZW5kZXJJbmxpbmU6
OmRlc3Ryb3koKQordm9pZCBSZW5kZXJJbmxpbmU6OndpbGxCZURlc3Ryb3llZCgpCiB7CiAjaWZu
ZGVmIE5ERUJVRwogICAgIC8vIE1ha2Ugc3VyZSB3ZSBkbyBub3QgcmV0YWluICJ0aGlzIiBpbiB0
aGUgY29udGludWF0aW9uIG91dGxpbmUgdGFibGUgbWFwIG9mIG91ciBjb250YWluaW5nIGJsb2Nr
cy4KQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIFJlbmRlcklubGluZTo6ZGVzdHJveSgpCiAKICAg
ICBtX2xpbmVCb3hlcy5kZWxldGVMaW5lQm94ZXMocmVuZGVyQXJlbmEoKSk7CiAKLSAgICBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6ZGVzdHJveSgpOworICAgIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp3
aWxsQmVEZXN0cm95ZWQoKTsKIH0KIAogUmVuZGVySW5saW5lKiBSZW5kZXJJbmxpbmU6OmlubGlu
ZUVsZW1lbnRDb250aW51YXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5oCmluZGV4IGYyODQ2MWY0YmQ3MTdhNDdmZWJmNjA3NjlmZmJkNmI3MWEyMzRjMTQu
LjJjMjkxZDFkODQ2NWM3NzI5NzVmMTIwNGI4NGZkNThkMDJjNzIxMDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKQEAgLTM1LDggKzM1LDYgQEAgY2xhc3MgUmVuZGVy
SW5saW5lIDogcHVibGljIFJlbmRlckJveE1vZGVsT2JqZWN0IHsKIHB1YmxpYzoKICAgICBleHBs
aWNpdCBSZW5kZXJJbmxpbmUoTm9kZSopOwogCi0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKTsK
LQogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5k
ZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CiAKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFy
Z2luTGVmdCgpIGNvbnN0OwpAQCAtODYsNiArODQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRh
dGVBbHdheXNDcmVhdGVMaW5lQm94ZXMoKTsKIAogcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQmVEZXN0cm95ZWQoKTsKKwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShT
dHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAKIHByaXZhdGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcAppbmRleCAyZTM0
OTQ1MzVmZTFiMzRhNTQyMjcyMmRhMzFmZDk2MWU5YjVhMWQxLi43YTk5MTVkZTFhMGQyYjIzNjNm
Y2YzNDhiNGRhODlkNWE3NDUwMTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0SXRlbS5jcHAKQEAgLTY2LDEzICs2NiwxMyBAQCB2b2lkIFJlbmRlckxpc3RJdGVtOjpz
dHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9s
ZAogICAgIH0KIH0KIAotdm9pZCBSZW5kZXJMaXN0SXRlbTo6ZGVzdHJveSgpCit2b2lkIFJlbmRl
ckxpc3RJdGVtOjp3aWxsQmVEZXN0cm95ZWQoKQogeyAgICAKICAgICBpZiAobV9tYXJrZXIpIHsK
ICAgICAgICAgbV9tYXJrZXItPmRlc3Ryb3koKTsKICAgICAgICAgbV9tYXJrZXIgPSAwOwogICAg
IH0KLSAgICBSZW5kZXJCbG9jazo6ZGVzdHJveSgpOworICAgIFJlbmRlckJsb2NrOjp3aWxsQmVE
ZXN0cm95ZWQoKTsKIH0KIAogc3RhdGljIGJvb2wgaXNMaXN0KE5vZGUqIG5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oCmluZGV4IGEwNWJhN2RjMmU5MzI4ZWM0
ZDFmYTcwNzljZWRhZGY3NGRmZGFhNWIuLmU1NmVmZmY4ZGVlYmQzZjJiNTZjMzVkYTk4NjIxMDZl
ZWJmYjdhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oCkBA
IC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNMaXN0SXRlbSgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgp
OworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1YWwgYm9v
bCBpc0VtcHR5KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNv
bnN0IExheW91dFBvaW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCmluZGV4IDA2OWI0Mjg0ODNjMzk3ZTFjNjhkZDM2OGE5MjNiMzU0Y2U3OTVjOTAuLmNhMTBk
MmJmMzVjZTA1OTA5ZTI1YjBhMzRkMWJiNGZmMzA2MTJiNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yMDUyLDcgKzIwNTIsNyBAQCBib29sIFJlbmRl
ck9iamVjdDo6aXNTZWxlY3Rpb25Cb3JkZXIoKSBjb25zdAogICAgIHJldHVybiBzdCA9PSBTZWxl
Y3Rpb25TdGFydCB8fCBzdCA9PSBTZWxlY3Rpb25FbmQgfHwgc3QgPT0gU2VsZWN0aW9uQm90aDsK
IH0KIAotdm9pZCBSZW5kZXJPYmplY3Q6OmRlc3Ryb3koKQordm9pZCBSZW5kZXJPYmplY3Q6Ondp
bGxCZURlc3Ryb3llZCgpCiB7CiAgICAgLy8gRGVzdHJveSBhbnkgbGVmdG92ZXIgYW5vbnltb3Vz
IGNoaWxkcmVuLgogICAgIFJlbmRlck9iamVjdENoaWxkTGlzdCogY2hpbGRyZW4gPSB2aXJ0dWFs
Q2hpbGRyZW4oKTsKQEAgLTIwNzQsMTAgKzIwNzQsNiBAQCB2b2lkIFJlbmRlck9iamVjdDo6ZGVz
dHJveSgpCiAgICAgfQogICAgIGFuaW1hdGlvbigpLT5jYW5jZWxBbmltYXRpb25zKHRoaXMpOwog
Ci0gICAgLy8gQnkgZGVmYXVsdCBubyByZWYtY291bnRpbmcuIFJlbmRlcldpZGdldDo6ZGVzdHJv
eSgpIGRvZXNuJ3QgY2FsbAotICAgIC8vIHRoaXMgZnVuY3Rpb24gYmVjYXVzZSBpdCBuZWVkcyB0
byBkbyByZWYtY291bnRpbmcuIElmIGFueXRoaW5nCi0gICAgLy8gaW4gdGhpcyBmdW5jdGlvbiBj
aGFuZ2VzLCBiZSBzdXJlIHRvIGZpeCBSZW5kZXJXaWRnZXQ6OmRlc3Ryb3koKSBhcyB3ZWxsLgot
CiAgICAgcmVtb3ZlKCk7CiAKICAgICAvLyBJZiB0aGlzIHJlbmRlcmVyIGhhZCBhIHBhcmVudCwg
cmVtb3ZlIHNob3VsZCBoYXZlIGRlc3Ryb3llZCBhbnkgY291bnRlcnMKQEAgLTIwOTQsNiArMjA5
MCwxMSBAQCB2b2lkIFJlbmRlck9iamVjdDo6ZGVzdHJveSgpCiAgICAgICAgIHNldEhhc0xheWVy
KGZhbHNlKTsKICAgICAgICAgdG9SZW5kZXJCb3hNb2RlbE9iamVjdCh0aGlzKS0+ZGVzdHJveUxh
eWVyKCk7CiAgICAgfQorfQorCit2b2lkIFJlbmRlck9iamVjdDo6ZGVzdHJveSgpCit7CisgICAg
d2lsbEJlRGVzdHJveWVkKCk7CiAgICAgYXJlbmFEZWxldGUocmVuZGVyQXJlbmEoKSwgdGhpcyk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA4NWNkMzQ5
YmIyZWM5MjJlYTZjMzc1MjViMDRlYmU1MGQ1YjU5YWVmLi5jOTdjMDQ5ZTIwOGYxYWNlOTg5YTQw
NmRhZDY4MzRlMzg5OTI5MTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oCkBAIC04MDEsNiArODAxLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBhZGp1c3RSZWN0
Rm9yT3V0bGluZUFuZFNoYWRvdyhJbnRSZWN0JikgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQg
d2lsbEJlRGVzdHJveWVkKCk7CiAgICAgdm9pZCBhcmVuYURlbGV0ZShSZW5kZXJBcmVuYSosIHZv
aWQqIG9iamVjdEJhc2UpOwogCiAgICAgdmlydHVhbCBJbnRSZWN0IG91dGxpbmVCb3VuZHNGb3JS
ZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiAvKnJlcGFpbnRDb250YWluZXIqLywgSW50UG9p
bnQqIC8qY2FjaGVkT2Zmc2V0VG9SZXBhaW50Q29udGFpbmVyKi8gPSAwKSBjb25zdCB7IHJldHVy
biBJbnRSZWN0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
Y3BwCmluZGV4IGNhYjIzZWU0YjM2YTFiZmRkYzAwNWNkYTJiMmJjYzk1NTQ1YmEzNzUuLjhiMDZj
NzEyMTdiNjM3YTMwMzIxZDg0MmZiMThmMzM0ZjZlNjk4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcApAQCAtNTcsMTIgKzU3LDEyIEBAIFJlbmRlclJl
cGxhY2VkOjp+UmVuZGVyUmVwbGFjZWQoKQogewogfQogCi12b2lkIFJlbmRlclJlcGxhY2VkOjpk
ZXN0cm95KCkKK3ZvaWQgUmVuZGVyUmVwbGFjZWQ6OndpbGxCZURlc3Ryb3llZCgpCiB7CiAgICAg
aWYgKCFkb2N1bWVudEJlaW5nRGVzdHJveWVkKCkgJiYgcGFyZW50KCkpCiAgICAgICAgIHBhcmVu
dCgpLT5kaXJ0eUxpbmVzRnJvbUNoYW5nZWRDaGlsZCh0aGlzKTsKIAotICAgIFJlbmRlckJveDo6
ZGVzdHJveSgpOworICAgIFJlbmRlckJveDo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIHZvaWQg
UmVuZGVyUmVwbGFjZWQ6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25z
dCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5oCmluZGV4IDQ5NzE4OTViM2FjM2QzMDMwMjBmYzZiNzQyYzEzNjZjODEwNDYwNWMu
LmU4MDlmNDBmOTVkZmNjZWI1Mzg2NDAwYjY5N2VkZWY5MDBlYWQ4MDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCkBAIC0zMiwxMiArMzIsMTIgQEAgcHVibGlj
OgogICAgIFJlbmRlclJlcGxhY2VkKE5vZGUqLCBjb25zdCBJbnRTaXplJiBpbnRyaW5zaWNTaXpl
KTsKICAgICB2aXJ0dWFsIH5SZW5kZXJSZXBsYWNlZCgpOwogCi0gICAgdmlydHVhbCB2b2lkIGRl
c3Ryb3koKTsKLQogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGggPSB0cnVlKSBjb25zdDsKICAgICB2aXJ0dWFsIExh
eW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodCgpIGNvbnN0OwogCiBwcm90ZWN0
ZWQ6CisgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOworCiAgICAgdmlydHVhbCB2
b2lkIGxheW91dCgpOwogCiAgICAgdmlydHVhbCBJbnRTaXplIGludHJpbnNpY1NpemUoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKaW5kZXgg
NzQzZWFlOGYzN2Q0ZGM2ODhjZWI2NzNkMzBiNzVmOTVmNGVlOGU0Zi4uMDhmYTBhZGU0YWE3NTA3
MWZiYzU0MTE1YjUzNjJiYTBjM2UyYzg3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ2VsbC5jcHAKQEAgLTU0LDExICs1NCwxMSBAQCBSZW5kZXJUYWJsZUNlbGw6
OlJlbmRlclRhYmxlQ2VsbChOb2RlKiBub2RlKQogICAgIHVwZGF0ZUZyb21FbGVtZW50KCk7CiB9
CiAKLXZvaWQgUmVuZGVyVGFibGVDZWxsOjpkZXN0cm95KCkKK3ZvaWQgUmVuZGVyVGFibGVDZWxs
Ojp3aWxsQmVEZXN0cm95ZWQoKQogewogICAgIFJlbmRlclRhYmxlU2VjdGlvbiogcmVjYWxjU2Vj
dGlvbiA9IHBhcmVudCgpID8gc2VjdGlvbigpIDogMDsKIAotICAgIFJlbmRlckJsb2NrOjpkZXN0
cm95KCk7CisgICAgUmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCgpOwogCiAgICAgaWYgKHJl
Y2FsY1NlY3Rpb24pCiAgICAgICAgIHJlY2FsY1NlY3Rpb24tPnNldE5lZWRzQ2VsbFJlY2FsYygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCmluZGV4IGVjZDE0
YzQ1YjQ3NjVlZjFkMzkxNzYxNmY3YWI0NWEzYWM5NGMyYzYuLjRmOWRmMTM5NjhhMzNjMWU4MTIx
MjM5ZmFiYzY5ZGMyYmE4YjRhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVDZWxsLmgKQEAgLTEzOCw3ICsxMzgsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBi
b29sIGlzVGFibGVDZWxsKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2
b2lkIGRlc3Ryb3koKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxXaWR0aCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcAppbmRleCAwMjM2MGM2NWVhNWZlZTgzMDFkNmFj
YWY5NWFkMjkyODkzMmZjMmJlLi5iYTMxZmY2NzM3OTAwZjg1NGE1YmZkMmI2YjQ1ZDU5NTljOGU1
OThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAKQEAg
LTQzLDExICs0MywxMSBAQCBSZW5kZXJUYWJsZVJvdzo6UmVuZGVyVGFibGVSb3coTm9kZSogbm9k
ZSkKICAgICBzZXRJbmxpbmUoZmFsc2UpOyAgIC8vIG91ciBvYmplY3QgaXMgbm90IElubGluZQog
fQogCi12b2lkIFJlbmRlclRhYmxlUm93OjpkZXN0cm95KCkKK3ZvaWQgUmVuZGVyVGFibGVSb3c6
OndpbGxCZURlc3Ryb3llZCgpCiB7CiAgICAgUmVuZGVyVGFibGVTZWN0aW9uKiByZWNhbGNTZWN0
aW9uID0gc2VjdGlvbigpOwogICAgIAotICAgIFJlbmRlckJveDo6ZGVzdHJveSgpOworICAgIFJl
bmRlckJveDo6d2lsbEJlRGVzdHJveWVkKCk7CiAgICAgCiAgICAgaWYgKHJlY2FsY1NlY3Rpb24p
CiAgICAgICAgIHJlY2FsY1NlY3Rpb24tPnNldE5lZWRzQ2VsbFJlY2FsYygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaAppbmRleCBhODhkZTEwYjA3Y2Q0Nzk5NzAy
ZDk5ZWUzZDU4NzczZmJhNjNhZWVjLi40MjMzYjQwNGUyMWFmMGNjZmQ2YzhlYjlhZjZmMWFmYWRj
YmRhMTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVS
b3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaApAQCAt
NDksNyArNDksNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGlzVGFibGVSb3coKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpOworICAg
IHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRD
aGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7
CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAppbmRleCAzNDkwZDE1ZmUyOWVlMjc3Y2VlMTNhN2Q4
YzE4YTc1MTVkYTE5MWFiLi5mNWVmYTNkMWJkZTVhYmJjZTdhNTVmMTA4YmY1ZGJhNzJiMDY2YTJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNw
cApAQCAtNzQsMTEgKzc0LDExIEBAIFJlbmRlclRhYmxlU2VjdGlvbjo6flJlbmRlclRhYmxlU2Vj
dGlvbigpCiAgICAgY2xlYXJHcmlkKCk7CiB9CiAKLXZvaWQgUmVuZGVyVGFibGVTZWN0aW9uOjpk
ZXN0cm95KCkKK3ZvaWQgUmVuZGVyVGFibGVTZWN0aW9uOjp3aWxsQmVEZXN0cm95ZWQoKQogewog
ICAgIFJlbmRlclRhYmxlKiByZWNhbGNUYWJsZSA9IHRhYmxlKCk7CiAgICAgCi0gICAgUmVuZGVy
Qm94OjpkZXN0cm95KCk7CisgICAgUmVuZGVyQm94Ojp3aWxsQmVEZXN0cm95ZWQoKTsKICAgICAK
ICAgICAvLyByZWNhbGMgY2VsbCBpbmZvIGJlY2F1c2UgUmVuZGVyVGFibGUgaGFzIHVuZ3VhcmRl
ZCBwb2ludGVycwogICAgIC8vIHN0b3JlZCB0aGF0IHBvaW50IHRvIHRoaXMgUmVuZGVyVGFibGVT
ZWN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
U2VjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5o
CmluZGV4IGI5YWQ2MWUzMWVlNWFmYmExZmZkNjMxZmIyYjRiNTc2OWUxOTRlODMuLjlmMWY0MDY1
NjRlY2E0NDJkODZjOGMzMWYwNmY5N2ZkYTY5OTEzOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgKQEAgLTEyNiw3ICsxMjYsNyBAQCBwcml2YXRl
OgogCiAgICAgdmlydHVhbCBib29sIGlzVGFibGVTZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2ls
bEJlRGVzdHJveWVkKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAppbmRleCAwOTIwNzQ4MGZhYjZhNjUyYzVkMGRi
MmIzNmFhMDQ1N2I5OWU5NDVhLi5iMzNhMGE3MjM0MzFjZjUxZDk0MmVjOWQwOTgyOTA0NWM4OWE0
YjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0xOTMsMTAg
KzE5MywxMCBAQCB2b2lkIFJlbmRlclRleHQ6OnJlbW92ZUFuZERlc3Ryb3lUZXh0Qm94ZXMoKQog
ICAgIGRlbGV0ZVRleHRCb3hlcygpOwogfQogCi12b2lkIFJlbmRlclRleHQ6OmRlc3Ryb3koKQor
dm9pZCBSZW5kZXJUZXh0Ojp3aWxsQmVEZXN0cm95ZWQoKQogewogICAgIHJlbW92ZUFuZERlc3Ry
b3lUZXh0Qm94ZXMoKTsKLSAgICBSZW5kZXJPYmplY3Q6OmRlc3Ryb3koKTsKKyAgICBSZW5kZXJP
YmplY3Q6OndpbGxCZURlc3Ryb3llZCgpOwogfQogCiB2b2lkIFJlbmRlclRleHQ6OmV4dHJhY3RU
ZXh0Qm94KElubGluZVRleHRCb3gqIGJveCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5oCmluZGV4IDMzOTM1NTMzNjQ1ZjNkZTk0ODVkZjJlODJhMTJkYmZkNGE4ODE0MzMuLmQwOWUx
ZjE0ZGMxYjA2MDZlOWIzYzk1YjgwMWZjYmQ2NWRiOTY2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuaApAQCAtNDgsOCArNDgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBhdHRh
Y2hUZXh0Qm94KElubGluZVRleHRCb3gqKTsKICAgICB2b2lkIHJlbW92ZVRleHRCb3goSW5saW5l
VGV4dEJveCopOwogCi0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKTsKLQogICAgIFN0cmluZ0lt
cGwqIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQuaW1wbCgpOyB9CiAgICAgU3RyaW5nIHRl
eHRXaXRob3V0VHJhbnNjb2RpbmcoKSBjb25zdDsKIApAQCAtMTMxLDYgKzEyOSw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlbW92ZUFuZERlc3Ryb3lUZXh0Qm94ZXMoKTsKIAogcHJvdGVjdGVkOgor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKKwogICAgIHZpcnR1YWwgdm9pZCBz
dHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSopIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJl
bmRlclN0eWxlKiBvbGRTdHlsZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRGcmFnbWVudC5jcHAKaW5kZXggOTE4MTQ4N2ZlY2ZiM2ViYzk2NmU4ZDliYzBhZTVm
ZDk5ZWEwZmIyYy4uMTdjOWQ3Yjc3ZDNkM2NiYzZlZjc5ODk5NTJmZWQ5NjgwN2MwMTM5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5jcHAKQEAg
LTY4LDExICs2OCwxMSBAQCB2b2lkIFJlbmRlclRleHRGcmFnbWVudDo6c3R5bGVEaWRDaGFuZ2Uo
U3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKgogICAgIH0KIH0KIAotdm9p
ZCBSZW5kZXJUZXh0RnJhZ21lbnQ6OmRlc3Ryb3koKQordm9pZCBSZW5kZXJUZXh0RnJhZ21lbnQ6
OndpbGxCZURlc3Ryb3llZCgpCiB7CiAgICAgaWYgKG1fZmlyc3RMZXR0ZXIpCiAgICAgICAgIG1f
Zmlyc3RMZXR0ZXItPmRlc3Ryb3koKTsKLSAgICBSZW5kZXJUZXh0OjpkZXN0cm95KCk7CisgICAg
UmVuZGVyVGV4dDo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dEZyYWdt
ZW50OjpzZXRUZXh0SW50ZXJuYWwoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiB0ZXh0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oCmluZGV4IGMyNTFmODE5
NGJhMTc4NjNjZmJjM2RlMmViYmI2OTkzY2MwYjdiODQuLjU0YjMwN2UzYjJkZGE3YmJmYThmYTM4
ODVhOTcwMDM4NzVhZmExMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dEZyYWdtZW50LmgKQEAgLTM5LDggKzM5LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIGlzVGV4dEZyYWdtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVh
bCB2b2lkIGRlc3Ryb3koKTsKLQogICAgIHVuc2lnbmVkIHN0YXJ0KCkgY29uc3QgeyByZXR1cm4g
bV9zdGFydDsgfQogICAgIHVuc2lnbmVkIGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kOyB9CiAK
QEAgLTU0LDYgKzUyLDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENo
YW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAKIHBy
aXZhdGU6CisgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOworCiAgICAgdmlydHVh
bCB2b2lkIHNldFRleHRJbnRlcm5hbChQYXNzUmVmUHRyPFN0cmluZ0ltcGw+KTsKICAgICB2aXJ0
dWFsIFVDaGFyIHByZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3Q7CiAgICAgUmVuZGVyQmxvY2sqIGJs
b2NrRm9yQWNjb21wYW55aW5nRmlyc3RMZXR0ZXIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXggYTk0NWIwYWIxNWVlNmYzZGNmZWZhMDI2ZmJh
ZGUxODI5YTkwYzEwOC4uMTc1ZmViYWQwZjYzMmVhY2U5ODgxZjMxOTY0MWY4ZDkxNzQ5NDc1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTEwOCw0NyAr
MTA4LDI0IEBAIFJlbmRlcldpZGdldDo6UmVuZGVyV2lkZ2V0KE5vZGUqIG5vZGUpCiAgICAgdmll
dygpLT5hZGRXaWRnZXQodGhpcyk7CiB9CiAKLXZvaWQgUmVuZGVyV2lkZ2V0OjpkZXN0cm95KCkK
K3ZvaWQgUmVuZGVyV2lkZ2V0Ojp3aWxsQmVEZXN0cm95ZWQoKQogewotICAgIC8vIFdlIGNhbid0
IGNhbGwgdGhlIGJhc2UgY2xhc3MncyBkZXN0cm95IGJlY2F1c2Ugd2UgZG9uJ3QKLSAgICAvLyB3
YW50IHRvIHVuY29uZGl0aW9uYWxseSBkZWxldGUgb3Vyc2VsdmVzICh3ZSdyZSByZWYtY291bnRl
ZCkuCi0gICAgLy8gU28gdGhlIGNvZGUgYmVsb3cgaW5jbHVkZXMgY29waWVkIGFuZCBwYXN0ZWQg
Y29udGVudHMgb2YKLSAgICAvLyBib3RoIFJlbmRlckJveDo6ZGVzdHJveSgpIGFuZCBSZW5kZXJP
YmplY3Q6OmRlc3Ryb3koKS4KLSAgICAvLyBGaXggb3JpZ2luYWxseSBtYWRlIGZvciA8cmRhcjov
L3Byb2JsZW0vNDIyODgxOD4uCi0KLSAgICBhbmltYXRpb24oKS0+Y2FuY2VsQW5pbWF0aW9ucyh0
aGlzKTsKLQogICAgIGlmIChSZW5kZXJWaWV3KiB2ID0gdmlldygpKQogICAgICAgICB2LT5yZW1v
dmVXaWRnZXQodGhpcyk7Ci0KICAgICAKICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkgewogICAgICAgICBkb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPmNo
aWxkcmVuQ2hhbmdlZCh0aGlzLT5wYXJlbnQoKSk7CiAgICAgICAgIGRvY3VtZW50KCktPmF4T2Jq
ZWN0Q2FjaGUoKS0+cmVtb3ZlKHRoaXMpOwogICAgIH0KIAotICAgIGlmICghZG9jdW1lbnRCZWlu
Z0Rlc3Ryb3llZCgpICYmIHBhcmVudCgpKSAKLSAgICAgICAgcGFyZW50KCktPmRpcnR5TGluZXNG
cm9tQ2hhbmdlZENoaWxkKHRoaXMpOwotCi0gICAgcmVtb3ZlKCk7Ci0KLSAgICBpZiAobV9oYXND
b3VudGVyTm9kZU1hcCkKLSAgICAgICAgUmVuZGVyQ291bnRlcjo6ZGVzdHJveUNvdW50ZXJOb2Rl
cyh0aGlzKTsKLQogICAgIHNldFdpZGdldCgwKTsKIAotICAgIC8vIHJlbW92ZXMgZnJvbSBvdmVy
cmlkZSBzaXplIG1hcAotICAgIGlmIChoYXNPdmVycmlkZVNpemUoKSkKLSAgICAgICAgc2V0T3Zl
cnJpZGVTaXplKC0xKTsKLQotICAgIGlmIChzdHlsZSgpICYmIChzdHlsZSgpLT5sb2dpY2FsSGVp
Z2h0KCkuaXNQZXJjZW50KCkgfHwgc3R5bGUoKS0+bG9naWNhbE1pbkhlaWdodCgpLmlzUGVyY2Vu
dCgpIHx8IHN0eWxlKCktPmxvZ2ljYWxNYXhIZWlnaHQoKS5pc1BlcmNlbnQoKSkpCi0gICAgICAg
IFJlbmRlckJsb2NrOjpyZW1vdmVQZXJjZW50SGVpZ2h0RGVzY2VuZGFudCh0aGlzKTsKKyAgICBS
ZW5kZXJSZXBsYWNlZDo6d2lsbEJlRGVzdHJveWVkKCk7Cit9CiAKLSAgICBpZiAoaGFzTGF5ZXIo
KSkgewotICAgICAgICBsYXllcigpLT5jbGVhckNsaXBSZWN0cygpOwotICAgICAgICBzZXRIYXNM
YXllcihmYWxzZSk7Ci0gICAgICAgIGRlc3Ryb3lMYXllcigpOwotICAgIH0KK3ZvaWQgUmVuZGVy
V2lkZ2V0OjpkZXN0cm95KCkKK3sKKyAgICB3aWxsQmVEZXN0cm95ZWQoKTsKIAogICAgIC8vIEdy
YWIgdGhlIGFyZW5hIGZyb20gbm9kZSgpLT5kb2N1bWVudCgpLT5yZW5kZXJBcmVuYSgpIGJlZm9y
ZSBjbGVhcmluZyB0aGUgbm9kZSBwb2ludGVyLgogICAgIC8vIENsZWFyIHRoZSBub2RlIGJlZm9y
ZSBkZXJlZi1pbmcsIGFzIHRoaXMgbWF5IGJlIGRlbGV0ZWQgd2hlbiBkZXJlZiBpcyBjYWxsZWQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5kZXggZjM1OWNhYzE5NjQ3
NzM3N2ZmOGJhM2EzNGNmZWZkMDYyY2NmMjQ4ZC4uZDM5MTM4NzcwNzIxNGI4MmQyOWQzZTU0NmI4
ZjFmMTkxZGNkMjk5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaApA
QCAtNjUsNiArNjUsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBp
c1dpZGdldCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgdm9pZCB3aWxs
QmVEZXN0cm95ZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRTZWxlY3Rpb25TdGF0ZShTZWxlY3Rpb25TdGF0ZSk7CiAgICAgdmlydHVhbCBib29s
IG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0
IExheW91dFBvaW50JiBwb2ludEluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11
bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAppbmRleCBhMTAxMWYzOGFhMmVhMjJmMTc1YmFmOWFh
MzhlOTRjZmIzMDJiZmQyLi4yMjMzYzVlYzk2Zjg5YWE1NDk2ZTg3NzNhZjg5M2U0NzNhNTFkNzgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2Nr
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNw
cApAQCAtNzQsMTAgKzc0LDEwIEBAIHZvaWQgUmVuZGVyU1ZHQmxvY2s6OmFic29sdXRlUmVjdHMo
VmVjdG9yPExheW91dFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmKQogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogfQogCi12b2lkIFJlbmRlclNWR0Jsb2NrOjpkZXN0cm95KCkKK3ZvaWQgUmVu
ZGVyU1ZHQmxvY2s6OndpbGxCZURlc3Ryb3llZCgpCiB7CiAgICAgU1ZHUmVzb3VyY2VzQ2FjaGU6
OmNsaWVudERlc3Ryb3llZCh0aGlzKTsKLSAgICBSZW5kZXJCbG9jazo6ZGVzdHJveSgpOworICAg
IFJlbmRlckJsb2NrOjp3aWxsQmVEZXN0cm95ZWQoKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdCbG9j
azo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHls
ZSogbmV3U3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0Jsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Js
b2NrLmgKaW5kZXggYTUwYzkwY2EyZTNjNDIxYjA3NDQzYTIyYjQ3ZjFkZjAyNzQwOTJjZC4uNzhh
NmI0MWE0ZGQ3YjAxZmE3YjE4NWFmZThiMDVlOGM2ZjFiZjliNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaApAQCAtMzgsNyArMzgsNyBAQCBwcml2
YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPExheW91dFJlY3Q+
JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KTsKIAotICAgIHZpcnR1YWwg
dm9pZCBkZXN0cm95KCk7CisgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogICAg
IHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5k
ZXJTdHlsZSogbmV3U3R5bGUpOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHls
ZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0lubGluZS5jcHAKaW5kZXggNDRiMzRlZjQ3MDlkNTQ0YjZkMWRmM2M0Nzdh
OWRhYTU0YzZiNzVjNS4uM2E3ZDcyYWZkOTc3YWQwNzVlOTM1NjBkYWVjOTAzOTYzNTljZTBiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNw
cApAQCAtOTMsMTMgKzkzLDEzIEBAIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjphYnNvbHV0ZVF1YWRz
KFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKICAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9B
YnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHRleHRCb3VuZGluZ0JveC54KCkgKyBib3gtPngoKSwgdGV4
dEJvdW5kaW5nQm94LnkoKSArIGJveC0+eSgpLCBib3gtPmxvZ2ljYWxXaWR0aCgpLCBib3gtPmxv
Z2ljYWxIZWlnaHQoKSkpKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdJbmxpbmU6OmRlc3Ryb3koKQor
dm9pZCBSZW5kZXJTVkdJbmxpbmU6OndpbGxCZURlc3Ryb3llZCgpCiB7CiAgICAgaWYgKFJlbmRl
clNWR1RleHQqIHRleHRSZW5kZXJlciA9IFJlbmRlclNWR1RleHQ6OmxvY2F0ZVJlbmRlclNWR1Rl
eHRBbmNlc3Rvcih0aGlzKSkKICAgICAgICAgdGV4dFJlbmRlcmVyLT5zZXROZWVkc1Bvc2l0aW9u
aW5nVmFsdWVzVXBkYXRlKCk7CiAKICAgICBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xpZW50RGVzdHJv
eWVkKHRoaXMpOwotICAgIFJlbmRlcklubGluZTo6ZGVzdHJveSgpOworICAgIFJlbmRlcklubGlu
ZTo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjpzdHlsZVdp
bGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHls
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCmlu
ZGV4IGY1ZWY2YTE4NjUyMjU5YzYzNTUzMjQ2YmQxNGIyYmYyN2ZmYjJlMjQuLmFiMWM4NmZlNTAz
N2JlN2IzMTExN2M3MzhlN2ZhZWYzZmY5NWI4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIHZpcnR1YWwgSW5saW5lRmxvd0JveCogY3JlYXRlSW5saW5lRmxvd0JveCgp
OwogCi0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJl
RGVzdHJveWVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZl
cmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0
eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxl
KTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3BwCmluZGV4IDZi
MjdhYjFjMzUyNzdiNmM1OTE4MGVjOTFiNGZkOWIyZTMxZmEwY2QuLjViY2M1YjI4NDUxNGM4ZDgx
ZGE0YTdmNDE0ZGE4YjU4MTcwY2U1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcApAQCAtNzEsMTIgKzcxLDEyIEBAIFJl
bmRlclNWR0lubGluZVRleHQ6OlJlbmRlclNWR0lubGluZVRleHQoTm9kZSogbiwgUGFzc1JlZlB0
cjxTdHJpbmdJbXBsPiBzdHJpbmcpCiB7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHSW5saW5lVGV4dDo6
ZGVzdHJveSgpCit2b2lkIFJlbmRlclNWR0lubGluZVRleHQ6OndpbGxCZURlc3Ryb3llZCgpCiB7
CiAgICAgaWYgKFJlbmRlclNWR1RleHQqIHRleHRSZW5kZXJlciA9IFJlbmRlclNWR1RleHQ6Omxv
Y2F0ZVJlbmRlclNWR1RleHRBbmNlc3Rvcih0aGlzKSkKICAgICAgICAgdGV4dFJlbmRlcmVyLT5z
ZXROZWVkc1Bvc2l0aW9uaW5nVmFsdWVzVXBkYXRlKCk7CiAKLSAgICBSZW5kZXJUZXh0OjpkZXN0
cm95KCk7CisgICAgUmVuZGVyVGV4dDo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIHZvaWQgUmVu
ZGVyU1ZHSW5saW5lVGV4dDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmgKaW5kZXggNWNhMmJlZDZhMGY5YmM0ZjM5NjU3
MTgxZTA1ZjRhMjAxMjFmMmFkYy4uMThiZTg1OTU3MmZhYmY5NWE4MjYzOWY5MTI4ZTE4ZjIyOTc1
YmE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJ
bmxpbmVUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJ
bmxpbmVUZXh0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyU1ZHSW5s
aW5lVGV4dCI7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7CisgICAgdmlydHVhbCB2
b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShT
dHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKik7CiAKICAgICAvLyBGSVhNRTogV2Ug
bmVlZCBvYmplY3RCb3VuZGluZ0JveCBmb3IgRFJUIHJlc3VsdHMgYW5kIGZpbHRlcnMgYXQgdGhl
IG1vbWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdC5jcHAKaW5kZXggOTg5Njk2YTY4ZmM3MTIzZTQxYjhkYmMyMDViNzliMWI2
NzQwM2UzZS4uN2E4MTQ3ZjdkODE1YjkzZDgwNjExZDQ4NTMzMjVhMTA4MDRiNzdjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVj
dC5jcHAKQEAgLTgxLDEwICs4MSwxMCBAQCB2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjphYnNv
bHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKICAgICBxdWFkcy5hcHBlbmQobG9j
YWxUb0Fic29sdXRlUXVhZChzdHJva2VCb3VuZGluZ0JveCgpKSk7CiB9CiAKLXZvaWQgUmVuZGVy
U1ZHTW9kZWxPYmplY3Q6OmRlc3Ryb3koKQordm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6d2ls
bEJlRGVzdHJveWVkKCkKIHsKICAgICBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xpZW50RGVzdHJveWVk
KHRoaXMpOwotICAgIFJlbmRlck9iamVjdDo6ZGVzdHJveSgpOworICAgIFJlbmRlck9iamVjdDo6
d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIHZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OnN0eWxl
V2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0
eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdN
b2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2Rl
bE9iamVjdC5oCmluZGV4IGNhNmNmNjU1MDgzNTU5ODIyZGVhZTFhMDM1OTY4OGNlMTg2MDc1OTQu
LjFkNWRmOTM5NWFmYjJiYzVkYzU2YjM4ZjFkMmEwMjM3ZDk5OTk5MmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKQEAgLTU4
LDEzICs1OCwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVj
dG9yPExheW91dFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KTsK
ICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYpOwogCi0g
ICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKTsKLQogICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRv
Q29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVz
ZVRyYW5zZm9ybXMsIGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0YXRlJiwgYm9vbCogd2FzRml4ZWQg
PSAwKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVy
ZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5
bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOwogCitwcm90ZWN0ZWQ6Cisg
ICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOworCiBwcml2YXRlOgogICAgIC8vIFRo
aXMgbWV0aG9kIHNob3VsZCBuZXZlciBiZSBjYWxsZWQsIFNWRyB1c2VzIGEgZGlmZmVyZW50IG5v
ZGVBdFBvaW50IG1ldGhvZAogICAgIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVl
c3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50SW5Db250YWluZXIs
IGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNl
Q29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVz
b3VyY2VDb250YWluZXIuY3BwCmluZGV4IDc5ZThlMWUyZjdkY2I5OGQ5MGE4NjlkMjc2ODNiMWVi
NTA3M2I2ZjguLjc0ZDVkNjljNDM1ZTkxMDNkYmVlMDBjZjk2NjQ0ODFmMDUyYjNhODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250
YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVz
b3VyY2VDb250YWluZXIuY3BwCkBAIC01NiwxMCArNTYsMTAgQEAgdm9pZCBSZW5kZXJTVkdSZXNv
dXJjZUNvbnRhaW5lcjo6bGF5b3V0KCkKICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXI6Omxh
eW91dCgpOwogfQogCi12b2lkIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyOjpkZXN0cm95KCkK
K3ZvaWQgUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXI6OndpbGxCZURlc3Ryb3llZCgpCiB7CiAg
ICAgU1ZHUmVzb3VyY2VzQ2FjaGU6OnJlc291cmNlRGVzdHJveWVkKHRoaXMpOwotICAgIFJlbmRl
clNWR0hpZGRlbkNvbnRhaW5lcjo6ZGVzdHJveSgpOworICAgIFJlbmRlclNWR0hpZGRlbkNvbnRh
aW5lcjo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIHZvaWQgUmVuZGVyU1ZHUmVzb3VyY2VDb250
YWluZXI6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmgKaW5kZXggZDk4YTgzYTE0NTBmNTU1ZTBj
YTNiN2Y5ZDc3NTQyYzExMWVmODI2Yy4uN2VjY2NjMjM4NzRiNWNiYjg5OTY4NzJjYWQ3YzE3OWJl
ZDA1ODQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSZXNvdXJjZUNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaApAQCAtMzMsNyArMzMsNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIoKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBsYXlvdXQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpOwogICAgIHZpcnR1YWwg
dm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdSZXNvdXJjZUNvbnRhaW5lcigpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KQEAgLTYxLDYgKzYwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHJlbW92ZUNsaWVudChSZW5kZXJPYmplY3QqKTsKIAogcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbEJlRGVzdHJveWVkKCk7CiAgICAgdm9pZCByZWdpc3RlclJlc291cmNlKCk7CiAKICAg
ICBBdG9taWNTdHJpbmcgbV9pZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuY3BwCmluZGV4IDQxMmM0MTAwMGUyNzkxNzg4YWNhMDMzZWFhZDZhZmYyOTU2
NjBkNDMuLjQ3MGYwZDc4MmNiYTk2MjVhMjYxNjEwN2RiMTM5OTkxM2QzOWJjOTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtMzEzLDEw
ICszMTMsMTAgQEAgdm9pZCBSZW5kZXJTVkdSb290OjpwYWludChQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgICAgICBwYWludE91dGxpbmUo
cGFpbnRJbmZvLmNvbnRleHQsIExheW91dFJlY3QoYm9yZGVyQm94T3JpZ2luSW5Db250YWluZXIs
IHNpemUoKSkpOwogfQogCi12b2lkIFJlbmRlclNWR1Jvb3Q6OmRlc3Ryb3koKQordm9pZCBSZW5k
ZXJTVkdSb290Ojp3aWxsQmVEZXN0cm95ZWQoKQogewogICAgIFNWR1Jlc291cmNlc0NhY2hlOjpj
bGllbnREZXN0cm95ZWQodGhpcyk7Ci0gICAgUmVuZGVyQm94OjpkZXN0cm95KCk7CisgICAgUmVu
ZGVyQm94Ojp3aWxsQmVEZXN0cm95ZWQoKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdSb290OjpzdHls
ZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdT
dHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKaW5k
ZXggZWFjNDE5M2MyNjg3ODJmOWU2OWJkYTY2MjhhMDZlMTYwY2NmYzIzNi4uNWMxYjg5NTM1Yzdk
MjUzNGMxNDc1MDVmY2UxMWY1ZjE3YjEyNjcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFBvaW50Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpOworICAg
IHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVX
aWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBS
ZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVu
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJj
ZXNDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNo
ZS5oCmluZGV4IGJjNzNmNGRkYWI3OGYyNGE1YzkzZjA4YzNmZDY5MGQ5MTQ5ZTY1MWYuLjg5N2Mx
ODRjMDlkZjBmNDFjY2Y5MDQxYTBkZWE1MDNiYWJjYzRjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0NhY2hlLmgKQEAgLTUzLDcgKzUzLDcgQEAg
cHVibGljOgogICAgIC8vIENhbGxlZCBmcm9tIGFsbCBTVkcgcmVuZGVyZXJzIHVwZGF0ZUZyb21F
bGVtZW50KCkgbWV0aG9kcy4KICAgICBzdGF0aWMgdm9pZCBjbGllbnRVcGRhdGVkRnJvbUVsZW1l
bnQoUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKTsKIAotICAgIC8v
IENhbGxlZCBmcm9tIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyOjpkZXN0cm95KCkuCisgICAg
Ly8gQ2FsbGVkIGZyb20gUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXI6OndpbGxCZURlc3Ryb3ll
ZCgpLgogICAgIHN0YXRpYyB2b2lkIHJlc291cmNlRGVzdHJveWVkKFJlbmRlclNWR1Jlc291cmNl
Q29udGFpbmVyKik7CiAKIHByaXZhdGU6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100189</attachid>
            <date>2011-07-08 17:24:39 -0700</date>
            <delta_ts>2011-07-08 17:25:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64138-20110708172438.patch</filename>
            <type>text/plain</type>
            <size>39200</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA2NzQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ZWM2MmFmODdlYzQ5Y2Rk
OGM3ZmJkYjcyYzUzNDc1MjY1M2UwMGQzLi5hMjY2NDI5ZDE3MjhhODM4Y2M4MjQyNGE5YmU0YjI0
M2QwODljMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODYgQEAKKzIwMTEtMDctMDggIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgUmVu
ZGVyV2lkZ2V0OjpkZXN0cm95KCkgdG8gc2hhcmUgbW9yZSBjb2RlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDEzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlcldpZGdldDo6ZGVzdHJveSgpIGNv
cGllZCBjb2RlIGZyb20gdmFyaW91cyBvdGhlcgorICAgICAgICBkZXN0cm95KCkgbWV0aG9kcywg
d2hpY2ggbWFkZSBjb2RlIG1haW50ZW5hbmNlIGluIHRoaXMKKyAgICAgICAgYXJlYSB2ZXJ5IHJp
c2t5LgorICAgICAgICAKKyAgICAgICAgRml4IGJ5IGFkZGluZyBhIHZpcnR1YWwgd2lsbEJlRGVz
dHJveWVkKCkgbWV0aG9kLCB3aGljaAorICAgICAgICByZXBsYWNlcyBtb3N0IGluc3RhbmNlcyBv
ZiBkZXN0cm95KCkuIE5vdywgb25seSBSZW5kZXJXaWRnZXQKKyAgICAgICAgYW5kIFJlbmRlck9i
amVjdCBpbXBsZW1lbnQgZGVzdHJveSgpLCBhbmQgZWFjaCBqdXN0IGNhbGxzCisgICAgICAgIHdp
bGxCZURlc3Ryb3llZCgpLiBDb2RlIGR1cGxpY2F0aW9uIGlzIGF2ZXJ0ZWQuCisgICAgICAgIAor
ICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UsIHNvIG5vIHRlc3RzLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp3
aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckZ1bGxTY3JlZW4uY3BwOgorICAgICAgICAoUmVuZGVyRnVsbFNjcmVlblBsYWNlaG9s
ZGVyOjp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAoUmVuZGVyRnVsbFNjcmVlbjo6d2lsbEJl
RGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVySW5saW5lOjp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJ
bmxpbmUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEl0ZW06OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OndpbGxCZURlc3Ryb3ll
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmRlc3Ryb3kpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OndpbGxCZURlc3Ry
b3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
YWJsZUNlbGw6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRh
YmxlQ2VsbC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVJvdzo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9u
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dDo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dEZyYWdtZW50Ojp3aWxsQmVEZXN0cm95ZWQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6
d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6ZGVzdHJv
eSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
QmxvY2s6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdCbG9jay5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGluZTo6d2lsbEJlRGVzdHJveWVkKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oOgorICAgICAgICAqIHJlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdJbmxpbmVUZXh0Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHTW9kZWxPYmpl
Y3Q6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdN
b2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VD
b250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VDb250YWlu
ZXI6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZUNvbnRhaW5lci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290Ojp3aWxsQmVEZXN0cm95ZWQp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuaDoKKwogMjAxMS0wNy0wOCAgQWRhbSBCYXJ0
aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHI5MDY2Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDMz
YWNmYzI3NzdjNjVmNDU3OTBlMzg5NTE4YTA2ZGZjMGRkNGJjNjkuLjExZDI2YzE1OWMwN2ZlZTBh
NmZjZTk5MjEyNTEzZDE1ODZhNzRhMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIFJlbmRlckJsb2NrOjp+UmVuZGVyQmxvY2so
KQogICAgIH0KIH0KIAotdm9pZCBSZW5kZXJCbG9jazo6ZGVzdHJveSgpCit2b2lkIFJlbmRlckJs
b2NrOjp3aWxsQmVEZXN0cm95ZWQoKQogewogICAgIC8vIE1hcmsgYXMgYmVpbmcgZGVzdHJveWVk
IHRvIGF2b2lkIHRyb3VibGUgd2l0aCBtZXJnZXMgaW4gcmVtb3ZlQ2hpbGQoKS4KICAgICBtX2Jl
aW5nRGVzdHJveWVkID0gdHJ1ZTsKQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIFJlbmRlckJsb2Nr
OjpkZXN0cm95KCkKIAogICAgIG1fbGluZUJveGVzLmRlbGV0ZUxpbmVCb3hlcyhyZW5kZXJBcmVu
YSgpKTsKIAotICAgIFJlbmRlckJveDo6ZGVzdHJveSgpOworICAgIFJlbmRlckJveDo6d2lsbEJl
RGVzdHJveWVkKCk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2s6OnN0eWxlV2lsbENoYW5nZShTdHls
ZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAppbmRleCA5NTU5MWZjYmQ1YTE2MmNmMmYzMTc1NjQx
YzEwMTE5ZmRmMDJmNDVjLi4wNmM3NTgyYmUzYWQyNDMyODUxOTM2M2NkZWFhYTU1MWU5MjY1MjQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApAQCAtNzIsNyArNzIsNiBA
QCBwdWJsaWM6CiAgICAgY29uc3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiBjaGlsZHJlbigpIGNv
bnN0IHsgcmV0dXJuICZtX2NoaWxkcmVuOyB9CiAgICAgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiBj
aGlsZHJlbigpIHsgcmV0dXJuICZtX2NoaWxkcmVuOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVz
dHJveSgpOwogICAgIGJvb2wgYmVpbmdEZXN0cm95ZWQoKSBjb25zdCB7IHJldHVybiBtX2JlaW5n
RGVzdHJveWVkOyB9CiAKICAgICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGFyZSBvdmVycmlkZGVu
IGZvciBpbmxpbmUtYmxvY2suCkBAIC0yNDksNyArMjQ4LDEwIEBAIHB1YmxpYzoKICNpZm5kZWYg
TkRFQlVHCiAgICAgdm9pZCBzaG93TGluZVRyZWVBbmRNYXJrKGNvbnN0IElubGluZUJveCogPSAw
LCBjb25zdCBjaGFyKiA9IDAsIGNvbnN0IElubGluZUJveCogPSAwLCBjb25zdCBjaGFyKiA9IDAs
IGNvbnN0IFJlbmRlck9iamVjdCogPSAwKSBjb25zdDsKICNlbmRpZgorCiBwcm90ZWN0ZWQ6Cisg
ICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOworCiAgICAgLy8gVGhlc2UgZnVuY3Rp
b25zIGFyZSBvbmx5IHVzZWQgaW50ZXJuYWxseSB0byBtYW5pcHVsYXRlIHRoZSByZW5kZXIgdHJl
ZSBzdHJ1Y3R1cmUgdmlhIHJlbW92ZS9pbnNlcnQvYXBwZW5kQ2hpbGROb2RlLgogICAgIC8vIFNp
bmNlIHRoZXkgYXJlIHR5cGljYWxseSBjYWxsZWQgb25seSB0byBtb3ZlIG9iamVjdHMgYXJvdW5k
IHdpdGhpbiBhbm9ueW1vdXMgYmxvY2tzICh3aGljaCBvbmx5IGhhdmUgbGF5ZXJzIGluCiAgICAg
Ly8gdGhlIGNhc2Ugb2YgY29sdW1uIHNwYW5zKSwgdGhlIGRlZmF1bHQgZm9yIGZ1bGxSZW1vdmVJ
bnNlcnQgaXMgZmFsc2UgcmF0aGVyIHRoYW4gdHJ1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAKaW5kZXggOTJmZGZiYTBhNDkxMTUxOWJlOThhZmE5NTQ2YTVhM2JkM2Y1MzNh
Mi4uYTVlOTA5OTYwMDkwZTA0MzBlZTFlOWNhMzdhMWNiNjIwNTJmZThkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTE5MywyMiArMTkzLDE5IEBAIHZvaWQgUmVu
ZGVyQm94OjpzZXRNYXJnaW5BZnRlcihMYXlvdXRVbml0IG1hcmdpbikKICAgICB9CiB9CiAKLXZv
aWQgUmVuZGVyQm94OjpkZXN0cm95KCkKK3ZvaWQgUmVuZGVyQm94Ojp3aWxsQmVEZXN0cm95ZWQo
KQogewotICAgIC8vIEEgbG90IG9mIHRoZSBjb2RlIGluIHRoaXMgZnVuY3Rpb24gaXMganVzdCBw
YXN0ZWQgaW50bwotICAgIC8vIFJlbmRlcldpZGdldDo6ZGVzdHJveS4gSWYgYW55dGhpbmcgaW4g
dGhpcyBmdW5jdGlvbiBjaGFuZ2VzLAotICAgIC8vIGJlIHN1cmUgdG8gZml4IFJlbmRlcldpZGdl
dDo6ZGVzdHJveSgpIGFzIHdlbGwuCi0gICAgaWYgKGhhc092ZXJyaWRlU2l6ZSgpKQotICAgICAg
ICBnT3ZlcnJpZGVTaXplTWFwLT5yZW1vdmUodGhpcyk7CisgICAgY2xlYXJPdmVycmlkZVNpemUo
KTsKIAogICAgIGlmIChzdHlsZSgpICYmIChzdHlsZSgpLT5sb2dpY2FsSGVpZ2h0KCkuaXNQZXJj
ZW50KCkgfHwgc3R5bGUoKS0+bG9naWNhbE1pbkhlaWdodCgpLmlzUGVyY2VudCgpIHx8IHN0eWxl
KCktPmxvZ2ljYWxNYXhIZWlnaHQoKS5pc1BlcmNlbnQoKSkpCiAgICAgICAgIFJlbmRlckJsb2Nr
OjpyZW1vdmVQZXJjZW50SGVpZ2h0RGVzY2VuZGFudCh0aGlzKTsKKwogICAgIC8vIElmIHRoZSBm
b2xsb3dpbmcgYXNzZXJ0aW9uIGZhaWxzLCBsb2dpY2FsSGVpZ2h0KCkvbG9naWNhbE1pbkhlaWdo
dCgpLwogICAgIC8vIGxvZ2ljYWxNYXhIZWlnaHQoKSB2YWx1ZXMgYXJlIGNoYW5nZWQgZnJvbSBh
IHBlcmNlbnQgdmFsdWUgdG8gYSBub24tcGVyY2VudAogICAgIC8vIHZhbHVlIGR1cmluZyBsYXlp
bmcgb3V0LiBJdCBjYXVzZXMgYSB1c2UtYWZ0ZXItZnJlZSBidWcuCiAgICAgQVNTRVJUKCFSZW5k
ZXJCbG9jazo6aGFzUGVyY2VudEhlaWdodERlc2NlbmRhbnQodGhpcykpOwogCi0gICAgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OmRlc3Ryb3koKTsKKyAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6d2ls
bEJlRGVzdHJveWVkKCk7CiB9CiAKIHZvaWQgUmVuZGVyQm94OjpyZW1vdmVGbG9hdGluZ09yUG9z
aXRpb25lZENoaWxkRnJvbUJsb2NrTGlzdHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCmluZGV4IDQxYTZlYWEzOTA3ZDdhZDQxMDIwZjQxYmFjNjE5MmZlMGFjYThkZTguLmYyOTU4
NDc1ZjJlNjE0Y2ViNjdiMTE1OGViNGRkM2E2OGQ2ZDdmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmgKQEAgLTIzOSw4ICsyMzksNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgdmlydHVhbCBi
b29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNv
bnN0IExheW91dFBvaW50JiBwb2ludEluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNj
dW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pOwogCi0gICAgdmlydHVhbCB2b2lkIGRlc3Ry
b3koKTsKLQogICAgIHZpcnR1YWwgaW50IG1pblByZWZlcnJlZExvZ2ljYWxXaWR0aCgpIGNvbnN0
OwogICAgIHZpcnR1YWwgaW50IG1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpIGNvbnN0OwogCkBA
IC00MTEsNiArNDA5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmlu
c2ljUmF0aW9JbmZvcm1hdGlvbihGbG9hdFNpemUmIC8qIGludHJpbnNpY1JhdGlvICovLCBib29s
JiAvKiBpc1BlcmNlbnRhZ2VJbnRyaW5zaWNTaXplICovKSBjb25zdCB7IH0KIAogcHJvdGVjdGVk
OgorICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKKwogICAgIHZpcnR1YWwgdm9p
ZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3
U3R5bGUpOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2Us
IGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJv
eE1vZGVsSW5mb0Zyb21TdHlsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggNzExM2VhNWI5NGQxNTRmNjQxZDM4NmQ0Njky
Y2VmNTYxZjFlN2NkYS4uMmRiNDYyOTk4OTUyN2I1MGE0N2NjYTI2YmU0OTA2YWFkNDM0N2ZkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCkBAIC0yNjgsNyArMjY4LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6ZGVzdHJv
eUxheWVyKCkKICAgICBtX2xheWVyID0gMDsKIH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6ZGVzdHJveSgpCit2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQo
KQogewogICAgIC8vIFRoaXMgbXVzdCBiZSBkb25lIGJlZm9yZSB3ZSBkZXN0cm95IHRoZSBSZW5k
ZXJPYmplY3QuCiAgICAgaWYgKG1fbGF5ZXIpCkBAIC0yNzcsOCArMjc3LDggQEAgdm9pZCBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6ZGVzdHJveSgpCiAgICAgLy8gQSBjb250aW51YXRpb24gb2YgdGhp
cyBSZW5kZXJPYmplY3Qgc2hvdWxkIGJlIGRlc3Ryb3llZCBhdCBzdWJjbGFzc2VzLgogICAgIEFT
U0VSVCghY29udGludWF0aW9uKCkpOwogCi0gICAgLy8gUmVuZGVyT2JqZWN0OjpkZXN0cm95IGNh
bGxzIGJhY2sgdG8gZGVzdHJveUxheWVyKCkgZm9yIGxheWVyIGRlc3RydWN0aW9uCi0gICAgUmVu
ZGVyT2JqZWN0OjpkZXN0cm95KCk7CisgICAgLy8gUmVuZGVyT2JqZWN0Ojp3aWxsQmVEZXN0cm95
ZWQgY2FsbHMgYmFjayB0byBkZXN0cm95TGF5ZXIoKSBmb3IgbGF5ZXIgZGVzdHJ1Y3Rpb24KKyAg
ICBSZW5kZXJPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpOwogfQogCiBib29sIFJlbmRlckJveE1v
ZGVsT2JqZWN0OjpoYXNTZWxmUGFpbnRpbmdMYXllcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IDE0YzAzZGFjOThhNWRk
NDY4NmVlZWI0ZmU5Y2QwNDdkNjc4MjFjN2IuLjJiYjYxMzVhNGY3ZmIzNjYzYTFmNzUwZWQyMDMx
YTNkZjY4ZDJmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5oCkBAIC00OCw4ICs0OCw2IEBAIHB1YmxpYzoKICAgICBSZW5kZXJCb3hNb2Rl
bE9iamVjdChOb2RlKik7CiAgICAgdmlydHVhbCB+UmVuZGVyQm94TW9kZWxPYmplY3QoKTsKICAg
ICAKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpOwotCiAgICAgTGF5b3V0VW5pdCByZWxhdGl2
ZVBvc2l0aW9uT2Zmc2V0WCgpIGNvbnN0OwogICAgIExheW91dFVuaXQgcmVsYXRpdmVQb3NpdGlv
bk9mZnNldFkoKSBjb25zdDsKICAgICBMYXlvdXRTaXplIHJlbGF0aXZlUG9zaXRpb25PZmZzZXQo
KSBjb25zdCB7IHJldHVybiBMYXlvdXRTaXplKHJlbGF0aXZlUG9zaXRpb25PZmZzZXRYKCksIHJl
bGF0aXZlUG9zaXRpb25PZmZzZXRZKCkpOyB9CkBAIC0xMjcsMTMgKzEyNSwxNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBpbnQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlv
bk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9v
bCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRp
b25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCA9IDA7CiAKLSAgICAvLyBDYWxsZWQgYnkgUmVuZGVy
T2JqZWN0OjpkZXN0cm95KCkgKGFuZCBSZW5kZXJXaWRnZXQ6OmRlc3Ryb3koKSkgYW5kIGlzIHRo
ZSBvbmx5IHdheSBsYXllcnMgc2hvdWxkIGV2ZXIgYmUgZGVzdHJveWVkCisgICAgLy8gQ2FsbGVk
IGJ5IFJlbmRlck9iamVjdDo6d2lsbEJlRGVzdHJveWVkKCkgYW5kIGlzIHRoZSBvbmx5IHdheSBs
YXllcnMgc2hvdWxkIGV2ZXIgYmUgZGVzdHJveWVkCiAgICAgdm9pZCBkZXN0cm95TGF5ZXIoKTsK
IAogICAgIHZvaWQgaGlnaFF1YWxpdHlSZXBhaW50VGltZXJGaXJlZChUaW1lcjxSZW5kZXJCb3hN
b2RlbE9iamVjdD4qKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3Rpb25TdGF0ZShTZWxl
Y3Rpb25TdGF0ZSBzKTsKKwogcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKTsKKwogICAgIHZvaWQgY2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkoY29u
c3QgRmlsbExheWVyKiwgY29uc3QgSW50UmVjdCYgcGFpbnRSZWN0LCBJbnRSZWN0JiBkZXN0UmVj
dCwgSW50UG9pbnQmIHBoYXNlLCBJbnRTaXplJiB0aWxlU2l6ZSk7CiAgICAgdm9pZCBnZXRCb3Jk
ZXJFZGdlSW5mbyhjbGFzcyBCb3JkZXJFZGdlW10sIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRn
ZSA9IHRydWUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UgPSB0cnVlKSBjb25zdDsKICAg
ICBib29sIGJvcmRlck9ic2N1cmVzQmFja2dyb3VuZEVkZ2UoY29uc3QgRmxvYXRTaXplJiBjb250
ZXh0U2NhbGUpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZ1bGxTY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxT
Y3JlZW4uY3BwCmluZGV4IDUxNGFiZTgxNmRkMmFiMTlkMTEzNmVhODc1YzZlYTE0YTU2MTE3NTMu
LjE4ZGJjOWY0ODczM2NmMDUwYzk4YjJjNGNlMWJjOWNmNzZlNWFjZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKQEAgLTQ1LDE0ICs0NSwxNCBA
QCBwdWJsaWM6CiAgICAgfQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJGdWxs
U2NyZWVuUGxhY2Vob2xkZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2
b2lkIGRlc3Ryb3koKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAgICAg
UmVuZGVyRnVsbFNjcmVlbiogbV9vd25lcjsKIH07CiAKLXZvaWQgUmVuZGVyRnVsbFNjcmVlblBs
YWNlaG9sZGVyOjpkZXN0cm95KCkKK3ZvaWQgUmVuZGVyRnVsbFNjcmVlblBsYWNlaG9sZGVyOjp3
aWxsQmVEZXN0cm95ZWQoKQogewogICAgIG1fb3duZXItPnNldFBsYWNlaG9sZGVyKDApOwotICAg
IFJlbmRlckJsb2NrOjpkZXN0cm95KCk7CisgICAgUmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3ll
ZCgpOwogfQogCiBSZW5kZXJGdWxsU2NyZWVuOjpSZW5kZXJGdWxsU2NyZWVuKE5vZGUqIG5vZGUp
IApAQCAtNjIsNyArNjIsNyBAQCBSZW5kZXJGdWxsU2NyZWVuOjpSZW5kZXJGdWxsU2NyZWVuKE5v
ZGUqIG5vZGUpCiAgICAgc2V0UmVwbGFjZWQoZmFsc2UpOyAKIH0KIAotdm9pZCBSZW5kZXJGdWxs
U2NyZWVuOjpkZXN0cm95KCkKK3ZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6d2lsbEJlRGVzdHJveWVk
KCkKIHsKICAgICBpZiAobV9wbGFjZWhvbGRlcikgewogICAgICAgICByZW1vdmUoKTsKQEAgLTc2
LDcgKzc2LDcgQEAgdm9pZCBSZW5kZXJGdWxsU2NyZWVuOjpkZXN0cm95KCkKICAgICBpZiAoZG9j
dW1lbnQoKSAmJiBkb2N1bWVudCgpLT5mdWxsU2NyZWVuUmVuZGVyZXIoKSA9PSB0aGlzKQogICAg
ICAgICBkb2N1bWVudCgpLT5mdWxsU2NyZWVuUmVuZGVyZXJEZXN0cm95ZWQoKTsKIAotICAgIFJl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6ZGVzdHJveSgpOworICAgIFJlbmRlckRlcHJlY2F0
ZWRGbGV4aWJsZUJveDo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIFBhc3NSZWZQdHI8UmVuZGVy
U3R5bGU+IFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0ZUZ1bGxTY3JlZW5TdHlsZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaAppbmRleCBkNDY4NDYxMzk3NWJh
NDliNzA0ZmZiYTIxOTk4ZTQ1Mjg5MzkyN2NjLi42ZjRjNzgzMWNkZGMxZDYzZmEwMzFkYjg3MDc4
NjIyZWE1YWI2N2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RnVsbFNjcmVlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2Ny
ZWVuLmgKQEAgLTM0LDcgKzM0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVuZGVy
RnVsbFNjcmVlbiA6IHB1YmxpYyBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3ggewogcHVibGlj
OgogICAgIFJlbmRlckZ1bGxTY3JlZW4oTm9kZSopOwotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95
KCk7CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyRnVsbFNjcmVlbigpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJl
dHVybiAiUmVuZGVyRnVsbFNjcmVlbiI7IH0KIApAQCAtNDMsNiArNDIsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjcmVhdGVQbGFjZWhvbGRlcihQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiwgY29uc3Qg
SW50UmVjdCYgZnJhbWVSZWN0KTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbmRlclN0eWxl
PiBjcmVhdGVGdWxsU2NyZWVuU3R5bGUoKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQg
d2lsbEJlRGVzdHJveWVkKCk7CiAgICAgCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyQmxvY2sqIG1f
cGxhY2Vob2xkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmlu
ZGV4IGM5YTRlYjI5ZjExYjM5NWQwMWUyZGM5ZGRhYzRmZTcyNDk1MDlmODYuLjcwODNkN2JhZTNk
M2IxZTJkYTk4ZWY1ZTlhMWI3ZDU5MTQ0MTM1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFJlbmRlcklubGluZTo6UmVuZGVy
SW5saW5lKE5vZGUqIG5vZGUpCiAgICAgc2V0Q2hpbGRyZW5JbmxpbmUodHJ1ZSk7CiB9CiAKLXZv
aWQgUmVuZGVySW5saW5lOjpkZXN0cm95KCkKK3ZvaWQgUmVuZGVySW5saW5lOjp3aWxsQmVEZXN0
cm95ZWQoKQogewogI2lmbmRlZiBOREVCVUcKICAgICAvLyBNYWtlIHN1cmUgd2UgZG8gbm90IHJl
dGFpbiAidGhpcyIgaW4gdGhlIGNvbnRpbnVhdGlvbiBvdXRsaW5lIHRhYmxlIG1hcCBvZiBvdXIg
Y29udGFpbmluZyBibG9ja3MuCkBAIC0xMDUsNyArMTA1LDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6
OmRlc3Ryb3koKQogCiAgICAgbV9saW5lQm94ZXMuZGVsZXRlTGluZUJveGVzKHJlbmRlckFyZW5h
KCkpOwogCi0gICAgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmRlc3Ryb3koKTsKKyAgICBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIFJlbmRlcklubGluZSogUmVu
ZGVySW5saW5lOjppbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAppbmRleCBmMjg0NjFmNGJkNzE3YTQ3ZmViZjYwNzY5
ZmZiZDZiNzFhMjM0YzE0Li4yYzI5MWQxZDg0NjVjNzcyOTc1ZjEyMDRiODRmZDU4ZDAyYzcyMTA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCkBAIC0zNSw4ICszNSw2
IEBAIGNsYXNzIFJlbmRlcklubGluZSA6IHB1YmxpYyBSZW5kZXJCb3hNb2RlbE9iamVjdCB7CiBw
dWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVySW5saW5lKE5vZGUqKTsKIAotICAgIHZpcnR1YWwg
dm9pZCBkZXN0cm95KCk7Ci0KICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0
KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApOwogCiAgICAgdmlydHVh
bCBMYXlvdXRVbml0IG1hcmdpbkxlZnQoKSBjb25zdDsKQEAgLTg2LDYgKzg0LDggQEAgcHVibGlj
OgogICAgIHZvaWQgdXBkYXRlQWx3YXlzQ3JlYXRlTGluZUJveGVzKCk7CiAKIHByb3RlY3RlZDoK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CisKICAgICB2aXJ0dWFsIHZvaWQg
c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
bGUpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRl
bS5jcHAKaW5kZXggMmUzNDk0NTM1ZmUxYjM0YTU0MjI3MjJkYTMxZmQ5NjFlOWI1YTFkMS4uN2E5
OTE1ZGUxYTBkMmIyMzYzZmNmMzQ4YjRkYTg5ZDVhNzQ1MDEwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwCkBAIC02NiwxMyArNjYsMTMgQEAgdm9pZCBS
ZW5kZXJMaXN0SXRlbTo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGQKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyTGlzdEl0ZW06OmRlc3Ry
b3koKQordm9pZCBSZW5kZXJMaXN0SXRlbTo6d2lsbEJlRGVzdHJveWVkKCkKIHsgICAgCiAgICAg
aWYgKG1fbWFya2VyKSB7CiAgICAgICAgIG1fbWFya2VyLT5kZXN0cm95KCk7CiAgICAgICAgIG1f
bWFya2VyID0gMDsKICAgICB9Ci0gICAgUmVuZGVyQmxvY2s6OmRlc3Ryb3koKTsKKyAgICBSZW5k
ZXJCbG9jazo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIHN0YXRpYyBib29sIGlzTGlzdChOb2Rl
KiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJ
dGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaAppbmRleCBh
MDViYTdkYzJlOTMyOGVjNGQxZmE3MDc5Y2VkYWRmNzRkZmRhYTViLi5lNTZlZmZmOGRlZWJkM2Yy
YjU2YzM1ZGE5ODYyMTA2ZWViZmI3YWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEl0ZW0uaApAQCAtNTQsNyArNTQsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBi
b29sIGlzTGlzdEl0ZW0oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgCi0gICAgdmlydHVh
bCB2b2lkIGRlc3Ryb3koKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCAxYjkyN2Q2NDk0MGY4ZTJhOGRjNzZhZWJlZWFmNTcz
MzI2Y2I3OTE3Li5mZDI0ZGY3N2Y3ZWNhYmFjNTY5N2QxODQ4MTZkZjBmZTdkNTk1ODNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMjA1Miw3ICsyMDUy
LDcgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OmlzU2VsZWN0aW9uQm9yZGVyKCkgY29uc3QKICAgICBy
ZXR1cm4gc3QgPT0gU2VsZWN0aW9uU3RhcnQgfHwgc3QgPT0gU2VsZWN0aW9uRW5kIHx8IHN0ID09
IFNlbGVjdGlvbkJvdGg7CiB9CiAKLXZvaWQgUmVuZGVyT2JqZWN0OjpkZXN0cm95KCkKK3ZvaWQg
UmVuZGVyT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKQogewogICAgIC8vIERlc3Ryb3kgYW55IGxl
ZnRvdmVyIGFub255bW91cyBjaGlsZHJlbi4KICAgICBSZW5kZXJPYmplY3RDaGlsZExpc3QqIGNo
aWxkcmVuID0gdmlydHVhbENoaWxkcmVuKCk7CkBAIC0yMDc0LDEwICsyMDc0LDYgQEAgdm9pZCBS
ZW5kZXJPYmplY3Q6OmRlc3Ryb3koKQogICAgIH0KICAgICBhbmltYXRpb24oKS0+Y2FuY2VsQW5p
bWF0aW9ucyh0aGlzKTsKIAotICAgIC8vIEJ5IGRlZmF1bHQgbm8gcmVmLWNvdW50aW5nLiBSZW5k
ZXJXaWRnZXQ6OmRlc3Ryb3koKSBkb2Vzbid0IGNhbGwKLSAgICAvLyB0aGlzIGZ1bmN0aW9uIGJl
Y2F1c2UgaXQgbmVlZHMgdG8gZG8gcmVmLWNvdW50aW5nLiBJZiBhbnl0aGluZwotICAgIC8vIGlu
IHRoaXMgZnVuY3Rpb24gY2hhbmdlcywgYmUgc3VyZSB0byBmaXggUmVuZGVyV2lkZ2V0OjpkZXN0
cm95KCkgYXMgd2VsbC4KLQogICAgIHJlbW92ZSgpOwogCiAgICAgLy8gSWYgdGhpcyByZW5kZXJl
ciBoYWQgYSBwYXJlbnQsIHJlbW92ZSBzaG91bGQgaGF2ZSBkZXN0cm95ZWQgYW55IGNvdW50ZXJz
CkBAIC0yMDk0LDYgKzIwOTAsMTEgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmRlc3Ryb3koKQogICAg
ICAgICBzZXRIYXNMYXllcihmYWxzZSk7CiAgICAgICAgIHRvUmVuZGVyQm94TW9kZWxPYmplY3Qo
dGhpcyktPmRlc3Ryb3lMYXllcigpOwogICAgIH0KK30KKwordm9pZCBSZW5kZXJPYmplY3Q6OmRl
c3Ryb3koKQoreworICAgIHdpbGxCZURlc3Ryb3llZCgpOwogICAgIGFyZW5hRGVsZXRlKHJlbmRl
ckFyZW5hKCksIHRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKaW5kZXggNWQ0M2NlMjJjNjcyYTNmMDYyYmY0ODYyZDgzZjEyYmVjMTVjYTIyMi4uNmU0Mjg5
MTcxOGRmZTJmMTgyY2YxMzJlODVjNzdjZjkwNjRmMTllYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaApAQCAtODAxLDYgKzgwMSw3IEBAIHByb3RlY3RlZDoKIAogICAg
IHZvaWQgYWRqdXN0UmVjdEZvck91dGxpbmVBbmRTaGFkb3coSW50UmVjdCYpIGNvbnN0OwogCisg
ICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogICAgIHZvaWQgYXJlbmFEZWxldGUo
UmVuZGVyQXJlbmEqLCB2b2lkKiBvYmplY3RCYXNlKTsKIAogICAgIHZpcnR1YWwgSW50UmVjdCBv
dXRsaW5lQm91bmRzRm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogLypyZXBhaW50Q29u
dGFpbmVyKi8sIEludFBvaW50KiAvKmNhY2hlZE9mZnNldFRvUmVwYWludENvbnRhaW5lciovID0g
MCkgY29uc3QgeyByZXR1cm4gSW50UmVjdCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCBjYWIyM2VlNGIzNmExYmZkZGMwMDVjZGEyYjJiY2M5
NTU0NWJhMzc1Li44YjA2YzcxMjE3YjYzN2EzMDMyMWQ4NDJmYjE4ZjMzNGY2ZTY5OGZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTU3LDEyICs1
NywxMiBAQCBSZW5kZXJSZXBsYWNlZDo6flJlbmRlclJlcGxhY2VkKCkKIHsKIH0KIAotdm9pZCBS
ZW5kZXJSZXBsYWNlZDo6ZGVzdHJveSgpCit2b2lkIFJlbmRlclJlcGxhY2VkOjp3aWxsQmVEZXN0
cm95ZWQoKQogewogICAgIGlmICghZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpICYmIHBhcmVudCgp
KQogICAgICAgICBwYXJlbnQoKS0+ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQodGhpcyk7CiAK
LSAgICBSZW5kZXJCb3g6OmRlc3Ryb3koKTsKKyAgICBSZW5kZXJCb3g6OndpbGxCZURlc3Ryb3ll
ZCgpOwogfQogCiB2b2lkIFJlbmRlclJlcGxhY2VkOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZl
cmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAppbmRleCA0OTcxODk1YjNhYzNkMzAzMDIwZmM2Yjc0
MmMxMzY2YzgxMDQ2MDVjLi5lODA5ZjQwZjk1ZGZjY2ViNTM4NjQwMGI2OTdlZGVmOTAwZWFkODA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaApAQCAtMzIsMTIg
KzMyLDEyIEBAIHB1YmxpYzoKICAgICBSZW5kZXJSZXBsYWNlZChOb2RlKiwgY29uc3QgSW50U2l6
ZSYgaW50cmluc2ljU2l6ZSk7CiAgICAgdmlydHVhbCB+UmVuZGVyUmVwbGFjZWQoKTsKIAotICAg
IHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7Ci0KICAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0
ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRoID0gdHJ1ZSkgY29uc3Q7
CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBj
b25zdDsKIAogcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsK
KwogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKIAogICAgIHZpcnR1YWwgSW50U2l6ZSBpbnRy
aW5zaWNTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZUNlbGwuY3BwCmluZGV4IDQwZDViMDFlMDgwY2U1NTg1YWQwYTlhMmM3Y2Q5MzU5ODJkYzUwMDAu
LjVhNTUxZGJjZDE3ODM5ODY5ZGM1MWY4ZWE4NjU3YmFjZDRlYThhYjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCkBAIC01NCwxMSArNTQsMTEgQEAg
UmVuZGVyVGFibGVDZWxsOjpSZW5kZXJUYWJsZUNlbGwoTm9kZSogbm9kZSkKICAgICB1cGRhdGVG
cm9tRWxlbWVudCgpOwogfQogCi12b2lkIFJlbmRlclRhYmxlQ2VsbDo6ZGVzdHJveSgpCit2b2lk
IFJlbmRlclRhYmxlQ2VsbDo6d2lsbEJlRGVzdHJveWVkKCkKIHsKICAgICBSZW5kZXJUYWJsZVNl
Y3Rpb24qIHJlY2FsY1NlY3Rpb24gPSBwYXJlbnQoKSA/IHNlY3Rpb24oKSA6IDA7CiAKLSAgICBS
ZW5kZXJCbG9jazo6ZGVzdHJveSgpOworICAgIFJlbmRlckJsb2NrOjp3aWxsQmVEZXN0cm95ZWQo
KTsKIAogICAgIGlmIChyZWNhbGNTZWN0aW9uKQogICAgICAgICByZWNhbGNTZWN0aW9uLT5zZXRO
ZWVkc0NlbGxSZWNhbGMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZUNlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNl
bGwuaAppbmRleCBlYThiN2UzZjM2NDEzNTQwYzRjNDExOWYwM2JmYTBjNzVmODA1NTc5Li5jMGM2
NDM2MTVmZDk4OGU5YWQ2Y2JlYmI3MjQwY2JlMTAyMGNlOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCkBAIC0xMzcsNyArMTM3LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxlQ2VsbCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
IAotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7CisgICAgdmlydHVhbCB2b2lkIHdpbGxCZURl
c3Ryb3llZCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMb2dpY2FsV2lkdGgoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAKaW5kZXggMDIzNjBj
NjVlYTVmZWU4MzAxZDZhY2FmOTVhZDI5Mjg5MzJmYzJiZS4uYmEzMWZmNjczNzkwMGY4NTRhNWJm
ZDJiNmI0NWQ1OTU5YzhlNTk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVSb3cuY3BwCkBAIC00MywxMSArNDMsMTEgQEAgUmVuZGVyVGFibGVSb3c6OlJlbmRlclRh
YmxlUm93KE5vZGUqIG5vZGUpCiAgICAgc2V0SW5saW5lKGZhbHNlKTsgICAvLyBvdXIgb2JqZWN0
IGlzIG5vdCBJbmxpbmUKIH0KIAotdm9pZCBSZW5kZXJUYWJsZVJvdzo6ZGVzdHJveSgpCit2b2lk
IFJlbmRlclRhYmxlUm93Ojp3aWxsQmVEZXN0cm95ZWQoKQogewogICAgIFJlbmRlclRhYmxlU2Vj
dGlvbiogcmVjYWxjU2VjdGlvbiA9IHNlY3Rpb24oKTsKICAgICAKLSAgICBSZW5kZXJCb3g6OmRl
c3Ryb3koKTsKKyAgICBSZW5kZXJCb3g6OndpbGxCZURlc3Ryb3llZCgpOwogICAgIAogICAgIGlm
IChyZWNhbGNTZWN0aW9uKQogICAgICAgICByZWNhbGNTZWN0aW9uLT5zZXROZWVkc0NlbGxSZWNh
bGMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJv
dy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKaW5kZXggYTg4
ZGUxMGIwN2NkNDc5OTcwMmQ5OWVlM2Q1ODc3M2ZiYTYzYWVlYy4uNDIzM2I0MDRlMjFhZjBjY2Zk
NmM4ZWI5YWY2ZjFhZmFkY2JkYTE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlUm93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlUm93LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9v
bCBpc1RhYmxlUm93KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lk
IGRlc3Ryb3koKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBi
ZWZvcmVDaGlsZCA9IDApOwogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKaW5kZXggZmQ1NDRiNTZj
YWFlZjYxMWFlMTNmMzUzNzQ1YjhiY2JkZmNmZjU1Yy4uZjg5NjZmNWYyN2JmMWIzNmFkMzY4MWUz
MjA1NmE3OWI3MTFmOWRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlU2VjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlU2VjdGlvbi5jcHAKQEAgLTc0LDExICs3NCwxMSBAQCBSZW5kZXJUYWJsZVNlY3Rpb246
On5SZW5kZXJUYWJsZVNlY3Rpb24oKQogICAgIGNsZWFyR3JpZCgpOwogfQogCi12b2lkIFJlbmRl
clRhYmxlU2VjdGlvbjo6ZGVzdHJveSgpCit2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6d2lsbEJl
RGVzdHJveWVkKCkKIHsKICAgICBSZW5kZXJUYWJsZSogcmVjYWxjVGFibGUgPSB0YWJsZSgpOwog
ICAgIAotICAgIFJlbmRlckJveDo6ZGVzdHJveSgpOworICAgIFJlbmRlckJveDo6d2lsbEJlRGVz
dHJveWVkKCk7CiAgICAgCiAgICAgLy8gcmVjYWxjIGNlbGwgaW5mbyBiZWNhdXNlIFJlbmRlclRh
YmxlIGhhcyB1bmd1YXJkZWQgcG9pbnRlcnMKICAgICAvLyBzdG9yZWQgdGhhdCBwb2ludCB0byB0
aGlzIFJlbmRlclRhYmxlU2VjdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZVNlY3Rpb24uaAppbmRleCBiOWFkNjFlMzFlZTVhZmJhMWZmZDYzMWZiMmI0YjU3Njll
MTk0ZTgzLi45ZjFmNDA2NTY0ZWNhNDQyZDg2YzhjMzFmMDZmOTdmZGE2OTkxMzk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCkBAIC0xMjYsNyAr
MTI2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxlU2VjdGlvbigpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7CisgICAg
dmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGxheW91
dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggNTkxODcy
OGExMDc1NDkyNDQ5NzVmNWViYzNiZjQ5MjE2ZWQ3ZGJlZi4uOGQ1MjljMDAxMjY5ZmZiNWYzYTIw
MTlmYzA2NjBjNmU4MTdiM2I0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcApAQCAtMTkzLDEwICsxOTMsMTAgQEAgdm9pZCBSZW5kZXJUZXh0OjpyZW1vdmVBbmREZXN0
cm95VGV4dEJveGVzKCkKICAgICBkZWxldGVUZXh0Qm94ZXMoKTsKIH0KIAotdm9pZCBSZW5kZXJU
ZXh0OjpkZXN0cm95KCkKK3ZvaWQgUmVuZGVyVGV4dDo6d2lsbEJlRGVzdHJveWVkKCkKIHsKICAg
ICByZW1vdmVBbmREZXN0cm95VGV4dEJveGVzKCk7Ci0gICAgUmVuZGVyT2JqZWN0OjpkZXN0cm95
KCk7CisgICAgUmVuZGVyT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKIH0KIAogdm9pZCBSZW5k
ZXJUZXh0OjpleHRyYWN0VGV4dEJveChJbmxpbmVUZXh0Qm94KiBib3gpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuaAppbmRleCAzMzkzNTUzMzY0NWYzZGU5NDg1ZGYyZTgyYTEyZGJm
ZDRhODgxNDMzLi5kMDllMWYxNGRjMWIwNjA2ZTliM2M5NWI4MDFmY2JkNjVkYjk2NmJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKQEAgLTQ4LDggKzQ4LDYgQEAgcHVibGlj
OgogICAgIHZvaWQgYXR0YWNoVGV4dEJveChJbmxpbmVUZXh0Qm94Kik7CiAgICAgdm9pZCByZW1v
dmVUZXh0Qm94KElubGluZVRleHRCb3gqKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7
Ci0KICAgICBTdHJpbmdJbXBsKiB0ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0LmltcGwoKTsg
fQogICAgIFN0cmluZyB0ZXh0V2l0aG91dFRyYW5zY29kaW5nKCkgY29uc3Q7CiAKQEAgLTEzMSw2
ICsxMjksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVBbmREZXN0cm95VGV4dEJveGVzKCk7
CiAKIHByb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CisKICAg
ICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVu
ZGVyU3R5bGUqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuY3BwCmluZGV4IDkxODE0ODdmZWNmYjNl
YmM5NjZlOGQ5YmMwYWU1ZmQ5OWVhMGZiMmMuLjE3YzlkN2I3N2QzZDNjYmM2ZWY3OTg5OTUyZmVk
OTY4MDdjMDEzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0RnJhZ21lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
RnJhZ21lbnQuY3BwCkBAIC02OCwxMSArNjgsMTEgQEAgdm9pZCBSZW5kZXJUZXh0RnJhZ21lbnQ6
OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSoK
ICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyVGV4dEZyYWdtZW50OjpkZXN0cm95KCkKK3ZvaWQgUmVu
ZGVyVGV4dEZyYWdtZW50Ojp3aWxsQmVEZXN0cm95ZWQoKQogewogICAgIGlmIChtX2ZpcnN0TGV0
dGVyKQogICAgICAgICBtX2ZpcnN0TGV0dGVyLT5kZXN0cm95KCk7Ci0gICAgUmVuZGVyVGV4dDo6
ZGVzdHJveSgpOworICAgIFJlbmRlclRleHQ6OndpbGxCZURlc3Ryb3llZCgpOwogfQogCiB2b2lk
IFJlbmRlclRleHRGcmFnbWVudDo6c2V0VGV4dEludGVybmFsKFBhc3NSZWZQdHI8U3RyaW5nSW1w
bD4gdGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQu
aAppbmRleCBjMjUxZjgxOTRiYTE3ODYzY2ZiYzNkZTJlYmJiNjk5M2NjMGI3Yjg0Li41NGIzMDdl
M2IyZGRhN2JiZmE4ZmEzODg1YTk3MDAzODc1YWZhMTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oCkBAIC0zOSw4ICszOSw2IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgYm9vbCBpc1RleHRGcmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7Ci0KICAgICB1bnNpZ25lZCBzdGFydCgp
IGNvbnN0IHsgcmV0dXJuIG1fc3RhcnQ7IH0KICAgICB1bnNpZ25lZCBlbmQoKSBjb25zdCB7IHJl
dHVybiBtX2VuZDsgfQogCkBAIC01NCw2ICs1Miw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSog
b2xkU3R5bGUpOwogCiBwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQo
KTsKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW50ZXJuYWwoUGFzc1JlZlB0cjxTdHJpbmdJ
bXBsPik7CiAgICAgdmlydHVhbCBVQ2hhciBwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0OwogICAg
IFJlbmRlckJsb2NrKiBibG9ja0ZvckFjY29tcGFueWluZ0ZpcnN0TGV0dGVyKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IGUxNDA1ZWEzMGI1
NDQ1ZGYyODBhZDdlMzgxODIyMzlhN2M1NDY4MWYuLjE3NWZlYmFkMGY2MzJlYWNlOTg4MWYzMTk2
NDFmOGQ5MTc0OTQ3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJXaWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQu
Y3BwCkBAIC0xMDgsNDcgKzEwOCwyNCBAQCBSZW5kZXJXaWRnZXQ6OlJlbmRlcldpZGdldChOb2Rl
KiBub2RlKQogICAgIHZpZXcoKS0+YWRkV2lkZ2V0KHRoaXMpOwogfQogCi12b2lkIFJlbmRlcldp
ZGdldDo6ZGVzdHJveSgpCit2b2lkIFJlbmRlcldpZGdldDo6d2lsbEJlRGVzdHJveWVkKCkKIHsK
LSAgICAvLyBXZSBjYW4ndCBjYWxsIHRoZSBiYXNlIGNsYXNzJ3MgZGVzdHJveSBiZWNhdXNlIHdl
IGRvbid0Ci0gICAgLy8gd2FudCB0byB1bmNvbmRpdGlvbmFsbHkgZGVsZXRlIG91cnNlbHZlcyAo
d2UncmUgcmVmLWNvdW50ZWQpLgotICAgIC8vIFNvIHRoZSBjb2RlIGJlbG93IGluY2x1ZGVzIGNv
cGllZCBhbmQgcGFzdGVkIGNvbnRlbnRzIG9mCi0gICAgLy8gYm90aCBSZW5kZXJCb3g6OmRlc3Ry
b3koKSBhbmQgUmVuZGVyT2JqZWN0OjpkZXN0cm95KCkuCi0gICAgLy8gRml4IG9yaWdpbmFsbHkg
bWFkZSBmb3IgPHJkYXI6Ly9wcm9ibGVtLzQyMjg4MTg+LgotCi0gICAgYW5pbWF0aW9uKCktPmNh
bmNlbEFuaW1hdGlvbnModGhpcyk7Ci0KICAgICBpZiAoUmVuZGVyVmlldyogdiA9IHZpZXcoKSkK
ICAgICAgICAgdi0+cmVtb3ZlV2lkZ2V0KHRoaXMpOwotCiAgICAgCiAgICAgaWYgKEFYT2JqZWN0
Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAgZG9jdW1lbnQoKS0+YXhP
YmplY3RDYWNoZSgpLT5jaGlsZHJlbkNoYW5nZWQodGhpcy0+cGFyZW50KCkpOwogICAgICAgICBk
b2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPnJlbW92ZSh0aGlzKTsKICAgICB9CiAKLSAgICBp
ZiAoIWRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSAmJiBwYXJlbnQoKSkgCi0gICAgICAgIHBhcmVu
dCgpLT5kaXJ0eUxpbmVzRnJvbUNoYW5nZWRDaGlsZCh0aGlzKTsKLQotICAgIHJlbW92ZSgpOwot
Ci0gICAgaWYgKG1faGFzQ291bnRlck5vZGVNYXApCi0gICAgICAgIFJlbmRlckNvdW50ZXI6OmRl
c3Ryb3lDb3VudGVyTm9kZXModGhpcyk7Ci0KICAgICBzZXRXaWRnZXQoMCk7CiAKLSAgICAvLyBy
ZW1vdmVzIGZyb20gb3ZlcnJpZGUgc2l6ZSBtYXAKLSAgICBpZiAoaGFzT3ZlcnJpZGVTaXplKCkp
Ci0gICAgICAgIGNsZWFyT3ZlcnJpZGVTaXplKCk7Ci0KLSAgICBpZiAoc3R5bGUoKSAmJiAoc3R5
bGUoKS0+bG9naWNhbEhlaWdodCgpLmlzUGVyY2VudCgpIHx8IHN0eWxlKCktPmxvZ2ljYWxNaW5I
ZWlnaHQoKS5pc1BlcmNlbnQoKSB8fCBzdHlsZSgpLT5sb2dpY2FsTWF4SGVpZ2h0KCkuaXNQZXJj
ZW50KCkpKQotICAgICAgICBSZW5kZXJCbG9jazo6cmVtb3ZlUGVyY2VudEhlaWdodERlc2NlbmRh
bnQodGhpcyk7CisgICAgUmVuZGVyUmVwbGFjZWQ6OndpbGxCZURlc3Ryb3llZCgpOworfQogCi0g
ICAgaWYgKGhhc0xheWVyKCkpIHsKLSAgICAgICAgbGF5ZXIoKS0+Y2xlYXJDbGlwUmVjdHMoKTsK
LSAgICAgICAgc2V0SGFzTGF5ZXIoZmFsc2UpOwotICAgICAgICBkZXN0cm95TGF5ZXIoKTsKLSAg
ICB9Cit2b2lkIFJlbmRlcldpZGdldDo6ZGVzdHJveSgpCit7CisgICAgd2lsbEJlRGVzdHJveWVk
KCk7CiAKICAgICAvLyBHcmFiIHRoZSBhcmVuYSBmcm9tIG5vZGUoKS0+ZG9jdW1lbnQoKS0+cmVu
ZGVyQXJlbmEoKSBiZWZvcmUgY2xlYXJpbmcgdGhlIG5vZGUgcG9pbnRlci4KICAgICAvLyBDbGVh
ciB0aGUgbm9kZSBiZWZvcmUgZGVyZWYtaW5nLCBhcyB0aGlzIG1heSBiZSBkZWxldGVkIHdoZW4g
ZGVyZWYgaXMgY2FsbGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcldpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCmlu
ZGV4IGYzNTljYWMxOTY0NzczNzdmZjhiYTNhMzRjZmVmZDA2MmNjZjI0OGQuLmQzOTEzODc3MDcy
MTRiODJkMjlkM2U1NDZiOGYxZjE5MWRjZDI5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyV2lkZ2V0LmgKQEAgLTY1LDYgKzY1LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIGJvb2wgaXNXaWRnZXQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKKyAgICB2
aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3ko
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0aW9uU3RhdGUoU2VsZWN0aW9uU3RhdGUpOwog
ICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRl
c3RSZXN1bHQmLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNvbnRhaW5lciwgY29uc3QgTGF5
b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAKaW5kZXggYTEwMTFmMzhh
YTJlYTIyZjE3NWJhZjlhYTM4ZTk0Y2ZiMzAyYmZkMi4uMjIzM2M1ZWM5NmY4OWFhNTQ5NmU4Nzcz
YWY4OTNlNDczYTUxZDc4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdCbG9jay5jcHAKQEAgLTc0LDEwICs3NCwxMCBAQCB2b2lkIFJlbmRlclNWR0Jsb2Nr
OjphYnNvbHV0ZVJlY3RzKFZlY3RvcjxMYXlvdXRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JikK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdCbG9jazo6ZGVz
dHJveSgpCit2b2lkIFJlbmRlclNWR0Jsb2NrOjp3aWxsQmVEZXN0cm95ZWQoKQogewogICAgIFNW
R1Jlc291cmNlc0NhY2hlOjpjbGllbnREZXN0cm95ZWQodGhpcyk7Ci0gICAgUmVuZGVyQmxvY2s6
OmRlc3Ryb3koKTsKKyAgICBSZW5kZXJCbG9jazo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIHZv
aWQgUmVuZGVyU1ZHQmxvY2s6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwg
Y29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdCbG9jay5oCmluZGV4IGE1MGM5MGNhMmUzYzQyMWIwNzQ0M2EyMmI0N2Yx
ZGYwMjc0MDkyY2QuLjc4YTZiNDFhNGRkN2IwMWZhN2IxODVhZmU4YjA1ZThjNmYxYmY5YjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmgKQEAgLTM4
LDcgKzM4LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZl
Y3RvcjxMYXlvdXRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCk7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVy
ZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5
bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCmluZGV4IDQ0YjM0ZWY0NzA5
ZDU0NGI2ZDFkZjNjNDc3YTlkYWE1NGM2Yjc1YzUuLjNhN2Q3MmFmZDk3N2FkMDc1ZTkzNTYwZGFl
YzkwMzk2MzU5Y2UwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0lubGluZS5jcHAKQEAgLTkzLDEzICs5MywxMyBAQCB2b2lkIFJlbmRlclNWR0lubGlu
ZTo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpCiAgICAgICAgIHF1YWRz
LmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdCh0ZXh0Qm91bmRpbmdCb3gueCgp
ICsgYm94LT54KCksIHRleHRCb3VuZGluZ0JveC55KCkgKyBib3gtPnkoKSwgYm94LT5sb2dpY2Fs
V2lkdGgoKSwgYm94LT5sb2dpY2FsSGVpZ2h0KCkpKSk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHSW5s
aW5lOjpkZXN0cm95KCkKK3ZvaWQgUmVuZGVyU1ZHSW5saW5lOjp3aWxsQmVEZXN0cm95ZWQoKQog
ewogICAgIGlmIChSZW5kZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIgPSBSZW5kZXJTVkdUZXh0Ojps
b2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IodGhpcykpCiAgICAgICAgIHRleHRSZW5kZXJlci0+
c2V0TmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZSgpOwogCiAgICAgU1ZHUmVzb3VyY2VzQ2Fj
aGU6OmNsaWVudERlc3Ryb3llZCh0aGlzKTsKLSAgICBSZW5kZXJJbmxpbmU6OmRlc3Ryb3koKTsK
KyAgICBSZW5kZXJJbmxpbmU6OndpbGxCZURlc3Ryb3llZCgpOwogfQogCiB2b2lkIFJlbmRlclNW
R0lubGluZTo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5k
ZXJTdHlsZSogbmV3U3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0lubGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdJbmxpbmUuaAppbmRleCBmNWVmNmExODY1MjI1OWM2MzU1MzI0NmJkMTRiMmJmMjdmZmIy
ZTI0Li5hYjFjODZmZTUwMzdiZTdiMzExMTdjNzM4ZTdmYWVmM2ZmOTViODY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKQEAgLTUzLDcgKzUz
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIElubGluZUZsb3dCb3gqIGNyZWF0
ZUlubGluZUZsb3dCb3goKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7CisgICAgdmly
dHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpOwogICAg
IHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGlu
ZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVU
ZXh0LmNwcAppbmRleCA2YjI3YWIxYzM1Mjc3YjZjNTkxODBlYzkxYjRmZDliMmUzMWZhMGNkLi41
YmNjNWIyODQ1MTRjOGQ4MWRhNGE3ZjQxNGRhOGI1ODE3MGNlNWYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAKQEAgLTcx
LDEyICs3MSwxMiBAQCBSZW5kZXJTVkdJbmxpbmVUZXh0OjpSZW5kZXJTVkdJbmxpbmVUZXh0KE5v
ZGUqIG4sIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gc3RyaW5nKQogewogfQogCi12b2lkIFJlbmRl
clNWR0lubGluZVRleHQ6OmRlc3Ryb3koKQordm9pZCBSZW5kZXJTVkdJbmxpbmVUZXh0Ojp3aWxs
QmVEZXN0cm95ZWQoKQogewogICAgIGlmIChSZW5kZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIgPSBS
ZW5kZXJTVkdUZXh0Ojpsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IodGhpcykpCiAgICAgICAg
IHRleHRSZW5kZXJlci0+c2V0TmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZSgpOwogCi0gICAg
UmVuZGVyVGV4dDo6ZGVzdHJveSgpOworICAgIFJlbmRlclRleHQ6OndpbGxCZURlc3Ryb3llZCgp
OwogfQogCiB2b2lkIFJlbmRlclNWR0lubGluZVRleHQ6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oCmluZGV4IDVjYTJi
ZWQ2YTBmOWJjNGYzOTY1NzE4MWUwNWY0YTIwMTIxZjJhZGMuLjE4YmU4NTk1NzJmYWJmOTVhODI2
MzlmOTEyOGUxOGYyMjk3NWJhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1
cm4gIlJlbmRlclNWR0lubGluZVRleHQiOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgp
OworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQg
c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSopOwogCiAg
ICAgLy8gRklYTUU6IFdlIG5lZWQgb2JqZWN0Qm91bmRpbmdCb3ggZm9yIERSVCByZXN1bHRzIGFu
ZCBmaWx0ZXJzIGF0IHRoZSBtb21lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCmluZGV4IDk4OTY5NmE2OGZjNzEyM2U0
MWI4ZGJjMjA1Yjc5YjFiNjc0MDNlM2UuLjdhODE0N2Y3ZDgxNWI5M2Q4MDYxMWQ0ODUzMzI1YTEw
ODA0Yjc3Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuY3BwCkBAIC04MSwxMCArODEsMTAgQEAgdm9pZCBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpCiAgICAg
cXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoc3Ryb2tlQm91bmRpbmdCb3goKSkpOwog
fQogCi12b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjpkZXN0cm95KCkKK3ZvaWQgUmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpCiB7CiAgICAgU1ZHUmVzb3VyY2VzQ2FjaGU6
OmNsaWVudERlc3Ryb3llZCh0aGlzKTsKLSAgICBSZW5kZXJPYmplY3Q6OmRlc3Ryb3koKTsKKyAg
ICBSZW5kZXJPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpOwogfQogCiB2b2lkIFJlbmRlclNWR01v
ZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJl
bmRlclN0eWxlKiBuZXdTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAppbmRleCBjYTZjZjY1NTA4MzU1OTgyMmRlYWUxYTAz
NTk2ODhjZTE4NjA3NTk0Li4xZDVkZjkzOTVhZmIyYmM1ZGM1NmIzOGYxZDJhMDIzN2Q5OTk5OTJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVs
T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2Rl
bE9iamVjdC5oCkBAIC01OCwxMyArNTgsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBh
YnNvbHV0ZVJlY3RzKFZlY3RvcjxMYXlvdXRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1
bXVsYXRlZE9mZnNldCk7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZs
b2F0UXVhZD4mKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7Ci0KICAgICB2aXJ0dWFs
IHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYs
IGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENo
YW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSk7CiAgICAg
dmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsK
IAorcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKKwogcHJp
dmF0ZToKICAgICAvLyBUaGlzIG1ldGhvZCBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkLCBTVkcgdXNl
cyBhIGRpZmZlcmVudCBub2RlQXRQb2ludCBtZXRob2QKICAgICBib29sIG5vZGVBdFBvaW50KGNv
bnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IExheW91dFBvaW50JiBw
b2ludEluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhp
dFRlc3RBY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmNwcAppbmRleCA3OWU4ZTFlMmY3ZGNiOThk
OTBhODY5ZDI3NjgzYjFlYjUwNzNiNmY4Li43NGQ1ZDY5YzQzNWU5MTAzZGJlZTAwY2Y5NjY0NDgx
ZjA1MmIzYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmNwcApAQCAtNTYsMTAgKzU2LDEwIEBAIHZv
aWQgUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXI6OmxheW91dCgpCiAgICAgUmVuZGVyU1ZHSGlk
ZGVuQ29udGFpbmVyOjpsYXlvdXQoKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRh
aW5lcjo6ZGVzdHJveSgpCit2b2lkIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyOjp3aWxsQmVE
ZXN0cm95ZWQoKQogewogICAgIFNWR1Jlc291cmNlc0NhY2hlOjpyZXNvdXJjZURlc3Ryb3llZCh0
aGlzKTsKLSAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXI6OmRlc3Ryb3koKTsKKyAgICBSZW5k
ZXJTVkdIaWRkZW5Db250YWluZXI6OndpbGxCZURlc3Ryb3llZCgpOwogfQogCiB2b2lkIFJlbmRl
clNWR1Jlc291cmNlQ29udGFpbmVyOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlm
ZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oCmluZGV4IGQ5
OGE4M2ExNDUwZjU1NWUwY2EzYjdmOWQ3NzU0MmMxMTFlZjgyNmMuLjdlY2NjYzIzODc0YjVjYmI4
OTk2ODcyY2FkN2MxNzliZWQwNTg0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmgKQEAgLTMzLDcgKzMz
LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7Ci0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3ko
KTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25z
dCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogCiAgICAgdmlydHVhbCBib29sIGlzU1ZHUmVzb3Vy
Y2VDb250YWluZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC02MSw2ICs2MCw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCByZW1vdmVDbGllbnQoUmVuZGVyT2JqZWN0Kik7CiAKIHByaXZhdGU6
CisgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogICAgIHZvaWQgcmVnaXN0ZXJS
ZXNvdXJjZSgpOwogCiAgICAgQXRvbWljU3RyaW5nIG1faWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAppbmRleCA0MTJjNDEwMDBlMjc5MTc4OGFj
YTAzM2VhYWQ2YWZmMjk1NjYwZDQzLi40NzBmMGQ3ODJjYmE5NjI1YTI2MTYxMDdkYjEzOTk5MTNk
MzliYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5jcHAKQEAgLTMxMywxMCArMzEzLDEwIEBAIHZvaWQgUmVuZGVyU1ZHUm9vdDo6cGFpbnQoUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKICAgICAg
ICAgcGFpbnRPdXRsaW5lKHBhaW50SW5mby5jb250ZXh0LCBMYXlvdXRSZWN0KGJvcmRlckJveE9y
aWdpbkluQ29udGFpbmVyLCBzaXplKCkpKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdSb290OjpkZXN0
cm95KCkKK3ZvaWQgUmVuZGVyU1ZHUm9vdDo6d2lsbEJlRGVzdHJveWVkKCkKIHsKICAgICBTVkdS
ZXNvdXJjZXNDYWNoZTo6Y2xpZW50RGVzdHJveWVkKHRoaXMpOwotICAgIFJlbmRlckJveDo6ZGVz
dHJveSgpOworICAgIFJlbmRlckJveDo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKIHZvaWQgUmVu
ZGVyU1ZHUm9vdDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBS
ZW5kZXJTdHlsZSogbmV3U3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5oCmluZGV4IGVhYzQxOTNjMjY4NzgyZjllNjliZGE2NjI4YTA2ZTE2MGNjZmMy
MzYuLjVjMWI4OTUzNWM3ZDI1MzRjMTQ3NTA1ZmNlMTFmNWYxN2IxMjY3MWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCkBAIC02NCw3ICs2NCw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwogICAgIHZpcnR1YWwgdm9pZCBw
YWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwogCi0gICAgdmlydHVhbCB2b2lk
IGRlc3Ryb3koKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAgICAgdmly
dHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0
eWxlKiBuZXdTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlRnJvbUVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVzb3VyY2VzQ2FjaGUuaAppbmRleCBiYzczZjRkZGFiNzhmMjRhNWM5M2YwOGMzZmQ2OTBk
OTE0OWU2NTFmLi44OTdjMTg0YzA5ZGYwZjQxY2NmOTA0MWEwZGVhNTAzYmFiY2M0YzA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0NhY2hlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5oCkBA
IC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgZnJvbSBhbGwgU1ZHIHJlbmRl
cmVycyB1cGRhdGVGcm9tRWxlbWVudCgpIG1ldGhvZHMuCiAgICAgc3RhdGljIHZvaWQgY2xpZW50
VXBkYXRlZEZyb21FbGVtZW50KFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdT
dHlsZSk7CiAKLSAgICAvLyBDYWxsZWQgZnJvbSBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6
ZGVzdHJveSgpLgorICAgIC8vIENhbGxlZCBmcm9tIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVy
Ojp3aWxsQmVEZXN0cm95ZWQoKS4KICAgICBzdGF0aWMgdm9pZCByZXNvdXJjZURlc3Ryb3llZChS
ZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciopOwogCiBwcml2YXRlOgo=
</data>
<flag name="review"
          id="94834"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>