<?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>221782</bug_id>
          
          <creation_ts>2021-02-11 14:33:13 -0800</creation_ts>
          <short_desc>[iOS][FCR] Add new look for input type=range with datalist</short_desc>
          <delta_ts>2021-02-15 14:22:47 -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>Forms</component>
          <version>Safari Technology Preview</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="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1728307</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-02-11 14:33:13 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728308</commentid>
    <comment_count>1</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-02-11 14:33:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/74251214&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728309</commentid>
    <comment_count>2</comment_count>
      <attachid>420046</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-02-11 14:38:37 -0800</bug_when>
    <thetext>Created attachment 420046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728943</commentid>
    <comment_count>3</comment_count>
      <attachid>420046</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-13 13:21:08 -0800</bug_when>
    <thetext>Comment on attachment 420046
Patch

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

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:2305
&gt; +    if (min == max)

Maybe &gt;=?

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:2326
&gt; +    auto&amp; dataList = downcast&lt;HTMLDataListElement&gt;(*input.list());

Why aren’t we using the HTMLInputElement::dataList() function? This downcast is literally just undoing what the the list() function does.

Also seems like we should only do this once, not separately for the null check and then again for the local variable. A null check of a local variable would be nice, although it’s probably less elegant to have a pointer instead of a reference for the local.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:2337
&gt; +        auto optionValue = optionElement.value();
&gt; +        if (!input.isValidValue(optionValue))
&gt; +            continue;
&gt; +
&gt; +        auto parsedOptionValue = parseToDoubleForNumberType(input.sanitizeValue(optionValue));

It’s not great to have this code here in the theme. I’d suggest we create a function that returns an Optional&lt;double&gt; so this code doesn’t have to know things like to call isValidValue and sanitizeValue and which parse function to call.

The function could be a member of HTMLInputElement, or HTMLDataListElement, or HTMLOptionElement. Not sure where the cleanest responsibility would be. Could take a String or could take an HTMLOptionElement. Maybe the cleanest design would be an overload of the valueAsNumber function in HTMLInputElement that takes an HTMLOptionElement argument.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:2346
&gt; +        context.fillRoundedRect(roundedTickRect, (value &gt;= parsedOptionValue) ? controlColor : controlBackgroundColor);

Does this need snapping to device pixel boundaries so it looks sharp? In the past that’s been required for some form control rendering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729159</commentid>
    <comment_count>4</comment_count>
      <attachid>420317</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-02-15 07:52:19 -0800</bug_when>
    <thetext>Created attachment 420317
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729160</commentid>
    <comment_count>5</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-02-15 07:58:06 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 420046 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=420046&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeIOS.mm:2305
&gt; &gt; +    if (min == max)
&gt; 
&gt; Maybe &gt;=?

Done.
 
&gt; &gt; Source/WebCore/rendering/RenderThemeIOS.mm:2326
&gt; &gt; +    auto&amp; dataList = downcast&lt;HTMLDataListElement&gt;(*input.list());
&gt; 
&gt; Why aren’t we using the HTMLInputElement::dataList() function? This downcast
&gt; is literally just undoing what the the list() function does.

Updated to use HTMLInputElement::dataList(). I took this code from RenderTheme.cpp, so I&apos;ve also updated the code there.
 
&gt; Also seems like we should only do this once, not separately for the null
&gt; check and then again for the local variable. A null check of a local
&gt; variable would be nice, although it’s probably less elegant to have a
&gt; pointer instead of a reference for the local.

Updated to null-check a local variable.
 
&gt; &gt; Source/WebCore/rendering/RenderThemeIOS.mm:2337
&gt; &gt; +        auto optionValue = optionElement.value();
&gt; &gt; +        if (!input.isValidValue(optionValue))
&gt; &gt; +            continue;
&gt; &gt; +
&gt; &gt; +        auto parsedOptionValue = parseToDoubleForNumberType(input.sanitizeValue(optionValue));
&gt; 
&gt; It’s not great to have this code here in the theme. I’d suggest we create a
&gt; function that returns an Optional&lt;double&gt; so this code doesn’t have to know
&gt; things like to call isValidValue and sanitizeValue and which parse function
&gt; to call.
&gt; 
&gt; The function could be a member of HTMLInputElement, or HTMLDataListElement,
&gt; or HTMLOptionElement. Not sure where the cleanest responsibility would be.
&gt; Could take a String or could take an HTMLOptionElement. Maybe the cleanest
&gt; design would be an overload of the valueAsNumber function in
&gt; HTMLInputElement that takes an HTMLOptionElement argument.

I&apos;ve added the listOptionValueAsDouble method to HTMLInputElement, which takes an HTMLOptionElement and returns an Optional&lt;double&gt;.

I didn&apos;t overload valueAsNumber, as that method is named for the corresponding JavaScript method on HTMLInputElement, and wanted to avoid confusion.

&gt; &gt; Source/WebCore/rendering/RenderThemeIOS.mm:2346
&gt; &gt; +        context.fillRoundedRect(roundedTickRect, (value &gt;= parsedOptionValue) ? controlColor : controlBackgroundColor);
&gt; 
&gt; Does this need snapping to device pixel boundaries so it looks sharp? In the
&gt; past that’s been required for some form control rendering.

I didn&apos;t observe any blurriness with the existing code, but I&apos;ve updated the patch to snap to pixel boundaries to stay consistent with the rest of form control rendering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729373</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-15 14:22:44 -0800</bug_when>
    <thetext>Committed r272881: &lt;https://commits.webkit.org/r272881&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 420317.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420046</attachid>
            <date>2021-02-11 14:38:37 -0800</date>
            <delta_ts>2021-02-13 13:21:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221782-20210211173842.patch</filename>
            <type>text/plain</type>
            <size>9976</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk3OWQzNGY2NjkyYzZi
