<?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>81156</bug_id>
          
          <creation_ts>2012-03-14 13:56:49 -0700</creation_ts>
          <short_desc>[chromium] Move overdraw metrics into a templated class for both paint and draw metrics.</short_desc>
          <delta_ts>2012-03-15 17:45:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>81175</blocked>
    
    <blocked>81222</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>piman</cc>
    
    <cc>reveman</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>578735</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-14 13:56:49 -0700</bug_when>
    <thetext>[chromium] Move overdraw metrics into a templated class for both paint and draw metrics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578743</commentid>
    <comment_count>1</comment_count>
      <attachid>131919</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-14 14:01:22 -0700</bug_when>
    <thetext>Created attachment 131919
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578747</commentid>
    <comment_count>2</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-14 14:04:09 -0700</bug_when>
    <thetext>(Also adds TRACE_COUNTER_ID1 for the non-normalized values)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578810</commentid>
    <comment_count>3</comment_count>
      <attachid>131919</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-14 14:59:44 -0700</bug_when>
    <thetext>Comment on attachment 131919
Patch

We have TRACE_COUNTER_ID2 where you can do stuff like &quot;bytesAllocated,bytesFree&quot; and get both into a single counter. Can we pile this into there so we have 1 counter rather than 3? If we need support for 3-value counters, its all supported and we just need to add it to the trace_event macros .... jbates can help there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578843</commentid>
    <comment_count>4</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-14 15:24:00 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 131919 [details])
&gt; We have TRACE_COUNTER_ID2 where you can do stuff like &quot;bytesAllocated,bytesFree&quot; and get both into a single counter. Can we pile this into there so we have 1 counter rather than 3? If we need support for 3-value counters, its all supported and we just need to add it to the trace_event macros .... jbates can help there.

Yep, done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578847</commentid>
    <comment_count>5</comment_count>
      <attachid>131933</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-14 15:24:40 -0700</bug_when>
    <thetext>Created attachment 131933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578900</commentid>
    <comment_count>6</comment_count>
      <attachid>131951</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-14 16:16:09 -0700</bug_when>
    <thetext>Created attachment 131951
Patch

Using a single event to record both opaque/translucent pixel counts. Tested this out with about:tracing and it seems pretty reasonable, you can drill in and find pixel counts when you need to, until something better in the about:tracing system comes along.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579442</commentid>
    <comment_count>7</comment_count>
      <attachid>131951</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-15 09:29:54 -0700</bug_when>
    <thetext>Comment on attachment 131951
Patch

R=me.  Why counter+event rather than three counters? That seems reasonable too, but I&apos;m just curious why the change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579443</commentid>
    <comment_count>8</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-15 09:31:46 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 131951 [details])
&gt; R=me.  Why counter+event rather than three counters? That seems reasonable too, but I&apos;m just curious why the change?

Nat was concerned about too many bars on about:tracing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579964</commentid>
    <comment_count>9</comment_count>
      <attachid>131951</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 17:45:43 -0700</bug_when>
    <thetext>Comment on attachment 131951
Patch

Clearing flags on attachment: 131951

Committed r110921: &lt;http://trac.webkit.org/changeset/110921&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579965</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 17:45:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131919</attachid>
            <date>2012-03-14 14:01:22 -0700</date>
            <delta_ts>2012-03-14 15:24:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81156-20120314170120.patch</filename>
            <type>text/plain</type>
            <size>34300</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY1MzIwYTc4Y2JjZTk5
