问:
Jenkins and Kubernetes plugin Received fatal alert: protocol_version
I am running Jenkins inside k8s cluster(1.25.5) with CRI-O and ingress-nginx deployed by kubespray and it is installed by this helm chart:
https://github.com/jenkinsci/helm-charts

I installed the latest Kubernetes plugin but I can't connect to Kubernetes cluster.
I am getting this error:

I tried to make diagnose so I enabled ssl handshake debug in Jenkins and getting these values:

```javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.525 CET|SupportedGroupsExtension.java:365|Ignore inactive or disabled named group: ffdhe2048
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.525 CET|SupportedGroupsExtension.java:365|Ignore inactive or disabled named group: ffdhe3072
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.525 CET|SupportedGroupsExtension.java:365|Ignore inactive or disabled named group: ffdhe4096
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.525 CET|SupportedGroupsExtension.java:365|Ignore inactive or disabled named group: ffdhe6144
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.525 CET|SupportedGroupsExtension.java:365|Ignore inactive or disabled named group: ffdhe8192
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.526 CET|SessionTicketExtension.java:408|Stateless resumption supported
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.527 CET|ClientHello.java:641|Produced ClientHello handshake message (
"ClientHello": {
  "client version"      : "TLSv1.2",
  "random"              : "08D49711B6FB43B5C3BB9E5EE3A61BDE866BA66CDE9152DBC67B25A0E67C4BD0",
  "session id"          : "",
  "cipher suites"       : "[TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(0xC02C), TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256(0xC02B), TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256(0xCCA9), TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(0xC030), TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256(0xCCA8), TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(0xC02F), TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(0xC014), TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(0xC013), TLS_RSA_WITH_AES_256_GCM_SHA384(0x009D), TLS_RSA_WITH_AES_128_GCM_SHA256(0x009C), TLS_RSA_WITH_AES_256_CBC_SHA(0x0035), TLS_RSA_WITH_AES_128_CBC_SHA(0x002F)]",
  "compression methods" : "00",
  "extensions"          : [
    "status_request (5)": {
      "certificate status type": ocsp
      "OCSP status request": {
        "responder_id": <empty>
        "request extensions": {
          <empty>
        }
      }
    },
    "supported_groups (10)": {
      "versions": [x25519, secp256r1, secp384r1, secp521r1, x448]
    },
    "ec_point_formats (11)": {
      "formats": [uncompressed]
    },
    "application_layer_protocol_negotiation (16)": {
      [h2, http/1.1]
    },
    "status_request_v2 (17)": {
      "cert status request": {
        "certificate status type": ocsp_multi
        "OCSP status request": {
          "responder_id": <empty>
          "request extensions": {
            <empty>
          }
        }
      }
    },
    "extended_master_secret (23)": {
      <empty>
    },
    "session_ticket (35)": {
      <empty>
    },
    "signature_algorithms (13)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, ed25519, ed448, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha224, rsa_sha224, dsa_sha224, ecdsa_sha1, rsa_pkcs1_sha1, dsa_sha1]
    },
    "supported_versions (43)": {
      "versions": [TLSv1.2]
    },
    "signature_algorithms_cert (50)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, ed25519, ed448, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha224, rsa_sha224, dsa_sha224, ecdsa_sha1, rsa_pkcs1_sha1, dsa_sha1]
    },
    "renegotiation_info (65,281)": {
      "renegotiated connection": [<no renegotiated connection>]
    }
  ]
}
)
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.528 CET|Alert.java:238|Received alert message (
"Alert": {
  "level"      : "fatal",
  "description": "protocol_version"
}
)
javax.net.ssl|ERROR|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.531 CET|TransportContext.java:363|Fatal (PROTOCOL_VERSION): Received fatal alert: protocol_version (
"throwable" : {
  javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:358)
        at java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:293)
        at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:204)
        at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)
        at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1505)
        at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1420)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)
        at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:320)
        at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.java:284)
        at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:169)
        at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:258)
        at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135)
        at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114)
        at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:127)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at io.fabric8.kubernetes.client.okhttp.OkHttpClientBuilderImpl$InteceptorAdapter.intercept(OkHttpClientBuilderImpl.java:62)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at io.fabric8.kubernetes.client.okhttp.OkHttpClientBuilderImpl$InteceptorAdapter.intercept(OkHttpClientBuilderImpl.java:62)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at io.fabric8.kubernetes.client.okhttp.OkHttpClientBuilderImpl$InteceptorAdapter.intercept(OkHttpClientBuilderImpl.java:62)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at io.fabric8.kubernetes.client.okhttp.OkHttpClientBuilderImpl$InteceptorAdapter.intercept(OkHttpClientBuilderImpl.java:62)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:257)
        at okhttp3.RealCall.execute(RealCall.java:93)
        at io.fabric8.kubernetes.client.okhttp.OkHttpClientImpl.send(OkHttpClientImpl.java:138)
        at io.fabric8.kubernetes.client.dsl.base.OperationSupport.retryWithExponentialBackoff(OperationSupport.java:574)
        at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:553)
        at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:518)
        at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:502)
        at io.fabric8.kubernetes.client.dsl.base.BaseOperation.listRequestHelper(BaseOperation.java:133)
        at io.fabric8.kubernetes.client.dsl.base.BaseOperation.list(BaseOperation.java:415)
        at io.fabric8.kubernetes.client.dsl.base.BaseOperation.list(BaseOperation.java:404)
        at io.fabric8.kubernetes.client.dsl.base.BaseOperation.list(BaseOperation.java:83)
        at org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud$DescriptorImpl.doTestConnection(KubernetesCloud.java:744)
        at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)
        at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:397)
        at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:409)
        at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:78)
        at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26)
        at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:207)
        at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:140)
        at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:558)
        at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:59)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:770)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:900)
        at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:289)
        at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:59)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:770)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:900)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:836)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:900)
        at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:475)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:770)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:900)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:698)
        at org.kohsuke.stapler.Stapler.service(Stapler.java:248)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
        at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:157)
        at hudson.security.HudsonPrivateSecurityRealm$2.doFilter(HudsonPrivateSecurityRealm.java:1022)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at hudson.security.HudsonPrivateSecurityRealm$2.doFilter(HudsonPrivateSecurityRealm.java:1022)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at jenkins.security.ResourceDomainFilter.doFilter(ResourceDomainFilter.java:81)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at hudson.plugins.locale.LocaleFilter.doFilter(LocaleFilter.java:42)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:129)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:248)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:60)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:160)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:154)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:94)
        at jenkins.security.AcegiSecurityExceptionFilter.doFilter(AcegiSecurityExceptionFilter.java:52)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:54)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:110)
        at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:227)
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:221)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:97)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:117)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
        at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:63)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:111)
        at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:172)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:53)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:86)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:38)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:549)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1383)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1305)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
        at org.eclipse.jetty.server.Server.handle(Server.java:563)
        at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
        at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:416)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:385)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:140)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:934)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1078)
        at java.base/java.lang.Thread.run(Thread.java:833)}

)
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.532 CET|SSLSocketImpl.java:1754|close the underlying socket
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.532 CET|SSLSocketImpl.java:1780|close the SSL connection (passive)
```
<p>Also when I tried this command</p>
```openssl s_client -connect kubernetes.default.svc.cluster.local:443
```
<p>I am getting this:</p>
```CONNECTED(00000003)
depth=0 CN = kube-apiserver
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = kube-apiserver
verify error:num=21:unable to verify the first certificate
verify return:1
depth=0 CN = kube-apiserver
verify return:1
---
Certificate chain
 0 s:CN = kube-apiserver
   i:CN = kubernetes
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: Dec 30 13:24:38 2022 GMT; NotAfter: Jan  2 02:10:40 2024 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
subject=CN = kube-apiserver
issuer=CN = kubernetes
---
Acceptable client certificate CA names
CN = kubernetes
CN = front-proxy-ca
Requested Signature Algorithms: RSA-PSS+SHA256:ECDSA+SHA256:Ed25519:RSA-PSS+SHA384:RSA-PSS+SHA512:RSA+SHA256:RSA+SHA384:RSA+SHA512:ECDSA+SHA384:ECDSA+SHA512:0x01+0x02:0x03+0x02
Shared Requested Signature Algorithms: RSA-PSS+SHA256:ECDSA+SHA256:Ed25519:RSA-PSS+SHA384:RSA-PSS+SHA512:RSA+SHA256:RSA+SHA384:RSA+SHA512:ECDSA+SHA384:ECDSA+SHA512
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 1679 bytes and written 434 bytes
Verification error: unable to verify the first certificate
---
New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 21 (unable to verify the first certificate)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_128_GCM_SHA256
    Session-ID: 0468FD5467824F8B449513B6A09E2D975CD1690AE5DFBD0B3BB713AD4D86D02C
    Session-ID-ctx:
    Resumption PSK: 3BC22E3A910C771317E8F624DAB40723E70802964B2230AE31E9E37F211E1EDF
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 604800 (seconds)
    TLS session ticket:
    0000 - 59 da 44 7f 6c f7 bf 1f-95 3e 4c 90 34 b0 5e 4b   Y.D.l....>L.4.^K
    0010 - 5f b4 78 ca fd 3a 84 62-4a a3 d8 f7 56 eb 9e 6f   _.x..:.bJ...V..o
    0020 - f2 15 38 e1 38 de 57 07-c0 c4 ef 4b b9 0f ac 7c   ..8.8.W....K...|
    0030 - 18 6a ba 7e 25 ce df b8-a5 8e 45 8d c8 30 3a 91   .j.~%.....E..0:.
    0040 - 7c fc 53 d3 09 e0 12 7b-61 be 83 29 a3 f5 49 52   |.S....{a..)..IR
    0050 - 66 5c 52 5f 10 4f f0 d5-b7 d6 91 02 39 b8 0d 32   f\R_.O......9..2
    0060 - f9 9d 47 59 50 7b cc c3-bd 4e 29 dc 6c 82 b1 4b   ..GYP{...N).l..K
    0070 - e2                                                .

    Start Time: 1673186073
    Timeout   : 7200 (sec)
    Verify return code: 21 (unable to verify the first certificate)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK
closed
```