MjUwMWU1MTZlNDI2NjYzZjA1ZWQwNDZhMS4uNThmOWE3N2Y0NjZiMzM3Y2U5YWM4MjY0MWIyNGUx
OTFkOGE4NWJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAyLTExICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtGQ1JdIEFk
ZCBuZXcgbG9vayBmb3IgaW5wdXQgdHlwZT1yYW5nZSB3aXRoIGRhdGFsaXN0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE3ODIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzc0MjUxMjE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNo
L3JhbmdlL2RhdGFsaXN0Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRTbGlkZXJUaWNrcyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6CisKKyAgICAgICAgTWFrZSBwYWludFNs
aWRlclRpY2tzIGEgdmlydHVhbCBtZXRob2QgdG8gc3VwcG9ydCBhIGN1c3RvbSBpbXBsZW1lbnRh
dGlvbgorICAgICAgICBmb3IgaU9TLiBVc2UgRmxvYXRSZWN0IGluc3RlYWQgb2YgSW50UmVjdCBm
b3Igc3VicGl4ZWwgYWNjdXJhY3kuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJ
T1MuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGFpbnRTbGlkZXJUaWNrcyk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUlPUzo6cGFpbnRTbGlkZXJUcmFja1dpdGhGb3JtQ29udHJvbFJlZnJl
c2gpOgorCiAyMDIxLTAyLTExICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4K
IAogICAgICAgICBbaU9TXVtGQ1JdIFJhbmdlIGlucHV0cyBoYXZlIGFuIGluY29ycmVjdCBSVEwg
YXBwZWFyYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXgg
YzA2YjQ2MjM3NjkzMTcyYzRlNzdiOGU0ZjU4YWNjYWJmMDk5NTBjMC4uNTZiOWZlYjU5ZThiOGUx
ODc2ZDRkMDE1OTU4NzAwOTZiMDUzNzQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwCkBAIC0xMDU3LDcgKzEwNTcsNyBAQCBMYXlvdXRVbml0IFJlbmRlclRoZW1l
OjpzbGlkZXJUaWNrU25hcHBpbmdUaHJlc2hvbGQoKSBjb25zdAogICAgIHJldHVybiAwOwogfQog
Ci12b2lkIFJlbmRlclRoZW1lOjpwYWludFNsaWRlclRpY2tzKGNvbnN0IFJlbmRlck9iamVjdCYg
bywgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCit2b2lk
IFJlbmRlclRoZW1lOjpwYWludFNsaWRlclRpY2tzKGNvbnN0IFJlbmRlck9iamVjdCYgbywgY29u
c3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBp
ZiAoIWlzPEhUTUxJbnB1dEVsZW1lbnQ+KG8ubm9kZSgpKSkKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCAwYzdjZjFlYTA3NzUxODBjNTE3
YjdmMzUxNDk0MTZiYzkwYjk2YzIxLi4wYWI4MDg4MWViZGI4Nzk0MWFmOWFlNjE3MjFlNDc1YzVh
NmM3M2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMjMwLDcg
KzIzMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEludFNpemUgc2xpZGVyVGlja1NpemUoKSBj
b25zdCA9IDA7CiAgICAgLy8gUmV0dXJucyB0aGUgZGlzdGFuY2Ugb2Ygc2xpZGVyIHRpY2sgb3Jp
Z2luIGZyb20gdGhlIHNsaWRlciB0cmFjayBjZW50ZXIuCiAgICAgdmlydHVhbCBpbnQgc2xpZGVy
VGlja09mZnNldEZyb21UcmFja0NlbnRlcigpIGNvbnN0ID0gMDsKLSAgICB2b2lkIHBhaW50U2xp
ZGVyVGlja3MoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50
UmVjdCYpOworICAgIHZpcnR1YWwgdm9pZCBwYWludFNsaWRlclRpY2tzKGNvbnN0IFJlbmRlck9i
amVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpOwogI2VuZGlmCiAKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkSGF2ZVNwaW5CdXR0b24oY29uc3QgSFRNTElucHV0RWxlbWVu
dCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAppbmRl
eCBmYjc3MWIzODZlYTQ3ZjMyM2NmZDI3YTM1Mzk1NjRkY2FmNjM4MjNkLi44NGZjZDlkZWZiZTZj
YmZmZmIxNDU2MDE1Y2YwMTQ3ZDFlYjE2OTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MuaApAQCAtMTIyLDYgKzEyMiwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wg
c3VwcG9ydHNNZXRlcihDb250cm9sUGFydCwgY29uc3QgSFRNTE1ldGVyRWxlbWVudCYpIGNvbnN0
IGZpbmFsOwogICAgIGJvb2wgcGFpbnRNZXRlcihjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgZmluYWw7CiAKKyNpZiBFTkFCTEUoREFUQUxJU1Rf
RUxFTUVOVCkKKyAgICB2b2lkIHBhaW50U2xpZGVyVGlja3MoY29uc3QgUmVuZGVyT2JqZWN0Jiwg
Y29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CisjZW5kaWYKKwogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIFN0cmluZyBjb2xvcklucHV0U3R5bGVTaGVl
dChjb25zdCBTZXR0aW5ncyYpIGNvbnN0IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggNTEwYTJhMTc4NTFkYTVhYTNmOGVlNDIzNzBhNGZk
ZmM0NzAxNDdlNi4uYWViMzczMzBlNTAzZmMwOTUwODE1YTdiNjQ2YTM0ODkzNzFmMWMxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtODQsNiArODQs
MTMgQEAKICNpbXBvcnQgPHd0Zi9PYmpDUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1Jl
ZlB0ci5oPgogI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCisjaWYgRU5BQkxFKERBVEFM
SVNUX0VMRU1FTlQpCisjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2Vu
ZGlmCisKICNpbXBvcnQgPHBhbC9pb3MvVUlLaXRTb2Z0TGluay5oPgogCiBAaW50ZXJmYWNlIFdl
YkNvcmVSZW5kZXJUaGVtZUJ1bmRsZSA6IE5TT2JqZWN0CkBAIC0yMjc3LDYgKzIyODQsNzEgQEAg
Ym9vbCBSZW5kZXJUaGVtZUlPUzo6cGFpbnRNZXRlcihjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRl
cmVyLCBjb25zdCBQYWludEluZm8mIHAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKyNpZiBFTkFC
TEUoREFUQUxJU1RfRUxFTUVOVCkKKwordm9pZCBSZW5kZXJUaGVtZUlPUzo6cGFpbnRTbGlkZXJU
aWNrcyhjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBpZiAoIWJveC5zZXR0aW5ncygpLmlPU0Zv
cm1Db250cm9sUmVmcmVzaEVuYWJsZWQoKSkgeworICAgICAgICBSZW5kZXJUaGVtZTo6cGFpbnRT
bGlkZXJUaWNrcyhib3gsIHBhaW50SW5mbywgcmVjdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAoIWlzPEhUTUxJbnB1dEVsZW1lbnQ+KGJveC5ub2RlKCkpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvJiBpbnB1dCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCpi
b3gubm9kZSgpKTsKKyAgICBpZiAoIWlucHV0LmlzUmFuZ2VDb250cm9sKCkgfHwgIWlucHV0Lmxp
c3QoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZG91YmxlIG1pbiA9IGlucHV0Lm1pbmltdW0o
KTsKKyAgICBkb3VibGUgbWF4ID0gaW5wdXQubWF4aW11bSgpOworICAgIGlmIChtaW4gPT0gbWF4
KQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdGV4cHIgaW50IHRpY2tXaWR0aCA9IDI7Cisg
ICAgY29uc3RleHByIGludCB0aWNrSGVpZ2h0ID0gODsKKyAgICBjb25zdGV4cHIgaW50IHRpY2tD
b3JuZXJSYWRpdXMgPSAxOworCisgICAgRmxvYXRSZWN0IHRpY2tSZWN0OworICAgIEZsb2F0Um91
bmRlZFJlY3Q6OlJhZGlpIHRpY2tDb3JuZXJSYWRpaSh0aWNrQ29ybmVyUmFkaXVzKTsKKworICAg
IGJvb2wgaXNIb3Jpem9udGFsID0gYm94LnN0eWxlKCkuYXBwZWFyYW5jZSgpID09IFNsaWRlckhv
cml6b250YWxQYXJ0OworICAgIGlmIChpc0hvcml6b250YWwpIHsKKyAgICAgICAgdGlja1JlY3Qu
c2V0V2lkdGgodGlja1dpZHRoKTsKKyAgICAgICAgdGlja1JlY3Quc2V0SGVpZ2h0KHRpY2tIZWln
aHQpOworICAgICAgICB0aWNrUmVjdC5zZXRZKHJlY3QuY2VudGVyKCkueSgpIC0gdGlja1JlY3Qu
aGVpZ2h0KCkgLyAyLjBmKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0aWNrUmVjdC5zZXRXaWR0
aCh0aWNrSGVpZ2h0KTsKKyAgICAgICAgdGlja1JlY3Quc2V0SGVpZ2h0KHRpY2tXaWR0aCk7Cisg
ICAgICAgIHRpY2tSZWN0LnNldFgocmVjdC5jZW50ZXIoKS54KCkgLSB0aWNrUmVjdC53aWR0aCgp
IC8gMi4wZik7CisgICAgfQorCisgICAgYXV0byYgZGF0YUxpc3QgPSBkb3duY2FzdDxIVE1MRGF0
YUxpc3RFbGVtZW50PigqaW5wdXQubGlzdCgpKTsKKyAgICBhdXRvIHZhbHVlID0gaW5wdXQudmFs
dWVBc051bWJlcigpOworCisgICAgYXV0byYgY29udGV4dCA9IHBhaW50SW5mby5jb250ZXh0KCk7
CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisg
ICAgZm9yIChhdXRvJiBvcHRpb25FbGVtZW50IDogZGF0YUxpc3Quc3VnZ2VzdGlvbnMoKSkgewor
ICAgICAgICBhdXRvIG9wdGlvblZhbHVlID0gb3B0aW9uRWxlbWVudC52YWx1ZSgpOworICAgICAg
ICBpZiAoIWlucHV0LmlzVmFsaWRWYWx1ZShvcHRpb25WYWx1ZSkpCisgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICBhdXRvIHBhcnNlZE9wdGlvblZhbHVlID0gcGFyc2VUb0RvdWJsZUZv
ck51bWJlclR5cGUoaW5wdXQuc2FuaXRpemVWYWx1ZShvcHRpb25WYWx1ZSkpOworICAgICAgICBh
dXRvIHRpY2tGcmFjdGlvbiA9IChwYXJzZWRPcHRpb25WYWx1ZSAtIG1pbikgLyAobWF4IC0gbWlu
KTsKKyAgICAgICAgYXV0byB0aWNrUmF0aW8gPSBpc0hvcml6b250YWwgJiYgYm94LnN0eWxlKCku
aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gdGlja0ZyYWN0aW9uIDogMS4wIC0gdGlja0ZyYWN0
aW9uOworICAgICAgICBpZiAoaXNIb3Jpem9udGFsKQorICAgICAgICAgICAgdGlja1JlY3Quc2V0
WChyZWN0LngoKSArIHRpY2tSYXRpbyAqIChyZWN0LndpZHRoKCkgLSB0aWNrUmVjdC53aWR0aCgp
KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRpY2tSZWN0LnNldFkocmVjdC55KCkgKyB0
aWNrUmF0aW8gKiAocmVjdC5oZWlnaHQoKSAtIHRpY2tSZWN0LmhlaWdodCgpKSk7CisKKyAgICAg
ICAgRmxvYXRSb3VuZGVkUmVjdCByb3VuZGVkVGlja1JlY3QodGlja1JlY3QsIHRpY2tDb3JuZXJS
YWRpaSk7CisgICAgICAgIGNvbnRleHQuZmlsbFJvdW5kZWRSZWN0KHJvdW5kZWRUaWNrUmVjdCwg
KHZhbHVlID49IHBhcnNlZE9wdGlvblZhbHVlKSA/IGNvbnRyb2xDb2xvciA6IGNvbnRyb2xCYWNr
Z3JvdW5kQ29sb3IpOworICAgIH0KK30KKworI2VuZGlmIC8vIEVOQUJMRShEQVRBTElTVF9FTEVN
RU5UKQorCiBib29sIFJlbmRlclRoZW1lSU9TOjpwYWludFNsaWRlclRyYWNrV2l0aEZvcm1Db250
cm9sUmVmcmVzaChjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgY29uc3QgUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFpczxSZW5kZXJTbGlkZXI+
KGJveCkpCkBAIC0yMjg3LDcgKzIzNTksNyBAQCBib29sIFJlbmRlclRoZW1lSU9TOjpwYWludFNs
aWRlclRyYWNrV2l0aEZvcm1Db250cm9sUmVmcmVzaChjb25zdCBSZW5kZXJPYmplY3QmCiAgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwogCiAgICAgYm9v
bCBpc0hvcml6b250YWwgPSB0cnVlOwotICAgIEludFJlY3QgdHJhY2tDbGlwID0gcmVjdDsKKyAg
ICBGbG9hdFJlY3QgdHJhY2tDbGlwID0gcmVjdDsKIAogICAgIHN3aXRjaCAoYm94LnN0eWxlKCku
YXBwZWFyYW5jZSgpKSB7CiAgICAgY2FzZSBTbGlkZXJIb3Jpem9udGFsUGFydDoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0
MmE3ZTZkZjI1YTBhYThjNDA3MjdmNzdlNzg0Zjg2ZDVmOTg1NjkzLi5kYWQ1OTA5YzNiNzgwZmJm
YTU5ZTY2YWMzZDNlNDVkMDJlNDAzMTVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDIt
MTEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1Nd
W0ZDUl0gQWRkIG5ldyBsb29rIGZvciBpbnB1dCB0eXBlPXJhbmdlIHdpdGggZGF0YWxpc3QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTc4MgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzQyNTEyMTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSByZWZlcmVuY2UgbWlzbWF0Y2ggdGVzdCB0
byB2ZXJpZnkgdGhhdCByYW5nZSBpbnB1dHMgd2l0aAorICAgICAgICBkaWZmZXJlbnQgZGF0YWxp
c3Qgb3B0aW9uIHZhbHVlcyBkbyBub3QgYXBwZWFyIHRoZSBzYW1lLgorCisgICAgICAgICogZmFz
dC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcmFuZ2UvZGF0YWxpc3QtZXhwZWN0ZWQt
bWlzbWF0Y2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVm
cmVzaC9yYW5nZS9kYXRhbGlzdC5odG1sOgorCiAyMDIxLTAyLTExICBBZGl0eWEgS2VlcnRoaSAg
PGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXVtGQ1JdIFJhbmdlIGlucHV0cyBo
YXZlIGFuIGluY29ycmVjdCBSVEwgYXBwZWFyYW5jZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcmFuZ2UvZGF0YWxpc3QtZXhwZWN0
ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJv
bC1yZWZyZXNoL3JhbmdlL2RhdGFsaXN0LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKaW5kZXggZjA5
NjZjYmQ5YWFiZDZlNzZjM2JiYjU0ZDljYjQ3NjU1NWJmZjQyNi4uMTdiYzZmOWM5NzdmODY5M2Yw
Mjg3ZGZjYzRlZjU5MDZkNjBhNGJiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcmFuZ2UvZGF0YWxpc3QtZXhwZWN0ZWQtbWlzbWF0
Y2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVm
cmVzaC9yYW5nZS9kYXRhbGlzdC1leHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC00LDE0ICs0LDE0
IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBp
bml0aWFsLXNjYWxlPTEiPgogPC9oZWFkPgogPGJvZHk+Ci08aW5wdXQgdHlwZT0icmFuZ2UiIGxp
c3Q9InZhbHVlcyIgdmFsdWU9IjUwIiBtaW49IjAiIG1heD0iMTAwIj4KLTxkYXRhbGlzdCBpZD0i
dmFsdWVzIj4KLSAgICA8b3B0aW9uIHZhbHVlPSIwIj48L29wdGlvbj4KLSAgICA8b3B0aW9uIHZh
bHVlPSIyMCI+PC9vcHRpb24+Ci0gICAgPG9wdGlvbiB2YWx1ZT0iNDAiPjwvb3B0aW9uPgotICAg
IDxvcHRpb24gdmFsdWU9IjYwIj48L29wdGlvbj4KLSAgICA8b3B0aW9uIHZhbHVlPSI4MCI+PC9v
cHRpb24+Ci0gICAgPG9wdGlvbiB2YWx1ZT0iMTAwIj48L29wdGlvbj4KKzxkYXRhbGlzdCBpZD0i
dGlja3MiPgorICAgIDxvcHRpb24+MDwvb3B0aW9uPgorICAgIDxvcHRpb24+MjA8L29wdGlvbj4K
KyAgICA8b3B0aW9uPjQwPC9vcHRpb24+CisgICAgPG9wdGlvbj42MDwvb3B0aW9uPgorICAgIDxv
cHRpb24+ODA8L29wdGlvbj4KKyAgICA8b3B0aW9uPjEwMDwvb3B0aW9uPgogPC9kYXRhbGlzdD4K
KzxpbnB1dCB0eXBlPSJyYW5nZSIgdmFsdWU9IjUwIiBtaW49IjAiIG1heD0iMTAwIiBsaXN0PSJ0
aWNrcyI+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9yYW5nZS9kYXRhbGlzdC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcmFuZ2UvZGF0YWxpc3Qu
aHRtbAppbmRleCBkNzUzYjEzMGI4NTg0YTg5MjhmM2IyN2UxYzRmZmJlZTg3NGI2MjU0Li5mOTM2
MTE5MTkxYmUxOTIwN2NmOTcwYzdlMTgyMDMxNDRmYTI4NTYwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9yYW5nZS9kYXRhbGlzdC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNo
L3JhbmdlL2RhdGFsaXN0Lmh0bWwKQEAgLTQsMTMgKzQsMTMgQEAKIDxtZXRhIG5hbWU9InZpZXdw
b3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiA8L2hl
YWQ+CiA8Ym9keT4KLTxpbnB1dCB0eXBlPSJyYW5nZSIgbGlzdD0idmFsdWVzIiB2YWx1ZT0iNTAi
IG1pbj0iMCIgbWF4PSIxMDAiPgotPGRhdGFsaXN0IGlkPSJ2YWx1ZXMiPgotICAgIDxvcHRpb24g
dmFsdWU9IjAiPjwvb3B0aW9uPgotICAgIDxvcHRpb24gdmFsdWU9IjI1Ij48L29wdGlvbj4KLSAg
ICA8b3B0aW9uIHZhbHVlPSI1MCI+PC9vcHRpb24+Ci0gICAgPG9wdGlvbiB2YWx1ZT0iNzUiPjwv
b3B0aW9uPgotICAgIDxvcHRpb24gdmFsdWU9IjEwMCI+PC9vcHRpb24+Cis8ZGF0YWxpc3QgaWQ9
InRpY2tzIj4KKyAgICA8b3B0aW9uPjA8L29wdGlvbj4KKyAgICA8b3B0aW9uPjI1PC9vcHRpb24+
CisgICAgPG9wdGlvbj41MDwvb3B0aW9uPgorICAgIDxvcHRpb24+NzU8L29wdGlvbj4KKyAgICA8
b3B0aW9uPjEwMDwvb3B0aW9uPgogPC9kYXRhbGlzdD4KKzxpbnB1dCB0eXBlPSJyYW5nZSIgdmFs
dWU9IjUwIiBtaW49IjAiIG1heD0iMTAwIiBsaXN0PSJ0aWNrcyI+CiA8L2JvZHk+CiA8L2h0bWw+
Cg==
</data>
<flag name="review"
          id="438447"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420317</attachid>
            <date>2021-02-15 07:52:19 -0800</date>
            <delta_ts>2021-02-15 14:22:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221782-20210215105216.patch</filename>
            <type>text/plain</type>
            <size>13930</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk3OWQzNGY2NjkyYzZi