ZGM1ZTEwMmU0YWIzMmMxNTI1NDEzNjNmYS4uNmU5YTFlZTg0ODZmMzgwNjU0MGNjZjM5MmVlMDM0
OGNjYzk4ZGNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAzLTE0ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gTW92
ZSBvdmVyZHJhdyBtZXRyaWNzIGludG8gYSB0ZW1wbGF0ZWQgY2xhc3MgZm9yIGJvdGggcGFpbnQg
YW5kIGRyYXcgbWV0cmljcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgxMTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OmNh
bGN1bGF0ZVJlbmRlclBhc3Nlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NPdmVyZHJhd01ldHJpY3MuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKENDT3ZlcmRyYXdNZXRyaWNzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdN
ZXRyaWNzOjpwaXhlbHNEcmF3bk9wYXF1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ092ZXJkcmF3
TWV0cmljczo6cGl4ZWxzRHJhd25UcmFuc2x1Y2VudCk6CisgICAgICAgIChXZWJDb3JlOjpDQ092
ZXJkcmF3TWV0cmljczo6cGl4ZWxzQ3VsbGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NRdWFk
Q3VsbGVyOjpDQ1F1YWRDdWxsZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NRdWFkQ3VsbGVyOjph
cHBlbmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1
bGxlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDQ1F1YWRDdWxsZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ1JlbmRlclBhc3M6OmFwcGVuZFF1YWRzRm9yTGF5ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5oOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDQ1JlbmRlclBhc3MpOgorCiAyMDEyLTAzLTE0ICBT
aW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRd
IFJ1bkxvb3BRdCBpcyBtaXNzaW5nIHJlZW50cmFuY3kgZ3VhcmRzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGVmODBkYTE2ZGNiODFkYjBlZWQ2MjBjNDgxODc4NzljOTNlZDE4ZDEuLmI5
NTg3Mjk2YjFjZTU2NzEzOTcwYzM4MTY1OTAzZGQzNDE1MGY4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMTQgIERhbmEgSmFuc2VucyAgPGRh
bmFrakBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBNb3ZlIG92ZXJkcmF3IG1l
dHJpY3MgaW50byBhIHRlbXBsYXRlZCBjbGFzcyBmb3IgYm90aCBwYWludCBhbmQgZHJhdyBtZXRy
aWNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEx
NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRl
c3RzL0NDUXVhZEN1bGxlclRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kUXVhZHMp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKwogMjAxMi0w
My0xMyAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkLCBtYXJrIHZlcmlmeUN1bGxDaGlsZExpbmVzVXBUb3BMZWZ0KCkgYXMgZmFpbGVk
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDU3MTJmZDQ0MWI1MWMyNDZmYmY5MWVhZmExOGQ4YTI5YzQx
MWI4ZGUuLmZiMWY0YmZiYzZkYTAyZWI0MjU0ZDcyOWI4MDM0NjY2ZDYxNTZkMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTM0NzksNiArMzQ3OSw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNr
ZXIuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPdmVy
ZHJhd01ldHJpY3MuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ092ZXJkcmF3TWV0cmljcy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1BhZ2VTY2FsZUFuaW1hdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUGFnZVNjYWxlQW5pbWF0aW9uLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUGx1Z2luRHJhd1F1YWQu
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKaW5kZXggNWM3ZjU2
NWY3ZDEyYzFiNjg1NTkwZWQxNjc3M2RhMmMwZmVhODY1ZC4uYjliM2E0NmE0Yzg4YzM0OTJiMWNk
NTAxNGUyMTA2NjhjYzk5NjM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1w
bC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJjYy9DQ0xheWVySXRlcmF0b3IuaCIK
ICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJl
ZUhvc3RDb21tb24uaCIKKyNpbmNsdWRlICJjYy9DQ092ZXJkcmF3TWV0cmljcy5oIgogI2luY2x1
ZGUgImNjL0NDUGFnZVNjYWxlQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiY2MvQ0NSZW5kZXJTdXJm
YWNlRHJhd1F1YWQuaCIKICNpbmNsdWRlICJjYy9DQ1RocmVhZFRhc2suaCIKQEAgLTI2MCw3ICsy
NjEsNyBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmNhbGN1bGF0ZVJlbmRlclBhc3NlcyhD
Q1JlbmRlclBhc3NMaXN0JiBwYXNzZXMsIENDTGF5ZQogICAgIH0KIAogICAgIC8vIEZJWE1FOiBj
b21wdXRlIG92ZXJkcmF3IG1ldHJpY3Mgb25seSBvY2Nhc2lvbmFsbHksIG5vdCBldmVyeSBmcmFt
ZS4KLSAgICBDQ092ZXJkcmF3Q291bnRzIG92ZXJkcmF3Q291bnRzOworICAgIENDT3ZlcmRyYXdN
ZXRyaWNzIG92ZXJkcmF3TWV0cmljczsKIAogICAgIEludFJlY3Qgc2Npc3NvclJlY3Q7CiAgICAg
aWYgKGxheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMoKS51c2luZ1BhcnRpYWxTd2FwKQpAQCAtMjk1
LDE0ICsyOTYsMTEgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjYWxjdWxhdGVSZW5kZXJQ
YXNzZXMoQ0NSZW5kZXJQYXNzTGlzdCYgcGFzc2VzLCBDQ0xheWUKICAgICAgICAgfQogCiAgICAg
ICAgIGl0LT53aWxsRHJhdyhtX2xheWVyUmVuZGVyZXIuZ2V0KCkpOwotICAgICAgICBwYXNzLT5h
cHBlbmRRdWFkc0ZvckxheWVyKCppdCwgJm9jY2x1c2lvblRyYWNrZXIsICZvdmVyZHJhd0NvdW50
cyk7CisgICAgICAgIHBhc3MtPmFwcGVuZFF1YWRzRm9yTGF5ZXIoKml0LCAmb2NjbHVzaW9uVHJh
Y2tlciwgJm92ZXJkcmF3TWV0cmljcyk7CiAgICAgICAgIG9jY2x1c2lvblRyYWNrZXIubWFya09j
Y2x1ZGVkQmVoaW5kTGF5ZXIoKml0KTsKICAgICB9CiAKLSAgICBmbG9hdCBub3JtYWxpemF0aW9u
ID0gMTAwMC5mIC8gKG1fbGF5ZXJSZW5kZXJlci0+dmlld3BvcnRXaWR0aCgpICogbV9sYXllclJl
bmRlcmVyLT52aWV3cG9ydEhlaWdodCgpKTsKLSAgICBQbGF0Zm9ybVN1cHBvcnQ6Omhpc3RvZ3Jh
bUN1c3RvbUNvdW50cygiUmVuZGVyZXI0LnBpeGVsT3ZlcmRyYXdPcGFxdWUiLCBzdGF0aWNfY2Fz
dDxpbnQ+KG5vcm1hbGl6YXRpb24gKiBvdmVyZHJhd0NvdW50cy5tX3BpeGVsc0RyYXduT3BhcXVl
KSwgMTAwLCAxMDAwMDAwLCA1MCk7Ci0gICAgUGxhdGZvcm1TdXBwb3J0OjpoaXN0b2dyYW1DdXN0
b21Db3VudHMoIlJlbmRlcmVyNC5waXhlbE92ZXJkcmF3VHJhbnNwYXJlbnQiLCBzdGF0aWNfY2Fz
dDxpbnQ+KG5vcm1hbGl6YXRpb24gKiBvdmVyZHJhd0NvdW50cy5tX3BpeGVsc0RyYXduVHJhbnNw
YXJlbnQpLCAxMDAsIDEwMDAwMDAsIDUwKTsKLSAgICBQbGF0Zm9ybVN1cHBvcnQ6Omhpc3RvZ3Jh
bUN1c3RvbUNvdW50cygiUmVuZGVyZXI0LnBpeGVsT3ZlcmRyYXdDdWxsZWQiLCBzdGF0aWNfY2Fz
dDxpbnQ+KG5vcm1hbGl6YXRpb24gKiBvdmVyZHJhd0NvdW50cy5tX3BpeGVsc0N1bGxlZCksIDEw
MCwgMTAwMDAwMCwgNTApOworICAgIG92ZXJkcmF3TWV0cmljcy5yZWNvcmRNZXRyaWNzKHRoaXMp
OwogfQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmFuaW1hdGVMYXllcnNSZWN1cnNpdmUo
Q0NMYXllckltcGwqIGN1cnJlbnQsIGRvdWJsZSBtb25vdG9uaWNUaW1lLCBkb3VibGUgd2FsbENs
b2NrVGltZSwgQ0NBbmltYXRpb25FdmVudHNWZWN0b3ImIGV2ZW50cywgYm9vbCYgZGlkQW5pbWF0
ZSwgYm9vbCYgbmVlZHNBbmltYXRlTGF5ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPdmVyZHJhd01ldHJpY3MuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPdmVyZHJhd01ldHJp
Y3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYyYmRmZTNhNDg0MWZhYWVkYjM5NTk3ZjQ3YmQ5Njc3YzA3YjIy
YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ092ZXJkcmF3TWV0cmljcy5jcHAKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKKworI2luY2x1ZGUgImNjL0NDT3ZlcmRyYXdNZXRyaWNzLmgiCisKKyNpbmNsdWRl
ICJGbG9hdFF1YWQuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiVHJhY2VFdmVu
dC5oIgorI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCisjaW5jbHVkZSAiY2MvQ0NM
YXllclRyZWVIb3N0LmgiCisjaW5jbHVkZSAiY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0NDT3ZlcmRyYXdNZXRyaWNzOjpDQ092ZXJkcmF3TWV0cmlj
cygpCisgICAgOiBtX3BpeGVsc0RyYXduT3BhcXVlKDApCisgICAgLCBtX3BpeGVsc0RyYXduVHJh
bnNsdWNlbnQoMCkKKyAgICAsIG1fcGl4ZWxzQ3VsbGVkKDApCit7Cit9CisKK3N0YXRpYyBpbmxp
bmUgZmxvYXQgd2VkZ2VQcm9kdWN0KGNvbnN0IEZsb2F0UG9pbnQmIHAxLCBjb25zdCBGbG9hdFBv
aW50JiBwMikKK3sKKyAgICByZXR1cm4gcDEueCgpICogcDIueSgpIC0gcDEueSgpICogcDIueCgp
OworfQorCisvLyBDb21wdXRlcyBhcmVhIG9mIHF1YWRzIHRoYXQgYXJlIHBvc3NpYmx5IG5vbi1y
ZWN0YW5ndWxhci4gQ2FuIGJlIGVhc2lseSBleHRlbmRlZCB0byBwb2x5Z29ucy4KK3N0YXRpYyBp
bmxpbmUgZmxvYXQgcXVhZEFyZWEoY29uc3QgRmxvYXRRdWFkJiBxdWFkKQoreworICAgIHJldHVy
biBmYWJzKDAuNSAqICh3ZWRnZVByb2R1Y3QocXVhZC5wMSgpLCBxdWFkLnAyKCkpICsKKyAgICAg
ICAgICAgICAgICAgICAgICAgd2VkZ2VQcm9kdWN0KHF1YWQucDIoKSwgcXVhZC5wMygpKSArCisg
ICAgICAgICAgICAgICAgICAgICAgIHdlZGdlUHJvZHVjdChxdWFkLnAzKCksIHF1YWQucDQoKSkg
KworICAgICAgICAgICAgICAgICAgICAgICB3ZWRnZVByb2R1Y3QocXVhZC5wNCgpLCBxdWFkLnAx
KCkpKSk7Cit9CisKK3ZvaWQgQ0NPdmVyZHJhd01ldHJpY3M6OmRpZERyYXcoY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybVRvVGFyZ2V0LCBjb25zdCBJbnRSZWN0JiBiZWZvcmVD
dWxsUmVjdCwgY29uc3QgSW50UmVjdCYgYWZ0ZXJDdWxsUmVjdCwgY29uc3QgSW50UmVjdCYgb3Bh
cXVlUmVjdCkKK3sKKyAgICBmbG9hdCBiZWZvcmVDdWxsQXJlYSA9IHF1YWRBcmVhKHRyYW5zZm9y
bVRvVGFyZ2V0Lm1hcFF1YWQoRmxvYXRRdWFkKGJlZm9yZUN1bGxSZWN0KSkpOworICAgIGZsb2F0
IGFmdGVyQ3VsbEFyZWEgPSBxdWFkQXJlYSh0cmFuc2Zvcm1Ub1RhcmdldC5tYXBRdWFkKEZsb2F0
UXVhZChhZnRlckN1bGxSZWN0KSkpOworICAgIGZsb2F0IGFmdGVyQ3VsbE9wYXF1ZUFyZWEgPSBx
dWFkQXJlYSh0cmFuc2Zvcm1Ub1RhcmdldC5tYXBRdWFkKEZsb2F0UXVhZChpbnRlcnNlY3Rpb24o
b3BhcXVlUmVjdCwgYWZ0ZXJDdWxsUmVjdCkpKSk7CisKKyAgICBtX3BpeGVsc0RyYXduT3BhcXVl
ICs9IGFmdGVyQ3VsbE9wYXF1ZUFyZWE7CisgICAgbV9waXhlbHNEcmF3blRyYW5zbHVjZW50ICs9
IGFmdGVyQ3VsbEFyZWEgLSBhZnRlckN1bGxPcGFxdWVBcmVhOworICAgIG1fcGl4ZWxzQ3VsbGVk
ICs9IGJlZm9yZUN1bGxBcmVhIC0gYWZ0ZXJDdWxsQXJlYTsKK30KKwordm9pZCBDQ092ZXJkcmF3
TWV0cmljczo6cmVjb3JkTWV0cmljcyhjb25zdCBDQ0xheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhv
c3QpIGNvbnN0Cit7CisgICAgcmVjb3JkTWV0cmljc0ludGVybmFsPENDTGF5ZXJUcmVlSG9zdD4o
UEFJTlRJTkcsIGxheWVyVHJlZUhvc3QpOworfQorCit2b2lkIENDT3ZlcmRyYXdNZXRyaWNzOjpy
ZWNvcmRNZXRyaWNzKGNvbnN0IENDTGF5ZXJUcmVlSG9zdEltcGwqIGxheWVyVHJlZUhvc3QpIGNv
bnN0Cit7CisgICAgcmVjb3JkTWV0cmljc0ludGVybmFsPENDTGF5ZXJUcmVlSG9zdEltcGw+KERS
QVdJTkcsIGxheWVyVHJlZUhvc3QpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBMYXllclRyZWVI
b3N0VHlwZT4KK3ZvaWQgQ0NPdmVyZHJhd01ldHJpY3M6OnJlY29yZE1ldHJpY3NJbnRlcm5hbChN
ZXRyaWNzVHlwZSBtZXRyaWNzVHlwZSwgY29uc3QgTGF5ZXJUcmVlSG9zdFR5cGUqIGxheWVyVHJl
ZUhvc3QpIGNvbnN0Cit7CisgICAgY29uc3QgY2hhciogaGlzdG9ncmFtT3BhcXVlTmFtZSA9IDA7
CisgICAgY29uc3QgY2hhciogaGlzdG9ncmFtVHJhbnNsdWNlbnROYW1lID0gMDsKKyAgICBjb25z
dCBjaGFyKiBoaXN0b2dyYW1DdWxsZWROYW1lID0gMDsKKyAgICBjb25zdCBjaGFyKiBjb3VudGVy
T3BhcXVlTmFtZSA9IDA7CisgICAgY29uc3QgY2hhciogY291bnRlclRyYW5zbHVjZW50TmFtZSA9
IDA7CisgICAgY29uc3QgY2hhciogY291bnRlckN1bGxlZE5hbWUgPSAwOworICAgIHN3aXRjaCAo
bWV0cmljc1R5cGUpIHsKKyAgICBjYXNlIERSQVdJTkc6CisgICAgICAgIGhpc3RvZ3JhbU9wYXF1
ZU5hbWUgPSAiUmVuZGVyZXI0LmRyYXdQaXhlbENvdW50T3BhcXVlIjsKKyAgICAgICAgaGlzdG9n
cmFtVHJhbnNsdWNlbnROYW1lID0gIlJlbmRlcmVyNC5kcmF3UGl4ZWxDb3VudFRyYW5zbHVjZW50
IjsKKyAgICAgICAgaGlzdG9ncmFtQ3VsbGVkTmFtZSA9ICJSZW5kZXJlcjQuZHJhd1BpeGVsQ291
bnRDdWxsZWQiOworICAgICAgICBjb3VudGVyT3BhcXVlTmFtZSA9ICJkcmF3UGl4ZWxDb3VudE9w
YXF1ZSI7CisgICAgICAgIGNvdW50ZXJUcmFuc2x1Y2VudE5hbWUgPSAiZHJhd1BpeGVsQ291bnRU
cmFuc2x1Y2VudCI7CisgICAgICAgIGNvdW50ZXJDdWxsZWROYW1lID0gImRyYXdQaXhlbENvdW50
Q3VsbGVkIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQQUlOVElORzoKKyAgICAgICAgaGlz
dG9ncmFtT3BhcXVlTmFtZSA9ICJSZW5kZXJlcjQucGFpbnRQaXhlbENvdW50T3BhcXVlIjsKKyAg
ICAgICAgaGlzdG9ncmFtVHJhbnNsdWNlbnROYW1lID0gIlJlbmRlcmVyNC5wYWludFBpeGVsQ291
bnRUcmFuc2x1Y2VudCI7CisgICAgICAgIGhpc3RvZ3JhbUN1bGxlZE5hbWUgPSAiUmVuZGVyZXI0
LnBhaW50UGl4ZWxDb3VudEN1bGxlZCI7CisgICAgICAgIGNvdW50ZXJPcGFxdWVOYW1lID0gInBh
aW50UGl4ZWxDb3VudE9wYXF1ZSI7CisgICAgICAgIGNvdW50ZXJUcmFuc2x1Y2VudE5hbWUgPSAi
cGFpbnRQaXhlbENvdW50VHJhbnNsdWNlbnQiOworICAgICAgICBjb3VudGVyQ3VsbGVkTmFtZSA9
ICJwYWludFBpeGVsQ291bnRDdWxsZWQiOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgQVNT
RVJUKGhpc3RvZ3JhbU9wYXF1ZU5hbWUpOworCisgICAgZmxvYXQgbm9ybWFsaXphdGlvbiA9IDEw
MDAuZiAvIChsYXllclRyZWVIb3N0LT52aWV3cG9ydFNpemUoKS53aWR0aCgpICogbGF5ZXJUcmVl
SG9zdC0+dmlld3BvcnRTaXplKCkuaGVpZ2h0KCkpOworICAgIFBsYXRmb3JtU3VwcG9ydDo6aGlz
dG9ncmFtQ3VzdG9tQ291bnRzKGhpc3RvZ3JhbU9wYXF1ZU5hbWUsIHN0YXRpY19jYXN0PGludD4o
bm9ybWFsaXphdGlvbiAqIG1fcGl4ZWxzRHJhd25PcGFxdWUpLCAxMDAsIDEwMDAwMDAsIDUwKTsK
KyAgICBQbGF0Zm9ybVN1cHBvcnQ6Omhpc3RvZ3JhbUN1c3RvbUNvdW50cyhoaXN0b2dyYW1UcmFu
c2x1Y2VudE5hbWUsIHN0YXRpY19jYXN0PGludD4obm9ybWFsaXphdGlvbiAqIG1fcGl4ZWxzRHJh
d25UcmFuc2x1Y2VudCksIDEwMCwgMTAwMDAwMCwgNTApOworICAgIFBsYXRmb3JtU3VwcG9ydDo6
aGlzdG9ncmFtQ3VzdG9tQ291bnRzKGhpc3RvZ3JhbUN1bGxlZE5hbWUsIHN0YXRpY19jYXN0PGlu
dD4obm9ybWFsaXphdGlvbiAqIG1fcGl4ZWxzQ3VsbGVkKSwgMTAwLCAxMDAwMDAwLCA1MCk7CisK
KyAgICBUUkFDRV9DT1VOVEVSX0lEMSgid2Via2l0IiwgY291bnRlck9wYXF1ZU5hbWUsIGxheWVy
VHJlZUhvc3QsIG1fcGl4ZWxzRHJhd25PcGFxdWUpOworICAgIFRSQUNFX0NPVU5URVJfSUQxKCJ3
ZWJraXQiLCBjb3VudGVyVHJhbnNsdWNlbnROYW1lLCBsYXllclRyZWVIb3N0LCBtX3BpeGVsc0Ry
YXduVHJhbnNsdWNlbnQpOworICAgIFRSQUNFX0NPVU5URVJfSUQxKCJ3ZWJraXQiLCBjb3VudGVy
Q3VsbGVkTmFtZSwgbGF5ZXJUcmVlSG9zdCwgbV9waXhlbHNDdWxsZWQpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPdmVyZHJhd01ldHJpY3MuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2Y3MjM1Nzg1ZWNhNmZiZDI2MjMyY2YyZjJkOGNmYzNhNTg0M2RlMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBDQ092ZXJkcmF3TWV0cmljc19oCisjZGVmaW5lIENDT3ZlcmRyYXdNZXRyaWNzX2gK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSW50UmVjdDsKK2NsYXNzIFRyYW5zZm9ybWF0
aW9uTWF0cml4OworY2xhc3MgQ0NMYXllclRyZWVIb3N0OworY2xhc3MgQ0NMYXllclRyZWVIb3N0
SW1wbDsKKworY2xhc3MgQ0NPdmVyZHJhd01ldHJpY3MgeworcHVibGljOgorICAgIENDT3ZlcmRy
YXdNZXRyaWNzKCk7CisKKyAgICB2b2lkIGRpZERyYXcoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIHRyYW5zZm9ybVRvVGFyZ2V0LCBjb25zdCBJbnRSZWN0JiBiZWZvcmVDdWxsUmVjdCwgY29u
c3QgSW50UmVjdCYgYWZ0ZXJDdWxsUmVjdCwgY29uc3QgSW50UmVjdCYgb3BhcXVlUmVjdCk7CisK
KyAgICB2b2lkIHJlY29yZE1ldHJpY3MoY29uc3QgQ0NMYXllclRyZWVIb3N0KikgY29uc3Q7Cisg
ICAgdm9pZCByZWNvcmRNZXRyaWNzKGNvbnN0IENDTGF5ZXJUcmVlSG9zdEltcGwqKSBjb25zdDsK
KworICAgIC8vIEFjY2Vzc29ycyBmb3IgdGVzdHMuCisgICAgZmxvYXQgcGl4ZWxzRHJhd25PcGFx
dWUoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsc0RyYXduT3BhcXVlOyB9CisgICAgZmxvYXQgcGl4
ZWxzRHJhd25UcmFuc2x1Y2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxzRHJhd25UcmFuc2x1
Y2VudDsgfQorICAgIGZsb2F0IHBpeGVsc0N1bGxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxz
Q3VsbGVkOyB9CisKK3ByaXZhdGU6CisgICAgZW51bSBNZXRyaWNzVHlwZSB7CisgICAgICAgIERS
QVdJTkcsCisgICAgICAgIFBBSU5USU5HCisgICAgfTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IExheWVyVHJlZUhvc3RUeXBlPgorICAgIHZvaWQgcmVjb3JkTWV0cmljc0ludGVybmFsKE1ldHJp
Y3NUeXBlLCBjb25zdCBMYXllclRyZWVIb3N0VHlwZSopIGNvbnN0OworCisgICAgLy8gQ291bnQg
b2YgcGl4ZWxzIHRoYXQgYXJlIG9wYXF1ZSAoYW5kIHRodXMgb2NjbHVkZSkuIElkZWFsbHkgdGhp
cyBpcyBubyBtb3JlCisgICAgLy8gdGhhbiB3aWV3cG9ydCB3aWR0aCB4IGhlaWdodC4KKyAgICBm
bG9hdCBtX3BpeGVsc0RyYXduT3BhcXVlOworICAgIC8vIENvdW50IG9mIHBpeGVscyB0aGF0IGFy
ZSBwb3NzaWJseSB0cmFuc2x1Y2VudCwgYW5kIGNhbm5vdCBvY2NsdWRlLgorICAgIGZsb2F0IG1f
cGl4ZWxzRHJhd25UcmFuc2x1Y2VudDsKKyAgICAvLyBDb3VudCBvZiBwaXhlbHMgbm90IGRyYXdu
IGFzIHRoZXkgYXJlIG9jY2x1ZGVkIGJ5IHNvbXRoaW5nIG9wYXF1ZS4KKyAgICBmbG9hdCBtX3Bp
eGVsc0N1bGxlZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1
YWRDdWxsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NRdWFkQ3VsbGVyLmNwcAppbmRleCBmN2I1NmI5ZmNkNTQ0NGEwMWJmMzMxZjc1ZGU0MzE0
MmFlNWRjNmUxLi5iMWViMTgzZWJiNjVmNDgyOTA3NWY5ZWYxNjM3NjM4NGU0NjY1OThlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1
YWRDdWxsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDUXVhZEN1bGxlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJSZWdp
b24uaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgImNjL0ND
TGF5ZXJJbXBsLmgiCisjaW5jbHVkZSAiY2MvQ0NPdmVyZHJhd01ldHJpY3MuaCIKICNpbmNsdWRl
ICJjYy9DQ1JlbmRlclBhc3MuaCIKICNpbmNsdWRlICJjYy9DQ1JlbmRlclN1cmZhY2VEcmF3UXVh
ZC5oIgogCkBAIC0zOSwyOSArNDAsMTQgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1DQ1F1YWRDdWxsZXI6OkNDUXVhZEN1bGxlcihDQ1F1YWRMaXN0JiBx
dWFkTGlzdCwgQ0NMYXllckltcGwqIGxheWVyLCBDQ09jY2x1c2lvblRyYWNrZXJJbXBsKiBvY2Ns
dXNpb25UcmFja2VyLCBDQ092ZXJkcmF3Q291bnRzKiBvdmVyZHJhd0NvdW50cykKK0NDUXVhZEN1
bGxlcjo6Q0NRdWFkQ3VsbGVyKENDUXVhZExpc3QmIHF1YWRMaXN0LCBDQ0xheWVySW1wbCogbGF5
ZXIsIENDT2NjbHVzaW9uVHJhY2tlckltcGwqIG9jY2x1c2lvblRyYWNrZXIsIENDT3ZlcmRyYXdN
ZXRyaWNzKiBvdmVyZHJhd01ldHJpY3MpCiAgICAgOiBtX3F1YWRMaXN0KHF1YWRMaXN0KQogICAg
ICwgbV9sYXllcihsYXllcikKICAgICAsIG1fb2NjbHVzaW9uVHJhY2tlcihvY2NsdXNpb25UcmFj
a2VyKQotICAgICwgbV9vdmVyZHJhd0NvdW50cyhvdmVyZHJhd0NvdW50cykKKyAgICAsIG1fb3Zl
cmRyYXdNZXRyaWNzKG92ZXJkcmF3TWV0cmljcykKIHsKIH0KIAotc3RhdGljIGZsb2F0IHdlZGdl
UHJvZHVjdChjb25zdCBGbG9hdFBvaW50JiBwMSwgY29uc3QgRmxvYXRQb2ludCYgcDIpCi17Ci0g
ICAgcmV0dXJuIHAxLngoKSAqIHAyLnkoKSAtIHAxLnkoKSAqIHAyLngoKTsKLX0KLQotLy8gQ29t
cHV0ZXMgYXJlYSBvZiBxdWFkcyB0aGF0IGFyZSBwb3NzaWJseSBub24tcmVjdGFuZ3VsYXIuIENh
bgotLy8gYmUgZWFzaWx5IGV4dGVuZGVkIHRvIHBvbHlnb25zLgotc3RhdGljIGZsb2F0IHF1YWRB
cmVhKGNvbnN0IEZsb2F0UXVhZCYgcXVhZCkKLXsKLSAgICByZXR1cm4gZmFicygwLjUgKiAod2Vk
Z2VQcm9kdWN0KHF1YWQucDEoKSwgcXVhZC5wMigpKSArCi0gICAgICAgICAgICAgICAgICAgd2Vk
Z2VQcm9kdWN0KHF1YWQucDIoKSwgcXVhZC5wMygpKSArCi0gICAgICAgICAgICAgICAgICAgd2Vk
Z2VQcm9kdWN0KHF1YWQucDMoKSwgcXVhZC5wNCgpKSArCi0gICAgICAgICAgICAgICAgICAgd2Vk
Z2VQcm9kdWN0KHF1YWQucDQoKSwgcXVhZC5wMSgpKSkpOwotfQotCiB2b2lkIENDUXVhZEN1bGxl
cjo6YXBwZW5kKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkKQogewogICAgIE93
blB0cjxDQ0RyYXdRdWFkPiBkcmF3UXVhZChwYXNzRHJhd1F1YWQpOwpAQCAtNzAsMzAgKzU2LDEw
IEBAIHZvaWQgQ0NRdWFkQ3VsbGVyOjphcHBlbmQoUGFzc093blB0cjxDQ0RyYXdRdWFkPiBwYXNz
RHJhd1F1YWQpCiAgICAgaWYgKGtlZXBRdWFkKQogICAgICAgICBkcmF3UXVhZC0+c2V0UXVhZFZp
c2libGVSZWN0KGN1bGxlZFJlY3QpOwogCi0gICAgLy8gRklYTUU6IE1ha2UgYSB0ZW1wbGF0ZWQg
bWV0cmljcyBjbGFzcyBhbmQgbW92ZSB0aGUgbG9naWMgb3V0IHRvIHRoZXJlLgotICAgIC8vIFRl
bXBvcmFyeSBjb2RlIGFueXdheXMsIGluZGVudGVkIHRvIG1ha2UgdGhlIGRpZmYgY2xlYXIuCi0g
ICAgewotICAgICAgICBpZiAobV9vdmVyZHJhd0NvdW50cykgewotICAgICAgICAgICAgLy8gV2Ug
Y29tcHV0ZSB0aGUgYXJlYSBvZiB0aGUgdHJhbnNmb3JtZWQgcXVhZCwgYXMgdGhpcyBzaG91bGQg
YmUgaW4gcGl4ZWxzLgotICAgICAgICAgICAgZmxvYXQgYXJlYSA9IHF1YWRBcmVhKGRyYXdRdWFk
LT5xdWFkVHJhbnNmb3JtKCkubWFwUXVhZChGbG9hdFF1YWQoZHJhd1F1YWQtPnF1YWRSZWN0KCkp
KSk7Ci0gICAgICAgICAgICBpZiAoa2VlcFF1YWQpIHsKLSAgICAgICAgICAgICAgICBib29sIGRp
ZFJlZHVjZVF1YWRTaXplID0gY3VsbGVkUmVjdCAhPSBkcmF3UXVhZC0+cXVhZFJlY3QoKTsKLSAg
ICAgICAgICAgICAgICBpZiAoZGlkUmVkdWNlUXVhZFNpemUpIHsKLSAgICAgICAgICAgICAgICAg
ICAgZmxvYXQgdmlzaWJsZVF1YWRSZWN0QXJlYSA9IHF1YWRBcmVhKGRyYXdRdWFkLT5xdWFkVHJh
bnNmb3JtKCkubWFwUXVhZChGbG9hdFF1YWQoZHJhd1F1YWQtPnF1YWRWaXNpYmxlUmVjdCgpKSkp
OwotICAgICAgICAgICAgICAgICAgICBtX292ZXJkcmF3Q291bnRzLT5tX3BpeGVsc0N1bGxlZCAr
PSBhcmVhIC0gdmlzaWJsZVF1YWRSZWN0QXJlYTsKLSAgICAgICAgICAgICAgICAgICAgYXJlYSA9
IHZpc2libGVRdWFkUmVjdEFyZWE7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IEludFJlY3QgdmlzaWJsZU9wYXF1ZVJlY3QoZHJhd1F1YWQtPnF1YWRWaXNpYmxlUmVjdCgpKTsK
LSAgICAgICAgICAgICAgICB2aXNpYmxlT3BhcXVlUmVjdC5pbnRlcnNlY3QoZHJhd1F1YWQtPm9w
YXF1ZVJlY3QoKSk7Ci0gICAgICAgICAgICAgICAgRmxvYXRRdWFkIHZpc2libGVPcGFxdWVRdWFk
ID0gZHJhd1F1YWQtPnF1YWRUcmFuc2Zvcm0oKS5tYXBRdWFkKEZsb2F0UXVhZCh2aXNpYmxlT3Bh
cXVlUmVjdCkpOwotICAgICAgICAgICAgICAgIGZsb2F0IG9wYXF1ZUFyZWEgPSBxdWFkQXJlYSh2
aXNpYmxlT3BhcXVlUXVhZCk7Ci0gICAgICAgICAgICAgICAgbV9vdmVyZHJhd0NvdW50cy0+bV9w
aXhlbHNEcmF3bk9wYXF1ZSArPSBvcGFxdWVBcmVhOwotICAgICAgICAgICAgICAgIG1fb3ZlcmRy
YXdDb3VudHMtPm1fcGl4ZWxzRHJhd25UcmFuc3BhcmVudCArPSBhcmVhIC0gb3BhcXVlQXJlYTsK
LSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIG1fb3ZlcmRyYXdDb3VudHMtPm1f
cGl4ZWxzQ3VsbGVkICs9IGFyZWE7Ci0gICAgICAgIH0KLSAgICB9CisgICAgaWYgKG1fb3ZlcmRy
YXdNZXRyaWNzKQorICAgICAgICBtX292ZXJkcmF3TWV0cmljcy0+ZGlkRHJhdyhkcmF3UXVhZC0+
cXVhZFRyYW5zZm9ybSgpLCBkcmF3UXVhZC0+cXVhZFJlY3QoKSwgY3VsbGVkUmVjdCwgZHJhd1F1
YWQtPm9wYXF1ZVJlY3QoKSk7CiAKKyAgICAvLyBSZWxlYXNlIHRoZSBxdWFkIGFmdGVyIHdlJ3Jl
IGRvbmUgdXNpbmcgaXQuCiAgICAgaWYgKGtlZXBRdWFkKQogICAgICAgICBtX3F1YWRMaXN0LmFw
cGVuZChkcmF3UXVhZC5yZWxlYXNlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuaAppbmRleCA5
YzE3YWE4NzRiNGYwZmQ3NGY3M2JhYWEzYzZiMGFmZGE5N2ExN2ZjLi45NzY3YmFlMzEyYzY5ZWJh
NDZlYTZkOWYwMmE4N2QxN2EwZDgxNmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuaApAQCAtMzAs
MTIgKzMwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENDTGF5ZXJJbXBsOwor
Y2xhc3MgQ0NPdmVyZHJhd01ldHJpY3M7CiAKIGNsYXNzIENDUXVhZEN1bGxlciB7CiBwdWJsaWM6
CiAgICAgLy8gUGFzc2luZyAwIGZvciBDQ092ZXJkcmF3Q291bnRzKiBpcyB2YWxpZCwgYW5kIGRp
c2FibGUgdGhlIGV4dHJhIGNvbXB1dGF0aW9uCiAgICAgLy8gZG9uZSB0byBlc3RpbWF0ZSBvdmVy
IGRyYXcgc3RhdGlzdGljcy4KLSAgICBDQ1F1YWRDdWxsZXIoQ0NRdWFkTGlzdCYsIENDTGF5ZXJJ
bXBsKiwgQ0NPY2NsdXNpb25UcmFja2VySW1wbCosIENDT3ZlcmRyYXdDb3VudHMqKTsKKyAgICBD
Q1F1YWRDdWxsZXIoQ0NRdWFkTGlzdCYsIENDTGF5ZXJJbXBsKiwgQ0NPY2NsdXNpb25UcmFja2Vy
SW1wbCosIENDT3ZlcmRyYXdNZXRyaWNzKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKFBh
c3NPd25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkKTsKIApAQCAtNDMsNyArNDQsNyBAQCBw
cml2YXRlOgogICAgIENDUXVhZExpc3QmIG1fcXVhZExpc3Q7CiAgICAgQ0NMYXllckltcGwqIG1f
bGF5ZXI7CiAgICAgQ0NPY2NsdXNpb25UcmFja2VySW1wbCogbV9vY2NsdXNpb25UcmFja2VyOwot
ICAgIENDT3ZlcmRyYXdDb3VudHMqIG1fb3ZlcmRyYXdDb3VudHM7CisgICAgQ0NPdmVyZHJhd01l
dHJpY3MqIG1fb3ZlcmRyYXdNZXRyaWNzOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5j
cHAKaW5kZXggOGM0MzE4MzUwNjZkZGJmZDg4MDA5M2IxNzlhMmE3OWQ0NTdmNzIxMy4uNzQwMTk5
YTFhMmUzZWJmMmZiMGQyM2MyYzAzNjFmOTBiYjEwZjk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBh
c3MuY3BwCkBAIC00Niw5ICs0Niw5IEBAIENDUmVuZGVyUGFzczo6Q0NSZW5kZXJQYXNzKENDUmVu
ZGVyU3VyZmFjZSogdGFyZ2V0U3VyZmFjZSkKICAgICBBU1NFUlQobV90YXJnZXRTdXJmYWNlKTsK
IH0KIAotdm9pZCBDQ1JlbmRlclBhc3M6OmFwcGVuZFF1YWRzRm9yTGF5ZXIoQ0NMYXllckltcGwq
IGxheWVyLCBDQ09jY2x1c2lvblRyYWNrZXJJbXBsKiBvY2NsdXNpb25UcmFja2VyLCBDQ092ZXJk
cmF3Q291bnRzKiBvdmVyZHJhd0NvdW50cykKK3ZvaWQgQ0NSZW5kZXJQYXNzOjphcHBlbmRRdWFk
c0ZvckxheWVyKENDTGF5ZXJJbXBsKiBsYXllciwgQ0NPY2NsdXNpb25UcmFja2VySW1wbCogb2Nj
bHVzaW9uVHJhY2tlciwgQ0NPdmVyZHJhd01ldHJpY3MqIG92ZXJkcmF3TWV0cmljcykKIHsKLSAg
ICBDQ1F1YWRDdWxsZXIgcXVhZEN1bGxlcihtX3F1YWRMaXN0LCBsYXllciwgb2NjbHVzaW9uVHJh
Y2tlciwgb3ZlcmRyYXdDb3VudHMpOworICAgIENDUXVhZEN1bGxlciBxdWFkQ3VsbGVyKG1fcXVh
ZExpc3QsIGxheWVyLCBvY2NsdXNpb25UcmFja2VyLCBvdmVyZHJhd01ldHJpY3MpOwogCiAgICAg
T3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBzaGFyZWRRdWFkU3RhdGUgPSBsYXllci0+Y3JlYXRl
U2hhcmVkUXVhZFN0YXRlKCk7CiAgICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRDdWxsZXIsIHNo
YXJlZFF1YWRTdGF0ZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5oCmluZGV4IDA5YWMwNzlh
MDU5ODM4ZjQ0ZjY4ZGI1OTlmNTY1ZWQzYzkxODBjYmQuLmUwYWIzZWRhYTkwZjQ1N2U5MzAyNWY0
MTJhNmI5MTRjZTFlOTA0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5oCkBAIC0zNCw2ICszNCw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENDTGF5ZXJJbXBsOworY2xhc3MgQ0NP
dmVyZHJhd01ldHJpY3M7CiBjbGFzcyBDQ1JlbmRlclN1cmZhY2U7CiBjbGFzcyBDQ1NoYXJlZFF1
YWRTdGF0ZTsKIApAQCAtNDksMjggKzUwLDEyIEBAIHB1YmxpYzoKICAgICBpbmxpbmUgY29uc3RC
YWNrVG9Gcm9udEl0ZXJhdG9yIGJhY2tUb0Zyb250RW5kKCkgY29uc3QgeyByZXR1cm4gcmVuZCgp
OyB9CiB9OwogCi1zdHJ1Y3QgQ0NPdmVyZHJhd0NvdW50cyB7Ci0gICAgQ0NPdmVyZHJhd0NvdW50
cygpCi0gICAgICAgOiBtX3BpeGVsc0RyYXduT3BhcXVlKDApCi0gICAgICAgLCBtX3BpeGVsc0Ry
YXduVHJhbnNwYXJlbnQoMCkKLSAgICAgICAsIG1fcGl4ZWxzQ3VsbGVkKDApCi0gICAgewotICAg
IH0KLSAgICAvLyBDb3VudCBvZiBwaXhlbHMgdGhhdCBhcmUgb3BhcXVlIChhbmQgdGh1cyBvY2Ns
dWRlKS4gSWRlYWxseSB0aGlzIGlzIG5vIG1vcmUKLSAgICAvLyB0aGFuIHdpZXdwb3J0IHdpZHRo
IHggaGVpZ2h0LgotICAgIGZsb2F0IG1fcGl4ZWxzRHJhd25PcGFxdWU7Ci0gICAgLy8gQ291bnQg
b2YgcGl4ZWxzIHRoYXQgYXJlIHBvc3NpYmx5IHRyYW5zcGFyZW50LCBhbmQgY2Fubm90IG9jY2x1
ZGUuCi0gICAgZmxvYXQgbV9waXhlbHNEcmF3blRyYW5zcGFyZW50OwotICAgIC8vIENvdW50IG9m
IHBpeGVscyBub3QgZHJhd24gYXMgdGhleSBhcmUgb2NjbHVkZWQgYnkgc29tdGhpbmcgb3BhcXVl
LgotICAgIGZsb2F0IG1fcGl4ZWxzQ3VsbGVkOwotfTsKLQogY2xhc3MgQ0NSZW5kZXJQYXNzIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDQ1JlbmRlclBhc3MpOwogcHVibGljOgogICAgIHN0
YXRpYyBQYXNzT3duUHRyPENDUmVuZGVyUGFzcz4gY3JlYXRlKENDUmVuZGVyU3VyZmFjZSopOwog
Ci0gICAgdm9pZCBhcHBlbmRRdWFkc0ZvckxheWVyKENDTGF5ZXJJbXBsKiwgQ0NPY2NsdXNpb25U
cmFja2VySW1wbCosIENDT3ZlcmRyYXdDb3VudHMqKTsKKyAgICB2b2lkIGFwcGVuZFF1YWRzRm9y
TGF5ZXIoQ0NMYXllckltcGwqLCBDQ09jY2x1c2lvblRyYWNrZXJJbXBsKiwgQ0NPdmVyZHJhd01l
dHJpY3MqKTsKICAgICB2b2lkIGFwcGVuZFF1YWRzRm9yUmVuZGVyU3VyZmFjZUxheWVyKENDTGF5
ZXJJbXBsKik7CiAKICAgICBjb25zdCBDQ1F1YWRMaXN0JiBxdWFkTGlzdCgpIGNvbnN0IHsgcmV0
dXJuIG1fcXVhZExpc3Q7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NRdWFkQ3VsbGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
UXVhZEN1bGxlclRlc3QuY3BwCmluZGV4IDhhMTA0MWE4N2U0NDgwNmIzYzZjNzc0YWMwMDJjZWYx
OWE5NjQ2YzMuLmIyM2FhZWU0YjI1Mzc4NzA3OTgzYTMyYTY2NGFkZDkxMWM4YTc5Y2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NRdWFkQ3VsbGVyVGVzdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1F1YWRDdWxsZXJUZXN0LmNwcApA
QCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNjL0NDUXVhZEN1bGxlci5oIgogCiAjaW5jbHVk
ZSAiY2MvQ0NPY2NsdXNpb25UcmFja2VyLmgiCisjaW5jbHVkZSAiY2MvQ0NPdmVyZHJhd01ldHJp
Y3MuaCIKICNpbmNsdWRlICJjYy9DQ1NpbmdsZVRocmVhZFByb3h5LmgiCiAjaW5jbHVkZSAiY2Mv
Q0NUaWxlZExheWVySW1wbC5oIgogI2luY2x1ZGUgImNjL0NDVGlsZURyYXdRdWFkLmgiCkBAIC03
Nyw3ICs3OCw3IEBAIHN0YXRpYyBQYXNzT3duUHRyPENDVGlsZWRMYXllckltcGw+IG1ha2VMYXll
cihjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZHJhd1RyCiAgICAgcmV0dXJuIGxheWVyLnJl
bGVhc2UoKTsKIH0KIAotc3RhdGljIHZvaWQgYXBwZW5kUXVhZHMoQ0NRdWFkTGlzdCYgcXVhZExp
c3QsIENDVGlsZWRMYXllckltcGwqIGxheWVyLCBDQ09jY2x1c2lvblRyYWNrZXJJbXBsJiBvY2Ns
dXNpb25UcmFja2VyLCBDQ092ZXJkcmF3Q291bnRzJiBvdmVyZHJhdykKK3N0YXRpYyB2b2lkIGFw
cGVuZFF1YWRzKENDUXVhZExpc3QmIHF1YWRMaXN0LCBDQ1RpbGVkTGF5ZXJJbXBsKiBsYXllciwg
Q0NPY2NsdXNpb25UcmFja2VySW1wbCYgb2NjbHVzaW9uVHJhY2tlciwgQ0NPdmVyZHJhd01ldHJp
Y3MmIG92ZXJkcmF3KQogewogICAgIENDUXVhZEN1bGxlciBxdWFkQ3VsbGVyKHF1YWRMaXN0LCBs
YXllciwgJm9jY2x1c2lvblRyYWNrZXIsICZvdmVyZHJhdyk7CiAgICAgT3duUHRyPENDU2hhcmVk
UXVhZFN0YXRlPiBzaGFyZWRRdWFkU3RhdGUgPSBsYXllci0+Y3JlYXRlU2hhcmVkUXVhZFN0YXRl
KCk7CkBAIC04Nyw3ICs4OCw3IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFF1YWRzKENDUXVhZExpc3Qm
IHF1YWRMaXN0LCBDQ1RpbGVkTGF5ZXJJbXBsKiBsYXllciwgQ0NPY2NsdXNpCiAjZGVmaW5lIERF
Q0xBUkVfQU5EX0lOSVRJQUxJWkVfVEVTVF9RVUFEUyAgICAgICAgICAgICAgIFwKICAgICBEZWJ1
Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbDsgICAgICAgICAgICAgICAgICAgICAgXAogICAgIEND
UXVhZExpc3QgcXVhZExpc3Q7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
Q0NPdmVyZHJhd0NvdW50cyBvdmVyZHJhdzsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICBDQ092ZXJkcmF3TWV0cmljcyBvdmVyZHJhdzsgICAgICAgICAgICAgICAgICAgICAgICAgXAog
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGNoaWxkVHJhbnNmb3JtOyAgICAgICAgICAgICAgICBc
CiAgICAgSW50U2l6ZSByb290U2l6ZSA9IEludFNpemUoMzAwLCAzMDApOyAgICAgICAgICAgICAg
IFwKICAgICBJbnRSZWN0IHJvb3RSZWN0ID0gSW50UmVjdChJbnRQb2ludCgpLCByb290U2l6ZSk7
ICAgXApAQCAtMTA1LDkgKzEwNiw5IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Tm9D
dWxsaW5nKQogICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCBjaGlsZExheWVyLmdldCgpLCBvY2Ns
dXNpb25UcmFja2VyLCBvdmVyZHJhdyk7CiAgICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RM
YXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOwogICAgIEVYUEVDVF9FUShx
dWFkTGlzdC5zaXplKCksIDEzdSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNE
cmF3bk9wYXF1ZSwgMTMwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVs
c0RyYXduVHJhbnNwYXJlbnQsIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4
ZWxzQ3VsbGVkLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3bk9w
YXF1ZSgpLCAxMzAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXdu
VHJhbnNsdWNlbnQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3Vs
bGVkKCksIDAsIDEpOwogfQogCiAvLyBGYWlscyBvbiBXaW5kb3dzIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTA4MwpAQCAtMTIzLDkgKzEyNCw5IEBAIFRFU1QoQ0NR
dWFkQ3VsbGVyVGVzdCwgRkFJTFNfdmVyaWZ5Q3VsbENoaWxkTGluZXNVcFRvcExlZnQpCiAgICAg
b2NjbHVzaW9uVHJhY2tlci5tYXJrT2NjbHVkZWRCZWhpbmRMYXllcihjaGlsZExheWVyLmdldCgp
KTsKICAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgpLCBvY2NsdXNpb25U
cmFja2VyLCBvdmVyZHJhdyk7CiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNpemUoKSwgOXUpOwot
ICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25PcGFxdWUsIDkwMDAwLCAxKTsK
LSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduVHJhbnNwYXJlbnQsIDAsIDEp
OwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzQ3VsbGVkLCA0MDAwMCwgMSk7Cisg
ICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25PcGFxdWUoKSwgOTAwMDAsIDEpOwor
ICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7
CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVkKCksIDQwMDAwLCAxKTsKIH0K
IAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsV2hlbkNoaWxkT3BhY2l0eU5vdE9u
ZSkKQEAgLTE0MCw5ICsxNDEsOSBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxX
aGVuQ2hpbGRPcGFjaXR5Tm90T25lKQogICAgIG9jY2x1c2lvblRyYWNrZXIubWFya09jY2x1ZGVk
QmVoaW5kTGF5ZXIoY2hpbGRMYXllci5nZXQoKSk7CiAgICAgYXBwZW5kUXVhZHMocXVhZExpc3Qs
IHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOwogICAgIEVYUEVD
VF9FUShxdWFkTGlzdC5zaXplKCksIDEzdSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9w
aXhlbHNEcmF3bk9wYXF1ZSwgOTAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1f
cGl4ZWxzRHJhd25UcmFuc3BhcmVudCwgNDAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJk
cmF3Lm1fcGl4ZWxzQ3VsbGVkLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhl
bHNEcmF3bk9wYXF1ZSgpLCA5MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4
ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCA0MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRy
YXcucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZl
cmlmeUN1bGxXaGVuQ2hpbGRPcGFxdWVGbGFnRmFsc2UpCkBAIC0xNTcsOSArMTU4LDkgQEAgVEVT
VChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsV2hlbkNoaWxkT3BhcXVlRmxhZ0ZhbHNlKQog
ICAgIG9jY2x1c2lvblRyYWNrZXIubWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIoY2hpbGRMYXllci5n
ZXQoKSk7CiAgICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5nZXQoKSwgb2NjbHVz
aW9uVHJhY2tlciwgb3ZlcmRyYXcpOwogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDEz
dSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3bk9wYXF1ZSwgOTAwMDAs
IDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25UcmFuc3BhcmVudCwg
NDAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzQ3VsbGVkLCAwLCAx
KTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3bk9wYXF1ZSgpLCA5MDAwMCwg
MSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCA0
MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVkKCksIDAsIDEp
OwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxDZW50ZXJUaWxlT25seSkK
QEAgLTE5Miw5ICsxOTMsOSBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxDZW50
ZXJUaWxlT25seSkKICAgICBFWFBFQ1RfRVEocXVhZFZpc2libGVSZWN0Ni5oZWlnaHQoKSwgNTAp
OwogICAgIEVYUEVDVF9FUShxdWFkVmlzaWJsZVJlY3Q2LnkoKSwgMjUwKTsKIAotICAgIEVYUEVD
VF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25PcGFxdWUsIDEwMDAwMCwgMSk7Ci0gICAgRVhQ
RUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3blRyYW5zcGFyZW50LCAwLCAxKTsKLSAgICBF
WFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0N1bGxlZCwgMzAwMDAsIDEpOworICAgIEVYUEVD
VF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3BhcXVlKCksIDEwMDAwMCwgMSk7CisgICAgRVhQ
RUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKKyAgICBF
WFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNDdWxsZWQoKSwgMzAwMDAsIDEpOwogfQogCiBURVNU
KENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxDZW50ZXJUaWxlTm9uSW50ZWdyYWxTaXplMSkK
QEAgLTIyMCw5ICsyMjEsOSBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxDZW50
ZXJUaWxlTm9uSW50ZWdyYWxTaXplMSkKICAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExh
eWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyLCBvdmVyZHJhdyk7CiAgICAgRVhQRUNUX0VRKHF1
YWRMaXN0LnNpemUoKSwgMnUpOwogCi0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNE
cmF3bk9wYXF1ZSwgMjAzNjMsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxz
RHJhd25UcmFuc3BhcmVudCwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhl
bHNDdWxsZWQsIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3Bh
cXVlKCksIDIwMzYzLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3blRy
YW5zbHVjZW50KCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0N1bGxl
ZCgpLCAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsQ2VudGVy
VGlsZU5vbkludGVncmFsU2l6ZTIpCkBAIC0yNDgsOSArMjQ5LDkgQEAgVEVTVChDQ1F1YWRDdWxs
ZXJUZXN0LCB2ZXJpZnlDdWxsQ2VudGVyVGlsZU5vbkludGVncmFsU2l6ZTIpCiAgICAgYXBwZW5k
UXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRy
YXcpOwogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDJ1KTsKIAotICAgIEVYUEVDVF9O
RUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25PcGFxdWUsIDE5NjQzLCAxKTsKLSAgICBFWFBFQ1Rf
TkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduVHJhbnNwYXJlbnQsIDAsIDEpOwotICAgIEVYUEVD
VF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzQ3VsbGVkLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihv
dmVyZHJhdy5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxOTY0MywgMSk7CisgICAgRVhQRUNUX05FQVIo
b3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVB
UihvdmVyZHJhdy5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVy
VGVzdCwgdmVyaWZ5Q3VsbENoaWxkTGluZXNVcEJvdHRvbVJpZ2h0KQpAQCAtMjY3LDkgKzI2OCw5
IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbENoaWxkTGluZXNVcEJvdHRvbVJp
Z2h0KQogICAgIG9jY2x1c2lvblRyYWNrZXIubWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIoY2hpbGRM
YXllci5nZXQoKSk7CiAgICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5nZXQoKSwg
b2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOwogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXpl
KCksIDl1KTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduT3BhcXVlLCA5
MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3blRyYW5zcGFy
ZW50LCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0N1bGxlZCwgNDAw
MDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3BhcXVlKCksIDkw
MDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3blRyYW5zbHVjZW50
KCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0N1bGxlZCgpLCA0MDAw
MCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbFN1YlJlZ2lvbikK
QEAgLTI4Nyw5ICsyODgsOSBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxTdWJS
ZWdpb24pCiAgICAgb2NjbHVzaW9uVHJhY2tlci5tYXJrT2NjbHVkZWRCZWhpbmRMYXllcihjaGls
ZExheWVyLmdldCgpKTsKICAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgp
LCBvY2NsdXNpb25UcmFja2VyLCBvdmVyZHJhdyk7CiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNp
emUoKSwgMTJ1KTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduT3BhcXVl
LCA5MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3blRyYW5z
cGFyZW50LCAzMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNDdWxs
ZWQsIDEwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3bk9wYXF1
ZSgpLCA5MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFu
c2x1Y2VudCgpLCAzMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3Vs
bGVkKCksIDEwMDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxs
U3ViUmVnaW9uMikKQEAgLTMwNyw5ICszMDgsOSBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZl
cmlmeUN1bGxTdWJSZWdpb24yKQogICAgIG9jY2x1c2lvblRyYWNrZXIubWFya09jY2x1ZGVkQmVo
aW5kTGF5ZXIoY2hpbGRMYXllci5nZXQoKSk7CiAgICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJv
b3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOwogICAgIEVYUEVDVF9F
UShxdWFkTGlzdC5zaXplKCksIDEydSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhl
bHNEcmF3bk9wYXF1ZSwgOTAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4
ZWxzRHJhd25UcmFuc3BhcmVudCwgMjUwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3
Lm1fcGl4ZWxzQ3VsbGVkLCAxNTAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4
ZWxzRHJhd25PcGFxdWUoKSwgOTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBp
eGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjUwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJk
cmF3LnBpeGVsc0N1bGxlZCgpLCAxNTAwMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVz
dCwgdmVyaWZ5Q3VsbFN1YlJlZ2lvbkNoZWNrT3ZlcmN1bGwpCkBAIC0zMjcsOSArMzI4LDkgQEAg
VEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsU3ViUmVnaW9uQ2hlY2tPdmVyY3VsbCkK
ICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNoaWxkTGF5ZXIu
Z2V0KCkpOwogICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1
c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCAx
M3UpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25PcGFxdWUsIDkwMDAw
LCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduVHJhbnNwYXJlbnQs
IDMwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0N1bGxlZCwgMTAw
MDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3BhcXVlKCksIDkw
MDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3blRyYW5zbHVjZW50
KCksIDMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNDdWxsZWQoKSwg
MTAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeU5vbkF4aXNBbGln
bmVkUXVhZHNEb250T2NjbHVkZSkKQEAgLTM0Nyw5ICszNDgsOSBAQCBURVNUKENDUXVhZEN1bGxl
clRlc3QsIHZlcmlmeU5vbkF4aXNBbGlnbmVkUXVhZHNEb250T2NjbHVkZSkKICAgICBvY2NsdXNp
b25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0KCkpOwogICAg
IGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIs
IG92ZXJkcmF3KTsKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCAxM3UpOwotICAgIEVY
UEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25PcGFxdWUsIDEzMDAwMCwgMSk7Ci0gICAg
RVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3blRyYW5zcGFyZW50LCAwLCAxKTsKLSAg
ICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0N1bGxlZCwgMCwgMSk7CisgICAgRVhQRUNU
X05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTMwMDAwLCAxKTsKKyAgICBFWFBF
Q1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKIH0KIAogLy8gVGhpcyB0
ZXN0IHJlcXVpcmVzIHNvbWUgZXhwbGFuYXRpb246IGhlcmUgd2UgYXJlIHJvdGF0aW5nIHRoZSBx
dWFkcyB0byBiZSBjdWxsZWQuCkBAIC0zNzMsOSArMzc0LDkgQEAgVEVTVChDQ1F1YWRDdWxsZXJU
ZXN0LCB2ZXJpZnlOb25BeGlzQWxpZ25lZFF1YWRzU2FmZWx5Q3VsbGVkKQogICAgIG9jY2x1c2lv
blRyYWNrZXIubWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIoY2hpbGRMYXllci5nZXQoKSk7CiAgICAg
YXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwg
b3ZlcmRyYXcpOwogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDEydSk7Ci0gICAgRVhQ
RUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3bk9wYXF1ZSwgMTAwNjAwLCAxKTsKLSAgICBF
WFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduVHJhbnNwYXJlbnQsIDAsIDEpOwotICAg
IEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzQ3VsbGVkLCAyOTQwMCwgMSk7CisgICAgRVhQ
RUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTAwNjAwLCAxKTsKKyAgICBF
WFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAsIDEpOworICAg
IEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0N1bGxlZCgpLCAyOTQwMCwgMSk7CiB9CiAKIFRF
U1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbE91dHNpZGVTY2lzc29yT3ZlclRpbGUpCkBA
IC0zOTAsOSArMzkxLDkgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsT3V0c2lk
ZVNjaXNzb3JPdmVyVGlsZSkKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGlu
ZExheWVyKGNoaWxkTGF5ZXIuZ2V0KCkpOwogICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290
TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKICAgICBFWFBFQ1RfRVEo
cXVhZExpc3Quc2l6ZSgpLCAxdSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNE
cmF3bk9wYXF1ZSwgMTAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxz
RHJhd25UcmFuc3BhcmVudCwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhl
bHNDdWxsZWQsIDEyMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJh
d25PcGFxdWUoKSwgMTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0Ry
YXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxz
Q3VsbGVkKCksIDEyMDAwMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5
Q3VsbE91dHNpZGVTY2lzc29yT3ZlckN1bGxlZFRpbGUpCkBAIC00MDcsOSArNDA4LDkgQEAgVEVT
VChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsT3V0c2lkZVNjaXNzb3JPdmVyQ3VsbGVkVGls
ZSkKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNoaWxkTGF5
ZXIuZ2V0KCkpOwogICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9j
Y2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgp
LCAxdSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3bk9wYXF1ZSwgMTAw
MDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25UcmFuc3BhcmVu
dCwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNDdWxsZWQsIDEyMDAw
MCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTAw
MDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQo
KSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVkKCksIDEyMDAw
MCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbE91dHNpZGVTY2lz
c29yT3ZlclBhcnRpYWxUaWxlcykKQEAgLTQyNCw5ICs0MjUsOSBAQCBURVNUKENDUXVhZEN1bGxl
clRlc3QsIHZlcmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92ZXJQYXJ0aWFsVGlsZXMpCiAgICAgb2Nj
bHVzaW9uVHJhY2tlci5tYXJrT2NjbHVkZWRCZWhpbmRMYXllcihjaGlsZExheWVyLmdldCgpKTsK
ICAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFj
a2VyLCBvdmVyZHJhdyk7CiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNpemUoKSwgOXUpOwotICAg
IEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25PcGFxdWUsIDQwMDAwLCAxKTsKLSAg
ICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduVHJhbnNwYXJlbnQsIDAsIDEpOwot
ICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzQ3VsbGVkLCA5MDAwMCwgMSk7CisgICAg
RVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25PcGFxdWUoKSwgNDAwMDAsIDEpOworICAg
IEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7Cisg
ICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVkKCksIDkwMDAwLCAxKTsKIH0KIAog
VEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsT3V0c2lkZVNjaXNzb3JPdmVyTm9UaWxl
cykKQEAgLTQ0MSw5ICs0NDIsOSBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxP
dXRzaWRlU2Npc3Nvck92ZXJOb1RpbGVzKQogICAgIG9jY2x1c2lvblRyYWNrZXIubWFya09jY2x1
ZGVkQmVoaW5kTGF5ZXIoY2hpbGRMYXllci5nZXQoKSk7CiAgICAgYXBwZW5kUXVhZHMocXVhZExp
c3QsIHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOwogICAgIEVY
UEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDB1KTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5t
X3BpeGVsc0RyYXduT3BhcXVlLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3Bp
eGVsc0RyYXduVHJhbnNwYXJlbnQsIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1f
cGl4ZWxzQ3VsbGVkLCAxMzAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVs
c0RyYXduT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0Ry
YXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxz
Q3VsbGVkKCksIDEzMDAwMCwgMSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131933</attachid>
            <date>2012-03-14 15:24:40 -0700</date>
            <delta_ts>2012-03-14 16:15:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81156-20120314182438.patch</filename>
            <type>text/plain</type>
            <size>38066</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY1MzIwYTc4Y2JjZTk5
