- flutter ios打包_Flutter iOS 打包等采坑ing...
WIDGAF
flutterios打包
flutter打包报错记录:Unexpectedduplicatetasks处理方法:修改项目编译,不使用NewBuildSystem,在File>Project/WorkspaceSettings中的ShareProject/WorkspaceSettings里buildsystem将NewBuildSystem(Default)切换成Legacybuildsystem。ERROR:Flutte
- 【PyTorch】分布式训练报错记录-ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1)
XuecWu3
pytorch分布式人工智能深度学习
最近,我在服务器上起基于PyTorch分布式框架的预训练实验,起初实验都在顺利进行,但是当我们把模型的深度与宽度调大之后,模型在训练几代之后便会出现如下的报错:WARNING:torch.distributed.elastic.multiprocessing.api:Sendingprocess41495closingsignalSIGTERMWARNING:torch.distributed.e
- Wheeltec G60 launch报错记录:nmea_navsat_driver报错和raise OsNotDetected报错
努力glow .
pythonopencv人工智能计算机视觉c++
WheeltecG60launch报错记录我以为我遇到了一个问题,其实是两个问题,所以在这里记录一下。我的系统是Ubuntu18.04melodicnmea_navsat_driver报错Traceback(mostrecentcalllast):File"/home/zyy/LZY/catkin_ws/src/nmea_navsat_driver/scripts/nmea_serial_driv
- DB-GPT_0.5.10安装__部署Qwen2-72b模型(Ubuntu)——报错记录
介甫遗风
llm数据库gptubuntu
官网地址在这里——源码部署(yuque.com),英文地址——SourceCodeDeployment|DB-GPT(dbgpt.site)官网给了三种部署方式:源码部署、Docker部署、Docker-Compose部署,这里我选择的部署方式是源码部署,Docker部署的教程我感觉比较简陋,还是使用源码部署更为稳妥些。不过经过自己的尝试发现,DB-GPT官网给的部署教程属实不太友好,关于配置文件
- 【idea】工具使用报错记录
RSABLOCKCHAIN
intellij-ideajavaide
IDEA报错Executionfailedfortask':bg-sec-cspm:test'.>Notestsfoundforgivenincludes:[com.xxx.bg.sec.cspm.service.impl.GoogleCloudServiceImplTest.getGoogleVpcFirewallList](--testsfilter)*Try:Runwith--stacktr
- Kubernetes报错记录
s区元素
java开发语言
1.启动node节点时,报错:/var/run/containerd/con将主节点中的【/etc/kubernetes/admin.conf】文件拷贝到工作节点相同目录下:tainerd.sock:connect:nosuchfileordirectory解决办法:需要启动containerd服务,systemctlstartcontainerd。报错:\"unix:///var/run/con
- Ubuntu 20.04 报错记录: Matplotlib 无法使用 OpenCV 的 libqxcb.so
荷碧TongZJ
ubuntuopencvlinuxpython
网上查了一下这个报错,有很多解决方案,但是都不是针对OpenCV触发的这种qt.qpa.plugin:CouldnotloadtheQtplatformplugin"xcb"in"*/lib/*/site-packages/cv2/qt/plugins"eventhoughitwasfound.本文的方案是牺牲cv2.imshow,修复plt.imshow,省流直接看Test3未找到根治的解决方案
- IIS报错解决
我是小智
c#
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、IIS上部署网站报错记录二、解决办法1.启用32位应用程序2.VisualStudio2010(VC++10.0)SP1安装总结一、IIS上部署网站报错记录未能加载文件或程序集或它的某一个依赖项。打开网站,显示“未能加载…”信息。亲历解决办法有两种。二、解决办法1.启用32位应用程序原因:操作系统是64位,发布的程序引用一
- MySQL执行Source的报错记录
WarPigs
mysql数据库
1.如果Source执行路径有中文的.sql文件,如果结尾有分号,报错:ERROR:Unknowncommand'\U',报此错后输入任何指令都返回->必须退出重新打开才行。2.如果Source执行路径有中文的.sql文件,结尾不加分号,报错:ERROR:Failedtoopenfile,error:423.如果Source执行路径没有中文的.sql文件,结尾有分号,报错:ERROR:Unknow
- Centos8部署mongodb报错记录
知本知至
MongoDBmongommsagentMongoDBops
使用mongoops安装mongodb6.0.4副本集报错errorwhileloadingsharedlibraries:libnetsnmpmibs.so.35:cannotopensharedobjectfile:Nosuchfileordirectory解决yuminstallnet-snmpnet-snmp-devel-y建议:初始化系统时把官网上的依赖包都装一遍即yuminstall-
- superset初始化数据库报错记录:A Default SECRET_KEY was detected, please use superset_config.py
FL1623863129
环境配置windows
问题原因:看官方大概是这个,Superset需要用户指定的SECRET_KEY才能启动。为您的文件添加一个强有力的SECRET_KEY。解决办法:找到superset的lib目录,在lib目录下创建一个superset_config.py的文件。内容输入SECRET_KEY='YOUR_OWN_RANDOM_GENERATED_SECRET_KEY'其中YOUR_OWN_RANDOM_GENERA
- (报错记录)mybatis整合mybatis-plus错误org.apache.ibatis.binding.BindingException: Invalid bound statement
-茄-
java学习日记mybatisapachespring
org.apache.ibatis.binding.BindingException:Invalidboundstatement(notfound):com.mindskip.xzs.repository.SubjectMapper.pageatcom.baomidou.mybatisplus.core.override.PageMapperMethod$SqlCommand.(PageMappe
- kubeadm init报错记录
SilentCodeY
kubernetes容器云原生
kubeadm报错如下:[ERRORCRI]:containerruntimeisnotrunning:output:time="2023-11-24T00:59:01-05:00"level=fatalmsg="validateserviceconnection:CRIv1runtimeAPIisnotimplementedforendpoint\"unix:///var/run/contain
- 编译/仿真 报错记录
Flying_Bird089
UVM实战测试用例
1.SESyntaxError之前编译是通过的,在修改了几个文件中的东西之后,编译报错,但是此test_base文件并未修改,所以去看修改的地方是否有问题,没有问题的话,就去看此文件的上一文件是否有错误。2.Nullobjectaccess编译通过,仿真报ERROR,如标题报错行中使用了13行声明的utx_tr,加入了23行的例化后,不再报错。
- 视觉SLAM十四讲学习笔记(二)三维空间刚体
苦瓜汤补钙
视觉SLAM十四讲笔记计算机视觉算法
哔哩哔哩课程连接:视觉SLAM十四讲ch3_哔哩哔哩_bilibili目录一、旋转矩阵1点、向量、坐标系2坐标系间的欧氏变换3变换矩阵与齐次坐标二、实践:Eigen(1)运行报错记录与解决三、旋转向量和欧拉角1旋转向量2欧拉角四、四元数1四元数的定义2四元数的运算3用四元数表示旋转4四元数到旋转矩阵的转换五、实践:Eigen(2)useGeometryvisualizeGeometry总结前言问题
- 【报错记录】Proxmox (PVE)“无法锁定文件 ‘/var/lock/qemu-server/lock-xxx.conf‘ – 超时”
冷冰鱼
安装教程服务器linuxdebian
背景:在pve中克隆虚拟机的时候出现了下面报错解决方法应该是进入目录后unlock,操作如下:cd/var/lock/qemu-serverqmunlock100到此重新启动虚拟机即可上网看相关资料有人说这样也无法解决问题,并提出了对应解决方法,记录在此:先到目录内后,先删除档案之后停掉就可以解决了cd/var/lock/qemu-serverrm-rflock-111.confqmstop111
- 驱动内核开发报错记录
VernonJsn
驱动开发
问题:linux模块加载和模块卸载时出现的问题在编写驱动程序的时候有时候会出现这种情况,模块加载之后不能卸载或卸载之后不能在加载,cat/proc/devices后发现设备还占用着设备号,这种情况下,再次加载驱动模块肯定不会成功,必须重新启动才可以解决。最近仔细看书后发现自己在驱动程序的卸载函数中少写了两个函数调用,以至于在加载模块的时候申请或添加的设备没有被释放或删除。解决:抛弃老版本regis
- QT报错记录
VernonJsn
qt开发语言
Ubuntu22.04安装Qt之后启动QtCreator报错:Fron6.5.0,xcb-cursor0orlibxcb-cursor0isneededtoloadtheQtxcbplatfornplugin.Couldnotload.ThisapplicationfailedtostartbecausenoQtplatfornplugincouldbeinitialized.Reinstalli
- k8s报错记录(持续更新中....)
运维那些事儿
kuberneteskubernetes容器云原生
k8s报错记录(持续更新中…)1.部署k8s遇到kube-flannel已经构建,但是coredns一直处于ContainerCreating和pending状态解决问题:通过kubectldescribepod-nkube-systemcoredns-7ff77c879f-9ls2b查看pod的详细信息,报错说是cni配置没有初始化,很是莫名其妙journalctl-fukubelet然后尝试将
- 2024.1.30报错记录
New___dream
深度学习python深度学习
今天想调通一套github上的U-net代码,把报错记录一下第一章ModuleNotFoundError:Nomodulenamed'skimage'没有这个模块pipinstallscikit-image第二章TypeError:(‘Keywordargumentnotunderstood:‘,‘input‘)TypeError:(‘Keywordargumentnotunderstood:‘,
- wordcloud库和jieba库的使用
Mount256
Pythonpython词云jiebawordcloud
文章目录wordcloud库的简单示范使用wordcloud库报错记录anaconda安装第三方jieba库jieba库的简单示范任务1:三国演义中的常见词汇分布在“三国"这两个隶书字上,出现频率高的词字体大任务2:三国演义中出现频率前十的人名。必须是以下这十个名字,名字组成心形wordcloud库的简单示范fromwordcloudimportWordCloudfromwordcloudimpo
- 【报错记录】mybatis映射对应的类没有无参构造引发的问题
甲 烷
项目总结Springmybatisjava数据库
写了一个联表查询文件记录及文件标签的SQL:SELECTdf.idASid,df.file_name,df.file_url,df.file_size,df.extend_name,df.category_name,df.file_extracts,df.create_time,df.update_time,df.`remark`,dt.idAStag_id,dt.tag_nameAStag_na
- 2024.1.19报错记录
New___dream
报错python笔记
AttributeError:partiallyinitializedmodule'onnx'hasnoattribute'__version__'(mostlikelyduetoacircularimport)在yolov8中生成onnx时报错,我把py文件名叫onnx.py,改一下名字就解决这个报错了,因为onnx和自带的模块冲突
- 2024.1.26报错记录
New___dream
报错人工智能pytorchpython
error:command"/usr/bin/gcc"failedwithexitcode1把网页版那个cuda11.8的Pytorch版本降低成11.0或者11.3的Pytorch就能解决这个报错
- Android报错记录_2
psogos
Android服务器
error:'Failedtocommitinstallsession101493155withcommandcmdpackageinstall-commit101493155.Error:Unknownfailure:cmd:Failurecallingservicepackage:Brokenpipe(32)'Retrysolution:安装一个新的模拟器去运行该程序
- vuex使用报错记录
禾苗种树
vuevuexjsvue.js
报错提示permission.js:107[vuex]modulenamespacenotfoundinmapState():oaaserver/原因:新加的store模块oaaserver,再导出时没写命名允许namespaced:true//store的一个模块addxxxconstaddxxx={state:{list:[],},mutations:{setList:(state,val)=
- 驱动程序无法通过使用安全套接字层(SSL)加密与 SL Server 建立安全连接
踏歌的Java Daily
ssl安全网络协议
报错记录我用的数据库版本是SQLserver2008R2驱动包是mssql-jdbc版本是7.2.2.jre8idea可以正常启动打成jar包后用Java-jar无法启动并报错修改yml文件spring:mvc:pathmatch:matching-strategy:ant_path_matcherdatasource:url:jdbc:sqlserver://127.0.0.1;database
- VUE引入DataV报错记录
zyk_520
Vuevue.js前端javascript
DataV官网(不支持Vue3):Welcome|DataV一、按照官网引入后报错【1】Failedtoresolveentryforpackage"@dataview/datav-vue3".Thepackagemayhaveincorrectmain/module/exportsspecifiedinitspackage.json.将@dataview\datav-vue3/package.j
- 报错记录-警告: Unable to find explicit solution. For options, see help.
Dust_Just
MATLAB学习matlab
问题描述:警告:Unabletofindexplicitsolution.Foroptions,seehelp.在MATLAB中定义了符号变量之后,试图用solve函数进行符号方程的求解,但是却得到了警告以及变量class的输出。类似以下情况:结果为下图,并不能得到我需要的结果。symsxyf(x,y)solve(f^2-x^2-y,f)解决方法:将变量定义中的f(x,y)设置为单纯的变量,而非有
- 2021-07-24 R包maftools从GitHub安装报错记录
我们一起舔过铁栏杆
屏幕截图2021-07-24205817.png从GitHub里面安装R包maftools失败。报错显示如图所示。有趣的是,从bioconductor安装就成功了。
- SAX解析xml文件
小猪猪08
xml
1.创建SAXParserFactory实例
2.通过SAXParserFactory对象获取SAXParser实例
3.创建一个类SAXParserHander继续DefaultHandler,并且实例化这个类
4.SAXParser实例的parse来获取文件
public static void main(String[] args) {
//
- 为什么mysql里的ibdata1文件不断的增长?
brotherlamp
linuxlinux运维linux资料linux视频linux运维自学
我们在 Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题。
当监控服务器发送一个关于 MySQL 服务器存储的报警时,恐慌就开始了 —— 就是说磁盘快要满了。
一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用。而你已经启用了 innodbfileper_table,所以问题是:
ibdata1存了什么?
当你启用了 i
- Quartz-quartz.properties配置
eksliang
quartz
其实Quartz JAR文件的org.quartz包下就包含了一个quartz.properties属性配置文件并提供了默认设置。如果需要调整默认配置,可以在类路径下建立一个新的quartz.properties,它将自动被Quartz加载并覆盖默认的设置。
下面是这些默认值的解释
#-----集群的配置
org.quartz.scheduler.instanceName =
- informatica session的使用
18289753290
workflowsessionlogInformatica
如果希望workflow存储最近20次的log,在session里的Config Object设置,log options做配置,save session log :sessions run ;savesessio log for these runs:20
session下面的source 里面有个tracing 
- Scrapy抓取网页时出现CRC check failed 0x471e6e9a != 0x7c07b839L的错误
酷的飞上天空
scrapy
Scrapy版本0.14.4
出现问题现象:
ERROR: Error downloading <GET http://xxxxx CRC check failed
解决方法
1.设置网络请求时的header中的属性'Accept-Encoding': '*;q=0'
明确表示不支持任何形式的压缩格式,避免程序的解压
- java Swing小集锦
永夜-极光
java swing
1.关闭窗体弹出确认对话框
1.1 this.setDefaultCloseOperation (JFrame.DO_NOTHING_ON_CLOSE);
1.2
this.addWindowListener (
new WindowAdapter () {
public void windo
- 强制删除.svn文件夹
随便小屋
java
在windows上,从别处复制的项目中可能带有.svn文件夹,手动删除太麻烦,并且每个文件夹下都有。所以写了个程序进行删除。因为.svn文件夹在windows上是只读的,所以用File中的delete()和deleteOnExist()方法都不能将其删除,所以只能采用windows命令方式进行删除
- GET和POST有什么区别?及为什么网上的多数答案都是错的。
aijuans
get post
如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历
前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。
这个答案好像并不是他想要的。于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把G
- 谈谈新浪微博背后的那些算法
aoyouzi
谈谈新浪微博背后的那些算法
本文对微博中常见的问题的对应算法进行了简单的介绍,在实际应用中的算法比介绍的要复杂的多。当然,本文覆盖的主题并不全,比如好友推荐、热点跟踪等就没有涉及到。但古人云“窥一斑而见全豹”,希望本文的介绍能帮助大家更好的理解微博这样的社交网络应用。
微博是一个很多人都在用的社交应用。天天刷微博的人每天都会进行着这样几个操作:原创、转发、回复、阅读、关注、@等。其中,前四个是针对短博文,最后的关注和@则针
- Connection reset 连接被重置的解决方法
百合不是茶
java字符流连接被重置
流是java的核心部分,,昨天在做android服务器连接服务器的时候出了问题,就将代码放到java中执行,结果还是一样连接被重置
被重置的代码如下;
客户端代码;
package 通信软件服务器;
import java.io.BufferedWriter;
import java.io.OutputStream;
import java.io.O
- web.xml配置详解之filter
bijian1013
javaweb.xmlfilter
一.定义
<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>com.my.app.EncodingFilter</filter-class>
<init-param>
<param-name>encoding<
- Heritrix
Bill_chen
多线程xml算法制造配置管理
作为纯Java语言开发的、功能强大的网络爬虫Heritrix,其功能极其强大,且扩展性良好,深受热爱搜索技术的盆友们的喜爱,但它配置较为复杂,且源码不好理解,最近又使劲看了下,结合自己的学习和理解,跟大家分享Heritrix的点点滴滴。
Heritrix的下载(http://sourceforge.net/projects/archive-crawler/)安装、配置,就不罗嗦了,可以自己找找资
- 【Zookeeper】FAQ
bit1129
zookeeper
1.脱离IDE,运行简单的Java客户端程序
#ZkClient是简单的Zookeeper~$ java -cp "./:zookeeper-3.4.6.jar:./lib/*" ZKClient
1. Zookeeper是的Watcher回调是同步操作,需要添加异步处理的代码
2. 如果Zookeeper集群跨越多个机房,那么Leader/
- The user specified as a definer ('aaa'@'localhost') does not exist
白糖_
localhost
今天遇到一个客户BUG,当前的jdbc连接用户是root,然后部分删除操作都会报下面这个错误:The user specified as a definer ('aaa'@'localhost') does not exist
最后找原因发现删除操作做了触发器,而触发器里面有这样一句
/*!50017 DEFINER = ''aaa@'localhost' */
原来最初
- javascript中showModelDialog刷新父页面
bozch
JavaScript刷新父页面showModalDialog
在页面中使用showModalDialog打开模式子页面窗口的时候,如果想在子页面中操作父页面中的某个节点,可以通过如下的进行:
window.showModalDialog('url',self,‘status...’); // 首先中间参数使用self
在子页面使用w
- 编程之美-买书折扣
bylijinnan
编程之美
import java.util.Arrays;
public class BookDiscount {
/**编程之美 买书折扣
书上的贪心算法的分析很有意思,我看了半天看不懂,结果作者说,贪心算法在这个问题上是不适用的。。
下面用动态规划实现。
哈利波特这本书一共有五卷,每卷都是8欧元,如果读者一次购买不同的两卷可扣除5%的折扣,三卷10%,四卷20%,五卷
- 关于struts2.3.4项目跨站执行脚本以及远程执行漏洞修复概要
chenbowen00
strutsWEB安全
因为近期负责的几个银行系统软件,需要交付客户,因此客户专门请了安全公司对系统进行了安全评测,结果发现了诸如跨站执行脚本,远程执行漏洞以及弱口令等问题。
下面记录下本次解决的过程以便后续
1、首先从最简单的开始处理,服务器的弱口令问题,首先根据安全工具提供的测试描述中发现应用服务器中存在一个匿名用户,默认是不需要密码的,经过分析发现服务器使用了FTP协议,
而使用ftp协议默认会产生一个匿名用
- [电力与暖气]煤炭燃烧与电力加温
comsci
在宇宙中,用贝塔射线观测地球某个部分,看上去,好像一个个马蜂窝,又像珊瑚礁一样,原来是某个国家的采煤区.....
不过,这个采煤区的煤炭看来是要用完了.....那么依赖将起燃烧并取暖的城市,在极度严寒的季节中...该怎么办呢?
&nbs
- oracle O7_DICTIONARY_ACCESSIBILITY参数
daizj
oracle
O7_DICTIONARY_ACCESSIBILITY参数控制对数据字典的访问.设置为true,如果用户被授予了如select any table等any table权限,用户即使不是dba或sysdba用户也可以访问数据字典.在9i及以上版本默认为false,8i及以前版本默认为true.如果设置为true就可能会带来安全上的一些问题.这也就为什么O7_DICTIONARY_ACCESSIBIL
- 比较全面的MySQL优化参考
dengkane
mysql
本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了,可以参考本站的一些优化案例或者联系我,下方有我的联系方式。这是上篇。
1、硬件层相关优化
1.1、CPU相关
在服务器的BIOS设置中,可
- C语言homework2,有一个逆序打印数字的小算法
dcj3sjt126com
c
#h1#
0、完成课堂例子
1、将一个四位数逆序打印
1234 ==> 4321
实现方法一:
# include <stdio.h>
int main(void)
{
int i = 1234;
int one = i%10;
int two = i / 10 % 10;
int three = i / 100 % 10;
- apacheBench对网站进行压力测试
dcj3sjt126com
apachebench
ab 的全称是 ApacheBench , 是 Apache 附带的一个小工具 , 专门用于 HTTP Server 的 benchmark testing , 可以同时模拟多个并发请求。前段时间看到公司的开发人员也在用它作一些测试,看起来也不错,很简单,也很容易使用,所以今天花一点时间看了一下。
通过下面的一个简单的例子和注释,相信大家可以更容易理解这个工具的使用。
- 2种办法让HashMap线程安全
flyfoxs
javajdkjni
多线程之--2种办法让HashMap线程安全
多线程之--synchronized 和reentrantlock的优缺点
多线程之--2种JAVA乐观锁的比较( NonfairSync VS. FairSync)
HashMap不是线程安全的,往往在写程序时需要通过一些方法来回避.其实JDK原生的提供了2种方法让HashMap支持线程安全.
- Spring Security(04)——认证简介
234390216
Spring Security认证过程
认证简介
目录
1.1 认证过程
1.2 Web应用的认证过程
1.2.1 ExceptionTranslationFilter
1.2.2 在request之间共享SecurityContext
1
- Java 位运算
Javahuhui
java位运算
// 左移( << ) 低位补0
// 0000 0000 0000 0000 0000 0000 0000 0110 然后左移2位后,低位补0:
// 0000 0000 0000 0000 0000 0000 0001 1000
System.out.println(6 << 2);// 运行结果是24
// 右移( >> ) 高位补"
- mysql免安装版配置
ldzyz007
mysql
1、my-small.ini是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
2、my-medium.ini是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
3、my-large.ini是为专用于一个SQL数据
- MFC和ado数据库使用时遇到的问题
你不认识的休道人
sqlC++mfc
===================================================================
第一个
===================================================================
try{
CString sql;
sql.Format("select * from p
- 表单重复提交Double Submits
rensanning
double
可能发生的场景:
*多次点击提交按钮
*刷新页面
*点击浏览器回退按钮
*直接访问收藏夹中的地址
*重复发送HTTP请求(Ajax)
(1)点击按钮后disable该按钮一会儿,这样能避免急躁的用户频繁点击按钮。
这种方法确实有些粗暴,友好一点的可以把按钮的文字变一下做个提示,比如Bootstrap的做法:
http://getbootstrap.co
- Java String 十大常见问题
tomcat_oracle
java正则表达式
1.字符串比较,使用“==”还是equals()? "=="判断两个引用的是不是同一个内存地址(同一个物理对象)。 equals()判断两个字符串的值是否相等。 除非你想判断两个string引用是否同一个对象,否则应该总是使用equals()方法。 如果你了解字符串的驻留(String Interning)则会更好地理解这个问题。
- SpringMVC 登陆拦截器实现登陆控制
xp9802
springMVC
思路,先登陆后,将登陆信息存储在session中,然后通过拦截器,对系统中的页面和资源进行访问拦截,同时对于登陆本身相关的页面和资源不拦截。
实现方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23