Does anyone know how to fix that, please?

Thanks in advance.

Body:
I am running Jenkins inside k8s cluster(1.25.5) with CRI-O and ingress-nginx deployed by kubespray and it is installed by this helm chart:
https://github.com/jenkinsci/helm-charts

I installed the latest Kubernetes plugin but I can't connect to Kubernetes cluster.
I am getting this error:

I tried to make diagnose so I enabled ssl handshake debug in Jenkins and getting these values:

javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.525 CET|SupportedGroupsExtension.java:365|Ignore inactive or disabled named group: ffdhe2048
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.525 CET|SupportedGroupsExtension.java:365|Ignore inactive or disabled named group: ffdhe3072
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.525 CET|SupportedGroupsExtension.java:365|Ignore inactive or disabled named group: ffdhe4096
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.525 CET|SupportedGroupsExtension.java:365|Ignore inactive or disabled named group: ffdhe6144
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.525 CET|SupportedGroupsExtension.java:365|Ignore inactive or disabled named group: ffdhe8192
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.526 CET|SessionTicketExtension.java:408|Stateless resumption supported
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.527 CET|ClientHello.java:641|Produced ClientHello handshake message (
"ClientHello": {
  "client version"      : "TLSv1.2",
  "random"              : "08D49711B6FB43B5C3BB9E5EE3A61BDE866BA66CDE9152DBC67B25A0E67C4BD0",
  "session id"          : "",
  "cipher suites"       : "[TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(0xC02C), TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256(0xC02B), TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256(0xCCA9), TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(0xC030), TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256(0xCCA8), TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(0xC02F), TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(0xC014), TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(0xC013), TLS_RSA_WITH_AES_256_GCM_SHA384(0x009D), TLS_RSA_WITH_AES_128_GCM_SHA256(0x009C), TLS_RSA_WITH_AES_256_CBC_SHA(0x0035), TLS_RSA_WITH_AES_128_CBC_SHA(0x002F)]",
  "compression methods" : "00",
  "extensions"          : [
    "status_request (5)": {
      "certificate status type": ocsp
      "OCSP status request": {
        "responder_id": <empty>
        "request extensions": {
          <empty>
        }
      }
    },
    "supported_groups (10)": {
      "versions": [x25519, secp256r1, secp384r1, secp521r1, x448]
    },
    "ec_point_formats (11)": {
      "formats": [uncompressed]
    },
    "application_layer_protocol_negotiation (16)": {
      [h2, http/1.1]
    },
    "status_request_v2 (17)": {
      "cert status request": {
        "certificate status type": ocsp_multi
        "OCSP status request": {
          "responder_id": <empty>
          "request extensions": {
            <empty>
          }
        }
      }
    },
    "extended_master_secret (23)": {
      <empty>
    },
    "session_ticket (35)": {
      <empty>
    },
    "signature_algorithms (13)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, ed25519, ed448, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha224, rsa_sha224, dsa_sha224, ecdsa_sha1, rsa_pkcs1_sha1, dsa_sha1]
    },
    "supported_versions (43)": {
      "versions": [TLSv1.2]
    },
    "signature_algorithms_cert (50)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, ed25519, ed448, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha224, rsa_sha224, dsa_sha224, ecdsa_sha1, rsa_pkcs1_sha1, dsa_sha1]
    },
    "renegotiation_info (65,281)": {
      "renegotiated connection": [<no renegotiated connection>]
    }
  ]
}
)
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.528 CET|Alert.java:238|Received alert message (
"Alert": {
  "level"      : "fatal",
  "description": "protocol_version"
}
)
javax.net.ssl|ERROR|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.531 CET|TransportContext.java:363|Fatal (PROTOCOL_VERSION): Received fatal alert: protocol_version (
"throwable" : {
  javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
        at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
        at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:358)
        at java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:293)
        at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:204)
        at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)
        at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1505)
        at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1420)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)
        at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:320)
        at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.java:284)
        at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:169)
        at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:258)
        at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135)
        at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114)
        at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:127)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at io.fabric8.kubernetes.client.okhttp.OkHttpClientBuilderImpl$InteceptorAdapter.intercept(OkHttpClientBuilderImpl.java:62)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at io.fabric8.kubernetes.client.okhttp.OkHttpClientBuilderImpl$InteceptorAdapter.intercept(OkHttpClientBuilderImpl.java:62)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at io.fabric8.kubernetes.client.okhttp.OkHttpClientBuilderImpl$InteceptorAdapter.intercept(OkHttpClientBuilderImpl.java:62)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at io.fabric8.kubernetes.client.okhttp.OkHttpClientBuilderImpl$InteceptorAdapter.intercept(OkHttpClientBuilderImpl.java:62)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:257)
        at okhttp3.RealCall.execute(RealCall.java:93)
        at io.fabric8.kubernetes.client.okhttp.OkHttpClientImpl.send(OkHttpClientImpl.java:138)
        at io.fabric8.kubernetes.client.dsl.base.OperationSupport.retryWithExponentialBackoff(OperationSupport.java:574)
        at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:553)
        at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:518)
        at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:502)
        at io.fabric8.kubernetes.client.dsl.base.BaseOperation.listRequestHelper(BaseOperation.java:133)
        at io.fabric8.kubernetes.client.dsl.base.BaseOperation.list(BaseOperation.java:415)
        at io.fabric8.kubernetes.client.dsl.base.BaseOperation.list(BaseOperation.java:404)
        at io.fabric8.kubernetes.client.dsl.base.BaseOperation.list(BaseOperation.java:83)
        at org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud$DescriptorImpl.doTestConnection(KubernetesCloud.java:744)
        at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)
        at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:397)
        at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:409)
        at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:78)
        at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26)
        at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:207)
        at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:140)
        at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:558)
        at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:59)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:770)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:900)
        at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:289)
        at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:59)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:770)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:900)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:836)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:900)
        at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:475)
        at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:770)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:900)
        at org.kohsuke.stapler.Stapler.invoke(Stapler.java:698)
        at org.kohsuke.stapler.Stapler.service(Stapler.java:248)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
        at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:157)
        at hudson.security.HudsonPrivateSecurityRealm$2.doFilter(HudsonPrivateSecurityRealm.java:1022)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at hudson.security.HudsonPrivateSecurityRealm$2.doFilter(HudsonPrivateSecurityRealm.java:1022)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at jenkins.security.ResourceDomainFilter.doFilter(ResourceDomainFilter.java:81)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at hudson.plugins.locale.LocaleFilter.doFilter(LocaleFilter.java:42)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:129)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:248)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:60)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:160)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:154)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:94)
        at jenkins.security.AcegiSecurityExceptionFilter.doFilter(AcegiSecurityExceptionFilter.java:52)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:54)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:110)
        at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:227)
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:221)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:97)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:117)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
        at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:63)
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:99)
        at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:111)
        at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:172)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:53)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:86)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:38)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:549)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1383)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1305)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
        at org.eclipse.jetty.server.Server.handle(Server.java:563)
        at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
        at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:416)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:385)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:140)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:934)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1078)
        at java.base/java.lang.Thread.run(Thread.java:833)}

)
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.532 CET|SSLSocketImpl.java:1754|close the underlying socket
javax.net.ssl|DEBUG|77|Handling POST /manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/testConnection from 78.45.197.14 : Jetty (winstone)-119|2023-01-08 14:16:53.532 CET|SSLSocketImpl.java:1780|close the SSL connection (passive)