ZGM1ZTEwMmU0YWIzMmMxNTI1NDEzNjNmYS4uZGI2OWIzMGUzYjE5MGMxMjViY2NkODlmMGRiOTBi
MDEwMjc0NzA1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTAzLTE0ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gTW92
ZSBvdmVyZHJhdyBtZXRyaWNzIGludG8gYSB0ZW1wbGF0ZWQgY2xhc3MgZm9yIGJvdGggcGFpbnQg
YW5kIGRyYXcgbWV0cmljcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgxMTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ3JlYXRlcyBDQ092ZXJkcmF3TWV0cmljcyB3aGljaCBjYW4gYmUgY2FsbGVkIHRv
IGluZm9ybSBpdCBhYm91dAorICAgICAgICBkcmF3cy9wYWludHMuIEF0IHRoZSBlbmQgb2YgdGhl
IGZyYW1lLCB0aGUgQ0NPdmVyZHJhd01ldHJpY3MKKyAgICAgICAgcmVwb3J0TWV0cmljcygpIG1l
dGhvZCB3aWxsIHB1dCBpdHMgZGF0YSBpbnRvIGhpc3RvZ3JhbXMgYW5kCisgICAgICAgIGEgVFJB
Q0VfQ09VTlRFUi4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAg
ICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1RyYWNlRXZl
bnQuaDoKKyAgICAgICAgKFRyYWNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2VFdmVu
dDo6YWRkVHJhY2VFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJl
ZUhvc3RJbXBsOjpjYWxjdWxhdGVSZW5kZXJQYXNzZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdNZXRyaWNzOjpDQ092ZXJk
cmF3TWV0cmljcyk6CisgICAgICAgIChXZWJDb3JlOjp3ZWRnZVByb2R1Y3QpOgorICAgICAgICAo
V2ViQ29yZTo6cXVhZEFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01ldHJpY3M6
OmRpZERyYXcpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01ldHJpY3M6OnJlY29yZE1l
dHJpY3MpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01ldHJpY3M6OnJlY29yZE1ldHJp
Y3NJbnRlcm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NP
dmVyZHJhd01ldHJpY3MuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEND
T3ZlcmRyYXdNZXRyaWNzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdNZXRyaWNzOjpw
aXhlbHNEcmF3bk9wYXF1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ092ZXJkcmF3TWV0cmljczo6
cGl4ZWxzRHJhd25UcmFuc2x1Y2VudCk6CisgICAgICAgIChXZWJDb3JlOjpDQ092ZXJkcmF3TWV0
cmljczo6cGl4ZWxzQ3VsbGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1F1YWRDdWxsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NRdWFkQ3VsbGVyOjpD
Q1F1YWRDdWxsZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NRdWFkQ3VsbGVyOjphcHBlbmQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDQ1F1YWRDdWxsZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDQ1JlbmRlclBhc3M6OmFwcGVuZFF1YWRzRm9yTGF5ZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChDQ1JlbmRlclBhc3MpOgorCiAyMDEyLTAzLTE0ICBTaW1vbiBIYXVz
bWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFJ1bkxvb3BR
dCBpcyBtaXNzaW5nIHJlZW50cmFuY3kgZ3VhcmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IGVmODBkYTE2ZGNiODFkYjBlZWQ2MjBjNDgxODc4NzljOTNlZDE4ZDEuLmI5NTg3Mjk2YjFj
ZTU2NzEzOTcwYzM4MTY1OTAzZGQzNDE1MGY4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMTQgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBNb3ZlIG92ZXJkcmF3IG1ldHJpY3MgaW50
byBhIHRlbXBsYXRlZCBjbGFzcyBmb3IgYm90aCBwYWludCBhbmQgZHJhdyBtZXRyaWNzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODExNTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0NDUXVh
ZEN1bGxlclRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kUXVhZHMpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKwogMjAxMi0wMy0xMyAgSGFq
aW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LCBtYXJrIHZlcmlmeUN1bGxDaGlsZExpbmVzVXBUb3BMZWZ0KCkgYXMgZmFpbGVkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDU3MTJmZDQ0MWI1MWMyNDZmYmY5MWVhZmExOGQ4YTI5YzQxMWI4ZGUuLmZi
MWY0YmZiYzZkYTAyZWI0MjU0ZDcyOWI4MDM0NjY2ZDYxNTZkMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTM0NzksNiArMzQ3OSw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuaCcsCisg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPdmVyZHJhd01ldHJp
Y3MuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ092
ZXJkcmF3TWV0cmljcy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1BhZ2VTY2FsZUFuaW1hdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDUGFnZVNjYWxlQW5pbWF0aW9uLmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUGx1Z2luRHJhd1F1YWQuY3BwJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1RyYWNlRXZlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1RyYWNlRXZlbnQuaAppbmRleCA1YmI2
MDBmYjM4NjdkZGE3Njk5ZTI5YTA5OGI5YjY3OTMzYjc4ODNiLi44NWY5MWZlMmZmMzczYjQ1OWFj
M2E5MzFkMzc3N2U2NWY3ZGVmNGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9UcmFjZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vVHJhY2VFdmVudC5oCkBAIC0zNjEsNiArMzYxLDMwIEBACiAgICAgICAgIHZhbHVlMV9u
YW1lLCBzdGF0aWNfY2FzdDxpbnQ+KHZhbHVlMV92YWwpLCBcCiAgICAgICAgIHZhbHVlMl9uYW1l
LCBzdGF0aWNfY2FzdDxpbnQ+KHZhbHVlMl92YWwpKQogCisvLyBSZWNvcmRzIHRoZSB2YWx1ZXMg
b2YgYSBtdWx0aS1wYXJ0ZWQgY291bnRlciBjYWxsZWQgIm5hbWUiIGltbWVkaWF0ZWx5LgorLy8g
VGhlIFVJIHdpbGwgdHJlYXQgdmFsdWUxLCB2YWx1ZTIgYW5kIHZhbHVlMyBhcyBwYXJ0cyBvZiBh
IHdob2xlLCBkaXNwbGF5aW5nIHRoZWlyCisvLyB2YWx1ZXMgYXMgYSBzdGFja2VkLWJhciBjaGFy
dC4KKy8vIC0gY2F0ZWdvcnkgYW5kIG5hbWUgc3RyaW5ncyBtdXN0IGhhdmUgYXBwbGljYXRpb24g
bGlmZXRpbWUgKHN0YXRpY3Mgb3IKKy8vICAgbGl0ZXJhbHMpLiBUaGV5IG1heSBub3QgaW5jbHVk
ZSAiIGNoYXJzLgorLy8gLSB8aWR8IGlzIHVzZWQgdG8gZGlzYW1iaWd1YXRlIGNvdW50ZXJzIHdp
dGggdGhlIHNhbWUgbmFtZS4gSXQgbXVzdCBlaXRoZXIKKy8vICAgYmUgYSBwb2ludGVyIG9yIGFu
IGludGVnZXIgdmFsdWUgdXAgdG8gNjQgYml0cy4gSWYgaXQncyBhIHBvaW50ZXIsIHRoZSBiaXRz
CisvLyAgIHdpbGwgYmUgeG9yZWQgd2l0aCBhIGhhc2ggb2YgdGhlIHByb2Nlc3MgSUQgc28gdGhh
dCB0aGUgc2FtZSBwb2ludGVyIG9uCisvLyAgIHR3byBkaWZmZXJlbnQgcHJvY2Vzc2VzIHdpbGwg
bm90IGNvbGxpZGUuCisjZGVmaW5lIFRSQUNFX0NPVU5URVJfSUQzKGNhdGVnb3J5LCBuYW1lLCBp
ZCwgdmFsdWUxX25hbWUsIHZhbHVlMV92YWwsIFwKKyAgICAgICAgdmFsdWUyX25hbWUsIHZhbHVl
Ml92YWwsIHZhbHVlM19uYW1lLCB2YWx1ZTNfdmFsKSAgICAgICBcCisgICAgSU5URVJOQUxfVFJB
Q0VfRVZFTlRfQUREX1dJVEhfSUQoVFJBQ0VfRVZFTlRfUEhBU0VfQ09VTlRFUiwgXAorICAgICAg
ICBjYXRlZ29yeSwgbmFtZSwgaWQsIFRSQUNFX0VWRU5UX0ZMQUdfTk9ORSwgXAorICAgICAgICB2
YWx1ZTFfbmFtZSwgc3RhdGljX2Nhc3Q8aW50Pih2YWx1ZTFfdmFsKSwgXAorICAgICAgICB2YWx1
ZTJfbmFtZSwgc3RhdGljX2Nhc3Q8aW50Pih2YWx1ZTJfdmFsKSwgXAorICAgICAgICB2YWx1ZTNf
bmFtZSwgc3RhdGljX2Nhc3Q8aW50Pih2YWx1ZTNfdmFsKSkKKyNkZWZpbmUgVFJBQ0VfQ09QWV9D
T1VOVEVSX0lEMyhjYXRlZ29yeSwgbmFtZSwgaWQsIHZhbHVlMV9uYW1lLCB2YWx1ZTFfdmFsLCBc
CisgICAgICAgIHZhbHVlMl9uYW1lLCB2YWx1ZTJfdmFsLCB2YWx1ZTNfbmFtZSwgdmFsdWUzX3Zh
bCkgICAgICAgXAorICAgIElOVEVSTkFMX1RSQUNFX0VWRU5UX0FERF9XSVRIX0lEKFRSQUNFX0VW
RU5UX1BIQVNFX0NPVU5URVIsIFwKKyAgICAgICAgY2F0ZWdvcnksIG5hbWUsIGlkLCBUUkFDRV9F
VkVOVF9GTEFHX0NPUFksIFwKKyAgICAgICAgdmFsdWUxX25hbWUsIHN0YXRpY19jYXN0PGludD4o
dmFsdWUxX3ZhbCksIFwKKyAgICAgICAgdmFsdWUyX25hbWUsIHN0YXRpY19jYXN0PGludD4odmFs
dWUyX3ZhbCksIFwKKyAgICAgICAgdmFsdWUzX25hbWUsIHN0YXRpY19jYXN0PGludD4odmFsdWUz
X3ZhbCkpCisKIC8vIFJlY29yZHMgYSBzaW5nbGUgU1RBUlQgZXZlbnQgY2FsbGVkICJuYW1lIiBp
bW1lZGlhdGVseSwgd2l0aCAwLCAxIG9yIDIKIC8vIGFzc29jaWF0ZWQgYXJndW1lbnRzLiBJZiB0
aGUgY2F0ZWdvcnkgaXMgbm90IGVuYWJsZWQsIHRoZW4gdGhpcwogLy8gZG9lcyBub3RoaW5nLgpA
QCAtNzU1LDYgKzc3OSwzMSBAQCBzdGF0aWMgaW5saW5lIGludCBhZGRUcmFjZUV2ZW50KGNoYXIg
cGhhc2UsCiAgICAgICAgIG5vVGhyZXNob2xkQmVnaW5JZCwgbm9UaHJlc2hvbGRWYWx1ZSwgZmxh
Z3MpOwogfQogCit0ZW1wbGF0ZTxjbGFzcyBBUkcxX1RZUEUsIGNsYXNzIEFSRzJfVFlQRSwgY2xh
c3MgQVJHM19UWVBFPgorc3RhdGljIGlubGluZSBpbnQgYWRkVHJhY2VFdmVudChjaGFyIHBoYXNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBj
YXRlZ29yeUVuYWJsZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg
bG9uZyBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBm
bGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogYXJnMU5h
bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFSRzFfVFlQRSYgYXJn
MVZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogYXJnMk5h
bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFSRzJfVFlQRSYgYXJn
MlZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogYXJnM05h
bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFSRzNfVFlQRSYgYXJn
M1ZhbCkgeworICAgIGNvbnN0IGludCBudW1BcmdzID0gMzsKKyAgICBjb25zdCBjaGFyKiBhcmdO
YW1lc1szXSA9IHsgYXJnMU5hbWUsIGFyZzJOYW1lLCBhcmczTmFtZSB9OworICAgIHVuc2lnbmVk
IGNoYXIgYXJnVHlwZXNbM107CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGFyZ1ZhbHVlc1szXTsK
KyAgICBzZXRUcmFjZVZhbHVlKGFyZzFWYWwsICZhcmdUeXBlc1swXSwgJmFyZ1ZhbHVlc1swXSk7
CisgICAgc2V0VHJhY2VWYWx1ZShhcmcyVmFsLCAmYXJnVHlwZXNbMV0sICZhcmdWYWx1ZXNbMV0p
OworICAgIHNldFRyYWNlVmFsdWUoYXJnM1ZhbCwgJmFyZ1R5cGVzWzJdLCAmYXJnVmFsdWVzWzJd
KTsKKyAgICByZXR1cm4gVFJBQ0VfRVZFTlRfQVBJX0FERF9UUkFDRV9FVkVOVCgKKyAgICAgICAg
cGhhc2UsIGNhdGVnb3J5RW5hYmxlZCwgbmFtZSwgaWQsCisgICAgICAgIG51bUFyZ3MsIGFyZ05h
bWVzLCBhcmdUeXBlcywgYXJnVmFsdWVzLAorICAgICAgICBub1RocmVzaG9sZEJlZ2luSWQsIG5v
VGhyZXNob2xkVmFsdWUsIGZsYWdzKTsKK30KKwogLy8gVXNlZCBieSBUUkFDRV9FVkVOVHggbWFj
cm8uIERvIG5vdCB1c2UgZGlyZWN0bHkuCiBjbGFzcyBUcmFjZUVuZE9uU2NvcGVDbG9zZSB7CiBw
dWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCmluZGV4IDVjN2Y1
NjVmN2QxMmMxYjY4NTU5MGVkMTY3NzNkYTJjMGZlYTg2NWQuLmI5YjNhNDZhNGM4OGMzNDkyYjFj
ZDUwMTRlMjEwNjY4Y2M5OTYzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdElt
cGwuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiY2MvQ0NMYXllckl0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiY2MvQ0NMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiY2MvQ0NMYXllclRy
ZWVIb3N0Q29tbW9uLmgiCisjaW5jbHVkZSAiY2MvQ0NPdmVyZHJhd01ldHJpY3MuaCIKICNpbmNs
dWRlICJjYy9DQ1BhZ2VTY2FsZUFuaW1hdGlvbi5oIgogI2luY2x1ZGUgImNjL0NDUmVuZGVyU3Vy
ZmFjZURyYXdRdWFkLmgiCiAjaW5jbHVkZSAiY2MvQ0NUaHJlYWRUYXNrLmgiCkBAIC0yNjAsNyAr
MjYxLDcgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjYWxjdWxhdGVSZW5kZXJQYXNzZXMo
Q0NSZW5kZXJQYXNzTGlzdCYgcGFzc2VzLCBDQ0xheWUKICAgICB9CiAKICAgICAvLyBGSVhNRTog
Y29tcHV0ZSBvdmVyZHJhdyBtZXRyaWNzIG9ubHkgb2NjYXNpb25hbGx5LCBub3QgZXZlcnkgZnJh
bWUuCi0gICAgQ0NPdmVyZHJhd0NvdW50cyBvdmVyZHJhd0NvdW50czsKKyAgICBDQ092ZXJkcmF3
TWV0cmljcyBvdmVyZHJhd01ldHJpY3M7CiAKICAgICBJbnRSZWN0IHNjaXNzb3JSZWN0OwogICAg
IGlmIChsYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkudXNpbmdQYXJ0aWFsU3dhcCkKQEAgLTI5
NSwxNCArMjk2LDExIEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6Y2FsY3VsYXRlUmVuZGVy
UGFzc2VzKENDUmVuZGVyUGFzc0xpc3QmIHBhc3NlcywgQ0NMYXllCiAgICAgICAgIH0KIAogICAg
ICAgICBpdC0+d2lsbERyYXcobV9sYXllclJlbmRlcmVyLmdldCgpKTsKLSAgICAgICAgcGFzcy0+
YXBwZW5kUXVhZHNGb3JMYXllcigqaXQsICZvY2NsdXNpb25UcmFja2VyLCAmb3ZlcmRyYXdDb3Vu
dHMpOworICAgICAgICBwYXNzLT5hcHBlbmRRdWFkc0ZvckxheWVyKCppdCwgJm9jY2x1c2lvblRy
YWNrZXIsICZvdmVyZHJhd01ldHJpY3MpOwogICAgICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtP
Y2NsdWRlZEJlaGluZExheWVyKCppdCk7CiAgICAgfQogCi0gICAgZmxvYXQgbm9ybWFsaXphdGlv
biA9IDEwMDAuZiAvIChtX2xheWVyUmVuZGVyZXItPnZpZXdwb3J0V2lkdGgoKSAqIG1fbGF5ZXJS
ZW5kZXJlci0+dmlld3BvcnRIZWlnaHQoKSk7Ci0gICAgUGxhdGZvcm1TdXBwb3J0OjpoaXN0b2dy
YW1DdXN0b21Db3VudHMoIlJlbmRlcmVyNC5waXhlbE92ZXJkcmF3T3BhcXVlIiwgc3RhdGljX2Nh
c3Q8aW50Pihub3JtYWxpemF0aW9uICogb3ZlcmRyYXdDb3VudHMubV9waXhlbHNEcmF3bk9wYXF1
ZSksIDEwMCwgMTAwMDAwMCwgNTApOwotICAgIFBsYXRmb3JtU3VwcG9ydDo6aGlzdG9ncmFtQ3Vz
dG9tQ291bnRzKCJSZW5kZXJlcjQucGl4ZWxPdmVyZHJhd1RyYW5zcGFyZW50Iiwgc3RhdGljX2Nh
c3Q8aW50Pihub3JtYWxpemF0aW9uICogb3ZlcmRyYXdDb3VudHMubV9waXhlbHNEcmF3blRyYW5z
cGFyZW50KSwgMTAwLCAxMDAwMDAwLCA1MCk7Ci0gICAgUGxhdGZvcm1TdXBwb3J0OjpoaXN0b2dy
YW1DdXN0b21Db3VudHMoIlJlbmRlcmVyNC5waXhlbE92ZXJkcmF3Q3VsbGVkIiwgc3RhdGljX2Nh
c3Q8aW50Pihub3JtYWxpemF0aW9uICogb3ZlcmRyYXdDb3VudHMubV9waXhlbHNDdWxsZWQpLCAx
MDAsIDEwMDAwMDAsIDUwKTsKKyAgICBvdmVyZHJhd01ldHJpY3MucmVjb3JkTWV0cmljcyh0aGlz
KTsKIH0KIAogdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjphbmltYXRlTGF5ZXJzUmVjdXJzaXZl
KENDTGF5ZXJJbXBsKiBjdXJyZW50LCBkb3VibGUgbW9ub3RvbmljVGltZSwgZG91YmxlIHdhbGxD
bG9ja1RpbWUsIENDQW5pbWF0aW9uRXZlbnRzVmVjdG9yJiBldmVudHMsIGJvb2wmIGRpZEFuaW1h
dGUsIGJvb2wmIG5lZWRzQW5pbWF0ZUxheWVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRy
aWNzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lYzU4ZmMxYzBiY2Y2MGM3YTBhOTJlN2EwZDljZmY0Zjc1ZGQ3
ZTczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NPdmVyZHJhd01ldHJpY3MuY3BwCkBAIC0wLDAgKzEsMTE1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCisKKyNpbmNsdWRlICJjYy9DQ092ZXJkcmF3TWV0cmljcy5oIgorCisjaW5jbHVk
ZSAiRmxvYXRRdWFkLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlRyYWNlRXZl
bnQuaCIKKyNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgorI2luY2x1ZGUgImNjL0ND
TGF5ZXJUcmVlSG9zdC5oIgorI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitDQ092ZXJkcmF3TWV0cmljczo6Q0NPdmVyZHJhd01ldHJp
Y3MoKQorICAgIDogbV9waXhlbHNEcmF3bk9wYXF1ZSgwKQorICAgICwgbV9waXhlbHNEcmF3blRy
YW5zbHVjZW50KDApCisgICAgLCBtX3BpeGVsc0N1bGxlZCgwKQoreworfQorCitzdGF0aWMgaW5s
aW5lIGZsb2F0IHdlZGdlUHJvZHVjdChjb25zdCBGbG9hdFBvaW50JiBwMSwgY29uc3QgRmxvYXRQ
b2ludCYgcDIpCit7CisgICAgcmV0dXJuIHAxLngoKSAqIHAyLnkoKSAtIHAxLnkoKSAqIHAyLngo
KTsKK30KKworLy8gQ29tcHV0ZXMgYXJlYSBvZiBxdWFkcyB0aGF0IGFyZSBwb3NzaWJseSBub24t
cmVjdGFuZ3VsYXIuIENhbiBiZSBlYXNpbHkgZXh0ZW5kZWQgdG8gcG9seWdvbnMuCitzdGF0aWMg
aW5saW5lIGZsb2F0IHF1YWRBcmVhKGNvbnN0IEZsb2F0UXVhZCYgcXVhZCkKK3sKKyAgICByZXR1
cm4gZmFicygwLjUgKiAod2VkZ2VQcm9kdWN0KHF1YWQucDEoKSwgcXVhZC5wMigpKSArCisgICAg
ICAgICAgICAgICAgICAgICAgIHdlZGdlUHJvZHVjdChxdWFkLnAyKCksIHF1YWQucDMoKSkgKwor
ICAgICAgICAgICAgICAgICAgICAgICB3ZWRnZVByb2R1Y3QocXVhZC5wMygpLCBxdWFkLnA0KCkp
ICsKKyAgICAgICAgICAgICAgICAgICAgICAgd2VkZ2VQcm9kdWN0KHF1YWQucDQoKSwgcXVhZC5w
MSgpKSkpOworfQorCit2b2lkIENDT3ZlcmRyYXdNZXRyaWNzOjpkaWREcmF3KGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1Ub1RhcmdldCwgY29uc3QgSW50UmVjdCYgYmVmb3Jl
Q3VsbFJlY3QsIGNvbnN0IEludFJlY3QmIGFmdGVyQ3VsbFJlY3QsIGNvbnN0IEludFJlY3QmIG9w
YXF1ZVJlY3QpCit7CisgICAgZmxvYXQgYmVmb3JlQ3VsbEFyZWEgPSBxdWFkQXJlYSh0cmFuc2Zv
cm1Ub1RhcmdldC5tYXBRdWFkKEZsb2F0UXVhZChiZWZvcmVDdWxsUmVjdCkpKTsKKyAgICBmbG9h
dCBhZnRlckN1bGxBcmVhID0gcXVhZEFyZWEodHJhbnNmb3JtVG9UYXJnZXQubWFwUXVhZChGbG9h
dFF1YWQoYWZ0ZXJDdWxsUmVjdCkpKTsKKyAgICBmbG9hdCBhZnRlckN1bGxPcGFxdWVBcmVhID0g
cXVhZEFyZWEodHJhbnNmb3JtVG9UYXJnZXQubWFwUXVhZChGbG9hdFF1YWQoaW50ZXJzZWN0aW9u
KG9wYXF1ZVJlY3QsIGFmdGVyQ3VsbFJlY3QpKSkpOworCisgICAgbV9waXhlbHNEcmF3bk9wYXF1
ZSArPSBhZnRlckN1bGxPcGFxdWVBcmVhOworICAgIG1fcGl4ZWxzRHJhd25UcmFuc2x1Y2VudCAr
PSBhZnRlckN1bGxBcmVhIC0gYWZ0ZXJDdWxsT3BhcXVlQXJlYTsKKyAgICBtX3BpeGVsc0N1bGxl
ZCArPSBiZWZvcmVDdWxsQXJlYSAtIGFmdGVyQ3VsbEFyZWE7Cit9CisKK3ZvaWQgQ0NPdmVyZHJh
d01ldHJpY3M6OnJlY29yZE1ldHJpY3MoY29uc3QgQ0NMYXllclRyZWVIb3N0KiBsYXllclRyZWVI
b3N0KSBjb25zdAoreworICAgIHJlY29yZE1ldHJpY3NJbnRlcm5hbDxDQ0xheWVyVHJlZUhvc3Q+
KFBBSU5USU5HLCBsYXllclRyZWVIb3N0KTsKK30KKwordm9pZCBDQ092ZXJkcmF3TWV0cmljczo6
cmVjb3JkTWV0cmljcyhjb25zdCBDQ0xheWVyVHJlZUhvc3RJbXBsKiBsYXllclRyZWVIb3N0KSBj
b25zdAoreworICAgIHJlY29yZE1ldHJpY3NJbnRlcm5hbDxDQ0xheWVyVHJlZUhvc3RJbXBsPihE
UkFXSU5HLCBsYXllclRyZWVIb3N0KTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgTGF5ZXJUcmVl
SG9zdFR5cGU+Cit2b2lkIENDT3ZlcmRyYXdNZXRyaWNzOjpyZWNvcmRNZXRyaWNzSW50ZXJuYWwo
TWV0cmljc1R5cGUgbWV0cmljc1R5cGUsIGNvbnN0IExheWVyVHJlZUhvc3RUeXBlKiBsYXllclRy
ZWVIb3N0KSBjb25zdAoreworICAgIGNvbnN0IGNoYXIqIGhpc3RvZ3JhbU9wYXF1ZU5hbWUgPSAw
OworICAgIGNvbnN0IGNoYXIqIGhpc3RvZ3JhbVRyYW5zbHVjZW50TmFtZSA9IDA7CisgICAgY29u
c3QgY2hhciogaGlzdG9ncmFtQ3VsbGVkTmFtZSA9IDA7CisgICAgY29uc3QgY2hhciogY291bnRl
ck5hbWUgPSAwOworICAgIHN3aXRjaCAobWV0cmljc1R5cGUpIHsKKyAgICBjYXNlIERSQVdJTkc6
CisgICAgICAgIGhpc3RvZ3JhbU9wYXF1ZU5hbWUgPSAiUmVuZGVyZXI0LmRyYXdQaXhlbENvdW50
T3BhcXVlIjsKKyAgICAgICAgaGlzdG9ncmFtVHJhbnNsdWNlbnROYW1lID0gIlJlbmRlcmVyNC5k
cmF3UGl4ZWxDb3VudFRyYW5zbHVjZW50IjsKKyAgICAgICAgaGlzdG9ncmFtQ3VsbGVkTmFtZSA9
ICJSZW5kZXJlcjQuZHJhd1BpeGVsQ291bnRDdWxsZWQiOworICAgICAgICBjb3VudGVyTmFtZSA9
ICJkcmF3T3ZlcmRyYXdQaXhlbHMiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBBSU5USU5H
OgorICAgICAgICBoaXN0b2dyYW1PcGFxdWVOYW1lID0gIlJlbmRlcmVyNC5wYWludFBpeGVsQ291
bnRPcGFxdWUiOworICAgICAgICBoaXN0b2dyYW1UcmFuc2x1Y2VudE5hbWUgPSAiUmVuZGVyZXI0
LnBhaW50UGl4ZWxDb3VudFRyYW5zbHVjZW50IjsKKyAgICAgICAgaGlzdG9ncmFtQ3VsbGVkTmFt
ZSA9ICJSZW5kZXJlcjQucGFpbnRQaXhlbENvdW50Q3VsbGVkIjsKKyAgICAgICAgY291bnRlck5h
bWUgPSAicGFpbnRPdmVyZHJhd1BpeGVscyI7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBB
U1NFUlQoaGlzdG9ncmFtT3BhcXVlTmFtZSk7CisKKyAgICBmbG9hdCBub3JtYWxpemF0aW9uID0g
MTAwMC5mIC8gKGxheWVyVHJlZUhvc3QtPnZpZXdwb3J0U2l6ZSgpLndpZHRoKCkgKiBsYXllclRy
ZWVIb3N0LT52aWV3cG9ydFNpemUoKS5oZWlnaHQoKSk7CisgICAgUGxhdGZvcm1TdXBwb3J0Ojpo
aXN0b2dyYW1DdXN0b21Db3VudHMoaGlzdG9ncmFtT3BhcXVlTmFtZSwgc3RhdGljX2Nhc3Q8aW50
Pihub3JtYWxpemF0aW9uICogbV9waXhlbHNEcmF3bk9wYXF1ZSksIDEwMCwgMTAwMDAwMCwgNTAp
OworICAgIFBsYXRmb3JtU3VwcG9ydDo6aGlzdG9ncmFtQ3VzdG9tQ291bnRzKGhpc3RvZ3JhbVRy
YW5zbHVjZW50TmFtZSwgc3RhdGljX2Nhc3Q8aW50Pihub3JtYWxpemF0aW9uICogbV9waXhlbHNE
cmF3blRyYW5zbHVjZW50KSwgMTAwLCAxMDAwMDAwLCA1MCk7CisgICAgUGxhdGZvcm1TdXBwb3J0
OjpoaXN0b2dyYW1DdXN0b21Db3VudHMoaGlzdG9ncmFtQ3VsbGVkTmFtZSwgc3RhdGljX2Nhc3Q8
aW50Pihub3JtYWxpemF0aW9uICogbV9waXhlbHNDdWxsZWQpLCAxMDAsIDEwMDAwMDAsIDUwKTsK
KworICAgIFRSQUNFX0NPVU5URVJfSUQzKCJ3ZWJraXQiLCBjb3VudGVyTmFtZSwgbGF5ZXJUcmVl
SG9zdCwgIm9wYXF1ZSIsIG1fcGl4ZWxzRHJhd25PcGFxdWUsICJ0cmFuc2x1Y2VudCIsIG1fcGl4
ZWxzRHJhd25UcmFuc2x1Y2VudCwgImN1bGxlZCIsIG1fcGl4ZWxzQ3VsbGVkKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ092ZXJkcmF3TWV0cmlj
cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNmNzIzNTc4NWVjYTZmYmQyNjIzMmNmMmYyZDhjZmMzYTU4NDNkZTAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ092ZXJkcmF3TWV0cmljcy5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
CisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgQ0NPdmVyZHJhd01ldHJpY3NfaAorI2RlZmluZSBDQ092ZXJkcmF3TWV0cmlj
c19oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEludFJlY3Q7CitjbGFzcyBUcmFuc2Zv
cm1hdGlvbk1hdHJpeDsKK2NsYXNzIENDTGF5ZXJUcmVlSG9zdDsKK2NsYXNzIENDTGF5ZXJUcmVl
SG9zdEltcGw7CisKK2NsYXNzIENDT3ZlcmRyYXdNZXRyaWNzIHsKK3B1YmxpYzoKKyAgICBDQ092
ZXJkcmF3TWV0cmljcygpOworCisgICAgdm9pZCBkaWREcmF3KGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiB0cmFuc2Zvcm1Ub1RhcmdldCwgY29uc3QgSW50UmVjdCYgYmVmb3JlQ3VsbFJlY3Qs
IGNvbnN0IEludFJlY3QmIGFmdGVyQ3VsbFJlY3QsIGNvbnN0IEludFJlY3QmIG9wYXF1ZVJlY3Qp
OworCisgICAgdm9pZCByZWNvcmRNZXRyaWNzKGNvbnN0IENDTGF5ZXJUcmVlSG9zdCopIGNvbnN0
OworICAgIHZvaWQgcmVjb3JkTWV0cmljcyhjb25zdCBDQ0xheWVyVHJlZUhvc3RJbXBsKikgY29u
c3Q7CisKKyAgICAvLyBBY2Nlc3NvcnMgZm9yIHRlc3RzLgorICAgIGZsb2F0IHBpeGVsc0RyYXdu
T3BhcXVlKCkgY29uc3QgeyByZXR1cm4gbV9waXhlbHNEcmF3bk9wYXF1ZTsgfQorICAgIGZsb2F0
IHBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsc0RyYXduVHJh
bnNsdWNlbnQ7IH0KKyAgICBmbG9hdCBwaXhlbHNDdWxsZWQoKSBjb25zdCB7IHJldHVybiBtX3Bp
eGVsc0N1bGxlZDsgfQorCitwcml2YXRlOgorICAgIGVudW0gTWV0cmljc1R5cGUgeworICAgICAg
ICBEUkFXSU5HLAorICAgICAgICBQQUlOVElORworICAgIH07CisKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBMYXllclRyZWVIb3N0VHlwZT4KKyAgICB2b2lkIHJlY29yZE1ldHJpY3NJbnRlcm5hbChN
ZXRyaWNzVHlwZSwgY29uc3QgTGF5ZXJUcmVlSG9zdFR5cGUqKSBjb25zdDsKKworICAgIC8vIENv
dW50IG9mIHBpeGVscyB0aGF0IGFyZSBvcGFxdWUgKGFuZCB0aHVzIG9jY2x1ZGUpLiBJZGVhbGx5
IHRoaXMgaXMgbm8gbW9yZQorICAgIC8vIHRoYW4gd2lld3BvcnQgd2lkdGggeCBoZWlnaHQuCisg
ICAgZmxvYXQgbV9waXhlbHNEcmF3bk9wYXF1ZTsKKyAgICAvLyBDb3VudCBvZiBwaXhlbHMgdGhh
dCBhcmUgcG9zc2libHkgdHJhbnNsdWNlbnQsIGFuZCBjYW5ub3Qgb2NjbHVkZS4KKyAgICBmbG9h
dCBtX3BpeGVsc0RyYXduVHJhbnNsdWNlbnQ7CisgICAgLy8gQ291bnQgb2YgcGl4ZWxzIG5vdCBk
cmF3biBhcyB0aGV5IGFyZSBvY2NsdWRlZCBieSBzb210aGluZyBvcGFxdWUuCisgICAgZmxvYXQg
bV9waXhlbHNDdWxsZWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NRdWFkQ3VsbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDUXVhZEN1bGxlci5jcHAKaW5kZXggZjdiNTZiOWZjZDU0NDRhMDFiZjMzMWY3NWRl
NDMxNDJhZTVkYzZlMS4uYjFlYjE4M2ViYjY1ZjQ4MjkwNzVmOWVmMTYzNzYzODRlNDY2NTk4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NRdWFkQ3VsbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
UmVnaW9uLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJj
Yy9DQ0xheWVySW1wbC5oIgorI2luY2x1ZGUgImNjL0NDT3ZlcmRyYXdNZXRyaWNzLmgiCiAjaW5j
bHVkZSAiY2MvQ0NSZW5kZXJQYXNzLmgiCiAjaW5jbHVkZSAiY2MvQ0NSZW5kZXJTdXJmYWNlRHJh
d1F1YWQuaCIKIApAQCAtMzksMjkgKzQwLDE0IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotQ0NRdWFkQ3VsbGVyOjpDQ1F1YWRDdWxsZXIoQ0NRdWFkTGlz
dCYgcXVhZExpc3QsIENDTGF5ZXJJbXBsKiBsYXllciwgQ0NPY2NsdXNpb25UcmFja2VySW1wbCog
b2NjbHVzaW9uVHJhY2tlciwgQ0NPdmVyZHJhd0NvdW50cyogb3ZlcmRyYXdDb3VudHMpCitDQ1F1
YWRDdWxsZXI6OkNDUXVhZEN1bGxlcihDQ1F1YWRMaXN0JiBxdWFkTGlzdCwgQ0NMYXllckltcGwq
IGxheWVyLCBDQ09jY2x1c2lvblRyYWNrZXJJbXBsKiBvY2NsdXNpb25UcmFja2VyLCBDQ092ZXJk
cmF3TWV0cmljcyogb3ZlcmRyYXdNZXRyaWNzKQogICAgIDogbV9xdWFkTGlzdChxdWFkTGlzdCkK
ICAgICAsIG1fbGF5ZXIobGF5ZXIpCiAgICAgLCBtX29jY2x1c2lvblRyYWNrZXIob2NjbHVzaW9u
VHJhY2tlcikKLSAgICAsIG1fb3ZlcmRyYXdDb3VudHMob3ZlcmRyYXdDb3VudHMpCisgICAgLCBt
X292ZXJkcmF3TWV0cmljcyhvdmVyZHJhd01ldHJpY3MpCiB7CiB9CiAKLXN0YXRpYyBmbG9hdCB3
ZWRnZVByb2R1Y3QoY29uc3QgRmxvYXRQb2ludCYgcDEsIGNvbnN0IEZsb2F0UG9pbnQmIHAyKQot
ewotICAgIHJldHVybiBwMS54KCkgKiBwMi55KCkgLSBwMS55KCkgKiBwMi54KCk7Ci19Ci0KLS8v
IENvbXB1dGVzIGFyZWEgb2YgcXVhZHMgdGhhdCBhcmUgcG9zc2libHkgbm9uLXJlY3Rhbmd1bGFy
LiBDYW4KLS8vIGJlIGVhc2lseSBleHRlbmRlZCB0byBwb2x5Z29ucy4KLXN0YXRpYyBmbG9hdCBx
dWFkQXJlYShjb25zdCBGbG9hdFF1YWQmIHF1YWQpCi17Ci0gICAgcmV0dXJuIGZhYnMoMC41ICog
KHdlZGdlUHJvZHVjdChxdWFkLnAxKCksIHF1YWQucDIoKSkgKwotICAgICAgICAgICAgICAgICAg
IHdlZGdlUHJvZHVjdChxdWFkLnAyKCksIHF1YWQucDMoKSkgKwotICAgICAgICAgICAgICAgICAg
IHdlZGdlUHJvZHVjdChxdWFkLnAzKCksIHF1YWQucDQoKSkgKwotICAgICAgICAgICAgICAgICAg
IHdlZGdlUHJvZHVjdChxdWFkLnA0KCksIHF1YWQucDEoKSkpKTsKLX0KLQogdm9pZCBDQ1F1YWRD
dWxsZXI6OmFwcGVuZChQYXNzT3duUHRyPENDRHJhd1F1YWQ+IHBhc3NEcmF3UXVhZCkKIHsKICAg
ICBPd25QdHI8Q0NEcmF3UXVhZD4gZHJhd1F1YWQocGFzc0RyYXdRdWFkKTsKQEAgLTcwLDMwICs1
NiwxMCBAQCB2b2lkIENDUXVhZEN1bGxlcjo6YXBwZW5kKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4g
cGFzc0RyYXdRdWFkKQogICAgIGlmIChrZWVwUXVhZCkKICAgICAgICAgZHJhd1F1YWQtPnNldFF1
YWRWaXNpYmxlUmVjdChjdWxsZWRSZWN0KTsKIAotICAgIC8vIEZJWE1FOiBNYWtlIGEgdGVtcGxh
dGVkIG1ldHJpY3MgY2xhc3MgYW5kIG1vdmUgdGhlIGxvZ2ljIG91dCB0byB0aGVyZS4KLSAgICAv
LyBUZW1wb3JhcnkgY29kZSBhbnl3YXlzLCBpbmRlbnRlZCB0byBtYWtlIHRoZSBkaWZmIGNsZWFy
LgotICAgIHsKLSAgICAgICAgaWYgKG1fb3ZlcmRyYXdDb3VudHMpIHsKLSAgICAgICAgICAgIC8v
IFdlIGNvbXB1dGUgdGhlIGFyZWEgb2YgdGhlIHRyYW5zZm9ybWVkIHF1YWQsIGFzIHRoaXMgc2hv
dWxkIGJlIGluIHBpeGVscy4KLSAgICAgICAgICAgIGZsb2F0IGFyZWEgPSBxdWFkQXJlYShkcmF3
UXVhZC0+cXVhZFRyYW5zZm9ybSgpLm1hcFF1YWQoRmxvYXRRdWFkKGRyYXdRdWFkLT5xdWFkUmVj
dCgpKSkpOwotICAgICAgICAgICAgaWYgKGtlZXBRdWFkKSB7Ci0gICAgICAgICAgICAgICAgYm9v
bCBkaWRSZWR1Y2VRdWFkU2l6ZSA9IGN1bGxlZFJlY3QgIT0gZHJhd1F1YWQtPnF1YWRSZWN0KCk7
Ci0gICAgICAgICAgICAgICAgaWYgKGRpZFJlZHVjZVF1YWRTaXplKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGZsb2F0IHZpc2libGVRdWFkUmVjdEFyZWEgPSBxdWFkQXJlYShkcmF3UXVhZC0+cXVh
ZFRyYW5zZm9ybSgpLm1hcFF1YWQoRmxvYXRRdWFkKGRyYXdRdWFkLT5xdWFkVmlzaWJsZVJlY3Qo
KSkpKTsKLSAgICAgICAgICAgICAgICAgICAgbV9vdmVyZHJhd0NvdW50cy0+bV9waXhlbHNDdWxs
ZWQgKz0gYXJlYSAtIHZpc2libGVRdWFkUmVjdEFyZWE7Ci0gICAgICAgICAgICAgICAgICAgIGFy
ZWEgPSB2aXNpYmxlUXVhZFJlY3RBcmVhOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBJbnRSZWN0IHZpc2libGVPcGFxdWVSZWN0KGRyYXdRdWFkLT5xdWFkVmlzaWJsZVJlY3Qo
KSk7Ci0gICAgICAgICAgICAgICAgdmlzaWJsZU9wYXF1ZVJlY3QuaW50ZXJzZWN0KGRyYXdRdWFk
LT5vcGFxdWVSZWN0KCkpOwotICAgICAgICAgICAgICAgIEZsb2F0UXVhZCB2aXNpYmxlT3BhcXVl
UXVhZCA9IGRyYXdRdWFkLT5xdWFkVHJhbnNmb3JtKCkubWFwUXVhZChGbG9hdFF1YWQodmlzaWJs
ZU9wYXF1ZVJlY3QpKTsKLSAgICAgICAgICAgICAgICBmbG9hdCBvcGFxdWVBcmVhID0gcXVhZEFy
ZWEodmlzaWJsZU9wYXF1ZVF1YWQpOwotICAgICAgICAgICAgICAgIG1fb3ZlcmRyYXdDb3VudHMt
Pm1fcGl4ZWxzRHJhd25PcGFxdWUgKz0gb3BhcXVlQXJlYTsKLSAgICAgICAgICAgICAgICBtX292
ZXJkcmF3Q291bnRzLT5tX3BpeGVsc0RyYXduVHJhbnNwYXJlbnQgKz0gYXJlYSAtIG9wYXF1ZUFy
ZWE7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBtX292ZXJkcmF3Q291bnRz
LT5tX3BpeGVsc0N1bGxlZCArPSBhcmVhOwotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChtX292
ZXJkcmF3TWV0cmljcykKKyAgICAgICAgbV9vdmVyZHJhd01ldHJpY3MtPmRpZERyYXcoZHJhd1F1
YWQtPnF1YWRUcmFuc2Zvcm0oKSwgZHJhd1F1YWQtPnF1YWRSZWN0KCksIGN1bGxlZFJlY3QsIGRy
YXdRdWFkLT5vcGFxdWVSZWN0KCkpOwogCisgICAgLy8gUmVsZWFzZSB0aGUgcXVhZCBhZnRlciB3
ZSdyZSBkb25lIHVzaW5nIGl0LgogICAgIGlmIChrZWVwUXVhZCkKICAgICAgICAgbV9xdWFkTGlz
dC5hcHBlbmQoZHJhd1F1YWQucmVsZWFzZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmgKaW5k
ZXggOWMxN2FhODc0YjRmMGZkNzRmNzNiYWFhM2M2YjBhZmRhOTdhMTdmYy4uOTc2N2JhZTMxMmM2
OWViYTQ2ZWE2ZDlmMDJhODdkMTdhMGQ4MTZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmgKQEAg
LTMwLDEyICszMCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDQ0xheWVySW1w
bDsKK2NsYXNzIENDT3ZlcmRyYXdNZXRyaWNzOwogCiBjbGFzcyBDQ1F1YWRDdWxsZXIgewogcHVi
bGljOgogICAgIC8vIFBhc3NpbmcgMCBmb3IgQ0NPdmVyZHJhd0NvdW50cyogaXMgdmFsaWQsIGFu
ZCBkaXNhYmxlIHRoZSBleHRyYSBjb21wdXRhdGlvbgogICAgIC8vIGRvbmUgdG8gZXN0aW1hdGUg
b3ZlciBkcmF3IHN0YXRpc3RpY3MuCi0gICAgQ0NRdWFkQ3VsbGVyKENDUXVhZExpc3QmLCBDQ0xh
eWVySW1wbCosIENDT2NjbHVzaW9uVHJhY2tlckltcGwqLCBDQ092ZXJkcmF3Q291bnRzKik7Cisg
ICAgQ0NRdWFkQ3VsbGVyKENDUXVhZExpc3QmLCBDQ0xheWVySW1wbCosIENDT2NjbHVzaW9uVHJh
Y2tlckltcGwqLCBDQ092ZXJkcmF3TWV0cmljcyopOwogCiAgICAgdmlydHVhbCB2b2lkIGFwcGVu
ZChQYXNzT3duUHRyPENDRHJhd1F1YWQ+IHBhc3NEcmF3UXVhZCk7CiAKQEAgLTQzLDcgKzQ0LDcg
QEAgcHJpdmF0ZToKICAgICBDQ1F1YWRMaXN0JiBtX3F1YWRMaXN0OwogICAgIENDTGF5ZXJJbXBs
KiBtX2xheWVyOwogICAgIENDT2NjbHVzaW9uVHJhY2tlckltcGwqIG1fb2NjbHVzaW9uVHJhY2tl
cjsKLSAgICBDQ092ZXJkcmF3Q291bnRzKiBtX292ZXJkcmF3Q291bnRzOworICAgIENDT3ZlcmRy
YXdNZXRyaWNzKiBtX292ZXJkcmF3TWV0cmljczsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBh
c3MuY3BwCmluZGV4IDhjNDMxODM1MDY2ZGRiZmQ4ODAwOTNiMTc5YTJhNzlkNDU3ZjcyMTMuLjc0
MDE5OWExYTJlM2ViZjJmYjBkMjNjMmMwMzYxZjkwYmIxMGY5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5k
ZXJQYXNzLmNwcApAQCAtNDYsOSArNDYsOSBAQCBDQ1JlbmRlclBhc3M6OkNDUmVuZGVyUGFzcyhD
Q1JlbmRlclN1cmZhY2UqIHRhcmdldFN1cmZhY2UpCiAgICAgQVNTRVJUKG1fdGFyZ2V0U3VyZmFj
ZSk7CiB9CiAKLXZvaWQgQ0NSZW5kZXJQYXNzOjphcHBlbmRRdWFkc0ZvckxheWVyKENDTGF5ZXJJ
bXBsKiBsYXllciwgQ0NPY2NsdXNpb25UcmFja2VySW1wbCogb2NjbHVzaW9uVHJhY2tlciwgQ0NP
dmVyZHJhd0NvdW50cyogb3ZlcmRyYXdDb3VudHMpCit2b2lkIENDUmVuZGVyUGFzczo6YXBwZW5k
UXVhZHNGb3JMYXllcihDQ0xheWVySW1wbCogbGF5ZXIsIENDT2NjbHVzaW9uVHJhY2tlckltcGwq
IG9jY2x1c2lvblRyYWNrZXIsIENDT3ZlcmRyYXdNZXRyaWNzKiBvdmVyZHJhd01ldHJpY3MpCiB7
Ci0gICAgQ0NRdWFkQ3VsbGVyIHF1YWRDdWxsZXIobV9xdWFkTGlzdCwgbGF5ZXIsIG9jY2x1c2lv
blRyYWNrZXIsIG92ZXJkcmF3Q291bnRzKTsKKyAgICBDQ1F1YWRDdWxsZXIgcXVhZEN1bGxlciht
X3F1YWRMaXN0LCBsYXllciwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXdNZXRyaWNzKTsKIAog
ICAgIE93blB0cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gc2hhcmVkUXVhZFN0YXRlID0gbGF5ZXItPmNy
ZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpOwogICAgIGxheWVyLT5hcHBlbmRRdWFkcyhxdWFkQ3VsbGVy
LCBzaGFyZWRRdWFkU3RhdGUuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuaAppbmRleCAwOWFj
MDc5YTA1OTgzOGY0NGY2OGRiNTk5ZjU2NWVkM2M5MTgwY2JkLi5lMGFiM2VkYWE5MGY0NTdlOTMw
MjVmNDEyYTZiOTE0Y2UxZTkwNGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuaApAQCAtMzQsNiAr
MzQsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDQ0xheWVySW1wbDsKK2NsYXNz
IENDT3ZlcmRyYXdNZXRyaWNzOwogY2xhc3MgQ0NSZW5kZXJTdXJmYWNlOwogY2xhc3MgQ0NTaGFy
ZWRRdWFkU3RhdGU7CiAKQEAgLTQ5LDI4ICs1MCwxMiBAQCBwdWJsaWM6CiAgICAgaW5saW5lIGNv
bnN0QmFja1RvRnJvbnRJdGVyYXRvciBiYWNrVG9Gcm9udEVuZCgpIGNvbnN0IHsgcmV0dXJuIHJl
bmQoKTsgfQogfTsKIAotc3RydWN0IENDT3ZlcmRyYXdDb3VudHMgewotICAgIENDT3ZlcmRyYXdD
b3VudHMoKQotICAgICAgIDogbV9waXhlbHNEcmF3bk9wYXF1ZSgwKQotICAgICAgICwgbV9waXhl
bHNEcmF3blRyYW5zcGFyZW50KDApCi0gICAgICAgLCBtX3BpeGVsc0N1bGxlZCgwKQotICAgIHsK
LSAgICB9Ci0gICAgLy8gQ291bnQgb2YgcGl4ZWxzIHRoYXQgYXJlIG9wYXF1ZSAoYW5kIHRodXMg
b2NjbHVkZSkuIElkZWFsbHkgdGhpcyBpcyBubyBtb3JlCi0gICAgLy8gdGhhbiB3aWV3cG9ydCB3
aWR0aCB4IGhlaWdodC4KLSAgICBmbG9hdCBtX3BpeGVsc0RyYXduT3BhcXVlOwotICAgIC8vIENv
dW50IG9mIHBpeGVscyB0aGF0IGFyZSBwb3NzaWJseSB0cmFuc3BhcmVudCwgYW5kIGNhbm5vdCBv
Y2NsdWRlLgotICAgIGZsb2F0IG1fcGl4ZWxzRHJhd25UcmFuc3BhcmVudDsKLSAgICAvLyBDb3Vu
dCBvZiBwaXhlbHMgbm90IGRyYXduIGFzIHRoZXkgYXJlIG9jY2x1ZGVkIGJ5IHNvbXRoaW5nIG9w
YXF1ZS4KLSAgICBmbG9hdCBtX3BpeGVsc0N1bGxlZDsKLX07Ci0KIGNsYXNzIENDUmVuZGVyUGFz
cyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ0NSZW5kZXJQYXNzKTsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc093blB0cjxDQ1JlbmRlclBhc3M+IGNyZWF0ZShDQ1JlbmRlclN1cmZhY2Uq
KTsKIAotICAgIHZvaWQgYXBwZW5kUXVhZHNGb3JMYXllcihDQ0xheWVySW1wbCosIENDT2NjbHVz
aW9uVHJhY2tlckltcGwqLCBDQ092ZXJkcmF3Q291bnRzKik7CisgICAgdm9pZCBhcHBlbmRRdWFk
c0ZvckxheWVyKENDTGF5ZXJJbXBsKiwgQ0NPY2NsdXNpb25UcmFja2VySW1wbCosIENDT3ZlcmRy
YXdNZXRyaWNzKik7CiAgICAgdm9pZCBhcHBlbmRRdWFkc0ZvclJlbmRlclN1cmZhY2VMYXllcihD
Q0xheWVySW1wbCopOwogCiAgICAgY29uc3QgQ0NRdWFkTGlzdCYgcXVhZExpc3QoKSBjb25zdCB7
IHJldHVybiBtX3F1YWRMaXN0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDUXVhZEN1bGxlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ1F1YWRDdWxsZXJUZXN0LmNwcAppbmRleCA4YTEwNDFhODdlNDQ4MDZiM2M2Yzc3NGFjMDAy
Y2VmMTlhOTY0NmMzLi5iMjNhYWVlNGIyNTM3ODcwNzk4M2EzMmE2NjRhZGQ5MTFjOGE3OWNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDUXVhZEN1bGxlclRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NRdWFkQ3VsbGVyVGVzdC5j
cHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjYy9DQ1F1YWRDdWxsZXIuaCIKIAogI2lu
Y2x1ZGUgImNjL0NDT2NjbHVzaW9uVHJhY2tlci5oIgorI2luY2x1ZGUgImNjL0NDT3ZlcmRyYXdN
ZXRyaWNzLmgiCiAjaW5jbHVkZSAiY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oIgogI2luY2x1ZGUg
ImNjL0NDVGlsZWRMYXllckltcGwuaCIKICNpbmNsdWRlICJjYy9DQ1RpbGVEcmF3UXVhZC5oIgpA
QCAtNzcsNyArNzgsNyBAQCBzdGF0aWMgUGFzc093blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBtYWtl
TGF5ZXIoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIGRyYXdUcgogICAgIHJldHVybiBsYXll
ci5yZWxlYXNlKCk7CiB9CiAKLXN0YXRpYyB2b2lkIGFwcGVuZFF1YWRzKENDUXVhZExpc3QmIHF1
YWRMaXN0LCBDQ1RpbGVkTGF5ZXJJbXBsKiBsYXllciwgQ0NPY2NsdXNpb25UcmFja2VySW1wbCYg
b2NjbHVzaW9uVHJhY2tlciwgQ0NPdmVyZHJhd0NvdW50cyYgb3ZlcmRyYXcpCitzdGF0aWMgdm9p
ZCBhcHBlbmRRdWFkcyhDQ1F1YWRMaXN0JiBxdWFkTGlzdCwgQ0NUaWxlZExheWVySW1wbCogbGF5
ZXIsIENDT2NjbHVzaW9uVHJhY2tlckltcGwmIG9jY2x1c2lvblRyYWNrZXIsIENDT3ZlcmRyYXdN
ZXRyaWNzJiBvdmVyZHJhdykKIHsKICAgICBDQ1F1YWRDdWxsZXIgcXVhZEN1bGxlcihxdWFkTGlz
dCwgbGF5ZXIsICZvY2NsdXNpb25UcmFja2VyLCAmb3ZlcmRyYXcpOwogICAgIE93blB0cjxDQ1No
YXJlZFF1YWRTdGF0ZT4gc2hhcmVkUXVhZFN0YXRlID0gbGF5ZXItPmNyZWF0ZVNoYXJlZFF1YWRT
dGF0ZSgpOwpAQCAtODcsNyArODgsNyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRRdWFkcyhDQ1F1YWRM
aXN0JiBxdWFkTGlzdCwgQ0NUaWxlZExheWVySW1wbCogbGF5ZXIsIENDT2NjbHVzaQogI2RlZmlu
ZSBERUNMQVJFX0FORF9JTklUSUFMSVpFX1RFU1RfUVVBRFMgICAgICAgICAgICAgICBcCiAgICAg
RGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGw7ICAgICAgICAgICAgICAgICAgICAgIFwKICAg
ICBDQ1F1YWRMaXN0IHF1YWRMaXN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIENDT3ZlcmRyYXdDb3VudHMgb3ZlcmRyYXc7ICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgQ0NPdmVyZHJhd01ldHJpY3Mgb3ZlcmRyYXc7ICAgICAgICAgICAgICAgICAgICAgICAg
IFwKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjaGlsZFRyYW5zZm9ybTsgICAgICAgICAgICAg
ICAgXAogICAgIEludFNpemUgcm9vdFNpemUgPSBJbnRTaXplKDMwMCwgMzAwKTsgICAgICAgICAg
ICAgICBcCiAgICAgSW50UmVjdCByb290UmVjdCA9IEludFJlY3QoSW50UG9pbnQoKSwgcm9vdFNp
emUpOyAgIFwKQEAgLTEwNSw5ICsxMDYsOSBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlm
eU5vQ3VsbGluZykKICAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgY2hpbGRMYXllci5nZXQoKSwg
b2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOwogICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCBy
b290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKICAgICBFWFBFQ1Rf
RVEocXVhZExpc3Quc2l6ZSgpLCAxM3UpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4
ZWxzRHJhd25PcGFxdWUsIDEzMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9w
aXhlbHNEcmF3blRyYW5zcGFyZW50LCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5t
X3BpeGVsc0N1bGxlZCwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJh
d25PcGFxdWUoKSwgMTMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNE
cmF3blRyYW5zbHVjZW50KCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVs
c0N1bGxlZCgpLCAwLCAxKTsKIH0KIAogLy8gRmFpbHMgb24gV2luZG93cyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEwODMKQEAgLTEyMyw5ICsxMjQsOSBAQCBURVNU
KENDUXVhZEN1bGxlclRlc3QsIEZBSUxTX3ZlcmlmeUN1bGxDaGlsZExpbmVzVXBUb3BMZWZ0KQog
ICAgIG9jY2x1c2lvblRyYWNrZXIubWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIoY2hpbGRMYXllci5n
ZXQoKSk7CiAgICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5nZXQoKSwgb2NjbHVz
aW9uVHJhY2tlciwgb3ZlcmRyYXcpOwogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDl1
KTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduT3BhcXVlLCA5MDAwMCwg
MSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3blRyYW5zcGFyZW50LCAw
LCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0N1bGxlZCwgNDAwMDAsIDEp
OworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3BhcXVlKCksIDkwMDAwLCAx
KTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAs
IDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0N1bGxlZCgpLCA0MDAwMCwgMSk7
CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbFdoZW5DaGlsZE9wYWNpdHlO
b3RPbmUpCkBAIC0xNDAsOSArMTQxLDkgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlD
dWxsV2hlbkNoaWxkT3BhY2l0eU5vdE9uZSkKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2Ns
dWRlZEJlaGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0KCkpOwogICAgIGFwcGVuZFF1YWRzKHF1YWRM
aXN0LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKICAgICBF
WFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCAxM3UpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3
Lm1fcGl4ZWxzRHJhd25PcGFxdWUsIDkwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJh
dy5tX3BpeGVsc0RyYXduVHJhbnNwYXJlbnQsIDQwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihv
dmVyZHJhdy5tX3BpeGVsc0N1bGxlZCwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcu
cGl4ZWxzRHJhd25PcGFxdWUoKSwgOTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3
LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgNDAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92
ZXJkcmF3LnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0
LCB2ZXJpZnlDdWxsV2hlbkNoaWxkT3BhcXVlRmxhZ0ZhbHNlKQpAQCAtMTU3LDkgKzE1OCw5IEBA
IFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbFdoZW5DaGlsZE9wYXF1ZUZsYWdGYWxz
ZSkKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNoaWxkTGF5
ZXIuZ2V0KCkpOwogICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9j
Y2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgp
LCAxM3UpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25PcGFxdWUsIDkw
MDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduVHJhbnNwYXJl
bnQsIDQwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0N1bGxlZCwg
MCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25PcGFxdWUoKSwgOTAw
MDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQo
KSwgNDAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0N1bGxlZCgpLCAw
LCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsQ2VudGVyVGlsZU9u
bHkpCkBAIC0xOTIsOSArMTkzLDkgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxs
Q2VudGVyVGlsZU9ubHkpCiAgICAgRVhQRUNUX0VRKHF1YWRWaXNpYmxlUmVjdDYuaGVpZ2h0KCks
IDUwKTsKICAgICBFWFBFQ1RfRVEocXVhZFZpc2libGVSZWN0Ni55KCksIDI1MCk7CiAKLSAgICBF
WFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduT3BhcXVlLCAxMDAwMDAsIDEpOwotICAg
IEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25UcmFuc3BhcmVudCwgMCwgMSk7Ci0g
ICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNDdWxsZWQsIDMwMDAwLCAxKTsKKyAgICBF
WFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxMDAwMDAsIDEpOworICAg
IEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7Cisg
ICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVkKCksIDMwMDAwLCAxKTsKIH0KIAog
VEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsQ2VudGVyVGlsZU5vbkludGVncmFsU2l6
ZTEpCkBAIC0yMjAsOSArMjIxLDkgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxs
Q2VudGVyVGlsZU5vbkludGVncmFsU2l6ZTEpCiAgICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJv
b3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOwogICAgIEVYUEVDVF9F
UShxdWFkTGlzdC5zaXplKCksIDJ1KTsKIAotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4
ZWxzRHJhd25PcGFxdWUsIDIwMzYzLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3Bp
eGVsc0RyYXduVHJhbnNwYXJlbnQsIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1f
cGl4ZWxzQ3VsbGVkLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3
bk9wYXF1ZSgpLCAyMDM2MywgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJh
d25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHND
dWxsZWQoKSwgMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbENl
bnRlclRpbGVOb25JbnRlZ3JhbFNpemUyKQpAQCAtMjQ4LDkgKzI0OSw5IEBAIFRFU1QoQ0NRdWFk
Q3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbENlbnRlclRpbGVOb25JbnRlZ3JhbFNpemUyKQogICAgIGFw
cGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92
ZXJkcmF3KTsKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCAydSk7CiAKLSAgICBFWFBF
Q1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduT3BhcXVlLCAxOTY0MywgMSk7Ci0gICAgRVhQ
RUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3blRyYW5zcGFyZW50LCAwLCAxKTsKLSAgICBF
WFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0N1bGxlZCwgMCwgMSk7CisgICAgRVhQRUNUX05F
QVIob3ZlcmRyYXcucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTk2NDMsIDEpOworICAgIEVYUEVDVF9O
RUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7CisgICAgRVhQRUNU
X05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1
bGxlclRlc3QsIHZlcmlmeUN1bGxDaGlsZExpbmVzVXBCb3R0b21SaWdodCkKQEAgLTI2Nyw5ICsy
NjgsOSBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxDaGlsZExpbmVzVXBCb3R0
b21SaWdodCkKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNo
aWxkTGF5ZXIuZ2V0KCkpOwogICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0
KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKICAgICBFWFBFQ1RfRVEocXVhZExpc3Qu
c2l6ZSgpLCA5dSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3bk9wYXF1
ZSwgOTAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25UcmFu
c3BhcmVudCwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNDdWxsZWQs
IDQwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3bk9wYXF1ZSgp
LCA5MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFuc2x1
Y2VudCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNDdWxsZWQoKSwg
NDAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxTdWJSZWdp
b24pCkBAIC0yODcsOSArMjg4LDkgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxs
U3ViUmVnaW9uKQogICAgIG9jY2x1c2lvblRyYWNrZXIubWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIo
Y2hpbGRMYXllci5nZXQoKSk7CiAgICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5n
ZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOwogICAgIEVYUEVDVF9FUShxdWFkTGlz
dC5zaXplKCksIDEydSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3bk9w
YXF1ZSwgOTAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25U
cmFuc3BhcmVudCwgMzAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxz
Q3VsbGVkLCAxMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25P
cGFxdWUoKSwgOTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXdu
VHJhbnNsdWNlbnQoKSwgMzAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVs
c0N1bGxlZCgpLCAxMDAwMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5
Q3VsbFN1YlJlZ2lvbjIpCkBAIC0zMDcsOSArMzA4LDkgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0
LCB2ZXJpZnlDdWxsU3ViUmVnaW9uMikKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRl
ZEJlaGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0KCkpOwogICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0
LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKICAgICBFWFBF
Q1RfRVEocXVhZExpc3Quc2l6ZSgpLCAxMnUpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1f
cGl4ZWxzRHJhd25PcGFxdWUsIDkwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5t
X3BpeGVsc0RyYXduVHJhbnNwYXJlbnQsIDI1MDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVy
ZHJhdy5tX3BpeGVsc0N1bGxlZCwgMTUwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3
LnBpeGVsc0RyYXduT3BhcXVlKCksIDkwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJh
dy5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDI1MDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihv
dmVyZHJhdy5waXhlbHNDdWxsZWQoKSwgMTUwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxl
clRlc3QsIHZlcmlmeUN1bGxTdWJSZWdpb25DaGVja092ZXJjdWxsKQpAQCAtMzI3LDkgKzMyOCw5
IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbFN1YlJlZ2lvbkNoZWNrT3ZlcmN1
bGwpCiAgICAgb2NjbHVzaW9uVHJhY2tlci5tYXJrT2NjbHVkZWRCZWhpbmRMYXllcihjaGlsZExh
eWVyLmdldCgpKTsKICAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgpLCBv
Y2NsdXNpb25UcmFja2VyLCBvdmVyZHJhdyk7CiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNpemUo
KSwgMTN1KTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduT3BhcXVlLCA5
MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3blRyYW5zcGFy
ZW50LCAzMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNDdWxsZWQs
IDEwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3bk9wYXF1ZSgp
LCA5MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFuc2x1
Y2VudCgpLCAzMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVk
KCksIDEwMDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlOb25BeGlz
QWxpZ25lZFF1YWRzRG9udE9jY2x1ZGUpCkBAIC0zNDcsOSArMzQ4LDkgQEAgVEVTVChDQ1F1YWRD
dWxsZXJUZXN0LCB2ZXJpZnlOb25BeGlzQWxpZ25lZFF1YWRzRG9udE9jY2x1ZGUpCiAgICAgb2Nj
bHVzaW9uVHJhY2tlci5tYXJrT2NjbHVkZWRCZWhpbmRMYXllcihjaGlsZExheWVyLmdldCgpKTsK
ICAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFj
a2VyLCBvdmVyZHJhdyk7CiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNpemUoKSwgMTN1KTsKLSAg
ICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduT3BhcXVlLCAxMzAwMDAsIDEpOwot
ICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25UcmFuc3BhcmVudCwgMCwgMSk7
Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNDdWxsZWQsIDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3BhcXVlKCksIDEzMDAwMCwgMSk7CisgICAg
RVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKKyAg
ICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CiB9CiAKIC8vIFRo
aXMgdGVzdCByZXF1aXJlcyBzb21lIGV4cGxhbmF0aW9uOiBoZXJlIHdlIGFyZSByb3RhdGluZyB0
aGUgcXVhZHMgdG8gYmUgY3VsbGVkLgpAQCAtMzczLDkgKzM3NCw5IEBAIFRFU1QoQ0NRdWFkQ3Vs
bGVyVGVzdCwgdmVyaWZ5Tm9uQXhpc0FsaWduZWRRdWFkc1NhZmVseUN1bGxlZCkKICAgICBvY2Ns
dXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0KCkpOwog
ICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNr
ZXIsIG92ZXJkcmF3KTsKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCAxMnUpOwotICAg
IEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25PcGFxdWUsIDEwMDYwMCwgMSk7Ci0g
ICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3blRyYW5zcGFyZW50LCAwLCAxKTsK
LSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0N1bGxlZCwgMjk0MDAsIDEpOworICAg
IEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3BhcXVlKCksIDEwMDYwMCwgMSk7Cisg
ICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsK
KyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNDdWxsZWQoKSwgMjk0MDAsIDEpOwogfQog
CiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92ZXJUaWxl
KQpAQCAtMzkwLDkgKzM5MSw5IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbE91
dHNpZGVTY2lzc29yT3ZlclRpbGUpCiAgICAgb2NjbHVzaW9uVHJhY2tlci5tYXJrT2NjbHVkZWRC
ZWhpbmRMYXllcihjaGlsZExheWVyLmdldCgpKTsKICAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwg
cm9vdExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyLCBvdmVyZHJhdyk7CiAgICAgRVhQRUNU
X0VRKHF1YWRMaXN0LnNpemUoKSwgMXUpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4
ZWxzRHJhd25PcGFxdWUsIDEwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3Bp
eGVsc0RyYXduVHJhbnNwYXJlbnQsIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1f
cGl4ZWxzQ3VsbGVkLCAxMjAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVs
c0RyYXduT3BhcXVlKCksIDEwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhl
bHNEcmF3blRyYW5zbHVjZW50KCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBp
eGVsc0N1bGxlZCgpLCAxMjAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZl
cmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92ZXJDdWxsZWRUaWxlKQpAQCAtNDA3LDkgKzQwOCw5IEBA
IFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbE91dHNpZGVTY2lzc29yT3ZlckN1bGxl
ZFRpbGUpCiAgICAgb2NjbHVzaW9uVHJhY2tlci5tYXJrT2NjbHVkZWRCZWhpbmRMYXllcihjaGls
ZExheWVyLmdldCgpKTsKICAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgp
LCBvY2NsdXNpb25UcmFja2VyLCBvdmVyZHJhdyk7CiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNp
emUoKSwgMXUpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25PcGFxdWUs
IDEwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduVHJhbnNw
YXJlbnQsIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzQ3VsbGVkLCAx
MjAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3BhcXVlKCks
IDEwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3blRyYW5zbHVj
ZW50KCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0N1bGxlZCgpLCAx
MjAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxPdXRzaWRl
U2Npc3Nvck92ZXJQYXJ0aWFsVGlsZXMpCkBAIC00MjQsOSArNDI1LDkgQEAgVEVTVChDQ1F1YWRD
dWxsZXJUZXN0LCB2ZXJpZnlDdWxsT3V0c2lkZVNjaXNzb3JPdmVyUGFydGlhbFRpbGVzKQogICAg
IG9jY2x1c2lvblRyYWNrZXIubWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIoY2hpbGRMYXllci5nZXQo
KSk7CiAgICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9u
VHJhY2tlciwgb3ZlcmRyYXcpOwogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDl1KTsK
LSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduT3BhcXVlLCA0MDAwMCwgMSk7
Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3blRyYW5zcGFyZW50LCAwLCAx
KTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0N1bGxlZCwgOTAwMDAsIDEpOwor
ICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3BhcXVlKCksIDQwMDAwLCAxKTsK
KyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAsIDEp
OworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0N1bGxlZCgpLCA5MDAwMCwgMSk7CiB9
CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbE91dHNpZGVTY2lzc29yT3Zlck5v
VGlsZXMpCkBAIC00NDEsOSArNDQyLDkgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlD
dWxsT3V0c2lkZVNjaXNzb3JPdmVyTm9UaWxlcykKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtP
Y2NsdWRlZEJlaGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0KCkpOwogICAgIGFwcGVuZFF1YWRzKHF1
YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKICAg
ICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCAwdSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRy
YXcubV9waXhlbHNEcmF3bk9wYXF1ZSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcu
bV9waXhlbHNEcmF3blRyYW5zcGFyZW50LCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJh
dy5tX3BpeGVsc0N1bGxlZCwgMTMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5w
aXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhl
bHNEcmF3blRyYW5zbHVjZW50KCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBp
eGVsc0N1bGxlZCgpLCAxMzAwMDAsIDEpOwogfQogCiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131951</attachid>
            <date>2012-03-14 16:16:09 -0700</date>
            <delta_ts>2012-03-15 17:45:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81156-20120314191608.patch</filename>
            <type>text/plain</type>
            <size>35065</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY1MzIwYTc4Y2JjZTk5