MjUwMWU1MTZlNDI2NjYzZjA1ZWQwNDZhMS4uNzdiMmFhOTM1YWNiMzQzMTRkZjg3YzNmNTQwMmM3
OWRmYjFjYmNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTAyLTE1ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtGQ1JdIEFk
ZCBuZXcgbG9vayBmb3IgaW5wdXQgdHlwZT1yYW5nZSB3aXRoIGRhdGFsaXN0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE3ODIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzc0MjUxMjE0PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Jh
bmdlL2RhdGFsaXN0Lmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpsaXN0T3B0aW9uVmFsdWVBc0Rv
dWJsZSk6CisKKyAgICAgICAgQWRkZWQgYSBoZWxwZXIgbWV0aG9kIHRvIHZhbGlkYXRlIGFuZCBz
YW5pdGl6ZSBhbiBvcHRpb24gZWxlbWVudCdzCisgICAgICAgIHZhbHVlLCBhbmQgcmV0dXJuIGl0
IGFzIGEgZG91YmxlLgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lOjpwYWludFNsaWRlclRpY2tzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWUuaDoKKworICAgICAgICBNYWtlIHBhaW50U2xpZGVyVGlja3MgYSB2aXJ0dWFsIG1ldGhvZCB0
byBzdXBwb3J0IGEgY3VzdG9tIGltcGxlbWVudGF0aW9uCisgICAgICAgIGZvciBpT1MuIFVzZSBG
bG9hdFJlY3QgaW5zdGVhZCBvZiBJbnRSZWN0IGZvciBzdWJwaXhlbCBhY2N1cmFjeS4KKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwYWlu
dFNsaWRlclRpY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwYWludFNs
aWRlclRyYWNrV2l0aEZvcm1Db250cm9sUmVmcmVzaCk6CisKIDIwMjEtMDItMTEgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdW0ZDUl0gUmFuZ2Ug
aW5wdXRzIGhhdmUgYW4gaW5jb3JyZWN0IFJUTCBhcHBlYXJhbmNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAwMjM3MGJjNDdiYmIyMTg0YWVkNzUwZmQxYTJm
Y2ViZWQyYjdlOGQxLi4yMTAxNDA0NTJjOGQxZWFjMWYwMDNiNjdiZjM5ZDJhYzI4MzhhNDZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTQwNyw2ICs0MDcs
MTUgQEAgT3B0aW9uYWw8RGVjaW1hbD4gSFRNTElucHV0RWxlbWVudDo6ZmluZENsb3Nlc3RUaWNr
TWFya1ZhbHVlKGNvbnN0IERlY2ltYWwmIHZhbHUKIHsKICAgICByZXR1cm4gbV9pbnB1dFR5cGUt
PmZpbmRDbG9zZXN0VGlja01hcmtWYWx1ZSh2YWx1ZSk7CiB9CisKK09wdGlvbmFsPGRvdWJsZT4g
SFRNTElucHV0RWxlbWVudDo6bGlzdE9wdGlvblZhbHVlQXNEb3VibGUoY29uc3QgSFRNTE9wdGlv
bkVsZW1lbnQmIG9wdGlvbkVsZW1lbnQpCit7CisgICAgYXV0byBvcHRpb25WYWx1ZSA9IG9wdGlv
bkVsZW1lbnQudmFsdWUoKTsKKyAgICBpZiAoIWlzVmFsaWRWYWx1ZShvcHRpb25WYWx1ZSkpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcGFyc2VUb0RvdWJsZUZv
ck51bWJlclR5cGUoc2FuaXRpemVWYWx1ZShvcHRpb25WYWx1ZSkpOworfQogI2VuZGlmCiAKIEV4
Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBVcChpbnQgbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggNjI0YzYyYzJkNmQyODg1MDU0NjVhY2Q1
MDVlZGJjNjRkYmRlY2U2Yi4uNmYxYjlhNTg5N2NjM2QzOGExOWUwNjg0ZDMxYzY0YTllNDhmMzEw
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTM2LDYgKzM2LDcg
QEAgY2xhc3MgRHJhZ0RhdGE7CiBjbGFzcyBGaWxlTGlzdDsKIGNsYXNzIEhUTUxEYXRhTGlzdEVs
ZW1lbnQ7CiBjbGFzcyBIVE1MSW1hZ2VMb2FkZXI7CitjbGFzcyBIVE1MT3B0aW9uRWxlbWVudDsK
IGNsYXNzIEljb247CiBjbGFzcyBJbnB1dFR5cGU7CiBjbGFzcyBMaXN0QXR0cmlidXRlVGFyZ2V0
T2JzZXJ2ZXI7CkBAIC04NSw2ICs4Niw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShEQVRBTElT
VF9FTEVNRU5UKQogICAgIE9wdGlvbmFsPERlY2ltYWw+IGZpbmRDbG9zZXN0VGlja01hcmtWYWx1
ZShjb25zdCBEZWNpbWFsJik7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBsaXN0T3B0aW9uVmFsdWVB
c0RvdWJsZShjb25zdCBIVE1MT3B0aW9uRWxlbWVudCYpOwogI2VuZGlmCiAKICAgICBXRUJDT1JF
X0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBzdGVwVXAoaW50ID0gMSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCBjMDZiNDYyMzc2OTMxNzJjNGU3N2I4ZTRm
NThhY2NhYmYwOTk1MGMwLi41MWE2NmY4OGI1NGVhM2JhMzNhZjVhYmI5MzJjYTI5M2Y0NDc2M2Rk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTU0LDcgKzU0
LDYgQEAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKICNpbmNsdWRlICJIVE1MRGF0YUxp
c3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKLSNpbmNsdWRlICJI
VE1MUGFyc2VySWRpb21zLmgiCiAjZW5kaWYKIAogI2lmIFVTRShORVdfVEhFTUUpCkBAIC0xMDU3
LDE2ICsxMDU2LDE4IEBAIExheW91dFVuaXQgUmVuZGVyVGhlbWU6OnNsaWRlclRpY2tTbmFwcGlu
Z1RocmVzaG9sZCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWU6
OnBhaW50U2xpZGVyVGlja3MoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQgUmVuZGVyVGhlbWU6OnBhaW50
U2xpZGVyVGlja3MoY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmICghaXM8SFRNTElucHV0RWxl
bWVudD4oby5ub2RlKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvJiBpbnB1dCA9IGRv
d25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCpvLm5vZGUoKSk7Ci0gICAgaWYgKCFpbnB1dC5pc1Jh
bmdlQ29udHJvbCgpIHx8ICFpbnB1dC5saXN0KCkpCisgICAgaWYgKCFpbnB1dC5pc1JhbmdlQ29u
dHJvbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvJiBkYXRhTGlzdCA9IGRvd25jYXN0
PEhUTUxEYXRhTGlzdEVsZW1lbnQ+KCppbnB1dC5saXN0KCkpOworICAgIGF1dG8gZGF0YUxpc3Qg
PSBpbnB1dC5kYXRhTGlzdCgpOworICAgIGlmICghZGF0YUxpc3QpCisgICAgICAgIHJldHVybjsK
IAogICAgIGRvdWJsZSBtaW4gPSBpbnB1dC5taW5pbXVtKCk7CiAgICAgZG91YmxlIG1heCA9IGlu
cHV0Lm1heGltdW0oKTsKQEAgLTExMTcsMTkgKzExMTgsMTcgQEAgdm9pZCBSZW5kZXJUaGVtZTo6
cGFpbnRTbGlkZXJUaWNrcyhjb25zdCBSZW5kZXJPYmplY3QmIG8sIGNvbnN0IFBhaW50SW5mbyYg
cGFpbnQKICAgICB9CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKHBh
aW50SW5mby5jb250ZXh0KCkpOwogICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2V0RmlsbENvbG9y
KG8uc3R5bGUoKS52aXNpdGVkRGVwZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVy
dHlDb2xvcikpOwotICAgIGZvciAoYXV0byYgb3B0aW9uRWxlbWVudCA6IGRhdGFMaXN0LnN1Z2dl
c3Rpb25zKCkpIHsKLSAgICAgICAgU3RyaW5nIHZhbHVlID0gb3B0aW9uRWxlbWVudC52YWx1ZSgp
OwotICAgICAgICBpZiAoIWlucHV0LmlzVmFsaWRWYWx1ZSh2YWx1ZSkpCi0gICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgZG91YmxlIHBhcnNlZFZhbHVlID0gcGFyc2VUb0RvdWJsZUZvck51
bWJlclR5cGUoaW5wdXQuc2FuaXRpemVWYWx1ZSh2YWx1ZSkpOwotICAgICAgICBkb3VibGUgdGlj
a0ZyYWN0aW9uID0gKHBhcnNlZFZhbHVlIC0gbWluKSAvIChtYXggLSBtaW4pOwotICAgICAgICBk
b3VibGUgdGlja1JhdGlvID0gaXNIb3Jpem9udGFsICYmIG8uc3R5bGUoKS5pc0xlZnRUb1JpZ2h0
RGlyZWN0aW9uKCkgPyB0aWNrRnJhY3Rpb24gOiAxLjAgLSB0aWNrRnJhY3Rpb247Ci0gICAgICAg
IGRvdWJsZSB0aWNrUG9zaXRpb24gPSByb3VuZCh0aWNrUmVnaW9uU2lkZU1hcmdpbiArIHRpY2tS
ZWdpb25XaWR0aCAqIHRpY2tSYXRpbyk7Ci0gICAgICAgIGlmIChpc0hvcml6b250YWwpCi0gICAg
ICAgICAgICB0aWNrUmVjdC5zZXRYKHRpY2tQb3NpdGlvbik7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHRpY2tSZWN0LnNldFkodGlja1Bvc2l0aW9uKTsKLSAgICAgICAgcGFpbnRJbmZvLmNv
bnRleHQoKS5maWxsUmVjdCh0aWNrUmVjdCk7CisgICAgZm9yIChhdXRvJiBvcHRpb25FbGVtZW50
IDogZGF0YUxpc3QtPnN1Z2dlc3Rpb25zKCkpIHsKKyAgICAgICAgaWYgKGF1dG8gb3B0aW9uVmFs
dWUgPSBpbnB1dC5saXN0T3B0aW9uVmFsdWVBc0RvdWJsZShvcHRpb25FbGVtZW50KSkgeworICAg
ICAgICAgICAgZG91YmxlIHRpY2tGcmFjdGlvbiA9ICgqb3B0aW9uVmFsdWUgLSBtaW4pIC8gKG1h
eCAtIG1pbik7CisgICAgICAgICAgICBkb3VibGUgdGlja1JhdGlvID0gaXNIb3Jpem9udGFsICYm
IG8uc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyB0aWNrRnJhY3Rpb24gOiAxLjAg
LSB0aWNrRnJhY3Rpb247CisgICAgICAgICAgICBkb3VibGUgdGlja1Bvc2l0aW9uID0gcm91bmQo
dGlja1JlZ2lvblNpZGVNYXJnaW4gKyB0aWNrUmVnaW9uV2lkdGggKiB0aWNrUmF0aW8pOworICAg
ICAgICAgICAgaWYgKGlzSG9yaXpvbnRhbCkKKyAgICAgICAgICAgICAgICB0aWNrUmVjdC5zZXRY
KHRpY2tQb3NpdGlvbik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGlja1Jl
Y3Quc2V0WSh0aWNrUG9zaXRpb24pOworICAgICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQoKS5m
aWxsUmVjdCh0aWNrUmVjdCk7CisgICAgICAgIH0KICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggMGM3Y2YxZWEwNzc1MTgwYzUxN2I3ZjM1MTQ5NDE2
YmM5MGI5NmMyMS4uMGFiODA4ODFlYmRiODc5NDFhZjlhZTYxNzIxZTQ3NWM1YTZjNzNjOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTIzMCw3ICsyMzAsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBJbnRTaXplIHNsaWRlclRpY2tTaXplKCkgY29uc3QgPSAwOwog
ICAgIC8vIFJldHVybnMgdGhlIGRpc3RhbmNlIG9mIHNsaWRlciB0aWNrIG9yaWdpbiBmcm9tIHRo
ZSBzbGlkZXIgdHJhY2sgY2VudGVyLgogICAgIHZpcnR1YWwgaW50IHNsaWRlclRpY2tPZmZzZXRG
cm9tVHJhY2tDZW50ZXIoKSBjb25zdCA9IDA7Ci0gICAgdm9pZCBwYWludFNsaWRlclRpY2tzKGNv
bnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRTbGlkZXJUaWNrcyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKTsKICNlbmRpZgogCiAgICAgdmlydHVhbCBi
b29sIHNob3VsZEhhdmVTcGluQnV0dG9uKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKaW5kZXggZmI3NzFiMzg2
ZWE0N2YzMjNjZmQyN2EzNTM5NTY0ZGNhZjYzODIzZC4uODRmY2Q5ZGVmYmU2Y2JmZmZiMTQ1NjAx
NWNmMDE0N2QxZWIxNjk3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
SU9TLmgKQEAgLTEyMiw2ICsxMjIsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRzTWV0
ZXIoQ29udHJvbFBhcnQsIGNvbnN0IEhUTUxNZXRlckVsZW1lbnQmKSBjb25zdCBmaW5hbDsKICAg
ICBib29sIHBhaW50TWV0ZXIoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwg
Y29uc3QgSW50UmVjdCYpIGZpbmFsOwogCisjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisg
ICAgdm9pZCBwYWludFNsaWRlclRpY2tzKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50
SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOworI2VuZGlmCisKICNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9DT0xPUikKICAgICBTdHJpbmcgY29sb3JJbnB1dFN0eWxlU2hlZXQoY29uc3QgU2V0
dGluZ3MmKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lSU9TLm1tCmluZGV4IDUxMGEyYTE3ODUxZGE1YWEzZjhlZTQyMzcwYTRmZGZjNDcwMTQ3ZTYu
LmM5NzJkZGIxNDViYzQ3OWUyMzgzNDJlNmUyMmI4YTkzMGE3MWMwZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTg0LDYgKzg0LDEyIEBACiAjaW1w
b3J0IDx3dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNp
bXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKworI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5U
KQorI2luY2x1ZGUgIkhUTUxEYXRhTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9u
RWxlbWVudC5oIgorI2VuZGlmCisKICNpbXBvcnQgPHBhbC9pb3MvVUlLaXRTb2Z0TGluay5oPgog
CiBAaW50ZXJmYWNlIFdlYkNvcmVSZW5kZXJUaGVtZUJ1bmRsZSA6IE5TT2JqZWN0CkBAIC0yMjc3
LDYgKzIyODMsNzIgQEAgYm9vbCBSZW5kZXJUaGVtZUlPUzo6cGFpbnRNZXRlcihjb25zdCBSZW5k
ZXJPYmplY3QmIHJlbmRlcmVyLCBjb25zdCBQYWludEluZm8mIHAKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKwordm9pZCBSZW5kZXJUaGVtZUlP
Uzo6cGFpbnRTbGlkZXJUaWNrcyhjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgY29uc3QgUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBpZiAoIWJveC5z
ZXR0aW5ncygpLmlPU0Zvcm1Db250cm9sUmVmcmVzaEVuYWJsZWQoKSkgeworICAgICAgICBSZW5k
ZXJUaGVtZTo6cGFpbnRTbGlkZXJUaWNrcyhib3gsIHBhaW50SW5mbywgcmVjdCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIWlzPEhUTUxJbnB1dEVsZW1lbnQ+KGJveC5ub2Rl
KCkpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBpbnB1dCA9IGRvd25jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQ+KCpib3gubm9kZSgpKTsKKyAgICBpZiAoIWlucHV0LmlzUmFuZ2VDb250cm9s
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gZGF0YUxpc3QgPSBpbnB1dC5kYXRhTGlz
dCgpOworICAgIGlmICghZGF0YUxpc3QpCisgICAgICAgIHJldHVybjsKKworICAgIGRvdWJsZSBt
aW4gPSBpbnB1dC5taW5pbXVtKCk7CisgICAgZG91YmxlIG1heCA9IGlucHV0Lm1heGltdW0oKTsK
KyAgICBpZiAobWluID49IG1heCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3RleHByIGlu
dCB0aWNrV2lkdGggPSAyOworICAgIGNvbnN0ZXhwciBpbnQgdGlja0hlaWdodCA9IDg7CisgICAg
Y29uc3RleHByIGludCB0aWNrQ29ybmVyUmFkaXVzID0gMTsKKworICAgIEZsb2F0UmVjdCB0aWNr
UmVjdDsKKyAgICBGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaSB0aWNrQ29ybmVyUmFkaWkodGlja0Nv
cm5lclJhZGl1cyk7CisKKyAgICBib29sIGlzSG9yaXpvbnRhbCA9IGJveC5zdHlsZSgpLmFwcGVh
cmFuY2UoKSA9PSBTbGlkZXJIb3Jpem9udGFsUGFydDsKKyAgICBpZiAoaXNIb3Jpem9udGFsKSB7
CisgICAgICAgIHRpY2tSZWN0LnNldFdpZHRoKHRpY2tXaWR0aCk7CisgICAgICAgIHRpY2tSZWN0
LnNldEhlaWdodCh0aWNrSGVpZ2h0KTsKKyAgICAgICAgdGlja1JlY3Quc2V0WShyZWN0LmNlbnRl
cigpLnkoKSAtIHRpY2tSZWN0LmhlaWdodCgpIC8gMi4wZik7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgdGlja1JlY3Quc2V0V2lkdGgodGlja0hlaWdodCk7CisgICAgICAgIHRpY2tSZWN0LnNldEhl
aWdodCh0aWNrV2lkdGgpOworICAgICAgICB0aWNrUmVjdC5zZXRYKHJlY3QuY2VudGVyKCkueCgp
IC0gdGlja1JlY3Qud2lkdGgoKSAvIDIuMGYpOworICAgIH0KKworICAgIGF1dG8gdmFsdWUgPSBp
bnB1dC52YWx1ZUFzTnVtYmVyKCk7CisgICAgYXV0byBkZXZpY2VTY2FsZUZhY3RvciA9IGJveC5k
b2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCk7CisKKyAgICBhdXRvJiBjb250ZXh0ID0gcGFp
bnRJbmZvLmNvbnRleHQoKTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2
ZXIoY29udGV4dCk7CisKKyAgICBmb3IgKGF1dG8mIG9wdGlvbkVsZW1lbnQgOiBkYXRhTGlzdC0+
c3VnZ2VzdGlvbnMoKSkgeworICAgICAgICBpZiAoYXV0byBvcHRpb25WYWx1ZSA9IGlucHV0Lmxp
c3RPcHRpb25WYWx1ZUFzRG91YmxlKG9wdGlvbkVsZW1lbnQpKSB7CisgICAgICAgICAgICBhdXRv
IHRpY2tGcmFjdGlvbiA9ICgqb3B0aW9uVmFsdWUgLSBtaW4pIC8gKG1heCAtIG1pbik7CisgICAg
ICAgICAgICBhdXRvIHRpY2tSYXRpbyA9IGlzSG9yaXpvbnRhbCAmJiBib3guc3R5bGUoKS5pc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyB0aWNrRnJhY3Rpb24gOiAxLjAgLSB0aWNrRnJhY3Rpb247
CisgICAgICAgICAgICBpZiAoaXNIb3Jpem9udGFsKQorICAgICAgICAgICAgICAgIHRpY2tSZWN0
LnNldFgocmVjdC54KCkgKyB0aWNrUmF0aW8gKiAocmVjdC53aWR0aCgpIC0gdGlja1JlY3Qud2lk
dGgoKSkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRpY2tSZWN0LnNldFko
cmVjdC55KCkgKyB0aWNrUmF0aW8gKiAocmVjdC5oZWlnaHQoKSAtIHRpY2tSZWN0LmhlaWdodCgp
KSk7CisKKyAgICAgICAgICAgIEZsb2F0Um91bmRlZFJlY3Qgcm91bmRlZFRpY2tSZWN0KHNuYXBS
ZWN0VG9EZXZpY2VQaXhlbHMoTGF5b3V0UmVjdCh0aWNrUmVjdCksIGRldmljZVNjYWxlRmFjdG9y
KSwgdGlja0Nvcm5lclJhZGlpKTsKKyAgICAgICAgICAgIGNvbnRleHQuZmlsbFJvdW5kZWRSZWN0
KHJvdW5kZWRUaWNrUmVjdCwgKHZhbHVlID49ICpvcHRpb25WYWx1ZSkgPyBjb250cm9sQ29sb3Ig
OiBjb250cm9sQmFja2dyb3VuZENvbG9yKTsKKyAgICAgICAgfQorICAgIH0KK30KKworI2VuZGlm
IC8vIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorCiBib29sIFJlbmRlclRoZW1lSU9TOjpwYWlu
dFNsaWRlclRyYWNrV2l0aEZvcm1Db250cm9sUmVmcmVzaChjb25zdCBSZW5kZXJPYmplY3QmIGJv
eCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAg
ICAgaWYgKCFpczxSZW5kZXJTbGlkZXI+KGJveCkpCkBAIC0yMjg3LDcgKzIzNTksNyBAQCBib29s
IFJlbmRlclRoZW1lSU9TOjpwYWludFNsaWRlclRyYWNrV2l0aEZvcm1Db250cm9sUmVmcmVzaChj
b25zdCBSZW5kZXJPYmplY3QmCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKGNvbnRleHQpOwogCiAgICAgYm9vbCBpc0hvcml6b250YWwgPSB0cnVlOwotICAgIEludFJl
Y3QgdHJhY2tDbGlwID0gcmVjdDsKKyAgICBGbG9hdFJlY3QgdHJhY2tDbGlwID0gcmVjdDsKIAog
ICAgIHN3aXRjaCAoYm94LnN0eWxlKCkuYXBwZWFyYW5jZSgpKSB7CiAgICAgY2FzZSBTbGlkZXJI
b3Jpem9udGFsUGFydDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0MmE3ZTZkZjI1YTBhYThjNDA3MjdmNzdlNzg0Zjg2ZDVm
OTg1NjkzLi5lOGFiOThhZGIxYTk3YjlmNDEyYmI0YjZkOTY0YzNiMmNmODYxMzFjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMjEtMDItMTUgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBw
bGUuY29tPgorCisgICAgICAgIFtpT1NdW0ZDUl0gQWRkIG5ldyBsb29rIGZvciBpbnB1dCB0eXBl
PXJhbmdlIHdpdGggZGF0YWxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMTc4MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQyNTEyMTQ+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQWRkZWQgYSByZWZl
cmVuY2UgbWlzbWF0Y2ggdGVzdCB0byB2ZXJpZnkgdGhhdCByYW5nZSBpbnB1dHMgd2l0aAorICAg
ICAgICBkaWZmZXJlbnQgZGF0YWxpc3Qgb3B0aW9uIHZhbHVlcyBkbyBub3QgYXBwZWFyIHRoZSBz
YW1lLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcmFu
Z2UvZGF0YWxpc3QtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1z
L2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9yYW5nZS9kYXRhbGlzdC5odG1sOgorCiAyMDIxLTAy
LTExICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
XVtGQ1JdIFJhbmdlIGlucHV0cyBoYXZlIGFuIGluY29ycmVjdCBSVEwgYXBwZWFyYW5jZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gv
cmFuZ2UvZGF0YWxpc3QtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3JhbmdlL2RhdGFsaXN0LWV4cGVjdGVkLW1p
c21hdGNoLmh0bWwKaW5kZXggZjA5NjZjYmQ5YWFiZDZlNzZjM2JiYjU0ZDljYjQ3NjU1NWJmZjQy
Ni4uMTdiYzZmOWM5NzdmODY5M2YwMjg3ZGZjYzRlZjU5MDZkNjBhNGJiMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcmFuZ2UvZGF0
YWxpc3QtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9yYW5nZS9kYXRhbGlzdC1leHBlY3RlZC1taXNtYXRj
aC5odG1sCkBAIC00LDE0ICs0LDE0IEBACiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgogPC9oZWFkPgogPGJvZHk+Ci08
aW5wdXQgdHlwZT0icmFuZ2UiIGxpc3Q9InZhbHVlcyIgdmFsdWU9IjUwIiBtaW49IjAiIG1heD0i
MTAwIj4KLTxkYXRhbGlzdCBpZD0idmFsdWVzIj4KLSAgICA8b3B0aW9uIHZhbHVlPSIwIj48L29w
dGlvbj4KLSAgICA8b3B0aW9uIHZhbHVlPSIyMCI+PC9vcHRpb24+Ci0gICAgPG9wdGlvbiB2YWx1
ZT0iNDAiPjwvb3B0aW9uPgotICAgIDxvcHRpb24gdmFsdWU9IjYwIj48L29wdGlvbj4KLSAgICA8
b3B0aW9uIHZhbHVlPSI4MCI+PC9vcHRpb24+Ci0gICAgPG9wdGlvbiB2YWx1ZT0iMTAwIj48L29w
dGlvbj4KKzxkYXRhbGlzdCBpZD0idGlja3MiPgorICAgIDxvcHRpb24+MDwvb3B0aW9uPgorICAg
IDxvcHRpb24+MjA8L29wdGlvbj4KKyAgICA8b3B0aW9uPjQwPC9vcHRpb24+CisgICAgPG9wdGlv
bj42MDwvb3B0aW9uPgorICAgIDxvcHRpb24+ODA8L29wdGlvbj4KKyAgICA8b3B0aW9uPjEwMDwv
b3B0aW9uPgogPC9kYXRhbGlzdD4KKzxpbnB1dCB0eXBlPSJyYW5nZSIgdmFsdWU9IjUwIiBtaW49
IjAiIG1heD0iMTAwIiBsaXN0PSJ0aWNrcyI+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9yYW5nZS9k
YXRhbGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJl
ZnJlc2gvcmFuZ2UvZGF0YWxpc3QuaHRtbAppbmRleCBkNzUzYjEzMGI4NTg0YTg5MjhmM2IyN2Ux
YzRmZmJlZTg3NGI2MjU0Li5mOTM2MTE5MTkxYmUxOTIwN2NmOTcwYzdlMTgyMDMxNDRmYTI4NTYw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVm
cmVzaC9yYW5nZS9kYXRhbGlzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9z
L2Zvcm0tY29udHJvbC1yZWZyZXNoL3JhbmdlL2RhdGFsaXN0Lmh0bWwKQEAgLTQsMTMgKzQsMTMg
QEAKIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGlu
aXRpYWwtc2NhbGU9MSI+CiA8L2hlYWQ+CiA8Ym9keT4KLTxpbnB1dCB0eXBlPSJyYW5nZSIgbGlz
dD0idmFsdWVzIiB2YWx1ZT0iNTAiIG1pbj0iMCIgbWF4PSIxMDAiPgotPGRhdGFsaXN0IGlkPSJ2
YWx1ZXMiPgotICAgIDxvcHRpb24gdmFsdWU9IjAiPjwvb3B0aW9uPgotICAgIDxvcHRpb24gdmFs
dWU9IjI1Ij48L29wdGlvbj4KLSAgICA8b3B0aW9uIHZhbHVlPSI1MCI+PC9vcHRpb24+Ci0gICAg
PG9wdGlvbiB2YWx1ZT0iNzUiPjwvb3B0aW9uPgotICAgIDxvcHRpb24gdmFsdWU9IjEwMCI+PC9v
cHRpb24+Cis8ZGF0YWxpc3QgaWQ9InRpY2tzIj4KKyAgICA8b3B0aW9uPjA8L29wdGlvbj4KKyAg
ICA8b3B0aW9uPjI1PC9vcHRpb24+CisgICAgPG9wdGlvbj41MDwvb3B0aW9uPgorICAgIDxvcHRp
b24+NzU8L29wdGlvbj4KKyAgICA8b3B0aW9uPjEwMDwvb3B0aW9uPgogPC9kYXRhbGlzdD4KKzxp
bnB1dCB0eXBlPSJyYW5nZSIgdmFsdWU9IjUwIiBtaW49IjAiIG1heD0iMTAwIiBsaXN0PSJ0aWNr
cyI+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>