Also when I tried this command

openssl s_client -connect kubernetes.default.svc.cluster.local:443

I am getting this:

CONNECTED(00000003)
depth=0 CN = kube-apiserver
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = kube-apiserver
verify error:num=21:unable to verify the first certificate
verify return:1
depth=0 CN = kube-apiserver
verify return:1
---
Certificate chain
 0 s:CN = kube-apiserver
   i:CN = kubernetes
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: Dec 30 13:24:38 2022 GMT; NotAfter: Jan  2 02:10:40 2024 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
subject=CN = kube-apiserver
issuer=CN = kubernetes
---
Acceptable client certificate CA names
CN = kubernetes
CN = front-proxy-ca
Requested Signature Algorithms: RSA-PSS+SHA256:ECDSA+SHA256:Ed25519:RSA-PSS+SHA384:RSA-PSS+SHA512:RSA+SHA256:RSA+SHA384:RSA+SHA512:ECDSA+SHA384:ECDSA+SHA512:0x01+0x02:0x03+0x02
Shared Requested Signature Algorithms: RSA-PSS+SHA256:ECDSA+SHA256:Ed25519:RSA-PSS+SHA384:RSA-PSS+SHA512:RSA+SHA256:RSA+SHA384:RSA+SHA512:ECDSA+SHA384:ECDSA+SHA512
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 1679 bytes and written 434 bytes
Verification error: unable to verify the first certificate
---
New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 21 (unable to verify the first certificate)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_128_GCM_SHA256
    Session-ID: 0468FD5467824F8B449513B6A09E2D975CD1690AE5DFBD0B3BB713AD4D86D02C
    Session-ID-ctx:
    Resumption PSK: 3BC22E3A910C771317E8F624DAB40723E70802964B2230AE31E9E37F211E1EDF
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 604800 (seconds)
    TLS session ticket:
    0000 - 59 da 44 7f 6c f7 bf 1f-95 3e 4c 90 34 b0 5e 4b   Y.D.l....>L.4.^K
    0010 - 5f b4 78 ca fd 3a 84 62-4a a3 d8 f7 56 eb 9e 6f   _.x..:.bJ...V..o
    0020 - f2 15 38 e1 38 de 57 07-c0 c4 ef 4b b9 0f ac 7c   ..8.8.W....K...|
    0030 - 18 6a ba 7e 25 ce df b8-a5 8e 45 8d c8 30 3a 91   .j.~%.....E..0:.
    0040 - 7c fc 53 d3 09 e0 12 7b-61 be 83 29 a3 f5 49 52   |.S....{a..)..IR
    0050 - 66 5c 52 5f 10 4f f0 d5-b7 d6 91 02 39 b8 0d 32   f\R_.O......9..2
    0060 - f9 9d 47 59 50 7b cc c3-bd 4e 29 dc 6c 82 b1 4b   ..GYP{...N).l..K
    0070 - e2                                                .

    Start Time: 1673186073
    Timeout   : 7200 (sec)
    Verify return code: 21 (unable to verify the first certificate)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK
closed

Does anyone know how to fix that, please?

Thanks in advance.


来源: stackexchange

问:
How to fix React Native Metro initialization
I wanted to continue working on my React Native App but when I run npx react-native start then npm run android I get the following:

I tried the following:

re-installing packages

re-checking for local.properties

ContentLicense: CC BY-SA 4.0


问:
AWS Elastic Beanstalk deployment failed - Node 16
I am trying to deploy a node.js (v16) app on AWS Elastic Beanstalk using a pipeline with Github.

I have the following error in the log :

```<code>        2023/01/08 12:50:34.997432 [ERROR] An error occurred during execution of command [app-deploy] - [check Procfile].
        Stop running the command. Error: node.js may have issues starting.
        Please provide a package.json file or add server.js/app.js file in source bundle
        2023/01/08 12:50:34.997437 [INFO] Executing cleanup logic
        2023/01/08 12:50:34.997540 [INFO] CommandService Response: {"status":"FAILURE","api_version":"1.0",
        "results":[{"status":"FAILURE","msg":"Engine execution has encountered an error.","returncode":1,"events":
        [{"msg":"Instance deployment failed to generate a 'Procfile' for Node.js.
        Provide one of these files: 'package.json', 'server.js', or 'app.js'. The deployment failed.",
        "timestamp":1673182234997,"severity":"ERROR"},
        {"msg":"Instance deployment failed. For details, see 'eb-engine.log'.","timestamp":1673182234997,"severity":"ERROR"}]}]}
</code>```

I do provide the required files :

My project structure :

```<code>├── public
|   ├── css
|       └──styles.css
├── src
|   ├── app.ts
├── views
|   ├── ...
├── package.json
├── package-lock.json
├── tsconfig.json
</code>```

My package.json

```<code>  "dependencies": {
    "dotenv": "^16.0.3",
    "ejs": "^3.1.8",
    "express": "^4.18.2",
    "lodash": "^4.17.21",
    "mongoose": "^6.8.3",
    "ts-node": "^10.9.1"
  },
  "name": "blog-website",
  "version": "1.0.0",
  "description": "A basic blog",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "tsc -p . -w",
    "run": "node dist/app.js",
    "dev": "nodemon src/app.ts"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/InfiniteLearner/Blog-Website.git"
  },
  "author": "Infinite Learner",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/InfiniteLearner/Blog-Website/issues"
  },
  "homepage": "https://github.com/InfiniteLearner/Blog-Website#readme",
  "devDependencies": {
    "@types/body-parser": "^1.19.2",
    "@types/ejs": "^3.1.1",
    "@types/express": "^4.17.15",
    "@types/lodash": "^4.14.191",
    "@types/node": "^18.11.18",
    "typescript": "^4.9.4"
  },
  "engines" : {
    "node" : ">=16.0.0 <17.0.0"
  }

}
</code>```

Do you think this has something to do with typescript ? Or is it something else that I am missing ?

Thank you

