<?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>222535</bug_id>
          
          <creation_ts>2021-02-28 20:57:07 -0800</creation_ts>
          <short_desc>Support rotated image overlay text for non-rectilinear text quads</short_desc>
          <delta_ts>2021-03-01 17:33:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1734328</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-28 20:57:07 -0800</bug_when>
    <thetext>Support rotated image overlay text for non-rectilinear text quads</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734556</commentid>
    <comment_count>1</comment_count>
      <attachid>421856</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-01 13:00:33 -0800</bug_when>
    <thetext>Created attachment 421856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734557</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-01 13:00:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/74886200&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734620</commentid>
    <comment_count>3</comment_count>
      <attachid>421869</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-01 14:49:44 -0800</bug_when>
    <thetext>Created attachment 421869
Add radar link</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734654</commentid>
    <comment_count>4</comment_count>
      <attachid>421869</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-01 15:39:53 -0800</bug_when>
    <thetext>Comment on attachment 421869
Add radar link

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

&gt; Source/WebCore/platform/graphics/GeometryUtilities.h:65
&gt; +struct RotatedRectInfo {

&quot;Info&quot;? This is literally a rotated rectangle :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734656</commentid>
    <comment_count>5</comment_count>
      <attachid>421869</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-01 15:45:59 -0800</bug_when>
    <thetext>Comment on attachment 421869
Add radar link

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

&gt;&gt; Source/WebCore/platform/graphics/GeometryUtilities.h:65
&gt;&gt; +struct RotatedRectInfo {
&gt; 
&gt; &quot;Info&quot;? This is literally a rotated rectangle :)

That&apos;s a good point — renamed to RotatedRect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734669</commentid>
    <comment_count>6</comment_count>
      <attachid>421883</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-01 16:10:13 -0800</bug_when>
    <thetext>Created attachment 421883
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734705</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-01 17:33:03 -0800</bug_when>
    <thetext>Committed r273711: &lt;https://commits.webkit.org/r273711&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421883.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421856</attachid>
            <date>2021-03-01 13:00:33 -0800</date>
            <delta_ts>2021-03-01 14:49:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222535-20210301130032.patch</filename>
            <type>text/plain</type>
            <size>18385</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU3ZmRjYzI3NmY3NDQw
ZDgzOGM2NzMwOWZlNWU3Y2QwOTcyOTBmNy4uOWNhMzgzOWVjM2Q1ZWM1NTU2NDQzOTBjZjQxZWM2
NzhkMGQ2NDc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTAzLTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgcm90
YXRlZCBpbWFnZSBvdmVybGF5IHRleHQgZm9yIG5vbi1yZWN0aWxpbmVhciB0ZXh0IHF1YWRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1MzUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgcmVuZGVyaW5nIGltYWdlIG92ZXJsYXkgZWxlbWVudHMgYXQgcm90YXRlZCBhbmdsZXMu
IFRvIGFjaGlldmUgdGhpcywgd2UgYWRkIGEgbmV3IGhlbHBlcgorICAgICAgICBmdW5jdGlvbiB0
byBgR2VvbWV0cnlVdGlsaXRpZXMuaGAsIGByb3RhdGVkQm91bmRpbmdSZWN0YCwgdGhhdCB0YWtl
cyBhIGBGbG9hdFF1YWRgIGFuZCByZXR1cm5zIGEgc3RydWN0IHRoYXQKKyAgICAgICAgZGVzY3Jp
YmVzIGEgKHBvdGVudGlhbGx5KSByb3RhdGVkIGJvdW5kaW5nIHJlY3QgdGhhdCBjb3ZlcnMgYWxs
IHRoZSBwb2ludHMgaW4gdGhlIHF1YWQuCisKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0
aW9uUmVzdWx0KToKKworICAgICAgICBBZGQgYSBzbGlnaHQgKDAuMDEgcmFkKSB0b2xlcmFuY2Ug
aGVyZSwgc3VjaCB3ZSB3b24ndCBhdHRlbXB0IHRvIGFwcGx5IGEgcm90YXRpb24gdHJhbnNmb3Jt
YXRpb24gaWYgdGhlIHRleHQKKyAgICAgICAgcXVhZCBpcyBhbGlnbmVkIChvciBuZWFybHkgYWxp
Z25lZCkgd2l0aCB0aGUgdW5pdCB2ZWN0b3IgKDEsIDApLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWlkUG9p
bnQpOgorICAgICAgICAoV2ViQ29yZTo6ZG90UHJvZHVjdCk6CisgICAgICAgIChXZWJDb3JlOjph
bmdsZUJldHdlZW5WZWN0b3JzKToKKyAgICAgICAgKFdlYkNvcmU6OnJvdGF0ZWRCb3VuZGluZ1Jl
Y3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Om1pZFBvaW50KTogRGVsZXRlZC4KKwogMjAyMS0wMi0yNiAgUGVyIEFybmUg
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFJlZ2lzdGVyIFZQOSBkZWNv
ZGVycyB3aGVuIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciBpcyBjcmVhdGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGJlYWVmMjYzZTk4MTA4ZjdkZDE1MzA0NWRiNGJi
NTgxM2JmMWRlZDIuLmEwNzAyOGE5Y2M4NDgzMGZmNGUxZmVlMjVhN2JmY2M5MzljY2EzOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVmll
dy5oIgorI2luY2x1ZGUgIkdlb21ldHJ5VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSFRNTEJESUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQlJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEJ1dHRv
bkVsZW1lbnQuaCIKQEAgLTEyOTYsMTcgKzEyOTcsMjAgQEAgdm9pZCBIVE1MRWxlbWVudDo6dXBk
YXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiByZXN1
bHQKICAgICAgICAgaWYgKG9yaWdpbmFsU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250
aW51ZTsKIAotICAgICAgICBhdXRvIHRhcmdldFJlY3QgPSBkYXRhLm5vcm1hbGl6ZWRRdWFkLmJv
dW5kaW5nQm94KCk7Ci0gICAgICAgIHRhcmdldFJlY3Quc2NhbGUoY29udGFpbmVyU2l6ZSk7Cisg
ICAgICAgIGF1dG8gdGFyZ2V0UXVhZCA9IGRhdGEubm9ybWFsaXplZFF1YWQ7CisgICAgICAgIHRh
cmdldFF1YWQuc2NhbGUoY29udGFpbmVyU2l6ZS53aWR0aCgpLCBjb250YWluZXJTaXplLmhlaWdo
dCgpKTsKIAotICAgICAgICBJbnRQb2ludCB0cmFuc2xhdGlvbk9mZnNldCB7Ci0gICAgICAgICAg
ICBzdGF0aWNfY2FzdDxpbnQ+KHRhcmdldFJlY3QueCgpICsgKHRhcmdldFJlY3Qud2lkdGgoKSAt
IG9yaWdpbmFsU2l6ZS53aWR0aCgpKSAvIDIpLAotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50
Pih0YXJnZXRSZWN0LnkoKSArICh0YXJnZXRSZWN0LmhlaWdodCgpIC0gb3JpZ2luYWxTaXplLmhl
aWdodCgpKSAvIDIpCi0gICAgICAgIH07CisgICAgICAgIGF1dG8gcm90YXRlZFJlY3QgPSByb3Rh
dGVkQm91bmRpbmdSZWN0KHRhcmdldFF1YWQsIDAuMDEpOworICAgICAgICBhdXRvIHNjYWxlID0g
cm90YXRlZFJlY3Quc2l6ZSAvIG9yaWdpbmFsU2l6ZTsKKyAgICAgICAgU3RyaW5nIHJvdGF0aW9u
VHJhbnNmb3JtYXRpb25Bc1RleHQ7CisgICAgICAgIGlmIChyb3RhdGVkUmVjdC5hbmdsZUluUmFk
aWFucykKKyAgICAgICAgICAgIHJvdGF0aW9uVHJhbnNmb3JtYXRpb25Bc1RleHQgPSBtYWtlU3Ry
aW5nKCJyb3RhdGUoIiwgcm90YXRlZFJlY3QuYW5nbGVJblJhZGlhbnMsICJyYWQpIl9zKTsKIAor
ICAgICAgICBhdXRvIG9mZnNldCA9IHJvdW5kZWRJbnRQb2ludChyb3RhdGVkUmVjdC5jZW50ZXIg
LSAob3JpZ2luYWxTaXplIC8gMikpOwogICAgICAgICBjaGlsZC0+c2V0SW5saW5lU3R5bGVQcm9w
ZXJ0eShDU1NQcm9wZXJ0eVRyYW5zZm9ybSwgbWFrZVN0cmluZygKLSAgICAgICAgICAgICJ0cmFu
c2xhdGUoIl9zLCB0cmFuc2xhdGlvbk9mZnNldC54KCksICJweCwgIl9zLCB0cmFuc2xhdGlvbk9m
ZnNldC55KCksICJweCkgIl9zCi0gICAgICAgICAgICAic2NhbGUoIl9zLCB0YXJnZXRSZWN0Lndp
ZHRoKCkgLyBvcmlnaW5hbFNpemUud2lkdGgoKSwgIiwgIl9zLCB0YXJnZXRSZWN0LmhlaWdodCgp
IC8gb3JpZ2luYWxTaXplLmhlaWdodCgpLCAiKSJfcworICAgICAgICAgICAgInRyYW5zbGF0ZSgi
X3MsIG9mZnNldC54KCksICJweCwgIl9zLCBvZmZzZXQueSgpLCAicHgpICJfcywKKyAgICAgICAg
ICAgICJzY2FsZSgiX3MsIHNjYWxlLndpZHRoKCksICIsICJfcywgc2NhbGUuaGVpZ2h0KCksICIp
ICJfcywKKyAgICAgICAgICAgIHJvdGF0aW9uVHJhbnNmb3JtYXRpb25Bc1RleHQKICAgICAgICAg
KSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HZW9tZXRyeVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HZW9tZXRyeVV0aWxpdGllcy5jcHAKaW5kZXggYjdkZjA3MjhjMTA2YjJmYTQ1ODIxOWNiNjkw
MTViODExZjY4MDExNC4uNTg4ODk1ZTQ1YWIwNWNmZjMxMzk4NDk3Y2NkZDFhYjg0NjJkMTM2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGls
aXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5
VXRpbGl0aWVzLmNwcApAQCAtMjUsNiArMjUsOSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiR2VvbWV0cnlVdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgor
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xOTksNCArMjAyLDU4IEBAIGJvb2wgZWxsaXBzZUNvbnRh
aW5zUG9pbnQoY29uc3QgRmxvYXRQb2ludCYgY2VudGVyLCBjb25zdCBGbG9hdFNpemUmIHJhZGlp
LCBjb25zCiAgICAgcmV0dXJuIHN0ZDo6YWJzKHRyYW5zZm9ybWVkUG9pbnQueCgpKSArIHN0ZDo6
YWJzKHRyYW5zZm9ybWVkUG9pbnQueSgpKSA8PSB0cmFuc2Zvcm1lZFJhZGl1cyB8fCB0cmFuc2Zv
cm1lZFBvaW50Lmxlbmd0aFNxdWFyZWQoKSA8PSB0cmFuc2Zvcm1lZFJhZGl1cyAqIHRyYW5zZm9y
bWVkUmFkaXVzOwogfQogCitGbG9hdFBvaW50IG1pZFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmIGZp
cnN0LCBjb25zdCBGbG9hdFBvaW50JiBzZWNvbmQpCit7CisgICAgcmV0dXJuIHsgKGZpcnN0Lngo
KSArIHNlY29uZC54KCkpIC8gMiwgKGZpcnN0LnkoKSArIHNlY29uZC55KCkpIC8gMiB9OworfQor
CitzdGF0aWMgZmxvYXQgZG90UHJvZHVjdChjb25zdCBGbG9hdFNpemUmIHUsIGNvbnN0IEZsb2F0
U2l6ZSYgdikKK3sKKyAgICByZXR1cm4gdS53aWR0aCgpICogdi53aWR0aCgpICsgdS5oZWlnaHQo
KSAqIHYuaGVpZ2h0KCk7Cit9CisKK3N0YXRpYyBmbG9hdCBhbmdsZUJldHdlZW5WZWN0b3JzKGNv
bnN0IEZsb2F0U2l6ZSYgdSwgY29uc3QgRmxvYXRTaXplJiB2KQoreworICAgIGF1dG8gbWFnbml0
dWRlcyA9IHUuZGlhZ29uYWxMZW5ndGgoKSAqIHYuZGlhZ29uYWxMZW5ndGgoKTsKKyAgICByZXR1
cm4gbWFnbml0dWRlcyA/IGFjb3MoY2xhbXBUbzxmbG9hdD4oZG90UHJvZHVjdCh1LCB2KSAvIG1h
Z25pdHVkZXMsIC0xLCAxKSkgOiAwOworfQorCitSb3RhdGVkUmVjdEluZm8gcm90YXRlZEJvdW5k
aW5nUmVjdChjb25zdCBGbG9hdFF1YWQmIHF1YWQsIE9wdGlvbmFsPGZsb2F0PiBtaW5Sb3RhdGlv
bkluUmFkaWFucykKK3sKKyAgICBjb25zdGV4cHIgYXV0byB0d29QaUZsb2F0ID0gMiAqIHBpRmxv
YXQ7CisKKyAgICBhdXRvIG1pblJvdGF0aW9uQW1vdW50ID0gbWluUm90YXRpb25JblJhZGlhbnMu
dmFsdWVPcihzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpKTsKKworICAgIGF1
dG8gbGVmdE1pZFBvaW50ID0gbWlkUG9pbnQocXVhZC5wMSgpLCBxdWFkLnA0KCkpOworICAgIGF1
dG8gcmlnaHRNaWRQb2ludCA9IG1pZFBvaW50KHF1YWQucDIoKSwgcXVhZC5wMygpKTsKKyAgICBh
dXRvIHdpZHRoVmVjdG9yID0gcmlnaHRNaWRQb2ludCAtIGxlZnRNaWRQb2ludDsKKworICAgIGF1
dG8gbWlkUG9pbnRUb01pZFBvaW50RGlzdGFuY2UgPSB3aWR0aFZlY3Rvci5kaWFnb25hbExlbmd0
aCgpOworICAgIGludCBzaWduT2ZXaWR0aFZlY3RvckhlaWdodCA9IHdpZHRoVmVjdG9yLmhlaWdo
dCgpIDwgMCA/IC0xIDogMTsKKyAgICBhdXRvIGFuZ2xlID0gbWlkUG9pbnRUb01pZFBvaW50RGlz
dGFuY2UgPyBzaWduT2ZXaWR0aFZlY3RvckhlaWdodCAqIGFjb3Mod2lkdGhWZWN0b3Iud2lkdGgo
KSAvIG1pZFBvaW50VG9NaWRQb2ludERpc3RhbmNlKSA6IDA7CisgICAgaWYgKGFuZ2xlIDwgMCkK
KyAgICAgICAgYW5nbGUgKz0gdHdvUGlGbG9hdDsKKworICAgIGlmIChzdGQ6OmFicyhhbmdsZSkg
PCBtaW5Sb3RhdGlvbkFtb3VudCB8fCBzdGQ6OmFicyh0d29QaUZsb2F0IC0gYW5nbGUpIDwgbWlu
Um90YXRpb25BbW91bnQpIHsKKyAgICAgICAgYXV0byBib3VuZGluZ0JveCA9IHF1YWQuYm91bmRp
bmdCb3goKTsKKyAgICAgICAgcmV0dXJuIHsgYm91bmRpbmdCb3guY2VudGVyKCksIGJvdW5kaW5n
Qm94LnNpemUoKSwgMCB9OworICAgIH0KKworICAgIGF1dG8gaGVpZ2h0VmVjdG9yID0gRmxvYXRT
aXplIHsgd2lkdGhWZWN0b3IuaGVpZ2h0KCksIC13aWR0aFZlY3Rvci53aWR0aCgpIH07CisgICAg
YXV0byBsZWZ0UGVycGVuZGljdWxhckFuZ2xlID0gYW5nbGVCZXR3ZWVuVmVjdG9ycyhoZWlnaHRW
ZWN0b3IsIHF1YWQucDEoKSAtIGxlZnRNaWRQb2ludCk7CisgICAgYXV0byByaWdodFBlcnBlbmRp
Y3VsYXJBbmdsZSA9IGFuZ2xlQmV0d2VlblZlY3RvcnMoaGVpZ2h0VmVjdG9yLCBxdWFkLnAyKCkg
LSByaWdodE1pZFBvaW50KTsKKworICAgIGF1dG8gbGVmdEh5cG90ZW51c2VMZW5ndGggPSAobGVm
dE1pZFBvaW50IC0gcXVhZC5wMSgpKS5kaWFnb25hbExlbmd0aCgpOworICAgIGF1dG8gcmlnaHRI
eXBvdGVudXNlTGVuZ3RoID0gKHJpZ2h0TWlkUG9pbnQgLSBxdWFkLnAyKCkpLmRpYWdvbmFsTGVu
Z3RoKCk7CisKKyAgICBhdXRvIGxlZnRNYXJnaW4gPSBsZWZ0SHlwb3RlbnVzZUxlbmd0aCAqIHNp
bihsZWZ0UGVycGVuZGljdWxhckFuZ2xlKTsKKyAgICBhdXRvIHJpZ2h0TWFyZ2luID0gcmlnaHRI
eXBvdGVudXNlTGVuZ3RoICogc2luKHJpZ2h0UGVycGVuZGljdWxhckFuZ2xlKTsKKyAgICBhdXRv
IHdpZHRoID0gbWlkUG9pbnRUb01pZFBvaW50RGlzdGFuY2UgKyBsZWZ0TWFyZ2luICsgcmlnaHRN
YXJnaW47CisgICAgYXV0byBoZWlnaHQgPSAyICogc3RkOjptYXgobGVmdEh5cG90ZW51c2VMZW5n
dGggKiBjb3MobGVmdFBlcnBlbmRpY3VsYXJBbmdsZSksIHJpZ2h0SHlwb3RlbnVzZUxlbmd0aCAq
IGNvcyhyaWdodFBlcnBlbmRpY3VsYXJBbmdsZSkpOworCisgICAgYXV0byBsZWZ0TWlkVG9DZW50
ZXJEaXN0YW5jZSA9IChtaWRQb2ludFRvTWlkUG9pbnREaXN0YW5jZSArIHJpZ2h0TWFyZ2luIC0g
bGVmdE1hcmdpbikgLyAyOworICAgIGF1dG8gY2VudGVyID0gbGVmdE1pZFBvaW50ICsgKHdpZHRo
VmVjdG9yICogbGVmdE1pZFRvQ2VudGVyRGlzdGFuY2UgLyBtaWRQb2ludFRvTWlkUG9pbnREaXN0
YW5jZSk7CisgICAgcmV0dXJuIHsgY2VudGVyLCB7IHdpZHRoLCBoZWlnaHQgfSwgYW5nbGUgfTsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2Vv
bWV0cnlVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlb21l
dHJ5VXRpbGl0aWVzLmgKaW5kZXggNGE3NjA0NjEwMWI3ZjBiNGQ3YmM1OWM0Zjg4M2Q5MWRiYjI3
MTAxOC4uMDgzN2UyOTU5Y2VhNGRiMWM1MTQ0YmZhZGQxMzJlMjU3NjE1YmQxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5o
CkBAIC0zMSw2ICszMSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRmxvYXRR
dWFkOworCiBmbG9hdCBldWNsaWRpYW5EaXN0YW5jZShjb25zdCBGbG9hdFBvaW50JiwgY29uc3Qg
RmxvYXRQb2ludCYpOwogCiBmbG9hdCBmaW5kU2xvcGUoY29uc3QgRmxvYXRQb2ludCYgcDEsIGNv
bnN0IEZsb2F0UG9pbnQmIHAyLCBmbG9hdCYgYyk7CkBAIC01Nyw0ICs1OSwxNSBAQCBGbG9hdFNp
emUgc2l6ZVdpdGhBcmVhQW5kQXNwZWN0UmF0aW8oZmxvYXQgYXJlYSwgZmxvYXQgYXNwZWN0UmF0
aW8pOwogRmxvYXRSZWN0IGJvdW5kc09mUm90YXRpbmdSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwog
CiBib29sIGVsbGlwc2VDb250YWluc1BvaW50KGNvbnN0IEZsb2F0UG9pbnQmIGNlbnRlciwgY29u
c3QgRmxvYXRTaXplJiByYWRpaSwgY29uc3QgRmxvYXRQb2ludCYpOworCitGbG9hdFBvaW50IG1p
ZFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jik7CisKK3N0cnVjdCBS
b3RhdGVkUmVjdEluZm8geworICAgIEZsb2F0UG9pbnQgY2VudGVyOworICAgIEZsb2F0U2l6ZSBz
aXplOworICAgIGZsb2F0IGFuZ2xlSW5SYWRpYW5zOworfTsKKworV0VCQ09SRV9FWFBPUlQgUm90
YXRlZFJlY3RJbmZvIHJvdGF0ZWRCb3VuZGluZ1JlY3QoY29uc3QgRmxvYXRRdWFkJiwgT3B0aW9u
YWw8ZmxvYXQ+IG1pblJvdGF0aW9uSW5SYWRpYW5zID0gV1RGOjpudWxsb3B0KTsKKwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhUcmF2ZXJzYWxT
dGF0ZS5jcHAKaW5kZXggN2QzZTliYTU1NzAxYTIzYzhjMmNlMTkxNDU5ZWEyZTljM2JhM2JmNS4u
ZWYwMmExZTgzZmNkYzNhNWI5Yjg0MWIwNTg2NmFiOTg5NjBiZjgxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoVHJhdmVyc2FsU3RhdGUuY3Bw
CkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGF0aFRy
YXZlcnNhbFN0YXRlLmgiCiAKKyNpbmNsdWRlICJHZW9tZXRyeVV0aWxpdGllcy5oIgogI2luY2x1
ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC0yOCwx
MSArMjksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBmbG9hdCBrUGF0
aFNlZ21lbnRMZW5ndGhUb2xlcmFuY2UgPSAwLjAwMDAxZjsKIAotc3RhdGljIGlubGluZSBGbG9h
dFBvaW50IG1pZFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmIGZpcnN0LCBjb25zdCBGbG9hdFBvaW50
JiBzZWNvbmQpCi17Ci0gICAgcmV0dXJuIEZsb2F0UG9pbnQoKGZpcnN0LngoKSArIHNlY29uZC54
KCkpIC8gMi4wZiwgKGZpcnN0LnkoKSArIHNlY29uZC55KCkpIC8gMi4wZik7Ci19Ci0KIHN0YXRp
YyBpbmxpbmUgZmxvYXQgZGlzdGFuY2VMaW5lKGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0LCBjb25z
dCBGbG9hdFBvaW50JiBlbmQpCiB7CiAgICAgcmV0dXJuIHN0ZDo6aHlwb3QoZW5kLngoKSAtIHN0
YXJ0LngoKSwgZW5kLnkoKSAtIHN0YXJ0LnkoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzc5MmFhNjc3OTkzM2IyOTQzNGI0NWY0ZWVkZjU3
OWE4YTQ3ZGI5YS4uMTNlNGZkYjliZmMzOWEzNzY3NDBjMjgwNmUyZjYyYjQ3NDcyN2U5NyAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDIxLTAzLTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgorCisgICAgICAgIFN1cHBvcnQgcm90YXRlZCBpbWFnZSBvdmVybGF5IHRleHQgZm9yIG5vbi1y
ZWN0aWxpbmVhciB0ZXh0IHF1YWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjI1MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgYSBuZXcgQVBJIHRlc3QgZmlsZSB0byBleGVyY2lzZSB0aGUgbmV3
IGByb3RhdGVkQm91bmRpbmdSZWN0YCBmdW5jdGlvbiwgd2l0aCB0ZXN0cyB0byBjb3ZlciBhIGZl
dyBkZWdlbmVyYXRlCisgICAgICAgIGNhc2VzIHN1Y2ggYXMgYSBzaW5nbGUgcG9pbnQsIGxpbmUg
c2VnbWVudHMsIGFuZCB0cmlhbmdsZXMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvRmxvYXRRdWFkVGVzdHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OmFyZUFwcHJveGltYXRlbHlFcXVhbCk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpleHBlY3RSb3RhdGVkUmVjdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KwogMjAyMS0wMi0yNiAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2J1aWxkLndlYmtpdC5vcmddIFN0b3AgdXNpbmcgZGVwcmVjYXRlZCBidWlsZGJvdC5z
dGF0dXMuYnVpbGRlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3OWNhYjIzZDk4NGEzYTMw
OGM5MDcwNDc4NDY3M2NiNGM2Njg2NjVjLi5hZTAyY2IwYzVlMWY2MWE3NjBkNjMzNTg3MGRlODA4
YjJhYjE1NjRlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE5Myw2ICsxMTkzLDcgQEAK
IAkJRjRBMzJFQ0IxRjA2NDMzNzAwNDdDNTQ0IC8qIGNvbnRlbnRlZGl0YWJsZS1pbi1pZnJhbWUu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNEEzMkVDQTFGMDY0MkY0MDA0N0M1NDQgLyogY29udGVudGVkaXRhYmxlLWluLWlmcmFtZS5o
dG1sICovOyB9OwogCQlGNEE5MjAyRjFGRUUzNEU5MDBGNTk1OTAgLyogYXBwbGUtZGF0YS11cmwu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNEE5MjAyRTFGRUUzNEM4MDBGNTk1OTAgLyogYXBwbGUtZGF0YS11cmwuaHRtbCAqLzsgfTsK
IAkJRjRBQjU3OEExRjY1MTY1NDAwREIwREExIC8qIGN1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRB
QjU3ODkxRjY1MTY0QjAwREIwREExIC8qIGN1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwgKi87IH07
CisJCUY0QUQxODM4MjVFRDc5MTUwMEIxQTE5RiAvKiBGbG9hdFF1YWRUZXN0cy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEFEMTgzNzI1RUQ3OTE1
MDBCMUExOUYgLyogRmxvYXRRdWFkVGVzdHMuY3BwICovOyB9OwogCQlGNEIwMTY4MzI1QUUwNjBG
MDBFNDQ1QzQgLyogRGlzYWJsZVNwZWxsY2hlY2subW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEIwMTY4MjI1QUUwNjBGMDBFNDQ1QzQgLyogRGlzYWJs
ZVNwZWxsY2hlY2subW0gKi87IH07CiAJCUY0QjAxNjg0MjVBRTA4RjgwMEU0NDVDNCAvKiBEaXNh
YmxlU3BlbGxjaGVja1BsdWdJbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0QjAxNjdGMjVBRTAyRDYwMEU0NDVDNCAvKiBEaXNhYmxlU3BlbGxjaGVj
a1BsdWdJbi5tbSAqLzsgfTsKIAkJRjRCODI1RDgxRUY0REJGQjAwNkU0MTdGIC8qIGNvbXByZXNz
ZWQtZmlsZXMuemlwIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0QjgyNUQ2MUVGNERCRDQwMDZFNDE3RiAvKiBjb21wcmVzc2VkLWZpbGVzLnpp
cCAqLzsgfTsKQEAgLTI5NzgsNiArMjk3OSw4IEBACiAJCUY0QTMyRUNBMUYwNjQyRjQwMDQ3QzU0
NCAvKiBjb250ZW50ZWRpdGFibGUtaW4taWZyYW1lLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY29udGVudGVk
aXRhYmxlLWluLWlmcmFtZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRB
OTIwMkUxRkVFMzRDODAwRjU5NTkwIC8qIGFwcGxlLWRhdGEtdXJsLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSAiYXBwbGUtZGF0YS11cmwuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0QUI1Nzg5MUY2NTE2NEIwMERCMERBMSAvKiBjdXN0b20tZHJhZ2dhYmxl
LWRpdi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImN1c3RvbS1kcmFnZ2FibGUt
ZGl2Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEFEMTgzNjI1RUQ3OTE1
MDBCMUExOUYgLyogRmxvYXRRdWFkVGVzdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxvYXRRdWFkVGVz
dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRBRDE4MzcyNUVENzkxNTAwQjFB
MTlGIC8qIEZsb2F0UXVhZFRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsb2F0UXVhZFRl
c3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRCMDE2N0YyNUFFMDJENjAw
RTQ0NUM0IC8qIERpc2FibGVTcGVsbGNoZWNrUGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gRGlzYWJsZVNwZWxsY2hlY2tQbHVnSW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0QjAxNjgyMjVBRTA2MEYwMEU0NDVDNCAvKiBEaXNhYmxlU3BlbGxjaGVjay5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERpc2FibGVTcGVsbGNoZWNrLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNEI4MjVENjFFRjREQkQ0MDA2RTQxN0YgLyogY29tcHJlc3NlZC1maWxl
cy56aXAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBh
cmNoaXZlLnppcDsgcGF0aCA9ICJjb21wcmVzc2VkLWZpbGVzLnppcCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zNTg0LDYgKzM1ODcsNyBAQAogCQkJCTU3MkI0MDM1MjE3NkEwMjkw
MDBBRDQzRSAvKiBGaWRvVGVzdERhdGEuaCAqLywKIAkJCQk3QTMyRDc0OTFGMDIxNTE1MDAxNjJD
NDQgLyogRmlsZU1vbml0b3IuY3BwICovLAogCQkJCTdBOTA5QTcwMUQ4Nzc0NzUwMDdFMTBGOCAv
KiBGbG9hdFBvaW50VGVzdHMuY3BwICovLAorCQkJCUY0QUQxODM3MjVFRDc5MTUwMEIxQTE5RiAv
KiBGbG9hdFF1YWRUZXN0cy5jcHAgKi8sCiAJCQkJN0E5MDlBNzExRDg3NzQ3NTAwN0UxMEY4IC8q
IEZsb2F0UmVjdFRlc3RzLmNwcCAqLywKIAkJCQk3QTkwOUE3MjFEODc3NDc1MDA3RTEwRjggLyog
RmxvYXRTaXplVGVzdHMuY3BwICovLAogCQkJCThFNEE4NTM2MUUxRDFBQTEwMEY1M0IwRiAvKiBH
cmlkUG9zaXRpb24uY3BwICovLApAQCAtMzYyMiw2ICszNjI2LDcgQEAKIAkJCQk1N0QxRDc1RTIx
RENCN0E4MDA5M0U4NkEgLyogVTJmQ29tbWFuZENvbnN0cnVjdG9yVGVzdC5jcHAgKi8sCiAJCQkJ
RTNBMUU3N0UyMUIyNUIzOTAwOEM2MDA3IC8qIFVSTFBhcnNlclRleHRFbmNvZGluZy5jcHAgKi8s
CiAJCQkJOUM2NERDMzExRDc2MTk4QTAwNEI1OThFIC8qIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVu
dC5jcHAgKi8sCisJCQkJRjRBRDE4MzYyNUVENzkxNTAwQjFBMTlGIC8qIEZsb2F0UXVhZFRlc3Rz
LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYkNvcmU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtNTQ1OSw2ICs1NDY0LDcgQEAKIAkJCQkyNzJBNjkxMDIyRjAxMkRBMDAwRkRBQkIg
LyogUGFnZUxvYWRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VDNzFBNDExQTdF
MDA0NDdDNEMgLyogUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTEyNDJDREIyMzdCN0FDQjAwRUVEOUMxIC8qIFBhZ2Vab29tLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJRjRBRDE4MzgyNUVENzkxNTAwQjFBMTlGIC8qIEZsb2F0UXVhZFRl
c3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjA5MUE0MTFBRTYwMDQ0N0M0QyAvKiBQ
YXJlbnRGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTA1MTFEMEE2NDE4MDBGRUJD
RjMgLyogUGFyc2VkQ29udGVudFJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUFBOTZDQUI2
MjFDN0RCNTAwMEZEMkY5NyAvKiBQYXJzZWRDb250ZW50VHlwZS5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GbG9hdFF1YWRU
ZXN0cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmxvYXRRdWFkVGVz
dHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIwZGExMTBjYThkMTQ1YmI2ZmRiZjg2YWNmNDE3YzI1MTQ2YTNh
ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
RmxvYXRRdWFkVGVzdHMuY3BwCkBAIC0wLDAgKzEsMTEyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFF1YWQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0dlb21ldHJ5VXRpbGl0aWVzLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgYm9vbCBhcmVBcHByb3hpbWF0
ZWx5RXF1YWwoZmxvYXQgYSwgZmxvYXQgYikKK3sKKyAgICByZXR1cm4gc3RkOjphYnMoYSAtIGIp
IDwgMC4wMDE7Cit9CisKK3N0YXRpYyB2b2lkIGV4cGVjdFJvdGF0ZWRSZWN0KGNvbnN0IEZsb2F0
UG9pbnQmIGNlbnRlciwgY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCBhbmdsZSwgY29uc3Qg
Um90YXRlZFJlY3RJbmZvJiBpbmZvKQoreworICAgIGFyZUFwcHJveGltYXRlbHlFcXVhbChpbmZv
LmFuZ2xlSW5SYWRpYW5zLCBhbmdsZSk7CisgICAgYXJlQXBwcm94aW1hdGVseUVxdWFsKGluZm8u
Y2VudGVyLngoKSwgY2VudGVyLngoKSk7CisgICAgYXJlQXBwcm94aW1hdGVseUVxdWFsKGluZm8u
Y2VudGVyLnkoKSwgY2VudGVyLnkoKSk7CisgICAgYXJlQXBwcm94aW1hdGVseUVxdWFsKGluZm8u
c2l6ZS53aWR0aCgpLCBzaXplLndpZHRoKCkpOworICAgIGFyZUFwcHJveGltYXRlbHlFcXVhbChp
bmZvLnNpemUuaGVpZ2h0KCksIHNpemUuaGVpZ2h0KCkpOworfQorCitURVNUKEZsb2F0UXVhZCwg
Um90YXRlZEJvdW5kaW5nUmVjdEZvclBvaW50KQoreworICAgIGV4cGVjdFJvdGF0ZWRSZWN0KHsg
MSwgLTUgfSwgeyAwLCAwIH0sIDAsIHJvdGF0ZWRCb3VuZGluZ1JlY3QoeworICAgICAgICBGbG9h
dFBvaW50KDEsIC01KSwKKyAgICAgICAgRmxvYXRQb2ludCgxLCAtNSksCisgICAgICAgIEZsb2F0
UG9pbnQoMSwgLTUpLAorICAgICAgICBGbG9hdFBvaW50KDEsIC01KQorICAgIH0pKTsKK30KKwor
VEVTVChGbG9hdFF1YWQsIFJvdGF0ZWRCb3VuZGluZ1JlY3RGb3JMaW5lU2VnbWVudCkKK3sKKyAg
ICBleHBlY3RSb3RhdGVkUmVjdCh7IDAsIC01IH0sIHsgMjAsIDAgfSwgMCwgcm90YXRlZEJvdW5k
aW5nUmVjdCh7CisgICAgICAgIEZsb2F0UG9pbnQoLTEwLCAtNSksCisgICAgICAgIEZsb2F0UG9p
bnQoMTAsIC01KSwKKyAgICAgICAgRmxvYXRQb2ludCgxMCwgLTUpLAorICAgICAgICBGbG9hdFBv
aW50KC0xMCwgLTUpCisgICAgfSkpOworfQorCitURVNUKEZsb2F0UXVhZCwgUm90YXRlZEJvdW5k
aW5nUmVjdEZvclRyaWFuZ2xlKQoreworICAgIGV4cGVjdFJvdGF0ZWRSZWN0KHsgMTAsIDAgfSwg
eyA0MCwgMjAgfSwgMCwgcm90YXRlZEJvdW5kaW5nUmVjdCh7CisgICAgICAgIEZsb2F0UG9pbnQo
LTEwLCAtMTApLAorICAgICAgICBGbG9hdFBvaW50KDMwLCAwKSwKKyAgICAgICAgRmxvYXRQb2lu
dCgzMCwgMCksCisgICAgICAgIEZsb2F0UG9pbnQoLTEwLCAxMCkKKyAgICB9KSk7Cit9CisKK1RF
U1QoRmxvYXRRdWFkLCBSb3RhdGVkQm91bmRpbmdSZWN0Rm9yVHJhcGV6b2lkKQoreworICAgIGV4
cGVjdFJvdGF0ZWRSZWN0KHsgMjUsIDE1IH0sIHsgMjguMjg0LCAxNC4xNDIgfSwgNS40OTgsIHJv
dGF0ZWRCb3VuZGluZ1JlY3QoeworICAgICAgICBGbG9hdFBvaW50KDEwLCAyMCksCisgICAgICAg
IEZsb2F0UG9pbnQoMjAsIDEwKSwKKyAgICAgICAgRmxvYXRQb2ludCg0MCwgMTApLAorICAgICAg
ICBGbG9hdFBvaW50KDIwLCAzMCkKKyAgICB9KSk7CisKKyAgICBleHBlY3RSb3RhdGVkUmVjdCh7
IDIwLCAyNSB9LCB7IDI2LjgzLCAxMy40MiB9LCAxLjEwNywgcm90YXRlZEJvdW5kaW5nUmVjdCh7
CisgICAgICAgIEZsb2F0UG9pbnQoMjAsIDEwKSwKKyAgICAgICAgRmxvYXRQb2ludCgzMCwgMzAp
LAorICAgICAgICBGbG9hdFBvaW50KDIwLCA0MCksCisgICAgICAgIEZsb2F0UG9pbnQoMTAsIDIw
KQorICAgIH0pKTsKK30KKworVEVTVChGbG9hdFF1YWQsIFJvdGF0ZWRCb3VuZGluZ1JlY3RXaXRo
TWluaW11bUFuZ2xlKQoreworICAgIGV4cGVjdFJvdGF0ZWRSZWN0KHsgMjAsIC0xNC45NSB9LCB7
IDIwLCAxMC4xIH0sIDAsIHJvdGF0ZWRCb3VuZGluZ1JlY3QoeworICAgICAgICBGbG9hdFBvaW50
KDEwLCAtMjApLAorICAgICAgICBGbG9hdFBvaW50KDMwLCAtMTkuOSksCisgICAgICAgIEZsb2F0
UG9pbnQoMzAsIC05LjkpLAorICAgICAgICBGbG9hdFBvaW50KDEwLCAtMTApCisgICAgfSwgMC4w
MSkpOworCisgICAgZXhwZWN0Um90YXRlZFJlY3QoeyAyMCwgLTE1LjA1IH0sIHsgMjAsIDEwLjEg
fSwgMCwgcm90YXRlZEJvdW5kaW5nUmVjdCh7CisgICAgICAgIEZsb2F0UG9pbnQoMTAsIC0yMCks
CisgICAgICAgIEZsb2F0UG9pbnQoMzAsIC0yMC4xKSwKKyAgICAgICAgRmxvYXRQb2ludCgzMCwg
LTEwLjEpLAorICAgICAgICBGbG9hdFBvaW50KDEwLCAtMTApCisgICAgfSwgMC4wMSkpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421869</attachid>
            <date>2021-03-01 14:49:44 -0800</date>
            <delta_ts>2021-03-01 15:39:53 -0800</delta_ts>
            <desc>Add radar link</desc>
            <filename>bug-222535-20210301144943.patch</filename>
            <type>text/plain</type>
            <size>18459</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWZkY2ZiYmZkNTc1ZTY4
OWViYWUzMDliZjk0Zjg5MDFiMDAwMDQ3MC4uY2QxMDAxZTA5NWJhY2UyNmU3ZmRkOTBlMTBkZjQ2
ZWNlMTBiZjQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTAzLTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgcm90
YXRlZCBpbWFnZSBvdmVybGF5IHRleHQgZm9yIG5vbi1yZWN0aWxpbmVhciB0ZXh0IHF1YWRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1MzUKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0ODg2MjAwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZW5kZXJpbmcgaW1hZ2Ug
b3ZlcmxheSBlbGVtZW50cyBhdCByb3RhdGVkIGFuZ2xlcy4gVG8gYWNoaWV2ZSB0aGlzLCB3ZSBh
ZGQgYSBuZXcgaGVscGVyCisgICAgICAgIGZ1bmN0aW9uIHRvIGBHZW9tZXRyeVV0aWxpdGllcy5o
YCwgYHJvdGF0ZWRCb3VuZGluZ1JlY3RgLCB0aGF0IHRha2VzIGEgYEZsb2F0UXVhZGAgYW5kIHJl
dHVybnMgYSBzdHJ1Y3QgdGhhdAorICAgICAgICBkZXNjcmliZXMgYSAocG90ZW50aWFsbHkpIHJv
dGF0ZWQgYm91bmRpbmcgcmVjdCB0aGF0IGNvdmVycyBhbGwgdGhlIHBvaW50cyBpbiB0aGUgcXVh
ZC4KKworICAgICAgICBUZXN0czogIEZsb2F0UXVhZC5Sb3RhdGVkQm91bmRpbmdSZWN0Rm9yUG9p
bnQKKyAgICAgICAgICAgICAgICBGbG9hdFF1YWQuUm90YXRlZEJvdW5kaW5nUmVjdEZvckxpbmVT
ZWdtZW50CisgICAgICAgICAgICAgICAgRmxvYXRRdWFkLlJvdGF0ZWRCb3VuZGluZ1JlY3RGb3JU
cmlhbmdsZQorICAgICAgICAgICAgICAgIEZsb2F0UXVhZC5Sb3RhdGVkQm91bmRpbmdSZWN0Rm9y
VHJhcGV6b2lkCisgICAgICAgICAgICAgICAgRmxvYXRRdWFkLlJvdGF0ZWRCb3VuZGluZ1JlY3RX
aXRoTWluaW11bUFuZ2xlCisKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0
KToKKworICAgICAgICBBZGQgYSBzbGlnaHQgKDAuMDEgcmFkKSB0b2xlcmFuY2UgaGVyZSwgc3Vj
aCB3ZSB3b24ndCBhdHRlbXB0IHRvIGFwcGx5IGEgcm90YXRpb24gdHJhbnNmb3JtYXRpb24gaWYg
dGhlIHRleHQKKyAgICAgICAgcXVhZCBpcyBhbGlnbmVkIChvciBuZWFybHkgYWxpZ25lZCkgd2l0
aCB0aGUgdW5pdCB2ZWN0b3IgKDEsIDApLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R2VvbWV0cnlVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWlkUG9pbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6ZG90UHJvZHVjdCk6CisgICAgICAgIChXZWJDb3JlOjphbmdsZUJldHdl
ZW5WZWN0b3JzKToKKyAgICAgICAgKFdlYkNvcmU6OnJvdGF0ZWRCb3VuZGluZ1JlY3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Om1pZFBvaW50KTogRGVsZXRlZC4KKwogMjAyMS0wMy0wMSAgU2FtIFdlaW5pZyAgPHdlaW5p
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBDU1Mg
Q29sb3IgNSBjb2xvci1jb250cmFzdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmlu
ZGV4IDdjZWVjOWM2NjM0Y2M5ZWJhMjA0Mzg0NDlmYzJkMjVhZGY1ODFkMjYuLjk2MzkzOTZiOWNj
ODkwYjZkMTRlZmFkZjJkNTAzZWMxMmE5MGJjMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkdlb21ldHJ5
VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSFRNTEJESUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
QlJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQuaCIKQEAgLTEyNzMsMTcg
KzEyNzQsMjAgQEAgdm9pZCBIVE1MRWxlbWVudDo6dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJl
c3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiByZXN1bHQKICAgICAgICAgaWYgKG9yaWdpbmFs
U2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBhdXRvIHRh
cmdldFJlY3QgPSBkYXRhLm5vcm1hbGl6ZWRRdWFkLmJvdW5kaW5nQm94KCk7Ci0gICAgICAgIHRh
cmdldFJlY3Quc2NhbGUoY29udGFpbmVyU2l6ZSk7CisgICAgICAgIGF1dG8gdGFyZ2V0UXVhZCA9
IGRhdGEubm9ybWFsaXplZFF1YWQ7CisgICAgICAgIHRhcmdldFF1YWQuc2NhbGUoY29udGFpbmVy
U2l6ZS53aWR0aCgpLCBjb250YWluZXJTaXplLmhlaWdodCgpKTsKIAotICAgICAgICBJbnRQb2lu
dCB0cmFuc2xhdGlvbk9mZnNldCB7Ci0gICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHRhcmdl
dFJlY3QueCgpICsgKHRhcmdldFJlY3Qud2lkdGgoKSAtIG9yaWdpbmFsU2l6ZS53aWR0aCgpKSAv
IDIpLAotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50Pih0YXJnZXRSZWN0LnkoKSArICh0YXJn
ZXRSZWN0LmhlaWdodCgpIC0gb3JpZ2luYWxTaXplLmhlaWdodCgpKSAvIDIpCi0gICAgICAgIH07
CisgICAgICAgIGF1dG8gcm90YXRlZFJlY3QgPSByb3RhdGVkQm91bmRpbmdSZWN0KHRhcmdldFF1
YWQsIDAuMDEpOworICAgICAgICBhdXRvIHNjYWxlID0gcm90YXRlZFJlY3Quc2l6ZSAvIG9yaWdp
bmFsU2l6ZTsKKyAgICAgICAgU3RyaW5nIHJvdGF0aW9uVHJhbnNmb3JtYXRpb25Bc1RleHQ7Cisg
ICAgICAgIGlmIChyb3RhdGVkUmVjdC5hbmdsZUluUmFkaWFucykKKyAgICAgICAgICAgIHJvdGF0
aW9uVHJhbnNmb3JtYXRpb25Bc1RleHQgPSBtYWtlU3RyaW5nKCJyb3RhdGUoIiwgcm90YXRlZFJl
Y3QuYW5nbGVJblJhZGlhbnMsICJyYWQpICJfcyk7CiAKKyAgICAgICAgYXV0byBvZmZzZXQgPSBy
b3VuZGVkSW50UG9pbnQocm90YXRlZFJlY3QuY2VudGVyIC0gKG9yaWdpbmFsU2l6ZSAvIDIpKTsK
ICAgICAgICAgY2hpbGQtPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlUcmFuc2Zv
cm0sIG1ha2VTdHJpbmcoCi0gICAgICAgICAgICAidHJhbnNsYXRlKCJfcywgdHJhbnNsYXRpb25P
ZmZzZXQueCgpLCAicHgsICJfcywgdHJhbnNsYXRpb25PZmZzZXQueSgpLCAicHgpICJfcwotICAg
ICAgICAgICAgInNjYWxlKCJfcywgdGFyZ2V0UmVjdC53aWR0aCgpIC8gb3JpZ2luYWxTaXplLndp
ZHRoKCksICIsICJfcywgdGFyZ2V0UmVjdC5oZWlnaHQoKSAvIG9yaWdpbmFsU2l6ZS5oZWlnaHQo
KSwgIikiX3MKKyAgICAgICAgICAgICJ0cmFuc2xhdGUoIl9zLCBvZmZzZXQueCgpLCAicHgsICJf
cywgb2Zmc2V0LnkoKSwgInB4KSAiX3MsCisgICAgICAgICAgICByb3RhdGlvblRyYW5zZm9ybWF0
aW9uQXNUZXh0LAorICAgICAgICAgICAgInNjYWxlKCJfcywgc2NhbGUud2lkdGgoKSwgIiwgIl9z
LCBzY2FsZS5oZWlnaHQoKSwgIikgIl9zCiAgICAgICAgICkpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuY3Bw
CmluZGV4IGI3ZGYwNzI4YzEwNmIyZmE0NTgyMTljYjY5MDE1YjgxMWY2ODAxMTQuLjU4ODg5NWU0
NWFiMDVjZmYzMTM5ODQ5N2NjZGQxYWI4NDYyZDEzNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5jcHAKQEAgLTI1LDYg
KzI1LDkgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdlb21ldHJ5VXRpbGl0
aWVzLmgiCisKKyNpbmNsdWRlICJGbG9hdFF1YWQuaCIKKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
MTk5LDQgKzIwMiw1OCBAQCBib29sIGVsbGlwc2VDb250YWluc1BvaW50KGNvbnN0IEZsb2F0UG9p
bnQmIGNlbnRlciwgY29uc3QgRmxvYXRTaXplJiByYWRpaSwgY29ucwogICAgIHJldHVybiBzdGQ6
OmFicyh0cmFuc2Zvcm1lZFBvaW50LngoKSkgKyBzdGQ6OmFicyh0cmFuc2Zvcm1lZFBvaW50Lnko
KSkgPD0gdHJhbnNmb3JtZWRSYWRpdXMgfHwgdHJhbnNmb3JtZWRQb2ludC5sZW5ndGhTcXVhcmVk
KCkgPD0gdHJhbnNmb3JtZWRSYWRpdXMgKiB0cmFuc2Zvcm1lZFJhZGl1czsKIH0KIAorRmxvYXRQ
b2ludCBtaWRQb2ludChjb25zdCBGbG9hdFBvaW50JiBmaXJzdCwgY29uc3QgRmxvYXRQb2ludCYg
c2Vjb25kKQoreworICAgIHJldHVybiB7IChmaXJzdC54KCkgKyBzZWNvbmQueCgpKSAvIDIsIChm
aXJzdC55KCkgKyBzZWNvbmQueSgpKSAvIDIgfTsKK30KKworc3RhdGljIGZsb2F0IGRvdFByb2R1
Y3QoY29uc3QgRmxvYXRTaXplJiB1LCBjb25zdCBGbG9hdFNpemUmIHYpCit7CisgICAgcmV0dXJu
IHUud2lkdGgoKSAqIHYud2lkdGgoKSArIHUuaGVpZ2h0KCkgKiB2LmhlaWdodCgpOworfQorCitz
dGF0aWMgZmxvYXQgYW5nbGVCZXR3ZWVuVmVjdG9ycyhjb25zdCBGbG9hdFNpemUmIHUsIGNvbnN0
IEZsb2F0U2l6ZSYgdikKK3sKKyAgICBhdXRvIG1hZ25pdHVkZXMgPSB1LmRpYWdvbmFsTGVuZ3Ro
KCkgKiB2LmRpYWdvbmFsTGVuZ3RoKCk7CisgICAgcmV0dXJuIG1hZ25pdHVkZXMgPyBhY29zKGNs
YW1wVG88ZmxvYXQ+KGRvdFByb2R1Y3QodSwgdikgLyBtYWduaXR1ZGVzLCAtMSwgMSkpIDogMDsK
K30KKworUm90YXRlZFJlY3RJbmZvIHJvdGF0ZWRCb3VuZGluZ1JlY3QoY29uc3QgRmxvYXRRdWFk
JiBxdWFkLCBPcHRpb25hbDxmbG9hdD4gbWluUm90YXRpb25JblJhZGlhbnMpCit7CisgICAgY29u
c3RleHByIGF1dG8gdHdvUGlGbG9hdCA9IDIgKiBwaUZsb2F0OworCisgICAgYXV0byBtaW5Sb3Rh
dGlvbkFtb3VudCA9IG1pblJvdGF0aW9uSW5SYWRpYW5zLnZhbHVlT3Ioc3RkOjpudW1lcmljX2xp
bWl0czxmbG9hdD46OmVwc2lsb24oKSk7CisKKyAgICBhdXRvIGxlZnRNaWRQb2ludCA9IG1pZFBv
aW50KHF1YWQucDEoKSwgcXVhZC5wNCgpKTsKKyAgICBhdXRvIHJpZ2h0TWlkUG9pbnQgPSBtaWRQ
b2ludChxdWFkLnAyKCksIHF1YWQucDMoKSk7CisgICAgYXV0byB3aWR0aFZlY3RvciA9IHJpZ2h0
TWlkUG9pbnQgLSBsZWZ0TWlkUG9pbnQ7CisKKyAgICBhdXRvIG1pZFBvaW50VG9NaWRQb2ludERp
c3RhbmNlID0gd2lkdGhWZWN0b3IuZGlhZ29uYWxMZW5ndGgoKTsKKyAgICBpbnQgc2lnbk9mV2lk
dGhWZWN0b3JIZWlnaHQgPSB3aWR0aFZlY3Rvci5oZWlnaHQoKSA8IDAgPyAtMSA6IDE7CisgICAg
YXV0byBhbmdsZSA9IG1pZFBvaW50VG9NaWRQb2ludERpc3RhbmNlID8gc2lnbk9mV2lkdGhWZWN0
b3JIZWlnaHQgKiBhY29zKHdpZHRoVmVjdG9yLndpZHRoKCkgLyBtaWRQb2ludFRvTWlkUG9pbnRE
aXN0YW5jZSkgOiAwOworICAgIGlmIChhbmdsZSA8IDApCisgICAgICAgIGFuZ2xlICs9IHR3b1Bp
RmxvYXQ7CisKKyAgICBpZiAoc3RkOjphYnMoYW5nbGUpIDwgbWluUm90YXRpb25BbW91bnQgfHwg
c3RkOjphYnModHdvUGlGbG9hdCAtIGFuZ2xlKSA8IG1pblJvdGF0aW9uQW1vdW50KSB7CisgICAg
ICAgIGF1dG8gYm91bmRpbmdCb3ggPSBxdWFkLmJvdW5kaW5nQm94KCk7CisgICAgICAgIHJldHVy
biB7IGJvdW5kaW5nQm94LmNlbnRlcigpLCBib3VuZGluZ0JveC5zaXplKCksIDAgfTsKKyAgICB9
CisKKyAgICBhdXRvIGhlaWdodFZlY3RvciA9IEZsb2F0U2l6ZSB7IHdpZHRoVmVjdG9yLmhlaWdo
dCgpLCAtd2lkdGhWZWN0b3Iud2lkdGgoKSB9OworICAgIGF1dG8gbGVmdFBlcnBlbmRpY3VsYXJB
bmdsZSA9IGFuZ2xlQmV0d2VlblZlY3RvcnMoaGVpZ2h0VmVjdG9yLCBxdWFkLnAxKCkgLSBsZWZ0
TWlkUG9pbnQpOworICAgIGF1dG8gcmlnaHRQZXJwZW5kaWN1bGFyQW5nbGUgPSBhbmdsZUJldHdl
ZW5WZWN0b3JzKGhlaWdodFZlY3RvciwgcXVhZC5wMigpIC0gcmlnaHRNaWRQb2ludCk7CisKKyAg
ICBhdXRvIGxlZnRIeXBvdGVudXNlTGVuZ3RoID0gKGxlZnRNaWRQb2ludCAtIHF1YWQucDEoKSku
ZGlhZ29uYWxMZW5ndGgoKTsKKyAgICBhdXRvIHJpZ2h0SHlwb3RlbnVzZUxlbmd0aCA9IChyaWdo
dE1pZFBvaW50IC0gcXVhZC5wMigpKS5kaWFnb25hbExlbmd0aCgpOworCisgICAgYXV0byBsZWZ0
TWFyZ2luID0gbGVmdEh5cG90ZW51c2VMZW5ndGggKiBzaW4obGVmdFBlcnBlbmRpY3VsYXJBbmds
ZSk7CisgICAgYXV0byByaWdodE1hcmdpbiA9IHJpZ2h0SHlwb3RlbnVzZUxlbmd0aCAqIHNpbihy
aWdodFBlcnBlbmRpY3VsYXJBbmdsZSk7CisgICAgYXV0byB3aWR0aCA9IG1pZFBvaW50VG9NaWRQ
b2ludERpc3RhbmNlICsgbGVmdE1hcmdpbiArIHJpZ2h0TWFyZ2luOworICAgIGF1dG8gaGVpZ2h0
ID0gMiAqIHN0ZDo6bWF4KGxlZnRIeXBvdGVudXNlTGVuZ3RoICogY29zKGxlZnRQZXJwZW5kaWN1
bGFyQW5nbGUpLCByaWdodEh5cG90ZW51c2VMZW5ndGggKiBjb3MocmlnaHRQZXJwZW5kaWN1bGFy
QW5nbGUpKTsKKworICAgIGF1dG8gbGVmdE1pZFRvQ2VudGVyRGlzdGFuY2UgPSAobWlkUG9pbnRU
b01pZFBvaW50RGlzdGFuY2UgKyByaWdodE1hcmdpbiAtIGxlZnRNYXJnaW4pIC8gMjsKKyAgICBh
dXRvIGNlbnRlciA9IGxlZnRNaWRQb2ludCArICh3aWR0aFZlY3RvciAqIGxlZnRNaWRUb0NlbnRl
ckRpc3RhbmNlIC8gbWlkUG9pbnRUb01pZFBvaW50RGlzdGFuY2UpOworICAgIHJldHVybiB7IGNl
bnRlciwgeyB3aWR0aCwgaGVpZ2h0IH0sIGFuZ2xlIH07Cit9CisKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5oCmluZGV4IDRh
NzYwNDYxMDFiN2YwYjRkN2JjNTljNGY4ODNkOTFkYmIyNzEwMTguLjA4MzdlMjk1OWNlYTRkYjFj
NTE0NGJmYWRkMTMyZTI1NzYxNWJkMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuaApAQCAtMzEsNiArMzEsOCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZsb2F0UXVhZDsKKwogZmxvYXQgZXVjbGlkaWFu
RGlzdGFuY2UoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmKTsKIAogZmxvYXQg
ZmluZFNsb3BlKGNvbnN0IEZsb2F0UG9pbnQmIHAxLCBjb25zdCBGbG9hdFBvaW50JiBwMiwgZmxv
YXQmIGMpOwpAQCAtNTcsNCArNTksMTUgQEAgRmxvYXRTaXplIHNpemVXaXRoQXJlYUFuZEFzcGVj
dFJhdGlvKGZsb2F0IGFyZWEsIGZsb2F0IGFzcGVjdFJhdGlvKTsKIEZsb2F0UmVjdCBib3VuZHNP
ZlJvdGF0aW5nUmVjdChjb25zdCBGbG9hdFJlY3QmKTsKIAogYm9vbCBlbGxpcHNlQ29udGFpbnNQ
b2ludChjb25zdCBGbG9hdFBvaW50JiBjZW50ZXIsIGNvbnN0IEZsb2F0U2l6ZSYgcmFkaWksIGNv
bnN0IEZsb2F0UG9pbnQmKTsKKworRmxvYXRQb2ludCBtaWRQb2ludChjb25zdCBGbG9hdFBvaW50
JiwgY29uc3QgRmxvYXRQb2ludCYpOworCitzdHJ1Y3QgUm90YXRlZFJlY3RJbmZvIHsKKyAgICBG
bG9hdFBvaW50IGNlbnRlcjsKKyAgICBGbG9hdFNpemUgc2l6ZTsKKyAgICBmbG9hdCBhbmdsZUlu
UmFkaWFuczsKK307CisKK1dFQkNPUkVfRVhQT1JUIFJvdGF0ZWRSZWN0SW5mbyByb3RhdGVkQm91
bmRpbmdSZWN0KGNvbnN0IEZsb2F0UXVhZCYsIE9wdGlvbmFsPGZsb2F0PiBtaW5Sb3RhdGlvbklu
UmFkaWFucyA9IFdURjo6bnVsbG9wdCk7CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhUcmF2ZXJzYWxTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoVHJhdmVyc2FsU3RhdGUuY3BwCmluZGV4IDdkM2U5YmE1
NTcwMWEyM2M4YzJjZTE5MTQ1OWVhMmU5YzNiYTNiZjUuLmVmMDJhMWU4M2ZjZGMzYTViOWI4NDFi
MDU4NjZhYjk4OTYwYmY4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1BhdGhUcmF2ZXJzYWxTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGF0aFRyYXZlcnNhbFN0YXRlLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBhdGhUcmF2ZXJzYWxTdGF0ZS5oIgogCisjaW5j
bHVkZSAiR2VvbWV0cnlVdGlsaXRpZXMuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtMjgsMTEgKzI5LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBzdGF0aWMgY29uc3QgZmxvYXQga1BhdGhTZWdtZW50TGVuZ3RoVG9sZXJhbmNl
ID0gMC4wMDAwMWY7CiAKLXN0YXRpYyBpbmxpbmUgRmxvYXRQb2ludCBtaWRQb2ludChjb25zdCBG
bG9hdFBvaW50JiBmaXJzdCwgY29uc3QgRmxvYXRQb2ludCYgc2Vjb25kKQotewotICAgIHJldHVy
biBGbG9hdFBvaW50KChmaXJzdC54KCkgKyBzZWNvbmQueCgpKSAvIDIuMGYsIChmaXJzdC55KCkg
KyBzZWNvbmQueSgpKSAvIDIuMGYpOwotfQotCiBzdGF0aWMgaW5saW5lIGZsb2F0IGRpc3RhbmNl
TGluZShjb25zdCBGbG9hdFBvaW50JiBzdGFydCwgY29uc3QgRmxvYXRQb2ludCYgZW5kKQogewog
ICAgIHJldHVybiBzdGQ6Omh5cG90KGVuZC54KCkgLSBzdGFydC54KCksIGVuZC55KCkgLSBzdGFy
dC55KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGRkZmEzNDc4ZDRmZjFiYjZhM2NiZjk1NWMzYjhjNmUxMTBhNzA4MGQuLjlkNWM1ZWQ2NDc4
Y2EwZTgyZWU3YzhiYWEzYzFmYWRiYjkzMTViZjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wMy0wMSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IHJv
dGF0ZWQgaW1hZ2Ugb3ZlcmxheSB0ZXh0IGZvciBub24tcmVjdGlsaW5lYXIgdGV4dCBxdWFkcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNTM1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDg4NjIwMD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgQVBJIHRlc3QgZmlsZSB0byBleGVy
Y2lzZSB0aGUgbmV3IGByb3RhdGVkQm91bmRpbmdSZWN0YCBmdW5jdGlvbiwgd2l0aCB0ZXN0cyB0
byBjb3ZlciBhIGZldyBkZWdlbmVyYXRlCisgICAgICAgIGNhc2VzIHN1Y2ggYXMgYSBzaW5nbGUg
cG9pbnQsIGxpbmUgc2VnbWVudHMsIGFuZCB0cmlhbmdsZXMuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmxvYXRRdWFkVGVzdHMuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmFyZUFwcHJveGltYXRlbHlFcXVhbCk6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpleHBlY3RSb3RhdGVkUmVjdCk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKwogMjAyMS0wMy0wMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBDU1MgQ29sb3IgNSBjb2xv
ci1jb250cmFzdCgpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIyMTc5ZjE2NGUwYTJiMjdj
Nzg3ZTcwOWMxY2JkZDI4YzgxNzFiYmEuLjc4MjhmYzViZGU4NWZkMzdmOTE1NTdhM2RhMzkwMzI2
M2U0MDcwNjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTk0LDYgKzExOTQsNyBAQAog
CQlGNEEzMkVDQjFGMDY0MzM3MDA0N0M1NDQgLyogY29udGVudGVkaXRhYmxlLWluLWlmcmFtZS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0QTMyRUNBMUYwNjQyRjQwMDQ3QzU0NCAvKiBjb250ZW50ZWRpdGFibGUtaW4taWZyYW1lLmh0
bWwgKi87IH07CiAJCUY0QTkyMDJGMUZFRTM0RTkwMEY1OTU5MCAvKiBhcHBsZS1kYXRhLXVybC5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0QTkyMDJFMUZFRTM0QzgwMEY1OTU5MCAvKiBhcHBsZS1kYXRhLXVybC5odG1sICovOyB9Owog
CQlGNEFCNTc4QTFGNjUxNjU0MDBEQjBEQTEgLyogY3VzdG9tLWRyYWdnYWJsZS1kaXYuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEFC
NTc4OTFGNjUxNjRCMDBEQjBEQTEgLyogY3VzdG9tLWRyYWdnYWJsZS1kaXYuaHRtbCAqLzsgfTsK
KwkJRjRBRDE4MzgyNUVENzkxNTAwQjFBMTlGIC8qIEZsb2F0UXVhZFRlc3RzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QUQxODM3MjVFRDc5MTUw
MEIxQTE5RiAvKiBGbG9hdFF1YWRUZXN0cy5jcHAgKi87IH07CiAJCUY0QjAxNjgzMjVBRTA2MEYw
MEU0NDVDNCAvKiBEaXNhYmxlU3BlbGxjaGVjay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QjAxNjgyMjVBRTA2MEYwMEU0NDVDNCAvKiBEaXNhYmxl
U3BlbGxjaGVjay5tbSAqLzsgfTsKIAkJRjRCMDE2ODQyNUFFMDhGODAwRTQ0NUM0IC8qIERpc2Fi
bGVTcGVsbGNoZWNrUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjRCMDE2N0YyNUFFMDJENjAwRTQ0NUM0IC8qIERpc2FibGVTcGVsbGNoZWNr
UGx1Z0luLm1tICovOyB9OwogCQlGNEI4MjVEODFFRjREQkZCMDA2RTQxN0YgLyogY29tcHJlc3Nl
ZC1maWxlcy56aXAgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjRCODI1RDYxRUY0REJENDAwNkU0MTdGIC8qIGNvbXByZXNzZWQtZmlsZXMuemlw
ICovOyB9OwpAQCAtMjk4MCw2ICsyOTgxLDggQEAKIAkJRjRBMzJFQ0ExRjA2NDJGNDAwNDdDNTQ0
IC8qIGNvbnRlbnRlZGl0YWJsZS1pbi1pZnJhbWUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJjb250ZW50ZWRp
dGFibGUtaW4taWZyYW1lLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEE5
MjAyRTFGRUUzNEM4MDBGNTk1OTAgLyogYXBwbGUtZGF0YS11cmwuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuaHRtbDsgcGF0aCA9ICJhcHBsZS1kYXRhLXVybC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjRBQjU3ODkxRjY1MTY0QjAwREIwREExIC8qIGN1c3RvbS1kcmFnZ2FibGUt
ZGl2Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY3VzdG9tLWRyYWdnYWJsZS1k
aXYuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0QUQxODM2MjVFRDc5MTUw
MEIxQTE5RiAvKiBGbG9hdFF1YWRUZXN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdFF1YWRUZXN0
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEFEMTgzNzI1RUQ3OTE1MDBCMUEx
OUYgLyogRmxvYXRRdWFkVGVzdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxvYXRRdWFkVGVz
dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEIwMTY3RjI1QUUwMkQ2MDBF
NDQ1QzQgLyogRGlzYWJsZVNwZWxsY2hlY2tQbHVnSW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBEaXNhYmxlU3BlbGxjaGVja1BsdWdJbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjRCMDE2ODIyNUFFMDYwRjAwRTQ0NUM0IC8qIERpc2FibGVTcGVsbGNoZWNrLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRGlzYWJsZVNwZWxsY2hlY2subW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0QjgyNUQ2MUVGNERCRDQwMDZFNDE3RiAvKiBjb21wcmVzc2VkLWZpbGVz
LnppcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGFy
Y2hpdmUuemlwOyBwYXRoID0gImNvbXByZXNzZWQtZmlsZXMuemlwIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTM1ODcsNiArMzU5MCw4IEBACiAJCQkJNTcyQjQwMzUyMTc2QTAyOTAw
MEFENDNFIC8qIEZpZG9UZXN0RGF0YS5oICovLAogCQkJCTdBMzJENzQ5MUYwMjE1MTUwMDE2MkM0
NCAvKiBGaWxlTW9uaXRvci5jcHAgKi8sCiAJCQkJN0E5MDlBNzAxRDg3NzQ3NTAwN0UxMEY4IC8q
IEZsb2F0UG9pbnRUZXN0cy5jcHAgKi8sCisJCQkJRjRBRDE4MzcyNUVENzkxNTAwQjFBMTlGIC8q
IEZsb2F0UXVhZFRlc3RzLmNwcCAqLywKKwkJCQlGNEFEMTgzNjI1RUQ3OTE1MDBCMUExOUYgLyog
RmxvYXRRdWFkVGVzdHMuaCAqLywKIAkJCQk3QTkwOUE3MTFEODc3NDc1MDA3RTEwRjggLyogRmxv
YXRSZWN0VGVzdHMuY3BwICovLAogCQkJCTdBOTA5QTcyMUQ4Nzc0NzUwMDdFMTBGOCAvKiBGbG9h
dFNpemVUZXN0cy5jcHAgKi8sCiAJCQkJOEU0QTg1MzYxRTFEMUFBMTAwRjUzQjBGIC8qIEdyaWRQ
b3NpdGlvbi5jcHAgKi8sCkBAIC01MzAwLDYgKzUzMDUsNyBAQAogCQkJCTExODE1MzQ4MjIwOEJB
REYwMEIyQ0NEMiAvKiBGaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmUubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3QzgzRTBCQzFEMEE2NTA3MDBGRUJDRjMgLyogRml4ZWRMYXlvdXRTaXplLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0E5MDlBN0UxRDg3NzQ4MDAwN0UxMEY4IC8qIEZsb2F0UG9p
bnRUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNEFEMTgzODI1RUQ3OTE1MDBCMUExOUYg
LyogRmxvYXRRdWFkVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E5MDlBN0YxRDg3NzQ4
MDAwN0UxMEY4IC8qIEZsb2F0UmVjdFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBOTA5
QTgwMUQ4Nzc0ODAwMDdFMTBGOCAvKiBGbG9hdFNpemVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNEJDMEIxNDIxNDZDODQ5MDAyQTA0NzggLyogRm9jdXNQcmVzZXJ2YXRpb25UZXN0cy5t
bSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0Zsb2F0UXVhZFRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9GbG9hdFF1YWRUZXN0cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBkYTExMGNhOGQxNDViYjZmZGJm
ODZhY2Y0MTdjMjUxNDZhM2FkZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9GbG9hdFF1YWRUZXN0cy5jcHAKQEAgLTAsMCArMSwxMTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0
UXVhZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR2VvbWV0cnlVdGlsaXRpZXMuaD4KKworbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRpYyBi
b29sIGFyZUFwcHJveGltYXRlbHlFcXVhbChmbG9hdCBhLCBmbG9hdCBiKQoreworICAgIHJldHVy
biBzdGQ6OmFicyhhIC0gYikgPCAwLjAwMTsKK30KKworc3RhdGljIHZvaWQgZXhwZWN0Um90YXRl
ZFJlY3QoY29uc3QgRmxvYXRQb2ludCYgY2VudGVyLCBjb25zdCBGbG9hdFNpemUmIHNpemUsIGZs
b2F0IGFuZ2xlLCBjb25zdCBSb3RhdGVkUmVjdEluZm8mIGluZm8pCit7CisgICAgYXJlQXBwcm94
aW1hdGVseUVxdWFsKGluZm8uYW5nbGVJblJhZGlhbnMsIGFuZ2xlKTsKKyAgICBhcmVBcHByb3hp
bWF0ZWx5RXF1YWwoaW5mby5jZW50ZXIueCgpLCBjZW50ZXIueCgpKTsKKyAgICBhcmVBcHByb3hp
bWF0ZWx5RXF1YWwoaW5mby5jZW50ZXIueSgpLCBjZW50ZXIueSgpKTsKKyAgICBhcmVBcHByb3hp
bWF0ZWx5RXF1YWwoaW5mby5zaXplLndpZHRoKCksIHNpemUud2lkdGgoKSk7CisgICAgYXJlQXBw
cm94aW1hdGVseUVxdWFsKGluZm8uc2l6ZS5oZWlnaHQoKSwgc2l6ZS5oZWlnaHQoKSk7Cit9CisK
K1RFU1QoRmxvYXRRdWFkLCBSb3RhdGVkQm91bmRpbmdSZWN0Rm9yUG9pbnQpCit7CisgICAgZXhw
ZWN0Um90YXRlZFJlY3QoeyAxLCAtNSB9LCB7IDAsIDAgfSwgMCwgcm90YXRlZEJvdW5kaW5nUmVj
dCh7CisgICAgICAgIEZsb2F0UG9pbnQoMSwgLTUpLAorICAgICAgICBGbG9hdFBvaW50KDEsIC01
KSwKKyAgICAgICAgRmxvYXRQb2ludCgxLCAtNSksCisgICAgICAgIEZsb2F0UG9pbnQoMSwgLTUp
CisgICAgfSkpOworfQorCitURVNUKEZsb2F0UXVhZCwgUm90YXRlZEJvdW5kaW5nUmVjdEZvckxp
bmVTZWdtZW50KQoreworICAgIGV4cGVjdFJvdGF0ZWRSZWN0KHsgMCwgLTUgfSwgeyAyMCwgMCB9
LCAwLCByb3RhdGVkQm91bmRpbmdSZWN0KHsKKyAgICAgICAgRmxvYXRQb2ludCgtMTAsIC01KSwK
KyAgICAgICAgRmxvYXRQb2ludCgxMCwgLTUpLAorICAgICAgICBGbG9hdFBvaW50KDEwLCAtNSks
CisgICAgICAgIEZsb2F0UG9pbnQoLTEwLCAtNSkKKyAgICB9KSk7Cit9CisKK1RFU1QoRmxvYXRR
dWFkLCBSb3RhdGVkQm91bmRpbmdSZWN0Rm9yVHJpYW5nbGUpCit7CisgICAgZXhwZWN0Um90YXRl
ZFJlY3QoeyAxMCwgMCB9LCB7IDQwLCAyMCB9LCAwLCByb3RhdGVkQm91bmRpbmdSZWN0KHsKKyAg
ICAgICAgRmxvYXRQb2ludCgtMTAsIC0xMCksCisgICAgICAgIEZsb2F0UG9pbnQoMzAsIDApLAor
ICAgICAgICBGbG9hdFBvaW50KDMwLCAwKSwKKyAgICAgICAgRmxvYXRQb2ludCgtMTAsIDEwKQor
ICAgIH0pKTsKK30KKworVEVTVChGbG9hdFF1YWQsIFJvdGF0ZWRCb3VuZGluZ1JlY3RGb3JUcmFw
ZXpvaWQpCit7CisgICAgZXhwZWN0Um90YXRlZFJlY3QoeyAyNSwgMTUgfSwgeyAyOC4yODQsIDE0
LjE0MiB9LCA1LjQ5OCwgcm90YXRlZEJvdW5kaW5nUmVjdCh7CisgICAgICAgIEZsb2F0UG9pbnQo
MTAsIDIwKSwKKyAgICAgICAgRmxvYXRQb2ludCgyMCwgMTApLAorICAgICAgICBGbG9hdFBvaW50
KDQwLCAxMCksCisgICAgICAgIEZsb2F0UG9pbnQoMjAsIDMwKQorICAgIH0pKTsKKworICAgIGV4
cGVjdFJvdGF0ZWRSZWN0KHsgMjAsIDI1IH0sIHsgMjYuODMsIDEzLjQyIH0sIDEuMTA3LCByb3Rh
dGVkQm91bmRpbmdSZWN0KHsKKyAgICAgICAgRmxvYXRQb2ludCgyMCwgMTApLAorICAgICAgICBG
bG9hdFBvaW50KDMwLCAzMCksCisgICAgICAgIEZsb2F0UG9pbnQoMjAsIDQwKSwKKyAgICAgICAg
RmxvYXRQb2ludCgxMCwgMjApCisgICAgfSkpOworfQorCitURVNUKEZsb2F0UXVhZCwgUm90YXRl
ZEJvdW5kaW5nUmVjdFdpdGhNaW5pbXVtQW5nbGUpCit7CisgICAgZXhwZWN0Um90YXRlZFJlY3Qo
eyAyMCwgLTE0Ljk1IH0sIHsgMjAsIDEwLjEgfSwgMCwgcm90YXRlZEJvdW5kaW5nUmVjdCh7Cisg
ICAgICAgIEZsb2F0UG9pbnQoMTAsIC0yMCksCisgICAgICAgIEZsb2F0UG9pbnQoMzAsIC0xOS45
KSwKKyAgICAgICAgRmxvYXRQb2ludCgzMCwgLTkuOSksCisgICAgICAgIEZsb2F0UG9pbnQoMTAs
IC0xMCkKKyAgICB9LCAwLjAxKSk7CisKKyAgICBleHBlY3RSb3RhdGVkUmVjdCh7IDIwLCAtMTUu
MDUgfSwgeyAyMCwgMTAuMSB9LCAwLCByb3RhdGVkQm91bmRpbmdSZWN0KHsKKyAgICAgICAgRmxv
YXRQb2ludCgxMCwgLTIwKSwKKyAgICAgICAgRmxvYXRQb2ludCgzMCwgLTIwLjEpLAorICAgICAg
ICBGbG9hdFBvaW50KDMwLCAtMTAuMSksCisgICAgICAgIEZsb2F0UG9pbnQoMTAsIC0xMCkKKyAg
ICB9LCAwLjAxKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>
<flag name="review"
          id="440844"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421883</attachid>
            <date>2021-03-01 16:10:13 -0800</date>
            <delta_ts>2021-03-01 17:33:04 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-222535-20210301161012.patch</filename>
            <type>text/plain</type>
            <size>18435</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWZkY2ZiYmZkNTc1ZTY4
OWViYWUzMDliZjk0Zjg5MDFiMDAwMDQ3MC4uNTJlM2E4YTc2MDhkNmJiYTQ0MDcwMGQ2Zjg3NWM1
YzcxZmJmYjJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTAzLTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgcm90
YXRlZCBpbWFnZSBvdmVybGF5IHRleHQgZm9yIG5vbi1yZWN0aWxpbmVhciB0ZXh0IHF1YWRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1MzUKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0ODg2MjAwPgorCisgICAgICAgIFJldmlld2VkIGJ5IFRp
bSBIb3J0b24uCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlbmRlcmluZyBpbWFnZSBvdmVy
bGF5IGVsZW1lbnRzIGF0IHJvdGF0ZWQgYW5nbGVzLiBUbyBhY2hpZXZlIHRoaXMsIHdlIGFkZCBh
IG5ldyBoZWxwZXIKKyAgICAgICAgZnVuY3Rpb24gdG8gYEdlb21ldHJ5VXRpbGl0aWVzLmhgLCBg
cm90YXRlZEJvdW5kaW5nUmVjdGAsIHRoYXQgdGFrZXMgYSBgRmxvYXRRdWFkYCBhbmQgcmV0dXJu
cyBhIHN0cnVjdCB0aGF0CisgICAgICAgIGRlc2NyaWJlcyBhIChwb3RlbnRpYWxseSkgcm90YXRl
ZCBib3VuZGluZyByZWN0IHRoYXQgY292ZXJzIGFsbCB0aGUgcG9pbnRzIGluIHRoZSBxdWFkLgor
CisgICAgICAgIFRlc3RzOiAgRmxvYXRRdWFkLlJvdGF0ZWRCb3VuZGluZ1JlY3RGb3JQb2ludAor
ICAgICAgICAgICAgICAgIEZsb2F0UXVhZC5Sb3RhdGVkQm91bmRpbmdSZWN0Rm9yTGluZVNlZ21l
bnQKKyAgICAgICAgICAgICAgICBGbG9hdFF1YWQuUm90YXRlZEJvdW5kaW5nUmVjdEZvclRyaWFu
Z2xlCisgICAgICAgICAgICAgICAgRmxvYXRRdWFkLlJvdGF0ZWRCb3VuZGluZ1JlY3RGb3JUcmFw
ZXpvaWQKKyAgICAgICAgICAgICAgICBGbG9hdFF1YWQuUm90YXRlZEJvdW5kaW5nUmVjdFdpdGhN
aW5pbXVtQW5nbGUKKworICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQpOgor
CisgICAgICAgIEFkZCBhIHNsaWdodCAoMC4wMSByYWQpIHRvbGVyYW5jZSBoZXJlLCBzdWNoIHdl
IHdvbid0IGF0dGVtcHQgdG8gYXBwbHkgYSByb3RhdGlvbiB0cmFuc2Zvcm1hdGlvbiBpZiB0aGUg
dGV4dAorICAgICAgICBxdWFkIGlzIGFsaWduZWQgKG9yIG5lYXJseSBhbGlnbmVkKSB3aXRoIHRo
ZSB1bml0IHZlY3RvciAoMSwgMCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HZW9t
ZXRyeVV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjptaWRQb2ludCk6CisgICAgICAg
IChXZWJDb3JlOjpkb3RQcm9kdWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmFuZ2xlQmV0d2VlblZl
Y3RvcnMpOgorICAgICAgICAoV2ViQ29yZTo6cm90YXRlZEJvdW5kaW5nUmVjdCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9QYXRoVHJhdmVyc2FsU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bWlkUG9pbnQpOiBEZWxldGVkLgorCiAyMDIxLTAzLTAxICBTYW0gV2VpbmlnICA8d2VpbmlnQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgZXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIENTUyBDb2xv
ciA1IGNvbG9yLWNvbnRyYXN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXgg
N2NlZWM5YzY2MzRjYzllYmEyMDQzODQ0OWZjMmQyNWFkZjU4MWQyNi4uOTYzOTM5NmI5Y2M4OTBi
NmQxNGVmYWRmMmQ1MDNlYzEyYTkwYmMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiR2VvbWV0cnlVdGls
aXRpZXMuaCIKICNpbmNsdWRlICJIVE1MQkRJRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxCUkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQnV0dG9uRWxlbWVudC5oIgpAQCAtMTI3MywxNyArMTI3
NCwyMCBAQCB2b2lkIEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0
KEltYWdlRXh0cmFjdGlvblJlc3VsdCYmIHJlc3VsdAogICAgICAgICBpZiAob3JpZ2luYWxTaXpl
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGF1dG8gdGFyZ2V0
UmVjdCA9IGRhdGEubm9ybWFsaXplZFF1YWQuYm91bmRpbmdCb3goKTsKLSAgICAgICAgdGFyZ2V0
UmVjdC5zY2FsZShjb250YWluZXJTaXplKTsKKyAgICAgICAgYXV0byB0YXJnZXRRdWFkID0gZGF0
YS5ub3JtYWxpemVkUXVhZDsKKyAgICAgICAgdGFyZ2V0UXVhZC5zY2FsZShjb250YWluZXJTaXpl
LndpZHRoKCksIGNvbnRhaW5lclNpemUuaGVpZ2h0KCkpOwogCi0gICAgICAgIEludFBvaW50IHRy
YW5zbGF0aW9uT2Zmc2V0IHsKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4odGFyZ2V0UmVj
dC54KCkgKyAodGFyZ2V0UmVjdC53aWR0aCgpIC0gb3JpZ2luYWxTaXplLndpZHRoKCkpIC8gMiks
Ci0gICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHRhcmdldFJlY3QueSgpICsgKHRhcmdldFJl
Y3QuaGVpZ2h0KCkgLSBvcmlnaW5hbFNpemUuaGVpZ2h0KCkpIC8gMikKLSAgICAgICAgfTsKKyAg
ICAgICAgYXV0byByb3RhdGVkUmVjdCA9IHJvdGF0ZWRCb3VuZGluZ1JlY3QodGFyZ2V0UXVhZCwg
MC4wMSk7CisgICAgICAgIGF1dG8gc2NhbGUgPSByb3RhdGVkUmVjdC5zaXplIC8gb3JpZ2luYWxT
aXplOworICAgICAgICBTdHJpbmcgcm90YXRpb25UcmFuc2Zvcm1hdGlvbkFzVGV4dDsKKyAgICAg
ICAgaWYgKHJvdGF0ZWRSZWN0LmFuZ2xlSW5SYWRpYW5zKQorICAgICAgICAgICAgcm90YXRpb25U
cmFuc2Zvcm1hdGlvbkFzVGV4dCA9IG1ha2VTdHJpbmcoInJvdGF0ZSgiLCByb3RhdGVkUmVjdC5h
bmdsZUluUmFkaWFucywgInJhZCkgIl9zKTsKIAorICAgICAgICBhdXRvIG9mZnNldCA9IHJvdW5k
ZWRJbnRQb2ludChyb3RhdGVkUmVjdC5jZW50ZXIgLSAob3JpZ2luYWxTaXplIC8gMikpOwogICAg
ICAgICBjaGlsZC0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVRyYW5zZm9ybSwg
bWFrZVN0cmluZygKLSAgICAgICAgICAgICJ0cmFuc2xhdGUoIl9zLCB0cmFuc2xhdGlvbk9mZnNl
dC54KCksICJweCwgIl9zLCB0cmFuc2xhdGlvbk9mZnNldC55KCksICJweCkgIl9zCi0gICAgICAg
ICAgICAic2NhbGUoIl9zLCB0YXJnZXRSZWN0LndpZHRoKCkgLyBvcmlnaW5hbFNpemUud2lkdGgo
KSwgIiwgIl9zLCB0YXJnZXRSZWN0LmhlaWdodCgpIC8gb3JpZ2luYWxTaXplLmhlaWdodCgpLCAi
KSJfcworICAgICAgICAgICAgInRyYW5zbGF0ZSgiX3MsIG9mZnNldC54KCksICJweCwgIl9zLCBv
ZmZzZXQueSgpLCAicHgpICJfcywKKyAgICAgICAgICAgIHJvdGF0aW9uVHJhbnNmb3JtYXRpb25B
c1RleHQsCisgICAgICAgICAgICAic2NhbGUoIl9zLCBzY2FsZS53aWR0aCgpLCAiLCAiX3MsIHNj
YWxlLmhlaWdodCgpLCAiKSAiX3MKICAgICAgICAgKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5jcHAKaW5k
ZXggYjdkZjA3MjhjMTA2YjJmYTQ1ODIxOWNiNjkwMTViODExZjY4MDExNC4uZDU3YmE2NmQ1N2E0
MTRjZjQzZWVmYTdkNWU3MjMwMTFmYjhiNDQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcApAQCAtMjUsNiArMjUs
OSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR2VvbWV0cnlVdGlsaXRpZXMu
aCIKKworI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xOTks
NCArMjAyLDU4IEBAIGJvb2wgZWxsaXBzZUNvbnRhaW5zUG9pbnQoY29uc3QgRmxvYXRQb2ludCYg
Y2VudGVyLCBjb25zdCBGbG9hdFNpemUmIHJhZGlpLCBjb25zCiAgICAgcmV0dXJuIHN0ZDo6YWJz
KHRyYW5zZm9ybWVkUG9pbnQueCgpKSArIHN0ZDo6YWJzKHRyYW5zZm9ybWVkUG9pbnQueSgpKSA8
PSB0cmFuc2Zvcm1lZFJhZGl1cyB8fCB0cmFuc2Zvcm1lZFBvaW50Lmxlbmd0aFNxdWFyZWQoKSA8
PSB0cmFuc2Zvcm1lZFJhZGl1cyAqIHRyYW5zZm9ybWVkUmFkaXVzOwogfQogCitGbG9hdFBvaW50
IG1pZFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmIGZpcnN0LCBjb25zdCBGbG9hdFBvaW50JiBzZWNv
bmQpCit7CisgICAgcmV0dXJuIHsgKGZpcnN0LngoKSArIHNlY29uZC54KCkpIC8gMiwgKGZpcnN0
LnkoKSArIHNlY29uZC55KCkpIC8gMiB9OworfQorCitzdGF0aWMgZmxvYXQgZG90UHJvZHVjdChj
b25zdCBGbG9hdFNpemUmIHUsIGNvbnN0IEZsb2F0U2l6ZSYgdikKK3sKKyAgICByZXR1cm4gdS53
aWR0aCgpICogdi53aWR0aCgpICsgdS5oZWlnaHQoKSAqIHYuaGVpZ2h0KCk7Cit9CisKK3N0YXRp
YyBmbG9hdCBhbmdsZUJldHdlZW5WZWN0b3JzKGNvbnN0IEZsb2F0U2l6ZSYgdSwgY29uc3QgRmxv
YXRTaXplJiB2KQoreworICAgIGF1dG8gbWFnbml0dWRlcyA9IHUuZGlhZ29uYWxMZW5ndGgoKSAq
IHYuZGlhZ29uYWxMZW5ndGgoKTsKKyAgICByZXR1cm4gbWFnbml0dWRlcyA/IGFjb3MoY2xhbXBU
bzxmbG9hdD4oZG90UHJvZHVjdCh1LCB2KSAvIG1hZ25pdHVkZXMsIC0xLCAxKSkgOiAwOworfQor
CitSb3RhdGVkUmVjdCByb3RhdGVkQm91bmRpbmdSZWN0KGNvbnN0IEZsb2F0UXVhZCYgcXVhZCwg
T3B0aW9uYWw8ZmxvYXQ+IG1pblJvdGF0aW9uSW5SYWRpYW5zKQoreworICAgIGNvbnN0ZXhwciBh
dXRvIHR3b1BpRmxvYXQgPSAyICogcGlGbG9hdDsKKworICAgIGF1dG8gbWluUm90YXRpb25BbW91
bnQgPSBtaW5Sb3RhdGlvbkluUmFkaWFucy52YWx1ZU9yKHN0ZDo6bnVtZXJpY19saW1pdHM8Zmxv
YXQ+OjplcHNpbG9uKCkpOworCisgICAgYXV0byBsZWZ0TWlkUG9pbnQgPSBtaWRQb2ludChxdWFk
LnAxKCksIHF1YWQucDQoKSk7CisgICAgYXV0byByaWdodE1pZFBvaW50ID0gbWlkUG9pbnQocXVh
ZC5wMigpLCBxdWFkLnAzKCkpOworICAgIGF1dG8gd2lkdGhWZWN0b3IgPSByaWdodE1pZFBvaW50
IC0gbGVmdE1pZFBvaW50OworCisgICAgYXV0byBtaWRQb2ludFRvTWlkUG9pbnREaXN0YW5jZSA9
IHdpZHRoVmVjdG9yLmRpYWdvbmFsTGVuZ3RoKCk7CisgICAgaW50IHNpZ25PZldpZHRoVmVjdG9y
SGVpZ2h0ID0gd2lkdGhWZWN0b3IuaGVpZ2h0KCkgPCAwID8gLTEgOiAxOworICAgIGF1dG8gYW5n
bGUgPSBtaWRQb2ludFRvTWlkUG9pbnREaXN0YW5jZSA/IHNpZ25PZldpZHRoVmVjdG9ySGVpZ2h0
ICogYWNvcyh3aWR0aFZlY3Rvci53aWR0aCgpIC8gbWlkUG9pbnRUb01pZFBvaW50RGlzdGFuY2Up
IDogMDsKKyAgICBpZiAoYW5nbGUgPCAwKQorICAgICAgICBhbmdsZSArPSB0d29QaUZsb2F0Owor
CisgICAgaWYgKHN0ZDo6YWJzKGFuZ2xlKSA8IG1pblJvdGF0aW9uQW1vdW50IHx8IHN0ZDo6YWJz
KHR3b1BpRmxvYXQgLSBhbmdsZSkgPCBtaW5Sb3RhdGlvbkFtb3VudCkgeworICAgICAgICBhdXRv
IGJvdW5kaW5nQm94ID0gcXVhZC5ib3VuZGluZ0JveCgpOworICAgICAgICByZXR1cm4geyBib3Vu
ZGluZ0JveC5jZW50ZXIoKSwgYm91bmRpbmdCb3guc2l6ZSgpLCAwIH07CisgICAgfQorCisgICAg
YXV0byBoZWlnaHRWZWN0b3IgPSBGbG9hdFNpemUgeyB3aWR0aFZlY3Rvci5oZWlnaHQoKSwgLXdp
ZHRoVmVjdG9yLndpZHRoKCkgfTsKKyAgICBhdXRvIGxlZnRQZXJwZW5kaWN1bGFyQW5nbGUgPSBh
bmdsZUJldHdlZW5WZWN0b3JzKGhlaWdodFZlY3RvciwgcXVhZC5wMSgpIC0gbGVmdE1pZFBvaW50
KTsKKyAgICBhdXRvIHJpZ2h0UGVycGVuZGljdWxhckFuZ2xlID0gYW5nbGVCZXR3ZWVuVmVjdG9y
cyhoZWlnaHRWZWN0b3IsIHF1YWQucDIoKSAtIHJpZ2h0TWlkUG9pbnQpOworCisgICAgYXV0byBs
ZWZ0SHlwb3RlbnVzZUxlbmd0aCA9IChsZWZ0TWlkUG9pbnQgLSBxdWFkLnAxKCkpLmRpYWdvbmFs
TGVuZ3RoKCk7CisgICAgYXV0byByaWdodEh5cG90ZW51c2VMZW5ndGggPSAocmlnaHRNaWRQb2lu
dCAtIHF1YWQucDIoKSkuZGlhZ29uYWxMZW5ndGgoKTsKKworICAgIGF1dG8gbGVmdE1hcmdpbiA9
IGxlZnRIeXBvdGVudXNlTGVuZ3RoICogc2luKGxlZnRQZXJwZW5kaWN1bGFyQW5nbGUpOworICAg
IGF1dG8gcmlnaHRNYXJnaW4gPSByaWdodEh5cG90ZW51c2VMZW5ndGggKiBzaW4ocmlnaHRQZXJw
ZW5kaWN1bGFyQW5nbGUpOworICAgIGF1dG8gd2lkdGggPSBtaWRQb2ludFRvTWlkUG9pbnREaXN0
YW5jZSArIGxlZnRNYXJnaW4gKyByaWdodE1hcmdpbjsKKyAgICBhdXRvIGhlaWdodCA9IDIgKiBz
dGQ6Om1heChsZWZ0SHlwb3RlbnVzZUxlbmd0aCAqIGNvcyhsZWZ0UGVycGVuZGljdWxhckFuZ2xl
KSwgcmlnaHRIeXBvdGVudXNlTGVuZ3RoICogY29zKHJpZ2h0UGVycGVuZGljdWxhckFuZ2xlKSk7
CisKKyAgICBhdXRvIGxlZnRNaWRUb0NlbnRlckRpc3RhbmNlID0gKG1pZFBvaW50VG9NaWRQb2lu
dERpc3RhbmNlICsgcmlnaHRNYXJnaW4gLSBsZWZ0TWFyZ2luKSAvIDI7CisgICAgYXV0byBjZW50
ZXIgPSBsZWZ0TWlkUG9pbnQgKyAod2lkdGhWZWN0b3IgKiBsZWZ0TWlkVG9DZW50ZXJEaXN0YW5j
ZSAvIG1pZFBvaW50VG9NaWRQb2ludERpc3RhbmNlKTsKKyAgICByZXR1cm4geyBjZW50ZXIsIHsg
d2lkdGgsIGhlaWdodCB9LCBhbmdsZSB9OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuaAppbmRleCA0YTc2MDQ2MTAx
YjdmMGI0ZDdiYzU5YzRmODgzZDkxZGJiMjcxMDE4Li40ZWIxMTcxNDY5YTQ1M2IxZjUxNmU0MmM3
NDgxMzg5NDMzZGE3OTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HZW9tZXRyeVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmgKQEAgLTMxLDYgKzMxLDggQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBGbG9hdFF1YWQ7CisKIGZsb2F0IGV1Y2xpZGlhbkRpc3RhbmNl
KGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jik7CiAKIGZsb2F0IGZpbmRTbG9w
ZShjb25zdCBGbG9hdFBvaW50JiBwMSwgY29uc3QgRmxvYXRQb2ludCYgcDIsIGZsb2F0JiBjKTsK
QEAgLTU3LDQgKzU5LDE1IEBAIEZsb2F0U2l6ZSBzaXplV2l0aEFyZWFBbmRBc3BlY3RSYXRpbyhm
bG9hdCBhcmVhLCBmbG9hdCBhc3BlY3RSYXRpbyk7CiBGbG9hdFJlY3QgYm91bmRzT2ZSb3RhdGlu
Z1JlY3QoY29uc3QgRmxvYXRSZWN0Jik7CiAKIGJvb2wgZWxsaXBzZUNvbnRhaW5zUG9pbnQoY29u
c3QgRmxvYXRQb2ludCYgY2VudGVyLCBjb25zdCBGbG9hdFNpemUmIHJhZGlpLCBjb25zdCBGbG9h
dFBvaW50Jik7CisKK0Zsb2F0UG9pbnQgbWlkUG9pbnQoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0
IEZsb2F0UG9pbnQmKTsKKworc3RydWN0IFJvdGF0ZWRSZWN0IHsKKyAgICBGbG9hdFBvaW50IGNl
bnRlcjsKKyAgICBGbG9hdFNpemUgc2l6ZTsKKyAgICBmbG9hdCBhbmdsZUluUmFkaWFuczsKK307
CisKK1dFQkNPUkVfRVhQT1JUIFJvdGF0ZWRSZWN0IHJvdGF0ZWRCb3VuZGluZ1JlY3QoY29uc3Qg
RmxvYXRRdWFkJiwgT3B0aW9uYWw8ZmxvYXQ+IG1pblJvdGF0aW9uSW5SYWRpYW5zID0gV1RGOjpu
dWxsb3B0KTsKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGF0aFRyYXZlcnNhbFN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1BhdGhUcmF2ZXJzYWxTdGF0ZS5jcHAKaW5kZXggN2QzZTliYTU1NzAxYTIzYzhjMmNlMTkx
NDU5ZWEyZTljM2JhM2JmNS4uZWYwMmExZTgzZmNkYzNhNWI5Yjg0MWIwNTg2NmFiOTg5NjBiZjgx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aFRyYXZl
cnNhbFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRo
VHJhdmVyc2FsU3RhdGUuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiUGF0aFRyYXZlcnNhbFN0YXRlLmgiCiAKKyNpbmNsdWRlICJHZW9tZXRyeVV0
aWxpdGllcy5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCkBAIC0yOCwxMSArMjksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRp
YyBjb25zdCBmbG9hdCBrUGF0aFNlZ21lbnRMZW5ndGhUb2xlcmFuY2UgPSAwLjAwMDAxZjsKIAot
c3RhdGljIGlubGluZSBGbG9hdFBvaW50IG1pZFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmIGZpcnN0
LCBjb25zdCBGbG9hdFBvaW50JiBzZWNvbmQpCi17Ci0gICAgcmV0dXJuIEZsb2F0UG9pbnQoKGZp
cnN0LngoKSArIHNlY29uZC54KCkpIC8gMi4wZiwgKGZpcnN0LnkoKSArIHNlY29uZC55KCkpIC8g
Mi4wZik7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgZmxvYXQgZGlzdGFuY2VMaW5lKGNvbnN0IEZsb2F0
UG9pbnQmIHN0YXJ0LCBjb25zdCBGbG9hdFBvaW50JiBlbmQpCiB7CiAgICAgcmV0dXJuIHN0ZDo6
aHlwb3QoZW5kLngoKSAtIHN0YXJ0LngoKSwgZW5kLnkoKSAtIHN0YXJ0LnkoKSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGRmYTM0NzhkNGZm
MWJiNmEzY2JmOTU1YzNiOGM2ZTExMGE3MDgwZC4uOTJjZGI4OGI5NjcyNmE1MzYyMzM0NjdiNjFj
MzFjYzJjMDAzMjQ5YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTAzLTAxICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgcm90YXRlZCBpbWFnZSBvdmVy
bGF5IHRleHQgZm9yIG5vbi1yZWN0aWxpbmVhciB0ZXh0IHF1YWRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI1MzUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzc0ODg2MjAwPgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAg
ICAgICAgQWRkIGEgbmV3IEFQSSB0ZXN0IGZpbGUgdG8gZXhlcmNpc2UgdGhlIG5ldyBgcm90YXRl
ZEJvdW5kaW5nUmVjdGAgZnVuY3Rpb24sIHdpdGggdGVzdHMgdG8gY292ZXIgYSBmZXcgZGVnZW5l
cmF0ZQorICAgICAgICBjYXNlcyBzdWNoIGFzIGEgc2luZ2xlIHBvaW50LCBsaW5lIHNlZ21lbnRz
LCBhbmQgdHJpYW5nbGVzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0Zsb2F0UXVhZFRlc3RzLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjphcmVBcHByb3hpbWF0ZWx5RXF1YWwpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6ZXhw
ZWN0Um90YXRlZFJlY3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEt
MDMtMDEgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBleHBl
cmltZW50YWwgc3VwcG9ydCBmb3IgQ1NTIENvbG9yIDUgY29sb3ItY29udHJhc3QoKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBiMjE3OWYxNjRlMGEyYjI3Yzc4N2U3MDljMWNiZGQyOGM4MTcx
YmJhLi43ODI4ZmM1YmRlODVmZDM3ZjkxNTU3YTNkYTM5MDMyNjNlNDA3MDYzIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTE5NCw2ICsxMTk0LDcgQEAKIAkJRjRBMzJFQ0IxRjA2NDMzNzAw
NDdDNTQ0IC8qIGNvbnRlbnRlZGl0YWJsZS1pbi1pZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEEzMkVDQTFGMDY0MkY0MDA0
N0M1NDQgLyogY29udGVudGVkaXRhYmxlLWluLWlmcmFtZS5odG1sICovOyB9OwogCQlGNEE5MjAy
RjFGRUUzNEU5MDBGNTk1OTAgLyogYXBwbGUtZGF0YS11cmwuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEE5MjAyRTFGRUUzNEM4MDBG
NTk1OTAgLyogYXBwbGUtZGF0YS11cmwuaHRtbCAqLzsgfTsKIAkJRjRBQjU3OEExRjY1MTY1NDAw
REIwREExIC8qIGN1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRBQjU3ODkxRjY1MTY0QjAwREIwREEx
IC8qIGN1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwgKi87IH07CisJCUY0QUQxODM4MjVFRDc5MTUw
MEIxQTE5RiAvKiBGbG9hdFF1YWRUZXN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNEFEMTgzNzI1RUQ3OTE1MDBCMUExOUYgLyogRmxvYXRRdWFk
VGVzdHMuY3BwICovOyB9OwogCQlGNEIwMTY4MzI1QUUwNjBGMDBFNDQ1QzQgLyogRGlzYWJsZVNw
ZWxsY2hlY2subW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNEIwMTY4MjI1QUUwNjBGMDBFNDQ1QzQgLyogRGlzYWJsZVNwZWxsY2hlY2subW0gKi87IH07
CiAJCUY0QjAxNjg0MjVBRTA4RjgwMEU0NDVDNCAvKiBEaXNhYmxlU3BlbGxjaGVja1BsdWdJbi5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QjAxNjdG
MjVBRTAyRDYwMEU0NDVDNCAvKiBEaXNhYmxlU3BlbGxjaGVja1BsdWdJbi5tbSAqLzsgfTsKIAkJ
RjRCODI1RDgxRUY0REJGQjAwNkU0MTdGIC8qIGNvbXByZXNzZWQtZmlsZXMuemlwIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QjgyNUQ2MUVG
NERCRDQwMDZFNDE3RiAvKiBjb21wcmVzc2VkLWZpbGVzLnppcCAqLzsgfTsKQEAgLTI5ODAsNiAr
Mjk4MSw4IEBACiAJCUY0QTMyRUNBMUYwNjQyRjQwMDQ3QzU0NCAvKiBjb250ZW50ZWRpdGFibGUt
aW4taWZyYW1lLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY29udGVudGVkaXRhYmxlLWluLWlmcmFtZS5odG1s
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRBOTIwMkUxRkVFMzRDODAwRjU5NTkw
IC8qIGFwcGxlLWRhdGEtdXJsLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYXBw
bGUtZGF0YS11cmwuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QUI1Nzg5
MUY2NTE2NEIwMERCMERBMSAvKiBjdXN0b20tZHJhZ2dhYmxlLWRpdi5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gImN1c3RvbS1kcmFnZ2FibGUtZGl2Lmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNEFEMTgzNjI1RUQ3OTE1MDBCMUExOUYgLyogRmxvYXRRdWFk
VGVzdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxvYXRRdWFkVGVzdHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjRBRDE4MzcyNUVENzkxNTAwQjFBMTlGIC8qIEZsb2F0UXVhZFRlc3Rz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZsb2F0UXVhZFRlc3RzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjRCMDE2N0YyNUFFMDJENjAwRTQ0NUM0IC8qIERpc2FibGVTcGVs
bGNoZWNrUGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGlzYWJsZVNwZWxsY2hlY2tQ
bHVnSW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QjAxNjgyMjVBRTA2MEYw
MEU0NDVDNCAvKiBEaXNhYmxlU3BlbGxjaGVjay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERp
c2FibGVTcGVsbGNoZWNrLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEI4MjVE
NjFFRjREQkQ0MDA2RTQxN0YgLyogY29tcHJlc3NlZC1maWxlcy56aXAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhcmNoaXZlLnppcDsgcGF0aCA9ICJj
b21wcmVzc2VkLWZpbGVzLnppcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNTg3
LDYgKzM1OTAsOCBAQAogCQkJCTU3MkI0MDM1MjE3NkEwMjkwMDBBRDQzRSAvKiBGaWRvVGVzdERh
dGEuaCAqLywKIAkJCQk3QTMyRDc0OTFGMDIxNTE1MDAxNjJDNDQgLyogRmlsZU1vbml0b3IuY3Bw
ICovLAogCQkJCTdBOTA5QTcwMUQ4Nzc0NzUwMDdFMTBGOCAvKiBGbG9hdFBvaW50VGVzdHMuY3Bw
ICovLAorCQkJCUY0QUQxODM3MjVFRDc5MTUwMEIxQTE5RiAvKiBGbG9hdFF1YWRUZXN0cy5jcHAg
Ki8sCisJCQkJRjRBRDE4MzYyNUVENzkxNTAwQjFBMTlGIC8qIEZsb2F0UXVhZFRlc3RzLmggKi8s
CiAJCQkJN0E5MDlBNzExRDg3NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UmVjdFRlc3RzLmNwcCAqLywK
IAkJCQk3QTkwOUE3MjFEODc3NDc1MDA3RTEwRjggLyogRmxvYXRTaXplVGVzdHMuY3BwICovLAog
CQkJCThFNEE4NTM2MUUxRDFBQTEwMEY1M0IwRiAvKiBHcmlkUG9zaXRpb24uY3BwICovLApAQCAt
NTMwMCw2ICs1MzA1LDcgQEAKIAkJCQkxMTgxNTM0ODIyMDhCQURGMDBCMkNDRDIgLyogRmlyc3RW
aXN1YWxseU5vbkVtcHR5TWlsZXN0b25lLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQkMx
RDBBNjUwNzAwRkVCQ0YzIC8qIEZpeGVkTGF5b3V0U2l6ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdBOTA5QTdFMUQ4Nzc0ODAwMDdFMTBGOCAvKiBGbG9hdFBvaW50VGVzdHMuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRjRBRDE4MzgyNUVENzkxNTAwQjFBMTlGIC8qIEZsb2F0UXVhZFRlc3RzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdBOTA5QTdGMUQ4Nzc0ODAwMDdFMTBGOCAvKiBGbG9hdFJl
Y3RUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTkwOUE4MDFEODc3NDgwMDA3RTEwRjgg
LyogRmxvYXRTaXplVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjRCQzBCMTQyMTQ2Qzg0
OTAwMkEwNDc4IC8qIEZvY3VzUHJlc2VydmF0aW9uVGVzdHMubW0gaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GbG9hdFF1YWRUZXN0
cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmxvYXRRdWFkVGVzdHMu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM2Zjc4NWRmMWE5NzhjZDZlZTU3YTNmNTI5MWQ4OTIxMGRmZTI2NTgK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmxv
YXRRdWFkVGVzdHMuY3BwCkBAIC0wLDAgKzEsMTEyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFF1YWQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0dlb21ldHJ5VXRpbGl0aWVzLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgYm9vbCBhcmVBcHByb3hpbWF0ZWx5
RXF1YWwoZmxvYXQgYSwgZmxvYXQgYikKK3sKKyAgICByZXR1cm4gc3RkOjphYnMoYSAtIGIpIDwg
MC4wMDE7Cit9CisKK3N0YXRpYyB2b2lkIGV4cGVjdFJvdGF0ZWRSZWN0KGNvbnN0IEZsb2F0UG9p
bnQmIGNlbnRlciwgY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCBhbmdsZSwgY29uc3QgUm90
YXRlZFJlY3QmIGluZm8pCit7CisgICAgYXJlQXBwcm94aW1hdGVseUVxdWFsKGluZm8uYW5nbGVJ
blJhZGlhbnMsIGFuZ2xlKTsKKyAgICBhcmVBcHByb3hpbWF0ZWx5RXF1YWwoaW5mby5jZW50ZXIu
eCgpLCBjZW50ZXIueCgpKTsKKyAgICBhcmVBcHByb3hpbWF0ZWx5RXF1YWwoaW5mby5jZW50ZXIu
eSgpLCBjZW50ZXIueSgpKTsKKyAgICBhcmVBcHByb3hpbWF0ZWx5RXF1YWwoaW5mby5zaXplLndp
ZHRoKCksIHNpemUud2lkdGgoKSk7CisgICAgYXJlQXBwcm94aW1hdGVseUVxdWFsKGluZm8uc2l6
ZS5oZWlnaHQoKSwgc2l6ZS5oZWlnaHQoKSk7Cit9CisKK1RFU1QoRmxvYXRRdWFkLCBSb3RhdGVk
Qm91bmRpbmdSZWN0Rm9yUG9pbnQpCit7CisgICAgZXhwZWN0Um90YXRlZFJlY3QoeyAxLCAtNSB9
LCB7IDAsIDAgfSwgMCwgcm90YXRlZEJvdW5kaW5nUmVjdCh7CisgICAgICAgIEZsb2F0UG9pbnQo
MSwgLTUpLAorICAgICAgICBGbG9hdFBvaW50KDEsIC01KSwKKyAgICAgICAgRmxvYXRQb2ludCgx
LCAtNSksCisgICAgICAgIEZsb2F0UG9pbnQoMSwgLTUpCisgICAgfSkpOworfQorCitURVNUKEZs
b2F0UXVhZCwgUm90YXRlZEJvdW5kaW5nUmVjdEZvckxpbmVTZWdtZW50KQoreworICAgIGV4cGVj
dFJvdGF0ZWRSZWN0KHsgMCwgLTUgfSwgeyAyMCwgMCB9LCAwLCByb3RhdGVkQm91bmRpbmdSZWN0
KHsKKyAgICAgICAgRmxvYXRQb2ludCgtMTAsIC01KSwKKyAgICAgICAgRmxvYXRQb2ludCgxMCwg
LTUpLAorICAgICAgICBGbG9hdFBvaW50KDEwLCAtNSksCisgICAgICAgIEZsb2F0UG9pbnQoLTEw
LCAtNSkKKyAgICB9KSk7Cit9CisKK1RFU1QoRmxvYXRRdWFkLCBSb3RhdGVkQm91bmRpbmdSZWN0
Rm9yVHJpYW5nbGUpCit7CisgICAgZXhwZWN0Um90YXRlZFJlY3QoeyAxMCwgMCB9LCB7IDQwLCAy
MCB9LCAwLCByb3RhdGVkQm91bmRpbmdSZWN0KHsKKyAgICAgICAgRmxvYXRQb2ludCgtMTAsIC0x
MCksCisgICAgICAgIEZsb2F0UG9pbnQoMzAsIDApLAorICAgICAgICBGbG9hdFBvaW50KDMwLCAw
KSwKKyAgICAgICAgRmxvYXRQb2ludCgtMTAsIDEwKQorICAgIH0pKTsKK30KKworVEVTVChGbG9h
dFF1YWQsIFJvdGF0ZWRCb3VuZGluZ1JlY3RGb3JUcmFwZXpvaWQpCit7CisgICAgZXhwZWN0Um90
YXRlZFJlY3QoeyAyNSwgMTUgfSwgeyAyOC4yODQsIDE0LjE0MiB9LCA1LjQ5OCwgcm90YXRlZEJv
dW5kaW5nUmVjdCh7CisgICAgICAgIEZsb2F0UG9pbnQoMTAsIDIwKSwKKyAgICAgICAgRmxvYXRQ
b2ludCgyMCwgMTApLAorICAgICAgICBGbG9hdFBvaW50KDQwLCAxMCksCisgICAgICAgIEZsb2F0
UG9pbnQoMjAsIDMwKQorICAgIH0pKTsKKworICAgIGV4cGVjdFJvdGF0ZWRSZWN0KHsgMjAsIDI1
IH0sIHsgMjYuODMsIDEzLjQyIH0sIDEuMTA3LCByb3RhdGVkQm91bmRpbmdSZWN0KHsKKyAgICAg
ICAgRmxvYXRQb2ludCgyMCwgMTApLAorICAgICAgICBGbG9hdFBvaW50KDMwLCAzMCksCisgICAg
ICAgIEZsb2F0UG9pbnQoMjAsIDQwKSwKKyAgICAgICAgRmxvYXRQb2ludCgxMCwgMjApCisgICAg
fSkpOworfQorCitURVNUKEZsb2F0UXVhZCwgUm90YXRlZEJvdW5kaW5nUmVjdFdpdGhNaW5pbXVt
QW5nbGUpCit7CisgICAgZXhwZWN0Um90YXRlZFJlY3QoeyAyMCwgLTE0Ljk1IH0sIHsgMjAsIDEw
LjEgfSwgMCwgcm90YXRlZEJvdW5kaW5nUmVjdCh7CisgICAgICAgIEZsb2F0UG9pbnQoMTAsIC0y
MCksCisgICAgICAgIEZsb2F0UG9pbnQoMzAsIC0xOS45KSwKKyAgICAgICAgRmxvYXRQb2ludCgz
MCwgLTkuOSksCisgICAgICAgIEZsb2F0UG9pbnQoMTAsIC0xMCkKKyAgICB9LCAwLjAxKSk7CisK
KyAgICBleHBlY3RSb3RhdGVkUmVjdCh7IDIwLCAtMTUuMDUgfSwgeyAyMCwgMTAuMSB9LCAwLCBy
b3RhdGVkQm91bmRpbmdSZWN0KHsKKyAgICAgICAgRmxvYXRQb2ludCgxMCwgLTIwKSwKKyAgICAg
ICAgRmxvYXRQb2ludCgzMCwgLTIwLjEpLAorICAgICAgICBGbG9hdFBvaW50KDMwLCAtMTAuMSks
CisgICAgICAgIEZsb2F0UG9pbnQoMTAsIC0xMCkKKyAgICB9LCAwLjAxKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>