Skip to content

Commit

Permalink
Merge pull request icegreentee#337 from segfault-bilibili/fix-floaty-…
Browse files Browse the repository at this point in the history
…glitch

【6.2.6】绕过Android 12出现不可见悬浮窗拦截点击的问题;对手人数因子增加典型值提示
  • Loading branch information
segfault-bilibili committed Jun 10, 2022
2 parents 3ad0353 + 0f8ec52 commit 7fb2549
Show file tree
Hide file tree
Showing 5 changed files with 85 additions and 31 deletions.
106 changes: 79 additions & 27 deletions floatUI.js
Original file line number Diff line number Diff line change
Expand Up @@ -658,7 +658,7 @@ floatUI.main = function () {
checkRotationGlitch();
layoutTaskPopup();
task_popup.container.setVisibility(View.VISIBLE);
task_popup.setTouchable(true);
floaty_setTouchable("task_popup", true);
}

function cancelWrap() {
Expand Down Expand Up @@ -798,6 +798,56 @@ floatUI.main = function () {
}
var isGravityRight = false;

//绕过Android 12出现setTouchable(false)无效的问题
var floatyObjs = {};
var isFloatyTouchable = {};
var floatySize = {};
function registerFloatyObj(key, obj) {
floatyObjs[key] = obj;
isFloatyTouchable[key] = true;
floatySize[key] = {width: floatyObjs[key].getWidth(), height: floatyObjs[key].getHeight()}; //有时候会返回0
}
function floaty_getWidth(key) {
return floatySize[key].width;
}
function floaty_getHeight(key) {
return floatySize[key].height;
}
function floaty_setSize(key, width, height) {
floatySize[key] = {width: width, height: height};
if (isFloatyTouchable[key]) floatyObjs[key].setSize(width, height);
}
function floaty_setTouchable(key, touchable) {
var retryRecordSize = (newTouchable) => {
//有时候registerFloatyObj记录下来的原大小是0,这里试图重新记录
let size = floatySize[key];
if (size.width <= 1 || size.height <= 1) {
size = {width: floatyObjs[key].getWidth(), height: floatyObjs[key].getHeight()};
log("retryRecordSize", "key", key, "touchable", touchable, "isFloatyTouchable[key]", isFloatyTouchable[key], "size", size);
}
if (size.width > 1 && size.height > 1) {
floatySize[key] = size;
if (!newTouchable) floatyObjs[key].setSize(1, 1);
} else {
ui.post(() => {retryRecordSize(newTouchable);}, 500);
}
}

let oldVal = isFloatyTouchable[key] ? true : false;
let newVal = touchable ? true : false;
floatyObjs[key].setTouchable(newVal);
retryRecordSize(newVal);
if (oldVal == newVal) {
return;
}
isFloatyTouchable[key] = newVal;
if (newVal) {
let size = floatySize[key];
floatyObjs[key].setSize(size.width, size.height);
}
}


var task_popup = floaty.rawWindow(
<frame id="container" w="*" h="*">
<relative w="*" h="*" bg="#f8f8f8" margin="0 15 15 0" padding="2" >
Expand Down Expand Up @@ -835,14 +885,15 @@ floatUI.main = function () {

function layoutTaskPopup() {
var sz = getWindowSize();
task_popup.setSize(parseInt(sz.x * 3 / 4), parseInt(sz.y * 3 / 4));
floaty_setSize("task_popup", parseInt(sz.x * 3 / 4), parseInt(sz.y * 3 / 4));
task_popup.setPosition(parseInt(sz.x / 8), parseInt(sz.y / 8));
}

task_popup.container.setVisibility(View.INVISIBLE);
ui.post(() => {
try {
task_popup.setTouchable(false);
registerFloatyObj("task_popup", task_popup);
floaty_setTouchable("task_popup", false);
} catch (e) {
logException(e);
toastLog("设置悬浮窗时出错,重启app...");
Expand All @@ -852,15 +903,15 @@ floatUI.main = function () {
task_popup.list.setDataSource(floatUI.scripts);
task_popup.list.on("item_click", function (item, i, itemView, listView) {
task_popup.container.setVisibility(View.INVISIBLE);
task_popup.setTouchable(false);
floaty_setTouchable("task_popup", false);
if (item.fn) {
toastLog("执行 " + item.name + " 脚本");
replaceCurrentTask(item);
}
});
task_popup.close_button.click(() => {
task_popup.container.setVisibility(View.INVISIBLE);
task_popup.setTouchable(false);
floaty_setTouchable("task_popup", false);
});

// record control info into xml
Expand Down Expand Up @@ -913,7 +964,8 @@ floatUI.main = function () {
floatUI.floatyHangWorkaroundLock.lock();
ui.post(() => {
try {
submenu.setTouchable(false);
registerFloatyObj("submenu", submenu);
floaty_setTouchable("submenu", false);
toggleFloatyGravityLeftRight(submenu, false);//CwvqLU设置的Gravity貌似是START而不是LEFT,这里改成LEFT
floatUI.floatyHangWorkaroundLock.unlock(); //绕开CwvqLU 9.1.0版上的奇怪假死问题
} catch (e) {
Expand All @@ -939,14 +991,18 @@ floatUI.main = function () {
function hideMenu(hide) {
menu.setTouchable(false);
menu.logo.attr("alpha", "1");
submenu.setTouchable(false);
floaty_setTouchable("submenu", true); //以前是设为false,之所以要改成这样,
//是为了应对Android 12出现setTouchable(false)无效的问题:
//floaty_setTouchable实际上不再只是设置点击穿透,
//同时也通过设置窗口大小是否为1来切换是否显示或隐藏悬浮窗,从而变相实现“不可点击”
//(悬浮窗被设为1像素,或者说,隐藏起来了,也是不可点击)

var angle_base = Math.PI / menu_list.length / 2;
var size_base = menu.getWidth();
var size_base = floaty_getWidth("menu");

submenu.setPosition(
0,
parseInt(menu.getY() - (submenu.getHeight() - menu.getHeight()) / 2)
parseInt(menu.getY() - (floaty_getHeight("submenu") - floaty_getHeight("menu")) / 2)
);

for (var i = 0; i < menu_list.length; i++) {
Expand Down Expand Up @@ -1004,11 +1060,10 @@ floatUI.main = function () {
set.addListener({
onAnimationEnd: (anim) => {
menu.setTouchable(true);
floaty_setTouchable("submenu", !hide);
if (hide) {
submenu.container.setVisibility(View.INVISIBLE);
menu.logo.attr("alpha", "0.4");
} else {
submenu.setTouchable(true);
}
},
});
Expand All @@ -1032,6 +1087,8 @@ floatUI.main = function () {
floatUI.floatyHangWorkaroundLock.lock();
ui.post(() => {
try {
registerFloatyObj("menu", menu);
floaty_setTouchable("menu", true); //因为registerFloatyObj有时候记录不到大小所以只能这样再加一句
menu.setPosition(0, parseInt(getWindowSize().y / 4));
toggleFloatyGravityLeftRight(menu, false);//CwvqLU设置的Gravity貌似是START而不是LEFT,这里改成LEFT
floatUI.floatyHangWorkaroundLock.unlock(); //绕开CwvqLU 9.1.0版上的奇怪假死问题
Expand All @@ -1044,11 +1101,11 @@ floatUI.main = function () {

function calcMenuY() {
var sz = getWindowSize();
var minMargin = parseInt((submenu.getHeight() - menu.getHeight()) / 2);
var minMargin = parseInt((floaty_getHeight("submenu") - floaty_getHeight("menu")) / 2);
var y = menu.getY();
if (y < minMargin) return minMargin;
else if (y > sz.y - minMargin - menu.getHeight())
return sz.y - minMargin - menu.getHeight();
else if (y > sz.y - minMargin - floaty_getHeight("menu"))
return sz.y - minMargin - floaty_getHeight("menu");
else return y;
}

Expand Down Expand Up @@ -1092,7 +1149,7 @@ floatUI.main = function () {
isGravityRight = !isGravityRight;
toggleFloatyGravityLeftRight(menu);
toggleFloatyGravityLeftRight(submenu);
bounceHeight = sz.x - current - menu.getHeight();//刘海屏下不准确,但也无所谓,反正就是个一转眼就消失的动画效果
bounceHeight = sz.x - current - floaty_getHeight("menu");//刘海屏下不准确,但也无所谓,反正就是个一转眼就消失的动画效果
}
let animator = ValueAnimator.ofInt(bounceHeight, 0);
let menu_y = calcMenuY();
Expand Down Expand Up @@ -1126,7 +1183,7 @@ floatUI.main = function () {
//更新脚本选择悬浮窗的大小和位置
try {
//因为已经有sz了,就不调用layoutTaskPopup()了
task_popup.setSize(parseInt(sz.x * 3 / 4), parseInt(sz.y * 3 / 4));
floaty_setSize("task_popup", parseInt(sz.x * 3 / 4), parseInt(sz.y * 3 / 4));
task_popup.setPosition(parseInt(sz.x / 8), parseInt(sz.y / 8));
} catch (e) {
logException(e);
Expand All @@ -1140,7 +1197,7 @@ floatUI.main = function () {
menu.setPosition(0, calcMenuY());
submenu.setPosition(
0,
parseInt(menu.getY() - (submenu.getHeight() - menu.getHeight()) / 2)
parseInt(menu.getY() - (floaty_getHeight("submenu") - floaty_getHeight("menu")) / 2)
);
} else {
try {
Expand Down Expand Up @@ -1214,7 +1271,8 @@ floatUI.main = function () {
overlay.container.setVisibility(View.INVISIBLE);
ui.post(() => {
try {
overlay.setTouchable(false);
registerFloatyObj("overlay", overlay);
floaty_setTouchable("overlay", false);
} catch (e) {
logException(e);
toastLog("设置悬浮窗时出错,重启app...");
Expand All @@ -1240,7 +1298,7 @@ floatUI.main = function () {
y: parseInt(event.getRawY()),
};
log("捕获触控松开坐标", touch_up_pos.x, touch_up_pos.y);
overlay.setTouchable(false);
floaty_setTouchable("overlay", false);
overlay.container.setVisibility(View.INVISIBLE);
break;
}
Expand All @@ -1257,10 +1315,10 @@ floatUI.main = function () {
touch_up_pos = null;
ui.post(() => {
var sz = getWindowSize();
overlay.setSize(sz.x, sz.y);
floaty_setSize("overlay", sz.x, sz.y);
overlay.container.description_text.setText(description_text);
overlay.container.setVisibility(View.VISIBLE);
overlay.setTouchable(true);
floaty_setTouchable("overlay", true);
});
while (overlay.container.getVisibility() == View.INVISIBLE) {
sleep(200);
Expand All @@ -1273,12 +1331,6 @@ floatUI.main = function () {
return {pos_down: touch_down_pos, pos_up: touch_up_pos, duration: swipe_duration};
};

var floatyObjs = {
menu: menu,
submenu: submenu,
task_popup: task_popup,
overlay: overlay
};
var floatyVisibilities = {};
var floatySizePositions = {};
var isAllFloatyHidden = false;
Expand Down
4 changes: 3 additions & 1 deletion main.js
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,9 @@ ui.layout(
<text text="对手人数因子" textColor="#000000" />
<input maxLength="3" id="mirrorsEnemyNumFactor" hint="0" text="0" textSize="14" inputType="number|none" />
</linear>
<text text="可以认为对手人数越多越难打。取值范围0-100。默认不考虑对手人数,即因子为0。" textColor="#000000" />
<text text="可以认为对手人数越多越难打。" textColor="#000000" />
<text text="取值范围0-100。典型情况一般设为10以下。比如对手是5人队,5-1=4,然后设为10时会乘1+0.4=1.4,设为100时会乘1+4=5。" textColor="#000000" />
<text text="默认不考虑对手人数,即因子为0。" textColor="#000000" />
</vertical>
</vertical>
</vertical>
Expand Down
2 changes: 1 addition & 1 deletion project.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"build"
],
"packageName": "top.momoe.auto",
"versionName": "6.2.5",
"versionName": "6.2.6",
"versionInfo": "",
"versionCode": 1,
"icon":"./images/icon.png",
Expand Down
2 changes: 1 addition & 1 deletion update/updateList.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"packageName":"top.momoe.auto","versionName":"6.2.5","fileRootNode":[[{"src":"bin/scrcap2bmp-arm","integrity":"sha256-EPmaVWp++E7F9AgvYOm9LJlPt516LG44El752+rlEJk="},{"src":"bin/scrcap2bmp-arm64","integrity":"sha256-eVXMCpt1I99OnClUHHp34D0EXXw9enmPafrvIXWXKmg="},{"src":"bin/scrcap2bmp-x86","integrity":"sha256-mXCcEoSnrvQBjKZACQiSICQp3uVq9VMSxs6NbQnET+g="},{"src":"bin/scrcap2bmp-x86_64","integrity":"sha256-7CkgvLdJdYL1z/KB3XnN+rHimb4IJbWgJK85M0xokPg="},{"src":"bin/scrcap2bmp.c","integrity":"sha256-nR6KCZHaA1mS5N+teR517IsC6PTbanq9WIEejKwH+hk="}],{"src":"floatUI.js","integrity":"sha256-MIZdBo1g4rRD3MO7KfF2UeHEbIT53Cjq/sZYzURnj3A="},{"src":"gen.js","integrity":"sha256-Qi/jmYvCvwzjM7o2DhBt3OIdGwgUDi5pCwiSjwHhTlI="},[{"src":"images/accel.png","integrity":"sha256-UlrQwrRe8dOBxiMk2NDcFxeG2LSI4bG3nMgaPt8zbKQ="},{"src":"images/blast.png","integrity":"sha256-nmYrh9JgPImqNtp3UgP9fo5LmZMKtd4Tel1w/4dpefU="},{"src":"images/charge.png","integrity":"sha256-BmTzqEMGLoFPrJKMd0s+vR7fVZqJ79a4u02vvlLe6XE="},{"src":"images/connectIndicator.png","integrity":"sha256-aJPx9ulXXUZIBDfM9Z5vhctfN7NlcxBsvw1azTBcdzU="},{"src":"images/connectIndicatorBtnDown.png","integrity":"sha256-U3gXx2AasIjmjZDmk/l2tFjl+t5U29EaTVA0gbKRR+o="},{"src":"images/dark.png","integrity":"sha256-wz4LbTyP/DyyYkyfHa3jkcPEga59h/MMRClFxGwyTIE="},{"src":"images/darkBtnDown.png","integrity":"sha256-lu3FuVUDdZKN6Bt5R+wgj+B/KgaJvSvIgBmdzaExTTQ="},{"src":"images/doppel.png","integrity":"sha256-UfHzavfCcMrYsBlrblN84DsdkRaqIxAzn0GsJJTl3Q0="},{"src":"images/fire.png","integrity":"sha256-yzm1z5MCw5B5+emWjIcnH+MJSO9r7n0FPNCbYFM8Two="},{"src":"images/fireBtnDown.png","integrity":"sha256-fGrOcH9LMSZRkkSRFiia9ixdKvQdTJ2QTB2wG+5VXgQ="},{"src":"images/icon.png","integrity":"sha256-nCS4XyLVff1lOyqflpX9mzKzyWTXgHyn+99ShSWYp2s="},{"src":"images/light.png","integrity":"sha256-y5kbLsEw4i1hHj79FRM4rYr8/cI2APMZwRCKfz8g0nI="},{"src":"images/lightBtnDown.png","integrity":"sha256-QnG5sE/fnwPJC2ZsR6rxOQP1ntMMclI3tx80PlTq+Xo="},{"src":"images/magia.png","integrity":"sha256-+QTCSTSq0j9GTwUBmvUc9wbg3zyCjj/mXPVzhHuAp2I="},{"src":"images/mirrorsLose.png","integrity":"sha256-d8h2EWUc3o29ZPv5g6xT6zj8rU3SY3SNFw+bKHCSd5I="},{"src":"images/mirrorsWinLetterI.png","integrity":"sha256-WHubrQ5sgWJYfg96s+JS2PjoUSiXvh56Zm5VpsnQVMQ="},{"src":"images/none.png","integrity":"sha256-IK8U+DkPSBV7MSx5W++j1EgVSFmWexoYf51ipBWsL1g="},{"src":"images/noneBtnDown.png","integrity":"sha256-brVs5j2DsDi02kndGiosXVTFeAhZ96vhoHxY3Diy4SU="},{"src":"images/OKButton.png","integrity":"sha256-KFuIDf/NSJ9udU26WP8NTXjnommz76tuPIc0cfnQ9hw="},{"src":"images/OKButtonGray.png","integrity":"sha256-PeGWvERvcXqCHXpAH/PiDHgZkTgqxizrjbATWZ/Qbco="},{"src":"images/qb.png","integrity":"sha256-8j2wlTdvM0alP+BSFpna+tlFyaqGhwT4yhh7alqy+9w="},{"src":"images/skillEmptyCHS.png","integrity":"sha256-JAptr6ngZeVGE400WHStdUEtUCiT8Gwnil1WmRXTlSI="},{"src":"images/skillEmptyCHT.png","integrity":"sha256-zYKfj2CiuqhPg3hncyEFczqQ+cqExFmnbGE9EUHk0wU="},{"src":"images/skillEmptyJP.png","integrity":"sha256-iupPfmSYlfBO6+L8v1VaLlSUsqhZf0UzCoJgM/PfzqE="},{"src":"images/skillLocked.png","integrity":"sha256-3IDe9rTa1ph8L0NE2wLgWjQ/lO51wj157nqZt0nNs+U="},{"src":"images/start.jpg","integrity":"sha256-J5brNdm2qmrbdgUN7XcI9UcvBt+9MuGdob1ZU9HN8FY="},{"src":"images/water.png","integrity":"sha256-IZHLtWilwZubGYwwIJ5JCc8UAMBzE9E+PqKqN0Mwvp8="},{"src":"images/waterBtnDown.png","integrity":"sha256-16JL5HtrREbiEIfuUME4ozmHo9wB8wlP0JJNxmxqgAY="},{"src":"images/wood.png","integrity":"sha256-CueYQz07Rb8HYWxYO/b30+ux8OeMIHbSXf4cPpZel9M="},{"src":"images/woodBtnDown.png","integrity":"sha256-CqJWlGHeBZn62bCc7KR9d7RPbjIyAzW4tOh1kLzcxFs="}],{"src":"main.js","integrity":"sha256-OLju+8XQgPz7cbQMRFKAKfP/6dsWj8gwPDHvtLxIifM="},{"src":"project.json","integrity":"sha256-7Q9QYA6wjxx62AZZj4vikaLoAYYw2rqHwL8h2MUMjR8="}]}
{"packageName":"top.momoe.auto","versionName":"6.2.6","fileRootNode":[[{"src":"bin/scrcap2bmp-arm","integrity":"sha256-EPmaVWp++E7F9AgvYOm9LJlPt516LG44El752+rlEJk="},{"src":"bin/scrcap2bmp-arm64","integrity":"sha256-eVXMCpt1I99OnClUHHp34D0EXXw9enmPafrvIXWXKmg="},{"src":"bin/scrcap2bmp-x86","integrity":"sha256-mXCcEoSnrvQBjKZACQiSICQp3uVq9VMSxs6NbQnET+g="},{"src":"bin/scrcap2bmp-x86_64","integrity":"sha256-7CkgvLdJdYL1z/KB3XnN+rHimb4IJbWgJK85M0xokPg="},{"src":"bin/scrcap2bmp.c","integrity":"sha256-nR6KCZHaA1mS5N+teR517IsC6PTbanq9WIEejKwH+hk="}],{"src":"floatUI.js","integrity":"sha256-cFnjpKsxorHv6Wqi98G6MgS8nLA/C0hq8hTG0e135FU="},{"src":"gen.js","integrity":"sha256-Qi/jmYvCvwzjM7o2DhBt3OIdGwgUDi5pCwiSjwHhTlI="},[{"src":"images/accel.png","integrity":"sha256-UlrQwrRe8dOBxiMk2NDcFxeG2LSI4bG3nMgaPt8zbKQ="},{"src":"images/blast.png","integrity":"sha256-nmYrh9JgPImqNtp3UgP9fo5LmZMKtd4Tel1w/4dpefU="},{"src":"images/charge.png","integrity":"sha256-BmTzqEMGLoFPrJKMd0s+vR7fVZqJ79a4u02vvlLe6XE="},{"src":"images/connectIndicator.png","integrity":"sha256-aJPx9ulXXUZIBDfM9Z5vhctfN7NlcxBsvw1azTBcdzU="},{"src":"images/connectIndicatorBtnDown.png","integrity":"sha256-U3gXx2AasIjmjZDmk/l2tFjl+t5U29EaTVA0gbKRR+o="},{"src":"images/dark.png","integrity":"sha256-wz4LbTyP/DyyYkyfHa3jkcPEga59h/MMRClFxGwyTIE="},{"src":"images/darkBtnDown.png","integrity":"sha256-lu3FuVUDdZKN6Bt5R+wgj+B/KgaJvSvIgBmdzaExTTQ="},{"src":"images/doppel.png","integrity":"sha256-UfHzavfCcMrYsBlrblN84DsdkRaqIxAzn0GsJJTl3Q0="},{"src":"images/fire.png","integrity":"sha256-yzm1z5MCw5B5+emWjIcnH+MJSO9r7n0FPNCbYFM8Two="},{"src":"images/fireBtnDown.png","integrity":"sha256-fGrOcH9LMSZRkkSRFiia9ixdKvQdTJ2QTB2wG+5VXgQ="},{"src":"images/icon.png","integrity":"sha256-nCS4XyLVff1lOyqflpX9mzKzyWTXgHyn+99ShSWYp2s="},{"src":"images/light.png","integrity":"sha256-y5kbLsEw4i1hHj79FRM4rYr8/cI2APMZwRCKfz8g0nI="},{"src":"images/lightBtnDown.png","integrity":"sha256-QnG5sE/fnwPJC2ZsR6rxOQP1ntMMclI3tx80PlTq+Xo="},{"src":"images/magia.png","integrity":"sha256-+QTCSTSq0j9GTwUBmvUc9wbg3zyCjj/mXPVzhHuAp2I="},{"src":"images/mirrorsLose.png","integrity":"sha256-d8h2EWUc3o29ZPv5g6xT6zj8rU3SY3SNFw+bKHCSd5I="},{"src":"images/mirrorsWinLetterI.png","integrity":"sha256-WHubrQ5sgWJYfg96s+JS2PjoUSiXvh56Zm5VpsnQVMQ="},{"src":"images/none.png","integrity":"sha256-IK8U+DkPSBV7MSx5W++j1EgVSFmWexoYf51ipBWsL1g="},{"src":"images/noneBtnDown.png","integrity":"sha256-brVs5j2DsDi02kndGiosXVTFeAhZ96vhoHxY3Diy4SU="},{"src":"images/OKButton.png","integrity":"sha256-KFuIDf/NSJ9udU26WP8NTXjnommz76tuPIc0cfnQ9hw="},{"src":"images/OKButtonGray.png","integrity":"sha256-PeGWvERvcXqCHXpAH/PiDHgZkTgqxizrjbATWZ/Qbco="},{"src":"images/qb.png","integrity":"sha256-8j2wlTdvM0alP+BSFpna+tlFyaqGhwT4yhh7alqy+9w="},{"src":"images/skillEmptyCHS.png","integrity":"sha256-JAptr6ngZeVGE400WHStdUEtUCiT8Gwnil1WmRXTlSI="},{"src":"images/skillEmptyCHT.png","integrity":"sha256-zYKfj2CiuqhPg3hncyEFczqQ+cqExFmnbGE9EUHk0wU="},{"src":"images/skillEmptyJP.png","integrity":"sha256-iupPfmSYlfBO6+L8v1VaLlSUsqhZf0UzCoJgM/PfzqE="},{"src":"images/skillLocked.png","integrity":"sha256-3IDe9rTa1ph8L0NE2wLgWjQ/lO51wj157nqZt0nNs+U="},{"src":"images/start.jpg","integrity":"sha256-J5brNdm2qmrbdgUN7XcI9UcvBt+9MuGdob1ZU9HN8FY="},{"src":"images/water.png","integrity":"sha256-IZHLtWilwZubGYwwIJ5JCc8UAMBzE9E+PqKqN0Mwvp8="},{"src":"images/waterBtnDown.png","integrity":"sha256-16JL5HtrREbiEIfuUME4ozmHo9wB8wlP0JJNxmxqgAY="},{"src":"images/wood.png","integrity":"sha256-CueYQz07Rb8HYWxYO/b30+ux8OeMIHbSXf4cPpZel9M="},{"src":"images/woodBtnDown.png","integrity":"sha256-CqJWlGHeBZn62bCc7KR9d7RPbjIyAzW4tOh1kLzcxFs="}],{"src":"main.js","integrity":"sha256-MWgeUlXMBS6t/jBQGkaFPRzCRIAi2a+95PfyHAD/8O8="},{"src":"project.json","integrity":"sha256-6n/qN3muYeW5ZGOo8dsxLb0Dp3BqY6m7mPQrLYOk9vw="}]}
Loading

0 comments on commit 7fb2549

Please sign in to comment.