Body:
I am trying to deploy a node.js (v16) app on AWS Elastic Beanstalk using a pipeline with Github.

I have the following error in the log :

        2023/01/08 12:50:34.997432 [ERROR] An error occurred during execution of command [app-deploy] - [check Procfile].
        Stop running the command. Error: node.js may have issues starting.
        Please provide a package.json file or add server.js/app.js file in source bundle
        2023/01/08 12:50:34.997437 [INFO] Executing cleanup logic
        2023/01/08 12:50:34.997540 [INFO] CommandService Response: {"status":"FAILURE","api_version":"1.0",
        "results":[{"status":"FAILURE","msg":"Engine execution has encountered an error.","returncode":1,"events":
        [{"msg":"Instance deployment failed to generate a 'Procfile' for Node.js.
        Provide one of these files: 'package.json', 'server.js', or 'app.js'. The deployment failed.",
        "timestamp":1673182234997,"severity":"ERROR"},
        {"msg":"Instance deployment failed. For details, see 'eb-engine.log'.","timestamp":1673182234997,"severity":"ERROR"}]}]}

I do provide the required files :

My project structure :

├── public
|   ├── css
|       └──styles.css
├── src
|   ├── app.ts
├── views
|   ├── ...
├── package.json
├── package-lock.json
├── tsconfig.json

My package.json

  "dependencies": {
    "dotenv": "^16.0.3",
    "ejs": "^3.1.8",
    "express": "^4.18.2",
    "lodash": "^4.17.21",
    "mongoose": "^6.8.3",
    "ts-node": "^10.9.1"
  },
  "name": "blog-website",
  "version": "1.0.0",
  "description": "A basic blog",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "tsc -p . -w",
    "run": "node dist/app.js",
    "dev": "nodemon src/app.ts"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/InfiniteLearner/Blog-Website.git"
  },
  "author": "Infinite Learner",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/InfiniteLearner/Blog-Website/issues"
  },
  "homepage": "https://github.com/InfiniteLearner/Blog-Website#readme",
  "devDependencies": {
    "@types/body-parser": "^1.19.2",
    "@types/ejs": "^3.1.1",
    "@types/express": "^4.17.15",
    "@types/lodash": "^4.14.191",
    "@types/node": "^18.11.18",
    "typescript": "^4.9.4"
  },
  "engines" : {
    "node" : ">=16.0.0 <17.0.0"
  }

}

Do you think this has something to do with typescript ? Or is it something else that I am missing ?

Thank you


问:
How can i solve this problem when i train a transformer model?
faced an error, when i call this function train_bert :
train_bert(net, criterion, opti, lr, lr_scheduler, train_loader, val_loader, epochs, iters_to_accumulate)

The error is:
AttributeError: 'tuple' object has no attribute 'to'

The implementation of the train function is as follows:

```<code>def train_bert(net, criterion, opti, lr, lr_scheduler, train_loader, val_loader, epochs, iters_to_accumulate):

best_loss = np.Inf
best_ep = 1
nb_iterations = len(train_loader)
print_every = nb_iterations // 5  # print the training loss 5 times per epoch
iters = []
train_losses = []
val_losses = []

scaler = GradScaler()

for ep in range(epochs):

    net.train()
    running_loss = 0.0
    for it, (seq, attn_masks, token_type_ids, labels) in enumerate(tqdm(train_loader)):

        # Converting to cuda tensors
        seq, attn_masks, token_type_ids, labels = \
            seq.to(device), attn_masks.to(device), token_type_ids.to(device), labels.to(device)

        # Enables autocasting for the forward pass (model + loss)
        with autocast():
            # Obtaining the logits from the model
            logits = net(seq, attn_masks, token_type_ids)

            # Computing loss
            loss = criterion(logits.squeeze(-1), labels.float())
            loss = loss / iters_to_accumulate  # Normalize the loss because it is averaged

        # Backpropagating the gradients
        # Scales loss.  Calls backward() on scaled loss to create scaled gradients.
        scaler.scale(loss).backward()

        if (it + 1) % iters_to_accumulate == 0:
            # Optimization step
            # scaler.step() first unscales the gradients of the optimizer's assigned params.
            # If these gradients do not contain infs or NaNs, opti.step() is then called,
            # otherwise, opti.step() is skipped.
            scaler.step(opti)
            # Updates the scale for next iteration.
            scaler.update()
            # Adjust the learning rate based on the number of iterations.
            lr_scheduler.step()
            # Clear gradients
            opti.zero_grad()

        running_loss += loss.item()

        if (it + 1) % print_every == 0:  # Print training loss information
            print()
            print("Iteration {}/{} of epoch {} complete. Loss : {} "
                  .format(it+1, nb_iterations, ep+1, running_loss / print_every))

            running_loss = 0.0

    val_loss = evaluate_loss(net, device, criterion, val_loader)  # Compute validation loss
    print()
    print("Epoch {} complete! Validation Loss : {}".format(ep+1, val_loss))

    if val_loss < best_loss:
        print("Best validation loss improved from {} to {}".format(best_loss, val_loss))
        print()
        net_copy = copy.deepcopy(net)  # save a copy of the model
        best_loss = val_loss
        best_ep = ep + 1

path_to_model='models/{}_lr_{}_val_loss_{}_ep_{}.pt'.format(bert_model, lr, round(best_loss, 5), best_ep)
torch.save(net_copy.state_dict(), path_to_model)
print("The model has been saved in {}".format(path_to_model))

del loss
torch.cuda.empty_cache()

</code>```

