From b9c68a32c8f8179c6607569f63a6954d32d2cb59 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 17 May 2019 15:57:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(#IWOJ3):=20IP=E5=9C=B0=E7=90=86=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=E6=9C=8D=E5=8A=A1=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #Comment 为了减少IP地理位置服务增加缓存配置项减少请求次数 comment #IWOJ3 #Issue close https://gitee.com/LongbowEnterprise/dashboard/issues?id=IWOJ3 --- Bootstrap.Admin/BootstrapAdmin.db | Bin 94208 -> 94208 bytes Bootstrap.DataAccess/Dict.cs | 6 + Bootstrap.DataAccess/Helper/DictHelper.cs | 8 + DatabaseScripts/InitData.sql | 2 + DatabaseScripts/MongoDB/Dicts.js | 618 +++++++++++----------- DatabaseScripts/MySQL/initData.sql | 2 + DatabaseScripts/Postgresql/initData.sql | 2 + DatabaseScripts/SQLite/InitData.sql | 2 + UnitTest/DB/UnitTest.db | Bin 94208 -> 94208 bytes 9 files changed, 334 insertions(+), 306 deletions(-) diff --git a/Bootstrap.Admin/BootstrapAdmin.db b/Bootstrap.Admin/BootstrapAdmin.db index f357c060be9efd68b7c6b135d71bb0b9effde098..c926e13efc6e4dfdae766ef37ee60d7d00617752 100644 GIT binary patch delta 83 zcmV-Z0IdIj;01u-1&|v7w2>S`0kpATq|XB=2==e@2;Q0T9>=COk3yp!dvnC6$Z>6O1RFtZ@p;FjvZDKY>6 delta 37 vcmV+=0NVe6;01u-1&|v7vymJ_0kg4Sq|XB<2_TaP&`+}w5XuO%AlcxS7eEgt diff --git a/Bootstrap.DataAccess/Dict.cs b/Bootstrap.DataAccess/Dict.cs index d78081d4..523105e4 100644 --- a/Bootstrap.DataAccess/Dict.cs +++ b/Bootstrap.DataAccess/Dict.cs @@ -160,6 +160,12 @@ namespace Bootstrap.DataAccess /// public string RetrieveLocaleIPSvr() => DictHelper.RetrieveDicts().FirstOrDefault(d => d.Category == "系统设置" && d.Name == "IP地理位置接口" && d.Define == 0)?.Code; + /// + /// + /// + /// + public string RetrieveLocaleIPSvrCachePeriod() => DictHelper.RetrieveDicts().FirstOrDefault(d => d.Category == "系统设置" && d.Name == "IP请求缓存时长" && d.Define == 0)?.Code; + /// /// 获得 项目是否获取登录地点 默认为false /// diff --git a/Bootstrap.DataAccess/Helper/DictHelper.cs b/Bootstrap.DataAccess/Helper/DictHelper.cs index c77f82a8..d988eae2 100644 --- a/Bootstrap.DataAccess/Helper/DictHelper.cs +++ b/Bootstrap.DataAccess/Helper/DictHelper.cs @@ -79,6 +79,7 @@ namespace Bootstrap.DataAccess var url = RetrieveLocaleIPSvrUrl(name); op.Locator = string.IsNullOrEmpty(url) ? null : DefaultIPLocatorProvider.CreateLocator(name); op.Url = string.IsNullOrEmpty(url) ? string.Empty : $"{url}{op.IP}"; + if (int.TryParse(RetrieveLocaleIPSvrCachePeriod(), out var period) && period > 0) op.Period = period; } } @@ -176,9 +177,16 @@ namespace Bootstrap.DataAccess /// /// /// + /// ip地址请求服务名称 /// public static string RetrieveLocaleIPSvrUrl(string ipSvr) => DbContextManager.Create().RetrieveLocaleIPSvrUrl(ipSvr); + /// + /// + /// + /// + public static string RetrieveLocaleIPSvrCachePeriod() => DbContextManager.Create().RetrieveLocaleIPSvrCachePeriod(); + /// /// 访问日志保留时长 默认一个月 /// diff --git a/DatabaseScripts/InitData.sql b/DatabaseScripts/InitData.sql index eb61fe7e..64f4eb1b 100644 --- a/DatabaseScripts/InitData.sql +++ b/DatabaseScripts/InitData.sql @@ -43,6 +43,8 @@ INSERT [dbo].[Dicts] ([Category], [Name], [Code], [Define]) VALUES (N'系统设 INSERT [dbo].[Dicts] ([Category], [Name], [Code], [Define]) VALUES (N'系统设置', N'IP地理位置接口', 'None', 0) INSERT [dbo].[Dicts] ([Category], [Name], [Code], [Define]) VALUES (N'系统设置', N'BaiDuIPSvr', 'http://api.map.baidu.com/location/ip?ak=6lvVPMDlm2gjLpU0aiqPsHXi2OiwGQRj&ip=', 0) INSERT [dbo].[Dicts] ([Category], [Name], [Code], [Define]) VALUES (N'系统设置', N'JuheIPSvr', 'http://apis.juhe.cn/ip/ipNew?key=f57102d1b9fadd3f4a1c29072d0c0206&ip=', 0) +-- 时长单位 分钟 +INSERT [dbo].[Dicts] ([Category], [Name], [Code], [Define]) VALUES (N'系统设置', N'IP请求缓存时长', '10', 0) INSERT [dbo].[Dicts] ([Category], [Name], [Code], [Define]) VALUES (N'系统设置', N'演示系统', '0', 0) INSERT [dbo].[Dicts] ([Category], [Name], [Code], [Define]) VALUES (N'系统设置', N'验证码图床', 'http://images.sdgxgz.com/', 0) diff --git a/DatabaseScripts/MongoDB/Dicts.js b/DatabaseScripts/MongoDB/Dicts.js index d9ec4068..01c828db 100644 --- a/DatabaseScripts/MongoDB/Dicts.js +++ b/DatabaseScripts/MongoDB/Dicts.js @@ -1,309 +1,315 @@ Dicts = [ - { - "Category": "菜单", - "Name": "系统菜单", - "Code": "0", - "Define": NumberInt(0) - }, - { - "Category": "菜单", - "Name": "外部菜单", - "Code": "1", - "Define": NumberInt(0) - }, - { - "Category": "应用程序", - "Name": "未设置", - "Code": "0", - "Define": NumberInt(0) - }, - { - "Category": "网站设置", - "Name": "网站标题", - "Code": "后台管理系统", - "Define": NumberInt(0) - }, - { - "Category": "网站设置", - "Name": "网站页脚", - "Code": "2016 © 通用后台管理系统", - "Define": NumberInt(0) - }, - { - "Category": "系统通知", - "Name": "用户注册", - "Code": "0", - "Define": NumberInt(0) - }, - { - "Category": "系统通知", - "Name": "程序异常", - "Code": "1", - "Define": NumberInt(0) - }, - { - "Category": "系统通知", - "Name": "数据库连接", - "Code": "2", - "Define": NumberInt(0) - }, - { - "Category": "通知状态", - "Name": "未处理", - "Code": "0", - "Define": NumberInt(0) - }, - { - "Category": "通知状态", - "Name": "已处理", - "Code": "1", - "Define": NumberInt(0) - }, - { - "Category": "处理结果", - "Name": "同意", - "Code": "0", - "Define": NumberInt(0) - }, - { - "Category": "处理结果", - "Name": "拒绝", - "Code": "1", - "Define": NumberInt(0) - }, - { - "Category": "消息状态", - "Name": "未读", - "Code": "0", - "Define": NumberInt(0) - }, - { - "Category": "消息状态", - "Name": "已读", - "Code": "1", - "Define": NumberInt(0) - }, - { - "Category": "消息标签", - "Name": "一般", - "Code": "0", - "Define": NumberInt(0) - }, - { - "Category": "消息标签", - "Name": "紧要", - "Code": "1", - "Define": NumberInt(0) - }, - { - "Category": "头像地址", - "Name": "头像路径", - "Code": "~/images/uploader/", - "Define": NumberInt(0) - }, - { - "Category": "头像地址", - "Name": "头像文件", - "Code": "default.jpg", - "Define": NumberInt(0) - }, - { - "Category": "当前样式", - "Name": "使用样式", - "Code": "blue.css", - "Define": NumberInt(0) - }, - { - "Category": "网站设置", - "Name": "前台首页", - "Code": "~/Home/Index", - "Define": NumberInt(0) - }, - { - "Category": "应用程序", - "Name": "组垛平台", - "Code": "4", - "Define": NumberInt(0) - }, - { - "Category": "组垛平台", - "Name": "网站标题", - "Code": "托盘组垛程序", - "Define": NumberInt(1) - }, - { - "Category": "组垛平台", - "Name": "网站页脚", - "Code": "版权所有:中烟信息", - "Define": NumberInt(1) - }, - { - "Category": "组垛平台", - "Name": "个人中心地址", - "Code": "http://localhost:50852/Admin/Profiles", - "Define": NumberInt(1) - }, - { - "Category": "组垛平台", - "Name": "系统设置地址", - "Code": "http://localhost:50852/Admin/Index", - "Define": NumberInt(1) - }, - { - "Category": "设备厂商", - "Name": "远望谷", - "Code": "Invengo", - "Define": NumberInt(1) - }, - { - "Category": "设备厂商", - "Name": "测试", - "Code": "Test", - "Define": NumberInt(1) - }, - { - "Category": "远程数据库", - "Name": "组垛数据库", - "Code": "Corp_Scan", - "Define": NumberInt(1) - }, - { - "Category": "网站样式", - "Name": "黑色样式", - "Code": "black.css", - "Define": NumberInt(0) - }, - { - "Category": "网站样式", - "Name": "蓝色样式", - "Code": "blue.css", - "Define": NumberInt(0) - }, - { - "Category": "设备天线", - "Name": "天线1", - "Code": "1", - "Define": NumberInt(1) - }, - { - "Category": "设备天线", - "Name": "天线2", - "Code": "2", - "Define": NumberInt(1) - }, - { - "Category": "应用程序", - "Name": "测试平台", - "Code": "2", - "Define": NumberInt(0) - }, - { - "Category": "测试平台", - "Name": "网站标题", - "Code": "托盘组垛程序", - "Define": NumberInt(1) - }, - { - "Category": "测试平台", - "Name": "网站页脚", - "Code": "通用后台管理测试平台", - "Define": NumberInt(1) - }, - { - "Category": "测试平台", - "Name": "个人中心地址", - "Code": "http://localhost:50852/Admin/Profiles", - "Define": NumberInt(1) - }, - { - "Category": "测试平台", - "Name": "系统设置地址", - "Code": "http://localhost:50852/Admin/Index", - "Define": NumberInt(1) - }, - { - "Category": "测试平台", - "Name": "系统通知地址", - "Code": "http://localhost:50852/Admin/Notifications", - "Define": NumberInt(1) - }, - { - "Category": "设备驱动", - "Name": "Invengo", - "Code": "Longbow.Invengo.Device, Longbow.Invengo", - "Define": NumberInt(1) - }, - { - "Category": "设备驱动", - "Name": "Test", - "Code": "Pallet.DeviceInterface.Device, Pallet.DeviceHub", - "Define": NumberInt(1) - }, - { - "Category": "应用首页", - "Name": "2", - "Code": "http://localhost:49185/", - "Define": NumberInt(0) - }, - { - "Category": "系统设置", - "Name": "程序异常保留时长", - "Code": "1", - "Define": NumberInt(0) - }, - { + { + "Category": "菜单", + "Name": "系统菜单", + "Code": "0", + "Define": NumberInt(0) + }, + { + "Category": "菜单", + "Name": "外部菜单", + "Code": "1", + "Define": NumberInt(0) + }, + { + "Category": "应用程序", + "Name": "未设置", + "Code": "0", + "Define": NumberInt(0) + }, + { + "Category": "网站设置", + "Name": "网站标题", + "Code": "后台管理系统", + "Define": NumberInt(0) + }, + { + "Category": "网站设置", + "Name": "网站页脚", + "Code": "2016 © 通用后台管理系统", + "Define": NumberInt(0) + }, + { + "Category": "系统通知", + "Name": "用户注册", + "Code": "0", + "Define": NumberInt(0) + }, + { + "Category": "系统通知", + "Name": "程序异常", + "Code": "1", + "Define": NumberInt(0) + }, + { + "Category": "系统通知", + "Name": "数据库连接", + "Code": "2", + "Define": NumberInt(0) + }, + { + "Category": "通知状态", + "Name": "未处理", + "Code": "0", + "Define": NumberInt(0) + }, + { + "Category": "通知状态", + "Name": "已处理", + "Code": "1", + "Define": NumberInt(0) + }, + { + "Category": "处理结果", + "Name": "同意", + "Code": "0", + "Define": NumberInt(0) + }, + { + "Category": "处理结果", + "Name": "拒绝", + "Code": "1", + "Define": NumberInt(0) + }, + { + "Category": "消息状态", + "Name": "未读", + "Code": "0", + "Define": NumberInt(0) + }, + { + "Category": "消息状态", + "Name": "已读", + "Code": "1", + "Define": NumberInt(0) + }, + { + "Category": "消息标签", + "Name": "一般", + "Code": "0", + "Define": NumberInt(0) + }, + { + "Category": "消息标签", + "Name": "紧要", + "Code": "1", + "Define": NumberInt(0) + }, + { + "Category": "头像地址", + "Name": "头像路径", + "Code": "~/images/uploader/", + "Define": NumberInt(0) + }, + { + "Category": "头像地址", + "Name": "头像文件", + "Code": "default.jpg", + "Define": NumberInt(0) + }, + { + "Category": "当前样式", + "Name": "使用样式", + "Code": "blue.css", + "Define": NumberInt(0) + }, + { + "Category": "网站设置", + "Name": "前台首页", + "Code": "~/Home/Index", + "Define": NumberInt(0) + }, + { + "Category": "应用程序", + "Name": "组垛平台", + "Code": "4", + "Define": NumberInt(0) + }, + { + "Category": "组垛平台", + "Name": "网站标题", + "Code": "托盘组垛程序", + "Define": NumberInt(1) + }, + { + "Category": "组垛平台", + "Name": "网站页脚", + "Code": "版权所有:中烟信息", + "Define": NumberInt(1) + }, + { + "Category": "组垛平台", + "Name": "个人中心地址", + "Code": "http://localhost:50852/Admin/Profiles", + "Define": NumberInt(1) + }, + { + "Category": "组垛平台", + "Name": "系统设置地址", + "Code": "http://localhost:50852/Admin/Index", + "Define": NumberInt(1) + }, + { + "Category": "设备厂商", + "Name": "远望谷", + "Code": "Invengo", + "Define": NumberInt(1) + }, + { + "Category": "设备厂商", + "Name": "测试", + "Code": "Test", + "Define": NumberInt(1) + }, + { + "Category": "远程数据库", + "Name": "组垛数据库", + "Code": "Corp_Scan", + "Define": NumberInt(1) + }, + { + "Category": "网站样式", + "Name": "黑色样式", + "Code": "black.css", + "Define": NumberInt(0) + }, + { + "Category": "网站样式", + "Name": "蓝色样式", + "Code": "blue.css", + "Define": NumberInt(0) + }, + { + "Category": "设备天线", + "Name": "天线1", + "Code": "1", + "Define": NumberInt(1) + }, + { + "Category": "设备天线", + "Name": "天线2", + "Code": "2", + "Define": NumberInt(1) + }, + { + "Category": "应用程序", + "Name": "测试平台", + "Code": "2", + "Define": NumberInt(0) + }, + { + "Category": "测试平台", + "Name": "网站标题", + "Code": "托盘组垛程序", + "Define": NumberInt(1) + }, + { + "Category": "测试平台", + "Name": "网站页脚", + "Code": "通用后台管理测试平台", + "Define": NumberInt(1) + }, + { + "Category": "测试平台", + "Name": "个人中心地址", + "Code": "http://localhost:50852/Admin/Profiles", + "Define": NumberInt(1) + }, + { + "Category": "测试平台", + "Name": "系统设置地址", + "Code": "http://localhost:50852/Admin/Index", + "Define": NumberInt(1) + }, + { + "Category": "测试平台", + "Name": "系统通知地址", + "Code": "http://localhost:50852/Admin/Notifications", + "Define": NumberInt(1) + }, + { + "Category": "设备驱动", + "Name": "Invengo", + "Code": "Longbow.Invengo.Device, Longbow.Invengo", + "Define": NumberInt(1) + }, + { + "Category": "设备驱动", + "Name": "Test", + "Code": "Pallet.DeviceInterface.Device, Pallet.DeviceHub", + "Define": NumberInt(1) + }, + { + "Category": "应用首页", + "Name": "2", + "Code": "http://localhost:49185/", + "Define": NumberInt(0) + }, + { + "Category": "系统设置", + "Name": "程序异常保留时长", + "Code": "1", + "Define": NumberInt(0) + }, + { - "Category": "系统设置", - "Name": "操作日志保留时长", - "Code": "12", - "Define": NumberInt(0) - }, - { - "Category": "系统设置", - "Name": "登录日志保留时长", - "Code": "12", - "Define": NumberInt(0) - }, - { - "Category": "系统设置", - "Name": "Cookie保留时长", - "Code": "7", - "Define": NumberInt(0) - }, - { - "Category": "系统设置", - "Name": "IP地理位置接口", - "Code": "None", - "Define": NumberInt(0) - }, - { - "Category": "系统设置", - "Name": "BaiDuIPSvr", - "Code": "http://api.map.baidu.com/location/ip?ak=6lvVPMDlm2gjLpU0aiqPsHXi2OiwGQRj&ip=", - "Define": NumberInt(0) - }, - { - "Category": "系统设置", - "Name": "JuheIPSvr", - "Code": "http://apis.juhe.cn/ip/ipNew?key=f57102d1b9fadd3f4a1c29072d0c0206&ip=", - "Define": NumberInt(0) - }, - { - "Category": "系统设置", - "Name": "访问日志保留时长", - "Code": "1", - "Define": NumberInt(0) - }, - { - "Category": "系统设置", - "Name": "演示系统", - "Code": "0", - "Define": NumberInt(0) - }, - { - "Category": "系统设置", - "Name": "验证码图床", - "Code": "http://images.sdgxgz.com/", - "Define": NumberInt(0) - } + "Category": "系统设置", + "Name": "操作日志保留时长", + "Code": "12", + "Define": NumberInt(0) + }, + { + "Category": "系统设置", + "Name": "登录日志保留时长", + "Code": "12", + "Define": NumberInt(0) + }, + { + "Category": "系统设置", + "Name": "Cookie保留时长", + "Code": "7", + "Define": NumberInt(0) + }, + { + "Category": "系统设置", + "Name": "IP地理位置接口", + "Code": "None", + "Define": NumberInt(0) + }, + { + "Category": "系统设置", + "Name": "BaiDuIPSvr", + "Code": "http://api.map.baidu.com/location/ip?ak=6lvVPMDlm2gjLpU0aiqPsHXi2OiwGQRj&ip=", + "Define": NumberInt(0) + }, + { + "Category": "系统设置", + "Name": "JuheIPSvr", + "Code": "http://apis.juhe.cn/ip/ipNew?key=f57102d1b9fadd3f4a1c29072d0c0206&ip=", + "Define": NumberInt(0) + }, + { + "Category": "系统设置", + "Name": "访问日志保留时长", + "Code": "1", + "Define": NumberInt(0) + }, + { + "Category": "系统设置", + "Name": "IP请求缓存时长", + "Code": "10", + "Define": NumberInt(0) + }, + { + "Category": "系统设置", + "Name": "演示系统", + "Code": "0", + "Define": NumberInt(0) + }, + { + "Category": "系统设置", + "Name": "验证码图床", + "Code": "http://images.sdgxgz.com/", + "Define": NumberInt(0) + } ]; \ No newline at end of file diff --git a/DatabaseScripts/MySQL/initData.sql b/DatabaseScripts/MySQL/initData.sql index 10b898ed..5470d25f 100644 --- a/DatabaseScripts/MySQL/initData.sql +++ b/DatabaseScripts/MySQL/initData.sql @@ -40,6 +40,8 @@ INSERT INTO Dicts (Category, Name, Code, Define) VALUES ('系统设置', 'Cookie INSERT INTO Dicts (Category, Name, Code, Define) VALUES ('系统设置', 'IP地理位置接口', 'None', 0); INSERT INTO Dicts (Category, Name, Code, Define) VALUES ('系统设置', 'BaiDuIPSvr', 'http://api.map.baidu.com/location/ip?ak=6lvVPMDlm2gjLpU0aiqPsHXi2OiwGQRj&ip=', 0); INSERT INTO Dicts (Category, Name, Code, Define) VALUES ('系统设置', 'JuheIPSvr', 'http://apis.juhe.cn/ip/ipNew?key=f57102d1b9fadd3f4a1c29072d0c0206&ip=', 0); +-- 时长单位 分钟 +INSERT INTO Dicts (Category, Name, Code, Define) VALUES ('系统设置', 'IP请求缓存时长', '10', 0); INSERT INTO Dicts (Category, Name, Code, Define) VALUES ('系统设置', '演示系统', '0', 0); INSERT INTO Dicts (Category, Name, Code, Define) VALUES ('系统设置', '验证码图床', 'http://images.sdgxgz.com/', 0); diff --git a/DatabaseScripts/Postgresql/initData.sql b/DatabaseScripts/Postgresql/initData.sql index 8e2ee0d7..1710ca71 100644 --- a/DatabaseScripts/Postgresql/initData.sql +++ b/DatabaseScripts/Postgresql/initData.sql @@ -41,6 +41,8 @@ INSERT INTO Dicts (Category, Name, Code, Define) VALUES ('系统设置', 'IP地 INSERT INTO Dicts (Category, Name, Code, Define) VALUES ('系统设置', 'BaiDuIPSvr', 'http://api.map.baidu.com/location/ip?ak=6lvVPMDlm2gjLpU0aiqPsHXi2OiwGQRj&ip=', 0); INSERT INTO Dicts (Category, Name, Code, Define) VALUES ('系统设置', 'JuheIPSvr', 'http://apis.juhe.cn/ip/ipNew?key=f57102d1b9fadd3f4a1c29072d0c0206&ip=', 0); INSERT INTO Dicts (Category, Name, Code, Define) VALUES ('系统设置', '演示系统', '0', 0); +-- 时长单位 分钟 +INSERT INTO Dicts (Category, Name, Code, Define) VALUES ('系统设置', 'IP请求缓存时长', '10', 0); INSERT INTO Dicts (Category, Name, Code, Define) VALUES ('系统设置', '验证码图床', 'http://images.sdgxgz.com/', 0); DELETE FROM Navigations Where Category = '0'; diff --git a/DatabaseScripts/SQLite/InitData.sql b/DatabaseScripts/SQLite/InitData.sql index beab9355..ffc678f9 100644 --- a/DatabaseScripts/SQLite/InitData.sql +++ b/DatabaseScripts/SQLite/InitData.sql @@ -40,6 +40,8 @@ INSERT INTO [Dicts] ([Category], [Name], [Code], [Define]) VALUES ('系统设置 INSERT INTO [Dicts] ([Category], [Name], [Code], [Define]) VALUES ('系统设置', 'IP地理位置接口', 'None', 0); INSERT INTO [Dicts] ([Category], [Name], [Code], [Define]) VALUES ('系统设置', 'BaiDuIPSvr', 'http://api.map.baidu.com/location/ip?ak=6lvVPMDlm2gjLpU0aiqPsHXi2OiwGQRj&ip=', 0); INSERT INTO [Dicts] ([Category], [Name], [Code], [Define]) VALUES ('系统设置', 'JuheIPSvr', 'http://apis.juhe.cn/ip/ipNew?key=f57102d1b9fadd3f4a1c29072d0c0206&ip=', 0); +-- 时长单位 分钟 +INSERT INTO [Dicts] ([Category], [Name], [Code], [Define]) VALUES ('系统设置', 'IP请求缓存时长', '10', 0); INSERT INTO [Dicts] ([Category], [Name], [Code], [Define]) VALUES ('系统设置', '演示系统', '0', 0); INSERT INTO [Dicts] ([Category], [Name], [Code], [Define]) VALUES ('系统设置', '验证码图床', 'http://images.sdgxgz.com/', 0); diff --git a/UnitTest/DB/UnitTest.db b/UnitTest/DB/UnitTest.db index 6654b3b0ebb71c044c6f08664675f1682dcdf862..7a74a000a84bf43d9e207a54e54587ac981b3b57 100644 GIT binary patch delta 83 zcmV-Z0IdIj;01u-1&|v7Zjl^A0dBEiq|XB=2==e@2;Q0T9>=COk3yp!dvnC6$Z>6O1RFtZ@p;FiOtD5d}a delta 37 vcmV+=0NVe6;01u-1&|v7ZIK*90d28hq|XB<2_TaP&`+}w5XuO%AlcxS2~G~0