<?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>19679</bug_id>
          
          <creation_ts>2008-06-19 12:04:10 -0700</creation_ts>
          <short_desc>iframes with a height of 32,768px or greater do not layout correctly</short_desc>
          <delta_ts>2008-06-20 15:23:05 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>83901</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-06-19 12:04:10 -0700</bug_when>
    <thetext>If a iframe has a height of 32,768px or greater (INT_MAX + 1), then the iframe does not display in the correct location on the page. This does not happen with other blocks. It seems like an integer overflow problem and could be related to iframes being NSViews on Mac. I am not sure what happens on Windows. Firefox does not have a problem either. See the attached test case.

This was found in the Web inspector, since we use iframes to display resource source code. We want to have the frame be the full height of the document, so we set the height to match the size of the frame body. This lets us put other sibling content (http headers) above the frame and have one scrollbar contain the extra content and the frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83903</commentid>
    <comment_count>1</comment_count>
      <attachid>21845</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-06-19 12:06:18 -0700</bug_when>
    <thetext>Created attachment 21845
Testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83905</commentid>
    <comment_count>2</comment_count>
      <attachid>21845</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-06-19 12:08:04 -0700</bug_when>
    <thetext>Comment on attachment 21845
Testcase

On Windows I see a large block of red, with a large block of green beneath it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83907</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-06-19 12:10:39 -0700</bug_when>
    <thetext>I meant to say SHORT_MAX + 1, not INT_MAX.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83908</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-06-19 12:11:08 -0700</bug_when>
    <thetext>So it seems this is a cross platform issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83923</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-06-19 14:34:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/6022403&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83949</commentid>
    <comment_count>6</comment_count>
      <attachid>21852</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-06-19 20:17:21 -0700</bug_when>
    <thetext>Created attachment 21852
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83981</commentid>
    <comment_count>7</comment_count>
      <attachid>21852</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-06-20 11:25:40 -0700</bug_when>
    <thetext>Comment on attachment 21852
Proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84007</commentid>
    <comment_count>8</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-06-20 15:23:05 -0700</bug_when>
    <thetext>Landed in r34693.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21845</attachid>
            <date>2008-06-19 12:06:18 -0700</date>
            <delta_ts>2008-06-19 12:06:18 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>248</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">WW91IHNob3VsZCBzZWUgYSBsYXJnZSBncmVlbiBibG9jayBiZWxvdyB0aGF0IGlzIDMyLDc2OHB4
IHRhbGwuIE5vIHJlZCBzaG91bGQgYmUgdmlzaWJsZS48YnI+CjxkaXYgc3R5bGU9ImhlaWdodDog
MzI3NjhweDsgYmFja2dyb3VuZC1jb2xvcjogcmVkIj4KPGlmcmFtZSBzdHlsZT0iaGVpZ2h0OiAz
Mjc2OHB4OyB3aWR0aDogMTAwJTsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IGJvcmRlcjogbm9u
ZSI+PC9pZnJhbWU+CjwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21852</attachid>
            <date>2008-06-19 20:17:21 -0700</date>
            <delta_ts>2008-06-20 11:25:40 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001-Fixes-Bug-19679-iframes-with-a-height-of-32-768px.patch</filename>
            <type>text/plain</type>
            <size>41322</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">RnJvbSA3OTMxODEwMGQ2ZTZhOTJiNWU1YTVjN2NkZDQ5Yzg4MjhiYzhmMzlkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW1vdGh5IEhhdGNoZXIgPHRpbW90aHlAYXBwbGUuY29tPgpE