Please help me i struggle with this problem for weeks:(

Body:
faced an error, when i call this function train_bert :
train_bert(net, criterion, opti, lr, lr_scheduler, train_loader, val_loader, epochs, iters_to_accumulate)

The error is:
AttributeError: 'tuple' object has no attribute 'to'

The implementation of the train function is as follows:

def train_bert(net, criterion, opti, lr, lr_scheduler, train_loader, val_loader, epochs, iters_to_accumulate):

best_loss = np.Inf
best_ep = 1
nb_iterations = len(train_loader)
print_every = nb_iterations // 5  # print the training loss 5 times per epoch
iters = []
train_losses = []
val_losses = []

scaler = GradScaler()

for ep in range(epochs):

    net.train()
    running_loss = 0.0
    for it, (seq, attn_masks, token_type_ids, labels) in enumerate(tqdm(train_loader)):

        # Converting to cuda tensors
        seq, attn_masks, token_type_ids, labels = \
            seq.to(device), attn_masks.to(device), token_type_ids.to(device), labels.to(device)

        # Enables autocasting for the forward pass (model + loss)
        with autocast():
            # Obtaining the logits from the model
            logits = net(seq, attn_masks, token_type_ids)

            # Computing loss
            loss = criterion(logits.squeeze(-1), labels.float())
            loss = loss / iters_to_accumulate  # Normalize the loss because it is averaged

        # Backpropagating the gradients
        # Scales loss.  Calls backward() on scaled loss to create scaled gradients.
        scaler.scale(loss).backward()

        if (it + 1) % iters_to_accumulate == 0:
            # Optimization step
            # scaler.step() first unscales the gradients of the optimizer's assigned params.
            # If these gradients do not contain infs or NaNs, opti.step() is then called,
            # otherwise, opti.step() is skipped.
            scaler.step(opti)
            # Updates the scale for next iteration.
            scaler.update()
            # Adjust the learning rate based on the number of iterations.
            lr_scheduler.step()
            # Clear gradients
            opti.zero_grad()

        running_loss += loss.item()

        if (it + 1) % print_every == 0:  # Print training loss information
            print()
            print("Iteration {}/{} of epoch {} complete. Loss : {} "
                  .format(it+1, nb_iterations, ep+1, running_loss / print_every))

            running_loss = 0.0

    val_loss = evaluate_loss(net, device, criterion, val_loader)  # Compute validation loss
    print()
    print("Epoch {} complete! Validation Loss : {}".format(ep+1, val_loss))

    if val_loss < best_loss:
        print("Best validation loss improved from {} to {}".format(best_loss, val_loss))
        print()
        net_copy = copy.deepcopy(net)  # save a copy of the model
        best_loss = val_loss
        best_ep = ep + 1

path_to_model='models/{}_lr_{}_val_loss_{}_ep_{}.pt'.format(bert_model, lr, round(best_loss, 5), best_ep)
torch.save(net_copy.state_dict(), path_to_model)
print("The model has been saved in {}".format(path_to_model))

del loss
torch.cuda.empty_cache()

Please help me i struggle with this problem for weeks:(


问:
How do I make an iframe responsive?
The iframe I'm embedding is located inside Bootstrap's card.

This is how it looks like:

Here is the code:

```
<p>Card css:</p>
<pre class="lang-css prettyprint-override"><code>.card {
    --bs-card-spacer-y: 1rem;
    --bs-card-spacer-x: 1rem;
    --bs-card-title-spacer-y: 0.5rem;
    --bs-card-border-width: 1px;
    --bs-card-border-color: var(--bs-border-color-translucent);
    --bs-card-border-radius: 0.375rem;
    --bs-card-box-shadow: ;
    --bs-card-inner-border-radius: calc(0.375rem - 1px);
    --bs-card-cap-padding-y: 0.5rem;
    --bs-card-cap-padding-x: 1rem;
    --bs-card-cap-bg: rgba(0, 0, 0, 0.03);
    --bs-card-cap-color: ;
    --bs-card-height: ;
    --bs-card-color: ;
    --bs-card-bg: #fff;
    --bs-card-img-overlay-padding: 1rem;
    --bs-card-group-margin: 0.75rem;
    word-wrap: break-word;
}

.card-body {
    flex: 1 1 auto;
    padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
    color: var(--bs-card-color);
}
</code>```

The problem is that on mobile devices the iframe does not become responsive. It goes beyond the screen:

If I remove the surrounding container, the problem disappears:

```

But now you see the reason why the container is needed. I want the form text to be readable and comply with my website's theme.

Title: How do I make an iframe responsive?

Body:
The iframe I'm embedding is located inside Bootstrap's card.

This is how it looks like:

Here is the code:

Card css:

.card {
    --bs-card-spacer-y: 1rem;
    --bs-card-spacer-x: 1rem;
    --bs-card-title-spacer-y: 0.5rem;
    --bs-card-border-width: 1px;
    --bs-card-border-color: var(--bs-border-color-translucent);
    --bs-card-border-radius: 0.375rem;
    --bs-card-box-shadow: ;
    --bs-card-inner-border-radius: calc(0.375rem - 1px);
    --bs-card-cap-padding-y: 0.5rem;
    --bs-card-cap-padding-x: 1rem;
    --bs-card-cap-bg: rgba(0, 0, 0, 0.03);
    --bs-card-cap-color: ;
    --bs-card-height: ;
    --bs-card-color: ;
    --bs-card-bg: #fff;
    --bs-card-img-overlay-padding: 1rem;
    --bs-card-group-margin: 0.75rem;
    word-wrap: break-word;
}

.card-body {
    flex: 1 1 auto;
    padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
    color: var(--bs-card-color);
}

The problem is that on mobile devices the iframe does not become responsive. It goes beyond the screen:

If I remove the surrounding container, the problem disappears:

But now you see the reason why the container is needed. I want the form text to be readable and comply with my website's theme.


问:
How to do CRUD operations on an AWS Amplify app from a lambda function
I have created a react native app with an AWS Amplify backend. Now I want to add a custom lambda function which is being called through an API gateway and in that lambda function I want to query and save items in to my amplify app sync. How can I do this?

Note - I tried using DynamoDBClient in my lambda function to save items, but then I'm unable to query that item in real time from my react native frontend using 'await DataStore.query'


问:
Show result from a post request in alert dialog box and send the details to another composable
I am doing a post request, show the value in an alert dialog box and pass that information to another composable.

I don't know how to show the result in an alert dialog box and pass the information to another composable.

Here is what I have done so far.

```<code>@Composable
fun Lookup() {

        val number = remember {
            mutableStateOf(TextFieldValue())
        }
        val name = remember {
            mutableStateOf(TextFieldValue())
        }
        val response = remember {
            mutableStateOf("")
        }

    var showDialog by remember { mutableStateOf(false) }

    if (showDialog) {
        LookupDialog()
    }

    val openDialog by viewModel.open.observeAsState(false)

    if (openDialog){
        DialogBoxLoading()
    }
    Column(
        modifier = Modifier.padding(20.dp),
        verticalArrangement = Arrangement.Center,
        horizontalAlignment = Alignment.CenterHorizontally
    ) {

        Spacer(modifier = Modifier.height(20.dp))
        TextField(
            label = { Text(text = "Number") },
            value = number.value,
            onValueChange = { number.value = it })

        Spacer(modifier = Modifier.height(20.dp))

        Box(modifier = Modifier.padding(40.dp, 0.dp, 40.dp, 0.dp)) {
            Button(
                onClick = {
                    postDataUsingRetrofit("fjsjsdf")
                    LookupDialog
                },
                shape = RoundedCornerShape(50.dp),
                modifier = Modifier
                    .fillMaxWidth()
                    .height(50.dp)
            ) {
                Text(text = "Search Number")
            }
        }

    }
}

fun postDataUsingRetrofit(number: String) {

    val url = "https://baseurl/slookup"
    val postBody = String.format(
            """{
            "number": "%1${"$"}s",
            "name": "%2${"$"}s"
        }""", number, name
    )
    val requestBody = postBody.toRequestBody()

    val okHttpClient = OkHttpClient()

    val retrofit = Request.Builder()
        .method("POST", requestBody)
        .url(url)
        .build()
    okHttpClient.newCall(retrofit).enqueue(object : okhttp3.Callback {
        override fun onFailure(call: okhttp3.Call, e: IOException) {
            Log.d("itfailed", e.toString())
        }

        override fun onResponse(call: okhttp3.Call, response: okhttp3.Response) {
            val json = JSONObject(response.body?.string())
            val responseStatus = json.getString("status")
            val responseDesc = json.getString("desc")
        }
    })

}

@Composable
fun LookupDialog(title: String = "",
                        isSuccessful: Boolean = false,
                        content: (@Composable () -> Unit)? = null,
                        clicked: () -> Unit = {}) {
    AlertDialog(
        onDismissRequest = { },
        confirmButton = {
            TextButton(onClick = {
            //Move to a new composable(page)
            })
            { Text(text = "OK") }
        },
        dismissButton = {
            TextButton(onClick = {})
            { Text(text = "Cancel") }
        },
        title = { Text(text = "This should contain information responseStatus from postDataUsingRetrofit ") },
        text = { Text(text = "This should contain information responseDesc from postDataUsingRetrofit ") }
    )
}

@Composable
fun NewComposable(action: (Result?) -> Unit) {

Column(
            modifier = Modifier.padding(20.dp),
            verticalArrangement = Arrangement.Center,
            horizontalAlignment = Alignment.CenterHorizontally
        ) {

            Spacer(modifier = Modifier.height(20.dp))
            TextField(
                label = { Text(text = "This should contain information responseStatus from postDataUsingRetrofit ") },
                keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
                value = number.value,
                onValueChange = { number.value = it })

            Spacer(modifier = Modifier.height(20.dp))

            TextField(
                label = { Text(text = "This should contain information responseDesc from postDataUsingRetrofit ") },
                keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
                value = msisdn.value,
                onValueChange = { name.value = it })
}
}
</code>```

After postDataUsingRetrofit is done, the information shows in LookupDialog, that information passed to NewComposable.

Body:
I am doing a post request, show the value in an alert dialog box and pass that information to another composable.

I don't know how to show the result in an alert dialog box and pass the information to another composable.

Here is what I have done so far.

@Composable
fun Lookup() {

        val number = remember {
            mutableStateOf(TextFieldValue())
        }
        val name = remember {
            mutableStateOf(TextFieldValue())
        }
        val response = remember {
            mutableStateOf("")
        }

    var showDialog by remember { mutableStateOf(false) }

    if (showDialog) {
        LookupDialog()
    }

    val openDialog by viewModel.open.observeAsState(false)

    if (openDialog){
        DialogBoxLoading()
    }
    Column(
        modifier = Modifier.padding(20.dp),
        verticalArrangement = Arrangement.Center,
        horizontalAlignment = Alignment.CenterHorizontally
    ) {

        Spacer(modifier = Modifier.height(20.dp))
        TextField(
            label = { Text(text = "Number") },
            value = number.value,
            onValueChange = { number.value = it })

        Spacer(modifier = Modifier.height(20.dp))

        Box(modifier = Modifier.padding(40.dp, 0.dp, 40.dp, 0.dp)) {
            Button(
                onClick = {
                    postDataUsingRetrofit("fjsjsdf")
                    LookupDialog
                },
                shape = RoundedCornerShape(50.dp),
                modifier = Modifier
                    .fillMaxWidth()
                    .height(50.dp)
            ) {
                Text(text = "Search Number")
            }
        }

    }
}

fun postDataUsingRetrofit(number: String) {

    val url = "https://baseurl/slookup"
    val postBody = String.format(
            """{
            "number": "%1${"$"}s",
            "name": "%2${"$"}s"
        }""", number, name
    )
    val requestBody = postBody.toRequestBody()

    val okHttpClient = OkHttpClient()

    val retrofit = Request.Builder()
        .method("POST", requestBody)
        .url(url)
        .build()
    okHttpClient.newCall(retrofit).enqueue(object : okhttp3.Callback {
        override fun onFailure(call: okhttp3.Call, e: IOException) {
            Log.d("itfailed", e.toString())
        }

        override fun onResponse(call: okhttp3.Call, response: okhttp3.Response) {
            val json = JSONObject(response.body?.string())
            val responseStatus = json.getString("status")
            val responseDesc = json.getString("desc")
        }
    })

}

@Composable
fun LookupDialog(title: String = "",
                        isSuccessful: Boolean = false,
                        content: (@Composable () -> Unit)? = null,
                        clicked: () -> Unit = {}) {
    AlertDialog(
        onDismissRequest = { },
        confirmButton = {
            TextButton(onClick = {
            //Move to a new composable(page)
            })
            { Text(text = "OK") }
        },
        dismissButton = {
            TextButton(onClick = {})
            { Text(text = "Cancel") }
        },
        title = { Text(text = "This should contain information responseStatus from postDataUsingRetrofit ") },
        text = { Text(text = "This should contain information responseDesc from postDataUsingRetrofit ") }
    )
}

@Composable
fun NewComposable(action: (Result?) -> Unit) {

Column(
            modifier = Modifier.padding(20.dp),
            verticalArrangement = Arrangement.Center,
            horizontalAlignment = Alignment.CenterHorizontally
        ) {

            Spacer(modifier = Modifier.height(20.dp))
            TextField(
                label = { Text(text = "This should contain information responseStatus from postDataUsingRetrofit ") },
                keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
                value = number.value,
                onValueChange = { number.value = it })

            Spacer(modifier = Modifier.height(20.dp))

            TextField(
                label = { Text(text = "This should contain information responseDesc from postDataUsingRetrofit ") },
                keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
                value = msisdn.value,
                onValueChange = { name.value = it })
}
}

After postDataUsingRetrofit is done, the information shows in LookupDialog, that information passed to NewComposable.


问:
Checksum Calculation for bits
I am sure this will be simple for most experts on here. I have a few binary strings, the last of which is a checksum. I am trying to reproduce the calc to get the checksum, but I am unable to get there. I have tried and looked at many of the posts relating to checksum on here as well.

Here is the bitstring, spaced in groups of 8: 01010000 10000000 01100111 11110110
(11110110) should be the checksum. For testing I have done this:

```<code>def checksum(bytes):
    return (sum(bytes) & 0xFF)

def bitstring_to_bytes(s):
    v = int(s, 2)
    b = bytearray()
    while v:
        b.append(v & 0xff)
        v >>= 8
    return bytes(b[::-1])

t= ('010100001000000001100111') #left out the checksum as expected

bytes = bitstring_to_bytes(t)
print('bytes = %s' % bytes)

checksum_bytes = checksum(bytes)

checksum_bytes = checksum_bytes | 0xf0
checksum_bytes = bin(checksum_bytes)

print('checksum =%s' % checksum_bytes)

</code>```

The above gets close with 11110111 vice 11110110. The last bit is off.

Title: Checksum Calculation for bits

Body:
I am sure this will be simple for most experts on here. I have a few binary strings, the last of which is a checksum. I am trying to reproduce the calc to get the checksum, but I am unable to get there. I have tried and looked at many of the posts relating to checksum on here as well.

Here is the bitstring, spaced in groups of 8: 01010000 10000000 01100111 11110110
(11110110) should be the checksum. For testing I have done this:

def checksum(bytes):
    return (sum(bytes) & 0xFF)

def bitstring_to_bytes(s):
    v = int(s, 2)
    b = bytearray()
    while v:
        b.append(v & 0xff)
        v >>= 8
    return bytes(b[::-1])

t= ('010100001000000001100111') #left out the checksum as expected

bytes = bitstring_to_bytes(t)
print('bytes = %s' % bytes)

checksum_bytes = checksum(bytes)

checksum_bytes = checksum_bytes | 0xf0
checksum_bytes = bin(checksum_bytes)

print('checksum =%s' % checksum_bytes)

The above gets close with 11110111 vice 11110110. The last bit is off.


问:
Flutter: Unable to generate build files, A Required package was not found
Tried to build a basic linux app following the official Flutter google-colab tutorial and got stuck with this error

```<code>Launching lib/main.dart on Linux in debug mode...
lib/main.dart:1
CMake Error at /usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:603 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:825 (_pkg_check_modules_internal)
  flutter/CMakeLists.txt:25 (pkg_check_modules)

Exception: Unable to generate build files`
</code>```

OS: Linux Mint
IDE: VScode

Tried to find the missing modules so i could install. Was unsuccessful. Need more expertise in that part. Please help :)

edit: installed libgtk-3-dev since it was a requirement as stated from flutter doctor
which said

```<code>root@lax:/home/lax/Flutter/vibeo# flutter doctor
   Woah! You appear to be trying to run flutter as root.
   We strongly recommend running the flutter tool without superuser privileges.
  /

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.3.10, on Linux Mint 21.1 5.15.0-57-generic, locale en_IN)
Checking Android licenses is taking an unexpectedly long time...[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
[✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✗] Linux toolchain - develop for Linux desktop
    ✗ GTK 3.0 development libraries are required for Linux development.
      They are likely available from your distribution (e.g.: apt install libgtk-3-dev)
[✓] Android Studio (version 2021.3)
[✓] VS Code (version 1.74.2)
[✓] Connected device (1 available)
[✓] HTTP Host Availability

! Doctor found issues in 2 categories.
</code>```

and still the build fails

```<code>Launching lib/main.dart on Linux in debug mode...
lib/main.dart:1
ERROR: Flutter failed to create a directory at "/home/lax/Flutter/vibeo/.dart_tool/flutter_build/a631d39312be8637492918f28fa31d2e".
Exception: Build process failed
Exited (sigterm)
</code>```

Body:
Tried to build a basic linux app following the official Flutter google-colab tutorial and got stuck with this error

Launching lib/main.dart on Linux in debug mode...
lib/main.dart:1
CMake Error at /usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:603 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:825 (_pkg_check_modules_internal)
  flutter/CMakeLists.txt:25 (pkg_check_modules)

Exception: Unable to generate build files`

OS: Linux Mint
IDE: VScode

Tried to find the missing modules so i could install. Was unsuccessful. Need more expertise in that part. Please help :)

edit: installed libgtk-3-dev since it was a requirement as stated from flutter doctor
which said

root@lax:/home/lax/Flutter/vibeo# flutter doctor
   Woah! You appear to be trying to run flutter as root.
   We strongly recommend running the flutter tool without superuser privileges.
  /

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.3.10, on Linux Mint 21.1 5.15.0-57-generic, locale en_IN)
Checking Android licenses is taking an unexpectedly long time...[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
[✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✗] Linux toolchain - develop for Linux desktop
    ✗ GTK 3.0 development libraries are required for Linux development.
      They are likely available from your distribution (e.g.: apt install libgtk-3-dev)
[✓] Android Studio (version 2021.3)
[✓] VS Code (version 1.74.2)
[✓] Connected device (1 available)
[✓] HTTP Host Availability

! Doctor found issues in 2 categories.

and still the build fails

Launching lib/main.dart on Linux in debug mode...
lib/main.dart:1
ERROR: Flutter failed to create a directory at "/home/lax/Flutter/vibeo/.dart_tool/flutter_build/a631d39312be8637492918f28fa31d2e".
Exception: Build process failed
Exited (sigterm)


问:
Mosquitto Dynamic Security Plugin, creating clients and setting role for a client through mosquitto_ctrl via MQTT client
I have an scheduled job which is first polling my Mosquitto MQTT broker for Dynamic Security Plugin's clients by using 'listClients' command:

```<code>var options = {
port,
key,
cert,
username,
password,
rejectUnauthorized: false
};
const client = mqtt.connect('mqtts://mosquitto', options);

const MGMT_TOPIC = `$CONTROL/dynamic-security/v1`;
client.on('connect', function () {
    schedule.scheduleJob('*/10 * * * * *', async function() { //Every 10 seconds
      const payload = JSON.stringify({ commands: [{command: 'listClients'}] });
      client.publish(MGMT_TOPIC, payload);
    })
 })
</code>```

Then i have subscriber which listens for 'listClient' responses:

```<code>client.on("message", (topic, payload) => {
    const response = JSON.parse(String(payload)); // { responses: [ { command: 'listClients', data: [Object] } ] }
    if (response.responses) {
      for (let r of response.responses) {
        const command = r.command;
        if (command === 'listClients') {
          const data = r.data;
          const clients = data.clients; // Array of strings
          const newClients = ....
          //LOGIC TO CHECK IF MY DB HAS HAS NEW CLIENTS

          for (const newClient of newClients) {
            const createClientPayload = JSON.stringify({
              commands: [{
                command: 'createClient',
                username: newClient.username,
                password: newClient.password
              }]
            });
            client.publish(MGMT_TOPIC, createClientPayload);
          }
        }
      }
    }
  });
</code>```

Client creation is success, but when i get response from client creation from Mosquitto, it has payload like this:

```<code>{ responses: [ { command: 'createClient' } ] }
</code>```

THIS IS NOT USEFULL!

I should also get username with this payload, because i need to set role for this user after it has been created?

Any help?

I could maybe use some variable to store old states? Sounds risky though...

Body:
I have an scheduled job which is first polling my Mosquitto MQTT broker for Dynamic Security Plugin's clients by using 'listClients' command:

var options = {
port,
key,
cert,
username,
password,
rejectUnauthorized: false
};
const client = mqtt.connect('mqtts://mosquitto', options);

const MGMT_TOPIC = `$CONTROL/dynamic-security/v1`;
client.on('connect', function () {
    schedule.scheduleJob('*/10 * * * * *', async function() { //Every 10 seconds
      const payload = JSON.stringify({ commands: [{command: 'listClients'}] });
      client.publish(MGMT_TOPIC, payload);
    })
 })

Then i have subscriber which listens for 'listClient' responses:

client.on("message", (topic, payload) => {
    const response = JSON.parse(String(payload)); // { responses: [ { command: 'listClients', data: [Object] } ] }
    if (response.responses) {
      for (let r of response.responses) {
        const command = r.command;
        if (command === 'listClients') {
          const data = r.data;
          const clients = data.clients; // Array of strings
          const newClients = ....
          //LOGIC TO CHECK IF MY DB HAS HAS NEW CLIENTS

          for (const newClient of newClients) {
            const createClientPayload = JSON.stringify({
              commands: [{
                command: 'createClient',
                username: newClient.username,
                password: newClient.password
              }]
            });
            client.publish(MGMT_TOPIC, createClientPayload);
          }
        }
      }
    }
  });

Client creation is success, but when i get response from client creation from Mosquitto, it has payload like this:

{ responses: [ { command: 'createClient' } ] }

THIS IS NOT USEFULL!

I should also get username with this payload, because i need to set role for this user after it has been created?

Any help?

I could maybe use some variable to store old states? Sounds risky though...


问:
Defining a merged cell when reading an xlsx document (Apache POI) Kotlin
There is a document in which some cells are combined with a group of others and if it is not the upper left cell (groups of combined cells) then when reading this cell, you can get a null value.
How to determine if this cell is just empty, or is it combined? In case it is combined (and not the top left) I need to get this value somehow.

in general, two main questions:

How to determine if a cell is merged?

If a cell is merged, how to get a value (instead of null)?

The screenshot shows which cell I need. But since my application selects a row and a column based on user data, it tries to get data from cell N11
enter image description here


问:
My unity Android UI particles are flickering after build
My UI particles are flickering after build in unity Android when I change the graphic api to opengles3 some of my particles become invisible but when I change it to vulkan my particles become visible and start of flickering ,Myui particles are flickering when I change the graphics API to open GLS 3 some of the particles become invisible after build Android when I change the graphics API to vulkan the particles become visible and start flickering

Pleas provide me any solution I am stuck in this.

Here is the footage of the problem: https://drive.google.com/file/d/1-UzYLQc76Spyo1JIrTs_UBFj__ExkzZJ/view?usp=drivesdk


问:
How do I use the dataset annotated on Makesense.ai to train a deep learning model? The annotations generated is present in a single .json file
Could anyone help me out on this please.
This is for Image Segmentaion.
I tried searching about this but I only found posts talking about independant .json annotations for each image.</p>


问:
How can I plot the principal component axis?
I used principal component analysis in 8-D data set. now I have principal components, and I want to plot PC1 and PC2 axis on the original axis (x-y) and compare them. but how can I plot two orthogonal 8-D vector (PCs) in 2D dimension in matlab.

I am confused about this. This issue is understandable for me in a two-dimensional dataset, but in more dimensions, I cannot understand how the directions of the perpendicular principal components are determined.


问:
gwt logging patternlayout
Does the gwt logger have a PatternLayout similar to log4j's pattern layout?</p>

ContentLicense: CC BY-SA 3.0

Title: gwt logging patternlayout


问:
Keep the directory structure when uploading files to FTP via curl
As the titile suggests, I am trying to upload a bunch of files via FTP while preserving the directory structure.

I am able to achieve what I want via looping through the files and explicitly specifying path where the file should be uploaded to.

for file in $upload_files; do
    curl -T $file -u $FTP_USER:$FTP_PASS "ftp://$FTP_HOST/$file" --ftp-create-dirs --no-epsv
done
```
<p>However, it's possible to upload multiple files in one go (and reuse the FTP connection => better performance)</p>
<pre class="lang-bash prettyprint-override"><code># Make a comma-separated list of files.
upload_files=$(echo $upload_files | sed 's/ /,/g')
# Upload all files at once.
curl -T "{$upload_files}" -u $FTP_USER:$FTP_PASS ftp://$FTP_HOST --ftp-create-dirs --no-epsv
</code>```

The problem is the seccond snippet uploads everything to the FTP root (which is reasonable).

Is there any tweak to the second solution that would automagically reuse uploaded file path and use it as a remote path as well?

Body:
As the titile suggests, I am trying to upload a bunch of files via FTP while preserving the directory structure.

I am able to achieve what I want via looping through the files and explicitly specifying path where the file should be uploaded to.

for file in $upload_files; do
    curl -T $file -u $FTP_USER:$FTP_PASS "ftp://$FTP_HOST/$file" --ftp-create-dirs --no-epsv
done

However, it's possible to upload multiple files in one go (and reuse the FTP connection => better performance)

# Make a comma-separated list of files.
upload_files=$(echo $upload_files | sed 's/ /,/g')
# Upload all files at once.
curl -T "{$upload_files}" -u $FTP_USER:$FTP_PASS ftp://$FTP_HOST --ftp-create-dirs --no-epsv

The problem is the seccond snippet uploads everything to the FTP root (which is reasonable).

Is there any tweak to the second solution that would automagically reuse uploaded file path and use it as a remote path as well?


问:
I want to prevent Direct IP is not allowed
I'm so sorry, I want this feature
I don't have info on it to give you an example
But there is another site that uses it
From here: http://135.125.251.122
If you enter through IP, the site says Direct IP is not allowed
Then it automatically brings me to the domain

All I found is this code

```<code><script language="JavaScript">window.alert("Direct IP is not allowed")</script><script language="JavaScript">window.open("https://example.com", "_self")</script>

</code>```


问:
Any way to detect page swap from kernel or user mode
I want to build simple emulator using Intel VT-x.

Suppose we've allocated memory (guest RAM), of course from paged pool, and built EPT.
Everything working.

Now host OS (Win10 x64) decide to swap out those pages or move or smth else, so physical addresses in EPT are not valid anymore. VMM needs to update EPT entries accordinly (not present), and when guest will use such page, an EPT violation will happen. Then VMM performs a dummy read, so host OS will swap page back to memory, and updates EPT entry as present.

So the question: is there any way do detect swap or physical address change for particual linear addresses range of the current thread? Kernel or user mode. I've googled couple of days, but found nothing.

If there is no such way, what approach I can use in this situation? Where I can read about that?

Thanks in advance!


问:
How to draw cutout in PreviewView Android Compose?
I'm creating a QR Scanner where the preview view is blur except the centre square part, I was able to blur PreviewView but not able to think of a way to unblur the centre cutout part.

```<code>  AndroidView(
            modifier = Modifier.fillMaxSize(),
            factory = { context ->

                val previewView = PreviewView(context).apply {
                    setRenderEffect( RenderEffect.createBlurEffect(
                        26f, 26f,Shader.TileMode.CLAMP))
                    implementationMode = PreviewView.ImplementationMode.COMPATIBLE

                }

                val preview = Preview.Builder().build()

                val selector = CameraSelector.Builder().requireLensFacing(CameraSelector.LENS_FACING_BACK).build()

                preview.setSurfaceProvider(previewView.surfaceProvider)

                val imageAnalysis = ImageAnalysis.Builder().setTargetResolution(
                    Size(
                        previewView.width, previewView.height
                    )
                ).setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST).build()

                imageAnalysis.setAnalyzer(
                    ContextCompat.getMainExecutor(context),
                    QrCodeAnalyzer { result ->
                        onScan(result)
                    })
                try {
                    camera = cameraProviderFuture.get().bindToLifecycle(
                        lifecycleOwner, selector, preview, imageAnalysis, imageCapture
                    )
                } catch (e: Exception) {
                    e.printStackTrace()
                }

                previewView
            },
        )
        if (overlay != null) {
            overlay()
        }
