diff --git a/CounterVarSet.cpp b/CounterVarSet.cpp
index c07f162..5fe3b4c 100644
--- a/CounterVarSet.cpp
+++ b/CounterVarSet.cpp
@@ -293,7 +293,7 @@ void CounterVarSet::applyStyleSheet()
/* 下拉箭头图标 */
QComboBox::down-arrow {
- image: url(image/down_white.png);
+ image: url(:/image/down_white.png);
width: 16px; /* 图标显示宽度 */
height: 16px; /* 图标显示高度 */
}
@@ -320,7 +320,7 @@ void CounterVarSet::applyStyleSheet()
}
QSpinBox::down-arrow {
- image: url(image/down_white.png);
+ image: url(:/image/down_white.png);
height: 18px;
width: 18px;
}
@@ -334,7 +334,7 @@ void CounterVarSet::applyStyleSheet()
}
QSpinBox::up-arrow {
- image: url(image/up_white.png);
+ image: url(:/image/up_white.png);
height: 18px;
width: 18px;
}
@@ -391,9 +391,9 @@ void CounterVarSet::applyStyleSheet()
}
QSpinBox::down-arrow {
- image: url(image/down_white.png);
- height: 18px;
- width: 18px;
+ image: url(:/image/down_white.png);
+ height: 15px;
+ width: 15px;
}
QSpinBox::up-button {
@@ -405,9 +405,9 @@ void CounterVarSet::applyStyleSheet()
}
QSpinBox::up-arrow {
- image: url(image/up_white.png);
- height: 18px;
- width: 18px;
+ image: url(:/image/up_white.png);
+ height: 15px;
+ width: 15px;
}
QSpinBox {
diff --git a/DateVarSet.cpp b/DateVarSet.cpp
index b9a52ae..1409d32 100644
--- a/DateVarSet.cpp
+++ b/DateVarSet.cpp
@@ -333,7 +333,7 @@ void DateVarSet::applyStyleSheet()
/* 下拉箭头图标 */
QComboBox::down-arrow {
- image: url(image/down_white.png);
+ image: url(:/image/down_white.png);
width: 16px; /* 图标显示宽度 */
height: 16px; /* 图标显示高度 */
}
diff --git a/ImageLoader.ui b/ImageLoader.ui
index c106928..d7c2a4e 100644
--- a/ImageLoader.ui
+++ b/ImageLoader.ui
@@ -13,6 +13,45 @@
Form
+
+ QComboBox {
+ border: 1px solid #000000;
+ border-radius: 3px;
+ font-size: 14px;
+ width: 180px;
+ height: 90px;
+ padding-left: 10px; /* 文字左边距,避免紧贴边缘 */
+}
+
+/* 下拉箭头区域 */
+QComboBox::drop-down {
+ border: 1px solid #333333;
+ border-radius: 3px;
+ width: 30px; /* 箭头区域宽度 */
+ background-color: #5396C1;
+}
+
+/* 下拉箭头图标 */
+QComboBox::down-arrow {
+ image: url(:/image/down_white.png);
+ width: 16px; /* 图标显示宽度 */
+ height: 16px; /* 图标显示高度 */
+}
+
+/* 悬停状态 */
+QComboBox:hover {
+ background-color: #efefef;
+}
+
+// 下拉框
+QComboBox QAbstractItemView {
+ border: 1px solid #000000;
+ border-radius: 3px;
+ font-size: 14px;
+ selection-background-color: #5396C1; /* 选中项背景色(稍深) */
+ selection-color: #ffffff;
+}
+
0
@@ -68,13 +107,25 @@
文件名
+
+ Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft
+
-
+
+
+ 0
+ 31
+
+
在...寻找
+
+ Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft
+
-
diff --git a/InkJetPrinter.cpp b/InkJetPrinter.cpp
index 4292e1b..aa768fb 100644
--- a/InkJetPrinter.cpp
+++ b/InkJetPrinter.cpp
@@ -197,12 +197,15 @@ void InkJetPrinter::init()
m_serialThreadFPGA = new QThread;
serialFPGA = new Serial("/dev/ttyAS5");
+
+ connect(m_serialThreadFPGA,&QThread::started,serialFPGA,&Serial::startInitSlot);
+
serialFPGA->moveToThread(m_serialThreadFPGA);
connect(serialFPGA,SIGNAL(sendQueueData(int,int,unsigned char*,int,int)),sysPara->devOp,SLOT(resendFPGADate(int,int,unsigned char*,int,int)));
connect(serialFPGA,SIGNAL(resendFPGAData(int,int,unsigned char*,int,int)),sysPara->devOp,SLOT(resendFPGADate(int,int,unsigned char*,int,int)));
connect(sysPara->devOp,SIGNAL(sendSerialDataToFPGA(int,int,unsigned char*,int,int)),serialFPGA,SLOT(sendSerialData(int,int,unsigned char*,int,int)),Qt::QueuedConnection);
connect(serialFPGA,SIGNAL(getFPGAVersion(uint)),this,SLOT(saveFPGAVersionNum(uint)));
- connect(m_serialThreadFPGA,&QThread::started,serialFPGA,&Serial::startInitSlot);
+
connect(serialFPGA,SIGNAL(stopSendData(bool)),this,SLOT(stopSendFPGAData(bool)));
connect(serialFPGA,SIGNAL(getFPGAPhaseDetectHighTm(unsigned char*)),this,SLOT(saveFPGAPhaseDetectHighTm(unsigned char*)));
connect(serialFPGA,SIGNAL(getFPGAStatus(unsigned char*)),this,SLOT(saveFPGAStatus(unsigned char*)));
@@ -214,6 +217,9 @@ void InkJetPrinter::init()
m_serialThreadSTM32 = new QThread();
serialSTM32 = new Serial("/dev/ttyAS2");
+
+ connect(m_serialThreadSTM32,&QThread::started,serialSTM32,&Serial::startInitSlot);
+
serialSTM32->moveToThread(m_serialThreadSTM32);
connect(serialSTM32,SIGNAL(sendQueueData(int,int,unsigned char*,int,int)),sysPara->devOp,SLOT(resendSTM32Date(int,int,unsigned char*,int,int)));
connect(sysPara->devOp,SIGNAL(sendSerialDataToSTM32(int,int,unsigned char*,int,int)),serialSTM32,SLOT(sendSerialData(int,int,unsigned char*,int,int)));
@@ -224,7 +230,7 @@ void InkJetPrinter::init()
connect(serialSTM32,SIGNAL(getSTM32Time(unsigned char*)),this,SLOT(saveSTM32Time(unsigned char*)));
connect(serialSTM32,SIGNAL(stopSendData(bool)),this,SLOT(stopSendSTM32Data(bool)));
connect(serialSTM32,SIGNAL(powerOffReady()),m_MainWidget,SLOT(powerOffConfirmed()));
- connect(m_serialThreadSTM32,&QThread::started,serialSTM32,&Serial::startInitSlot);
+
connect(serialSTM32,SIGNAL(queueSizeSTM32(int)),this,SLOT(showSTM32queuesize(int)));
connect(m_SystemManage,SIGNAL(sigToCloseSerialFPGA()),this,SLOT(closeSerialFPGA()));
@@ -391,14 +397,14 @@ void InkJetPrinter::pressureAdj()
}
static qint32 dbgCnt = 0;
if(++dbgCnt % 50 == 0){
- qDebug()<<"[pressureAdj] pressure="<para.pressure
- <<" PRESSURE="<status.PRESSURE
- <<" gearPumpValue="<para.gearPumpValue
- <<" u="<start();
+ LogInfo::setRunStatusText(tr("FPGA tread start"));
#endif
}
if (!m_serialThreadSTM32->isRunning()){
qDebug()<<"start STM32 tread";
#ifdef ARCH_AARCH64
m_serialThreadSTM32->start();
+ LogInfo::setRunStatusText(tr("STM32 tread start"));
#endif
}
flagOfSerialThreadStratEn = false;
}
if(pulse_10s){
-// if(!m_thread->isRunning())
-// m_thread->start();
sysPara->status.delay10s ++;
if(sysPara->status.delay10s == 10){
pulse_100s = 1;
@@ -741,6 +747,9 @@ void InkJetPrinter::timerHandler(void){
// sysPara->devOp->controlRedLight(false);
}
+ if(pulse_1s) {
+ qDebug() << "FPGA version: build time: " << sysPara->status.build_dat.builTime << " inkDot: " << sysPara->status.build_dat.inkDot;
+ }
sysPara->status.gearPumpRunSpeed = (PulseCnt * 60 * 1000) / (500 * 2);
if(!sysPara->para.gearPumpEnable)
@@ -878,11 +887,13 @@ void InkJetPrinter::timerHandler(void){
}
static qint32 adjDbgCnt = 0;
if(pulse_100ms && ++adjDbgCnt % 50 == 0){
- qDebug()<<"[adjCond] gearPumpEnable="<para.gearPumpEnable
- <<" isPumpValveControledByHand="<status.isPumpValveControledByHand
- <<" ControledSwitchFlag="<
- 460
+ 434
90
- 135
+ 161
37
@@ -787,9 +787,9 @@
- 460
+ 434
140
- 135
+ 161
37
diff --git a/QtUI.pro b/QtUI.pro
index a5312bd..0403994 100644
--- a/QtUI.pro
+++ b/QtUI.pro
@@ -68,6 +68,11 @@ linux-aarch64-gnu-g++ {
DEFINES += ARCH_AARCH64
}
+bns-linux-aarch64-gnu-g++ {
+ DEFINES += ARCH_AARCH64_GNU
+ DEFINES += ARCH_AARCH64
+}
+
HEADERS += Public.h \
myinclude.h \
mainwidget.h \
diff --git a/QtUI.pro.user.237d66a b/QtUI.pro.user.237d66a
new file mode 100644
index 0000000..f0822b8
--- /dev/null
+++ b/QtUI.pro.user.237d66a
@@ -0,0 +1,189 @@
+
+
+
+
+
+ EnvironmentId
+ {237d66a1-7c09-4158-981f-eefd3c043335}
+
+
+ ProjectExplorer.Project.ActiveTarget
+ 0
+
+
+ ProjectExplorer.Project.EditorSettings
+
+ true
+ true
+ true
+
+ Cpp
+
+ CppGlobal
+
+
+
+ QmlJS
+
+ QmlJSGlobal
+
+
+ 2
+ UTF-8
+ false
+ 4
+ false
+ 0
+ 80
+ true
+ true
+ 1
+ 0
+ false
+ true
+ false
+ 2
+ true
+ true
+ 0
+ 8
+ true
+ false
+ 1
+ true
+ true
+ true
+ *.md, *.MD, Makefile
+ false
+ true
+ true
+
+
+
+ ProjectExplorer.Project.PluginSettings
+
+
+ true
+ false
+ true
+ true
+ true
+ true
+
+ false
+
+
+ 0
+ true
+
+ true
+ true
+ Builtin.DefaultTidyAndClazy
+ 8
+ true
+
+
+
+ true
+
+
+
+
+ ProjectExplorer.Project.Target.0
+
+ Desktop
+ Desktop Qt 5.15.13
+ Desktop Qt 5.15.13
+ {1702f7d7-129b-47b5-8cab-d5ac13043541}
+ 0
+ 0
+ 0
+
+ 1
+ /mnt/d/codeRepo/800X600_New_SystemProject-_NewInterface/build/Desktop_Qt_5_15_13-Debug
+ /mnt/d/codeRepo/800X600_New_SystemProject-_NewInterface/build/Desktop_Qt_5_15_13-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Build
+ Build
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Clean
+ Clean
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+ false
+
+ Debug (imported)
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+
+ 1
+
+
+ 0
+ Deploy
+ Deploy
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ true
+ true
+ 0
+ true
+
+ 2
+
+ false
+ -e cpu-cycles --call-graph dwarf,4096 -F 250
+
+ Qt4ProjectManager.Qt4RunConfiguration:
+ /mnt/d/codeRepo/800X600_New_SystemProject-_NewInterface/QtUI.pro
+ false
+ true
+ true
+ true
+ /mnt/d/codeRepo/800X600_New_SystemProject-_NewInterface/build/Desktop_Qt_5_15_13-Debug
+
+ 1
+
+
+
+ ProjectExplorer.Project.TargetCount
+ 1
+
+
+ ProjectExplorer.Project.Updater.FileVersion
+ 22
+
+
+ Version
+ 22
+
+
diff --git a/Serial/serial.cpp b/Serial/serial.cpp
index 7c60518..90d3f24 100644
--- a/Serial/serial.cpp
+++ b/Serial/serial.cpp
@@ -5,9 +5,9 @@
#include
#include
#include "DevOp.h"
-#include
+#include
#include
-#include
+#include
#define MAX_LEN1 1024
#define MAX_LEN2 224
@@ -60,15 +60,19 @@ void Serial::initSerialPort(const QString comport){
serial->setStopBits(QSerialPort::OneStop);
serial->setFlowControl(QSerialPort::NoFlowControl);
if (serial->open(QIODevice::ReadWrite)) {
- if(comport == "/dev/ttyAS5")
+ if(comport == "/dev/ttyAS5"){
qDebug() << "FPGA串口打开成功";
- else
+ }
+ else{
qDebug() << "STM32串口打开成功";
+ }
} else {
- if(comport == "/dev/ttyAS5")
+ if(comport == "/dev/ttyAS5"){
qDebug() << "FPGA串口打开失败:" << serial->errorString();
- else
+ }
+ else{
qDebug() << "STM32串口打开失败:" << serial->errorString();
+ }
}
this->FPGARecDataSavePtr=NULL;
this->FPGARecDataLen=0;
diff --git a/SystemManage.cpp b/SystemManage.cpp
index a2a2602..f6cde99 100644
--- a/SystemManage.cpp
+++ b/SystemManage.cpp
@@ -394,9 +394,10 @@ void adjustdate(int year, int mon, int mday, int hour, int min, int sec) {
nowtime.tm_isdst = -1; // DST.[-1/0/1]
t = mktime(&nowtime);
-#if __GLIBC_MINOR__ >= 31
+#if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 31))
struct timespec res;
res.tv_sec = t;
+ res.tv_nsec = 0;
clock_settime(CLOCK_REALTIME, &res);
#else
stime(&t);
diff --git a/mainwidget.cpp b/mainwidget.cpp
index 026882c..24ff54c 100644
--- a/mainwidget.cpp
+++ b/mainwidget.cpp
@@ -1881,7 +1881,10 @@ void MainWidget::reclaimTanOpen()
setReclaimStatus(true, 0);
if (!sysPara->para.reclaimTankTime) {
// LogInfo::setRunStatusText(tr("警告!回收槽开关时间未设置!"));
+ } else {
+
}
+
sysPara->status.currReclaimOperationCnt = 0;
sysPara->status.reclainTankReachEnd = false;
sysPara->status.reclainOpenAppending = true;
@@ -2201,6 +2204,7 @@ void MainWidget::updateSysStatusToUI(){ //100ms
if(sysPara->status.fpgaVersionNum == 0){ //因为进入系统就会进主界面,马上就会将版本号读出
if(i % 10 == 0){
sysPara->devOp->readFpgaVersionNum();
+ sysPara->devOp->readbuilDat();
}
// ui->labelFpgaVersionNum->setText(QString("%1/F%2.%3.%4").arg(SOFTWARE_VER_NUM).arg(0).arg(0).arg(0) );
}
@@ -3573,7 +3577,10 @@ extern int baudRateValue;
void MainWidget::UpdateUIVersion(){
int fpgaType = sysPara->status.fpgaVersionNum>>12;
QString fpgaVersion;
- if(fpgaType == 6 || fpgaType == 8){
+ if(sysPara->status.build_dat.builTime != 0) {
+ fpgaVersion = QString::number(sysPara->status.build_dat.builTime);
+ }
+ else if(fpgaType == 6 || fpgaType == 8){
fpgaVersion = "72";
}else if(fpgaType == 1 || fpgaType == 2){
fpgaVersion = "67";
diff --git a/scene/BarcodeEditor.ui b/scene/BarcodeEditor.ui
index 3beaba0..7f69e4a 100644
--- a/scene/BarcodeEditor.ui
+++ b/scene/BarcodeEditor.ui
@@ -73,7 +73,7 @@ QComboBox::drop-down {
/* 下拉箭头图标 */
QComboBox::down-arrow {
- image: url(image/down_white.png);
+ image: url(:/image/down_white.png);
width: 16px; /* 图标显示宽度 */
height: 16px; /* 图标显示高度 */
}
@@ -101,7 +101,7 @@ QSpinBox::up-button {
}
QSpinBox::up-arrow {
- image: url(image/up_white.png);
+ image: url(:/image/up_white.png);
}
QSpinBox::down-button {
@@ -113,7 +113,7 @@ QSpinBox::down-button {
}
QSpinBox::down-arrow {
- image: url(image/down_white.png);
+ image: url(:/image/down_white.png);
}
diff --git a/scene/CounterEditor.ui b/scene/CounterEditor.ui
index 8a21143..ea96540 100644
--- a/scene/CounterEditor.ui
+++ b/scene/CounterEditor.ui
@@ -11,9 +11,202 @@
- QWidget {
+ QWidget{
font-size: 16px;
-}
+}
+
+ QPushButton#closeBtn, QPushButton#checkBtn{
+ background-color: #E6F7FF;
+ border: 1px solid #87CEEB;
+ border-radius: 4px;
+ font-size: 24px;
+ color: #228B22;
+ }
+ QPushButton#closeBtn:hover,QPushButton#checkBtn:hover{
+ background-color: #D1E9FF;
+ }
+
+ QPushButton#closeBtn:pressed,QPushButton#checkBtn:pressed{
+ background-color: #BAE7FF;
+ }
+
+ QPushButton {
+ background-color: #5396C1;
+ color: #ffffff;
+ border: 1px solid #000000;
+ border-radius: 3px;
+ font-size: 18px;
+ font-weight:500;
+ width: 180px;
+ height: 90px;
+ }
+
+ QPushButton:hover {
+ background-color: #5396C1;
+ }
+
+ QPushButton:disabled {
+ background-color: #7C828E;
+ color: #606060;
+ border-color: #808080;
+ }
+
+ QComboBox {
+ border: 1px solid #000000;
+ border-radius: 3px;
+ font-size: 14px;
+ width: 180px;
+ height: 90px;
+ padding-left: 10px; /* 文字左边距,避免紧贴边缘 */
+ }
+
+ /* 下拉箭头区域 */
+ QComboBox::drop-down {
+ border: 1px solid #333333;
+ border-radius: 3px;
+ width: 30px; /* 箭头区域宽度 */
+ background-color: #5396C1;
+ }
+
+ /* 下拉箭头图标 */
+ QComboBox::down-arrow {
+ image: url(:/image/down_white.png);
+ width: 16px; /* 图标显示宽度 */
+ height: 16px; /* 图标显示高度 */
+ }
+
+ /* 悬停状态 */
+ QComboBox:hover {
+ background-color: #efefef;
+ }
+
+ QComboBox QAbstractItemView {
+ border: 1px solid #000000;
+ border-radius: 3px;
+ font-size: 14px;
+ selection-background-color: #5396C1; /* 选中项背景色(稍深) */
+ selection-color: #ffffff;
+ }
+
+ QSpinBox::down-button {
+ width: 23px; /* 图标显示宽度 */
+ height: 23px; /* 图标显示高度 */
+ border: 1px solid #333333;
+ border-radius: 3px;
+ background-color: #5396C1;
+ }
+
+ QSpinBox::down-arrow {
+ image: url(:/image/down_white.png);
+ height: 18px;
+ width: 18px;
+ }
+
+ QSpinBox::up-button {
+ width: 23px; /* 图标显示宽度 */
+ height: 23px; /* 图标显示高度 */
+ border: 1px solid #333333;
+ border-radius: 3px;
+ background-color: #5396C1;
+ }
+
+ QSpinBox::up-arrow {
+ image: url(:/image/up_white.png);
+ height: 18px;
+ width: 18px;
+ }
+
+ QSpinBox {
+ border: 1px solid #333333;
+ }
+
+ QTabWidget {
+ border: none;
+ background-color: #7B838E;
+ }
+
+ QTabBar::tab {
+ margin-top: -3px;
+ min-width: 90px;
+ min-height: 45px;
+ padding: 4px 10px;
+ margin-right: 4px;
+ border: 1px solid #dddddd;
+ border-bottom: none;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ background-color: #5396C1;
+ color: #ffffff;
+ }
+
+ QTabWidget::tab-bar {
+ top: -3px;
+ left: 10px;
+ }
+
+ QTabBar::tab:focus {
+ outline: none;
+ }
+
+ QTabBar::tab:selected {
+ background-color: #6bb1e0;
+ color: #ffffff;
+ box-shadow: 0 -3px 8px rgba(44, 125, 232, 0.25);
+ }
+
+ QRadioButton::indicator {
+ width: 25px;
+ height: 25px;
+ }
+
+ QSpinBox::down-button {
+ width: 23px; /* 图标显示宽度 */
+ height: 23px; /* 图标显示高度 */
+ border: 1px solid #333333;
+ border-radius: 3px;
+ background-color: #5396C1;
+ }
+
+ QSpinBox::down-arrow {
+ image: url(:/image/down_white.png);
+ height: 15px;
+ width: 15px;
+ }
+
+ QSpinBox::up-button {
+ width: 23px; /* 图标显示宽度 */
+ height: 23px; /* 图标显示高度 */
+ border: 1px solid #333333;
+ border-radius: 3px;
+ background-color: #5396C1;
+ }
+
+ QSpinBox::up-arrow {
+ image: url(:/image/up_white.png);
+ height: 15px;
+ width: 15px;
+ }
+
+ QSpinBox {
+ border: 1px solid #333333;
+ }
+
+ QCheckBox {
+ color: #000000;
+ }
+
+ QCheckBox::indicator {
+ width: 15px;
+ height: 15px;
+ border: 1px solid #96A0A9;
+ border-radius: 8px;
+ background-color: #ffffff;
+ }
+
+ QCheckBox::indicator:checked {
+ background-color: #95B2D4;
+ border-color: #95B2D4;
+ }
diff --git a/scene/DateFormatEditor.ui b/scene/DateFormatEditor.ui
index 88b8e64..b17721d 100644
--- a/scene/DateFormatEditor.ui
+++ b/scene/DateFormatEditor.ui
@@ -59,7 +59,7 @@ QComboBox::drop-down {
/* 下拉箭头图标 */
QComboBox::down-arrow {
- image: url(image/down_white.png);
+ image: url(:/image/down_white.png);
width: 16px; /* 图标显示宽度 */
height: 16px; /* 图标显示高度 */
}
diff --git a/scene/DateReplaceEditor.cpp b/scene/DateReplaceEditor.cpp
index af81af6..e0ba9a8 100644
--- a/scene/DateReplaceEditor.cpp
+++ b/scene/DateReplaceEditor.cpp
@@ -134,7 +134,7 @@ void DateReplaceEditor::applyStyleSheet()
/* 下拉箭头图标 */
QComboBox::down-arrow {
- image: url(image/down_white.png);
+ image: url(:/image/down_white.png);
width: 16px; /* 图标显示宽度 */
height: 16px; /* 图标显示高度 */
}
diff --git a/scene/DateReplaceEditor.ui b/scene/DateReplaceEditor.ui
index 41a34fb..8ed86f5 100644
--- a/scene/DateReplaceEditor.ui
+++ b/scene/DateReplaceEditor.ui
@@ -66,7 +66,7 @@ QComboBox::drop-down {
/* 下拉箭头图标 */
QComboBox::down-arrow {
- image: url(image/down_white.png);
+ image: url(:/image/down_white.png);
width: 16px; /* 图标显示宽度 */
height: 16px; /* 图标显示高度 */
}
diff --git a/yes b/yes
new file mode 100644
index 0000000..30b2662
--- /dev/null
+++ b/yes
@@ -0,0 +1,49 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+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
+-----END OPENSSH PRIVATE KEY-----
diff --git a/yes.pub b/yes.pub
new file mode 100644
index 0000000..d390823
--- /dev/null
+++ b/yes.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCiyalIosHkZKkw2eDBE8dxEaK4RaWOVqJczfOoT8cQASqo85+lzgWExcSS6iUr6fcO/9UkD1tF72+MVRqjEQRP+cGMsO/VkG2p2B1mzMMpGbVn2bN1oRjkO6Gr9sP9jZ2pFJh66VESvVS9pC8f+10nPPQ6kR/P6VkPEny59dcAaQxrZf+wrBXawoCc9kBGTqvQyTL2YdnRHJymzF+XpsSN0WH5RgMFW9aovbUKkHkYuuVaJQRhg02rkXbRkISoLN6AxwrvtXqYJ3NtJ1ZaQRJS3xyqb1t0hqrDEub0l6+XGtlsD8SFPSeK6fALDMRuYZdzgX1jAn95akGFx7PudqtcTNbONg16hJOwEsIFj1efvQtOJ/pm60rXlqKdfbE9ve0AFYIs/K9b9d3h/2TBFWEyr98FhVE+OCDyXYh3ivMzRPz2X88PoX3vR4SShogRV5gNQVaNMrGIOPnCcU7m4WNIM0WfbkKxxvnOFLHDPZo62TNLFkx4UQ5Hf6CaJROLzR6OCufdT9cVfOOrNORL8M8iMcmKgc/y34MjEvtc2yYc4wL5X5BJZy0uW9A9v7PFiu0a1SSdnQo1CVTq7HKr4fGpE9dCtledma0W4vvlQMcS9NcLiIKPin6NzkSfS5VBj5uHra3LiLZj3AFpEewr7O+0wuzy8M2FA/SiI7R5qh2Ynw== inkjet@ubuntu