YXRlOiBUaHUsIDE5IEp1biAyMDA4IDIwOjE5OjIxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gRml4
ZXM6IEJ1ZyAxOTY3OTogaWZyYW1lcyB3aXRoIGEgaGVpZ2h0IG9mIDMyLDc2OHB4IG9yIGdyZWF0
ZXIgZG8gbm90IGxheW91dCBjb3JyZWN0bHkKCldlYkNvcmU6CgoyMDA4LTA2LTE5ICBUaW1vdGh5
IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KCiAgICAgICAgQ2hhbmdlZCBhbGwgbGluZUhl
aWdodCwgYmFzZWxpbmVQb3NpdGlvbiBhbmQgdmVydGljYWxQb3NpdGlvbkhpbnQKICAgICAgICBj
YWxscyB0byByZXR1cm4gaW50IGluc3RlYWQgb2Ygc2hvcnQuIFRoZSBzaG9ydCB3YXMgb3ZlcmZs
b3dpbmcKICAgICAgICB3aGVuIGEgdmFsdWUgZ3JlYXRlciB0aGFuIDMyLDc2NyB3YXMgZW5jb3Vu
dGVyZWQuCgogICAgICAgIEZpeGVzOiBpZnJhbWVzIHdpdGggYSBoZWlnaHQgb2YgMzIsNzY4cHgg
b3IgZ3JlYXRlciBkbyBub3QgbGF5b3V0IGNvcnJlY3RseQogICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY3OQoKICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCiAgICAgICAgVGVzdDogZmFzdC9jc3MvbGluZS1oZWlnaHQtb3ZlcmZsb3cu
aHRtbAoKICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCUi5jcHA6CiAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJSOjpiYXNlbGluZVBvc2l0aW9uKToKICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
Ui5oOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OmxpbmVIZWlnaHQpOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmg6CiAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvdy5jcHA6CiAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRmxvdy5oOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3Bw
OgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdE1hcmtl
cjo6bGluZUhlaWdodCk6CiAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oOgog
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CiAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck9iamVjdDo6dmVydGljYWxQb3NpdGlvbkhpbnQpOgogICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oOgogICAgICAgIChXZWJDb3JlOjopOgogICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclBhdGguY3BwOgogICAgICAgIChXZWJDb3JlOjpSZW5kZXJQYXRoOjpsaW5lSGVpZ2h0KToK
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQYXRoLmg6CiAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwOgogICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6bGluZUhl
aWdodCk6CiAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaDoKICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJTVkdDb250YWluZXIuY3BwOgogICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
VkdDb250YWluZXI6OmxpbmVIZWlnaHQpOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR0Nv
bnRhaW5lci5oOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5j
cHA6CiAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcjo6bGluZUhlaWdo
dCk6CiAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmg6CiAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5jcHA6CiAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR1Jvb3Q6OmxpbmVIZWlnaHQpOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3Qu
aDoKICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgogICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclNsaWRlci5oOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5j
cHA6CiAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmg6CiAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGFibGVDb2wuaDoKICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVJv
dy5oOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oOgogICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQu
aDoKICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHA6CiAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaDoKICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZS5jcHA6CiAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLm1tOgogICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcDoKICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5oOgoKTGF5b3V0VGVzdHM6CgoyMDA4LTA2
LTE5ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KCiAgICAgICAgVGVzdCBm
b3I6IGlmcmFtZXMgd2l0aCBhIGhlaWdodCBvZiAzMiw3NjhweCBvciBncmVhdGVyIGRvIG5vdCBs
YXlvdXQgY29ycmVjdGx5CiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5Njc5CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAg
ICAqIGZhc3QvY3NzL2xpbmUtaGVpZ2h0LW92ZXJmbG93Lmh0bWw6IEFkZGVkLgogICAgICAgICog
cGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2xpbmUtaGVpZ2h0LW92ZXJmbG93LWV4cGVjdGVkLnR4dDog
QWRkZWQuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDEwICsrKwogTGF5b3V0VGVzdHMvZmFzdC9jc3MvbGluZS1oZWlnaHQtb3ZlcmZs
b3cuaHRtbCAgICAgfCAgICA0ICsKIC4uLi9tYWMvZmFzdC9jc3MvbGluZS1oZWlnaHQtb3ZlcmZs
b3ctZXhwZWN0ZWQudHh0IHwgICAxNyArKysrKwogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYzICsrKysrKysrKysrKysrKysrKysrCiBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCUi5jcHAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0K
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJSLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAg
NiArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwICAgICAgICAgICAgICAgICAg
fCAgICA2ICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oICAgICAgICAgICAgICAg
ICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3cuY3BwICAgICAgICAg
ICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvdy5oICAgICAg
ICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmNwcCAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guaCAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdE1hcmtlci5jcHAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0TWFya2VyLmggICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgICAgICAgICAgICAgICAgIHwgICAxMCArKy0tCiBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMTYgKysr
LS0tCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXRoLmNwcCAgICAgICAgICAgICAgICAgICB8
ICAgIDggKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhdGguaCAgICAgICAgICAgICAgICAg
ICAgIHwgICAgNCArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwICAgICAg
ICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oICAg
ICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0NvbnRh
aW5lci5jcHAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZH
Q29udGFpbmVyLmggICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTVkdIaWRkZW5Db250YWluZXIuY3BwICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5oICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU1ZHUm9vdC5jcHAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmggICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgICAgICAgICAgICAgICAgIHwgICAgMiAr
LQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmggICAgICAgICAgICAgICAgICAgfCAg
ICAyICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwICAgICAgICAgICAg
ICB8ICAgIDIgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oICAgICAgICAg
ICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaCAgICAg
ICAgICAgICAgICAgfCAgICAyICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5o
ICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
U2VjdGlvbi5oICAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5jcHAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmggICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sLmNwcCAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaCAgICAgICAgICAgICAgfCAgICAyICstCiBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0K
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggICAgICAgICAgICAgICAgICAgIHwgICAg
MiArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaCAgICAgICAgICAgICAgICAg
fCAgICAyICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSAgICAgICAgICAg
ICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmNwcCAg
ICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmku
aCAgICAgICAgICAgICAgfCAgICAyICstCiA0MyBmaWxlcyBjaGFuZ2VkLCAxNjcgaW5zZXJ0aW9u
cygrKSwgNzMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9jc3MvbGluZS1oZWlnaHQtb3ZlcmZsb3cuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9saW5lLWhlaWdodC1vdmVyZmxvdy1leHBlY3Rl
ZC50eHQKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMDVmYzhmNy4uNjhiMGU2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDA4LTA2LTE5ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAg
ICBUZXN0IGZvcjogaWZyYW1lcyB3aXRoIGEgaGVpZ2h0IG9mIDMyLDc2OHB4IG9yIGdyZWF0ZXIg
ZG8gbm90IGxheW91dCBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5Njc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9saW5lLWhlaWdodC1vdmVyZmxvdy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9jc3MvbGluZS1oZWlnaHQtb3ZlcmZsb3ct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAwOC0wNi0xOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbGluZS1oZWlnaHQtb3ZlcmZsb3cuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2xpbmUtaGVpZ2h0LW92ZXJmbG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uY2E4YjhjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL2xpbmUtaGVpZ2h0LW92ZXJmbG93Lmh0bWwKQEAgLTAsMCArMSw0IEBACitZ
b3Ugc2hvdWxkIHNlZSBhIGxhcmdlIGdyZWVuIGJsb2NrIGJlbG93IHRoYXQgaXMgMzIsNzY4cHgg
dGFsbC4gTm8gcmVkIHNob3VsZCBiZSB2aXNpYmxlLjxicj4KKzxkaXYgc3R5bGU9ImhlaWdodDog
MzI3NjhweDsgYmFja2dyb3VuZC1jb2xvcjogcmVkIj4KKzxpZnJhbWUgc3R5bGU9ImhlaWdodDog
MzI3NjhweDsgd2lkdGg6IDEwMCU7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyBib3JkZXI6IG5v
bmUiPjwvaWZyYW1lPgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9jc3MvbGluZS1oZWlnaHQtb3ZlcmZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2xpbmUtaGVpZ2h0LW92ZXJmbG93LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44N2U1ZTVjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2xpbmUtaGVpZ2h0LW92
ZXJmbG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitsYXllciBhdCAoMCwwKSBzaXpl
IDc4NXgzMjgwMgorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzg1eDYwMAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA3ODV4MzI4MDIKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
Nzg1eDMyODAyCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3Njl4MzI3ODYK
KyAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNzY5eDE4CisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU1OXgxOAorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDU1OTogIllvdSBzaG91bGQgc2VlIGEgbGFyZ2UgZ3JlZW4g
YmxvY2sgYmVsb3cgdGhhdCBpcyAzMiw3NjhweCB0YWxsLiBObyByZWQgc2hvdWxkIGJlIHZpc2li
bGUuIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICg1NTksMTQpIHNpemUgMHgwCisgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxOCkgc2l6ZSA3Njl4MzI3NjggW2JnY29sb3I9I0ZGMDAw
MF0KKyAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMCwwKSBzaXplIDc2OXgz
Mjc2OCBbYmdjb2xvcj0jMDA4MDAwXQorICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNzY5
eDMyNzY4CisgICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzY5eDMyNzY4Cisg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3Njl4MzI3NjgKKyAgICAgICAgICAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDc2OXgzMjc2OAorICAgICAgICAgICAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc1M3gzMjc1MgorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM1NDhkNS4uOTE5MTBjYyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw2OCBA
QAogMjAwOC0wNi0xOSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKKyAg
ICAgICAgQ2hhbmdlZCBhbGwgbGluZUhlaWdodCwgYmFzZWxpbmVQb3NpdGlvbiBhbmQgdmVydGlj
YWxQb3NpdGlvbkhpbnQKKyAgICAgICAgY2FsbHMgdG8gcmV0dXJuIGludCBpbnN0ZWFkIG9mIHNo
b3J0LiBUaGUgc2hvcnQgd2FzIG92ZXJmbG93aW5nCisgICAgICAgIHdoZW4gYSB2YWx1ZSBncmVh
dGVyIHRoYW4gMzIsNzY3IHdhcyBlbmNvdW50ZXJlZC4KKworICAgICAgICBGaXhlczogaWZyYW1l
cyB3aXRoIGEgaGVpZ2h0IG9mIDMyLDc2OHB4IG9yIGdyZWF0ZXIgZG8gbm90IGxheW91dCBjb3Jy
ZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
Njc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dDogZmFzdC9jc3MvbGluZS1oZWlnaHQtb3ZlcmZsb3cuaHRtbAorCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJSLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJSOjpiYXNlbGluZVBv
c2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQlIuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Omxp
bmVIZWlnaHQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGbG93LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxv
dy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0
TWFya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OmxpbmVIZWln
aHQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6OnZlcnRpY2FsUG9zaXRpb25IaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJQ
YXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBhdGg6OmxpbmVIZWlnaHQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJQYXRoLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpsaW5lSGVp
Z2h0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR0NvbnRhaW5lcjo6bGluZUhlaWdodCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNW
R0NvbnRhaW5lci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdIaWRkZW5Db250YWlu
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyOjpsaW5l
SGVpZ2h0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU1ZHUm9vdDo6bGluZUhlaWdodCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clNWR1Jvb3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2VsbC5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUYWJsZVJvdy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rp
b24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRleHQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2wuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUaGVtZVNhZmFyaS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJp
Lmg6CisKKzIwMDgtMDYtMTkgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgor
CiAgICAgICAgIFVwZGF0ZSB0aGUgSmF2YVNjcmlwdCBzeW50YXggaGlnaGxpZ2h0IGNvbG9ycyB0
byBtYXRjaCBYY29kZS4KICAgICAgICAgVGhpcyBtYXRjaGVzIHRoZSBvdGhlciBYY29kZSBjb2xv
cnMgd2UgYXJlIHVzaW5nIGZvciBIVE1MLgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCUi5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCUi5jcHAKaW5kZXggMDNh
NmExOC4uNTMwY2YyZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQlIuY3Bw
CisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJSLmNwcApAQCAtNDksMTQgKzQ5LDE0IEBA
IElubGluZUJveCogUmVuZGVyQlI6OmNyZWF0ZUlubGluZUJveChib29sIG1ha2VQbGFjZWhvbGRl
ciwgYm9vbCBpc1Jvb3RMaW5lQm94LCBiCiAgICAgcmV0dXJuIGJveDsKIH0KIAotc2hvcnQgUmVu
ZGVyQlI6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNSb290TGluZUJv
eCkgY29uc3QKK2ludCBSZW5kZXJCUjo6YmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwg
Ym9vbCBpc1Jvb3RMaW5lQm94KSBjb25zdAogewogICAgIGlmIChmaXJzdFRleHRCb3goKSAmJiAh
Zmlyc3RUZXh0Qm94KCktPmlzVGV4dCgpKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4g
UmVuZGVyVGV4dDo6YmFzZWxpbmVQb3NpdGlvbihmaXJzdExpbmUsIGlzUm9vdExpbmVCb3gpOwog
fQogCi1zaG9ydCBSZW5kZXJCUjo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgYm9vbCBpc1Jv
b3RMaW5lQm94KSBjb25zdAoraW50IFJlbmRlckJSOjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5l
LCBib29sIGlzUm9vdExpbmVCb3gpIGNvbnN0CiB7CiAgICAgaWYgKGZpcnN0VGV4dEJveCgpICYm
ICFmaXJzdFRleHRCb3goKS0+aXNUZXh0KCkpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQlIuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJSLmgKaW5kZXggYjViZGIyZi4uZTc1NTU3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQlIuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCUi5oCkBAIC00NSw4
ICs0NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKHVuc2lnbmVkIC8q
ZnJvbSovLCB1bnNpZ25lZCAvKmxlbiovLCBjb25zdCBGb250JiwgaW50IC8qeHBvcyovKSBjb25z
dCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCAvKmZy
b20qLywgdW5zaWduZWQgLypsZW4qLywgaW50IC8qeHBvcyovLCBib29sIC8qZmlyc3RMaW5lID0g
ZmFsc2UqLykgY29uc3QgeyByZXR1cm4gMDsgfQogCi0gICAgdmlydHVhbCBzaG9ydCBsaW5lSGVp
Z2h0KGJvb2wgZmlyc3RMaW5lLCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7Ci0g
ICAgdmlydHVhbCBzaG9ydCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBib29sIGlz
Um9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7CisgICAgdmlydHVhbCBpbnQgbGluZUhlaWdodChi
b29sIGZpcnN0TGluZSwgYm9vbCBpc1Jvb3RMaW5lQm94ID0gZmFsc2UpIGNvbnN0OworICAgIHZp
cnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNSb290TGlu
ZUJveCA9IGZhbHNlKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3R5bGUoUmVuZGVyU3R5
bGUqKTsKIAogICAgIC8vIG92ZXJyaWRlcwpAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JDb29yZGluYXRlcyhpbnQgeCwgaW50
IHkpOwogCiBwcml2YXRlOgotICAgIG11dGFibGUgc2hvcnQgbV9saW5lSGVpZ2h0OworICAgIG11
dGFibGUgaW50IG1fbGluZUhlaWdodDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBjZGI4OTg5Li5lM2NiMjdkIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCkBAIC00MDMyLDE4ICs0MDMyLDE4IEBAIGJvb2wgUmVuZGVyQmxv
Y2s6Omhhc0xpbmVJZkVtcHR5KCkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50KCktPmlzU2hhZG93Tm9kZSgpICYmIGVsZW1lbnQoKS0+c2hhZG93UGFyZW50Tm9kZSgpLT5o
YXNUYWdOYW1lKGlucHV0VGFnKSk7CiB9CiAKLXNob3J0IFJlbmRlckJsb2NrOjpsaW5lSGVpZ2h0
KGJvb2wgYiwgYm9vbCBpc1Jvb3RMaW5lQm94KSBjb25zdAoraW50IFJlbmRlckJsb2NrOjpsaW5l
SGVpZ2h0KGJvb2wgYiwgYm9vbCBpc1Jvb3RMaW5lQm94KSBjb25zdAogewogICAgIC8vIElubGlu
ZSBibG9ja3MgYXJlIHJlcGxhY2VkIGVsZW1lbnRzLiBPdGhlcndpc2UsIGp1c3QgcGFzcyBvZmYg
dG8KICAgICAvLyB0aGUgYmFzZSBjbGFzcy4gIElmIHdlJ3JlIGJlaW5nIHF1ZXJpZWQgYXMgdGhv
dWdoIHdlJ3JlIHRoZSByb290IGxpbmUKICAgICAvLyBib3gsIHRoZW4gdGhlIGZhY3QgdGhhdCB3
ZSdyZSBhbiBpbmxpbmUtYmxvY2sgaXMgaXJyZWxldmFudCwgYW5kIHdlIGJlaGF2ZQogICAgIC8v
IGp1c3QgbGlrZSBhIGJsb2NrLgogICAgIGlmIChpc1JlcGxhY2VkKCkgJiYgIWlzUm9vdExpbmVC
b3gpCi0gICAgICAgIHJldHVybiBoZWlnaHQoKSttYXJnaW5Ub3AoKSttYXJnaW5Cb3R0b20oKTsK
KyAgICAgICAgcmV0dXJuIGhlaWdodCgpICsgbWFyZ2luVG9wKCkgKyBtYXJnaW5Cb3R0b20oKTsK
ICAgICByZXR1cm4gUmVuZGVyRmxvdzo6bGluZUhlaWdodChiLCBpc1Jvb3RMaW5lQm94KTsKIH0K
IAotc2hvcnQgUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBiLCBib29sIGlzUm9v
dExpbmVCb3gpIGNvbnN0CitpbnQgUmVuZGVyQmxvY2s6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBi
LCBib29sIGlzUm9vdExpbmVCb3gpIGNvbnN0CiB7CiAgICAgLy8gSW5saW5lIGJsb2NrcyBhcmUg
cmVwbGFjZWQgZWxlbWVudHMuIE90aGVyd2lzZSwganVzdCBwYXNzIG9mZiB0bwogICAgIC8vIHRo
ZSBiYXNlIGNsYXNzLiAgSWYgd2UncmUgYmVpbmcgcXVlcmllZCBhcyB0aG91Z2ggd2UncmUgdGhl
IHJvb3QgbGluZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggZTM1MTFhZS4uMTdhZDE5MCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC01MSw4ICs1MSw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdDsKIAogICAgIC8vIFRoZXNlIHR3
byBmdW5jdGlvbnMgYXJlIG92ZXJyaWRkZW4gZm9yIGlubGluZS1ibG9jay4KLSAgICB2aXJ0dWFs
IHNob3J0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNSb290TGluZUJveCA9IGZh
bHNlKSBjb25zdDsKLSAgICB2aXJ0dWFsIHNob3J0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJz
dExpbmUsIGJvb2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBjb25zdDsKKyAgICB2aXJ0dWFsIGlu
dCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkg
Y29uc3Q7CisgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwg
Ym9vbCBpc1Jvb3RMaW5lQm94ID0gZmFsc2UpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIGlz
UmVuZGVyQmxvY2soKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
QmxvY2tGbG93KCkgY29uc3QgeyByZXR1cm4gKCFpc0lubGluZSgpIHx8IGlzUmVwbGFjZWQoKSkg
JiYgIWlzVGFibGUoKTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxv
dy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93LmNwcAppbmRleCA5ZTljZTVhLi5k
N2NmMDQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93LmNwcAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93LmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIHZv
aWQgUmVuZGVyRmxvdzo6ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQoUmVuZGVyT2JqZWN0KiBj
aGlsZCkKICAgICB9CiB9CiAKLXNob3J0IFJlbmRlckZsb3c6OmxpbmVIZWlnaHQoYm9vbCBmaXJz
dExpbmUsIGJvb2wgaXNSb290TGluZUJveCkgY29uc3QKK2ludCBSZW5kZXJGbG93OjpsaW5lSGVp
Z2h0KGJvb2wgZmlyc3RMaW5lLCBib29sIGlzUm9vdExpbmVCb3gpIGNvbnN0CiB7CiAgICAgaWYg
KGZpcnN0TGluZSkgewogICAgICAgICBSZW5kZXJTdHlsZSogcyA9IHN0eWxlKGZpcnN0TGluZSk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93LmggYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbG93LmgKaW5kZXggZGJmMDU3Zi4uZWM4NWNlNSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvdy5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3cuaApAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCk7CiAKLSAgICB2
aXJ0dWFsIHNob3J0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNSb290TGluZUJv
eCA9IGZhbHNlKSBjb25zdDsKKyAgICB2aXJ0dWFsIGludCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RM
aW5lLCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7CiAKICAgICBJbmxpbmVGbG93
Qm94KiBmaXJzdExpbmVCb3goKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0TGluZUJveDsgfQogICAg
IElubGluZUZsb3dCb3gqIGxhc3RMaW5lQm94KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TGluZUJv
eDsgfQpAQCAtMTE5LDcgKzExOSw3IEBAIHByb3RlY3RlZDoKICAgICBJbmxpbmVGbG93Qm94KiBt
X2ZpcnN0TGluZUJveDsKICAgICBJbmxpbmVGbG93Qm94KiBtX2xhc3RMaW5lQm94OwogCi0gICAg
bXV0YWJsZSBzaG9ydCBtX2xpbmVIZWlnaHQ7CisgICAgbXV0YWJsZSBpbnQgbV9saW5lSGVpZ2h0
OwogICAgIAogICAgIC8vIFRoZXNlIGJpdGZpZWxkcyBhcmUgbW92ZWQgaGVyZSBmcm9tIHN1YmNs
YXNzZXMgdG8gcGFjayB0aGVtIHRvZ2V0aGVyCiAgICAgLy8gZnJvbSBSZW5kZXJCbG9jawpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCBkYWYyZGQxLi4zZWQ0MGI5IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgUmVuZGVy
TGlzdEJveDo6Y2FsY0hlaWdodCgpCiAgICAgfQogfQogCi1zaG9ydCBSZW5kZXJMaXN0Qm94Ojpi
YXNlbGluZVBvc2l0aW9uKGJvb2wgYiwgYm9vbCBpc1Jvb3RMaW5lQm94KSBjb25zdAoraW50IFJl
bmRlckxpc3RCb3g6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBiLCBib29sIGlzUm9vdExpbmVCb3gp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGhlaWdodCgpICsgbWFyZ2luVG9wKCkgKyBtYXJnaW5Cb3R0
b20oKSAtIGJhc2VsaW5lQWRqdXN0bWVudDsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApp
bmRleCBiYTE2OWRkLi45NWI2MDEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBAIC02
Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxhYmxlKCkgY29u
c3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FsY1ByZWZXaWR0aHMoKTsKLSAgICB2aXJ0dWFsIHNo
b3J0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNSb290TGluZUJveCkg
Y29uc3Q7CisgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwg
Ym9vbCBpc1Jvb3RMaW5lQm94KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgY2FsY0hlaWdodCgp
OwogCiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
TWFya2VyLmNwcAppbmRleCBlOTE3OGY5Li5hN2FlMjE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0TWFya2VyLmNwcApAQCAtODAxLDE0ICs4MDEsMTQgQEAgdm9pZCBSZW5kZXJMaXN0TWFy
a2VyOjp1cGRhdGVNYXJnaW5zKCkKICAgICBzdHlsZSgpLT5zZXRNYXJnaW5SaWdodChMZW5ndGgo
bWFyZ2luUmlnaHQsIEZpeGVkKSk7CiB9CiAKLXNob3J0IFJlbmRlckxpc3RNYXJrZXI6OmxpbmVI
ZWlnaHQoYm9vbCwgYm9vbCkgY29uc3QKK2ludCBSZW5kZXJMaXN0TWFya2VyOjpsaW5lSGVpZ2h0
KGJvb2wsIGJvb2wpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0ltYWdlKCkpCiAgICAgICAgIHJldHVy
biBtX2xpc3RJdGVtLT5saW5lSGVpZ2h0KGZhbHNlLCB0cnVlKTsKICAgICByZXR1cm4gaGVpZ2h0
KCk7CiB9CiAKLXNob3J0IFJlbmRlckxpc3RNYXJrZXI6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCwg
Ym9vbCkgY29uc3QKK2ludCBSZW5kZXJMaXN0TWFya2VyOjpiYXNlbGluZVBvc2l0aW9uKGJvb2ws
IGJvb2wpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0ltYWdlKCkpIHsKICAgICAgICAgY29uc3QgRm9u
dCYgZm9udCA9IHN0eWxlKCktPmZvbnQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RNYXJrZXIuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIu
aAppbmRleCBiZjZlOGQxLi42NzA0ZGE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtl
ci5oCkBAIC01Myw4ICs1Myw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgSW5saW5lQm94KiBj
cmVhdGVJbmxpbmVCb3goYm9vbCwgYm9vbCwgYm9vbCk7CiAKLSAgICB2aXJ0dWFsIHNob3J0IGxp
bmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBjb25z
dDsKLSAgICB2aXJ0dWFsIHNob3J0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIGJv
b2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBjb25zdDsKKyAgICB2aXJ0dWFsIGludCBsaW5lSGVp
Z2h0KGJvb2wgZmlyc3RMaW5lLCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7Cisg
ICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgYm9vbCBpc1Jv
b3RMaW5lQm94ID0gZmFsc2UpIGNvbnN0OwogCiAgICAgYm9vbCBpc0ltYWdlKCkgY29uc3Q7CiAg
ICAgYm9vbCBpc1RleHQoKSBjb25zdCB7IHJldHVybiAhaXNJbWFnZSgpOyB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcAppbmRleCBhNThlMmU0Li5iOTE2MTRhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAKQEAgLTI2NTIsMTEgKzI2NTIsMTEgQEAgYm9vbCBSZW5kZXJPYmplY3Q6
Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGludCAv
KngqLywKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXNob3J0IFJlbmRlck9iamVjdDo6dmVydGlj
YWxQb3NpdGlvbkhpbnQoYm9vbCBmaXJzdExpbmUpIGNvbnN0CitpbnQgUmVuZGVyT2JqZWN0Ojp2
ZXJ0aWNhbFBvc2l0aW9uSGludChib29sIGZpcnN0TGluZSkgY29uc3QKIHsKICAgICBpZiAoZmly
c3RMaW5lKSAvLyBXZSdyZSBvbmx5IHJlYWxseSBhIGZpcnN0LWxpbmUgc3R5bGUgaWYgdGhlIGRv
Y3VtZW50IGFjdHVhbGx5IHVzZXMgZmlyc3QtbGluZSBydWxlcy4KICAgICAgICAgZmlyc3RMaW5l
ID0gZG9jdW1lbnQoKS0+dXNlc0ZpcnN0TGluZVJ1bGVzKCk7Ci0gICAgc2hvcnQgdnBvcyA9IG1f
dmVydGljYWxQb3NpdGlvbjsKKyAgICBpbnQgdnBvcyA9IG1fdmVydGljYWxQb3NpdGlvbjsKICAg
ICBpZiAobV92ZXJ0aWNhbFBvc2l0aW9uID09IFBvc2l0aW9uVW5kZWZpbmVkIHx8IGZpcnN0TGlu
ZSkgewogICAgICAgICB2cG9zID0gZ2V0VmVydGljYWxQb3NpdGlvbihmaXJzdExpbmUpOwogICAg
ICAgICBpZiAoIWZpcnN0TGluZSkKQEAgLTI2NjYsNyArMjY2Niw3IEBAIHNob3J0IFJlbmRlck9i
amVjdDo6dmVydGljYWxQb3NpdGlvbkhpbnQoYm9vbCBmaXJzdExpbmUpIGNvbnN0CiAgICAgcmV0
dXJuIHZwb3M7CiB9CiAKLXNob3J0IFJlbmRlck9iamVjdDo6Z2V0VmVydGljYWxQb3NpdGlvbihi
b29sIGZpcnN0TGluZSkgY29uc3QKK2ludCBSZW5kZXJPYmplY3Q6OmdldFZlcnRpY2FsUG9zaXRp
b24oYm9vbCBmaXJzdExpbmUpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0lubGluZSgpKQogICAgICAg
ICByZXR1cm4gMDsKQEAgLTI3MDksNyArMjcwOSw3IEBAIHNob3J0IFJlbmRlck9iamVjdDo6Z2V0
VmVydGljYWxQb3NpdGlvbihib29sIGZpcnN0TGluZSkgY29uc3QKICAgICByZXR1cm4gdnBvczsK
IH0KIAotc2hvcnQgUmVuZGVyT2JqZWN0OjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBib29s
IC8qaXNSb290TGluZUJveCovKSBjb25zdAoraW50IFJlbmRlck9iamVjdDo6bGluZUhlaWdodChi
b29sIGZpcnN0TGluZSwgYm9vbCAvKmlzUm9vdExpbmVCb3gqLykgY29uc3QKIHsKICAgICBSZW5k
ZXJTdHlsZSogcyA9IHN0eWxlKGZpcnN0TGluZSk7CiAKQEAgLTI3MjYsNyArMjcyNiw3IEBAIHNo
b3J0IFJlbmRlck9iamVjdDo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgYm9vbCAvKmlzUm9v
dExpbmVCb3gqLykgY29uc3QKICAgICByZXR1cm4gbGgudmFsdWUoKTsKIH0KIAotc2hvcnQgUmVu
ZGVyT2JqZWN0OjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBib29sIGlzUm9vdExp
bmVCb3gpIGNvbnN0CitpbnQgUmVuZGVyT2JqZWN0OjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmly
c3RMaW5lLCBib29sIGlzUm9vdExpbmVCb3gpIGNvbnN0CiB7CiAgICAgY29uc3QgRm9udCYgZiA9
IHN0eWxlKGZpcnN0TGluZSktPmZvbnQoKTsKICAgICByZXR1cm4gZi5hc2NlbnQoKSArIChsaW5l
SGVpZ2h0KGZpcnN0TGluZSwgaXNSb290TGluZUJveCkgLSBmLmhlaWdodCgpKSAvIDI7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDE1MzMyYzkuLjcwNTEwNzcgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCkBAIC0xMDUsOSArMTA1LDkgQEAgZW51bSBIaXRUZXN0QWN0aW9uIHsKIH07
CiAKIGVudW0gVmVydGljYWxQb3NpdGlvbkhpbnQgewotICAgIFBvc2l0aW9uVG9wID0gLTB4MjAw
MCwKLSAgICBQb3NpdGlvbkJvdHRvbSA9IDB4MjAwMCwKLSAgICBQb3NpdGlvblVuZGVmaW5lZCA9
IDB4MWZmZgorICAgIFBvc2l0aW9uVG9wID0gLTB4N2ZmZmZmZmYsCisgICAgUG9zaXRpb25Cb3R0
b20gPSAweDdmZmZmZmZmLAorICAgIFBvc2l0aW9uVW5kZWZpbmVkID0gc3RhdGljX2Nhc3Q8aW50
PigweDgwMDAwMDAwKQogfTsKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKQEAgLTQ0
MCwxMiArNDQwLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlTGluZUJveFdy
YXBwZXIoKTsKIAogICAgIC8vIGZvciBkaXNjdXNzaW9uIG9mIGxpbmVIZWlnaHQgc2VlIENTUzIg
c3BlYwotICAgIHZpcnR1YWwgc2hvcnQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgYm9vbCBp
c1Jvb3RMaW5lQm94ID0gZmFsc2UpIGNvbnN0OworICAgIHZpcnR1YWwgaW50IGxpbmVIZWlnaHQo
Ym9vbCBmaXJzdExpbmUsIGJvb2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBjb25zdDsKICAgICAv
LyBmb3IgdGhlIHZlcnRpY2FsLWFsaWduIHByb3BlcnR5IG9mIGlubGluZSBlbGVtZW50cwogICAg
IC8vIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBvYmplY3RzIGJhc2VsaW5lIHBvc2l0aW9u
IGFuZCB0aGUgbGluZXMgYmFzZWxpbmUgcG9zaXRpb24uCi0gICAgdmlydHVhbCBzaG9ydCB2ZXJ0
aWNhbFBvc2l0aW9uSGludChib29sIGZpcnN0TGluZSkgY29uc3Q7CisgICAgdmlydHVhbCBpbnQg
dmVydGljYWxQb3NpdGlvbkhpbnQoYm9vbCBmaXJzdExpbmUpIGNvbnN0OwogICAgIC8vIHRoZSBv
ZmZzZXQgb2YgYmFzZWxpbmUgZnJvbSB0aGUgdG9wIG9mIHRoZSBvYmplY3QuCi0gICAgdmlydHVh
bCBzaG9ydCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBib29sIGlzUm9vdExpbmVC
b3ggPSBmYWxzZSkgY29uc3Q7CisgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihib29s
IGZpcnN0TGluZSwgYm9vbCBpc1Jvb3RMaW5lQm94ID0gZmFsc2UpIGNvbnN0OwogCiAgICAgLyoK
ICAgICAgKiBQYWludCB0aGUgb2JqZWN0IGFuZCBpdHMgY2hpbGRyZW4sIGNsaXBwZWQgYnkgKHh8
eXx3fGgpLgpAQCAtOTA3LDcgKzkwNyw3IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgSW50
UmVjdCB2aWV3UmVjdCgpIGNvbnN0OwogCi0gICAgc2hvcnQgZ2V0VmVydGljYWxQb3NpdGlvbihi
b29sIGZpcnN0TGluZSkgY29uc3Q7CisgICAgaW50IGdldFZlcnRpY2FsUG9zaXRpb24oYm9vbCBm
aXJzdExpbmUpIGNvbnN0OwogCiAgICAgdm9pZCBhZGp1c3RSZWN0Rm9yT3V0bGluZUFuZFNoYWRv
dyhJbnRSZWN0JikgY29uc3Q7CiAKQEAgLTkyNSw3ICs5MjUsNyBAQCBwcml2YXRlOgogI2lmbmRl
ZiBOREVCVUcKICAgICBib29sIG1faGFzQVhPYmplY3Q7CiAjZW5kaWYKLSAgICBtdXRhYmxlIHNo
b3J0IG1fdmVydGljYWxQb3NpdGlvbiA6IDE1OworICAgIG11dGFibGUgaW50IG1fdmVydGljYWxQ
b3NpdGlvbjsKIAogICAgIGJvb2wgbV9uZWVkc0xheW91dCAgICAgICAgICAgICAgIDogMTsKICAg
ICBib29sIG1fbmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQgOjE7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXRoLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clBhdGguY3BwCmluZGV4IDBkNTMwZmIuLjQ3ZWI0YTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclBhdGguY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhdGgu
Y3BwCkBAIC0xNzAsMTQgKzE3MCwxNCBAQCBib29sIFJlbmRlclBhdGg6OnJlcXVpcmVzTGF5ZXIo
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc2hvcnQgUmVuZGVyUGF0aDo6bGluZUhlaWdodChi
b29sIGIsIGJvb2wgaXNSb290TGluZUJveCkgY29uc3QKK2ludCBSZW5kZXJQYXRoOjpsaW5lSGVp
Z2h0KGJvb2wgYiwgYm9vbCBpc1Jvb3RMaW5lQm94KSBjb25zdAogewotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxzaG9ydD4ocmVsYXRpdmVCQm94KHRydWUpLmhlaWdodCgpKTsKKyAgICByZXR1cm4g
cmVsYXRpdmVCQm94KHRydWUpLmhlaWdodCgpOwogfQogCi1zaG9ydCBSZW5kZXJQYXRoOjpiYXNl
bGluZVBvc2l0aW9uKGJvb2wgYiwgYm9vbCBpc1Jvb3RMaW5lQm94KSBjb25zdAoraW50IFJlbmRl
clBhdGg6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBiLCBib29sIGlzUm9vdExpbmVCb3gpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PHNob3J0PihyZWxhdGl2ZUJCb3godHJ1ZSkuaGVp
Z2h0KCkpOworICAgIHJldHVybiByZWxhdGl2ZUJCb3godHJ1ZSkuaGVpZ2h0KCk7CiB9CiAKIHN0
YXRpYyBpbmxpbmUgdm9pZCBmaWxsQW5kU3Ryb2tlUGF0aChjb25zdCBQYXRoJiBwYXRoLCBHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyUGF0aCogb2Jq
ZWN0KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5oIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUGF0aC5oCmluZGV4IDBjY2M0MjYuLmFiOTY2ZTQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhdGguaAorKysgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJQYXRoLmgKQEAgLTY0LDggKzY0LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBsYXlvdXQoKTsKICAgICB2aXJ0dWFsIEludFJlY3QgYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dS
ZWN0KCk7CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKTsKLSAgICB2aXJ0dWFsIHNo
b3J0IGxpbmVIZWlnaHQoYm9vbCBiLCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7
Ci0gICAgdmlydHVhbCBzaG9ydCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgYiwgYm9vbCBpc1Jvb3RM
aW5lQm94ID0gZmFsc2UpIGNvbnN0OworICAgIHZpcnR1YWwgaW50IGxpbmVIZWlnaHQoYm9vbCBi
LCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7CisgICAgdmlydHVhbCBpbnQgYmFz
ZWxpbmVQb3NpdGlvbihib29sIGIsIGJvb2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgaW50IHBhcmVudFgsIGludCBwYXJl
bnRZKTsKIAogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYs
IGludCB0eCwgaW50IHR5LCBib29sIHRvcExldmVsID0gdHJ1ZSk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5jcHAKaW5kZXggNmU0YWM3Ni4uODI1N2M1MSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJlcGxhY2VkLmNwcApAQCAtMTg2LDEyICsxODYsMTIgQEAgdm9pZCBSZW5kZXJSZXBsYWNl
ZDo6Y2FsY1ByZWZXaWR0aHMoKQogICAgIHNldFByZWZXaWR0aHNEaXJ0eShmYWxzZSk7CiB9CiAK
LXNob3J0IFJlbmRlclJlcGxhY2VkOjpsaW5lSGVpZ2h0KGJvb2wsIGJvb2wpIGNvbnN0CitpbnQg
UmVuZGVyUmVwbGFjZWQ6OmxpbmVIZWlnaHQoYm9vbCwgYm9vbCkgY29uc3QKIHsKICAgICByZXR1
cm4gaGVpZ2h0KCkgKyBtYXJnaW5Ub3AoKSArIG1hcmdpbkJvdHRvbSgpOwogfQogCi1zaG9ydCBS
ZW5kZXJSZXBsYWNlZDo6YmFzZWxpbmVQb3NpdGlvbihib29sLCBib29sKSBjb25zdAoraW50IFJl
bmRlclJlcGxhY2VkOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wsIGJvb2wpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGhlaWdodCgpICsgbWFyZ2luVG9wKCkgKyBtYXJnaW5Cb3R0b20oKTsKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsYWNlZC5oCmluZGV4IGMxMjRmYzUuLjJiMzBiYTUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGFjZWQuaApAQCAtMzQsOCArMzQsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyUmVwbGFj
ZWQiOyB9CiAKLSAgICB2aXJ0dWFsIHNob3J0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIGJv
b2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBjb25zdDsKLSAgICB2aXJ0dWFsIHNob3J0IGJhc2Vs
aW5lUG9zaXRpb24oYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBj
b25zdDsKKyAgICB2aXJ0dWFsIGludCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBib29sIGlz
Um9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7CisgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3Np
dGlvbihib29sIGZpcnN0TGluZSwgYm9vbCBpc1Jvb3RMaW5lQm94ID0gZmFsc2UpIGNvbnN0Owog
CiAgICAgdmlydHVhbCB2b2lkIGNhbGNQcmVmV2lkdGhzKCk7CiAgICAgCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdDb250YWluZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAppbmRleCA3ODY4NWRlLi41MjRjYzhmIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdDb250YWluZXIuY3BwCisrKyBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNWR0NvbnRhaW5lci5jcHAKQEAgLTIwOSwxMiArMjA5LDEyIEBA
IGJvb2wgUmVuZGVyU1ZHQ29udGFpbmVyOjpyZXF1aXJlc0xheWVyKCkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXNob3J0IFJlbmRlclNWR0NvbnRhaW5lcjo6bGluZUhlaWdodChib29sIGIsIGJv
b2wgaXNSb290TGluZUJveCkgY29uc3QKK2ludCBSZW5kZXJTVkdDb250YWluZXI6OmxpbmVIZWln
aHQoYm9vbCBiLCBib29sIGlzUm9vdExpbmVCb3gpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhlaWdo
dCgpICsgbWFyZ2luVG9wKCkgKyBtYXJnaW5Cb3R0b20oKTsKIH0KIAotc2hvcnQgUmVuZGVyU1ZH
Q29udGFpbmVyOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgYiwgYm9vbCBpc1Jvb3RMaW5lQm94KSBj
b25zdAoraW50IFJlbmRlclNWR0NvbnRhaW5lcjo6YmFzZWxpbmVQb3NpdGlvbihib29sIGIsIGJv
b2wgaXNSb290TGluZUJveCkgY29uc3QKIHsKICAgICByZXR1cm4gaGVpZ2h0KCkgKyBtYXJnaW5U
b3AoKSArIG1hcmdpbkJvdHRvbSgpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU1ZHQ29udGFpbmVyLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdDb250YWlu
ZXIuaAppbmRleCBiODEwZWVlLi4wNjc1MWEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTVkdDb250YWluZXIuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdD
b250YWluZXIuaApAQCAtNzAsOCArNzAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBj
aGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclNWR0NvbnRhaW5lciI7IH0K
IAogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCk7Ci0gICAgdmlydHVhbCBzaG9ydCBs
aW5lSGVpZ2h0KGJvb2wgYiwgYm9vbCBpc1Jvb3RMaW5lQm94ID0gZmFsc2UpIGNvbnN0OwotICAg
IHZpcnR1YWwgc2hvcnQgYmFzZWxpbmVQb3NpdGlvbihib29sIGIsIGJvb2wgaXNSb290TGluZUJv
eCA9IGZhbHNlKSBjb25zdDsKKyAgICB2aXJ0dWFsIGludCBsaW5lSGVpZ2h0KGJvb2wgYiwgYm9v
bCBpc1Jvb3RMaW5lQm94ID0gZmFsc2UpIGNvbnN0OworICAgIHZpcnR1YWwgaW50IGJhc2VsaW5l
UG9zaXRpb24oYm9vbCBiLCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5m
byYsIGludCBwYXJlbnRYLCBpbnQgcGFyZW50WSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmNwcAppbmRleCAwYzRlN2JlLi5iYzc1OGU1IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuY3BwCisrKyBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5jcHAKQEAgLTQ0LDEy
ICs0NCwxMiBAQCBib29sIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcjo6cmVxdWlyZXNMYXllcigp
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zaG9ydCBSZW5kZXJTVkdIaWRkZW5Db250YWluZXI6
OmxpbmVIZWlnaHQoYm9vbCBiLCBib29sIGlzUm9vdExpbmVCb3gpIGNvbnN0CitpbnQgUmVuZGVy
U1ZHSGlkZGVuQ29udGFpbmVyOjpsaW5lSGVpZ2h0KGJvb2wgYiwgYm9vbCBpc1Jvb3RMaW5lQm94
KSBjb25zdAogewogICAgIHJldHVybiAwOwogfQogCi1zaG9ydCBSZW5kZXJTVkdIaWRkZW5Db250
YWluZXI6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBiLCBib29sIGlzUm9vdExpbmVCb3gpIGNvbnN0
CitpbnQgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgYiwg
Ym9vbCBpc1Jvb3RMaW5lQm94KSBjb25zdAogewogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmggYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuaAppbmRleCA1NDE2ZjMxLi5jNDI4
YTc5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdIaWRkZW5Db250YWlu
ZXIuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuaApA
QCAtNDUsOCArNDUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIAogICAgICAgICB2
aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpOwogICAgICAgICAKLSAgICAgICAgdmlydHVhbCBz
aG9ydCBsaW5lSGVpZ2h0KGJvb2wgYiwgYm9vbCBpc1Jvb3RMaW5lQm94ID0gZmFsc2UpIGNvbnN0
OwotICAgICAgICB2aXJ0dWFsIHNob3J0IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBiLCBib29sIGlz
Um9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgaW50IGxpbmVIZWln
aHQoYm9vbCBiLCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7CisgICAgICAgIHZp
cnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oYm9vbCBiLCBib29sIGlzUm9vdExpbmVCb3ggPSBm
YWxzZSkgY29uc3Q7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBpbnQgcGFyZW50WCwgaW50IHBh
cmVudFkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5jcHAg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmNwcAppbmRleCAwNjg0YjA4Li5mMTYz
MjY0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmNwcAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290LmNwcApAQCAtNTEsMTIgKzUxLDEyIEBA
IFJlbmRlclNWR1Jvb3Q6On5SZW5kZXJTVkdSb290KCkKIHsKIH0KIAotc2hvcnQgUmVuZGVyU1ZH
Um9vdDo6bGluZUhlaWdodChib29sIGIsIGJvb2wgaXNSb290TGluZUJveCkgY29uc3QKK2ludCBS
ZW5kZXJTVkdSb290OjpsaW5lSGVpZ2h0KGJvb2wgYiwgYm9vbCBpc1Jvb3RMaW5lQm94KSBjb25z
dAogewogICAgIHJldHVybiBoZWlnaHQoKSArIG1hcmdpblRvcCgpICsgbWFyZ2luQm90dG9tKCk7
CiB9CiAKLXNob3J0IFJlbmRlclNWR1Jvb3Q6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBiLCBib29s
IGlzUm9vdExpbmVCb3gpIGNvbnN0CitpbnQgUmVuZGVyU1ZHUm9vdDo6YmFzZWxpbmVQb3NpdGlv
bihib29sIGIsIGJvb2wgaXNSb290TGluZUJveCkgY29uc3QKIHsKICAgICByZXR1cm4gaGVpZ2h0
KCkgKyBtYXJnaW5Ub3AoKSArIG1hcmdpbkJvdHRvbSgpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZH
Um9vdC5oCmluZGV4IDFlMTM2YjMuLjU4MzU5ZmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNWR1Jvb3QuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdSb290
LmgKQEAgLTQwLDggKzQwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1NWR1Jvb3Qo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJO
YW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclNWR1Jvb3QiOyB9CiAKLSAgICB2aXJ0dWFsIHNo
b3J0IGxpbmVIZWlnaHQoYm9vbCBiLCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7
Ci0gICAgdmlydHVhbCBzaG9ydCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgYiwgYm9vbCBpc1Jvb3RM
aW5lQm94ID0gZmFsc2UpIGNvbnN0OworICAgIHZpcnR1YWwgaW50IGxpbmVIZWlnaHQoYm9vbCBi
LCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7CisgICAgdmlydHVhbCBpbnQgYmFz
ZWxpbmVQb3NpdGlvbihib29sIGIsIGJvb2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgY2FsY1ByZWZXaWR0aHMoKTsKICAgICAKICAgICB2aXJ0dWFsIHZv
aWQgbGF5b3V0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIu
Y3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCBjMGViYmM2Li4z
NmYxNTIzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisr
KyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKQEAgLTEyOSw3ICsxMjksNyBA
QCBSZW5kZXJTbGlkZXI6On5SZW5kZXJTbGlkZXIoKQogICAgICAgICBtX3RodW1iLT5kZXRhY2go
KTsKIH0KIAotc2hvcnQgUmVuZGVyU2xpZGVyOjpiYXNlbGluZVBvc2l0aW9uKGJvb2wgYiwgYm9v
bCBpc1Jvb3RMaW5lQm94KSBjb25zdAoraW50IFJlbmRlclNsaWRlcjo6YmFzZWxpbmVQb3NpdGlv
bihib29sIGIsIGJvb2wgaXNSb290TGluZUJveCkgY29uc3QKIHsKICAgICByZXR1cm4gaGVpZ2h0
KCkgKyBtYXJnaW5Ub3AoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNsaWRlci5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKaW5kZXggMmRhODBl
OS4uZjk0YWIwYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgK
KysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKQEAgLTM5LDcgKzM5LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5h
bWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyU2xpZGVyIjsgfQogICAgICAgICB2aXJ0dWFsIGJv
b2wgaXNTbGlkZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICAgICAgdmlydHVhbCBz
aG9ydCBiYXNlbGluZVBvc2l0aW9uKCBib29sLCBib29sICkgY29uc3Q7CisgICAgICAgIHZpcnR1
YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oIGJvb2wsIGJvb2wgKSBjb25zdDsKICAgICAgICAgdmly
dHVhbCB2b2lkIGNhbGNQcmVmV2lkdGhzKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRTdHls
ZShSZW5kZXJTdHlsZSopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAppbmRleCBjOWVjMGE5Li5lYjdlMmJmIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCisrKyBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKQEAgLTIwNyw3ICsyMDcsNyBAQCBib29sIFJl
bmRlclRhYmxlQ2VsbDo6YWJzb2x1dGVQb3NpdGlvbihpbnQmIHhQb3MsIGludCYgeVBvcywgYm9v
bCBmaXhlZCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zaG9ydCBSZW5kZXJUYWJs
ZUNlbGw6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCAvKmZpcnN0TGluZSovLCBib29sIC8qaXNSb290
TGluZUJveCovKSBjb25zdAoraW50IFJlbmRlclRhYmxlQ2VsbDo6YmFzZWxpbmVQb3NpdGlvbihi
b29sIC8qZmlyc3RMaW5lKi8sIGJvb2wgLyppc1Jvb3RMaW5lQm94Ki8pIGNvbnN0CiB7CiAgICAg
UmVuZGVyT2JqZWN0KiBvID0gZmlyc3RDaGlsZCgpOwogICAgIGludCBvZmZzZXQgPSBwYWRkaW5n
VG9wKCkgKyBib3JkZXJUb3AoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2VsbC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKaW5kZXgg
MjZhNGY2ZS4uMDY3MmJjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVDZWxsLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKQEAgLTEw
NCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVBYnNvbHV0ZVJl
cGFpbnRSZWN0KEludFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpOwogICAgIHZpcnR1YWwgYm9v
bCBhYnNvbHV0ZVBvc2l0aW9uKGludCYgeCwgaW50JiB5LCBib29sIGZpeGVkID0gZmFsc2UpIGNv
bnN0OwogCi0gICAgdmlydHVhbCBzaG9ydCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5l
ID0gZmFsc2UsIGJvb2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGludCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lID0gZmFsc2UsIGJvb2wgaXNSb290
TGluZUJveCA9IGZhbHNlKSBjb25zdDsKIAogICAgIHZvaWQgc2V0Q2VsbFRvcEV4dHJhKGludCBw
KSB7IG1fdG9wRXh0cmEgPSBwOyB9CiAgICAgdm9pZCBzZXRDZWxsQm90dG9tRXh0cmEoaW50IHAp
IHsgbV9ib3R0b21FeHRyYSA9IHA7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ29sLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5oCmluZGV4
IDlkYTY3MTIuLjkwYTMwNjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlQ29sLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaApAQCAtMzks
NyArMzksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUo
KSBjb25zdCB7IHJldHVybiAiUmVuZGVyVGFibGVDb2wiOyB9CiAgICAgdmlydHVhbCBib29sIGlz
VGFibGVDb2woKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBzaG9ydCBsaW5l
SGVpZ2h0KGJvb2wpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIGludCBsaW5lSGVp
Z2h0KGJvb2wpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJv
bUVsZW1lbnQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0NoaWxkQWxsb3dlZChSZW5kZXJPYmpl
Y3QqLCBSZW5kZXJTdHlsZSopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVSb3cuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKaW5k
ZXggM2JkZGM4OS4uODU0ZTA2ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVSb3cuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCkBAIC00
Niw3ICs0Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRTdHlsZShSZW5kZXJT
dHlsZSopOwogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBS
ZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7Ci0gICAgdmlydHVhbCBzaG9ydCBsaW5lSGVp
Z2h0KGJvb2wgZmlyc3RMaW5lLCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3QgeyBy
ZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgaW50IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIGJv
b2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVh
bCB2b2lkIHBvc2l0aW9uKElubGluZUJveCopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQo
KTsKICAgICB2aXJ0dWFsIEludFJlY3QgYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCmluZGV4IDk2OWRhMWEuLmY1MDJlNjMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCisrKyBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCkBAIC00OSw3ICs0OSw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxk
LCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CiAKLSAgICB2aXJ0dWFsIHNob3J0IGxp
bmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNSb290TGluZUJveCA9IGZhbHNlKSBjb25z
dCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBpbnQgbGluZUhlaWdodChib29sIGZpcnN0TGlu
ZSwgYm9vbCBpc1Jvb3RMaW5lQm94ID0gZmFsc2UpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2
aXJ0dWFsIHZvaWQgcG9zaXRpb24oSW5saW5lQm94KikgeyB9CiAKICAgICB2b2lkIGFkZENlbGwo
UmVuZGVyVGFibGVDZWxsKiwgUmVuZGVyT2JqZWN0KiByb3cpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcAppbmRleCBhYjViNjJlLi43MzE3NDkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApA
QCAtOTM5LDcgKzkzOSw3IEBAIGludCBSZW5kZXJUZXh0OjpoZWlnaHQoKSBjb25zdAogICAgIHJl
dHVybiByZXR2YWw7CiB9CiAKLXNob3J0IFJlbmRlclRleHQ6OmxpbmVIZWlnaHQoYm9vbCBmaXJz
dExpbmUsIGJvb2wpIGNvbnN0CitpbnQgUmVuZGVyVGV4dDo6bGluZUhlaWdodChib29sIGZpcnN0
TGluZSwgYm9vbCkgY29uc3QKIHsKICAgICAvLyBBbHdheXMgdXNlIHRoZSBpbnRlcmlvciBsaW5l
IGhlaWdodCBvZiB0aGUgcGFyZW50IChlLmcuLCBpZiBvdXIgcGFyZW50IGlzIGFuIGlubGluZSBi
bG9jaykuCiAgICAgcmV0dXJuIHBhcmVudCgpLT5saW5lSGVpZ2h0KGZpcnN0TGluZSwgdHJ1ZSk7
CkBAIC0xMDg5LDcgKzEwODksNyBAQCBJbnRSZWN0IFJlbmRlclRleHQ6OnNlbGVjdGlvblJlY3Qo
Ym9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCkKICAgICByZXR1cm4gcmVjdDsKIH0KIAotc2hvcnQg
UmVuZGVyVGV4dDo6dmVydGljYWxQb3NpdGlvbkhpbnQoYm9vbCBmaXJzdExpbmUpIGNvbnN0Citp
bnQgUmVuZGVyVGV4dDo6dmVydGljYWxQb3NpdGlvbkhpbnQoYm9vbCBmaXJzdExpbmUpIGNvbnN0
CiB7CiAgICAgaWYgKHBhcmVudCgpLT5pc1JlcGxhY2VkKCkpCiAgICAgICAgIHJldHVybiAwOyAv
LyBUcmVhdCBpbmxpbmUgYmxvY2tzIGp1c3QgbGlrZSBibG9ja3MuICBUaGVyZSBjYW4ndCBiZSBh
bnkgdmVydGljYWwgcG9zaXRpb24gaGludC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAppbmRleCAxNGZh
YTkxLi44NDM5MDg5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgK
KysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGludCB3aWR0aCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGhl
aWdodCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBzaG9ydCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RM
aW5lLCBib29sIGlzUm9vdExpbmVCb3ggPSBmYWxzZSkgY29uc3Q7CisgICAgdmlydHVhbCBpbnQg
bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgYm9vbCBpc1Jvb3RMaW5lQm94ID0gZmFsc2UpIGNv
bnN0OwogCiAgICAgdmlydHVhbCBpbnQgbWluUHJlZldpZHRoKCkgY29uc3Q7CiAgICAgdmlydHVh
bCBpbnQgbWF4UHJlZldpZHRoKCkgY29uc3Q7CkBAIC05Niw3ICs5Niw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGludCB4UG9zKCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgeVBvcygpIGNvbnN0
OwogCi0gICAgdmlydHVhbCBzaG9ydCB2ZXJ0aWNhbFBvc2l0aW9uSGludChib29sIGZpcnN0TGlu
ZSkgY29uc3Q7CisgICAgdmlydHVhbCBpbnQgdmVydGljYWxQb3NpdGlvbkhpbnQoYm9vbCBmaXJz
dExpbmUpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRUZXh0KFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4s
IGJvb2wgZm9yY2UgPSBmYWxzZSk7CiAgICAgdm9pZCBzZXRUZXh0V2l0aE9mZnNldChQYXNzUmVm
UHRyPFN0cmluZ0ltcGw+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbiwgYm9vbCBmb3Jj
ZSA9IGZhbHNlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAppbmRleCBh
ZTA3YjRiLi5lNjUyN2JmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3Bw
CkBAIC03MzAsNyArNzMwLDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6Y2FsY0hlaWdodCgp
CiAgICAgUmVuZGVyQmxvY2s6OmNhbGNIZWlnaHQoKTsKIH0KIAotc2hvcnQgUmVuZGVyVGV4dENv
bnRyb2w6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBiLCBib29sIGlzUm9vdExpbmVCb3gpIGNvbnN0
CitpbnQgUmVuZGVyVGV4dENvbnRyb2w6OmJhc2VsaW5lUG9zaXRpb24oYm9vbCBiLCBib29sIGlz
Um9vdExpbmVCb3gpIGNvbnN0CiB7CiAgICAgaWYgKG1fbXVsdGlMaW5lKQogICAgICAgICByZXR1
cm4gaGVpZ2h0KCkgKyBtYXJnaW5Ub3AoKSArIG1hcmdpbkJvdHRvbSgpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sLmgKaW5kZXggNzA3MjczNi4uN2UyN2NlNyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAorKysgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0U3R5bGUoUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlRnJvbUVsZW1lbnQoKTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHNob3J0IGJhc2VsaW5lUG9zaXRpb24o
Ym9vbCBmaXJzdExpbmUsIGJvb2wgaXNSb290TGluZUJveCkgY29uc3Q7CisgICAgdmlydHVhbCBp
bnQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgYm9vbCBpc1Jvb3RMaW5lQm94KSBj
b25zdDsKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3Qm
LCBIaXRUZXN0UmVzdWx0JiwgaW50IHgsIGludCB5LCBpbnQgdHgsIGludCB0eSwgSGl0VGVzdEFj
dGlvbik7CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwogICAgIHZpcnR1YWwgYm9vbCBhdm9p
ZHNGbG9hdHMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5j
cHAKaW5kZXggMmM0MjZmMy4uMjk5NDg5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApA
QCAtMzA5LDcgKzMwOSw3IEBAIENvbG9yIFJlbmRlclRoZW1lOjppbmFjdGl2ZUxpc3RCb3hTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAogICAgIHJldHVybiBDb2xvcigwLCAwLCAwKTsK
IH0KIAotc2hvcnQgUmVuZGVyVGhlbWU6OmJhc2VsaW5lUG9zaXRpb24oY29uc3QgUmVuZGVyT2Jq
ZWN0KiBvKSBjb25zdAoraW50IFJlbmRlclRoZW1lOjpiYXNlbGluZVBvc2l0aW9uKGNvbnN0IFJl
bmRlck9iamVjdCogbykgY29uc3QKIHsKICAgICByZXR1cm4gby0+aGVpZ2h0KCkgKyBvLT5tYXJn
aW5Ub3AoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IDVlODI0MTcuLmM2YWFmOTgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gQSBtZXRob2QgdG8gb2J0YWluIHRoZSBiYXNlbGluZSBwb3NpdGlvbiBmb3IgYSAibGVhZiIg
Y29udHJvbC4gIFRoaXMgd2lsbCBvbmx5IGJlIHVzZWQgaWYgYSBiYXNlbGluZQogICAgIC8vIHBv
c2l0aW9uIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGJ5IGV4YW1pbmluZyBjaGlsZCBjb250ZW50LiBD
aGVja2JveGVzIGFuZCByYWRpbyBidXR0b25zIGFyZSBleGFtcGxlcyBvZgogICAgIC8vIGNvbnRy
b2xzIHRoYXQgbmVlZCB0byBkbyB0aGlzLgotICAgIHZpcnR1YWwgc2hvcnQgYmFzZWxpbmVQb3Np
dGlvbihjb25zdCBSZW5kZXJPYmplY3QqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGludCBiYXNlbGlu
ZVBvc2l0aW9uKGNvbnN0IFJlbmRlck9iamVjdCopIGNvbnN0OwogCiAgICAgLy8gQSBtZXRob2Qg
Zm9yIGFza2luZyBpZiBhIGNvbnRyb2wgaXMgYSBjb250YWluZXIgb3Igbm90LiAgTGVhZiBjb250
cm9scyBoYXZlIHRvIGhhdmUgc29tZSBzcGVjaWFsIGJlaGF2aW9yIChsaWtlCiAgICAgLy8gdGhl
IGJhc2VsaW5lIHBvc2l0aW9uIEFQSSBhYm92ZSkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aAppbmRleCAzODNjNTZjLi41MjUzNzljIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgK
QEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIC8vIEEgbWV0aG9kIHRvIG9idGFpbiB0aGUg
YmFzZWxpbmUgcG9zaXRpb24gZm9yIGEgImxlYWYiIGNvbnRyb2wuICBUaGlzIHdpbGwgb25seSBi
ZSB1c2VkIGlmIGEgYmFzZWxpbmUKICAgICAvLyBwb3NpdGlvbiBjYW5ub3QgYmUgZGV0ZXJtaW5l
ZCBieSBleGFtaW5pbmcgY2hpbGQgY29udGVudC4gQ2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9u
cyBhcmUgZXhhbXBsZXMgb2YKICAgICAvLyBjb250cm9scyB0aGF0IG5lZWQgdG8gZG8gdGhpcy4K
LSAgICB2aXJ0dWFsIHNob3J0IGJhc2VsaW5lUG9zaXRpb24oY29uc3QgUmVuZGVyT2JqZWN0Kikg
Y29uc3Q7CisgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJPYmpl
Y3QqKSBjb25zdDsKIAogICAgIC8vIEEgbWV0aG9kIGFza2luZyBpZiB0aGUgY29udHJvbCBjaGFu
Z2VzIGl0cyB0aW50IHdoZW4gdGhlIHdpbmRvdyBoYXMgZm9jdXMgb3Igbm90LgogICAgIHZpcnR1
YWwgYm9vbCBjb250cm9sU3VwcG9ydHNUaW50cyhjb25zdCBSZW5kZXJPYmplY3QqKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggYTg1MjAyMS4uYTdhY2UxZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTUxOSw3ICs1MTksNyBAQCB2b2lkIFJl
bmRlclRoZW1lTWFjOjp1cGRhdGVQcmVzc2VkU3RhdGUoTlNDZWxsKiBjZWxsLCBjb25zdCBSZW5k
ZXJPYmplY3QqIG8pCiAgICAgICAgIFtjZWxsIHNldEhpZ2hsaWdodGVkOnByZXNzZWRdOwogfQog
Ci1zaG9ydCBSZW5kZXJUaGVtZU1hYzo6YmFzZWxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJPYmpl
Y3QqIG8pIGNvbnN0CitpbnQgUmVuZGVyVGhlbWVNYWM6OmJhc2VsaW5lUG9zaXRpb24oY29uc3Qg
UmVuZGVyT2JqZWN0KiBvKSBjb25zdAogewogICAgIGlmIChvLT5zdHlsZSgpLT5hcHBlYXJhbmNl
KCkgPT0gQ2hlY2tib3hBcHBlYXJhbmNlIHx8IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBS
YWRpb0FwcGVhcmFuY2UpCiAgICAgICAgIHJldHVybiBvLT5tYXJnaW5Ub3AoKSArIG8tPmhlaWdo
dCgpIC0gMjsgLy8gVGhlIGJhc2VsaW5lIGlzIDJweCB1cCBmcm9tIHRoZSBib3R0b20gb2YgdGhl
IGNoZWNrYm94L3JhZGlvIGluIEFwcEtpdC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lU2FmYXJpLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lU2Fm
YXJpLmNwcAppbmRleCAxNzhlMDQ5Li4wNjYzMWIxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZVNhZmFyaS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVTYWZhcmkuY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgSW50UmVjdCBSZW5kZXJUaGVtZVNh
ZmFyaTo6aW5mbGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgciwgY29uc3QgSW50U2l6ZSYgc2l6ZSwg
Y28KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zaG9ydCBSZW5kZXJUaGVtZVNhZmFyaTo6YmFz
ZWxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJPYmplY3QqIG8pIGNvbnN0CitpbnQgUmVuZGVyVGhl
bWVTYWZhcmk6OmJhc2VsaW5lUG9zaXRpb24oY29uc3QgUmVuZGVyT2JqZWN0KiBvKSBjb25zdAog
ewogICAgIGlmIChvLT5zdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gQ2hlY2tib3hBcHBlYXJhbmNl
IHx8IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBSYWRpb0FwcGVhcmFuY2UpCiAgICAgICAg
IHJldHVybiBvLT5tYXJnaW5Ub3AoKSArIG8tPmhlaWdodCgpIC0gMjsgLy8gVGhlIGJhc2VsaW5l
IGlzIDJweCB1cCBmcm9tIHRoZSBib3R0b20gb2YgdGhlIGNoZWNrYm94L3JhZGlvIGluIEFwcEtp
dC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmggYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5oCmluZGV4IDJlNzc1YzkuLjhhYzVh
Y2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJpLmgKKysr
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuaApAQCAtNTIsNyArNTIsNyBA
QCBwdWJsaWM6CiAgICAgLy8gQSBtZXRob2QgdG8gb2J0YWluIHRoZSBiYXNlbGluZSBwb3NpdGlv
biBmb3IgYSAibGVhZiIgY29udHJvbC4gIFRoaXMgd2lsbCBvbmx5IGJlIHVzZWQgaWYgYSBiYXNl
bGluZQogICAgIC8vIHBvc2l0aW9uIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGJ5IGV4YW1pbmluZyBj
aGlsZCBjb250ZW50LiBDaGVja2JveGVzIGFuZCByYWRpbyBidXR0b25zIGFyZSBleGFtcGxlcyBv
ZgogICAgIC8vIGNvbnRyb2xzIHRoYXQgbmVlZCB0byBkbyB0aGlzLgotICAgIHZpcnR1YWwgc2hv
cnQgYmFzZWxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJPYmplY3QqKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKGNvbnN0IFJlbmRlck9iamVjdCopIGNvbnN0OwogCiAg
ICAgLy8gQSBtZXRob2QgYXNraW5nIGlmIHRoZSBjb250cm9sIGNoYW5nZXMgaXRzIHRpbnQgd2hl
biB0aGUgd2luZG93IGhhcyBmb2N1cyBvciBub3QuCiAgICAgdmlydHVhbCBib29sIGNvbnRyb2xT
dXBwb3J0c1RpbnRzKGNvbnN0IFJlbmRlck9iamVjdCopIGNvbnN0OwotLSAKMS41LjQuNAoK
</data>
<flag name="review"
          id="9592"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>