</code>```

Body:
I'm creating a QR Scanner where the preview view is blur except the centre square part, I was able to blur PreviewView but not able to think of a way to unblur the centre cutout part.

  AndroidView(
            modifier = Modifier.fillMaxSize(),
            factory = { context ->

                val previewView = PreviewView(context).apply {
                    setRenderEffect( RenderEffect.createBlurEffect(
                        26f, 26f,Shader.TileMode.CLAMP))
                    implementationMode = PreviewView.ImplementationMode.COMPATIBLE

                }

                val preview = Preview.Builder().build()

                val selector = CameraSelector.Builder().requireLensFacing(CameraSelector.LENS_FACING_BACK).build()

                preview.setSurfaceProvider(previewView.surfaceProvider)

                val imageAnalysis = ImageAnalysis.Builder().setTargetResolution(
                    Size(
                        previewView.width, previewView.height
                    )
                ).setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST).build()

                imageAnalysis.setAnalyzer(
                    ContextCompat.getMainExecutor(context),
                    QrCodeAnalyzer { result ->
                        onScan(result)
                    })
                try {
                    camera = cameraProviderFuture.get().bindToLifecycle(
                        lifecycleOwner, selector, preview, imageAnalysis, imageCapture
                    )
                } catch (e: Exception) {
                    e.printStackTrace()
                }

                previewView
            },
        )
        if (overlay != null) {
            overlay()
        }


问:
Get the index of the push button
I have the following problem, which doesn't seem particularly difficult, but I've been standing still for 1 day and can't find the right logic.

I have a list that searches for objects that end with the name "_ctrl". This list currently contains 4 items, but can contain any number of items. Depending on how many objects exist, it will add that many rows of buttons to the table.

My question is - how to get the index of the selected button to be printed in another function.

enter image description here

I hope you can understand me what I wanted to ask.

```<code>def refresh_table(self):
    self.table_wdg.setRowCount(0)
    controls = cmds.ls("*_ctrl")

    for i in range(len(controls)):
        self.table_wdg.insertRow(i)

        controls[i] = QtWidgets.QPushButton("Button")
        self.table_wdg.setCellWidget(i,0,controls[i])

        controls[i].clicked.connect(self.printing)