ZGM1ZTEwMmU0YWIzMmMxNTI1NDEzNjNmYS4uMGI3Nzg3OWUxODFkZDM4ZGE1MjMyNjgzYTgzNWE3
NjQ1ZGIwY2Y1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTE0ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gTW92
ZSBvdmVyZHJhdyBtZXRyaWNzIGludG8gYSB0ZW1wbGF0ZWQgY2xhc3MgZm9yIGJvdGggcGFpbnQg
YW5kIGRyYXcgbWV0cmljcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgxMTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ3JlYXRlcyBDQ092ZXJkcmF3TWV0cmljcyB3aGljaCBjYW4gYmUgY2FsbGVkIHRv
IGluZm9ybSBpdCBhYm91dAorICAgICAgICBkcmF3cy9wYWludHMuIEF0IHRoZSBlbmQgb2YgdGhl
IGZyYW1lLCB0aGUgQ0NPdmVyZHJhd01ldHJpY3MKKyAgICAgICAgcmVjb3JkTWV0cmljcygpIG1l
dGhvZCB3aWxsIHB1dCBpdHMgZGF0YSBpbnRvIGhpc3RvZ3JhbXMsIGEKKyAgICAgICAgVFJBQ0Vf
Q09VTlRFUiBmb3IgY3VsbGluZyBpbmZvcm1hdGlvbiwgYW5kIGEgVFJBQ0VfRVZFTlQgZm9yIGRl
dGFpbHMKKyAgICAgICAgYWJvdXQgdGhlIG51bWJlciBvZiBvcGFxdWUvdHJhbnNsdWNlbnQgcGl4
ZWxzLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBX
ZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVHJhY2VFdmVudC5oOgor
ICAgICAgICAoVHJhY2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpUcmFjZUV2ZW50OjphZGRU
cmFjZUV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdElt
cGw6OmNhbGN1bGF0ZVJlbmRlclBhc3Nlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NPdmVyZHJhd01ldHJpY3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01ldHJpY3M6OkNDT3ZlcmRyYXdNZXRy
aWNzKToKKyAgICAgICAgKFdlYkNvcmU6OndlZGdlUHJvZHVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpxdWFkQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpDQ092ZXJkcmF3TWV0cmljczo6ZGlkRHJh
dyk6CisgICAgICAgIChXZWJDb3JlOjpDQ092ZXJkcmF3TWV0cmljczo6cmVjb3JkTWV0cmljcyk6
CisgICAgICAgIChXZWJDb3JlOjpDQ092ZXJkcmF3TWV0cmljczo6cmVjb3JkTWV0cmljc0ludGVy
bmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ092ZXJkcmF3
TWV0cmljcy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ0NPdmVyZHJh
d01ldHJpY3MpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01ldHJpY3M6OnBpeGVsc0Ry
YXduT3BhcXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdNZXRyaWNzOjpwaXhlbHNE
cmF3blRyYW5zbHVjZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdNZXRyaWNzOjpw
aXhlbHNDdWxsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
UXVhZEN1bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1F1YWRDdWxsZXI6OkNDUXVhZEN1
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpDQ1F1YWRDdWxsZXI6OmFwcGVuZCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKENDUXVhZEN1bGxlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNDUmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JMYXllcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKENDUmVuZGVyUGFzcyk6CisKIDIwMTItMDMtMTQgIFNpbW9uIEhhdXNtYW5uICA8
c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gUnVuTG9vcFF0IGlzIG1p
c3NpbmcgcmVlbnRyYW5jeSBndWFyZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZWY4
MGRhMTZkY2I4MWRiMGVlZDYyMGM0ODE4Nzg3OWM5M2VkMThkMS4uYjk1ODcyOTZiMWNlNTY3MTM5
NzBjMzgxNjU5MDNkZDM0MTUwZjg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMi0wMy0xNCAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIE1vdmUgb3ZlcmRyYXcgbWV0cmljcyBpbnRvIGEgdGVt
cGxhdGVkIGNsYXNzIGZvciBib3RoIHBhaW50IGFuZCBkcmF3IG1ldHJpY3MuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTE1NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvQ0NRdWFkQ3VsbGVy
VGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRRdWFkcyk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorCiAyMDEyLTAzLTEzICBIYWppbWUgTW9y
cml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIG1hcmsg
dmVyaWZ5Q3VsbENoaWxkTGluZXNVcFRvcExlZnQoKSBhcyBmYWlsZWQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggNTcxMmZkNDQxYjUxYzI0NmZiZjkxZWFmYTE4ZDhhMjljNDExYjhkZS4uZmIxZjRiZmJj
NmRhMDJlYjQyNTRkNzI5YjgwMzQ2NjZkNjE1NmQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzQ3
OSw2ICszNDc5LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tlci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tlci5oJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ092ZXJkcmF3TWV0cmljcy5jcHAn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT3ZlcmRyYXdN
ZXRyaWNzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
UGFnZVNjYWxlQW5pbWF0aW9uLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NQYWdlU2NhbGVBbmltYXRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQbHVnaW5EcmF3UXVhZC5jcHAnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAppbmRleCA1YzdmNTY1ZjdkMTJjMWI2ODU1OTBl
ZDE2NzczZGEyYzBmZWE4NjVkLi5iOWIzYTQ2YTRjODhjMzQ5MmIxY2Q1MDE0ZTIxMDY2OGNjOTk2
MzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcApAQCAtMzUsNiAr
MzUsNyBAQAogI2luY2x1ZGUgImNjL0NDTGF5ZXJJdGVyYXRvci5oIgogI2luY2x1ZGUgImNjL0ND
TGF5ZXJUcmVlSG9zdC5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5oIgor
I2luY2x1ZGUgImNjL0NDT3ZlcmRyYXdNZXRyaWNzLmgiCiAjaW5jbHVkZSAiY2MvQ0NQYWdlU2Nh
bGVBbmltYXRpb24uaCIKICNpbmNsdWRlICJjYy9DQ1JlbmRlclN1cmZhY2VEcmF3UXVhZC5oIgog
I2luY2x1ZGUgImNjL0NDVGhyZWFkVGFzay5oIgpAQCAtMjYwLDcgKzI2MSw3IEBAIHZvaWQgQ0NM
YXllclRyZWVIb3N0SW1wbDo6Y2FsY3VsYXRlUmVuZGVyUGFzc2VzKENDUmVuZGVyUGFzc0xpc3Qm
IHBhc3NlcywgQ0NMYXllCiAgICAgfQogCiAgICAgLy8gRklYTUU6IGNvbXB1dGUgb3ZlcmRyYXcg
bWV0cmljcyBvbmx5IG9jY2FzaW9uYWxseSwgbm90IGV2ZXJ5IGZyYW1lLgotICAgIENDT3ZlcmRy
YXdDb3VudHMgb3ZlcmRyYXdDb3VudHM7CisgICAgQ0NPdmVyZHJhd01ldHJpY3Mgb3ZlcmRyYXdN
ZXRyaWNzOwogCiAgICAgSW50UmVjdCBzY2lzc29yUmVjdDsKICAgICBpZiAobGF5ZXJSZW5kZXJl
ckNhcGFiaWxpdGllcygpLnVzaW5nUGFydGlhbFN3YXApCkBAIC0yOTUsMTQgKzI5NiwxMSBAQCB2
b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmNhbGN1bGF0ZVJlbmRlclBhc3NlcyhDQ1JlbmRlclBh
c3NMaXN0JiBwYXNzZXMsIENDTGF5ZQogICAgICAgICB9CiAKICAgICAgICAgaXQtPndpbGxEcmF3
KG1fbGF5ZXJSZW5kZXJlci5nZXQoKSk7Ci0gICAgICAgIHBhc3MtPmFwcGVuZFF1YWRzRm9yTGF5
ZXIoKml0LCAmb2NjbHVzaW9uVHJhY2tlciwgJm92ZXJkcmF3Q291bnRzKTsKKyAgICAgICAgcGFz
cy0+YXBwZW5kUXVhZHNGb3JMYXllcigqaXQsICZvY2NsdXNpb25UcmFja2VyLCAmb3ZlcmRyYXdN
ZXRyaWNzKTsKICAgICAgICAgb2NjbHVzaW9uVHJhY2tlci5tYXJrT2NjbHVkZWRCZWhpbmRMYXll
cigqaXQpOwogICAgIH0KIAotICAgIGZsb2F0IG5vcm1hbGl6YXRpb24gPSAxMDAwLmYgLyAobV9s
YXllclJlbmRlcmVyLT52aWV3cG9ydFdpZHRoKCkgKiBtX2xheWVyUmVuZGVyZXItPnZpZXdwb3J0
SGVpZ2h0KCkpOwotICAgIFBsYXRmb3JtU3VwcG9ydDo6aGlzdG9ncmFtQ3VzdG9tQ291bnRzKCJS
ZW5kZXJlcjQucGl4ZWxPdmVyZHJhd09wYXF1ZSIsIHN0YXRpY19jYXN0PGludD4obm9ybWFsaXph
dGlvbiAqIG92ZXJkcmF3Q291bnRzLm1fcGl4ZWxzRHJhd25PcGFxdWUpLCAxMDAsIDEwMDAwMDAs
IDUwKTsKLSAgICBQbGF0Zm9ybVN1cHBvcnQ6Omhpc3RvZ3JhbUN1c3RvbUNvdW50cygiUmVuZGVy
ZXI0LnBpeGVsT3ZlcmRyYXdUcmFuc3BhcmVudCIsIHN0YXRpY19jYXN0PGludD4obm9ybWFsaXph
dGlvbiAqIG92ZXJkcmF3Q291bnRzLm1fcGl4ZWxzRHJhd25UcmFuc3BhcmVudCksIDEwMCwgMTAw
MDAwMCwgNTApOwotICAgIFBsYXRmb3JtU3VwcG9ydDo6aGlzdG9ncmFtQ3VzdG9tQ291bnRzKCJS
ZW5kZXJlcjQucGl4ZWxPdmVyZHJhd0N1bGxlZCIsIHN0YXRpY19jYXN0PGludD4obm9ybWFsaXph
dGlvbiAqIG92ZXJkcmF3Q291bnRzLm1fcGl4ZWxzQ3VsbGVkKSwgMTAwLCAxMDAwMDAwLCA1MCk7
CisgICAgb3ZlcmRyYXdNZXRyaWNzLnJlY29yZE1ldHJpY3ModGhpcyk7CiB9CiAKIHZvaWQgQ0NM
YXllclRyZWVIb3N0SW1wbDo6YW5pbWF0ZUxheWVyc1JlY3Vyc2l2ZShDQ0xheWVySW1wbCogY3Vy
cmVudCwgZG91YmxlIG1vbm90b25pY1RpbWUsIGRvdWJsZSB3YWxsQ2xvY2tUaW1lLCBDQ0FuaW1h
dGlvbkV2ZW50c1ZlY3RvciYgZXZlbnRzLCBib29sJiBkaWRBbmltYXRlLCBib29sJiBuZWVkc0Fu
aW1hdGVMYXllcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ092ZXJkcmF3TWV0cmljcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ092ZXJkcmF3TWV0cmljcy5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGNiMmY0YjgwZGI5ZmRkODNhYzY5M2UwYTVjYjlkNDA4OTBmZjNlNgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT3Zl
cmRyYXdNZXRyaWNzLmNwcApAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCisjaW5j
bHVkZSAiY2MvQ0NPdmVyZHJhd01ldHJpY3MuaCIKKworI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgor
I2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCisjaW5jbHVkZSAi
VHJhbnNmb3JtYXRpb25NYXRyaXguaCIKKyNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIK
KyNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworQ0NPdmVyZHJhd01ldHJpY3M6OkNDT3ZlcmRyYXdNZXRyaWNzKCkKKyAgICA6IG1fcGl4
ZWxzRHJhd25PcGFxdWUoMCkKKyAgICAsIG1fcGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgwKQorICAg
ICwgbV9waXhlbHNDdWxsZWQoMCkKK3sKK30KKworc3RhdGljIGlubGluZSBmbG9hdCB3ZWRnZVBy
b2R1Y3QoY29uc3QgRmxvYXRQb2ludCYgcDEsIGNvbnN0IEZsb2F0UG9pbnQmIHAyKQoreworICAg
IHJldHVybiBwMS54KCkgKiBwMi55KCkgLSBwMS55KCkgKiBwMi54KCk7Cit9CisKKy8vIENvbXB1
dGVzIGFyZWEgb2YgcXVhZHMgdGhhdCBhcmUgcG9zc2libHkgbm9uLXJlY3Rhbmd1bGFyLiBDYW4g
YmUgZWFzaWx5IGV4dGVuZGVkIHRvIHBvbHlnb25zLgorc3RhdGljIGlubGluZSBmbG9hdCBxdWFk
QXJlYShjb25zdCBGbG9hdFF1YWQmIHF1YWQpCit7CisgICAgcmV0dXJuIGZhYnMoMC41ICogKHdl
ZGdlUHJvZHVjdChxdWFkLnAxKCksIHF1YWQucDIoKSkgKworICAgICAgICAgICAgICAgICAgICAg
ICB3ZWRnZVByb2R1Y3QocXVhZC5wMigpLCBxdWFkLnAzKCkpICsKKyAgICAgICAgICAgICAgICAg
ICAgICAgd2VkZ2VQcm9kdWN0KHF1YWQucDMoKSwgcXVhZC5wNCgpKSArCisgICAgICAgICAgICAg
ICAgICAgICAgIHdlZGdlUHJvZHVjdChxdWFkLnA0KCksIHF1YWQucDEoKSkpKTsKK30KKwordm9p
ZCBDQ092ZXJkcmF3TWV0cmljczo6ZGlkRHJhdyhjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
dHJhbnNmb3JtVG9UYXJnZXQsIGNvbnN0IEludFJlY3QmIGJlZm9yZUN1bGxSZWN0LCBjb25zdCBJ
bnRSZWN0JiBhZnRlckN1bGxSZWN0LCBjb25zdCBJbnRSZWN0JiBvcGFxdWVSZWN0KQoreworICAg
IGZsb2F0IGJlZm9yZUN1bGxBcmVhID0gcXVhZEFyZWEodHJhbnNmb3JtVG9UYXJnZXQubWFwUXVh
ZChGbG9hdFF1YWQoYmVmb3JlQ3VsbFJlY3QpKSk7CisgICAgZmxvYXQgYWZ0ZXJDdWxsQXJlYSA9
IHF1YWRBcmVhKHRyYW5zZm9ybVRvVGFyZ2V0Lm1hcFF1YWQoRmxvYXRRdWFkKGFmdGVyQ3VsbFJl
Y3QpKSk7CisgICAgZmxvYXQgYWZ0ZXJDdWxsT3BhcXVlQXJlYSA9IHF1YWRBcmVhKHRyYW5zZm9y
bVRvVGFyZ2V0Lm1hcFF1YWQoRmxvYXRRdWFkKGludGVyc2VjdGlvbihvcGFxdWVSZWN0LCBhZnRl
ckN1bGxSZWN0KSkpKTsKKworICAgIG1fcGl4ZWxzRHJhd25PcGFxdWUgKz0gYWZ0ZXJDdWxsT3Bh
cXVlQXJlYTsKKyAgICBtX3BpeGVsc0RyYXduVHJhbnNsdWNlbnQgKz0gYWZ0ZXJDdWxsQXJlYSAt
IGFmdGVyQ3VsbE9wYXF1ZUFyZWE7CisgICAgbV9waXhlbHNDdWxsZWQgKz0gYmVmb3JlQ3VsbEFy
ZWEgLSBhZnRlckN1bGxBcmVhOworfQorCit2b2lkIENDT3ZlcmRyYXdNZXRyaWNzOjpyZWNvcmRN
ZXRyaWNzKGNvbnN0IENDTGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVlSG9zdCkgY29uc3QKK3sKKyAg
ICByZWNvcmRNZXRyaWNzSW50ZXJuYWw8Q0NMYXllclRyZWVIb3N0PihQQUlOVElORywgbGF5ZXJU
cmVlSG9zdCk7Cit9CisKK3ZvaWQgQ0NPdmVyZHJhd01ldHJpY3M6OnJlY29yZE1ldHJpY3MoY29u
c3QgQ0NMYXllclRyZWVIb3N0SW1wbCogbGF5ZXJUcmVlSG9zdCkgY29uc3QKK3sKKyAgICByZWNv
cmRNZXRyaWNzSW50ZXJuYWw8Q0NMYXllclRyZWVIb3N0SW1wbD4oRFJBV0lORywgbGF5ZXJUcmVl
SG9zdCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIExheWVyVHJlZUhvc3RUeXBlPgordm9pZCBD
Q092ZXJkcmF3TWV0cmljczo6cmVjb3JkTWV0cmljc0ludGVybmFsKE1ldHJpY3NUeXBlIG1ldHJp
Y3NUeXBlLCBjb25zdCBMYXllclRyZWVIb3N0VHlwZSogbGF5ZXJUcmVlSG9zdCkgY29uc3QKK3sK
KyAgICBjb25zdCBjaGFyKiBoaXN0b2dyYW1PcGFxdWVOYW1lID0gMDsKKyAgICBjb25zdCBjaGFy
KiBoaXN0b2dyYW1UcmFuc2x1Y2VudE5hbWUgPSAwOworICAgIGNvbnN0IGNoYXIqIGhpc3RvZ3Jh
bUN1bGxlZE5hbWUgPSAwOworICAgIGNvbnN0IGNoYXIqIGN1bGxDb3VudGVyTmFtZSA9IDA7Cisg
ICAgY29uc3QgY2hhciogb3BhcXVlQ291bnRlck5hbWUgPSAwOworICAgIGNvbnN0IGNoYXIqIHRy
YW5zbHVjZW50Q291bnRlck5hbWUgPSAwOworICAgIHN3aXRjaCAobWV0cmljc1R5cGUpIHsKKyAg
ICBjYXNlIERSQVdJTkc6CisgICAgICAgIGhpc3RvZ3JhbU9wYXF1ZU5hbWUgPSAiUmVuZGVyZXI0
LmRyYXdQaXhlbENvdW50T3BhcXVlIjsKKyAgICAgICAgaGlzdG9ncmFtVHJhbnNsdWNlbnROYW1l
ID0gIlJlbmRlcmVyNC5kcmF3UGl4ZWxDb3VudFRyYW5zbHVjZW50IjsKKyAgICAgICAgaGlzdG9n
cmFtQ3VsbGVkTmFtZSA9ICJSZW5kZXJlcjQuZHJhd1BpeGVsQ291bnRDdWxsZWQiOworICAgICAg
ICBjdWxsQ291bnRlck5hbWUgPSAiRHJhd1BpeGVsc0N1bGxlZCI7CisgICAgICAgIG9wYXF1ZUNv
dW50ZXJOYW1lID0gIlBpeGVsc0RyYXduT3BhcXVlIjsKKyAgICAgICAgdHJhbnNsdWNlbnRDb3Vu
dGVyTmFtZSA9ICJQaXhlbHNEcmF3blRyYW5zbHVjZW50IjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBQQUlOVElORzoKKyAgICAgICAgaGlzdG9ncmFtT3BhcXVlTmFtZSA9ICJSZW5kZXJlcjQu
cGFpbnRQaXhlbENvdW50T3BhcXVlIjsKKyAgICAgICAgaGlzdG9ncmFtVHJhbnNsdWNlbnROYW1l
ID0gIlJlbmRlcmVyNC5wYWludFBpeGVsQ291bnRUcmFuc2x1Y2VudCI7CisgICAgICAgIGhpc3Rv
Z3JhbUN1bGxlZE5hbWUgPSAiUmVuZGVyZXI0LnBhaW50UGl4ZWxDb3VudEN1bGxlZCI7CisgICAg
ICAgIGN1bGxDb3VudGVyTmFtZSA9ICJQYWludFBpeGVsc0N1bGxlZCI7CisgICAgICAgIG9wYXF1
ZUNvdW50ZXJOYW1lID0gIlBpeGVsc1BhaW50ZWRPcGFxdWUiOworICAgICAgICB0cmFuc2x1Y2Vu
dENvdW50ZXJOYW1lID0gIlBpeGVsc1BhaW50ZWRUcmFuc2x1Y2VudCI7CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICBBU1NFUlQoaGlzdG9ncmFtT3BhcXVlTmFtZSk7CisKKyAgICBmbG9hdCBu
b3JtYWxpemF0aW9uID0gMTAwMC5mIC8gKGxheWVyVHJlZUhvc3QtPnZpZXdwb3J0U2l6ZSgpLndp
ZHRoKCkgKiBsYXllclRyZWVIb3N0LT52aWV3cG9ydFNpemUoKS5oZWlnaHQoKSk7CisgICAgUGxh
dGZvcm1TdXBwb3J0OjpoaXN0b2dyYW1DdXN0b21Db3VudHMoaGlzdG9ncmFtT3BhcXVlTmFtZSwg
c3RhdGljX2Nhc3Q8aW50Pihub3JtYWxpemF0aW9uICogbV9waXhlbHNEcmF3bk9wYXF1ZSksIDEw
MCwgMTAwMDAwMCwgNTApOworICAgIFBsYXRmb3JtU3VwcG9ydDo6aGlzdG9ncmFtQ3VzdG9tQ291
bnRzKGhpc3RvZ3JhbVRyYW5zbHVjZW50TmFtZSwgc3RhdGljX2Nhc3Q8aW50Pihub3JtYWxpemF0
aW9uICogbV9waXhlbHNEcmF3blRyYW5zbHVjZW50KSwgMTAwLCAxMDAwMDAwLCA1MCk7CisgICAg
UGxhdGZvcm1TdXBwb3J0OjpoaXN0b2dyYW1DdXN0b21Db3VudHMoaGlzdG9ncmFtQ3VsbGVkTmFt
ZSwgc3RhdGljX2Nhc3Q8aW50Pihub3JtYWxpemF0aW9uICogbV9waXhlbHNDdWxsZWQpLCAxMDAs
IDEwMDAwMDAsIDUwKTsKKworICAgIFRSQUNFX0NPVU5URVJfSUQxKCJ3ZWJraXQiLCBjdWxsQ291
bnRlck5hbWUsIGxheWVyVHJlZUhvc3QsIG1fcGl4ZWxzQ3VsbGVkKTsKKyAgICBUUkFDRV9FVkVO
VDIoIndlYmtpdCIsICJDQ092ZXJkcmF3TWV0cmljcyIsIG9wYXF1ZUNvdW50ZXJOYW1lLCBtX3Bp
eGVsc0RyYXduT3BhcXVlLCB0cmFuc2x1Y2VudENvdW50ZXJOYW1lLCBtX3BpeGVsc0RyYXduVHJh
bnNsdWNlbnQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPdmVy
ZHJhd01ldHJpY3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y3MjM1Nzg1ZWNhNmZiZDI2MjMy
Y2YyZjJkOGNmYzNhNTg0M2RlMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmgKQEAgLTAsMCAr
MSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDQ092ZXJkcmF3TWV0cmljc19oCisjZGVm
aW5lIENDT3ZlcmRyYXdNZXRyaWNzX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSW50
UmVjdDsKK2NsYXNzIFRyYW5zZm9ybWF0aW9uTWF0cml4OworY2xhc3MgQ0NMYXllclRyZWVIb3N0
OworY2xhc3MgQ0NMYXllclRyZWVIb3N0SW1wbDsKKworY2xhc3MgQ0NPdmVyZHJhd01ldHJpY3Mg
eworcHVibGljOgorICAgIENDT3ZlcmRyYXdNZXRyaWNzKCk7CisKKyAgICB2b2lkIGRpZERyYXco
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybVRvVGFyZ2V0LCBjb25zdCBJbnRS
ZWN0JiBiZWZvcmVDdWxsUmVjdCwgY29uc3QgSW50UmVjdCYgYWZ0ZXJDdWxsUmVjdCwgY29uc3Qg
SW50UmVjdCYgb3BhcXVlUmVjdCk7CisKKyAgICB2b2lkIHJlY29yZE1ldHJpY3MoY29uc3QgQ0NM
YXllclRyZWVIb3N0KikgY29uc3Q7CisgICAgdm9pZCByZWNvcmRNZXRyaWNzKGNvbnN0IENDTGF5
ZXJUcmVlSG9zdEltcGwqKSBjb25zdDsKKworICAgIC8vIEFjY2Vzc29ycyBmb3IgdGVzdHMuCisg
ICAgZmxvYXQgcGl4ZWxzRHJhd25PcGFxdWUoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsc0RyYXdu
T3BhcXVlOyB9CisgICAgZmxvYXQgcGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGl4ZWxzRHJhd25UcmFuc2x1Y2VudDsgfQorICAgIGZsb2F0IHBpeGVsc0N1bGxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxzQ3VsbGVkOyB9CisKK3ByaXZhdGU6CisgICAgZW51bSBN
ZXRyaWNzVHlwZSB7CisgICAgICAgIERSQVdJTkcsCisgICAgICAgIFBBSU5USU5HCisgICAgfTsK
KworICAgIHRlbXBsYXRlPHR5cGVuYW1lIExheWVyVHJlZUhvc3RUeXBlPgorICAgIHZvaWQgcmVj
b3JkTWV0cmljc0ludGVybmFsKE1ldHJpY3NUeXBlLCBjb25zdCBMYXllclRyZWVIb3N0VHlwZSop
IGNvbnN0OworCisgICAgLy8gQ291bnQgb2YgcGl4ZWxzIHRoYXQgYXJlIG9wYXF1ZSAoYW5kIHRo
dXMgb2NjbHVkZSkuIElkZWFsbHkgdGhpcyBpcyBubyBtb3JlCisgICAgLy8gdGhhbiB3aWV3cG9y
dCB3aWR0aCB4IGhlaWdodC4KKyAgICBmbG9hdCBtX3BpeGVsc0RyYXduT3BhcXVlOworICAgIC8v
IENvdW50IG9mIHBpeGVscyB0aGF0IGFyZSBwb3NzaWJseSB0cmFuc2x1Y2VudCwgYW5kIGNhbm5v
dCBvY2NsdWRlLgorICAgIGZsb2F0IG1fcGl4ZWxzRHJhd25UcmFuc2x1Y2VudDsKKyAgICAvLyBD
b3VudCBvZiBwaXhlbHMgbm90IGRyYXduIGFzIHRoZXkgYXJlIG9jY2x1ZGVkIGJ5IHNvbXRoaW5n
IG9wYXF1ZS4KKyAgICBmbG9hdCBtX3BpeGVsc0N1bGxlZDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmNwcAppbmRleCBmN2I1NmI5
ZmNkNTQ0NGEwMWJmMzMxZjc1ZGU0MzE0MmFlNWRjNmUxLi5iMWViMTgzZWJiNjVmNDgyOTA3NWY5
ZWYxNjM3NjM4NGU0NjY1OThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5jcHAKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1h
dHJpeC5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJJbXBsLmgiCisjaW5jbHVkZSAiY2MvQ0NPdmVy
ZHJhd01ldHJpY3MuaCIKICNpbmNsdWRlICJjYy9DQ1JlbmRlclBhc3MuaCIKICNpbmNsdWRlICJj
Yy9DQ1JlbmRlclN1cmZhY2VEcmF3UXVhZC5oIgogCkBAIC0zOSwyOSArNDAsMTQgQEAgdXNpbmcg
bmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DQ1F1YWRDdWxsZXI6OkND
UXVhZEN1bGxlcihDQ1F1YWRMaXN0JiBxdWFkTGlzdCwgQ0NMYXllckltcGwqIGxheWVyLCBDQ09j
Y2x1c2lvblRyYWNrZXJJbXBsKiBvY2NsdXNpb25UcmFja2VyLCBDQ092ZXJkcmF3Q291bnRzKiBv
dmVyZHJhd0NvdW50cykKK0NDUXVhZEN1bGxlcjo6Q0NRdWFkQ3VsbGVyKENDUXVhZExpc3QmIHF1
YWRMaXN0LCBDQ0xheWVySW1wbCogbGF5ZXIsIENDT2NjbHVzaW9uVHJhY2tlckltcGwqIG9jY2x1
c2lvblRyYWNrZXIsIENDT3ZlcmRyYXdNZXRyaWNzKiBvdmVyZHJhd01ldHJpY3MpCiAgICAgOiBt
X3F1YWRMaXN0KHF1YWRMaXN0KQogICAgICwgbV9sYXllcihsYXllcikKICAgICAsIG1fb2NjbHVz
aW9uVHJhY2tlcihvY2NsdXNpb25UcmFja2VyKQotICAgICwgbV9vdmVyZHJhd0NvdW50cyhvdmVy
ZHJhd0NvdW50cykKKyAgICAsIG1fb3ZlcmRyYXdNZXRyaWNzKG92ZXJkcmF3TWV0cmljcykKIHsK
IH0KIAotc3RhdGljIGZsb2F0IHdlZGdlUHJvZHVjdChjb25zdCBGbG9hdFBvaW50JiBwMSwgY29u
c3QgRmxvYXRQb2ludCYgcDIpCi17Ci0gICAgcmV0dXJuIHAxLngoKSAqIHAyLnkoKSAtIHAxLnko
KSAqIHAyLngoKTsKLX0KLQotLy8gQ29tcHV0ZXMgYXJlYSBvZiBxdWFkcyB0aGF0IGFyZSBwb3Nz
aWJseSBub24tcmVjdGFuZ3VsYXIuIENhbgotLy8gYmUgZWFzaWx5IGV4dGVuZGVkIHRvIHBvbHln
b25zLgotc3RhdGljIGZsb2F0IHF1YWRBcmVhKGNvbnN0IEZsb2F0UXVhZCYgcXVhZCkKLXsKLSAg
ICByZXR1cm4gZmFicygwLjUgKiAod2VkZ2VQcm9kdWN0KHF1YWQucDEoKSwgcXVhZC5wMigpKSAr
Ci0gICAgICAgICAgICAgICAgICAgd2VkZ2VQcm9kdWN0KHF1YWQucDIoKSwgcXVhZC5wMygpKSAr
Ci0gICAgICAgICAgICAgICAgICAgd2VkZ2VQcm9kdWN0KHF1YWQucDMoKSwgcXVhZC5wNCgpKSAr
Ci0gICAgICAgICAgICAgICAgICAgd2VkZ2VQcm9kdWN0KHF1YWQucDQoKSwgcXVhZC5wMSgpKSkp
OwotfQotCiB2b2lkIENDUXVhZEN1bGxlcjo6YXBwZW5kKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4g
cGFzc0RyYXdRdWFkKQogewogICAgIE93blB0cjxDQ0RyYXdRdWFkPiBkcmF3UXVhZChwYXNzRHJh
d1F1YWQpOwpAQCAtNzAsMzAgKzU2LDEwIEBAIHZvaWQgQ0NRdWFkQ3VsbGVyOjphcHBlbmQoUGFz
c093blB0cjxDQ0RyYXdRdWFkPiBwYXNzRHJhd1F1YWQpCiAgICAgaWYgKGtlZXBRdWFkKQogICAg
ICAgICBkcmF3UXVhZC0+c2V0UXVhZFZpc2libGVSZWN0KGN1bGxlZFJlY3QpOwogCi0gICAgLy8g
RklYTUU6IE1ha2UgYSB0ZW1wbGF0ZWQgbWV0cmljcyBjbGFzcyBhbmQgbW92ZSB0aGUgbG9naWMg
b3V0IHRvIHRoZXJlLgotICAgIC8vIFRlbXBvcmFyeSBjb2RlIGFueXdheXMsIGluZGVudGVkIHRv
IG1ha2UgdGhlIGRpZmYgY2xlYXIuCi0gICAgewotICAgICAgICBpZiAobV9vdmVyZHJhd0NvdW50
cykgewotICAgICAgICAgICAgLy8gV2UgY29tcHV0ZSB0aGUgYXJlYSBvZiB0aGUgdHJhbnNmb3Jt
ZWQgcXVhZCwgYXMgdGhpcyBzaG91bGQgYmUgaW4gcGl4ZWxzLgotICAgICAgICAgICAgZmxvYXQg
YXJlYSA9IHF1YWRBcmVhKGRyYXdRdWFkLT5xdWFkVHJhbnNmb3JtKCkubWFwUXVhZChGbG9hdFF1
YWQoZHJhd1F1YWQtPnF1YWRSZWN0KCkpKSk7Ci0gICAgICAgICAgICBpZiAoa2VlcFF1YWQpIHsK
LSAgICAgICAgICAgICAgICBib29sIGRpZFJlZHVjZVF1YWRTaXplID0gY3VsbGVkUmVjdCAhPSBk
cmF3UXVhZC0+cXVhZFJlY3QoKTsKLSAgICAgICAgICAgICAgICBpZiAoZGlkUmVkdWNlUXVhZFNp
emUpIHsKLSAgICAgICAgICAgICAgICAgICAgZmxvYXQgdmlzaWJsZVF1YWRSZWN0QXJlYSA9IHF1
YWRBcmVhKGRyYXdRdWFkLT5xdWFkVHJhbnNmb3JtKCkubWFwUXVhZChGbG9hdFF1YWQoZHJhd1F1
YWQtPnF1YWRWaXNpYmxlUmVjdCgpKSkpOwotICAgICAgICAgICAgICAgICAgICBtX292ZXJkcmF3
Q291bnRzLT5tX3BpeGVsc0N1bGxlZCArPSBhcmVhIC0gdmlzaWJsZVF1YWRSZWN0QXJlYTsKLSAg
ICAgICAgICAgICAgICAgICAgYXJlYSA9IHZpc2libGVRdWFkUmVjdEFyZWE7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIEludFJlY3QgdmlzaWJsZU9wYXF1ZVJlY3QoZHJhd1F1
YWQtPnF1YWRWaXNpYmxlUmVjdCgpKTsKLSAgICAgICAgICAgICAgICB2aXNpYmxlT3BhcXVlUmVj
dC5pbnRlcnNlY3QoZHJhd1F1YWQtPm9wYXF1ZVJlY3QoKSk7Ci0gICAgICAgICAgICAgICAgRmxv
YXRRdWFkIHZpc2libGVPcGFxdWVRdWFkID0gZHJhd1F1YWQtPnF1YWRUcmFuc2Zvcm0oKS5tYXBR
dWFkKEZsb2F0UXVhZCh2aXNpYmxlT3BhcXVlUmVjdCkpOwotICAgICAgICAgICAgICAgIGZsb2F0
IG9wYXF1ZUFyZWEgPSBxdWFkQXJlYSh2aXNpYmxlT3BhcXVlUXVhZCk7Ci0gICAgICAgICAgICAg
ICAgbV9vdmVyZHJhd0NvdW50cy0+bV9waXhlbHNEcmF3bk9wYXF1ZSArPSBvcGFxdWVBcmVhOwot
ICAgICAgICAgICAgICAgIG1fb3ZlcmRyYXdDb3VudHMtPm1fcGl4ZWxzRHJhd25UcmFuc3BhcmVu
dCArPSBhcmVhIC0gb3BhcXVlQXJlYTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgIG1fb3ZlcmRyYXdDb3VudHMtPm1fcGl4ZWxzQ3VsbGVkICs9IGFyZWE7Ci0gICAgICAgIH0K
LSAgICB9CisgICAgaWYgKG1fb3ZlcmRyYXdNZXRyaWNzKQorICAgICAgICBtX292ZXJkcmF3TWV0
cmljcy0+ZGlkRHJhdyhkcmF3UXVhZC0+cXVhZFRyYW5zZm9ybSgpLCBkcmF3UXVhZC0+cXVhZFJl
Y3QoKSwgY3VsbGVkUmVjdCwgZHJhd1F1YWQtPm9wYXF1ZVJlY3QoKSk7CiAKKyAgICAvLyBSZWxl
YXNlIHRoZSBxdWFkIGFmdGVyIHdlJ3JlIGRvbmUgdXNpbmcgaXQuCiAgICAgaWYgKGtlZXBRdWFk
KQogICAgICAgICBtX3F1YWRMaXN0LmFwcGVuZChkcmF3UXVhZC5yZWxlYXNlKCkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NR
dWFkQ3VsbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1F1YWRDdWxsZXIuaAppbmRleCA5YzE3YWE4NzRiNGYwZmQ3NGY3M2JhYWEzYzZiMGFmZGE5
N2ExN2ZjLi45NzY3YmFlMzEyYzY5ZWJhNDZlYTZkOWYwMmE4N2QxN2EwZDgxNmE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRD
dWxsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1F1YWRDdWxsZXIuaApAQCAtMzAsMTIgKzMwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIENDTGF5ZXJJbXBsOworY2xhc3MgQ0NPdmVyZHJhd01ldHJpY3M7CiAKIGNsYXNz
IENDUXVhZEN1bGxlciB7CiBwdWJsaWM6CiAgICAgLy8gUGFzc2luZyAwIGZvciBDQ092ZXJkcmF3
Q291bnRzKiBpcyB2YWxpZCwgYW5kIGRpc2FibGUgdGhlIGV4dHJhIGNvbXB1dGF0aW9uCiAgICAg
Ly8gZG9uZSB0byBlc3RpbWF0ZSBvdmVyIGRyYXcgc3RhdGlzdGljcy4KLSAgICBDQ1F1YWRDdWxs
ZXIoQ0NRdWFkTGlzdCYsIENDTGF5ZXJJbXBsKiwgQ0NPY2NsdXNpb25UcmFja2VySW1wbCosIEND
T3ZlcmRyYXdDb3VudHMqKTsKKyAgICBDQ1F1YWRDdWxsZXIoQ0NRdWFkTGlzdCYsIENDTGF5ZXJJ
bXBsKiwgQ0NPY2NsdXNpb25UcmFja2VySW1wbCosIENDT3ZlcmRyYXdNZXRyaWNzKik7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgYXBwZW5kKFBhc3NPd25QdHI8Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFk
KTsKIApAQCAtNDMsNyArNDQsNyBAQCBwcml2YXRlOgogICAgIENDUXVhZExpc3QmIG1fcXVhZExp
c3Q7CiAgICAgQ0NMYXllckltcGwqIG1fbGF5ZXI7CiAgICAgQ0NPY2NsdXNpb25UcmFja2VySW1w
bCogbV9vY2NsdXNpb25UcmFja2VyOwotICAgIENDT3ZlcmRyYXdDb3VudHMqIG1fb3ZlcmRyYXdD
b3VudHM7CisgICAgQ0NPdmVyZHJhd01ldHJpY3MqIG1fb3ZlcmRyYXdNZXRyaWNzOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NSZW5kZXJQYXNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAKaW5kZXggOGM0MzE4MzUwNjZkZGJmZDg4MDA5M2Ix
NzlhMmE3OWQ0NTdmNzIxMy4uNzQwMTk5YTFhMmUzZWJmMmZiMGQyM2MyYzAzNjFmOTBiYjEwZjk1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NSZW5kZXJQYXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuY3BwCkBAIC00Niw5ICs0Niw5IEBAIENDUmVuZGVy
UGFzczo6Q0NSZW5kZXJQYXNzKENDUmVuZGVyU3VyZmFjZSogdGFyZ2V0U3VyZmFjZSkKICAgICBB
U1NFUlQobV90YXJnZXRTdXJmYWNlKTsKIH0KIAotdm9pZCBDQ1JlbmRlclBhc3M6OmFwcGVuZFF1
YWRzRm9yTGF5ZXIoQ0NMYXllckltcGwqIGxheWVyLCBDQ09jY2x1c2lvblRyYWNrZXJJbXBsKiBv
Y2NsdXNpb25UcmFja2VyLCBDQ092ZXJkcmF3Q291bnRzKiBvdmVyZHJhd0NvdW50cykKK3ZvaWQg
Q0NSZW5kZXJQYXNzOjphcHBlbmRRdWFkc0ZvckxheWVyKENDTGF5ZXJJbXBsKiBsYXllciwgQ0NP
Y2NsdXNpb25UcmFja2VySW1wbCogb2NjbHVzaW9uVHJhY2tlciwgQ0NPdmVyZHJhd01ldHJpY3Mq
IG92ZXJkcmF3TWV0cmljcykKIHsKLSAgICBDQ1F1YWRDdWxsZXIgcXVhZEN1bGxlcihtX3F1YWRM
aXN0LCBsYXllciwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXdDb3VudHMpOworICAgIENDUXVh
ZEN1bGxlciBxdWFkQ3VsbGVyKG1fcXVhZExpc3QsIGxheWVyLCBvY2NsdXNpb25UcmFja2VyLCBv
dmVyZHJhd01ldHJpY3MpOwogCiAgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBzaGFyZWRR
dWFkU3RhdGUgPSBsYXllci0+Y3JlYXRlU2hhcmVkUXVhZFN0YXRlKCk7CiAgICAgbGF5ZXItPmFw
cGVuZFF1YWRzKHF1YWRDdWxsZXIsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBh
c3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVu
ZGVyUGFzcy5oCmluZGV4IDA5YWMwNzlhMDU5ODM4ZjQ0ZjY4ZGI1OTlmNTY1ZWQzYzkxODBjYmQu
LmUwYWIzZWRhYTkwZjQ1N2U5MzAyNWY0MTJhNmI5MTRjZTFlOTA0ZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVu
ZGVyUGFzcy5oCkBAIC0zNCw2ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IENDTGF5ZXJJbXBsOworY2xhc3MgQ0NPdmVyZHJhd01ldHJpY3M7CiBjbGFzcyBDQ1JlbmRlclN1
cmZhY2U7CiBjbGFzcyBDQ1NoYXJlZFF1YWRTdGF0ZTsKIApAQCAtNDksMjggKzUwLDEyIEBAIHB1
YmxpYzoKICAgICBpbmxpbmUgY29uc3RCYWNrVG9Gcm9udEl0ZXJhdG9yIGJhY2tUb0Zyb250RW5k
KCkgY29uc3QgeyByZXR1cm4gcmVuZCgpOyB9CiB9OwogCi1zdHJ1Y3QgQ0NPdmVyZHJhd0NvdW50
cyB7Ci0gICAgQ0NPdmVyZHJhd0NvdW50cygpCi0gICAgICAgOiBtX3BpeGVsc0RyYXduT3BhcXVl
KDApCi0gICAgICAgLCBtX3BpeGVsc0RyYXduVHJhbnNwYXJlbnQoMCkKLSAgICAgICAsIG1fcGl4
ZWxzQ3VsbGVkKDApCi0gICAgewotICAgIH0KLSAgICAvLyBDb3VudCBvZiBwaXhlbHMgdGhhdCBh
cmUgb3BhcXVlIChhbmQgdGh1cyBvY2NsdWRlKS4gSWRlYWxseSB0aGlzIGlzIG5vIG1vcmUKLSAg
ICAvLyB0aGFuIHdpZXdwb3J0IHdpZHRoIHggaGVpZ2h0LgotICAgIGZsb2F0IG1fcGl4ZWxzRHJh
d25PcGFxdWU7Ci0gICAgLy8gQ291bnQgb2YgcGl4ZWxzIHRoYXQgYXJlIHBvc3NpYmx5IHRyYW5z
cGFyZW50LCBhbmQgY2Fubm90IG9jY2x1ZGUuCi0gICAgZmxvYXQgbV9waXhlbHNEcmF3blRyYW5z
cGFyZW50OwotICAgIC8vIENvdW50IG9mIHBpeGVscyBub3QgZHJhd24gYXMgdGhleSBhcmUgb2Nj
bHVkZWQgYnkgc29tdGhpbmcgb3BhcXVlLgotICAgIGZsb2F0IG1fcGl4ZWxzQ3VsbGVkOwotfTsK
LQogY2xhc3MgQ0NSZW5kZXJQYXNzIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDQ1JlbmRl
clBhc3MpOwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPENDUmVuZGVyUGFzcz4gY3Jl
YXRlKENDUmVuZGVyU3VyZmFjZSopOwogCi0gICAgdm9pZCBhcHBlbmRRdWFkc0ZvckxheWVyKEND
TGF5ZXJJbXBsKiwgQ0NPY2NsdXNpb25UcmFja2VySW1wbCosIENDT3ZlcmRyYXdDb3VudHMqKTsK
KyAgICB2b2lkIGFwcGVuZFF1YWRzRm9yTGF5ZXIoQ0NMYXllckltcGwqLCBDQ09jY2x1c2lvblRy
YWNrZXJJbXBsKiwgQ0NPdmVyZHJhd01ldHJpY3MqKTsKICAgICB2b2lkIGFwcGVuZFF1YWRzRm9y
UmVuZGVyU3VyZmFjZUxheWVyKENDTGF5ZXJJbXBsKik7CiAKICAgICBjb25zdCBDQ1F1YWRMaXN0
JiBxdWFkTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcXVhZExpc3Q7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NRdWFkQ3VsbGVyVGVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDUXVhZEN1bGxlclRlc3QuY3BwCmluZGV4IDhhMTA0MWE4
N2U0NDgwNmIzYzZjNzc0YWMwMDJjZWYxOWE5NjQ2YzMuLmIyM2FhZWU0YjI1Mzc4NzA3OTgzYTMy
YTY2NGFkZDkxMWM4YTc5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NRdWFkQ3VsbGVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ1F1YWRDdWxsZXJUZXN0LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNjL0ND
UXVhZEN1bGxlci5oIgogCiAjaW5jbHVkZSAiY2MvQ0NPY2NsdXNpb25UcmFja2VyLmgiCisjaW5j
bHVkZSAiY2MvQ0NPdmVyZHJhd01ldHJpY3MuaCIKICNpbmNsdWRlICJjYy9DQ1NpbmdsZVRocmVh
ZFByb3h5LmgiCiAjaW5jbHVkZSAiY2MvQ0NUaWxlZExheWVySW1wbC5oIgogI2luY2x1ZGUgImNj
L0NDVGlsZURyYXdRdWFkLmgiCkBAIC03Nyw3ICs3OCw3IEBAIHN0YXRpYyBQYXNzT3duUHRyPEND
VGlsZWRMYXllckltcGw+IG1ha2VMYXllcihjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZHJh
d1RyCiAgICAgcmV0dXJuIGxheWVyLnJlbGVhc2UoKTsKIH0KIAotc3RhdGljIHZvaWQgYXBwZW5k
UXVhZHMoQ0NRdWFkTGlzdCYgcXVhZExpc3QsIENDVGlsZWRMYXllckltcGwqIGxheWVyLCBDQ09j
Y2x1c2lvblRyYWNrZXJJbXBsJiBvY2NsdXNpb25UcmFja2VyLCBDQ092ZXJkcmF3Q291bnRzJiBv
dmVyZHJhdykKK3N0YXRpYyB2b2lkIGFwcGVuZFF1YWRzKENDUXVhZExpc3QmIHF1YWRMaXN0LCBD
Q1RpbGVkTGF5ZXJJbXBsKiBsYXllciwgQ0NPY2NsdXNpb25UcmFja2VySW1wbCYgb2NjbHVzaW9u
VHJhY2tlciwgQ0NPdmVyZHJhd01ldHJpY3MmIG92ZXJkcmF3KQogewogICAgIENDUXVhZEN1bGxl
ciBxdWFkQ3VsbGVyKHF1YWRMaXN0LCBsYXllciwgJm9jY2x1c2lvblRyYWNrZXIsICZvdmVyZHJh
dyk7CiAgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBzaGFyZWRRdWFkU3RhdGUgPSBsYXll
ci0+Y3JlYXRlU2hhcmVkUXVhZFN0YXRlKCk7CkBAIC04Nyw3ICs4OCw3IEBAIHN0YXRpYyB2b2lk
IGFwcGVuZFF1YWRzKENDUXVhZExpc3QmIHF1YWRMaXN0LCBDQ1RpbGVkTGF5ZXJJbXBsKiBsYXll
ciwgQ0NPY2NsdXNpCiAjZGVmaW5lIERFQ0xBUkVfQU5EX0lOSVRJQUxJWkVfVEVTVF9RVUFEUyAg
ICAgICAgICAgICAgIFwKICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbDsgICAgICAg
ICAgICAgICAgICAgICAgXAogICAgIENDUXVhZExpc3QgcXVhZExpc3Q7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgQ0NPdmVyZHJhd0NvdW50cyBvdmVyZHJhdzsgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICBDQ092ZXJkcmF3TWV0cmljcyBvdmVyZHJhdzsgICAg
ICAgICAgICAgICAgICAgICAgICAgXAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGNoaWxkVHJh
bnNmb3JtOyAgICAgICAgICAgICAgICBcCiAgICAgSW50U2l6ZSByb290U2l6ZSA9IEludFNpemUo
MzAwLCAzMDApOyAgICAgICAgICAgICAgIFwKICAgICBJbnRSZWN0IHJvb3RSZWN0ID0gSW50UmVj
dChJbnRQb2ludCgpLCByb290U2l6ZSk7ICAgXApAQCAtMTA1LDkgKzEwNiw5IEBAIFRFU1QoQ0NR
dWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Tm9DdWxsaW5nKQogICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0
LCBjaGlsZExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyLCBvdmVyZHJhdyk7CiAgICAgYXBw
ZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3Zl
cmRyYXcpOwogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDEzdSk7Ci0gICAgRVhQRUNU
X05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3bk9wYXF1ZSwgMTMwMDAwLCAxKTsKLSAgICBFWFBF
Q1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduVHJhbnNwYXJlbnQsIDAsIDEpOwotICAgIEVY
UEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzQ3VsbGVkLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVB
UihvdmVyZHJhdy5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxMzAwMDAsIDEpOworICAgIEVYUEVDVF9O
RUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7CisgICAgRVhQRUNU
X05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOwogfQogCiAvLyBGYWlscyBvbiBX
aW5kb3dzIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTA4MwpAQCAt
MTIzLDkgKzEyNCw5IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgRkFJTFNfdmVyaWZ5Q3VsbENo
aWxkTGluZXNVcFRvcExlZnQpCiAgICAgb2NjbHVzaW9uVHJhY2tlci5tYXJrT2NjbHVkZWRCZWhp
bmRMYXllcihjaGlsZExheWVyLmdldCgpKTsKICAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9v
dExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyLCBvdmVyZHJhdyk7CiAgICAgRVhQRUNUX0VR
KHF1YWRMaXN0LnNpemUoKSwgOXUpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxz
RHJhd25PcGFxdWUsIDkwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVs
c0RyYXduVHJhbnNwYXJlbnQsIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4
ZWxzQ3VsbGVkLCA0MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJh
d25PcGFxdWUoKSwgOTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0Ry
YXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxz
Q3VsbGVkKCksIDQwMDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlD
dWxsV2hlbkNoaWxkT3BhY2l0eU5vdE9uZSkKQEAgLTE0MCw5ICsxNDEsOSBAQCBURVNUKENDUXVh
ZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxXaGVuQ2hpbGRPcGFjaXR5Tm90T25lKQogICAgIG9jY2x1
c2lvblRyYWNrZXIubWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIoY2hpbGRMYXllci5nZXQoKSk7CiAg
ICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tl
ciwgb3ZlcmRyYXcpOwogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDEzdSk7Ci0gICAg
RVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3bk9wYXF1ZSwgOTAwMDAsIDEpOwotICAg
IEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25UcmFuc3BhcmVudCwgNDAwMDAsIDEp
OwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzQ3VsbGVkLCAwLCAxKTsKKyAgICBF
WFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3bk9wYXF1ZSgpLCA5MDAwMCwgMSk7CisgICAg
RVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCA0MDAwMCwgMSk7
CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOwogfQogCiBU
RVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxXaGVuQ2hpbGRPcGFxdWVGbGFnRmFsc2Up
CkBAIC0xNTcsOSArMTU4LDkgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsV2hl
bkNoaWxkT3BhcXVlRmxhZ0ZhbHNlKQogICAgIG9jY2x1c2lvblRyYWNrZXIubWFya09jY2x1ZGVk
QmVoaW5kTGF5ZXIoY2hpbGRMYXllci5nZXQoKSk7CiAgICAgYXBwZW5kUXVhZHMocXVhZExpc3Qs
IHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOwogICAgIEVYUEVD
VF9FUShxdWFkTGlzdC5zaXplKCksIDEzdSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9w
aXhlbHNEcmF3bk9wYXF1ZSwgOTAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1f
cGl4ZWxzRHJhd25UcmFuc3BhcmVudCwgNDAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJk
cmF3Lm1fcGl4ZWxzQ3VsbGVkLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhl
bHNEcmF3bk9wYXF1ZSgpLCA5MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4
ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCA0MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRy
YXcucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZl
cmlmeUN1bGxDZW50ZXJUaWxlT25seSkKQEAgLTE5Miw5ICsxOTMsOSBAQCBURVNUKENDUXVhZEN1
bGxlclRlc3QsIHZlcmlmeUN1bGxDZW50ZXJUaWxlT25seSkKICAgICBFWFBFQ1RfRVEocXVhZFZp
c2libGVSZWN0Ni5oZWlnaHQoKSwgNTApOwogICAgIEVYUEVDVF9FUShxdWFkVmlzaWJsZVJlY3Q2
LnkoKSwgMjUwKTsKIAotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25PcGFx
dWUsIDEwMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3blRy
YW5zcGFyZW50LCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0N1bGxl
ZCwgMzAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3BhcXVl
KCksIDEwMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFu
c2x1Y2VudCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNDdWxsZWQo
KSwgMzAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxDZW50
ZXJUaWxlTm9uSW50ZWdyYWxTaXplMSkKQEAgLTIyMCw5ICsyMjEsOSBAQCBURVNUKENDUXVhZEN1
bGxlclRlc3QsIHZlcmlmeUN1bGxDZW50ZXJUaWxlTm9uSW50ZWdyYWxTaXplMSkKICAgICBhcHBl
bmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyLCBvdmVy
ZHJhdyk7CiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNpemUoKSwgMnUpOwogCi0gICAgRVhQRUNU
X05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3bk9wYXF1ZSwgMjAzNjMsIDEpOwotICAgIEVYUEVD
VF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25UcmFuc3BhcmVudCwgMCwgMSk7Ci0gICAgRVhQ
RUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNDdWxsZWQsIDAsIDEpOworICAgIEVYUEVDVF9ORUFS
KG92ZXJkcmF3LnBpeGVsc0RyYXduT3BhcXVlKCksIDIwMzYzLCAxKTsKKyAgICBFWFBFQ1RfTkVB
UihvdmVyZHJhdy5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAsIDEpOworICAgIEVYUEVDVF9O
RUFSKG92ZXJkcmF3LnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxs
ZXJUZXN0LCB2ZXJpZnlDdWxsQ2VudGVyVGlsZU5vbkludGVncmFsU2l6ZTIpCkBAIC0yNDgsOSAr
MjQ5LDkgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsQ2VudGVyVGlsZU5vbklu
dGVncmFsU2l6ZTIpCiAgICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5nZXQoKSwg
b2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOwogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXpl
KCksIDJ1KTsKIAotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25PcGFxdWUs
IDE5NjQzLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduVHJhbnNw
YXJlbnQsIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzQ3VsbGVkLCAw
LCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxOTY0
MywgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgp
LCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNDdWxsZWQoKSwgMCwgMSk7
CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbENoaWxkTGluZXNVcEJvdHRv
bVJpZ2h0KQpAQCAtMjY3LDkgKzI2OCw5IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5
Q3VsbENoaWxkTGluZXNVcEJvdHRvbVJpZ2h0KQogICAgIG9jY2x1c2lvblRyYWNrZXIubWFya09j
Y2x1ZGVkQmVoaW5kTGF5ZXIoY2hpbGRMYXllci5nZXQoKSk7CiAgICAgYXBwZW5kUXVhZHMocXVh
ZExpc3QsIHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOwogICAg
IEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDl1KTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJh
dy5tX3BpeGVsc0RyYXduT3BhcXVlLCA5MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRy
YXcubV9waXhlbHNEcmF3blRyYW5zcGFyZW50LCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVy
ZHJhdy5tX3BpeGVsc0N1bGxlZCwgNDAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3
LnBpeGVsc0RyYXduT3BhcXVlKCksIDkwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJh
dy5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJk
cmF3LnBpeGVsc0N1bGxlZCgpLCA0MDAwMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVz
dCwgdmVyaWZ5Q3VsbFN1YlJlZ2lvbikKQEAgLTI4Nyw5ICsyODgsOSBAQCBURVNUKENDUXVhZEN1
bGxlclRlc3QsIHZlcmlmeUN1bGxTdWJSZWdpb24pCiAgICAgb2NjbHVzaW9uVHJhY2tlci5tYXJr
T2NjbHVkZWRCZWhpbmRMYXllcihjaGlsZExheWVyLmdldCgpKTsKICAgICBhcHBlbmRRdWFkcyhx
dWFkTGlzdCwgcm9vdExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyLCBvdmVyZHJhdyk7CiAg
ICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNpemUoKSwgMTJ1KTsKLSAgICBFWFBFQ1RfTkVBUihvdmVy
ZHJhdy5tX3BpeGVsc0RyYXduT3BhcXVlLCA5MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3Zl
cmRyYXcubV9waXhlbHNEcmF3blRyYW5zcGFyZW50LCAzMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05F
QVIob3ZlcmRyYXcubV9waXhlbHNDdWxsZWQsIDEwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihv
dmVyZHJhdy5waXhlbHNEcmF3bk9wYXF1ZSgpLCA5MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIo
b3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAzMDAwMCwgMSk7CisgICAgRVhQRUNU
X05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVkKCksIDEwMDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1
YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsU3ViUmVnaW9uMikKQEAgLTMwNyw5ICszMDgsOSBAQCBU
RVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxTdWJSZWdpb24yKQogICAgIG9jY2x1c2lv
blRyYWNrZXIubWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIoY2hpbGRMYXllci5nZXQoKSk7CiAgICAg
YXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwg
b3ZlcmRyYXcpOwogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDEydSk7Ci0gICAgRVhQ
RUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3bk9wYXF1ZSwgOTAwMDAsIDEpOwotICAgIEVY
UEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25UcmFuc3BhcmVudCwgMjUwMDAsIDEpOwot
ICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzQ3VsbGVkLCAxNTAwMCwgMSk7CisgICAg
RVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25PcGFxdWUoKSwgOTAwMDAsIDEpOworICAg
IEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjUwMDAsIDEp
OworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0N1bGxlZCgpLCAxNTAwMCwgMSk7CiB9
CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbFN1YlJlZ2lvbkNoZWNrT3ZlcmN1
bGwpCkBAIC0zMjcsOSArMzI4LDkgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxs
U3ViUmVnaW9uQ2hlY2tPdmVyY3VsbCkKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRl
ZEJlaGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0KCkpOwogICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0
LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKICAgICBFWFBF
Q1RfRVEocXVhZExpc3Quc2l6ZSgpLCAxM3UpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1f
cGl4ZWxzRHJhd25PcGFxdWUsIDkwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5t
X3BpeGVsc0RyYXduVHJhbnNwYXJlbnQsIDMwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVy
ZHJhdy5tX3BpeGVsc0N1bGxlZCwgMTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3
LnBpeGVsc0RyYXduT3BhcXVlKCksIDkwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJh
dy5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihv
dmVyZHJhdy5waXhlbHNDdWxsZWQoKSwgMTAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxl
clRlc3QsIHZlcmlmeU5vbkF4aXNBbGlnbmVkUXVhZHNEb250T2NjbHVkZSkKQEAgLTM0Nyw5ICsz
NDgsOSBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeU5vbkF4aXNBbGlnbmVkUXVhZHNE
b250T2NjbHVkZSkKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVy
KGNoaWxkTGF5ZXIuZ2V0KCkpOwogICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIu
Z2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKICAgICBFWFBFQ1RfRVEocXVhZExp
c3Quc2l6ZSgpLCAxM3UpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25P
cGFxdWUsIDEzMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3
blRyYW5zcGFyZW50LCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0N1
bGxlZCwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25PcGFxdWUo
KSwgMTMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3blRyYW5z
bHVjZW50KCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0N1bGxlZCgp
LCAwLCAxKTsKIH0KIAogLy8gVGhpcyB0ZXN0IHJlcXVpcmVzIHNvbWUgZXhwbGFuYXRpb246IGhl
cmUgd2UgYXJlIHJvdGF0aW5nIHRoZSBxdWFkcyB0byBiZSBjdWxsZWQuCkBAIC0zNzMsOSArMzc0
LDkgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlOb25BeGlzQWxpZ25lZFF1YWRzU2Fm
ZWx5Q3VsbGVkKQogICAgIG9jY2x1c2lvblRyYWNrZXIubWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIo
Y2hpbGRMYXllci5nZXQoKSk7CiAgICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5n
ZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOwogICAgIEVYUEVDVF9FUShxdWFkTGlz
dC5zaXplKCksIDEydSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3bk9w
YXF1ZSwgMTAwNjAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXdu
VHJhbnNwYXJlbnQsIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzQ3Vs
bGVkLCAyOTQwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25PcGFx
dWUoKSwgMTAwNjAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3blRy
YW5zbHVjZW50KCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0N1bGxl
ZCgpLCAyOTQwMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbE91
dHNpZGVTY2lzc29yT3ZlclRpbGUpCkBAIC0zOTAsOSArMzkxLDkgQEAgVEVTVChDQ1F1YWRDdWxs
ZXJUZXN0LCB2ZXJpZnlDdWxsT3V0c2lkZVNjaXNzb3JPdmVyVGlsZSkKICAgICBvY2NsdXNpb25U
cmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0KCkpOwogICAgIGFw
cGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92
ZXJkcmF3KTsKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCAxdSk7Ci0gICAgRVhQRUNU
X05FQVIob3ZlcmRyYXcubV9waXhlbHNEcmF3bk9wYXF1ZSwgMTAwMDAsIDEpOwotICAgIEVYUEVD
VF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJhd25UcmFuc3BhcmVudCwgMCwgMSk7Ci0gICAgRVhQ
RUNUX05FQVIob3ZlcmRyYXcubV9waXhlbHNDdWxsZWQsIDEyMDAwMCwgMSk7CisgICAgRVhQRUNU
X05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTAwMDAsIDEpOworICAgIEVYUEVD
VF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7CisgICAgRVhQ
RUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVkKCksIDEyMDAwMCwgMSk7CiB9CiAKIFRFU1Qo
Q0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbE91dHNpZGVTY2lzc29yT3ZlckN1bGxlZFRpbGUp
CkBAIC00MDcsOSArNDA4LDkgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsT3V0
c2lkZVNjaXNzb3JPdmVyQ3VsbGVkVGlsZSkKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2Ns
dWRlZEJlaGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0KCkpOwogICAgIGFwcGVuZFF1YWRzKHF1YWRM
aXN0LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKICAgICBF
WFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCAxdSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcu
bV9waXhlbHNEcmF3bk9wYXF1ZSwgMTAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3
Lm1fcGl4ZWxzRHJhd25UcmFuc3BhcmVudCwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRy
YXcubV9waXhlbHNDdWxsZWQsIDEyMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcu
cGl4ZWxzRHJhd25PcGFxdWUoKSwgMTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3
LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRy
YXcucGl4ZWxzQ3VsbGVkKCksIDEyMDAwMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVz
dCwgdmVyaWZ5Q3VsbE91dHNpZGVTY2lzc29yT3ZlclBhcnRpYWxUaWxlcykKQEAgLTQyNCw5ICs0
MjUsOSBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92
ZXJQYXJ0aWFsVGlsZXMpCiAgICAgb2NjbHVzaW9uVHJhY2tlci5tYXJrT2NjbHVkZWRCZWhpbmRM
YXllcihjaGlsZExheWVyLmdldCgpKTsKICAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExh
eWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyLCBvdmVyZHJhdyk7CiAgICAgRVhQRUNUX0VRKHF1
YWRMaXN0LnNpemUoKSwgOXUpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzRHJh
d25PcGFxdWUsIDQwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0Ry
YXduVHJhbnNwYXJlbnQsIDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxz
Q3VsbGVkLCA5MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25P
cGFxdWUoKSwgNDAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXdu
VHJhbnNsdWNlbnQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3Vs
bGVkKCksIDkwMDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxs
T3V0c2lkZVNjaXNzb3JPdmVyTm9UaWxlcykKQEAgLTQ0MSw5ICs0NDIsOSBAQCBURVNUKENDUXVh
ZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92ZXJOb1RpbGVzKQogICAgIG9j
Y2x1c2lvblRyYWNrZXIubWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIoY2hpbGRMYXllci5nZXQoKSk7
CiAgICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJh
Y2tlciwgb3ZlcmRyYXcpOwogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDB1KTsKLSAg
ICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduT3BhcXVlLCAwLCAxKTsKLSAgICBF
WFBFQ1RfTkVBUihvdmVyZHJhdy5tX3BpeGVsc0RyYXduVHJhbnNwYXJlbnQsIDAsIDEpOwotICAg
IEVYUEVDVF9ORUFSKG92ZXJkcmF3Lm1fcGl4ZWxzQ3VsbGVkLCAxMzAwMDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVD
VF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7CisgICAgRVhQ
RUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVkKCksIDEzMDAwMCwgMSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>