def printing(self):
    print()
</code>```

Title: Get the index of the push button

Body:
I have the following problem, which doesn't seem particularly difficult, but I've been standing still for 1 day and can't find the right logic.

I have a list that searches for objects that end with the name "_ctrl". This list currently contains 4 items, but can contain any number of items. Depending on how many objects exist, it will add that many rows of buttons to the table.

My question is - how to get the index of the selected button to be printed in another function.

enter image description here

I hope you can understand me what I wanted to ask.

def refresh_table(self):
    self.table_wdg.setRowCount(0)
    controls = cmds.ls("*_ctrl")

    for i in range(len(controls)):
        self.table_wdg.insertRow(i)

        controls[i] = QtWidgets.QPushButton("Button")
        self.table_wdg.setCellWidget(i,0,controls[i])

        controls[i].clicked.connect(self.printing)

def printing(self):
    print()


问:
How to Hide/show Sections made by elementor using class or id after purchase?
I want to hide section and show other after customer purchase state completed !

i have woocommerce php code do that on add to cart button
can we chang it to make it do what i want ?

```<code>
add_filter( 'woocommerce_is_purchasable', 'bbloomer_hide_add_cart_if_already_purchased', 9999, 2 );

function bbloomer_hide_add_cart_if_already_purchased( $is_purchasable, $product ) {
   if ( wc_customer_bought_product( '', get_current_user_id(), $product->get_id() ) ) {
      $is_purchasable = false;
   }
   return $is_purchasable;
}
</code>```

Body:
I want to hide section and show other after customer purchase state completed !

i have woocommerce php code do that on add to cart button
can we chang it to make it do what i want ?

add_filter( 'woocommerce_is_purchasable', 'bbloomer_hide_add_cart_if_already_purchased', 9999, 2 );

function bbloomer_hide_add_cart_if_already_purchased( $is_purchasable, $product ) {
   if ( wc_customer_bought_product( '', get_current_user_id(), $product->get_id() ) ) {
      $is_purchasable = false;
   }
   return $is_purchasable;
}