From f8fc494b252bd78097038f5b107b2d3984788cc4 Mon Sep 17 00:00:00 2001 From: dukun Date: Tue, 31 Jan 2023 14:37:38 +0800 Subject: [PATCH] as --- .../java/com/github/catvod/spider/Bdys01.java | 559 +++++ .../java/com/github/catvod/spider/Bili11.java | 144 ++ .../com/github/catvod/spider/Kunyu77.java | 372 ++++ .../java/com/github/catvod/spider/Live.java | 2 +- .../java/com/github/catvod/spider/MGTV.java | 316 +++ .../java/com/github/catvod/spider/QQ.java | 333 +++ .../java/com/github/catvod/spider/XBiu.java | 1935 +++++++++++++++++ .../com/github/catvod/spider/XBiubiu.java | 528 +++++ .../java/com/github/catvod/spider/XYQBiu.java | 1019 +++++++++ .../java/com/github/catvod/spider/Yj1211.java | 398 ++++ .../java/com/github/catvod/utils/Misc.java | 25 +- .../java/com/github/catvod/utils/gZip.java | 22 + .../catvod/utils/okhttp/OKCallBack.java | 60 + .../github/catvod/utils/okhttp/OKRequest.java | 132 ++ .../catvod/utils/okhttp/OkHttpUtil.java | 200 ++ .../utils/okhttp/SSLSocketFactoryCompat.java | 167 ++ jar/custom_spider.jar | Bin 267693 -> 323001 bytes jar/custom_spider.jar.md5 | 2 +- 18 files changed, 6211 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/github/catvod/spider/Bdys01.java create mode 100644 app/src/main/java/com/github/catvod/spider/Bili11.java create mode 100644 app/src/main/java/com/github/catvod/spider/Kunyu77.java create mode 100644 app/src/main/java/com/github/catvod/spider/MGTV.java create mode 100644 app/src/main/java/com/github/catvod/spider/QQ.java create mode 100644 app/src/main/java/com/github/catvod/spider/XBiu.java create mode 100644 app/src/main/java/com/github/catvod/spider/XBiubiu.java create mode 100644 app/src/main/java/com/github/catvod/spider/XYQBiu.java create mode 100644 app/src/main/java/com/github/catvod/spider/Yj1211.java create mode 100644 app/src/main/java/com/github/catvod/utils/gZip.java create mode 100644 app/src/main/java/com/github/catvod/utils/okhttp/OKCallBack.java create mode 100644 app/src/main/java/com/github/catvod/utils/okhttp/OKRequest.java create mode 100644 app/src/main/java/com/github/catvod/utils/okhttp/OkHttpUtil.java create mode 100644 app/src/main/java/com/github/catvod/utils/okhttp/SSLSocketFactoryCompat.java diff --git a/app/src/main/java/com/github/catvod/spider/Bdys01.java b/app/src/main/java/com/github/catvod/spider/Bdys01.java new file mode 100644 index 00000000..21008690 --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/Bdys01.java @@ -0,0 +1,559 @@ +package com.github.catvod.spider; + +import android.annotation.TargetApi; +import android.content.Context; +import android.os.Build; +import android.text.TextUtils; +import android.util.Base64; + +import com.github.catvod.crawler.Spider; +import com.github.catvod.crawler.SpiderDebug; +import com.github.catvod.utils.Misc; +import com.github.catvod.utils.gZip; +import com.github.catvod.utils.okhttp.OKCallBack; +import com.github.catvod.utils.okhttp.OkHttpUtil; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; + +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.TreeMap; + +import javax.crypto.Cipher; +import javax.crypto.spec.SecretKeySpec; + +import okhttp3.Call; +import okhttp3.Response; + + +public class Bdys01 extends Spider { + private static final String siteUrl = "https://www.bdys01.com"; + private static final String siteHost = "www.bdys01.com"; + private String cookie=""; + private String referer=""; + + /** + * 筛选配置 + */ + private JSONObject filterConfig; + + + @Override + public void init(Context context) { + super.init(context); + try { + filterConfig = new JSONObject("{\"0\":[{\"key\":\"s\",\"name\":\"类型\",\"value\":[{\"n\":\"全部\",\"v\":\"all\"},{\"n\":\"动作\",\"v\":\"dongzuo\"},{\"n\":\"爱情\",\"v\":\"aiqing\"},{\"n\":\"喜剧\",\"v\":\"xiju\"},{\"n\":\"科幻\",\"v\":\"kehuan\"},{\"n\":\"恐怖\",\"v\":\"kongbu\"},{\"n\":\"战争\",\"v\":\"zhanzheng\"},{\"n\":\"武侠\",\"v\":\"wuxia\"},{\"n\":\"魔幻\",\"v\":\"mohuan\"},{\"n\":\"剧情\",\"v\":\"juqing\"},{\"n\":\"动画\",\"v\":\"donghua\"},{\"n\":\"惊悚\",\"v\":\"jingsong\"},{\"n\":\"3D\",\"v\":\"3D\"},{\"n\":\"灾难\",\"v\":\"zainan\"},{\"n\":\"悬疑\",\"v\":\"xuanyi\"},{\"n\":\"警匪\",\"v\":\"jingfei\"},{\"n\":\"文艺\",\"v\":\"wenyi\"},{\"n\":\"青春\",\"v\":\"qingchun\"},{\"n\":\"冒险\",\"v\":\"maoxian\"},{\"n\":\"犯罪\",\"v\":\"fanzui\"},{\"n\":\"纪录\",\"v\":\"jilu\"},{\"n\":\"古装\",\"v\":\"guzhuang\"},{\"n\":\"奇幻\",\"v\":\"qihuan\"},{\"n\":\"国语\",\"v\":\"guoyu\"},{\"n\":\"综艺\",\"v\":\"zongyi\"},{\"n\":\"历史\",\"v\":\"lishi\"},{\"n\":\"运动\",\"v\":\"yundong\"},{\"n\":\"原创压制\",\"v\":\"yuanchuang\"},{\"n\":\"美剧\",\"v\":\"meiju\"},{\"n\":\"韩剧\",\"v\":\"hanju\"},{\"n\":\"国产电视剧\",\"v\":\"guoju\"},{\"n\":\"日剧\",\"v\":\"riju\"},{\"n\":\"英剧\",\"v\":\"yingju\"},{\"n\":\"德剧\",\"v\":\"deju\"},{\"n\":\"俄剧\",\"v\":\"eju\"},{\"n\":\"巴剧\",\"v\":\"baju\"},{\"n\":\"加剧\",\"v\":\"jiaju\"},{\"n\":\"西剧\",\"v\":\"anish\"},{\"n\":\"意大利剧\",\"v\":\"yidaliju\"},{\"n\":\"泰剧\",\"v\":\"taiju\"},{\"n\":\"港台剧\",\"v\":\"gangtaiju\"},{\"n\":\"法剧\",\"v\":\"faju\"},{\"n\":\"澳剧\",\"v\":\"aoju\"}]},{\"key\":\"area\",\"name\":\"地区\",\"value\":[{\"n\":\"不限\",\"v\":\"\"},{\"n\":\"中国大陆\",\"v\":\"中国大陆\"},{\"n\":\"中国香港\",\"v\":\"中国香港\"},{\"n\":\"中国台湾\",\"v\":\"中国台湾\"},{\"n\":\"美国\",\"v\":\"美国\"},{\"n\":\"英国\",\"v\":\"英国\"},{\"n\":\"日本\",\"v\":\"日本\"},{\"n\":\"韩国\",\"v\":\"韩国\"},{\"n\":\"法国\",\"v\":\"法国\"},{\"n\":\"印度\",\"v\":\"印度\"},{\"n\":\"德国\",\"v\":\"德国\"},{\"n\":\"西班牙\",\"v\":\"西班牙\"},{\"n\":\"意大利\",\"v\":\"意大利\"},{\"n\":\"澳大利亚\",\"v\":\"澳大利亚\"},{\"n\":\"比利时\",\"v\":\"比利时\"},{\"n\":\"瑞典\",\"v\":\"瑞典\"},{\"n\":\"荷兰\",\"v\":\"荷兰\"},{\"n\":\"丹麦\",\"v\":\"丹麦\"},{\"n\":\"加拿大\",\"v\":\"加拿大\"},{\"n\":\"俄罗斯\",\"v\":\"俄罗斯\"}]},{\"key\":\"year\",\"name\":\"年份\",\"value\":[{\"n\":\"全部\",\"v\":\"\"},{\"n\":\"2023\",\"v\":\"2023\"},{\"n\":\"2022\",\"v\":\"2022\"},{\"n\":\"2021\",\"v\":\"2021\"},{\"n\":\"2020\",\"v\":\"2020\"},{\"n\":\"2019\",\"v\":\"2019\"},{\"n\":\"2018\",\"v\":\"2018\"},{\"n\":\"2017\",\"v\":\"2017\"},{\"n\":\"2016\",\"v\":\"2016\"},{\"n\":\"2015\",\"v\":\"2015\"},{\"n\":\"2014\",\"v\":\"2014\"},{\"n\":\"2013\",\"v\":\"2013\"},{\"n\":\"2012\",\"v\":\"2012\"},{\"n\":\"2011\",\"v\":\"2011\"},{\"n\":\"2010\",\"v\":\"2010\"},{\"n\":\"2009\",\"v\":\"2009\"},{\"n\":\"2008\",\"v\":\"2008\"},{\"n\":\"2007\",\"v\":\"2007\"},{\"n\":\"2006\",\"v\":\"2006\"},{\"n\":\"2005\",\"v\":\"2005\"},{\"n\":\"2004\",\"v\":\"2004\"},{\"n\":\"2003\",\"v\":\"2003\"},{\"n\":\"2002\",\"v\":\"2002\"},{\"n\":\"2001\",\"v\":\"2001\"},{\"n\":\"2000\",\"v\":\"2000\"}]},{\"key\":\"order\",\"name\":\"排序\",\"value\":[{\"n\":\"更新时间\",\"v\":\"0\"},{\"n\":\"豆瓣评分\",\"v\":\"1\"}]}],\"1\":[{\"key\":\"s\",\"name\":\"类型\",\"value\":[{\"n\":\"全部\",\"v\":\"all\"},{\"n\":\"动作\",\"v\":\"dongzuo\"},{\"n\":\"爱情\",\"v\":\"aiqing\"},{\"n\":\"喜剧\",\"v\":\"xiju\"},{\"n\":\"科幻\",\"v\":\"kehuan\"},{\"n\":\"恐怖\",\"v\":\"kongbu\"},{\"n\":\"战争\",\"v\":\"zhanzheng\"},{\"n\":\"武侠\",\"v\":\"wuxia\"},{\"n\":\"魔幻\",\"v\":\"mohuan\"},{\"n\":\"剧情\",\"v\":\"juqing\"},{\"n\":\"动画\",\"v\":\"donghua\"},{\"n\":\"惊悚\",\"v\":\"jingsong\"},{\"n\":\"3D\",\"v\":\"3D\"},{\"n\":\"灾难\",\"v\":\"zainan\"},{\"n\":\"悬疑\",\"v\":\"xuanyi\"},{\"n\":\"警匪\",\"v\":\"jingfei\"},{\"n\":\"文艺\",\"v\":\"wenyi\"},{\"n\":\"青春\",\"v\":\"qingchun\"},{\"n\":\"冒险\",\"v\":\"maoxian\"},{\"n\":\"犯罪\",\"v\":\"fanzui\"},{\"n\":\"纪录\",\"v\":\"jilu\"},{\"n\":\"古装\",\"v\":\"guzhuang\"},{\"n\":\"奇幻\",\"v\":\"qihuan\"},{\"n\":\"国语\",\"v\":\"guoyu\"},{\"n\":\"综艺\",\"v\":\"zongyi\"},{\"n\":\"历史\",\"v\":\"lishi\"},{\"n\":\"运动\",\"v\":\"yundong\"},{\"n\":\"原创压制\",\"v\":\"yuanchuang\"},{\"n\":\"美剧\",\"v\":\"meiju\"},{\"n\":\"韩剧\",\"v\":\"hanju\"},{\"n\":\"国产电视剧\",\"v\":\"guoju\"},{\"n\":\"日剧\",\"v\":\"riju\"},{\"n\":\"英剧\",\"v\":\"yingju\"},{\"n\":\"德剧\",\"v\":\"deju\"},{\"n\":\"俄剧\",\"v\":\"eju\"},{\"n\":\"巴剧\",\"v\":\"baju\"},{\"n\":\"加剧\",\"v\":\"jiaju\"},{\"n\":\"西剧\",\"v\":\"anish\"},{\"n\":\"意大利剧\",\"v\":\"yidaliju\"},{\"n\":\"泰剧\",\"v\":\"taiju\"},{\"n\":\"港台剧\",\"v\":\"gangtaiju\"},{\"n\":\"法剧\",\"v\":\"faju\"},{\"n\":\"澳剧\",\"v\":\"aoju\"}]},{\"key\":\"area\",\"name\":\"地区\",\"value\":[{\"n\":\"不限\",\"v\":\"\"},{\"n\":\"中国大陆\",\"v\":\"中国大陆\"},{\"n\":\"中国香港\",\"v\":\"中国香港\"},{\"n\":\"中国台湾\",\"v\":\"中国台湾\"},{\"n\":\"美国\",\"v\":\"美国\"},{\"n\":\"英国\",\"v\":\"英国\"},{\"n\":\"日本\",\"v\":\"日本\"},{\"n\":\"韩国\",\"v\":\"韩国\"},{\"n\":\"法国\",\"v\":\"法国\"},{\"n\":\"印度\",\"v\":\"印度\"},{\"n\":\"德国\",\"v\":\"德国\"},{\"n\":\"西班牙\",\"v\":\"西班牙\"},{\"n\":\"意大利\",\"v\":\"意大利\"},{\"n\":\"澳大利亚\",\"v\":\"澳大利亚\"},{\"n\":\"比利时\",\"v\":\"比利时\"},{\"n\":\"瑞典\",\"v\":\"瑞典\"},{\"n\":\"荷兰\",\"v\":\"荷兰\"},{\"n\":\"丹麦\",\"v\":\"丹麦\"},{\"n\":\"加拿大\",\"v\":\"加拿大\"},{\"n\":\"俄罗斯\",\"v\":\"俄罗斯\"}]},{\"key\":\"year\",\"name\":\"年份\",\"value\":[{\"n\":\"全部\",\"v\":\"\"},{\"n\":\"2023\",\"v\":\"2023\"},{\"n\":\"2022\",\"v\":\"2022\"},{\"n\":\"2021\",\"v\":\"2021\"},{\"n\":\"2020\",\"v\":\"2020\"},{\"n\":\"2019\",\"v\":\"2019\"},{\"n\":\"2018\",\"v\":\"2018\"},{\"n\":\"2017\",\"v\":\"2017\"},{\"n\":\"2016\",\"v\":\"2016\"},{\"n\":\"2015\",\"v\":\"2015\"},{\"n\":\"2014\",\"v\":\"2014\"},{\"n\":\"2013\",\"v\":\"2013\"},{\"n\":\"2012\",\"v\":\"2012\"},{\"n\":\"2011\",\"v\":\"2011\"},{\"n\":\"2010\",\"v\":\"2010\"},{\"n\":\"2009\",\"v\":\"2009\"},{\"n\":\"2008\",\"v\":\"2008\"},{\"n\":\"2007\",\"v\":\"2007\"},{\"n\":\"2006\",\"v\":\"2006\"},{\"n\":\"2005\",\"v\":\"2005\"},{\"n\":\"2004\",\"v\":\"2004\"},{\"n\":\"2003\",\"v\":\"2003\"},{\"n\":\"2002\",\"v\":\"2002\"},{\"n\":\"2001\",\"v\":\"2001\"},{\"n\":\"2000\",\"v\":\"2000\"}]},{\"key\":\"order\",\"name\":\"排序\",\"value\":[{\"n\":\"更新时间\",\"v\":\"0\"},{\"n\":\"豆瓣评分\",\"v\":\"1\"}]}],\"a\":[{\"key\":\"s\",\"name\":\"类型\",\"value\":[{\"n\":\"全部\",\"v\":\"all\"},{\"n\":\"动作\",\"v\":\"dongzuo\"},{\"n\":\"爱情\",\"v\":\"aiqing\"},{\"n\":\"喜剧\",\"v\":\"xiju\"},{\"n\":\"科幻\",\"v\":\"kehuan\"},{\"n\":\"恐怖\",\"v\":\"kongbu\"},{\"n\":\"战争\",\"v\":\"zhanzheng\"},{\"n\":\"武侠\",\"v\":\"wuxia\"},{\"n\":\"魔幻\",\"v\":\"mohuan\"},{\"n\":\"剧情\",\"v\":\"juqing\"},{\"n\":\"动画\",\"v\":\"donghua\"},{\"n\":\"惊悚\",\"v\":\"jingsong\"},{\"n\":\"3D\",\"v\":\"3D\"},{\"n\":\"灾难\",\"v\":\"zainan\"},{\"n\":\"悬疑\",\"v\":\"xuanyi\"},{\"n\":\"警匪\",\"v\":\"jingfei\"},{\"n\":\"文艺\",\"v\":\"wenyi\"},{\"n\":\"青春\",\"v\":\"qingchun\"},{\"n\":\"冒险\",\"v\":\"maoxian\"},{\"n\":\"犯罪\",\"v\":\"fanzui\"},{\"n\":\"纪录\",\"v\":\"jilu\"},{\"n\":\"古装\",\"v\":\"guzhuang\"},{\"n\":\"奇幻\",\"v\":\"qihuan\"},{\"n\":\"国语\",\"v\":\"guoyu\"},{\"n\":\"综艺\",\"v\":\"zongyi\"},{\"n\":\"历史\",\"v\":\"lishi\"},{\"n\":\"运动\",\"v\":\"yundong\"},{\"n\":\"原创压制\",\"v\":\"yuanchuang\"},{\"n\":\"美剧\",\"v\":\"meiju\"},{\"n\":\"韩剧\",\"v\":\"hanju\"},{\"n\":\"国产电视剧\",\"v\":\"guoju\"},{\"n\":\"日剧\",\"v\":\"riju\"},{\"n\":\"英剧\",\"v\":\"yingju\"},{\"n\":\"德剧\",\"v\":\"deju\"},{\"n\":\"俄剧\",\"v\":\"eju\"},{\"n\":\"巴剧\",\"v\":\"baju\"},{\"n\":\"加剧\",\"v\":\"jiaju\"},{\"n\":\"西剧\",\"v\":\"anish\"},{\"n\":\"意大利剧\",\"v\":\"yidaliju\"},{\"n\":\"泰剧\",\"v\":\"taiju\"},{\"n\":\"港台剧\",\"v\":\"gangtaiju\"},{\"n\":\"法剧\",\"v\":\"faju\"},{\"n\":\"澳剧\",\"v\":\"aoju\"}]},{\"key\":\"area\",\"name\":\"地区\",\"value\":[{\"n\":\"不限\",\"v\":\"\"},{\"n\":\"中国大陆\",\"v\":\"中国大陆\"},{\"n\":\"中国香港\",\"v\":\"中国香港\"},{\"n\":\"中国台湾\",\"v\":\"中国台湾\"},{\"n\":\"美国\",\"v\":\"美国\"},{\"n\":\"英国\",\"v\":\"英国\"},{\"n\":\"日本\",\"v\":\"日本\"},{\"n\":\"韩国\",\"v\":\"韩国\"},{\"n\":\"法国\",\"v\":\"法国\"},{\"n\":\"印度\",\"v\":\"印度\"},{\"n\":\"德国\",\"v\":\"德国\"},{\"n\":\"西班牙\",\"v\":\"西班牙\"},{\"n\":\"意大利\",\"v\":\"意大利\"},{\"n\":\"澳大利亚\",\"v\":\"澳大利亚\"},{\"n\":\"比利时\",\"v\":\"比利时\"},{\"n\":\"瑞典\",\"v\":\"瑞典\"},{\"n\":\"荷兰\",\"v\":\"荷兰\"},{\"n\":\"丹麦\",\"v\":\"丹麦\"},{\"n\":\"加拿大\",\"v\":\"加拿大\"},{\"n\":\"俄罗斯\",\"v\":\"俄罗斯\"}]},{\"key\":\"year\",\"name\":\"年份\",\"value\":[{\"n\":\"全部\",\"v\":\"\"},{\"n\":\"2023\",\"v\":\"2023\"},{\"n\":\"2022\",\"v\":\"2022\"},{\"n\":\"2021\",\"v\":\"2021\"},{\"n\":\"2020\",\"v\":\"2020\"},{\"n\":\"2019\",\"v\":\"2019\"},{\"n\":\"2018\",\"v\":\"2018\"},{\"n\":\"2017\",\"v\":\"2017\"},{\"n\":\"2016\",\"v\":\"2016\"},{\"n\":\"2015\",\"v\":\"2015\"},{\"n\":\"2014\",\"v\":\"2014\"},{\"n\":\"2013\",\"v\":\"2013\"},{\"n\":\"2012\",\"v\":\"2012\"},{\"n\":\"2011\",\"v\":\"2011\"},{\"n\":\"2010\",\"v\":\"2010\"},{\"n\":\"2009\",\"v\":\"2009\"},{\"n\":\"2008\",\"v\":\"2008\"},{\"n\":\"2007\",\"v\":\"2007\"},{\"n\":\"2006\",\"v\":\"2006\"},{\"n\":\"2005\",\"v\":\"2005\"},{\"n\":\"2004\",\"v\":\"2004\"},{\"n\":\"2003\",\"v\":\"2003\"},{\"n\":\"2002\",\"v\":\"2002\"},{\"n\":\"2001\",\"v\":\"2001\"},{\"n\":\"2000\",\"v\":\"2000\"}]},{\"key\":\"order\",\"name\":\"排序\",\"value\":[{\"n\":\"更新时间\",\"v\":\"0\"},{\"n\":\"豆瓣评分\",\"v\":\"1\"}]}]}"); + } catch (JSONException e) { + SpiderDebug.log(e); + } + } + + /** + * 爬虫headers + * + * @param url + * @return + */ + protected HashMap getHeaders(String url,String ref) { + HashMap headers = new HashMap<>(); + headers.put("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"); + if(!ref.equals("google")){ + headers.put("Authority", "www.bdys01.com"); + if(ref.length()>0){ + headers.put("Referer", ref); + } + if(cookie.length()>0){ + headers.put("Cookie", cookie); + } + } + headers.put("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2"); + return headers; + } + + protected HashMap getHeaders2(String url) { + HashMap headers = new HashMap<>(); + String ss = url.replace("https://","").split("/")[0]; + headers.put("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"); + headers.put("Authority", ss); + headers.put("Origin", "www.bdys01.com"); + headers.put("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2"); + return headers; + } + + + protected String getCookie(){ + cookie=""; + String cookieurl="https://www.bdys01.com/zzzzz"; + Map> respHeaders = new HashMap<>(); + OkHttpUtil.stringNoRedirect(cookieurl, getHeaders(cookieurl,referer), respHeaders); + if(respHeaders.containsKey("set-cookie")){ + cookie = respHeaders.get("set-cookie").get(0).split(";")[0]; + } + return cookie; + } + + /** + * 获取分类数据 + 首页最近更新视频列表数据 + * + * @param filter 是否开启筛选 关联的是 软件设置中 首页数据源里的筛选开关 + * @return + */ + @Override + public String homeContent(boolean filter) { + try { + Document doc = Jsoup.parse(OkHttpUtil.string(siteUrl, getHeaders(siteUrl,referer))); + referer=siteUrl+"/"; + // 分类节点 + JSONObject result = new JSONObject(); + JSONArray classes = new JSONArray(); + String catestr ="{\"全部\": \"a\",\"电视剧\": \"1\",\"电影\": \"0\"}"; + JSONObject catedef = new JSONObject(catestr); + Iterator it = catedef.keys(); + while(it.hasNext()){ + JSONObject jsonObject = new JSONObject(); + String key =(String) it.next(); + jsonObject.put("type_name", key); + jsonObject.put("type_id", catedef.getString(key)); + classes.put(jsonObject); + } + result.put("class", classes); + if (filter) { + result.put("filters", filterConfig); + } + try { + // 取首页推荐视频列表 + Element homeList = doc.select("div.row.row-cards").get(0); + Elements list = homeList.select("div.col-4.rows-md-7"); + JSONArray videos = new JSONArray(); + for (int i = 0; i < list.size(); i++) { + Element vod = list.get(i); + String title = vod.selectFirst("h3.card-title").text(); + String cover = vod.selectFirst("img.w-100" ).attr("data-src"); + String remark = vod.selectFirst("p.text-muted").text(); + String id =vod.selectFirst("a.d-block.cover").attr("href"); + JSONObject v = new JSONObject(); + v.put("vod_id", id); + v.put("vod_name", title); + v.put("vod_pic", cover); + v.put("vod_remarks", remark); + videos.put(v); + } + result.put("list", videos); + } catch (Exception e) { + SpiderDebug.log(e); + } + getCookie(); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + /** + * 获取分类信息数据 + * + * @param tid 分类id + * @param pg 页数 + * @param filter 同homeContent方法中的filter + * @param extend 筛选参数{k:v, k1:v1} + * @return + */ + @Override + public String categoryContent(String tid, String pg, boolean filter, HashMap extend) { + try { + SpiderDebug.log("Bdys01>>categoryContent"+ filter+"tid:"+tid+"extend:"+extend.toString()); + String url = siteUrl + "/s/" ; + if (extend != null && extend.size() > 0 ) { + String urlformat= ""; + if(tid.equals("a")){ + urlformat= url +"{s}/"+ pg +"?&area={area}&year={year}&order={order}"; + }else { + urlformat= url +"{s}/"+ pg +"?&type="+tid+"&area={area}&year={year}&order={order}"; + } + for (Iterator it = extend.keySet().iterator(); it.hasNext(); ) { + String key = it.next(); + String value = extend.get(key); + if (value.length() > 0) { + urlformat=urlformat.replace("{"+key+"}",URLEncoder.encode(value)); + } + } + for (int i=0 ;i<4;i++) { + if (urlformat.contains("{s}")) { + urlformat = urlformat.replace("{s}", "all"); + } else if (urlformat.contains("{area}")) { + urlformat = urlformat.replace("&area={area}", ""); + } else if (urlformat.contains("{year}")) { + urlformat = urlformat.replace("&year={year}", ""); + } else if (urlformat.contains("{order}")) { + urlformat = urlformat.replace("{order}", "0"); + } + } + url = urlformat; + SpiderDebug.log("Bdys01>>categoryContent"+"url:"+url); + } else { + if(tid.equals("a")){ + url += "all/" + pg + "?&order=0"; + }else { + url += "all/" + pg + "?&type=" + tid + "&order=0"; + } + } + referer=siteUrl+"/"; + String html = OkHttpUtil.string(url, getHeaders(url,referer)); + referer = url; + Document doc = Jsoup.parse(html); + JSONObject result = new JSONObject(); + int pageCount = 0; + int page = -1; + Elements pageInfo = doc.select("a.page-link"); + if (pageInfo.size() == 0) { + page = Integer.parseInt(pg); + pageCount = page; + } else { + for (int i = 0; i < pageInfo.size(); i++) { + Element a = pageInfo.get(i); + String name = a.text(); + if (name.equals("尾页")) { + String gg =a.attr("href"); + String hf =""; + if(gg.contains("JSESSIONID")){ + int start = gg.lastIndexOf("/")+1; + int end = gg.indexOf(";"); + hf =gg.substring(start,end); + }else{ + int start = gg.lastIndexOf("/")+1; + int end = gg.indexOf("?"); + hf =gg.substring(start,end); + } + if (!hf.isEmpty()) { + pageCount = Integer.parseInt(hf); + } else { + pageCount = 0; + } + break; + } + } + } + JSONArray videos = new JSONArray(); + if (!html.contains("没有找到您想要的结果哦")) { + // 取当前分类页的视频列表 + Elements list = doc.select("div.col-lg-8"); + for (int i = 0; i < list.size(); i++) { + Element vod = list.get(i); + String title = vod.selectFirst("h3.mb-0").text(); + String cover = vod.selectFirst("img.w-100").attr("src"); + String remark = vod.selectFirst("p.mb-0").text(); + String idtt = vod.selectFirst("a.d-block").attr("href"); + String id =""; + if(idtt.contains("JSESSIONID")) { + int end = idtt.indexOf(";"); + id = idtt.substring(0,end); + }else{ + id =idtt; + } + JSONObject v = new JSONObject(); + v.put("vod_id", id); + v.put("vod_name", title); + v.put("vod_pic", cover); + v.put("vod_remarks", remark); + videos.put(v); + } + } + result.put("page", page); + result.put("pagecount", pageCount); + result.put("limit", 48); + result.put("total", pageCount <= 1 ? videos.length() : pageCount * 48); + result.put("list", videos); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + /** + * 视频详情信息 + * + * @param ids 视频id + * @return + */ + @Override + public String detailContent(List ids) { + try { + String url = siteUrl + ids.get(0); + Document doc = Jsoup.parse(OkHttpUtil.string(url, getHeaders(url,referer))); + referer=url; + JSONObject result = new JSONObject(); + JSONObject vodList = new JSONObject(); + String cover = doc.selectFirst("div.col-md-auto img").attr("src"); + String title = doc.selectFirst("h1.d-none.d-md-block").text(); + String desc = doc.select("div.card.collapse > div.card-body").text(); + String year = doc.select("span.badge.bg-purple-lt").text().replace("更新时间:","").split("-")[0]; + String category = "", area = "", remark = "", director = "", actor = ""; + Element details = doc.select("div.col.mb-2").get(0); + Elements allp = details.select("p"); + for (int i = 0; i < allp.size(); i++) { + Element text = allp.get(i); + String info = text.selectFirst("strong").text(); + if (info.equals("类型:")) { + List categorys = new ArrayList<>(); + Elements aa = text.select("a"); + for (int j = 0; j < aa.size(); j++) { + categorys.add(aa.get(j).text()); + } + category ="类型:"+TextUtils.join(",", categorys); + } else if (info.contains("地区")) { + int start= text.text().indexOf("[")+1; + int end = text.text().indexOf("]"); + area = text.text().substring(start,end); + } else if (info.contains("豆瓣")) { + remark = "豆瓣:"+text.text(); + } else if (info.contains("导演:")) { + director = text.selectFirst("a").text(); + } else if (info.contains("主演:")) { + List actors = new ArrayList<>(); + Elements aa = text.select("a"); + for (int j = 0; j < aa.size(); j++) { + actors.add(aa.get(j).text()); + } + actor =TextUtils.join(",", actors); + } + } + String vid = ids.get(0); + vodList.put("vod_id", vid); + vodList.put("vod_name", title); + vodList.put("vod_pic", cover); + vodList.put("type_name", category); + vodList.put("vod_year", year); + vodList.put("vod_area", area); + vodList.put("vod_remarks", remark); + vodList.put("vod_actor", actor); + vodList.put("vod_director", director); + vodList.put("vod_content", desc); + Map vod_play = new TreeMap<>(); + // 取播放列表数据 + Elements playListA = doc.select("a.btn.btn-square"); + String sourceName = "播放列表"; + String playList = ""; + List vodItems = new ArrayList<>(); + for (int j = 0; j < playListA.size(); j++) { + Element vod = playListA.get(j); + String idtt = vod.attr("href"); + String playURL =""; + if(idtt.contains("JSESSIONID")) { + int end = idtt.indexOf(";"); + playURL = idtt.substring(0,end); + }else{ + playURL =idtt; + } + vodItems.add(vod.text() + "$" + playURL); + } + if (vodItems.size() > 0) + playList = TextUtils.join("#", vodItems); + vod_play.put(sourceName, playList); + if (vod_play.size() > 0) { + String vod_play_from = TextUtils.join("$$$", vod_play.keySet()); + String vod_play_url = TextUtils.join("$$$", vod_play.values()); + vodList.put("vod_play_from", vod_play_from); + vodList.put("vod_play_url", vod_play_url); + } + JSONArray list = new JSONArray(); + list.put(vodList); + result.put("list", list); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + /** + * 获取视频播放信息 + * + * @param flag 播放源 + * @param id 视频id + * @param vipFlags 所有可能需要vip解析的源 + * @return + */ + @TargetApi(Build.VERSION_CODES.KITKAT) + @Override + public String playerContent(String flag, String id, List vipFlags) { + try { + String url = siteUrl + id ; + String htmlplay = OkHttpUtil.string(url, getHeaders(url,referer)); + Document doc = Jsoup.parse(htmlplay); + Elements allScript = doc.select("script"); + JSONObject result = new JSONObject(); + String pid=""; + for (int i = 0; i < allScript.size(); i++) { + String scContent = allScript.get(i).toString(); + if (scContent.contains("var pid =")) { + int start = scContent.indexOf("var pid ="); + int end = scContent.lastIndexOf("var time") + 1; + String pidtmp = scContent.substring(start, end); + start = pidtmp.indexOf("=")+2; + end = pidtmp.lastIndexOf(";") ; + pid = pidtmp.substring(start, end); + break; + } + } + long t = System.currentTimeMillis(); + String key = Misc.NewMD5(pid+"-"+t, StandardCharsets.UTF_8).substring(0,16); + String sg = encrypt(pid+"-"+t,key); + String geturl = siteUrl+"/lines?t="+t+"&sg="+sg+"&pid="+pid; + String urlsrc = OkHttpUtil.string(geturl, getHeaders(geturl,"")); + JSONObject urlsrcobj = new JSONObject(urlsrc); + JSONObject urldb = urlsrcobj.getJSONObject("data"); + List urldblist = new ArrayList<>(); + if(!urldb.isNull("url3")){ + String url3 = urldb.optString("url3"); + urldblist.add(url3); + } + if(!urldb.isNull("m3u8")){ + String m3u8 = urldb.optString("m3u8").replace("www.bde4.cc","www.bdys01.com"); + urldblist.add(m3u8); + } + if(!urldb.isNull("m3u8_2")){ + String m3u8_2 =urldb.optString("m3u8_2"); + String[] m2=m3u8_2.split(","); + for(int i=0; i< m2.length ;i++){ + urldblist.add(m2[i].replace("www.bde4.cc","www.bdys01.com")); + } + } + int index =new Random().nextInt(urldblist.size()); + String videourl = urldblist.get(index); + if(videourl.contains("mp4")){ + result.put("parse", 0); + result.put("playUrl", ""); + result.put("url", videourl); + result.put("header", ""); + return result.toString(); + } + Map> respHeaders = new HashMap<>(); + OkHttpUtil.stringNoRedirect(videourl, getHeaders(videourl,""), respHeaders); + String redirect = OkHttpUtil.getRedirectLocation(respHeaders); + String realm3u8=""; + OKCallBack.OKCallBackDefault callBack = new OKCallBack.OKCallBackDefault() { + @Override + protected void onFailure(Call call, Exception e) { + } + @Override + protected void onResponse(Response response) { + } + }; + OkHttpUtil.get(OkHttpUtil.defaultClient(), redirect, null, getHeaders2(redirect), callBack); + if (callBack.getResult().code() == 200) { + InputStream picsrc = callBack.getResult().body().byteStream(); + ByteArrayOutputStream buffer = new ByteArrayOutputStream(); + int nRead; + byte[] data = new byte[4]; + while ((nRead = picsrc.read(data, 0, data.length)) != -1) { + buffer.write(data, 0, nRead); + } + buffer.flush(); + byte[] targetArray = buffer.toByteArray(); + picsrc.close(); + byte[] dep = Arrays.copyOfRange(targetArray,3354,targetArray.length); + String pp = gZip.KS(dep); + String[] m3u8ori = pp.split("\n"); + for(int i=0;i>searchContent"+"key:"+key); + String url = "https://www.google.com/search?q=site%3A" + siteHost + "+" + URLEncoder.encode(key); + Document doc = Jsoup.parse(OkHttpUtil.string(url,getHeaders(url,"google"))); + SpiderDebug.log("Bdys01>>searchContent"+"url:"+url); + JSONObject result = new JSONObject(); + JSONArray videos = new JSONArray(); + Elements sourceList = doc.select("div.yuRUbf a"); + if(sourceList.size()>0){ + for (int i = 0; i < 1; i++) { + Element sourcess = sourceList.get(i); + String sourceName = sourcess.select("h3.LC20lb.MBeuO.DKV0Md").text(); + String list1 = sourcess.attr("href"); + if(list1.contains("/s/")||list1.contains("play")||list1.contains("performer")||list1.contains("search")||list1.contains("jsessionid")){ + continue; + } + if (sourceName.contains(key)) { + Document ddrklink = Jsoup.parse(OkHttpUtil.string(list1, getHeaders(list1,referer))); + JSONObject v = new JSONObject(); + String cover = ddrklink.selectFirst("div.col-md-auto img").attr("src"); + String title = ddrklink.selectFirst("h2.d-sm-block.d-md-none").text(); + String id =list1.replace("https://www.bdys01.com",""); + v.put("vod_name", title); + v.put("vod_remarks", ""); + v.put("vod_id", id); + v.put("vod_pic", cover); + videos.put(v); + } + } + result.put("list", videos); + return result.toString(); + } + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + protected String encrypt(String src, String KEY) { + try { + Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding"); + SecretKeySpec keySpec = new SecretKeySpec(KEY.getBytes(), "AES"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec); + return bytesToHexStr(cipher.doFinal(src.getBytes())).toUpperCase(); + } catch (Exception exception) { + SpiderDebug.log(exception); + } + return null; + } + + protected String bytesToHexStr(byte[] bytes) { + StringBuilder hexStr = new StringBuilder(); + for (byte b : bytes) { + String hex = Integer.toHexString(b & 0xFF); + if (hex.length() == 1) { + hex = '0' + hex; + } + hexStr.append(hex); + } + return hexStr.toString(); + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/github/catvod/spider/Bili11.java b/app/src/main/java/com/github/catvod/spider/Bili11.java new file mode 100644 index 00000000..a1ffb61c --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/Bili11.java @@ -0,0 +1,144 @@ +package com.github.catvod.spider; + +import android.content.Context; +import android.text.TextUtils; + +import com.github.catvod.bean.Class; +import com.github.catvod.bean.Result; +import com.github.catvod.bean.Vod; +import com.github.catvod.crawler.Spider; +import com.github.catvod.net.OkHttp; +import com.github.catvod.utils.Misc; +import com.github.catvod.utils.Trans; + +import org.json.JSONArray; +import org.json.JSONObject; +import org.jsoup.Jsoup; + +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * @author ColaMint & FongMi + */ +public class Bili11 extends Spider { + + private static final String url = "https://www.bilibili.com"; + private HashMap header; + private JSONObject ext; + private String extend; + + private String getCookie(String cookie) { + if (TextUtils.isEmpty(cookie)) return "buvid3=84B0395D-C9F2-C490-E92E-A09AB48FE26E71636infoc"; + if (cookie.startsWith("http")) return OkHttp.string(cookie).replace("\n", ""); + return cookie; + } + + private void setHeader() throws Exception { + header.put("cookie", getCookie(ext.getString("cookie"))); + header.put("User-Agent", Misc.CHROME); + header.put("Referer", url); + } + + private void fetchExt() { + String result = OkHttp.string(extend); + if (!TextUtils.isEmpty(result)) extend = result; + } + + private void fetchRule() throws Exception { + if (header.containsKey("cookie") && header.get("cookie").length() > 0) return; + if (extend.startsWith("http")) fetchExt(); + ext = new JSONObject(extend); + setHeader(); + } + + @Override + public void init(Context context, String extend) { + try { + this.extend = extend; + this.header = new HashMap<>(); + fetchRule(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public String homeContent(boolean filter) throws Exception { + fetchRule(); + return Result.string(Class.arrayFrom(ext.getJSONArray("classes").toString()), ext.getJSONObject("filter")); + } + + @Override + public String homeVideoContent() throws Exception { + fetchRule(); + return categoryContent("汽车 数码", "1", true, new HashMap<>()); + } + + @Override + public String categoryContent(String tid, String pg, boolean filter, HashMap extend) throws Exception { + String duration = extend.containsKey("duration") ? extend.get("duration") : "0"; + if (extend.containsKey("tid")) tid = tid + " " + extend.get("tid"); + String url = "https://api.bilibili.com/x/web-interface/search/type?search_type=video&keyword=" + URLEncoder.encode(tid) + "&duration=" + duration + "&page=" + pg; + JSONObject resp = new JSONObject(OkHttp.string(url, header)); + JSONArray result = resp.getJSONObject("data").getJSONArray("result"); + List list = new ArrayList<>(); + for (int i = 0; i < result.length(); ++i) { + JSONObject object = result.getJSONObject(i); + String pic = object.getString("pic"); + Vod vod = new Vod(); + vod.setVodId(object.getString("bvid")); + vod.setVodName(Jsoup.parse(object.getString("title")).text()); + vod.setVodRemarks(object.getString("duration").split(":")[0] + "分鐘"); + vod.setVodPic(pic.startsWith("//") ? "https:" + pic : pic); + list.add(vod); + } + return Result.string(list); + } + + @Override + public String detailContent(List ids) throws Exception { + String bvid = ids.get(0); + String bvid2aidUrl = "https://api.bilibili.com/x/web-interface/archive/stat?bvid=" + bvid; + JSONObject bvid2aidResp = new JSONObject(OkHttp.string(bvid2aidUrl, header)); + String aid = bvid2aidResp.getJSONObject("data").getLong("aid") + ""; + String detailUrl = "https://api.bilibili.com/x/web-interface/view?aid=" + aid; + JSONObject detailResp = new JSONObject(OkHttp.string(detailUrl, header)); + JSONObject detailData = detailResp.getJSONObject("data"); + List playlist = new ArrayList<>(); + JSONArray pages = detailData.getJSONArray("pages"); + for (int i = 0; i < pages.length(); ++i) { + JSONObject page = pages.getJSONObject(i); + String title = page.getString("part").replace("$", "_").replace("#", "_"); + playlist.add(Trans.get(title) + "$" + aid + "+" + page.getLong("cid")); + } + Vod vod = new Vod(); + vod.setVodId(bvid); + vod.setVodName(detailData.getString("title")); + vod.setVodPic(detailData.getString("pic")); + vod.setTypeName(detailData.getString("tname")); + vod.setVodRemarks(detailData.getLong("duration") / 60 + "分鐘"); + vod.setVodContent(detailData.getString("desc")); + vod.setVodPlayFrom("B站"); + vod.setVodPlayUrl(TextUtils.join("#", playlist)); + return Result.string(vod); + } + + @Override + public String searchContent(String key, boolean quick) throws Exception { + return categoryContent(key, "1", true, new HashMap<>()); + } + + @Override + public String playerContent(String flag, String id, List vipFlags) throws Exception { + String[] ids = id.split("\\+"); + String aid = ids[0]; + String cid = ids[1]; + String url = "https://api.bilibili.com/x/player/playurl?avid=" + aid + "&cid=" + cid + "&qn=120&fourk=1"; + JSONObject resp = new JSONObject(OkHttp.string(url, header)); + url = resp.getJSONObject("data").getJSONArray("durl").getJSONObject(0).getString("url"); + return Result.get().url(url).header(header).string(); + } +} diff --git a/app/src/main/java/com/github/catvod/spider/Kunyu77.java b/app/src/main/java/com/github/catvod/spider/Kunyu77.java new file mode 100644 index 00000000..0dee3825 --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/Kunyu77.java @@ -0,0 +1,372 @@ +package com.github.catvod.spider; + +import android.os.Build; +import android.text.TextUtils; + +import com.github.catvod.crawler.Spider; +import com.github.catvod.crawler.SpiderDebug; +import com.github.catvod.utils.Misc; +import com.github.catvod.utils.okhttp.OkHttpUtil; + +import org.json.JSONArray; +import org.json.JSONObject; + +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Set; + + +/** + * Author: @SDL + */ +public class Kunyu77 extends Spider { + private static final String siteUrl = "http://api.kunyu77.com"; + + private String uAgent = "Dalvik/2.1.0 (Linux; U; Android " + Build.VERSION.RELEASE + "; " + Build.MODEL + " Build/" + Build.ID + ")"; + + private HashMap getHeaders(String url) { + HashMap headers = new HashMap<>(); + headers.put("user-agent", uAgent); + return headers; + } + + @Override + public String homeContent(boolean filter) { + try { + String url = siteUrl + "/api.php/provide/filter"; + String content = OkHttpUtil.string(url, getHeaders(url)); + JSONObject jsonObject = new JSONObject(decryptResponse(content)).getJSONObject("data"); + Iterator keys = jsonObject.keys(); + JSONArray classes = new JSONArray(); + JSONObject filterConfig = new JSONObject(); + JSONArray extendsAll = null; + while (keys.hasNext()) { + String typeId = keys.next(); + String typeName = jsonObject.getJSONArray(typeId).getJSONObject(0).getString("cat"); + JSONObject newCls = new JSONObject(); + newCls.put("type_id", typeId); + newCls.put("type_name", typeName); + classes.put(newCls); + try { + if (extendsAll == null) { + String filterUrl = siteUrl + "/api.php/provide/searchFilter?type_id=0&pagenum=1&pagesize=1"; + String filterContent = OkHttpUtil.string(filterUrl, getHeaders(filterUrl)); + JSONObject filterObj = new JSONObject(filterContent).getJSONObject("data").getJSONObject("conditions"); + extendsAll = new JSONArray(); + // 年份 + JSONObject newTypeExtend = new JSONObject(); + newTypeExtend.put("key", "year"); + newTypeExtend.put("name", "年份"); + JSONArray newTypeExtendKV = new JSONArray(); + JSONObject kv = new JSONObject(); + kv.put("n", "全部"); + kv.put("v", ""); + newTypeExtendKV.put(kv); + kv = new JSONObject(); + kv.put("n", "2022"); + kv.put("v", "2022"); + newTypeExtendKV.put(kv); + kv = new JSONObject(); + kv.put("n", "2021"); + kv.put("v", "2021"); + newTypeExtendKV.put(kv); + JSONArray years = filterObj.getJSONArray("y"); + for (int j = 0; j < years.length(); j++) { + JSONObject child = years.getJSONObject(j); + kv = new JSONObject(); + kv.put("n", child.getString("name")); + kv.put("v", child.getString("value")); + newTypeExtendKV.put(kv); + } + newTypeExtend.put("value", newTypeExtendKV); + extendsAll.put(newTypeExtend); + // 地区 + newTypeExtend = new JSONObject(); + newTypeExtend.put("key", "area"); + newTypeExtend.put("name", "地区"); + newTypeExtendKV = new JSONArray(); + kv = new JSONObject(); + kv.put("n", "全部"); + kv.put("v", ""); + newTypeExtendKV.put(kv); + JSONArray areas = filterObj.getJSONArray("a"); + for (int j = 0; j < areas.length(); j++) { + JSONObject child = areas.getJSONObject(j); + kv = new JSONObject(); + kv.put("n", child.getString("name")); + kv.put("v", child.getString("value")); + newTypeExtendKV.put(kv); + } + newTypeExtend.put("value", newTypeExtendKV); + extendsAll.put(newTypeExtend); + // 类型 + newTypeExtend = new JSONObject(); + newTypeExtend.put("key", "category"); + newTypeExtend.put("name", "类型"); + newTypeExtendKV = new JSONArray(); + kv = new JSONObject(); + kv.put("n", "全部"); + kv.put("v", ""); + newTypeExtendKV.put(kv); + JSONArray scat = filterObj.getJSONArray("scat"); + for (int j = 0; j < scat.length(); j++) { + JSONObject child = scat.getJSONObject(j); + kv = new JSONObject(); + kv.put("n", child.getString("name")); + kv.put("v", child.getString("value")); + newTypeExtendKV.put(kv); + } + newTypeExtend.put("value", newTypeExtendKV); + extendsAll.put(newTypeExtend); + } + if (extendsAll != null && extendsAll.length() > 0) { + filterConfig.put(typeId, extendsAll); + } + } catch (Exception e) { + SpiderDebug.log(e); + } + } + JSONObject result = new JSONObject(); + result.put("class", classes); + if (filter) { + result.put("filters", filterConfig); + } + return result.toString(); + } catch (Throwable th) { + + } + return ""; + } + + @Override + public String homeVideoContent() { + try { + JSONArray videos = new JSONArray(); + try { + String url = siteUrl + "/api.php/provide/homeBlock?type_id=0"; + String content = OkHttpUtil.string(url, getHeaders(url)); + JSONObject jsonObject = new JSONObject(decryptResponse(content)); + JSONArray jsonArray = jsonObject.getJSONObject("data").getJSONArray("blocks"); + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject blockObj = jsonArray.getJSONObject(i); + String blockName = blockObj.getString("block_name"); + if (!blockName.startsWith("热播")) { + continue; + } + JSONArray contents = blockObj.getJSONArray("contents"); + for (int j = 0; j < contents.length() && j < 3; j++) { + JSONObject vObj = contents.getJSONObject(j); + JSONObject v = new JSONObject(); + v.put("vod_id", vObj.getString("id")); + v.put("vod_name", vObj.getString("title")); + v.put("vod_pic", vObj.getString("videoCover")); + v.put("vod_remarks", vObj.getString("msg")); + videos.put(v); + } + } + } catch (Exception e) { + + } + JSONObject result = new JSONObject(); + result.put("list", videos); + return result.toString(); + } catch (Throwable th) { + + } + return ""; + } + + @Override + public String categoryContent(String tid, String pg, boolean filter, HashMap extend) { + try { + String url = siteUrl + "/api.php/provide/searchFilter?type_id=" + tid + "&pagenum=" + pg + "&pagesize=24"; + Set keys = extend.keySet(); + for (String key : keys) { + String val = extend.get(key).trim(); + if (val.length() == 0) + continue; + url += "&" + key + "=" + URLEncoder.encode(val); + } + String content = OkHttpUtil.string(url, getHeaders(url)); + JSONObject dataObject = new JSONObject(decryptResponse(content)).getJSONObject("data"); + JSONArray jsonArray = dataObject.getJSONArray("result"); + JSONArray videos = new JSONArray(); + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject vObj = jsonArray.getJSONObject(i); + JSONObject v = new JSONObject(); + v.put("vod_id", vObj.getString("id")); + v.put("vod_name", vObj.getString("title")); + v.put("vod_pic", vObj.getString("videoCover")); + v.put("vod_remarks", vObj.getString("msg")); + videos.put(v); + } + JSONObject result = new JSONObject(); + int limit = 24; + int page = Integer.parseInt(dataObject.getString("page")); + int total = dataObject.getInt("total"); + int pageCount = dataObject.getInt("pagesize"); + result.put("page", page); + result.put("pagecount", pageCount); + result.put("limit", limit); + result.put("total", total); + result.put("list", videos); + return result.toString(); + } catch (Throwable th) { + + } + return ""; + } + + @Override + public String detailContent(List ids) { + try { + String url = siteUrl + "/api.php/provide/videoDetail?ids=" + ids.get(0); + String content = OkHttpUtil.string(url, getHeaders(url)); + JSONObject dataObject = new JSONObject(decryptResponse(content)); + JSONObject vObj = dataObject.getJSONObject("data"); + JSONObject result = new JSONObject(); + JSONArray list = new JSONArray(); + JSONObject vodAtom = new JSONObject(); + String title = vObj.getString("videoName"); + vodAtom.put("vod_id", vObj.getString("id")); + vodAtom.put("vod_name", title); + vodAtom.put("vod_pic", vObj.getString("videoCover")); + vodAtom.put("type_name", vObj.getString("subCategory")); + vodAtom.put("vod_year", vObj.getString("year")); + vodAtom.put("vod_area", vObj.getString("area")); + vodAtom.put("vod_remarks", vObj.getString("msg")); + vodAtom.put("vod_actor", vObj.getString("actor")); + vodAtom.put("vod_director", vObj.getString("director")); + vodAtom.put("vod_content", vObj.getString("brief").trim()); + + url = siteUrl + "/api.php/provide/videoPlaylist?ids=" + ids.get(0); + content = OkHttpUtil.string(url, getHeaders(url)); + JSONArray episodes = new JSONObject(content).getJSONObject("data").getJSONArray("episodes"); + LinkedHashMap> playlist = new LinkedHashMap<>(); + for (int i = 0; i < episodes.length(); i++) { + JSONArray playurls = episodes.getJSONObject(i).getJSONArray("playurls"); + for (int j = 0; j < playurls.length(); j++) { + JSONObject purl = playurls.getJSONObject(j); + String from = purl.getString("playfrom"); + ArrayList urls = playlist.get(from); + if (urls == null) { + urls = new ArrayList<>(); + playlist.put(from, urls); + } + String name = purl.getString("title").replace(title, "").trim(); + if (name.isEmpty()) { + name = (i + 1) + ""; + } + String pid = purl.getString("playurl"); + urls.add(name + "$" + pid); + } + } + String vod_play_from = TextUtils.join("$$$", playlist.keySet()); + StringBuilder sb = new StringBuilder(); + Iterator> iter = playlist.values().iterator(); + short fromSize = (short) playlist.size(); + while (iter.hasNext()) { + fromSize--; + ArrayList urls = iter.next(); + sb.append(TextUtils.join("#", urls)); + if (fromSize > 0) + sb.append("$$$"); + } + vodAtom.put("vod_play_from", vod_play_from); + vodAtom.put("vod_play_url", sb.toString()); + list.put(vodAtom); + result.put("list", list); + return result.toString(); + } catch (Throwable th) { + + } + return ""; + } + + @Override + public String playerContent(String flag, String id, List vipFlags) { + try { + String videoUrl = id; + try { + String url = siteUrl + "/api.php/provide/parserUrl?url=" + id; + String content = OkHttpUtil.string(url, getHeaders(url)); + JSONObject dataObj = new JSONObject(decryptResponse(content)).getJSONObject("data"); + JSONObject playHeader = dataObj.optJSONObject("playHeader"); + String jxUrl = dataObj.getString("url"); + content = OkHttpUtil.string(jxUrl, getHeaders(jxUrl)); + JSONObject result = Misc.jsonParse(jxUrl, content); + if (result != null) { + result.put("parse", 0); + result.put("playUrl", ""); + if (playHeader != null) { + JSONObject header = result.getJSONObject("header"); + Iterator iter = playHeader.keys(); + while (iter.hasNext()) { + String key = iter.next(); + header.put(key, " " + playHeader.getString(key)); + } + result.put("header", header.toString()); + } + return result.toString(); + } + } catch (Throwable th) { + + } + if (Misc.isVip(videoUrl)) { + JSONObject result = new JSONObject(); + result.put("parse", 1); + result.put("jx", "1"); + result.put("url", videoUrl); + return result.toString(); + } + JSONObject result = new JSONObject(); + result.put("parse", 0); + result.put("playUrl", ""); + result.put("url", id); + return result.toString(); + } catch (Throwable th) { + + } + return ""; + } + + @Override + public String searchContent(String key, boolean quick) { + if (quick) + return ""; + try { + String url = siteUrl + "/api.php/provide/searchVideo?searchName=" + URLEncoder.encode(key); + String content = OkHttpUtil.string(url, getHeaders(url)); + JSONObject dataObject = new JSONObject(decryptResponse(content)); + JSONArray jsonArray = dataObject.getJSONArray("data"); + JSONArray videos = new JSONArray(); + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject vObj = jsonArray.getJSONObject(i); + JSONObject v = new JSONObject(); + String title = vObj.getString("videoName"); + if (!title.contains(key)) + continue; + v.put("vod_id", vObj.getString("id")); + v.put("vod_name", title); + v.put("vod_pic", vObj.getString("videoCover")); + v.put("vod_remarks", vObj.getString("msg")); + videos.put(v); + } + JSONObject result = new JSONObject(); + result.put("list", videos); + return result.toString(); + } catch (Throwable th) { + + } + return ""; + } + + protected String decryptResponse(String src) { + return src; + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/github/catvod/spider/Live.java b/app/src/main/java/com/github/catvod/spider/Live.java index 2fc5b683..810a3baf 100644 --- a/app/src/main/java/com/github/catvod/spider/Live.java +++ b/app/src/main/java/com/github/catvod/spider/Live.java @@ -13,7 +13,7 @@ public class Live extends Spider { private int delay; @Override - public void init(Context context, String extend) { + public void init(Context context, String extend) { super.init(context, extend); this.delay = delay(extend); } diff --git a/app/src/main/java/com/github/catvod/spider/MGTV.java b/app/src/main/java/com/github/catvod/spider/MGTV.java new file mode 100644 index 00000000..3cd8658a --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/MGTV.java @@ -0,0 +1,316 @@ +package com.github.catvod.spider; + +import android.content.Context; +import android.net.Uri; + +import com.github.catvod.crawler.Spider; +import com.github.catvod.crawler.SpiderDebug; +import com.github.catvod.utils.okhttp.OkHttpUtil; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + + +public class MGTV extends Spider { + protected JSONObject a; + protected JSONObject q = new JSONObject(); + + private String q(String str, String str2) { + String str3; + try { + if (str2.startsWith("//")) { + Uri parse = Uri.parse(str); + str3 = parse.getScheme() + ":" + str2; + } else if (str2.contains("://")) { + return str2; + } else { + Uri parse2 = Uri.parse(str); + str3 = parse2.getScheme() + "://" + parse2.getHost() + str2; + } + return str3; + } catch (Exception e) { + SpiderDebug.log(e); + return str2; + } + } + + public String categoryContent(String str, String str2, boolean z, HashMap hashMap) { + try { + String str3 = "https://pianku.api.mgtv.com/rider/list/msite/v2?platform=msite&channelId=" + str + "&pn=" + str2 + "&chargeInfo=&sort=c2"; + if (hashMap != null) { + for (String str4 : hashMap.keySet()) { + String trim = hashMap.get(str4).trim(); + if (trim.length() != 0) { + str3 = str3 + "&" + str4 + "=" + URLEncoder.encode(trim); + } + } + } + String content = OkHttpUtil.string(str3, getHeaders(str3)); + JSONObject jSONObject = new JSONObject(); + try { + JSONArray optJSONArray = new JSONObject(content).optJSONObject("data").optJSONArray("hitDocs"); + JSONArray jSONArray = new JSONArray(); + for (int i = 0; i < optJSONArray.length(); i++) { + JSONObject optJSONObject = optJSONArray.optJSONObject(i); + String optString = optJSONObject.optString("title"); + String q = q(str3, optJSONObject.optString("img")); + String optString2 = optJSONObject.optString("updateInfo"); + if (optString2.equals("")) { + optString2 = optJSONObject.optString("subtitle"); + } + String vodId = optJSONObject.optString("playPartId"); + JSONObject jSONObject2 = new JSONObject(); + jSONObject2.put("vod_id", vodId); + jSONObject2.put("vod_name", optString); + jSONObject2.put("vod_pic", q); + jSONObject2.put("vod_remarks", optString2); + jSONArray.put(jSONObject2); + } + jSONObject.put("list", jSONArray); + jSONObject.put("page", str2); + jSONObject.put("pagecount", Integer.MAX_VALUE); + jSONObject.put("limit", 90); + jSONObject.put("total", Integer.MAX_VALUE); + jSONObject.put("list", jSONArray); + } catch (Exception e) { + SpiderDebug.log(e); + } + return jSONObject.toString(4); + } catch (Exception e2) { + SpiderDebug.log(e2); + return ""; + } + } + + public String detailContent(List list) { + try { + String vodId = list.get(0); + String infoUrl = "https://pcweb.api.mgtv.com/player/vinfo?video_id=" + vodId; + String infoJson = OkHttpUtil.string(infoUrl, getHeaders(infoUrl)); + JSONObject info = new JSONObject(infoJson).getJSONObject("data"); + String pic = info.getString("clip_imgurl2"); + + int pageSize = 30; + int page = 1; + String url = "https://pcweb.api.mgtv.com/episode/list?_support=10000000&version=5.5.35&video_id="+vodId+"&page="+page+"&size="+pageSize+"&allowedRC=1&_support=10000000"; + String json = OkHttpUtil.string(url, getHeaders(url)); + JSONObject jSONObject = new JSONObject(json).getJSONObject("data"); + JSONObject jSONObject2 = new JSONObject(); + JSONObject optJSONObject = jSONObject.optJSONObject("info"); + jSONObject2.put("vod_id", vodId); + jSONObject2.put("vod_name", optJSONObject.optString("title")); + jSONObject2.put("vod_pic", pic); + jSONObject2.put("vod_content", optJSONObject.optString("desc")); + JSONArray optJSONArray = jSONObject.optJSONArray("list"); + ArrayList arrayList = new ArrayList(); + + for (int i = 0; i < optJSONArray.length(); i++) { + JSONObject optJSONObject2 = optJSONArray.optJSONObject(i); + String viewName = optJSONObject2.optString("t1") + " " + optJSONObject2.optString("t2"); + arrayList.add(viewName + "$" + optJSONObject2.optString("url")); + } + + int totalPage = jSONObject.getInt("total_page"); + int count = jSONObject.getInt("count"); + int total = jSONObject.getInt("total"); + ArrayList blocks = new ArrayList(); + ArrayList blockList = new ArrayList(); + if (totalPage == 1) { + blocks.add("mgtv"); + } else if (totalPage > 1) { + blocks.add("1-" + pageSize); + } + blockList.add(join("#", arrayList)); + if (totalPage > page) { + for (int curPage = 2; curPage<=totalPage; curPage++) { + String listUrl = "https://pcweb.api.mgtv.com/episode/list?_support=10000000&version=5.5.35&video_id="+vodId+"&page="+curPage+"&size="+pageSize+"&allowedRC=1&_support=10000000"; + String resultJson = OkHttpUtil.string(listUrl, getHeaders(listUrl)); + JSONObject dataObj = new JSONObject(resultJson).getJSONObject("data"); + JSONArray dataList = dataObj.getJSONArray("list"); + int first = (curPage - 1) * pageSize + 1; + int last = 0; + if (totalPage == curPage) { + last = total; + } else { + last = curPage * pageSize; + } + blocks.add(first + "-" + last); + ArrayList curArrayList = new ArrayList(); + for (int i = 0; i < dataList.length(); i++) { + JSONObject item = dataList.optJSONObject(i); + String viewThisName = item.optString("t1") + " " + item.optString("t2"); + curArrayList.add(viewThisName + "$" + item.optString("url")); + } + blockList.add(join("#", curArrayList)); + } + } + + jSONObject2.put("vod_play_from", join("$$$", blocks)); + jSONObject2.put("vod_play_url", join("$$$", blockList)); + JSONObject result = new JSONObject(); + JSONArray jSONArray = new JSONArray(); + jSONArray.put(jSONObject2); + result.put("list", jSONArray); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + return ""; + } + } + + protected HashMap getHeaders(String str) { + HashMap hashMap = new HashMap<>(); + hashMap.put("referer", "https://so.mgtv.com"); + hashMap.put("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"); + return hashMap; + } + + public String homeContent(boolean z) { + try { + JSONArray optJSONArray = new JSONObject(OkHttpUtil.string("https://pianku.api.mgtv.com/rider/config/platformChannels/v1?platform=msite&abroad=0&_support=10000000", getHeaders("https://pianku.api.mgtv.com/rider/config/platformChannels/v1?platform=msite&abroad=0&_support=10000000"))).optJSONArray("data"); + JSONArray jSONArray = new JSONArray(); + for (int i = 0; i < optJSONArray.length(); i++) { + JSONObject optJSONObject = optJSONArray.optJSONObject(i); + JSONObject jSONObject = new JSONObject(); + jSONObject.put("type_name", optJSONObject.optString("channelName")); + jSONObject.put("type_id", optJSONObject.optString("channelId")); + jSONArray.put(jSONObject); + } + JSONObject jSONObject2 = new JSONObject(); + if (z) { + jSONObject2.put("filters", this.a); + } + jSONObject2.put("class", jSONArray); + try { + JSONArray optJSONArray2 = new JSONObject(OkHttpUtil.string("https://pianku.api.mgtv.com/rider/list/pcweb/v3?platform=pcweb&channelId=2&pn=1&chargeInfo=&sort=c2", getHeaders("https://pianku.api.mgtv.com/rider/list/pcweb/v3?platform=pcweb&channelId=2&pn=1&chargeInfo=&sort=c2"))).optJSONObject("data").optJSONArray("hitDocs"); + JSONArray jSONArray2 = new JSONArray(); + for (int i2 = 0; i2 < optJSONArray2.length(); i2++) { + JSONObject optJSONObject2 = optJSONArray2.optJSONObject(i2); + String optString = optJSONObject2.optString("title"); + String q = optJSONObject2.optString("imgUrlH"); + String optString2 = optJSONObject2.optString("updateInfo"); + JSONObject jSONObject3 = new JSONObject(); + jSONObject3.put("vod_id", optJSONObject2.optString("playPartId")); + jSONObject3.put("vod_name", optString); + jSONObject3.put("vod_pic", q); + jSONObject3.put("vod_remarks", optString2); + jSONArray2.put(jSONObject3); + } + jSONObject2.put("list", jSONArray2); + } catch (Exception e) { + SpiderDebug.log(e); + } + return jSONObject2.toString(4); + } catch (Exception e2) { + SpiderDebug.log(e2); + return ""; + } + } + + public String homeVideoContent() { + try { + JSONArray jSONArray = new JSONObject(OkHttpUtil.string("https://www.mgtv.com/api.php/app/index_video?token=", getHeaders("https://www.mgtv.com/api.php/app/index_video?token="))).getJSONArray("list"); + JSONArray jSONArray2 = new JSONArray(); + for (int i = 0; i < jSONArray.length(); i++) { + JSONArray jSONArray3 = jSONArray.getJSONObject(i).getJSONArray("vlist"); + int i2 = 0; + while (i2 < jSONArray3.length() && i2 < 6) { + JSONObject jSONObject = jSONArray3.getJSONObject(i2); + JSONObject jSONObject2 = new JSONObject(); + jSONObject2.put("vod_id", jSONObject.optString("vod_id")); + jSONObject2.put("vod_name", jSONObject.optString("vod_name")); + jSONObject2.put("vod_pic", jSONObject.optString("vod_pic")); + jSONObject2.put("vod_remarks", jSONObject.optString("vod_remarks")); + jSONArray2.put(jSONObject2); + i2++; + } + } + JSONObject jSONObject3 = new JSONObject(); + jSONObject3.put("list", jSONArray2); + return jSONObject3.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + return ""; + } + } + + public void init(Context context) { + MGTV.super.init(context); + try { + this.a = new JSONObject("{\"1\":[{\"name\":\"类型\",\"value\":[{\"v\":\"a1\",\"n\":\"全部\"},{\"v\":\"4\",\"n\":\"王牌综艺\"},{\"v\":\"5\",\"n\":\"大咖秀场\"},{\"v\":\"6\",\"n\":\"搞笑\"},{\"v\":\"7\",\"n\":\"情感\"},{\"v\":\"8\",\"n\":\"音乐\"},{\"v\":\"9\",\"n\":\"生活\"},{\"v\":\"179\",\"n\":\"亲子\"},{\"v\":\"170\",\"n\":\"旅游\"},{\"v\":\"171\",\"n\":\"时尚\"},{\"v\":\"173\",\"n\":\"真人秀\"},{\"v\":\"174\",\"n\":\"竞技\"},{\"v\":\"172\",\"n\":\"访谈\"},{\"v\":\"180\",\"n\":\"脱口秀\"}],\"key\":\"kind\"},{\"name\":\"地区\",\"value\":[{\"v\":\"a1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"内地\"},{\"v\":\"2\",\"n\":\"港台\"},{\"v\":\"3\",\"n\":\"其他\"}],\"key\":\"area\"},{\"name\":\"排序\",\"value\":[{\"v\":\"c1\",\"n\":\"最新\"},{\"v\":\"c2\",\"n\":\"最热\"},{\"v\":\"c4\",\"n\":\"知乎高分\"}],\"key\":\"sort\"}],\"2\":[{\"name\":\"类型\",\"value\":[{\"v\":\"a1\",\"n\":\"全部\"},{\"v\":\"14\",\"n\":\"甜蜜互宠\"},{\"v\":\"15\",\"n\":\"虐恋情深\"},{\"v\":\"16\",\"n\":\"青涩校园\"},{\"v\":\"17\",\"n\":\"仙侠玄幻\"},{\"v\":\"19\",\"n\":\"都市职场\"},{\"v\":\"148\",\"n\":\"古装\"},{\"v\":\"20\",\"n\":\"快意江湖\"},{\"v\":\"147\",\"n\":\"偶像\"},{\"v\":\"21\",\"n\":\"悬疑推理\"},{\"v\":\"22\",\"n\":\"家长里短\"},{\"v\":\"23\",\"n\":\"芒果出品\"},{\"v\":\"24\",\"n\":\"轻松搞笑\"},{\"v\":\"25\",\"n\":\"铁血战争\"},{\"v\":\"26\",\"n\":\"其他\"}],\"key\":\"kind\"},{\"name\":\"地区\",\"value\":[{\"v\":\"a1\",\"n\":\"全部\"},{\"v\":\"10\",\"n\":\"内地\"},{\"v\":\"11\",\"n\":\"日韩\"},{\"v\":\"12\",\"n\":\"港台\"}],\"key\":\"area\"},{\"name\":\"排序\",\"value\":[{\"v\":\"c2\",\"n\":\"最热\"},{\"v\":\"c1\",\"n\":\"最新\"},{\"v\":\"c4\",\"n\":\"知乎高分\"}],\"key\":\"sort\"},{\"name\":\"版本\",\"value\":[{\"v\":\"all\",\"n\":\"全部\"},{\"v\":\"2037\",\"n\":\"TV版\"},{\"v\":\"2038\",\"n\":\"特别版\"},{\"v\":\"2040\",\"n\":\"精华版\"},{\"v\":\"2036\",\"n\":\"未删减版\"}],\"key\":\"edition\"}],\"3\":[{\"name\":\"类型\",\"value\":[{\"v\":\"a1\",\"n\":\"全部\"},{\"v\":\"34\",\"n\":\"院线大片\"},{\"v\":\"175\",\"n\":\"爱情\"},{\"v\":\"176\",\"n\":\"喜剧\"},{\"v\":\"177\",\"n\":\"动作\"},{\"v\":\"178\",\"n\":\"科幻\"},{\"v\":\"39\",\"n\":\"青春\"},{\"v\":\"43\",\"n\":\"恐怖悬疑\"},{\"v\":\"44\",\"n\":\"战争\"},{\"v\":\"45\",\"n\":\"警匪\"},{\"v\":\"46\",\"n\":\"历史\"},{\"v\":\"47\",\"n\":\"歌舞\"},{\"v\":\"48\",\"n\":\"动画\"},{\"v\":\"50\",\"n\":\"其他\"}],\"key\":\"kind\"},{\"name\":\"资费\",\"value\":[{\"v\":\"a1\",\"n\":\"全部\"},{\"v\":\"b1\",\"n\":\"免费\"},{\"v\":\"b2\",\"n\":\"VIP\"},{\"v\":\"b3\",\"n\":\"VIP用券\"},{\"v\":\"b4\",\"n\":\"付费点播\"}],\"key\":\"chargeInfo\"},{\"name\":\"排序\",\"value\":[{\"v\":\"c2\",\"n\":\"最热\"},{\"v\":\"c1\",\"n\":\"最新\"},{\"v\":\"c4\",\"n\":\"知乎高分\"}],\"key\":\"sort\"}],\"106\":[{\"name\":\"类型\",\"value\":[{\"v\":\"a1\",\"n\":\"全部\"},{\"v\":\"106\",\"n\":\"时事\"},{\"v\":\"107\",\"n\":\"社会\"},{\"v\":\"108\",\"n\":\"文娱\"},{\"v\":\"109\",\"n\":\"军事\"}],\"key\":\"kind\"},{\"name\":\"排序\",\"value\":[{\"v\":\"c1\",\"n\":\"最新\"},{\"v\":\"c2\",\"n\":\"最热\"}],\"key\":\"sort\"}],\"91\":[{\"name\":\"类型\",\"value\":[{\"v\":\"a1\",\"n\":\"全部\"},{\"v\":\"119\",\"n\":\"吐槽\"},{\"v\":\"120\",\"n\":\"恶搞\"},{\"v\":\"121\",\"n\":\"爆笑\"},{\"v\":\"122\",\"n\":\"奇趣\"},{\"v\":\"123\",\"n\":\"饭制\"},{\"v\":\"124\",\"n\":\"其他\"}],\"key\":\"kind\"},{\"name\":\"排序\",\"value\":[{\"v\":\"c2\",\"n\":\"最热\"},{\"v\":\"c1\",\"n\":\"最新\"}],\"key\":\"sort\"}],\"50\":[{\"name\":\"类型\",\"value\":[{\"v\":\"a1\",\"n\":\"全部\"},{\"v\":\"60\",\"n\":\"恋爱少女\"},{\"v\":\"86\",\"n\":\"热血\"},{\"v\":\"62\",\"n\":\"搞笑\"},{\"v\":\"63\",\"n\":\"青春\"},{\"v\":\"64\",\"n\":\"魔幻仙侠\"},{\"v\":\"65\",\"n\":\"激燃运动\"},{\"v\":\"66\",\"n\":\"特摄\"},{\"v\":\"67\",\"n\":\"推理\"},{\"v\":\"68\",\"n\":\"亲子幼教\"},{\"v\":\"69\",\"n\":\"芒果出品\"},{\"v\":\"70\",\"n\":\"动漫音乐\"},{\"v\":\"71\",\"n\":\"经典\"},{\"v\":\"72\",\"n\":\"其他\"}],\"key\":\"kind\"},{\"name\":\"地区\",\"value\":[{\"v\":\"a1\",\"n\":\"全部\"},{\"v\":\"52\",\"n\":\"内地\"},{\"v\":\"53\",\"n\":\"欧美\"},{\"v\":\"54\",\"n\":\"日韩\"},{\"v\":\"55\",\"n\":\"其他\"}],\"key\":\"area\"},{\"name\":\"版本\",\"value\":[{\"v\":\"a1\",\"n\":\"全部\"},{\"v\":\"165\",\"n\":\"剧场版\"},{\"v\":\"57\",\"n\":\"TV版\"},{\"v\":\"166\",\"n\":\"OVA版\"},{\"v\":\"167\",\"n\":\"真人版\"}],\"key\":\"edition\"},{\"name\":\"排序\",\"value\":[{\"v\":\"c2\",\"n\":\"最热\"},{\"v\":\"c1\",\"n\":\"最新\"}],\"key\":\"sort\"}],\"51\":[{\"name\":\"类型\",\"value\":[{\"v\":\"a1\",\"n\":\"全部\"},{\"v\":\"97\",\"n\":\"美食\"},{\"v\":\"98\",\"n\":\"文化\"},{\"v\":\"99\",\"n\":\"社会\"},{\"v\":\"100\",\"n\":\"历史\"},{\"v\":\"101\",\"n\":\"军事\"},{\"v\":\"102\",\"n\":\"人物\"},{\"v\":\"103\",\"n\":\"探索\"},{\"v\":\"104\",\"n\":\"自然\"},{\"v\":\"105\",\"n\":\"其他\"}],\"key\":\"kind\"},{\"name\":\"排序\",\"value\":[{\"v\":\"c2\",\"n\":\"最热\"},{\"v\":\"c1\",\"n\":\"最新\"}],\"key\":\"sort\"}],\"20\":[{\"name\":\"类型\",\"value\":[{\"v\":\"a1\",\"n\":\"全部\"},{\"v\":\"150\",\"n\":\"MV\"},{\"v\":\"151\",\"n\":\"影视原声\"},{\"v\":\"152\",\"n\":\"音乐节目\"},{\"v\":\"153\",\"n\":\"演唱会\"},{\"v\":\"154\",\"n\":\"颁奖礼\"},{\"v\":\"155\",\"n\":\"音乐现场\"},{\"v\":\"156\",\"n\":\"其他\"}],\"key\":\"kind\"},{\"name\":\"风格\",\"value\":[{\"v\":\"a1\",\"n\":\"全部\"},{\"v\":\"157\",\"n\":\"流行\"},{\"v\":\"158\",\"n\":\"Hip-hop\"},{\"v\":\"159\",\"n\":\"R&B\"},{\"v\":\"160\",\"n\":\"摇滚\"},{\"v\":\"161\",\"n\":\"民谣\"},{\"v\":\"162\",\"n\":\"爵士\"},{\"v\":\"163\",\"n\":\"古典\"},{\"v\":\"164\",\"n\":\"其他\"}],\"key\":\"musicStyle\"},{\"name\":\"排序\",\"value\":[{\"v\":\"c1\",\"n\":\"最新\"},{\"v\":\"c2\",\"n\":\"最热\"}],\"key\":\"sort\"}]}"); + } catch (JSONException e) { + SpiderDebug.log(e); + } + } + + public String join(CharSequence charSequence,Iterable iterable) { + Iterator it = iterable.iterator(); + if (!it.hasNext()) { + return ""; + } + StringBuilder sb = new StringBuilder(); + sb.append(it.next()); + while (it.hasNext()) { + sb.append(charSequence); + sb.append(it.next()); + } + return sb.toString(); + } + + public String playerContent(String str, String str2, List list) { + try { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("parse", 1); + jSONObject.put("jx", "1"); + jSONObject.put("url", "https://www.mgtv.com" + str2); + return jSONObject.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + return jSONObject.toString(); + } + } catch (Exception e2) { + SpiderDebug.log(e2); + return ""; + } + } + + public String searchContent(String str, boolean quick) { + try { + String url = "https://mobileso.bz.mgtv.com/pc/search/v1?allowedRC=1&q=" + str + "&pn=1&pc=10&uid=&corr=1&_support=10000000"; + String json = OkHttpUtil.string(url, getHeaders(url)); + JSONObject data = new JSONObject(json).getJSONObject("data"); + JSONArray contents = data.getJSONArray("contents"); + JSONArray items = new JSONArray(); + for (int i = 0; i < contents.length(); i++) { + JSONObject jSONObject = contents.getJSONObject(i).getJSONObject("data"); + if (!jSONObject.has("sourceList")) { + continue; + } + JSONArray sourceList = jSONObject.getJSONArray("sourceList"); + String vodUrl = sourceList.getJSONObject(0).getString("url"); + String vodId = sourceList.getJSONObject(0).getString("vid"); + String pic = jSONObject.optString("pic"); + JSONObject item = new JSONObject(); + item.put("vod_id", vodId); + item.put("vod_name", jSONObject.optString("title")); + item.put("vod_pic", pic); + item.put("vod_remarks", jSONObject.optString("playTime")); + items.put(item); + } + JSONObject result = new JSONObject(); + result.put("list", items); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + return ""; + } + } +} diff --git a/app/src/main/java/com/github/catvod/spider/QQ.java b/app/src/main/java/com/github/catvod/spider/QQ.java new file mode 100644 index 00000000..26c9a90d --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/QQ.java @@ -0,0 +1,333 @@ +package com.github.catvod.spider; + +import android.content.Context; +import android.net.Uri; + +import com.github.catvod.crawler.Spider; +import com.github.catvod.crawler.SpiderDebug; +import com.github.catvod.utils.okhttp.OkHttpUtil; + +import org.checkerframework.checker.nullness.qual.NonNull; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; + +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + + +public class QQ extends Spider { + protected JSONObject dn; + protected JSONObject q = new JSONObject(); + + private String q(String str, String str2) { + String str3; + try { + if (str2.startsWith("//")) { + Uri parse = Uri.parse(str); + str3 = parse.getScheme() + ":" + str2; + } else if (str2.contains("://")) { + return str2; + } else { + Uri parse2 = Uri.parse(str); + str3 = parse2.getScheme() + "://" + parse2.getHost() + str2; + } + return str3; + } catch (Exception e) { + SpiderDebug.log(e); + return str2; + } + } + + public String categoryContent(String str, String str2, boolean z, HashMap hashMap) { + String str3; + try { + String str4 = "https://v.qq.com/x/bu/pagesheet/list?_all=1&append=1&channel=" + str + "&listpage=1&offset=" + ((Integer.parseInt(str2) - 1) * 21) + "&pagesize=21&sort=18"; + if (hashMap != null) { + for (String str5 : hashMap.keySet()) { + String trim = hashMap.get(str5).trim(); + if (trim.length() != 0) { + str4 = str4 + "&" + str5 + "=" + URLEncoder.encode(trim); + } + } + } + String content = OkHttpUtil.string(str4, getHeaders(str4)); + JSONObject jSONObject = new JSONObject(); + try { + Elements listItems = Jsoup.parse(content).select(".list_item"); + JSONArray jSONArray = new JSONArray(); + for (int i = 0; i < listItems.size(); i++) { + Element item = listItems.get(i); + String Pd = item.select("a").attr("title"); + String q = q(str4, item.select("img").attr("src")); + if (item.select(".figure_caption") == null) { + str3 = ""; + } else { + str3 = item.select(".figure_caption").text(); + } + String Pd2 = item.select("a").attr("data-float"); + JSONObject jSONObject2 = new JSONObject(); + jSONObject2.put("vod_id", Pd2); + jSONObject2.put("vod_name", Pd); + jSONObject2.put("vod_pic", q); + jSONObject2.put("vod_remarks", str3); + jSONArray.put(jSONObject2); + } + jSONObject.put("page", str2); + jSONObject.put("pagecount", Integer.MAX_VALUE); + jSONObject.put("limit", 90); + jSONObject.put("total", Integer.MAX_VALUE); + jSONObject.put("list", jSONArray); + } catch (Exception e) { + SpiderDebug.log(e); + } + return jSONObject.toString(4); + } catch (Exception e2) { + SpiderDebug.log(e2); + return ""; + } + } + + public String detailContent(List list) { + JSONArray jSONArray; + CharSequence charSequence; + JSONArray jSONArray2; + CharSequence charSequence2; + CharSequence charSequence3 = ","; + try { + String str = "https://node.video.qq.com/x/api/float_vinfo2?cid=" + list.get(0); + JSONObject jSONObject = new JSONObject(OkHttpUtil.string(str, getHeaders(str))); + JSONObject optJSONObject = jSONObject.optJSONObject("c"); + if (optJSONObject == null) { + return ""; + } + JSONObject jSONObject2 = new JSONObject(); + jSONObject2.put("vod_id", list.get(0)); + jSONObject2.put("vod_name", optJSONObject.optString("title")); + jSONObject2.put("vod_pic", q(str, optJSONObject.optString("pic"))); + jSONObject2.put("type_name", jSONObject.optJSONArray("typ").opt(0)); + jSONObject2.put("vod_year", optJSONObject.optString("year")); + jSONObject.optJSONObject("people"); + JSONArray optJSONArray = jSONObject.optJSONArray("nam").optJSONArray(0); + ArrayList arrayList = new ArrayList(); + if (optJSONArray != null) { + for (int i = 0; i < optJSONArray.length(); i++) { + arrayList.add(optJSONArray.opt(i)); + } + } + jSONObject2.put("vod_actor", join(charSequence3, arrayList)); + jSONObject2.put("vod_content", optJSONObject.optString("description")); + JSONArray jSONArray3 = optJSONObject.getJSONArray("video_ids"); + ArrayList arrayList2 = new ArrayList(); + ArrayList arrayList3 = new ArrayList(); + int i2 = 1; + while (i2 <= jSONArray3.length()) { + arrayList2.add(jSONArray3.optString(i2 - 1)); + if (!(i2 % 30 == 0 || i2 == jSONArray3.length())) { + charSequence = charSequence3; + jSONArray = jSONArray3; + i2++; + charSequence3 = charSequence; + jSONArray3 = jSONArray; + } + String str2 = "https://union.video.qq.com/fcgi-bin/data?otype=json&tid=682&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=" + join(charSequence3, arrayList2); + String h = OkHttpUtil.string(str2, getHeaders(str2)); + JSONArray jSONArray4 = new JSONObject(h.substring(13, h.length() - 1)).getJSONArray("results"); + int i3 = 0; + while (i3 < jSONArray4.length()) { + JSONObject jSONObject3 = jSONArray4.getJSONObject(i3).getJSONObject("fields"); + if (!jSONObject3.optString("title").contains("预告")) { + StringBuilder sb = new StringBuilder(); + String optString = jSONObject3.optString("title"); + charSequence2 = charSequence3; + StringBuilder sb2 = new StringBuilder(); + jSONArray2 = jSONArray3; + sb2.append(optJSONObject.optString("title")); + sb2.append("_"); + sb.append(optString.replace(sb2.toString(), "")); + sb.append("$https://v.qq.com/x/cover/"); + sb.append(list.get(0)); + sb.append("/"); + sb.append(jSONObject3.optString("vid")); + sb.append(".html"); + arrayList3.add(sb.toString()); + } else { + charSequence2 = charSequence3; + jSONArray2 = jSONArray3; + } + i3++; + charSequence3 = charSequence2; + jSONArray3 = jSONArray2; + } + charSequence = charSequence3; + jSONArray = jSONArray3; + arrayList2.clear(); + i2++; + charSequence3 = charSequence; + jSONArray3 = jSONArray; + } + jSONObject2.put("vod_play_from", "qq"); + jSONObject2.put("vod_play_url", join("#", arrayList3)); + JSONObject jSONObject4 = new JSONObject(); + JSONArray jSONArray5 = new JSONArray(); + jSONArray5.put(jSONObject2); + jSONObject4.put("list", jSONArray5); + return jSONObject4.toString(4); + } catch (Exception e) { + SpiderDebug.log(e); + return ""; + } + } + + protected HashMap getHeaders(String str) { + HashMap hashMap = new HashMap<>(); + hashMap.put("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"); + return hashMap; + } + + public String homeContent(boolean z) { + try { + Document doc = Jsoup.parse(OkHttpUtil.string("https://v.qq.com/channel/tv?listpage=1&channel=tv&sort=18&_all=1", getHeaders("https://v.qq.com/channel/tv?listpage=1&channel=tv&sort=18&_all=1"))); + JSONArray jSONArray = new JSONArray(); + Iterator it = doc.select(".nav_cell").iterator(); + while (it.hasNext()) { + Element next = it.next(); + JSONObject jSONObject = new JSONObject(); + String Pd = next.select("a").attr("href"); + if (!Pd.contains("/art") && !Pd.contains("feeds_hotspot") && !Pd.contains("wwe") && !Pd.contains("choice") && !Pd.contains("sports_new") && !Pd.contains("games") && !Pd.contains("lols11") && !Pd.contains("ent") && !Pd.contains("news") && !Pd.contains("fashion") && !Pd.contains("tech") && !Pd.contains("auto") && !Pd.contains("house") && !Pd.contains("finance") && !Pd.contains("astro") && !Pd.contains("nba") && !Pd.contains("fun") && !Pd.contains("baby") && !Pd.contains("music") && !Pd.contains("life") && !Pd.contains("travel") && Pd.contains("/channel/")) { + jSONObject.put("type_name", next.select("a").text()); + jSONObject.put("type_id", Pd.split("/channel/")[1]); + jSONArray.put(jSONObject); + } + } + String h = OkHttpUtil.string("https://v.qq.com/x/bu/pagesheet/list?_all=1&append=1&channel=choice", getHeaders("https://v.qq.com/x/bu/pagesheet/list?_all=1&append=1&channel=choice")); + JSONObject jSONObject2 = new JSONObject(); + if (z) { + jSONObject2.put("filters", this.dn); + } + jSONObject2.put("class", jSONArray); + try { + Elements listItem = Jsoup.parse(h).select(".list_item"); + JSONArray jSONArray2 = new JSONArray(); + for (int i = 0; i < listItem.size(); i++) { + Element item = listItem.get(i); + String title = item.select("a").attr("title"); + String pic = q("https://v.qq.com/x/bu/pagesheet/list?_all=1&append=1&channel=choice", item.select("img").attr("src")); + String remark = item.select(".figure_caption").text(); + String id = item.select("a").attr("data-float"); + JSONObject jSONObject3 = new JSONObject(); + jSONObject3.put("vod_id", id); + jSONObject3.put("vod_name", title); + jSONObject3.put("vod_pic", pic); + jSONObject3.put("vod_remarks", remark); + jSONArray2.put(jSONObject3); + } + jSONObject2.put("list", jSONArray2); + } catch (Exception e) { + SpiderDebug.log(e); + } + return jSONObject2.toString(4); + } catch (Exception e2) { + SpiderDebug.log(e2); + return ""; + } + } + + public String homeVideoContent() { + try { + JSONArray jSONArray = new JSONObject(OkHttpUtil.string("https://v.qq.com/api.php/app/index_video?token=", getHeaders("https://v.qq.com/api.php/app/index_video?token="))).getJSONArray("list"); + JSONArray jSONArray2 = new JSONArray(); + for (int i = 0; i < jSONArray.length(); i++) { + JSONArray jSONArray3 = jSONArray.getJSONObject(i).getJSONArray("vlist"); + int i2 = 0; + while (i2 < jSONArray3.length() && i2 < 6) { + JSONObject jSONObject = jSONArray3.getJSONObject(i2); + JSONObject jSONObject2 = new JSONObject(); + jSONObject2.put("vod_id", jSONObject.optString("vod_id")); + jSONObject2.put("vod_name", jSONObject.optString("vod_name")); + jSONObject2.put("vod_pic", jSONObject.optString("vod_pic")); + jSONObject2.put("vod_remarks", jSONObject.optString("vod_remarks")); + jSONArray2.put(jSONObject2); + i2++; + } + } + JSONObject jSONObject3 = new JSONObject(); + jSONObject3.put("list", jSONArray2); + return jSONObject3.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + return ""; + } + } + + public void init(Context context) { + QQ.super.init(context); + try { + this.dn = new JSONObject("{\"tv\":[{\"name\":\"排序\",\"value\":[{\"v\":\"19\",\"n\":\"最新\"},{\"v\":\"18\",\"n\":\"最热\"},{\"v\":\"16\",\"n\":\"好评\"},{\"v\":\"21\",\"n\":\"口碑好剧\"},{\"v\":\"54\",\"n\":\"高分好评\"},{\"v\":\"22\",\"n\":\"知乎高分\"}],\"key\":\"sort\"},{\"name\":\"类型\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"偶像爱情\"},{\"v\":\"2\",\"n\":\"古装历史\"},{\"v\":\"3\",\"n\":\"玄幻史诗\"},{\"v\":\"4\",\"n\":\"都市生活\"},{\"v\":\"14\",\"n\":\"当代主旋律\"},{\"v\":\"5\",\"n\":\"罪案谍战\"},{\"v\":\"6\",\"n\":\"历险科幻\"},{\"v\":\"7\",\"n\":\"军旅抗战\"},{\"v\":\"8\",\"n\":\"喜剧\"},{\"v\":\"9\",\"n\":\"武侠江湖\"},{\"v\":\"10\",\"n\":\"青春校园\"},{\"v\":\"11\",\"n\":\"时代传奇\"},{\"v\":\"12\",\"n\":\"体育电竞\"},{\"v\":\"13\",\"n\":\"真人动漫\"},{\"v\":\"15\",\"n\":\"短剧\"},{\"v\":\"44\",\"n\":\"独播\"}],\"key\":\"feature\"},{\"name\":\"地区\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"814\",\"n\":\"内地\"},{\"v\":\"815\",\"n\":\"美国\"},{\"v\":\"816\",\"n\":\"英国\"},{\"v\":\"818\",\"n\":\"韩国\"},{\"v\":\"9\",\"n\":\"泰国\"},{\"v\":\"10\",\"n\":\"日本\"},{\"v\":\"14\",\"n\":\"中国香港\"},{\"v\":\"817\",\"n\":\"中国台湾\"},{\"v\":\"819\",\"n\":\"其他\"}],\"key\":\"iarea\"},{\"name\":\"年份\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"2022\",\"n\":\"2022\"},{\"v\":\"2021\",\"n\":\"2021\"},{\"v\":\"2020\",\"n\":\"2020\"},{\"v\":\"4061\",\"n\":\"2019\"},{\"v\":\"4060\",\"n\":\"2018\"},{\"v\":\"2017\",\"n\":\"2017\"},{\"v\":\"859\",\"n\":\"2016\"},{\"v\":\"860\",\"n\":\"2015\"},{\"v\":\"861\",\"n\":\"2014\"},{\"v\":\"862\",\"n\":\"2013\"},{\"v\":\"863\",\"n\":\"2012\"},{\"v\":\"864\",\"n\":\"2011\"},{\"v\":\"865\",\"n\":\"2010\"},{\"v\":\"866\",\"n\":\"其他\"}],\"key\":\"year\"},{\"name\":\"资费\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"867\",\"n\":\"免费\"},{\"v\":\"6\",\"n\":\"会员\"}],\"key\":\"pay\"}],\"education\":[{\"name\":\"排序\",\"value\":[{\"v\":\"19\",\"n\":\"按更新\"},{\"v\":\"40\",\"n\":\"最热\"}],\"key\":\"sort\"},{\"name\":\"学段\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"2\",\"n\":\"小学\"},{\"v\":\"3\",\"n\":\"初中\"},{\"v\":\"4\",\"n\":\"高中\"},{\"v\":\"5\",\"n\":\"大学\"},{\"v\":\"6\",\"n\":\"研究生\"},{\"v\":\"7\",\"n\":\"成人\"}],\"key\":\"section\"},{\"name\":\"学级\",\"value\":[{\"v\":\"1\",\"n\":\"全部\"},{\"v\":\"5\",\"n\":\"一年级\"},{\"v\":\"6\",\"n\":\"二年级\"},{\"v\":\"7\",\"n\":\"三年级\"},{\"v\":\"8\",\"n\":\"四年级\"},{\"v\":\"9\",\"n\":\"五年级\"},{\"v\":\"10\",\"n\":\"六年级\"},{\"v\":\"11\",\"n\":\"初一\"},{\"v\":\"12\",\"n\":\"初二\"},{\"v\":\"13\",\"n\":\"初三\"},{\"v\":\"14\",\"n\":\"高一\"},{\"v\":\"15\",\"n\":\"高二\"},{\"v\":\"16\",\"n\":\"高三\"},{\"v\":\"20\",\"n\":\"大四\"}],\"key\":\"grade\"},{\"name\":\"学科\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"41\",\"n\":\"语文\"},{\"v\":\"42\",\"n\":\"数学\"},{\"v\":\"43\",\"n\":\"英语\"},{\"v\":\"44\",\"n\":\"物理\"},{\"v\":\"45\",\"n\":\"化学\"},{\"v\":\"46\",\"n\":\"生物\"},{\"v\":\"47\",\"n\":\"政治\"},{\"v\":\"50\",\"n\":\"其它\"}],\"key\":\"subject\"}],\"movie\":[{\"name\":\"排序\",\"value\":[{\"v\":\"18\",\"n\":\"最近热播\"},{\"v\":\"19\",\"n\":\"最新上架\"},{\"v\":\"21\",\"n\":\"高分好评\"},{\"v\":\"22\",\"n\":\"知乎高分\"}],\"key\":\"sort\"},{\"name\":\"类型\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"100018\",\"n\":\"剧情\"},{\"v\":\"100004\",\"n\":\"喜剧\"},{\"v\":\"100061\",\"n\":\"动作\"},{\"v\":\"100005\",\"n\":\"爱情\"},{\"v\":\"100010\",\"n\":\"惊悚\"},{\"v\":\"4\",\"n\":\"犯罪\"},{\"v\":\"100009\",\"n\":\"悬疑\"},{\"v\":\"100006\",\"n\":\"战争\"},{\"v\":\"100012\",\"n\":\"科幻\"},{\"v\":\"100015\",\"n\":\"动画\"},{\"v\":\"100007\",\"n\":\"恐怖\"},{\"v\":\"100017\",\"n\":\"家庭\"},{\"v\":\"100022\",\"n\":\"传记\"},{\"v\":\"100003\",\"n\":\"冒险\"},{\"v\":\"100016\",\"n\":\"奇幻\"},{\"v\":\"100011\",\"n\":\"武侠\"},{\"v\":\"100021\",\"n\":\"历史\"},{\"v\":\"2\",\"n\":\"运动\"},{\"v\":\"100014\",\"n\":\"歌舞\"},{\"v\":\"100013\",\"n\":\"音乐\"},{\"v\":\"100020\",\"n\":\"纪录\"},{\"v\":\"100019\",\"n\":\"伦理\"},{\"v\":\"3\",\"n\":\"西部\"}],\"key\":\"itype\"},{\"name\":\"地区\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"100024\",\"n\":\"内地\"},{\"v\":\"100025\",\"n\":\"中国香港\"},{\"v\":\"100029\",\"n\":\"美国\"},{\"v\":\"100032\",\"n\":\"欧洲\"},{\"v\":\"100026\",\"n\":\"中国台湾\"},{\"v\":\"100027\",\"n\":\"日本\"},{\"v\":\"100028\",\"n\":\"韩国\"},{\"v\":\"100030\",\"n\":\"印度\"},{\"v\":\"100031\",\"n\":\"泰国\"},{\"v\":\"15\",\"n\":\"英国\"},{\"v\":\"16\",\"n\":\"法国\"},{\"v\":\"17\",\"n\":\"德国\"},{\"v\":\"18\",\"n\":\"加拿大\"},{\"v\":\"19\",\"n\":\"西班牙\"},{\"v\":\"20\",\"n\":\"意大利\"},{\"v\":\"21\",\"n\":\"澳大利亚\"},{\"v\":\"22\",\"n\":\"北欧\"},{\"v\":\"23\",\"n\":\"拉丁美洲\"},{\"v\":\"100033\",\"n\":\"其它\"}],\"key\":\"iarea\"},{\"name\":\"特色\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"院线\"},{\"v\":\"2\",\"n\":\"自制电影\"},{\"v\":\"5\",\"n\":\"独播\"},{\"v\":\"8\",\"n\":\"原声\"},{\"v\":\"9\",\"n\":\"粤语\"},{\"v\":\"3\",\"n\":\"蓝光\"},{\"v\":\"6\",\"n\":\"奥斯卡\"}],\"key\":\"characteristic\"},{\"name\":\"年份\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"2022\",\"n\":\"2022\"},{\"v\":\"2022\",\"n\":\"2022\"},{\"v\":\"2021\",\"n\":\"2021\"},{\"v\":\"2020\",\"n\":\"2020\"},{\"v\":\"20\",\"n\":\"2019\"},{\"v\":\"2018\",\"n\":\"2018\"},{\"v\":\"2017\",\"n\":\"2017\"},{\"v\":\"2016\",\"n\":\"2016\"},{\"v\":\"100063\",\"n\":\"2015\"},{\"v\":\"100034\",\"n\":\"2014\"},{\"v\":\"100035\",\"n\":\"2013-2011\"},{\"v\":\"100036\",\"n\":\"2010-2006\"},{\"v\":\"100037\",\"n\":\"2005-2000\"},{\"v\":\"100038\",\"n\":\"90年代\"},{\"v\":\"100039\",\"n\":\"80年代\"},{\"v\":\"100040\",\"n\":\"其它\"}],\"key\":\"year\"},{\"name\":\"资费\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"免费\"},{\"v\":\"2\",\"n\":\"包月\"},{\"v\":\"3\",\"n\":\"用券\"},{\"v\":\"4\",\"n\":\"付费\"}],\"key\":\"charge\"}],\"variety\":[{\"name\":\"排序\",\"value\":[{\"v\":\"4\",\"n\":\"最热\"},{\"v\":\"5\",\"n\":\"最新\"}],\"key\":\"sort\"},{\"name\":\"独家\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"腾讯自制\"},{\"v\":\"2\",\"n\":\"独播\"}],\"key\":\"exclusive\"},{\"name\":\"地区\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"国内\"},{\"v\":\"2\",\"n\":\"海外\"}],\"key\":\"iarea\"},{\"name\":\"类型\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"10\",\"n\":\"游戏\"},{\"v\":\"11\",\"n\":\"音乐\"},{\"v\":\"24\",\"n\":\"养成\"},{\"v\":\"12\",\"n\":\"情感\"},{\"v\":\"14\",\"n\":\"喜剧\"},{\"v\":\"2\",\"n\":\"脱口秀\"},{\"v\":\"16\",\"n\":\"表演\"},{\"v\":\"25\",\"n\":\"体验\"},{\"v\":\"17\",\"n\":\"亲子\"},{\"v\":\"26\",\"n\":\"文化\"},{\"v\":\"19\",\"n\":\"美食\"},{\"v\":\"20\",\"n\":\"职场\"},{\"v\":\"21\",\"n\":\"体育\"},{\"v\":\"15\",\"n\":\"潮流文化\"},{\"v\":\"3\",\"n\":\"访谈\"},{\"v\":\"22\",\"n\":\"生活服务\"},{\"v\":\"23\",\"n\":\"萌宠\"},{\"v\":\"7\",\"n\":\"资讯\"},{\"v\":\"6\",\"n\":\"晚会\"}],\"key\":\"itype\"},{\"name\":\"年份\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"2022\",\"n\":\"2022\"},{\"v\":\"2021\",\"n\":\"2021\"},{\"v\":\"50\",\"n\":\"2020\"},{\"v\":\"7\",\"n\":\"2019\"},{\"v\":\"1\",\"n\":\"2018\"},{\"v\":\"2\",\"n\":\"2017\"},{\"v\":\"3\",\"n\":\"2016\"},{\"v\":\"4\",\"n\":\"2015\"},{\"v\":\"5\",\"n\":\"2014\"},{\"v\":\"6\",\"n\":\"2013\"},{\"v\":\"2012\",\"n\":\"2012\"},{\"v\":\"2011\",\"n\":\"2011\"},{\"v\":\"2010\",\"n\":\"2010\"},{\"v\":\"99\",\"n\":\"更早\"}],\"key\":\"iyear\"},{\"name\":\"付费\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"会员\"}],\"key\":\"ipay\"}],\"cartoon\":[{\"name\":\"排序\",\"value\":[{\"v\":\"40\",\"n\":\"最热\"},{\"v\":\"23\",\"n\":\"最新\"},{\"v\":\"20\",\"n\":\"好评\"},{\"v\":\"22\",\"n\":\"知乎高分\"}],\"key\":\"sort\"},{\"name\":\"类型\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"2\",\"n\":\"冒险\"},{\"v\":\"5\",\"n\":\"战斗\"},{\"v\":\"1\",\"n\":\"搞笑\"},{\"v\":\"3\",\"n\":\"经典\"},{\"v\":\"4\",\"n\":\"科幻\"},{\"v\":\"9\",\"n\":\"玄幻\"},{\"v\":\"6\",\"n\":\"魔幻\"},{\"v\":\"13\",\"n\":\"武侠\"},{\"v\":\"7\",\"n\":\"恋爱\"},{\"v\":\"14\",\"n\":\"推理\"},{\"v\":\"11\",\"n\":\"腾讯出品\"},{\"v\":\"15\",\"n\":\"日常\"},{\"v\":\"16\",\"n\":\"校园\"},{\"v\":\"17\",\"n\":\"悬疑\"},{\"v\":\"18\",\"n\":\"真人\"},{\"v\":\"19\",\"n\":\"历史\"},{\"v\":\"20\",\"n\":\"竞技\"},{\"v\":\"12\",\"n\":\"其他\"}],\"key\":\"itype\"},{\"name\":\"地区\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"内地\"},{\"v\":\"2\",\"n\":\"日本\"},{\"v\":\"3\",\"n\":\"欧美\"},{\"v\":\"4\",\"n\":\"其他\"}],\"key\":\"iarea\"},{\"name\":\"时间\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"2022\",\"n\":\"2022\"},{\"v\":\"2021\",\"n\":\"2021\"},{\"v\":\"50\",\"n\":\"2020\"},{\"v\":\"11\",\"n\":\"2019\"},{\"v\":\"2018\",\"n\":\"2018\"},{\"v\":\"2017\",\"n\":\"2017\"},{\"v\":\"1\",\"n\":\"2016\"},{\"v\":\"2\",\"n\":\"2015\"},{\"v\":\"3\",\"n\":\"2014\"},{\"v\":\"4\",\"n\":\"2013\"},{\"v\":\"5\",\"n\":\"2012\"},{\"v\":\"6\",\"n\":\"2011\"},{\"v\":\"7\",\"n\":\"00年代\"},{\"v\":\"8\",\"n\":\"90年代\"},{\"v\":\"9\",\"n\":\"80年代\"},{\"v\":\"10\",\"n\":\"更早\"}],\"key\":\"iyear\"},{\"name\":\"资费\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"免费\"},{\"v\":\"2\",\"n\":\"会员\"}],\"key\":\"ipay\"},{\"name\":\"状态\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"46\",\"n\":\"预告片\"},{\"v\":\"44\",\"n\":\"连载\"},{\"v\":\"45\",\"n\":\"完结\"}],\"key\":\"anime_status\"},{\"name\":\"分类\",\"value\":[{\"v\":\"1\",\"n\":\"全部\"},{\"v\":\"2\",\"n\":\"3D动画\"},{\"v\":\"3\",\"n\":\"2D动画\"},{\"v\":\"4\",\"n\":\"特摄\"},{\"v\":\"5\",\"n\":\"其他\"}],\"key\":\"item\"}],\"doco\":[{\"name\":\"排序\",\"value\":[{\"v\":\"19\",\"n\":\"最新\"},{\"v\":\"18\",\"n\":\"最热\"},{\"v\":\"20\",\"n\":\"好评\"},{\"v\":\"22\",\"n\":\"知乎高分\"}],\"key\":\"sort\"},{\"name\":\"出品机构\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"BBC\"},{\"v\":\"4\",\"n\":\"国家地理\"},{\"v\":\"3175\",\"n\":\"HBO\"},{\"v\":\"2\",\"n\":\"NHK\"},{\"v\":\"7\",\"n\":\"历史频道\"},{\"v\":\"3530\",\"n\":\"ITV\"},{\"v\":\"3174\",\"n\":\"探索频道\"},{\"v\":\"3176\",\"n\":\"ZDF\"},{\"v\":\"3172\",\"n\":\"ARTE\"},{\"v\":\"15\",\"n\":\"腾讯自制\"},{\"v\":\"6\",\"n\":\"合作机构\"},{\"v\":\"5\",\"n\":\"其他\"}],\"key\":\"itrailer\"},{\"name\":\"类型\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"4\",\"n\":\"自然\"},{\"v\":\"9\",\"n\":\"美食\"},{\"v\":\"3\",\"n\":\"社会\"},{\"v\":\"5\",\"n\":\"人文\"},{\"v\":\"1\",\"n\":\"历史\"},{\"v\":\"2\",\"n\":\"军事\"},{\"v\":\"7\",\"n\":\"科技\"},{\"v\":\"13\",\"n\":\"财经\"},{\"v\":\"15\",\"n\":\"探险\"},{\"v\":\"6\",\"n\":\"罪案\"},{\"v\":\"11\",\"n\":\"竞技\"},{\"v\":\"10\",\"n\":\"旅游\"}],\"key\":\"itype\"},{\"name\":\"资费\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"免费\"},{\"v\":\"2\",\"n\":\"会员\"}],\"key\":\"pay\"}],\"child\":[{\"name\":\"排序\",\"value\":[{\"v\":\"19\",\"n\":\"最新\"},{\"v\":\"18\",\"n\":\"最热\"},{\"v\":\"20\",\"n\":\"好评\"}],\"key\":\"sort\"},{\"name\":\"地区\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"欧美\"},{\"v\":\"2\",\"n\":\"日韩\"},{\"v\":\"3\",\"n\":\"国内\"}],\"key\":\"iarea\"},{\"name\":\"年龄\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"0-3岁\"},{\"v\":\"2\",\"n\":\"4-6岁\"},{\"v\":\"3\",\"n\":\"7-9岁\"},{\"v\":\"4\",\"n\":\"10岁以上\"}],\"key\":\"iyear\"},{\"name\":\"性别\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"男孩\"},{\"v\":\"2\",\"n\":\"女孩\"}],\"key\":\"gender\"},{\"name\":\"类型\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"儿歌\"},{\"v\":\"2\",\"n\":\"益智\"},{\"v\":\"3\",\"n\":\"手工·绘画\"},{\"v\":\"4\",\"n\":\"玩具\"},{\"v\":\"5\",\"n\":\"英语\"},{\"v\":\"7\",\"n\":\"早教\"},{\"v\":\"6\",\"n\":\"数学\"},{\"v\":\"8\",\"n\":\"国学\"},{\"v\":\"9\",\"n\":\"合家欢\"},{\"v\":\"10\",\"n\":\"冒险\"},{\"v\":\"11\",\"n\":\"交通工具\"},{\"v\":\"12\",\"n\":\"魔幻·科幻\"},{\"v\":\"13\",\"n\":\"动物\"},{\"v\":\"14\",\"n\":\"真人特摄\"},{\"v\":\"15\",\"n\":\"探索\"},{\"v\":\"16\",\"n\":\"其他\"}],\"key\":\"itype\"},{\"name\":\"资费\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"1\",\"n\":\"免费\"},{\"v\":\"2\",\"n\":\"会员\"}],\"key\":\"ipay\"}],\"knowledge\":[{\"name\":\"排序\",\"value\":[{\"v\":\"41\",\"n\":\"最热\"},{\"v\":\"10\",\"n\":\"最新\"}],\"key\":\"sort\"},{\"name\":\"分类\",\"value\":[{\"v\":\"-1\",\"n\":\"全部\"},{\"v\":\"2\",\"n\":\"文化历史\"},{\"v\":\"3\",\"n\":\"亲子育儿\"},{\"v\":\"4\",\"n\":\"职场\"},{\"v\":\"5\",\"n\":\"商业理财\"},{\"v\":\"7\",\"n\":\"生活\"},{\"v\":\"9\",\"n\":\"情感心理\"},{\"v\":\"8\",\"n\":\"运动健身\"},{\"v\":\"6\",\"n\":\"艺术兴趣\"},{\"v\":\"12\",\"n\":\"游戏\"},{\"v\":\"14\",\"n\":\"科学科普\"},{\"v\":\"15\",\"n\":\"健康\"},{\"v\":\"16\",\"n\":\"IT/互联网\"}],\"key\":\"pay_level_one\"}]}"); + } catch (JSONException e) { + SpiderDebug.log(e); + } + } + + public String join(@NonNull CharSequence charSequence, @NonNull Iterable iterable) { + Iterator it = iterable.iterator(); + if (!it.hasNext()) { + return ""; + } + StringBuilder sb = new StringBuilder(); + sb.append(it.next()); + while (it.hasNext()) { + sb.append(charSequence); + sb.append(it.next()); + } + return sb.toString(); + } + + public String playerContent(String str, String str2, List list) { + try { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("parse", 1); + jSONObject.put("jx", "1"); + jSONObject.put("url", str2); + return jSONObject.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + return jSONObject.toString(); + } + } catch (Exception e2) { + SpiderDebug.log(e2); + return ""; + } + } + + public String searchContent(String str, boolean quick) { + try { + String str2 = "http://node.video.qq.com/x/api/msearch?keyWord=" + str; + JSONArray jSONArray = new JSONObject(OkHttpUtil.string(str2, getHeaders(str2))).getJSONArray("uiData"); + JSONArray jSONArray2 = new JSONArray(); + for (int i = 0; i < jSONArray.length(); i++) { + JSONObject jSONObject = jSONArray.getJSONObject(i).getJSONArray("data").getJSONObject(0); + JSONObject jSONObject2 = new JSONObject(); + jSONObject2.put("vod_id", jSONObject.optString("id")); + jSONObject2.put("vod_name", jSONObject.optString("title")); + jSONObject2.put("vod_pic", jSONObject.optString("posterPic")); + jSONObject2.put("vod_remarks", jSONObject.optString("publishDate")); + jSONArray2.put(jSONObject2); + } + JSONObject jSONObject3 = new JSONObject(); + jSONObject3.put("list", jSONArray2); + return jSONObject3.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + return ""; + } + } +} diff --git a/app/src/main/java/com/github/catvod/spider/XBiu.java b/app/src/main/java/com/github/catvod/spider/XBiu.java new file mode 100644 index 00000000..79f864eb --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/XBiu.java @@ -0,0 +1,1935 @@ +package com.github.catvod.spider; + +import android.content.Context; +import android.text.TextUtils; +import android.util.Base64; +import android.util.Pair; + +import com.github.catvod.crawler.Spider; +import com.github.catvod.crawler.SpiderDebug; +import com.github.catvod.utils.Misc; +import com.github.catvod.utils.okhttp.OKCallBack; +import com.github.catvod.utils.okhttp.OkHttpUtil; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.net.URL; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import okhttp3.Call; + +public class XBiu extends Spider { + + protected String ext = null; + public JSONObject rule = null; + // 默认的视频类型 + private ArrayList videoFormatList = new ArrayList<>(Arrays.asList(".m3u8", ".mp4", ".mpeg", ".flv", ".mkv")); + + + protected final int base64Flag = Base64.DEFAULT | Base64.URL_SAFE | Base64.NO_WRAP; + // 一定是正确的分类名称,用来帮助定位分类列表,猜cateManual + protected final ArrayList cateManuals = new ArrayList<>(Arrays.asList("电影", "剧集", "电视剧", "连续剧", "综艺", "动漫")); + // 无效的分类名,彡来过滤cateManual + protected final ArrayList invalidCateNames = new ArrayList<>(Arrays.asList("更多","下载", "首页", "资讯", "留言", "导航", "专题", "短视频", "热榜", "排行", "追剧","更新","APP", "直播", "label", "Netflix")); + // 详情页 影片信息相关字段,猜详情页信息时用 + protected final ArrayList detailItemNames = new ArrayList<>(Arrays.asList("导演", "主演", "演员", "地区", "类型", "年份", "年代")); + protected final ArrayList detailItemKeys = new ArrayList<>(Arrays.asList("vod_director", "vod_actor", "vod_actor", "vod_area", "type_name", "vod_year", "vod_year")); + protected String splitFlag = ""; // 分段标志,猜cateManual时用 + + // html标签查找时用到的辅助类 + protected class HtmlMatchInfo { + public String group0; // 正则表达式匹配到的字符串 + /** + * 一般用来放href中的内容 + */ + public String group1; // + public String group2; // + public String diff; // 两个匹配结果比较group1得到的不同部分 + public int startPos; // 正则匹配到的起始位置 + public int endPos; // 正则匹配到的结束位置 + public ArrayList uploads; // 祖先结节的索引 + public int matchedUpNodePos = -1; // 与其他HtmlMatchInfo最匹配的祖先节点位置 + public int diffStartIndex; // 不同那部分数据的开始位置 + public int diffEndIndex; // 不同那部分数据的结束位置 + + public void init(Matcher m) { + this.group0 = m.group(0); + if (m.groupCount() > 0) + this.group1 = m.group(1); + if (m.groupCount() > 1) + this.group2 = m.group(2); + this.startPos = m.start(0); + this.endPos = m.end(0); + } + + // 通过比较两个group1的不同部分,不同部分的内容以splitFlag中的字符为开始或结束位置 + public boolean findDiffStr(HtmlMatchInfo rhs, String splitFlag) { + int len = Math.min(group1.length(), rhs.group1.length()); + // 找不同字符的开始位置 + for (int i =0; i < len; ++i){ + char a = group1.charAt(i); + char b = rhs.group1.charAt(i); + if(a== b && splitFlag.indexOf (a) != -1) { + diffStartIndex = i+1; + rhs.diffStartIndex = i+1; + } + if(a != b) break; + } + + // 找不同字符的结束位置 + diffEndIndex = group1.length(); + rhs.diffEndIndex = rhs.group1.length(); + for (int i =1; i < len; ++i){ + char a = group1.charAt(group1.length()-i); + char b = rhs.group1.charAt(rhs.group1.length()-i); + if(a== b && splitFlag.indexOf (a) != -1) { + diffEndIndex = group1.length()-i; + rhs.diffEndIndex = rhs.group1.length()-i; + } + if(a != b) break; + } + if(this.diff == null || this.diff.isEmpty() && diffStartIndex < diffEndIndex) { + diff = group1.substring(diffStartIndex, diffEndIndex); + }else{ + if( diffEndIndex < diffStartIndex || !diff.equals(group1.substring(diffStartIndex, diffEndIndex))){ + return false; + } + } + if(rhs.diffStartIndex < rhs.diffEndIndex) { + rhs.diff = rhs.group1.substring(rhs.diffStartIndex, rhs.diffEndIndex); + } + return true; + } + + // 判断 rhs 与当前对象是有相同的祖先节点 + boolean hasSameUpNode(HtmlMatchInfo rhs) { + if (rhs.uploads.size() != this.uploads.size()) return false; + for (int i = 0; i < uploads.size(); ++i) { + if (uploads.get(i).intValue() != rhs.uploads.get(i).intValue()) continue; + if (matchedUpNodePos == -1 || uploads.get(i).intValue() == matchedUpNodePos) { + matchedUpNodePos = uploads.get(i).intValue(); + rhs.matchedUpNodePos = uploads.get(i).intValue(); + return true; + } + return false; + } + return false; + } + } + + public void init(Context context, String extend) { + super.init(context, extend); + this.ext = extend; + } + + // 初始化抓虫规则 + protected void fetchRule() { + if (rule == null) { + if (ext != null) { + try { + + if (ext.startsWith("http")) { + if(ext.indexOf("{cateId}") != -1 || ext.indexOf("{catePg}") !=-1){ + rule = new JSONObject(); + rule.put("homeUrl", ext); + }else{ + String json = OkHttpUtil.string(ext, null); + rule = new JSONObject(json); + } + + } else { + rule = new JSONObject(ext); + } + + if (!rule.has("list")) { + rule.put("list", new JSONObject()); + } + JSONObject list = rule.getJSONObject("list"); + // 初始化homeUrl,list.url + String homeUrl= rule.getString("homeUrl"); + if(homeUrl.indexOf("{cateId}") != -1){ + URL r = new URL(homeUrl); + String path = r.getPath(); + // 更新解析出来的homeUrl + rule.put("homeUrl", homeUrl.substring(0, homeUrl.indexOf(path))); + if(!list.has("url")){ + list.put("url", homeUrl); + } + } + // 初始化截断标志 + String listUrl = list.getString("url"); + if(listUrl.indexOf("/") !=-1) splitFlag+='/'; + if(listUrl.indexOf(".") !=-1) splitFlag+='.'; + if(listUrl.indexOf("-") !=-1) splitFlag+='-'; + + if (!rule.has("detail")) { + rule.put("detail", new JSONObject()); + } + + if (!rule.has("playlist")) { + rule.put("playlist", new JSONObject()); + } + + // 如果没有search,则生成一个默认的search规则,大部分网站的search规则都一样 + // 省掉一个search json + if (!rule.has("search")) { + String url = addHttpPrefix("index.php/ajax/suggest?mid=1&wd=阿凡达"); + try { + // 尝试访问这个json接口,如果返回了正确的json格式,就认为支持json搜索 + JSONObject result = new JSONObject( OkHttpUtil.string(url, getHeaders(url))); + JSONObject search = new JSONObject(); + search.put("vod_id", "id"); + search.put("vod_name", "name"); + search.put("vod_pic", "pic"); + search.put("url", addHttpPrefix("index.php/ajax/suggest?mid=1&wd={wd}")); + rule.put("search", search); + } + catch (Exception e){ + + } + } + + // 部分网站的播放页上直接就有 播放地址,基本上就是一样的格式,可以尝试在playerContent中直接拿直链 + if (!rule.has("play")) { + JSONObject play = new JSONObject(); + JSONArray region = new JSONArray(); + region.put("var player_aaaa="); + region.put(0); + + JSONArray vod_url = new JSONArray(); + vod_url.put("\"url\":\""); + vod_url.put("\""); + play.put("region", region); + play.put("vod_url", vod_url); + rule.put("play", play); + } + + // play字段中可以填写播放连接的关键字用来帮助识别嗅探结果, + // 一般奇葩的网站会用到 + if (rule.has("play")) { // 自定义嗅探关键字 + JSONObject play = rule.getJSONObject("play"); + JSONArray keywords = play.optJSONArray("keywords"); + if (keywords != null) { + videoFormatList.clear(); + for (int i = 0; i < keywords.length(); ++i) { + videoFormatList.add(keywords.getString(i)); + } + } + } + + // 猜cateManaul + JSONObject cateManual = rule.optJSONObject("cateManual"); + String body = ""; + if (cateManual == null) { + // 重建 cateManaul规则 + body = this.fetchUrl(rule.getString("homeUrl"), rule.optJSONObject("header")); + if(body.length() > 32*1024) { body = body.substring(0, 32 * 1024); } + cateManual = this.guess_rule_cateManual(body); + if(cateManual != null){ + rule.put("cateManual", cateManual); + } + } + + // 猜list.vod_id + if (!list.has("vod_id")) { + if(body.isEmpty()){ + body = this.fetchUrl(rule.getString("homeUrl"), rule.optJSONObject("header")); + if(body.length() > 32*1024) { body = body.substring(0, 32 * 1024); } + } + JSONArray listvodid = this.guess_rule_vod_id(body); + list.put("vod_id", listvodid); + } + + // 如果没有json搜索接口,那么尝试在主页上找search 的接口 url + if (!rule.has("search")) { + if(body.isEmpty()){ + body = this.fetchUrl(rule.getString("homeUrl"), rule.optJSONObject("header")); + if(body.length() > 32*1024) { body = body.substring(0, 32 * 1024); } + } + String url = this.guess_rule_search_url(body); + if(!url.isEmpty()){ + JSONObject search = new JSONObject(); + search.put("url", url); + rule.put("search", search); + } + } + + SpiderDebug.log(String.format("默认rule: %s", rule.toString())); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + public String addHttpPrefix(String url) { + try { + if (url.isEmpty()) return ""; + if (url.startsWith("http")) return url; + String result = rule.getString("homeUrl"); + if (result.endsWith("/")) { + result = result.substring(0, result.length() - 1); + } + if (url.startsWith("/")) { + result += url; + } else { + result += "/" + url; + } + return result; + } catch (JSONException e) { + e.printStackTrace(); + } + return url; + } + + protected HashMap getHeaders(String url) { + HashMap headers = new HashMap<>(); + try { + if (rule.has("header")) { + JSONObject header = rule.getJSONObject("header"); + Iterator iter = header.keys(); + while (iter.hasNext()) { + String key = iter.next(); + headers.put(key, header.getString(key)); + } + } + } catch (JSONException e) { + e.printStackTrace(); + } + if (!headers.containsKey("User-Agent")) { + headers.put("User-Agent", Misc.CHROME); + } + return headers; + } + + public static class HtmlNodeHlper{ + // 非正常配对的html标签,进行html层级查找时要用到 + protected static ArrayList notPairedTag = new ArrayList<>(Arrays.asList("img", "br", "meta", "!--")); // 为注释 + // 判断当前html标签是否为正常的标签 + public static boolean isPairedHtmlTag(String str, int startPos) { + String tmp = str.substring(startPos, Math.min(str.length(), startPos + 10)); + for (String p : notPairedTag) { + if (tmp.indexOf(p) != -1) { // 找到了 + // 找 > 如果匹配了 /> 则认为是配对的 + for (int i = startPos + 1; i < str.length(); ++i) { + String sm = str.substring(i); + if (str.charAt(i) == '>') { + if (str.charAt(i - 1) == '/') { + return true; + } else { + return false; + } + } + } + return false; + } + } + return true; + } + + // 查找当前标签的html代码 pos必须是标签的开始位置 < + public static String nodeString(String str, int pos) { + if (pos < 0 || pos >= str.length() || str.charAt(pos) != '<') return str; + int isRightNode = 0; + for (int i = pos; i < str.length() - 1; ++i) { +// String sm = str.substring(i, i + 400); + switch (str.charAt(i)) { + // 遇到 / 那么这个位置有可能是xml的结束标识,这种情况下再遇到<则不是当前节点的上级节点 + case '/': { + if (str.charAt(i + 1) == '>') { // "/>" 认为是标签的结束位置 + isRightNode--; + } else if (str.charAt(i - 1) == '<') { // "': { + if (isRightNode == 0) { + return str.substring(pos, i + 1); + } + break; + } + case '<': { + if (str.charAt(i + 1) != '/' && isPairedHtmlTag(str, i)) { // 不是 " findUpNodes(String str, int pos, int lookback) { + ArrayList nodes = new ArrayList<>(); + ArrayList urls = new ArrayList<>(); + if (pos == -1) return nodes; + int isUpNode = 0; + for (int i = pos; i >= 0; --i) { + switch (str.charAt(i)) { + // 遇到 / 那么这个位置有可能是xml的结束标识,这种情况下再遇到<则不是当前节点的上级节点 + case '/': { + if (str.charAt(i + 1) == '>') { + isUpNode++; +// SpiderDebug.log(String.format("not xml %s", str.substring(i, i + 20))); + } else if (str.charAt(i - 1) == '<') { + isUpNode++; + --i; +// SpiderDebug.log(String.format("not xml %s", str.substring(i, i + 20))); + } + break; + } + case '<': { + if (isUpNode == 0) { +// SpiderDebug.log(String.format("find up node %d %s", i, str.substring(i, i + 30))); + urls.add(String.format("%5d", i)); + nodes.add(i); + } else if (isPairedHtmlTag(str, i)) { + isUpNode--; + if (isUpNode < 0) isUpNode = 0; +// SpiderDebug.log(String.format("%s", str.substring(i, i + 30))); + } + + break; + } + default: + break; + } + if (nodes.size() >= lookback) { + break; + } + } + return nodes; + } + // 获取当前节点的所有子节点 + public static ArrayList getChildNodes(String str) { + ArrayList arr = new ArrayList<>(); + int pos = 0; + if (pos < 0 || pos >= str.length() || str.charAt(pos) != '<') return arr; + ++pos; + while (pos > -1 && pos < str.length()) { + pos = str.indexOf('<', pos); + String p = nodeString(str, pos); + if (p.isEmpty()) { + break; + } + arr.add(p); + pos += p.length(); + } + return arr; + } + + // 移除字符串的html标签 + public static String trimHtmlString(String str, String r) { + String ret = str.replace("\r\n", "") + .replace("\n", "") + .replaceAll("<.+?>", r) + // .replace(" ", "") + .replaceAll("\\s+", " ") + .replace(" ", "") + .replace(" ", "") + .trim(); + return ret; + } + + public static String trimHtmlString(String str) { + return trimHtmlString(str, ""); + } + + } + + public static class Utils{ + // 查找列表块的起始位置,取最靠近共同祖先节点的位置 + public static int findBlockPos(ArrayList a, ArrayList b) { + int len = a.size() > b.size() ? b.size() : a.size(); + if(len ==1 ) return b.get(0); + for (int i = 0; i < len; ++i) { + if (a.get(i).intValue() == b.get(i).intValue()) { + return b.get(i - 1); + } + } + return b.get(len - 1); + } + + // 查找两个字符串之间的子串 + // keys 字段说明 + // 0 prefix 1 suffix 2 找到子串后左边index的偏移量 3 找到子串后右边index的偏移量 + public static String findSubString(String str, int startPos, JSONArray keys, String defaultVal) { + try { + if (keys == null) return defaultVal; + String prefix = keys.getString(0); + String suffix = keys.getString(1); + int offsetl = 0; // 左边的偏移量 + int offsetr = 0; // 右边的偏移量 + if (keys.length() > 2) { + offsetl = keys.getInt(2); + } + if (keys.length() > 3) { + offsetr = keys.getInt(3); + } + int a = str.indexOf(prefix, startPos) + prefix.length(); + if (a < prefix.length()) return defaultVal; + int b = str.indexOf(suffix, a); + if (b < a) return defaultVal; + return HtmlNodeHlper.trimHtmlString(str.substring(a + offsetl, b + offsetr)); + } catch (JSONException e) { + e.printStackTrace(); + } + return defaultVal; + } + + public static String findSubString(String str, int startPos, JSONArray keys) { + return findSubString(str, startPos, keys, ""); + } + + // 获取回看层数 + public static int getLookbackCount(JSONArray keys) { + try { + if (keys != null && keys.length() > 4) return keys.getInt(4); + } catch (Exception e) { + //e.printStackTrace(); + } + return 0; + } + + // 遍历JSONObect中的JSONArray查找回看的层数可用的规则 + public static JSONArray getLookbackArray(JSONObject obj) { + try { + Iterator iter = obj.keys(); + while (iter.hasNext()) { + String key = (String) iter.next(); + Object val = obj.get(key); + if (val.getClass().getSimpleName().equals("JSONArray")) { + int c = getLookbackCount((JSONArray) val); + if (c > 0) return (JSONArray) val; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + // 统计子串个数 + public static int getSubStringCount(String str, String sub){ + int pos =0; + int count =0; + while (pos < str.length()){ + pos = str.indexOf(sub, pos); + if(pos == -1) break; + pos += sub.length(); + ++count; + } + return count; + } + + // 获取指定区间的字符串 + public static String getRegion(String str, JSONObject obj) { + try { + if (obj == null) return str; + JSONArray region = obj.optJSONArray("region"); + if (region == null) return str; + String prefix = region.getString(0); + int a = str.indexOf(prefix); + if (a == -1) return str; + int b = str.length(); + if (region.length() > 1) { + b = str.indexOf(region.getString(1), a + prefix.length()); + if (b == -1) b = str.length(); + } + return str.substring(a, b); + } catch (JSONException e) { + e.printStackTrace(); + } + return str; + } + + } + + // 猜测分类列表的html区间代码 + protected String guessCateManualHtmlString(String body) { + String regx = String.format(" list = new ArrayList<>(); + int mcount = 0; + while (m.find() ) { + ++mcount; + if(mcount >30 && !list.isEmpty()){ + break; + } + HtmlMatchInfo cate = new HtmlMatchInfo(); + cate.init(m); + cate.group2 = HtmlNodeHlper.trimHtmlString(HtmlNodeHlper.nodeString(body, cate.startPos)); + if (cate.group2.isEmpty()) continue; + boolean bOk = false; + for (String v : cateManuals){ + if(cate.group2.indexOf(v) !=-1) { + bOk = true; + break; + } + } + if(!bOk) continue; + cate.uploads = HtmlNodeHlper.findUpNodes(body, cate.startPos, 3); + if (!list.isEmpty()) { + boolean b = list.get(0).hasSameUpNode(cate); + if (!b) { // 当前找到的info和list中的匹配 + if (list.size() > 1) { // 如果list中的数据大于1 则认为找到了类型列表 + return HtmlNodeHlper.nodeString(body, list.get(0).matchedUpNodePos); + } + list.clear(); + } + } + list.add(cate); + } + if (list.size() > 1) { // 如果list中的数据大于1 则认为找到了类型列表 + return HtmlNodeHlper.nodeString(body, list.get(0).matchedUpNodePos); + } else { + return ""; + } + } + + // 从html代码中猜测分类名和分类ID cateManual规则 + protected JSONObject guess_rule_cateManual(String body) { + try { + String str = this.guessCateManualHtmlString(body); + if (str.isEmpty()) return new JSONObject(); + + String regx = String.format("](\\s*?\\S+?\\s*?)(\"|<)", TextUtils.join("|", cateManuals)); + Pattern pattern = Pattern.compile(regx, Pattern.CASE_INSENSITIVE); + Matcher m = pattern.matcher(str); + ArrayList list = new ArrayList<>(); + while (m.find()) { + // HtmlMatchInfo 字段映射 + // HtmlMatchInfo.group1 -> href + // HtmlMatchInfo.group2 -> name + // HtmlMatchInfo.diff -> id 分类ID + HtmlMatchInfo cate = new HtmlMatchInfo(); + cate.init(m); + if (cate.group1.length() < 5) continue; + cate.group2 = HtmlNodeHlper.trimHtmlString(HtmlNodeHlper.nodeString(str, cate.startPos)); + if(cate.group2.isEmpty()) continue; + // 判断是否为正常的分类名 + boolean validCateName = true; + for (int j = 0; j < invalidCateNames.size(); ++j) { + if (cate.group2.indexOf(invalidCateNames.get(j)) != -1) { + SpiderDebug.log(String.format("排除无效分类:%s --> %s", cate.group1, cate.group2)); + validCateName = false; + break; + } + } + if(!validCateName) continue; + + if (!list.isEmpty()) { + if (!list.get(0).findDiffStr(cate, splitFlag)) { + SpiderDebug.log(String.format("排除可能无效的分类 %s <--> %s", cate.group1, cate.group2)); + continue; + } + } + list.add(cate); + } + + ArrayList baseInfoIndexs = new ArrayList<>(); + // 找到最可能是正确的导航item + for (int i =0; i < list.size(); ++i){ + list.get(i).diff = null; + for (String v : cateManuals){ + if(list.get(i).group2.indexOf(v) !=-1) { + baseInfoIndexs.add(i); + break; + } + } + } + + // 以找到的导航item为基准重建分类ID + int baseInfoIndex=0; + for (int i =1; i < baseInfoIndexs.size(); ++i){ + baseInfoIndex=baseInfoIndexs.get(0).intValue(); + list.get(baseInfoIndex).findDiffStr(list.get(baseInfoIndexs.get(i).intValue()), splitFlag); + } + + JSONObject cateManual = new JSONObject(); + for (int i = 0; i < list.size(); ++i) { + if(list.get(i).diff == null || list.get(i).diff.isEmpty()) { + if(!list.get(baseInfoIndex).findDiffStr(list.get(i), splitFlag)){ + SpiderDebug.log(String.format("排除可能无效的分类 : %s", list.get(i).group0)); + continue; + } + } + + boolean validCateName = true; + String name = list.get(i).group2; + String id = list.get(i).diff; + if (id == null || id.isEmpty()) continue; + if (name == null || name.isEmpty()) continue; + for (int k =0; k arr = HtmlNodeHlper.findUpNodes(body,m.start(0), i); + String r = HtmlNodeHlper.nodeString(body, arr.get(arr.size()-1)); + String regex2 = "action=\"(.+?)\""; + Pattern pattern2 = Pattern.compile(regex2, Pattern.CASE_INSENSITIVE); + Matcher m2 = pattern2.matcher(r); + if(m2.find()){ + String url = m2.group(1); + char ch = url.indexOf('?') ==-1 ? '?' : '&'; + url = addHttpPrefix(url + ch + wd + "={wd}"); + return url; + } + + } + } + return ""; + } + // 猜测列表数据的 vod_id 规则 + public JSONArray guess_rule_vod_id(String body) { + try { + String regx = " founds = new HashMap<>(); + ArrayList list = new ArrayList<>(); + while (m.find()) { + HtmlMatchInfo cate = new HtmlMatchInfo(); + cate.init(m); + cate.uploads = HtmlNodeHlper.findUpNodes(body, cate.startPos, 4); +// String ms = this.findNodeString(body, cate.uploads.get(cate.uploads.size()-1)); + if (!list.isEmpty()) { + + if(cate.group1.equals( list.get(list.size()-1).group1)) continue; + boolean b = list.get(list.size()-1).hasSameUpNode(cate); + if (!b) { // 当前找到的info和list中的匹配 + if (list.size() > 1) { + HtmlMatchInfo info = list.get(0); + info.findDiffStr(list.get(1), splitFlag); + int id = 0; + boolean isNumberID = false; + try { id = Integer.valueOf(info.diff).intValue(); isNumberID = true; }catch (Exception e){} + + if(id > 100 ){ // cateID一般都是小于100的 + String url = (info.group1.replace(list.get(0).diff, "{vid}")); + JSONArray arr = new JSONArray(); + String prefix = url.substring(0, url.indexOf("{vid}")); + String suffix = url.substring(prefix.length() + "{vid}".length()); + int lookback = info.uploads.indexOf(info.matchedUpNodePos) - 1; + if (lookback < 1) lookback = 1; + arr.put(prefix); + arr.put(suffix); + arr.put(0); + arr.put(0); + arr.put(lookback); + arr.put(list.size()); + + if (!founds.containsKey(url)) { + founds.put(url, arr); + } else { + int nlen = founds.get(url).getInt(5) + list.size(); + arr.put(5, nlen); + founds.put(url, arr); + if(nlen >= 30){ + list.clear(); + break; + } + } + } + + } + list.clear(); + } + } + list.add(cate); + if(list.size()>30){ + break; + } + } + + + if (list.size() > 5 || (list.size()>1 && founds.isEmpty())) { // 如果list中的数据大于1 则认为找到了类型列表 + HtmlMatchInfo info = list.get(0); + info.findDiffStr(list.get(1), splitFlag); + int id = 0; + boolean isNumberID = false; + try { id = Integer.valueOf(info.diff).intValue(); isNumberID = true; }catch (Exception e){} + + if(id > 100 ){ // cateID一般都是小于100的 + + String url = (info.group1.replace(list.get(0).diff, "{vid}")); + JSONArray arr = new JSONArray(); + String prefix = url.substring(0, url.indexOf("{vid}")); + String suffix = url.substring(prefix.length() + "{vid}".length()); + int lookback = info.uploads.indexOf(info.matchedUpNodePos) - 1; + if (lookback < 1) lookback = 1; + arr.put(prefix); + arr.put(suffix); + arr.put(0); + arr.put(0); + arr.put(lookback); + arr.put(list.size()); + + if (!founds.containsKey(url)) { + founds.put(url, arr); + } else { + int nlen = founds.get(url).getInt(5) + list.size(); + arr.put(5, nlen); + founds.put(url, arr); + } + } + } + + + JSONArray c = null; + for (String key : founds.keySet()) { + JSONArray v = founds.get(key); + if(c == null || c.getInt(5) < v.getInt(5)) c = v; + } + return c; + + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + // 猜播放列表 + public JSONArray guess_rule_vod_play_url(String str, String vid) { + String regex = "href=\"(/.+?)\""; + Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); + Matcher m = pattern.matcher(str); + HtmlMatchInfo info = new HtmlMatchInfo(); + ArrayList vec = new ArrayList<>(); + boolean p0__ = false; + while (m.find()){ + String sb = m.group(1); + // 太长的url认为是错误的播放地址 + if(sb.length() > 100) continue; + if(sb.indexOf(vid) == -1) continue; + // 如果当前url的长度比上一个url的长度短也认为是无效的播放地址(带上了vod_id一般短一点的可能是详情页的地址) + // 一般来讲 999-1-1.html 这种格式是播放页的地址,不排除这种地址 + boolean is__html = (sb.indexOf(vid+"-") != -1); + if(!is__html && vec.size() > 0 && vec.get(vec.size()-1).length() > sb.length()) continue; + if(is__html && !p0__ ){ // 找到了准确度最高的播放连接格式,如果检查到列表头不是这种格式的话,清空列表从头开始 + vec.clear(); + } + // 如果列表里面装了标准的连接格式,不标准的就不要了 + if(p0__ && !is__html) continue; + + info.init(m); + if(vec.isEmpty()) p0__ = is__html; + vec.add(m.group(1)); + if(vec.size() > 10 && vec.get(vec.size()-2).length() == sb.length()) { + break; + } + } + if(info.group0 != null){ + for (int i =1;i < 4; ++i){ + ArrayList nodes = HtmlNodeHlper.findUpNodes(str, info.startPos, i); + int startPos = nodes.get(nodes.size()-1).intValue(); + //String smd = str.substring(startPos, startPos+10); + String smd = HtmlNodeHlper.nodeString(str, startPos); + + if(smd.indexOf(" map = new HashMap(); + + for (int i = 0; i < words.length; ++i) { + words[i] =words[i].trim(); + if (!words[i].isEmpty() && words[i].indexOf("更新") ==-1) { + + int c = 1; + if (map.containsKey(words[i])) { + c = 1 + map.get(words[i]).intValue(); + ;//[words[i]] + } + map.put(words[i], Integer.valueOf(c)); + } + } + String s = ""; + int c = 0; + for (String key : map.keySet()) { + int v = map.get(key).intValue(); + if (v > c) { + c = v; + s = key; + } + } + val = s; + } + return val.replace("在线", "") + .replace("立即", "") + .replace("观看", "") + .replace("点播", "") + .replace("影片", "") + .replace("信息", "") + .replace("播放", "") + .trim(); + //return val; + } catch (Exception e) { + + } + return ""; + } + + public String guess_value_vod_remarks(String nd, int startPos, String vod_name) { + try { + String all = HtmlNodeHlper.trimHtmlString(nd, "!!!!"); + String[] words = all.split("!!!!"); + String val = ""; + for (int i = 0; i < words.length; ++i) { + String wd = words[i].trim(); + if (!wd.isEmpty() && wd.indexOf(vod_name) == -1) { + String dot = (!val.isEmpty()) ? "," : "";// val += ","; + String tmp = val + dot + wd; + if (tmp.length() > 20) { + break; + } + val = tmp; + } + } + return val; + } catch (Exception e) { + + } + return ""; + + } + + public String guess_value_vod_pic(String nd, int startPos) { + try { + JSONArray vec = new JSONArray(); + vec.put("data-original=\""); + vec.put("\""); + String val = Utils.findSubString(nd, startPos, vec); + if (val.isEmpty()) { + vec.put(0, "data-src=\""); + val = Utils.findSubString(nd, startPos, vec); + } + if (val.isEmpty()) { + vec.put(0, "src=\""); + val = Utils.findSubString(nd, startPos, vec); + } + if (val.isEmpty()) { + vec.put(0, "data-bg=\""); + val = Utils.findSubString(nd, startPos, vec); + } + if (val.isEmpty()) { + //TODO: 直接在nd中找个.jpg .png 之类的当图片 + } + return addHttpPrefix(val); + } catch (Exception e) { + + } + return ""; + } + + @Override + public boolean isVideoFormat(String url) { + url = url.toLowerCase(); + if (url.contains("=http") || url.contains("=https") || url.contains("=https%3a%2f") || url.contains("=http%3a%2f")) { + return false; + } + for (String format : videoFormatList) { + if (url.contains(format)) { + return true; + } + } + return false; + } + + // 让当前爬虫自己判断是否为可播放的地址 + @Override + public boolean manualVideoCheck() { + return true; + } + + + @Override + public String homeContent(boolean z) { + try { + fetchRule(); + + JSONObject result = new JSONObject(); + JSONArray classes = new JSONArray(); + JSONObject cateManual = rule.optJSONObject("cateManual"); + + Iterator keys = cateManual.keys(); + while (keys.hasNext()) { + String key = keys.next(); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("type_name", key); + jsonObject.put("type_id", cateManual.getString(key)); + classes.put(jsonObject); + } + + result.put("class", classes); + if (z && rule.has("filter")) { + result.put("filters", rule.getJSONObject("filter")); + } + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + // from xpath 加入过滤条件 + protected String categoryUrl(String tid, String pg, boolean filter, HashMap extend) { + try { + JSONObject list = this.rule.getJSONObject("list"); + String cateUrl = list.optString(pg, ""); + if(cateUrl.isEmpty()) + cateUrl = list.getString("url"); + if (filter && extend != null && extend.size() > 0) { + for (Iterator it = extend.keySet().iterator(); it.hasNext(); ) { + String key = it.next(); + String value = extend.get(key); + if (value.length() > 0) { + cateUrl = cateUrl.replace("{" + key + "}", URLEncoder.encode(value)); + } + } + } + cateUrl = cateUrl.replace("{cateId}", tid).replace("{catePg}", pg); + Matcher m = Pattern.compile("\\{(.*?)\\}").matcher(cateUrl); + while (m.find()) { + String n = m.group(0).replace("{", "").replace("}", ""); + cateUrl = cateUrl.replace(m.group(0), "").replace("/" + n + "/", ""); + } + return cateUrl; + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + @Override + public String categoryContent(String tid, String pg, boolean filter, HashMap extend) { + try { + JSONObject list = this.rule.getJSONObject("list"); + String url = categoryUrl(tid, pg, filter, extend); + String body = fetchUrl(url, list.optJSONObject("header")); + String str = Utils.getRegion(body, list); + JSONArray videos = new JSONArray(); + JSONArray lookback = Utils.getLookbackArray(list); + Set set = new HashSet(); + int pos = 0; + ArrayList urlnodes = null; + int lookup = -1; + while (lookback != null) { + pos = str.indexOf(lookback.getString(0), pos); + if (pos == -1) break; + + ArrayList arr = null; + int blockPos = 0; + String nd =""; + do { + arr = HtmlNodeHlper.findUpNodes(str, pos - 1, lookback.getInt(4)); + if (urlnodes == null) { + urlnodes = arr; + blockPos = arr.get(arr.size() - 1); + } else { + blockPos = Utils.findBlockPos(urlnodes, arr); + } + nd = HtmlNodeHlper.nodeString(str, blockPos); + + // 检查是否回看层数过多,如果回看导数过多会导致加载不出来数据或一页只加载一条数据,需要进行修正 + if(lookup < 0){ + int count = Utils.getSubStringCount(nd, lookback.getString(0)); + if(count > 3 && lookback.getInt(4)>1){ + lookback.put(4, lookback.getInt(4)-1); + urlnodes = null; + blockPos=0; + nd=""; + SpiderDebug.log(String.format("找到过多的url匹配项(%d),降低匹配层级为%d", count, lookback.getInt(4))); + }else if(lookup == -1){ + String pic = guess_value_vod_pic(nd,0); //尝试找一下图片,如果没找到的话增加一级 + String vName = guess_value_vod_name(nd,0); + if(pic.isEmpty()||vName.isEmpty()){ + lookback.put(4, lookback.getInt(4)+1); + urlnodes = null; + blockPos=0; + nd=""; + lookup = -2; // 只退一次 + SpiderDebug.log(String.format("当前层级未找到(%s),增加匹配层级为%d", pic.isEmpty()? "图片": "标题", lookback.getInt(4))); + }else{ + lookup = lookback.getInt(4); + } + }else{ + lookup = lookback.getInt(4); + } + } + }while (lookup < 0 ); + + + pos += nd.length(); + blockPos = 0; + String vod_id = Utils.findSubString(nd, blockPos, list.getJSONArray("vod_id")); + if (!set.contains(vod_id)) { // 排除重复数据 + set.add(vod_id); + JSONObject v = new JSONObject(); + v.put("vod_id", vod_id); + v.put("vod_name", Utils.findSubString(nd, blockPos, list.optJSONArray("vod_name"))); + v.put("vod_pic", addHttpPrefix(Utils.findSubString(nd, blockPos, list.optJSONArray("vod_pic")))); + v.put("vod_remarks", Utils.findSubString(nd, blockPos, list.optJSONArray("vod_remarks"))); + + if (v.getString("vod_name").isEmpty()) { + v.put("vod_name", guess_value_vod_name(nd, 0)); + } + + if (v.getString("vod_pic").isEmpty()) { + v.put("vod_pic", guess_value_vod_pic(nd, 0)); + } + + // 随便整点remark + if (v.getString("vod_remarks").isEmpty()) { + String vod_name = v.getString("vod_name"); + v.put("vod_remarks", guess_value_vod_remarks(nd, 0, vod_name)); + } + v.put("vod_id", Base64.encodeToString(v.toString().getBytes(Misc.CharsetUTF8), base64Flag)); + videos.put(v); + } +// pos += vod_id.length(); + } + + JSONObject result = new JSONObject(); + result.put("page", pg); + result.put("pagecount", Integer.MAX_VALUE); + result.put("limit", 90); + result.put("total", Integer.MAX_VALUE); + result.put("list", videos); + return result.toString(); + } catch (Exception e) { + e.printStackTrace(); + return ""; + } + } + + // 生成播放的名称 + public ArrayList makeVodPlayFrom(int sz) { + ArrayList vec = new ArrayList(); + for (int i = 1; i <= sz; ++i) { + vec.add("播放列表" + i); + } + return vec; + } + + // 查找播放列表名 + public ArrayList findVodPlayFrom(String str, int sz) { + try { + ArrayList urlnodes = null; + JSONObject playlist = this.rule.getJSONObject("playlist"); + if (!playlist.has("vod_play_from")) { + return makeVodPlayFrom(sz); + } + ArrayList> vod_play_from = new ArrayList>(); + JSONArray rule_vod_play_from = playlist.getJSONArray("vod_play_from"); + for (int i = 0; i < rule_vod_play_from.length(); ++i) { + String s = rule_vod_play_from.get(i).getClass().getSimpleName(); + String key = ""; + String alias = ""; + if (s.equals("String")) { + key = alias = rule_vod_play_from.getString(i); + } else if (s.equals("JSONArray")) { + JSONArray item = rule_vod_play_from.getJSONArray(i); + key = alias = item.getString(0); + if (item.length() > 1) { + alias = item.getString(1); + } + } else { + return makeVodPlayFrom(sz); + } + + int pos = str.indexOf(key); + if (pos == -1) continue; + vod_play_from.add(new Pair<>(pos, alias)); + } + // 找到的名称与实际需要的数量不匹配,返回默认的名称 + if (vod_play_from.size() != sz) { + return makeVodPlayFrom(sz); + } + // 排序 + Collections.sort(vod_play_from, new Comparator>() { + @Override + public int compare(Pair a, Pair b) { + return a.first.intValue() - b.first.intValue(); + } + }); + + ArrayList vec = new ArrayList(); + for (int i = 0; i < vod_play_from.size(); ++i) { + vec.add(vod_play_from.get(i).second); + } + return vec; + } catch (Exception e) { + e.printStackTrace(); + } + return makeVodPlayFrom(sz); + } + + // 查找播放列表 + public ArrayList findVodPlayUrl(String str) { + ArrayList tmp_vod_play_url = new ArrayList(); + ArrayList vod_play_url = new ArrayList(); + try { + int pos = 0; + ArrayList urlnodes = null; + JSONObject playlist = this.rule.getJSONObject("playlist"); + int sort = playlist.optInt("sort", 0); // 如果这个值是0。表示要倒序播放列表 + HashMap map = new HashMap(); + Set rmset = new HashSet(); +// String tmp = ""; + ArrayList tmp = new ArrayList(); + JSONArray lookback = Utils.getLookbackArray(playlist); + while (lookback != null) { + JSONArray rule_vod_play_url = playlist.getJSONArray("vod_play_url"); + pos = str.indexOf(rule_vod_play_url.getString(0), pos); + if (pos == -1) break; + ArrayList arr = HtmlNodeHlper.findUpNodes(str, pos - 1, lookback.getInt(4)); + + int blockPos = 0; + if (urlnodes == null || arr.size() != urlnodes.size() || arr.get(arr.size() - 1).intValue() != urlnodes.get(urlnodes.size() - 1).intValue()) { + urlnodes = arr; + blockPos = arr.get(Math.max(0, arr.size() - 2)); + // 如果上级节点不同,说明当前播放列表已经结束,可以 + if (!tmp.isEmpty()) { + SpiderDebug.log("change play list "); + if (sort != 0) { + Collections.reverse(tmp); + } + tmp_vod_play_url.add(TextUtils.join("#", tmp)); + tmp = new ArrayList(); + } + } else { + blockPos = Utils.findBlockPos(urlnodes, arr); + } +// String bs = str.substring(blockPos, blockPos + 1000); +// String b = this.findNodeString(str, blockPos); + // 处理play_url 为空的情况 + String play_url = addHttpPrefix(Utils.findSubString(str, blockPos, playlist.getJSONArray("vod_play_url"))); + + if (map.containsKey(play_url)) { // 如果以经找过当前播放的url,那么认为之前找到的都是垃圾数据,清空之间的成果 + SpiderDebug.log("发现重复播放连接,清空已解析到的播放列表"); + rmset.add(map.get(play_url)); // 添加移除标志 + } + map.put(play_url, tmp_vod_play_url.size()); + String play_url_title = Utils.findSubString(str, blockPos, playlist.optJSONArray("vod_play_url_title")); + if (play_url_title.isEmpty()) { + play_url_title = HtmlNodeHlper.trimHtmlString(HtmlNodeHlper.nodeString(str, blockPos)); + int dd = 3; + } + tmp.add(play_url_title + "$" + play_url); +// SpiderDebug.log(String.format("%s$%s", play_url_title, play_url)); + pos += play_url.length(); + } + + if (!tmp.isEmpty()) { + if (sort != 0) { + Collections.reverse(tmp); + } + tmp_vod_play_url.add(TextUtils.join("#", tmp)); + } + + for (int i = 0; i < tmp_vod_play_url.size(); ++i) { + if (!rmset.contains(i)) { + vod_play_url.add(tmp_vod_play_url.get(i)); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return vod_play_url; + } + + // 猜测详情数据的html区间 + protected String guessDetailContentRegion(String body) { + String regx = String.format(">\\s*?(%s)|(%s)", TextUtils.join("|", detailItemNames), TextUtils.join(":|", detailItemNames)); + Pattern pattern = Pattern.compile(regx, Pattern.CASE_INSENSITIVE); + Matcher m = pattern.matcher(body); + ArrayList list = new ArrayList<>(); + while (m.find()) { + HtmlMatchInfo cate = new HtmlMatchInfo(); + cate.init(m); + cate.uploads = HtmlNodeHlper.findUpNodes(body, cate.startPos, 5); + if (!list.isEmpty()) { + boolean b = list.get(0).hasSameUpNode(cate); + if (!b) { // 当前找到的info和list中的匹配 + if (list.size() > 1) { + boolean found = false; + for (int i = 0; i < list.size(); ++i) { + if (list.get(i).group0.indexOf("导演") != -1) { + found = true; + } + } + if (found) { + return HtmlNodeHlper.nodeString(body, list.get(0).matchedUpNodePos); + } else { + list.clear(); + } + } + list.clear(); + } + } + list.add(cate); + } + if (list.size() > 1) { // 如果list中的数据大于1 则认为找到了类型列表 + return HtmlNodeHlper.nodeString(body, list.get(0).matchedUpNodePos); + } else { + return ""; + } + } + + @Override + public String detailContent(List ids) { + try { + fetchRule(); + JSONObject vinfo = new JSONObject(new String(Base64.decode(ids.get(0), base64Flag), "UTF-8")); + + JSONObject detail = rule.optJSONObject("detail"); + if (detail == null) return ""; + // 如果不存在url,则使用list中的vod_id来生成url + if (!detail.has("url")) { + JSONObject list = rule.getJSONObject("list"); + JSONArray tmp = list.getJSONArray("vod_id"); + String u = addHttpPrefix(tmp.getString(0) + "{vid}" + tmp.getString(1)); + detail.put("url", u); + } + String url = detail.getString("url").replace("{vid}", vinfo.getString("vod_id")); + String body = fetchUrl(url, detail.optJSONObject("header")); + String str = Utils.getRegion(body, detail); + int startPos = 0; + + String nodeString = ""; + // 圈定 详情数据的范围 + JSONArray lookback = Utils.getLookbackArray(detail); + if (lookback != null) { + int pos = str.indexOf(lookback.getString(0), 0); + if (pos != -1) { + ArrayList arr = HtmlNodeHlper.findUpNodes(str, pos - 1, lookback.getInt(4)); + if (arr.size() > 0) { + startPos = arr.get(arr.size() - 1); + nodeString = HtmlNodeHlper.nodeString(str, startPos); // 精确详情数据的范围 + } + } + } + // 没有指定详情数据范围则猜一个出来 + if (nodeString.isEmpty()) { + nodeString = this.guessDetailContentRegion(body); + } + + if (nodeString.length() != str.length()) { + str = nodeString; + startPos = 0; + } + /////////////////////////////////////////////////////////////////////////////////////// + + JSONObject vod = new JSONObject(); + vod.put("vod_id", ids.get(0)); + vod.put("vod_name", Utils.findSubString(str, startPos, detail.optJSONArray("vod_name"))); + vod.put("vod_pic", addHttpPrefix(Utils.findSubString(str, startPos, detail.optJSONArray("vod_pic")))); + vod.put("type_name", Utils.findSubString(str, startPos, detail.optJSONArray("type_name"))); + vod.put("vod_year", Utils.findSubString(str, startPos, detail.optJSONArray("vod_year"))); + vod.put("vod_area", Utils.findSubString(str, startPos, detail.optJSONArray("vod_area"))); + vod.put("vod_remarks", Utils.findSubString(str, startPos, detail.optJSONArray("vod_remarks"))); + vod.put("vod_actor", Utils.findSubString(str, startPos, detail.optJSONArray("vod_actor"))); + vod.put("vod_director", Utils.findSubString(str, startPos, detail.optJSONArray("vod_director"))); + vod.put("vod_content", Utils.findSubString(str, startPos, detail.optJSONArray("vod_content"))); + + + //////////////////////////////////////////////////////////////////////////////////////// + if (vod.getString("vod_name").isEmpty()) { + vod.put("vod_name", vinfo.optString("vod_name", "")); + } + // 从页面中猜个视频名称出来 + if (vod.getString("vod_name").isEmpty()) { + vod.put("vod_name", guess_value_vod_name(str, startPos)); + } + + //////////////////////////////////////////////////////////////////////////////////////// + if (vod.getString("vod_pic").isEmpty()) { + vod.put("vod_pic", vinfo.optString("vod_pic", "")); + } + if (vod.getString("vod_pic").isEmpty()) { + vod.put("vod_pic", guess_value_vod_pic(str, startPos)); + } + + //////////////////////////////////////////////////////////////////////////////////////// + if (lookback != null && lookback.length() > 1) { + JSONArray key = new JSONArray(); + String name = lookback.getString(0); + String skey = lookback.getString(0); + + ArrayList detailItems = new ArrayList<>(Arrays.asList("导演", "演员", "类型", "年份")); + for (String p : detailItems) { + if (name.indexOf(p) != -1) { + skey = p; + break; + } + } + key.put(name); + key.put(lookback.getString(1)); + if (vod.getString("vod_director").isEmpty()) { + key.put(0, name.replace(skey, "导演")); + vod.put("vod_director", Utils.findSubString(str, startPos, key)); + } + if (vod.getString("vod_actor").isEmpty()) { + key.put(0, name.replace(skey, "主演")); + vod.put("vod_actor", Utils.findSubString(str, startPos, key)); + } + + if (vod.getString("vod_content").isEmpty()) { + String all = HtmlNodeHlper.trimHtmlString(str, "!!!!"); + String[] words = all.split("!!!!"); + String v = ""; + for (int i = 0; i < words.length; ++i) { + if (words[i].length() > v.length()) { + v = words[i]; + } + } + vod.put("vod_content", HtmlNodeHlper.trimHtmlString(v)); + } + + } else { // 猜一下详情数据 + if (vod.getString("vod_director").isEmpty()) { + ArrayList arr = HtmlNodeHlper.getChildNodes(nodeString); + String content = ""; + String f = TextUtils.join("|", detailItemNames); + String regex = String.format("%s",f); + Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); + for (int i = 0; i < arr.size(); ++i) { + String p = HtmlNodeHlper.trimHtmlString(arr.get(i), " ").replace(":", ""); + if (p.length() > content.length()) { content = p; } + String[] all = p.split(regex); + // split出来的可能存在空字符串,去除掉 + ArrayList items = new ArrayList<>(); + for(String c: all){ + if(c.isEmpty()) continue; + items.add(c); + } + Matcher m = pattern.matcher(p); + int index = 0; + while (m.find() && index < items.size()){ + String s = m.group(0); + for (int j = 0; j < detailItemNames.size(); ++j) { + String name = detailItemNames.get(j); + String key = detailItemKeys.get(j); + if (s.indexOf(name) != -1) { + if (vod.getString(key).isEmpty()) { + vod.put(key, items.get(index).trim()); + } + break; + } + } + ++index; + } + } + + if (vod.getString("vod_content").isEmpty()) { + vod.put("vod_content", content); + } + } + } + + + playlistContent(ids, vod, body);// 获取播放列表 + + + JSONObject result = new JSONObject(); + JSONArray list = new JSONArray(); + list.put(vod); + result.put("list", list); + return result.toString(); + } catch (Exception e) { + e.printStackTrace(); + return ""; + } + + } + + // 播放页 str 为 detailContent 函数中http返回值 + protected void playlistContent(List ids, JSONObject vod, String body) { + try { + fetchRule(); + JSONObject vinfo = new JSONObject(new String(Base64.decode(ids.get(0), base64Flag), "UTF-8")); + + JSONObject playlist = rule.optJSONObject("playlist"); + if (playlist == null) return; + if (playlist.has("url")) { + String detailUrl = rule.getJSONObject("detail").optString("url"); + String playListUrl = playlist.getString("url"); + if(!detailUrl.equals(playListUrl)){ + String url = playlist.getString("url").replace("{vid}", vinfo.getString("vod_id")); + body = fetchUrl(url, playlist.optJSONObject("header")); + } + } + String str = Utils.getRegion(body, playlist); + + ArrayList vod_play_url = null; + if (!playlist.has("vod_play_url")) { + // 猜vod_play_url的查找规则 + JSONArray vod_play_url_rule = this.guess_rule_vod_play_url(str, vinfo.getString("vod_id")); + if(vod_play_url_rule != null){ + playlist.put("vod_play_url", vod_play_url_rule); + } + } + vod_play_url = this.findVodPlayUrl(str); + ArrayList vod_play_from = this.findVodPlayFrom(str, vod_play_url.size()); + + // 如果有说明播放源的名称,那么对播放源进行排序 + String f1 = TextUtils.join("$$$", vod_play_from); + String f2 = TextUtils.join("$$$", makeVodPlayFrom(vod_play_url.size())); + + if (!f1.equals(f2)) { + ArrayList urls = new ArrayList<>(); + ArrayList froms = new ArrayList<>(); + + JSONArray rule_vod_play_from = playlist.getJSONArray("vod_play_from"); + for (int i = 0; i < rule_vod_play_from.length(); ++i) { + String s = rule_vod_play_from.get(i).getClass().getSimpleName(); + String alias = ""; + if (s.equals("String")) { + alias = rule_vod_play_from.getString(i); + } else if (s.equals("JSONArray")) { + JSONArray item = rule_vod_play_from.getJSONArray(i); + alias = item.getString(0); + if (item.length() > 1) { + alias = item.getString(1); + } + } + + for (int j = 0; j < vod_play_from.size(); ++j) { + if (vod_play_from.get(j).equals(alias)) { + urls.add(vod_play_url.get(j)); + froms.add(vod_play_from.get(j)); + } + } + + } + vod_play_url = urls; + vod_play_from = froms; + } + vod.put("vod_play_url", TextUtils.join("$$$", vod_play_url)); + vod.put("vod_play_from", TextUtils.join("$$$", vod_play_from)); + } catch (Exception e) { + e.printStackTrace(); + } + + } + + // 尝试从播放页中找播放url + protected String parsePlayUrl(String str, String str2, List list) { + try { + JSONObject play = rule.optJSONObject("play"); + if (play == null) { + return ""; + } + String tmp = fetchUrl(str2, play.optJSONObject("header")); + String body = Utils.getRegion(tmp, play); + int startPos = 0; + JSONArray lookback = Utils.getLookbackArray(play); + if (lookback != null) { + int pos = body.indexOf(lookback.getString(0), 0); + if (pos != -1) { + ArrayList arr = HtmlNodeHlper.findUpNodes(body, pos - 1, lookback.getInt(4)); + if (arr.size() > 0) { + startPos = arr.get(arr.size() - 1); + } else { + startPos = pos; + } + } + } + + String vod_url = Utils.findSubString(body, startPos, play.optJSONArray("vod_url")); + vod_url = vod_url.replace("\\/", "/"); + if (vod_url.isEmpty() || !isVideoFormat(vod_url)) return ""; + JSONObject result = new JSONObject(); + result.put("parse", 0); + result.put("playUrl", ""); + result.put("url", vod_url); + return result.toString(); + + } catch (Exception e) { + e.printStackTrace(); + } + + return ""; + } + + @Override + public String playerContent(String str, String str2, List list) { + try { + fetchRule(); + // 先判断是否可以拿到直链 + String ret = parsePlayUrl(str, str2, list); + if (!ret.isEmpty()) return ret; + // 直接将网页地址返回回去进行嗅探 + JSONObject result = new JSONObject(); + result.put("parse", 1); + result.put("playUrl", ""); + result.put("url", str2); + return result.toString(); + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + protected Object parseJsonSearchResult(Object obj) { + try { + if (obj == null) return null; + JSONObject search = rule.optJSONObject("search"); + if (search == null) return null; + String key_vod_id = search.getString("vod_id"); + String key_vod_name = search.getString("vod_name"); + String type = obj.getClass().getSimpleName(); + if (type.equals("JSONObject")) { + JSONObject object = (JSONObject) obj; + if (object.has(key_vod_id) && object.has(key_vod_name)) return object; + for (Iterator iter = object.keys(); iter.hasNext(); ) { + String k = iter.next(); + Object r = parseJsonSearchResult(object.get(k)); + if (r != null) { + return r; + } + } + } else if (type.equals("JSONArray")) { + JSONArray array = (JSONArray) obj; + for (int i = 0; i < array.length(); ++i) { + if (parseJsonSearchResult(array.get(i)) != null) { + return array; + } + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + protected String parseSearchResult(String body) { + try { + JSONObject obj = new JSONObject(body); + Object info = parseJsonSearchResult(obj); + if (info == null) return ""; + JSONArray arr = new JSONArray(); + if (info.getClass().getSimpleName().equals("JSONObject")) { + arr.put(info); + } else { + arr = (JSONArray) info; + } + JSONObject search = rule.optJSONObject("search"); + JSONArray videos = new JSONArray(); + for (int i = 0; i < arr.length(); ++i) { + JSONObject v = new JSONObject(); + JSONObject o = arr.getJSONObject(i); + if (search.has("vod_id") && o.has(search.getString("vod_id"))) { + v.put("vod_id", o.get(search.getString("vod_id")).toString()); + } else { + continue; + } + if (search.has("vod_name") && o.has(search.getString("vod_name"))) { + v.put("vod_name", o.get(search.getString("vod_name")).toString()); + } else { + v.put("vod_name", "未知"); + } + + if (search.has("vod_pic") && o.has(search.getString("vod_pic"))) { + v.put("vod_pic", o.get(search.getString("vod_pic")).toString()); + } else { + v.put("vod_pic", ""); + } + + if (search.has("vod_remarks") && o.has(search.getString("vod_remarks"))) { + v.put("vod_remarks", o.get(search.getString("vod_remarks")).toString()); + } else { + v.put("vod_remarks", ""); + } + v.put("vod_id", Base64.encodeToString(v.toString().getBytes(Misc.CharsetUTF8), base64Flag)); + videos.put(v); + } + JSONObject result = new JSONObject(); + result.put("list", videos); + return result.toString(); + + } catch (Exception e) { +// e.printStackTrace(); + } + return ""; + } + + // post 搜索,只做了简单的支持 + protected String postSearch(String wd, boolean z) { + try { + JSONObject search = rule.optJSONObject("search"); + if (search == null) return ""; + String url = search.getString("url"); + JSONObject params = search.getJSONObject("post"); // 查询参数 + HashMap reqpayload = new HashMap<>(); + Iterator iter = params.keys(); + while (iter.hasNext()) { + String key = iter.next(); + String value = params.getString(key).replace("{wd}", wd); + reqpayload.put(key, value); + } + final String[] retval = {""}; + HashMap header = getHeaders(url); + header.put("content-type", "application/x-www-form-urlencoded"); + OkHttpUtil.post(OkHttpUtil.defaultClient(), url, reqpayload, header, new OKCallBack.OKCallBackString() { + @Override + protected void onFailure(Call call, Exception e) { + + } + + @Override + protected void onResponse(String response) { + retval[0] = response; + } + }); + return retval[0]; + } catch (Exception e) { + + } + return ""; + } + + @Override + public String searchContent(String wd, boolean z) { + try { + fetchRule(); + JSONObject search = rule.optJSONObject("search"); + if (search == null) return ""; + String str = ""; + if (search.has("post")) { + str = postSearch(wd, z); + } else { + String url = search.getString("url").replace("{wd}", wd); + str = fetchUrl(url, search.optJSONObject("header")); + } + str = Utils.getRegion(str, search); + // 先当JSON解析试试 + String r = parseSearchResult(str); + if (r != null && !r.isEmpty()) { + return r; + } + + if (!search.has("vod_id")) { + JSONObject list = rule.getJSONObject("list"); + search.put("vod_id", list.getJSONArray("vod_id")); + } + + JSONArray videos = new JSONArray(); + Set set = new HashSet(); + int pos = 0; + ArrayList urlnodes = null; + + JSONArray lookback = Utils.getLookbackArray(search); + + int lookup = -1; + while (lookback != null) { + pos = str.indexOf(lookback.getString(0), pos); + if (pos == -1) break; + + ArrayList arr = null; + int blockPos = 0; + String nd =""; + do { + arr = HtmlNodeHlper.findUpNodes(str, pos - 1, lookback.getInt(4)); + if (urlnodes == null) { + urlnodes = arr; + blockPos = arr.get(arr.size() - 1); + } else { + blockPos = Utils.findBlockPos(urlnodes, arr); + } + nd = HtmlNodeHlper.nodeString(str, blockPos); + // 检查是否回看层数过多,如果回看导数过多会导致加载不出来数据或一页只加载一条数据,需要进行修正 + if(lookup < 0){ + int count = Utils.getSubStringCount(nd, lookback.getString(0)); + if(count > 3 && lookback.getInt(4)>1){ + lookback.put(4, lookback.getInt(4)-1); + urlnodes = null; + blockPos=0; + nd=""; + SpiderDebug.log(String.format("找到过多的url匹配项(%d),降低匹配层级为%d", count, lookback.get(4))); + } + else if(lookup == -1){ + String pic = guess_value_vod_pic(nd,0); //尝试找一下图片,如果没找到的话增加一级 + String vName = guess_value_vod_name(nd,0); + if(pic.isEmpty()||vName.isEmpty()){ + lookback.put(4, lookback.getInt(4)+1); + urlnodes = null; + blockPos=0; + nd=""; + lookup = -2; // 只退一次 + SpiderDebug.log(String.format("当前层级未找到(%s),增加匹配层级为%d", pic.isEmpty()? "图片": "标题", lookback.getInt(4))); + }else{ + lookup = lookback.getInt(4); + } + }else{ + lookup = lookback.getInt(4); + } + } + }while (lookup < 0); + + pos += nd.length(); + blockPos = 0; + String vod_id = Utils.findSubString(nd, blockPos, search.getJSONArray("vod_id")); + if (!set.contains(vod_id)) { + set.add(vod_id); + JSONObject v = new JSONObject(); + v.put("vod_id", vod_id); + v.put("vod_name", Utils.findSubString(nd, blockPos, search.optJSONArray("vod_name"))); + v.put("vod_pic", addHttpPrefix(Utils.findSubString(nd, blockPos, search.optJSONArray("vod_pic")))); + v.put("vod_remarks", Utils.findSubString(nd, blockPos, search.optJSONArray("vod_remarks"))); + + if (v.getString("vod_name").isEmpty()) { + v.put("vod_name", guess_value_vod_name(nd, 0)); + } + + if (v.getString("vod_pic").isEmpty()) { + v.put("vod_pic", guess_value_vod_pic(nd, 0)); + } + // 随便整点remark + if (v.getString("vod_remarks").isEmpty()) { + String vod_name = v.getString("vod_name"); + v.put("vod_remarks", guess_value_vod_remarks(nd, 0, vod_name)); + } + v.put("vod_id", Base64.encodeToString(v.toString().getBytes(Misc.CharsetUTF8), base64Flag)); + videos.put(v); + } + } + + JSONObject result = new JSONObject(); + result.put("list", videos); + return result.toString(); + } catch (Exception e) { + e.printStackTrace(); + return ""; + } + } + + protected String fetchUrl(String url, JSONObject h) { + String html = OkHttpUtil.string(url, getHeaders(url)); + html = this.jumpbtwaf(url, html, h); + return html.replaceAll("", "").replace("\r\n","").replace("\n",""); // 移除注释 + } + + protected String jumpbtwaf(String webUrl, String html, JSONObject h) { + + try { + // 没有配置btwaf不执行下面的代码 + if (!rule.optBoolean("btwaf", false)) { + return html; + } + + if (html.contains("检测中") && html.contains("跳转中") && html.contains("btwaf")) { + JSONArray keys = new JSONArray(); + keys.put("btwaf="); + keys.put("\""); + String btwaf = Utils.findSubString(html, 0, keys); + String bturl = webUrl + "?btwaf=" + btwaf; + + Map> cookies = new HashMap<>(); + OkHttpUtil.string(bturl, getHeaders(webUrl), cookies); + for (Map.Entry> entry : cookies.entrySet()) { + if (entry.getKey().equals("set-cookie") || entry.getKey().equals("Set-Cookie")) { + String btcookie = TextUtils.join(";", entry.getValue()); + if (!rule.has("header")) { + rule.put("header", new JSONObject()); + } + rule.getJSONObject("header").put("cookie", btcookie); + break; + } + } + html = fetchUrl(webUrl, h); + } + if (!html.contains("检测中") && !html.contains("btwaf")) { + return html; + } + + } catch (Exception e) { + e.printStackTrace(); + } + return html; + } + +} diff --git a/app/src/main/java/com/github/catvod/spider/XBiubiu.java b/app/src/main/java/com/github/catvod/spider/XBiubiu.java new file mode 100644 index 00000000..875de9f9 --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/XBiubiu.java @@ -0,0 +1,528 @@ +package com.github.catvod.spider; + +import android.content.Context; +import android.text.TextUtils; + +import com.github.catvod.crawler.Spider; +import com.github.catvod.crawler.SpiderDebug; +import com.github.catvod.utils.Misc; +import com.github.catvod.utils.okhttp.OKCallBack; +import com.github.catvod.utils.okhttp.OkHttpUtil; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.jsoup.Jsoup; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import okhttp3.Call; + +public class XBiubiu extends Spider { + + @Override + public void init(Context context) { + super.init(context); + } + + public void init(Context context, String extend) { + super.init(context, extend); + this.ext = extend; + } + + @Override + public String homeContent(boolean filter) { + try { + fetchRule(); + JSONObject result = new JSONObject(); + JSONArray classes = new JSONArray(); + String[] fenleis = getRuleVal("fenlei", "").split("#"); + for (String fenlei : fenleis) { + String[] info = fenlei.split("\\$"); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("type_name", info[0]); + jsonObject.put("type_id", info[1]); + classes.put(jsonObject); + } + result.put("class", classes); + return result.toString(); + } catch ( + Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + protected HashMap getHeaders(String url) { + HashMap headers = new HashMap<>(); + String ua = getRuleVal("ua", Misc.CHROME).trim(); + if (ua.isEmpty()) + ua = Misc.CHROME; + headers.put("User-Agent", ua); + return headers; + } + + @Override + public String homeVideoContent() { + try { + fetchRule(); + if (getRuleVal("shouye").equals("1")) { + JSONArray videos = new JSONArray(); + String[] fenleis = getRuleVal("fenlei", "").split("#"); + for (String fenlei : fenleis) { + String[] info = fenlei.split("\\$"); + JSONObject data = category(info[1], "1", false, new HashMap<>()); + if (data != null) { + JSONArray vids = data.optJSONArray("list"); + if (vids != null) { + for (int i = 0; i < vids.length() && i < 5; i++) { + videos.put(vids.getJSONObject(i)); + } + } + } + if (videos.length() >= 30) + break; + } + JSONObject result = new JSONObject(); + result.put("list", videos); + return result.toString(); + } + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + private JSONObject category(String tid, String pg, boolean filter, HashMap extend) { + try { + fetchRule(); + if (tid.equals("空")) + tid = ""; + String qishiye = rule.optString("qishiye", "nil"); + if (qishiye.equals("空")) + pg = ""; + else if (!qishiye.equals("nil")) { + pg = String.valueOf(Integer.parseInt(pg) - 1 + Integer.parseInt(qishiye)); + } + String webUrl = getRuleVal("url") + tid + pg + getRuleVal("houzhui"); + String html = fetch(webUrl); + html = removeUnicode(html); + String parseContent = html; + boolean shifouercijiequ = getRuleVal("shifouercijiequ").equals("1"); + if (shifouercijiequ) { + String jiequqian = getRuleVal("jiequqian"); + String jiequhou = getRuleVal("jiequhou"); + parseContent = subContent(html, jiequqian, jiequhou).get(0); + } + String jiequshuzuqian = getRuleVal("jiequshuzuqian"); + String jiequshuzuhou = getRuleVal("jiequshuzuhou"); + JSONArray videos = new JSONArray(); + ArrayList jiequContents = subContent(parseContent, jiequshuzuqian, jiequshuzuhou); + for (int i = 0; i < jiequContents.size(); i++) { + try { + String jiequContent = jiequContents.get(i); + String title = removeHtml(subContent(jiequContent, getRuleVal("biaotiqian"), getRuleVal("biaotihou")).get(0)); + String pic = ""; + String tupianqian = getRuleVal("tupianqian").toLowerCase(); + if (tupianqian.startsWith("http://") || tupianqian.startsWith("https://")) { + pic = getRuleVal("tupianqian"); + } else { + pic = subContent(jiequContent, getRuleVal("tupianqian"), getRuleVal("tupianhou")).get(0); + } + pic = Misc.fixUrl(webUrl, pic); + String link = subContent(jiequContent, getRuleVal("lianjieqian"), getRuleVal("lianjiehou")).get(0); + link = getRuleVal("ljqianzhui").isEmpty() ? (link + getRuleVal("ljhouzhui")) : ("x:" + getRuleVal("ljqianzhui")) + link + getRuleVal("ljhouzhui"); + String remark = !getRuleVal("fubiaotiqian").isEmpty() && !getRuleVal("fubiaotihou").isEmpty() ? + removeHtml(subContent(jiequContent, getRuleVal("fubiaotiqian"), getRuleVal("fubiaotihou")).get(0)) : ""; + JSONObject v = new JSONObject(); + v.put("vod_id", title + "$$$" + pic + "$$$" + link); + v.put("vod_name", title); + v.put("vod_pic", pic); + v.put("vod_remarks", remark); + videos.put(v); + } catch (Throwable th) { + th.printStackTrace(); + } + } + JSONObject result = new JSONObject(); + result.put("page", pg); + result.put("pagecount", Integer.MAX_VALUE); + result.put("limit", 90); + result.put("total", Integer.MAX_VALUE); + result.put("list", videos); + return result; + } catch (Exception e) { + SpiderDebug.log(e); + } + return null; + } + + private static String removeUnicode(String str) { + Pattern pattern = Pattern.compile("(\\\\u(\\w{4}))"); + Matcher matcher = pattern.matcher(str); + while (matcher.find()) { + String full = matcher.group(1); + String ucode = matcher.group(2); + char c = (char) Integer.parseInt(ucode, 16); + str = str.replace(full, c + ""); + } + return str; + } + + String removeHtml(String text) { + return Jsoup.parse(text).text(); + } + + @Override + public String categoryContent(String tid, String pg, boolean filter, HashMap extend) { + JSONObject obj = category(tid, pg, filter, extend); + return obj != null ? obj.toString() : ""; + } + + @Override + public String detailContent(List ids) { + try { + fetchRule(); + String[] idInfo = ids.get(0).split("\\$\\$\\$"); + String webUrl = idInfo[2].startsWith("x:") ? idInfo[2] : getRuleVal("url") + idInfo[2]; + String html = fetch(webUrl.startsWith("x:") ? webUrl.substring(2) : webUrl); + String parseContent = html; + boolean bfshifouercijiequ = getRuleVal("bfshifouercijiequ").equals("1"); + if (bfshifouercijiequ) { + String jiequqian = getRuleVal("bfjiequqian"); + String jiequhou = getRuleVal("bfjiequhou"); + parseContent = subContent(html, jiequqian, jiequhou).get(0); + } + + ArrayList playList = new ArrayList<>(); + boolean playDirect = getRuleVal("直接播放").equals("1"); + if (!playDirect) { + String jiequshuzuqian = getRuleVal("bfjiequshuzuqian"); + String jiequshuzuhou = getRuleVal("bfjiequshuzuhou"); + boolean bfyshifouercijiequ = getRuleVal("bfyshifouercijiequ").equals("1"); + ArrayList jiequContents = subContent(parseContent, jiequshuzuqian, jiequshuzuhou); + for (int i = 0; i < jiequContents.size(); i++) { + try { + String jiequContent = jiequContents.get(i); + String parseJqContent = bfyshifouercijiequ ? subContent(jiequContent, getRuleVal("bfyjiequqian"), getRuleVal("bfyjiequhou")).get(0) : jiequContent; + ArrayList lastParseContents = subContent(parseJqContent, getRuleVal("bfyjiequshuzuqian"), getRuleVal("bfyjiequshuzuhou")); + List vodItems = new ArrayList<>(); + for (int j = 0; j < lastParseContents.size(); j++) { + String title = subContent(lastParseContents.get(j), getRuleVal("bfbiaotiqian"), getRuleVal("bfbiaotihou")).get(0); + String link = subContent(lastParseContents.get(j), getRuleVal("bflianjieqian"), getRuleVal("bflianjiehou")).get(0); + String bfqianzhui = getRuleVal("bfqianzhui"); + if (!bfqianzhui.isEmpty()) { + link = bfqianzhui + link; + } + vodItems.add(title + "$" + link); + } + playList.add(TextUtils.join("#", vodItems)); + } catch (Throwable th) { + th.printStackTrace(); + } + } + + } else { + playList.add(idInfo[0] + "$" + idInfo[2]); + } + + String cover = idInfo[1], title = idInfo[0], desc = "", category = "", area = "", year = "", remark = "", director = "", actor = ""; + + if (!getRuleVal("leixinqian").isEmpty() && !getRuleVal("leixinhou").isEmpty()) { + try { + category = subContent(html, getRuleVal("leixinqian"), getRuleVal("leixinhou")).get(0).replaceAll("\\s+", "").replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll("<[^>]*>", "").replaceAll("[(/>)<]", ""); + } catch (Exception e) { + SpiderDebug.log(e); + } + } + if (!getRuleVal("niandaiqian").isEmpty() && !getRuleVal("niandaihou").isEmpty()) { + try { + year = subContent(html, getRuleVal("niandaiqian"), getRuleVal("niandaihou")).get(0).replaceAll("\\s+", "").replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll("<[^>]*>", "").replaceAll("[(/>)<]", ""); + } catch (Exception e) { + SpiderDebug.log(e); + } + } + if (!getRuleVal("zhuangtaiqian").isEmpty() && !getRuleVal("zhuangtaihou").isEmpty()) { + try { + remark = subContent(html, getRuleVal("zhuangtaiqian"), getRuleVal("zhuangtaihou")).get(0); + } catch (Exception e) { + SpiderDebug.log(e); + } + } + if (!getRuleVal("zhuyanqian").isEmpty() && !getRuleVal("zhuyanhou").isEmpty()) { + try { + actor = subContent(html, getRuleVal("zhuyanqian"), getRuleVal("zhuyanhou")).get(0).replaceAll("\\s+", ""); + } catch (Exception e) { + SpiderDebug.log(e); + } + } + if (!getRuleVal("daoyanqian").isEmpty() && !getRuleVal("daoyanhou").isEmpty()) { + try { + director = subContent(html, getRuleVal("daoyanqian"), getRuleVal("daoyanhou")).get(0).replaceAll("\\s+", ""); + } catch (Exception e) { + SpiderDebug.log(e); + } + } + if (!getRuleVal("juqingqian").isEmpty() && !getRuleVal("juqinghou").isEmpty()) { + try { + desc = subContent(html, getRuleVal("juqingqian"), getRuleVal("juqinghou")).get(0); + } catch (Exception e) { + SpiderDebug.log(e); + } + } + JSONObject vod = new JSONObject(); + vod.put("vod_id", ids.get(0)); + vod.put("vod_name", title); + vod.put("vod_pic", cover); + vod.put("type_name", category); + vod.put("vod_year", year); + vod.put("vod_area", area); + vod.put("vod_remarks", remark); + vod.put("vod_actor", actor); + vod.put("vod_director", director); + vod.put("vod_content", desc); + ArrayList playFrom = new ArrayList<>(); + String xlparseContent = html; + if(getRuleVal("xlbiaotiqian").isEmpty() && getRuleVal("xlbiaotihou").isEmpty()){ + + for (int i = 0; i < playList.size(); i++) { + playFrom.add("播放列表" + (i + 1)); + } + }else{ + + boolean xlshifouercijiequ = getRuleVal("xlshifouercijiequ").equals("1"); + if (xlshifouercijiequ) { + String xljiequqian = getRuleVal("xljiequqian"); + String xljiequhou = getRuleVal("xljiequhou"); + xlparseContent = subContent(html, xljiequqian, xljiequhou).get(0); + } + + String xljiequshuzuqian = getRuleVal("xljiequshuzuqian"); + String xljiequshuzuhou = getRuleVal("xljiequshuzuhou"); + ArrayList xljiequContents = subContent(xlparseContent, xljiequshuzuqian, xljiequshuzuhou); + for (int i = 0; i < playList.size(); i++) { + try { + String xltitle = subContent(xljiequContents.get(i), getRuleVal("xlbiaotiqian"), getRuleVal("xlbiaotihou")).get(0); + playFrom.add(xltitle); + } catch (Throwable th) { + th.printStackTrace(); + break; + } + } + + } + String vod_play_from = TextUtils.join("$$$", playFrom); + String vod_play_url = TextUtils.join("$$$", playList); + vod.put("vod_play_from", vod_play_from); + vod.put("vod_play_url", vod_play_url); + + JSONObject result = new JSONObject(); + JSONArray list = new JSONArray(); + list.put(vod); + result.put("list", list); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + @Override + public String playerContent(String flag, String id, List vipFlags) { + try { + fetchRule(); + String webUrl = id.startsWith("x:") ? id.substring(2) : getRuleVal("url") + id; + JSONObject result = new JSONObject(); + result.put("parse", 1); + result.put("playUrl", ""); + result.put("url", webUrl); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + @Override + public String searchContent(String key, boolean quick) { + try { + fetchRule(); + boolean ssmoshiJson = getRuleVal("ssmoshi").equals("0"); + String webUrlTmp = getRuleVal("url") + getRuleVal("sousuoqian") + key + getRuleVal("sousuohou"); + String webUrl = webUrlTmp.split(";")[0]; + String webContent = webUrlTmp.contains(";post") ? fetchPost(webUrl) : fetch(webUrl); + JSONObject result = new JSONObject(); + JSONArray videos = new JSONArray(); + if (ssmoshiJson) { + JSONObject data = new JSONObject(webContent); + JSONArray vodArray = data.getJSONArray("list"); + for (int j = 0; j < vodArray.length(); j++) { + JSONObject vod = vodArray.getJSONObject(j); + String name = vod.optString(getRuleVal("jsname")).trim(); + String id = vod.optString(getRuleVal("jsid")).trim(); + String pic = vod.optString(getRuleVal("jspic")).trim(); + pic = Misc.fixUrl(webUrl, pic); + String link = getRuleVal("sousuohouzhui") + id; + link = getRuleVal("ssljqianzhui").isEmpty() ? (link + getRuleVal("ssljhouzhui")) : ("x:" + getRuleVal("ssljqianzhui")) + link + getRuleVal("ssljhouzhui"); + JSONObject v = new JSONObject(); + v.put("vod_id", name + "$$$" + pic + "$$$" + link); + v.put("vod_name", name); + v.put("vod_pic", pic); + v.put("vod_remarks", ""); + videos.put(v); + } + } else { + String parseContent = webContent; + boolean shifouercijiequ = getRuleVal("sousuoshifouercijiequ").equals("1"); + if (shifouercijiequ) { + String jiequqian = getRuleVal("ssjiequqian"); + String jiequhou = getRuleVal("ssjiequhou"); + parseContent = subContent(webContent, jiequqian, jiequhou).get(0); + } + String jiequshuzuqian = getRuleVal("ssjiequshuzuqian"); + String jiequshuzuhou = getRuleVal("ssjiequshuzuhou"); + ArrayList jiequContents = subContent(parseContent, jiequshuzuqian, jiequshuzuhou); + for (int i = 0; i < jiequContents.size(); i++) { + try { + String jiequContent = jiequContents.get(i); + String title = subContent(jiequContent, getRuleVal("ssbiaotiqian"), getRuleVal("ssbiaotihou")).get(0); + String pic = subContent(jiequContent, getRuleVal("sstupianqian"), getRuleVal("sstupianhou")).get(0); + pic = Misc.fixUrl(webUrl, pic); + String link = subContent(jiequContent, getRuleVal("sslianjieqian"), getRuleVal("sslianjiehou")).get(0); + link = getRuleVal("ssljqianzhui").isEmpty() ? (link + getRuleVal("ssljhouzhui")) : ("x:" + getRuleVal("ssljqianzhui")) + link + getRuleVal("ssljhouzhui"); + String remark = ""; + if (!getRuleVal("ssfubiaotiqian").isEmpty() && !getRuleVal("ssfubiaotihou").isEmpty()) { + try { + remark = subContent(jiequContent, getRuleVal("ssfubiaotiqian"), getRuleVal("ssfubiaotihou")).get(0).replaceAll("\\s+", "").replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll("<[^>]*>", "").replaceAll("[(/>)<]", ""); + } catch (Exception e) { + SpiderDebug.log(e); + } + } + JSONObject v = new JSONObject(); + v.put("vod_id", title + "$$$" + pic + "$$$" + link); + v.put("vod_name", title); + v.put("vod_pic", pic); + v.put("vod_remarks", remark); + videos.put(v); + } catch (Throwable th) { + th.printStackTrace(); + break; + } + } + } + result.put("list", videos); + return result.toString(); + } catch ( + Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + protected String ext = null; + protected JSONObject rule = null; + + protected void fetchRule() { + if (rule == null) { + if (ext != null) { + try { + if (ext.startsWith("http")) { + String json = OkHttpUtil.string(ext, null); + rule = new JSONObject(json); + } else { + rule = new JSONObject(ext); + } + } catch (JSONException e) { + } + } + } + } + + protected String fetch(String webUrl) { + SpiderDebug.log(webUrl); + return OkHttpUtil.string(webUrl, getHeaders(webUrl)).replaceAll("\r|\n", ""); + } + + protected String fetchPost(String webUrl) { + SpiderDebug.log(webUrl); + OKCallBack.OKCallBackString callBack = new OKCallBack.OKCallBackString() { + @Override + protected void onFailure(Call call, Exception e) { + + } + + @Override + protected void onResponse(String response) { + } + }; + OkHttpUtil.post(OkHttpUtil.defaultClient(), webUrl, callBack); + return callBack.getResult().replaceAll("\r|\n", ""); + } + + private String getRuleVal(String key, String defaultVal) { + String v = rule.optString(key); + if (v.isEmpty() || v.equals("空")) + return defaultVal; + return v; + } + + private String getRuleVal(String key) { + return getRuleVal(key, ""); + } + + private ArrayList subContent(String content, String startFlag, String endFlag) { + ArrayList result = new ArrayList<>(); + if (startFlag.isEmpty() && endFlag.isEmpty()) { + result.add(content); + return result; + } + try { + Pattern pattern = Pattern.compile(escapeExprSpecialWord(startFlag) + "(.*?)" + escapeExprSpecialWord(endFlag)); + Matcher matcher = pattern.matcher(content); + while (matcher.find()) { + result.add(matcher.group(1)); + } + } catch (Throwable th) { + th.printStackTrace(); + } + return result; + } + + String escapeExprSpecialWord(String regexStr) { + if (!regexStr.isEmpty()) { + String[] fbsArr = {"\\", "$", "(", ")", "*", "+", ".", "[", "]", "?", "^", "{", "}", "|"}; + for (String key : fbsArr) { + if (regexStr.contains(key)) { + regexStr = regexStr.replace(key, "\\" + key); + } + } + } + return regexStr; + } + + //修复软件不支持的格式无法嗅探的问题 + @Override + public boolean manualVideoCheck() { + return true; + } + + private String[] videoFormatList = new String[]{".m3u8", ".mp4", ".mpeg", ".flv", ".m4a",".mp3",".wma",".wmv"}; + + @Override + public boolean isVideoFormat(String url) { + url = url.toLowerCase(); + if (url.contains("=http") || url.contains("=https%3a%2f") || url.contains("=http%3a%2f")) { + return false; + } + for (String format : videoFormatList) { + if (url.contains(format)) { + return true; + } + } + return false; + } +} diff --git a/app/src/main/java/com/github/catvod/spider/XYQBiu.java b/app/src/main/java/com/github/catvod/spider/XYQBiu.java new file mode 100644 index 00000000..2a8fdf32 --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/XYQBiu.java @@ -0,0 +1,1019 @@ +package com.github.catvod.spider; + +import android.content.Context; +import android.text.TextUtils; +import android.util.Base64; + +import com.github.catvod.crawler.Spider; +import com.github.catvod.crawler.SpiderDebug; +import com.github.catvod.utils.Misc; +import com.github.catvod.utils.okhttp.OKCallBack; +import com.github.catvod.utils.okhttp.OkHttpUtil; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.select.Elements; + +import java.net.InetAddress; +import java.net.URLDecoder; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import okhttp3.Call; +import okhttp3.Headers; +import okhttp3.Response; + +public class XYQBiu extends Spider { + +// private String btcookie = ""; + + @Override + public void init(Context context) { + super.init(context); + } + + public void init(Context context, String extend) { + super.init(context, extend); + this.ext = extend; + } + + @Override + public String homeContent(boolean filter) { + try { + fetchRule(); + JSONObject result = new JSONObject(); + JSONArray classes = new JSONArray(); + + String[] fenleis = getRuleVal("class_name", "").split("&"); + String[] fenleisval = getRuleVal("class_value", "").split("&"); + for (int i = 0; i < fenleis.length; i++) { + JSONObject fenjson = new JSONObject(); + fenjson.put("type_id", fenleisval[i].replaceAll("&&", "&")); + fenjson.put("type_name", fenleis[i]); + classes.put(fenjson); + } + result.put("class", classes); + String getclan = getRuleVal("filterdata", ""); + InetAddress addr = InetAddress.getLocalHost(); + String locadd = "http://" + addr.getHostAddress() + ":9978/file/"; + String filepath = null; + JSONObject filterdata = null; + if (getclan.startsWith("clan://") || getclan.startsWith("http")) { + if (getclan.startsWith("clan://")) { + if (getclan.startsWith("clan://localhost/")) { + filepath = getclan.replace("clan://localhost/", locadd); + } else { + filepath = getclan.replace("clan://", locadd); + } + } else { + filepath = getclan; + } + try { + String filtejson = OkHttpUtil.string(filepath, null); + filterdata = new JSONObject(filtejson); + } catch ( + Exception e) { + SpiderDebug.log(e); + } + } else { + filterdata = rule.optJSONObject("filterdata"); + } + if (filter && filterdata != null) { + result.put("filters", filterdata); + } + return result.toString(); + } catch ( + Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + protected HashMap getHeaders(String url) { + HashMap headers = new HashMap<>(); + String ua = getRuleVal("UserAgent", "okhttp/3.12.11").trim(); + if (ua.isEmpty()) { + ua = "okhttp/3.12.11"; + } else if (ua.equals("PC_UA")) { + ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36"; + } else if (ua.equals("MOBILE_UA")) { + ua = "Mozilla/5.0 (Linux; Android 11; Mi 10 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.152 Mobile Safari/537.36"; + } + headers.put("User-Agent", ua); + + if (!getRuleVal("Referer").isEmpty()) { + String webref = getRuleVal("Referer").trim(); + if (webref.startsWith("http")) { + headers.put("Referer", webref); + } + } + return headers; + } + + @Override + public String homeVideoContent() { + try { + fetchRule(); + if (getRuleVal("homeContent").equals("1")) { + JSONArray videos = new JSONArray(); + String[] fenleis = getRuleVal("class_value", "").split("&"); + for (String fenlei : fenleis) { + JSONObject data = category(fenlei.replaceAll("&&", "&"), "1", false, new HashMap<>()); + if (data != null) { + JSONArray vids = data.optJSONArray("list"); + if (vids != null) { + for (int i = 0; i < vids.length() && i < 5; i++) { + videos.put(vids.getJSONObject(i)); + } + } + } + if (videos.length() >= 20) + break; + } + JSONObject result = new JSONObject(); + result.put("list", videos); + return result.toString(); + } + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + private JSONObject category(String tid, String pg, boolean filter, HashMap extend) { + try { + fetchRule(); + String fistpg = String.valueOf(Integer.parseInt(getRuleVal("firstpage", "1"))); + ////页码 + if (fistpg.equals("0")) { + pg = String.valueOf(Integer.parseInt(pg) - 1 * 1); + } else { + pg = String.valueOf(Integer.parseInt(pg) - 1 + Integer.parseInt(getRuleVal("firstpage", "1"))); + } + //web链接 + String webUrl = getRuleVal("class_url"); + if (webUrl.contains("firstPage=")) { + if (pg.equals("1")) { + webUrl = webUrl.split("\\[firstPage=")[1].split("\\]")[0]; + } else { + webUrl = webUrl.split("\\[firstPage=")[0]; + } + } + //筛选开始 + if (filter && extend != null && extend.size() > 0) { + for (Iterator it = extend.keySet().iterator(); it.hasNext(); ) { + String key = it.next(); + String value = extend.get(key); + if (value.length() > 0) { + webUrl = webUrl.replace("{" + key + "}", URLEncoder.encode(value)); + } + } + } + webUrl = webUrl.replaceAll("\\{cateId\\}", tid).replaceAll("\\{catePg\\}", pg); + Matcher m = Pattern.compile("\\{(.*?)\\}").matcher(webUrl); + while (m.find()) { + String n = m.group(0).replace("{", "").replace("}", ""); + webUrl = webUrl.replace(m.group(0), "").replace("/" + n + "/", ""); + } + //筛选结束 + String html = null; +// String btwatUrl = ""; + //取网页 + if (webUrl.contains(";post")) { + OKCallBack.OKCallBackString callBack = new OKCallBack.OKCallBackString() { + + public void onResponse(String response) { + } + + @Override + protected void onFailure(Call call, Exception exc) { + } + }; + String posturl = webUrl.split("\\?")[0].replaceAll("??", "?").trim(); + String postbody = webUrl.split("\\?")[1].split(";")[0].replaceAll("??", "?").trim(); + if (!postbody.isEmpty() && postbody != null) { + if (postbody.startsWith("{") && postbody.endsWith("}")) { + JSONObject jsbody = new JSONObject(postbody); + OkHttpUtil.postJson(OkHttpUtil.defaultClient(), posturl, jsbody.toString(), getHeaders(posturl), callBack); + } else { + LinkedHashMap params = new LinkedHashMap(); + String[] userbody = postbody.split("&"); + for (String userbd : userbody) { + int loca = userbd.indexOf("="); + params.put(userbd.substring(0, loca), userbd.substring(loca + 1)); + } + OkHttpUtil.post(OkHttpUtil.defaultClient(), posturl, params, getHeaders(posturl), callBack); + } + } else { + OkHttpUtil.post(OkHttpUtil.defaultClient(), posturl, null, getHeaders(posturl), callBack); + } + html = convertUnicodeToCh(callBack.getResult().replaceAll("\r|\n", "")); +// btwatUrl = posturl; + } else { + html = convertUnicodeToCh(fetch(webUrl)); +// btwatUrl = webUrl; + } + +// html = jumpbtwaf(btwatUrl,html);//5秒盾 + String parseContent = html; + String mark = ""; + String pic = ""; + boolean fenleiJson = getRuleVal("cat_mode").equals("0"); + boolean picneetproxy = getRuleVal("PicNeedProxy").equals("1"); + + JSONArray videos = new JSONArray(); + JSONObject result = new JSONObject(); + if (fenleiJson) { + JSONObject data = new JSONObject(parseContent); + JSONArray vodArray = null; + String[] keylen = getRuleVal("catjsonlist", "data").split("\\."); + if (keylen.length == 1) { + vodArray = data.getJSONArray(keylen[0]); + } else if (keylen.length == 2) { + vodArray = data.getJSONObject(keylen[0]).getJSONArray(keylen[1]); + } else if (keylen.length == 3) { + vodArray = data.getJSONObject(keylen[0]).getJSONObject(keylen[1]).getJSONArray(keylen[2]); + } + //JSONArray vodArray = data.getJSONArray(getRuleVal("catjsonlist","list")); + for (int j = 0; j < vodArray.length(); j++) { + try { + JSONObject vod = vodArray.getJSONObject(j); + String name = vod.optString(getRuleVal("catjsonname")).trim(); + String id = vod.optString(getRuleVal("catjsonid")).trim(); + id = getRuleVal("cat_prefix", "") + id + getRuleVal("cat_suffix", ""); + if (!getRuleVal("catjsonpic").isEmpty()) { + try { + pic = vod.optString(getRuleVal("catjsonpic")).trim(); + pic = Misc.fixUrl(webUrl, pic); + if (picneetproxy) { + pic = fixCover(pic, webUrl); + } + } catch (Exception e) { + SpiderDebug.log(e); + } + } + try { + mark = vod.optString(getRuleVal("catjsonstitle")).trim(); + } catch (Exception e) { + SpiderDebug.log(e); + } + JSONObject v = new JSONObject(); + v.put("vod_id", name + "$$$" + pic + "$$$" + id); + v.put("vod_name", name); + v.put("vod_pic", pic); + v.put("vod_remarks", mark); + videos.put(v); + } catch (Exception e) { + SpiderDebug.log(e); + } + } + } else { + boolean shifouercijiequ = getRuleVal("cat_YN_twice").equals("1"); + if (shifouercijiequ) { + String jiequqian = getRuleVal("cat_twice_pre"); + String jiequhou = getRuleVal("cat_twice_suf"); + parseContent = subContent(html, jiequqian, jiequhou).get(0); + } + String jiequshuzuqian = getRuleVal("cat_arr_pre"); + String jiequshuzuhou = getRuleVal("cat_arr_suf"); + + ArrayList jiequContents = subContent(parseContent, jiequshuzuqian, jiequshuzuhou); + for (int i = 0; i < jiequContents.size(); i++) { + try { + String jiequContent = jiequContents.get(i); + String title = subContent(jiequContent, getRuleVal("cat_title").split("&&")[0], getRuleVal("cat_title").split("&&")[1]).get(0).replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll("<[^>]*>", "").replaceAll("[(/>)<]", ""); + if (!getRuleVal("cat_pic").isEmpty()) { + try { + pic = subContent(jiequContent, getRuleVal("cat_pic").split("&&")[0], getRuleVal("cat_pic").split("&&")[1]).get(0); + pic = Misc.fixUrl(webUrl, pic); + if (picneetproxy) { + pic = fixCover(pic, webUrl); + } + } catch (Exception e) { + SpiderDebug.log(e); + } + } + String link = subContent(jiequContent, getRuleVal("cat_url").split("&&")[0], getRuleVal("cat_url").split("&&")[1]).get(0); + link = getRuleVal("cat_prefix", "") + link + getRuleVal("cat_suffix", ""); + if (!getRuleVal("cat_subtitle").isEmpty()) { + try { + mark = subContent(jiequContent, getRuleVal("cat_subtitle").split("&&")[0], getRuleVal("cat_subtitle").split("&&")[1]).get(0).replaceAll("\\s+", "").replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll("<[^>]*>", "").replaceAll("[(/>)<]", ""); + } catch (Exception e) { + SpiderDebug.log(e); + } + } + JSONObject v = new JSONObject(); + v.put("vod_id", title + "$$$" + pic + "$$$" + link); + v.put("vod_name", title); + v.put("vod_pic", pic); + v.put("vod_remarks", mark); + videos.put(v); + } catch (Throwable th) { + th.printStackTrace(); + break; + } + } + } + + result.put("page", pg); + result.put("pagecount", Integer.MAX_VALUE); + result.put("limit", 90); + result.put("total", Integer.MAX_VALUE); + result.put("list", videos); + return result; + } catch (Exception e) { + SpiderDebug.log(e); + } + return null; + } + + @Override + public String categoryContent(String tid, String pg, boolean filter, HashMap extend) { + JSONObject obj = category(tid, pg, filter, extend); + return obj != null ? obj.toString() : ""; + } + + @Override + public String detailContent(List ids) { + try { + fetchRule(); + String[] idInfo = ids.get(0).split("\\$\\$\\$"); + String webUrl = idInfo[2]; + + String cover = idInfo[1], vodtitle = idInfo[0], area = ""; + String desc = ""; + String director = ""; + String actor = ""; + String remark = ""; + String year = ""; + String category = ""; + + ArrayList playList = new ArrayList<>(); + ArrayList playFrom = new ArrayList<>(); + boolean isMagnet = false; + boolean zhijiebofang = getRuleVal("force_play").equals("1"); + boolean picneetproxy = getRuleVal("PicNeedProxy").equals("1"); + try { + if (picneetproxy) { + cover = fixCover(cover, webUrl); + } + } catch (Exception e) { + SpiderDebug.log(e); + } + if (zhijiebofang) { + //直接播放 + playFrom.add(idInfo[0]); + playList.add(idInfo[0] + "$" + idInfo[2]); + if (idInfo[2].startsWith("magnet")) { + isMagnet = true; + } + } else { + //非直接播放 + String html = fetch(webUrl).trim(); +// html = jumpbtwaf(webUrl,html);//5秒盾 + html = convertUnicodeToCh(html); + String parseContent = html; + boolean bfshifouercijiequ = getRuleVal("list_YN_twice").equals("1"); + if (bfshifouercijiequ) { + String jiequqian = getRuleVal("list_twice_pre"); + String jiequhou = getRuleVal("list_twice_suf"); + parseContent = subContent(html, jiequqian, jiequhou).get(0); + } + + String jiequshuzuqian = getRuleVal("list_arr_pre"); + String jiequshuzuhou = getRuleVal("list_arr_suf"); + boolean bfyshifouercijiequ = getRuleVal("epi_YN_twice").equals("1"); + ArrayList jiequContents = subContent(parseContent, jiequshuzuqian, jiequshuzuhou); + for (int i = 0; i < jiequContents.size(); i++) { + try { + String jiequContent = jiequContents.get(i); + String parseJqContent = bfyshifouercijiequ ? subContent(jiequContent, getRuleVal("epi_twice_pre"), getRuleVal("epi_twice_suf")).get(0) : jiequContent; + ArrayList lastParseContents = subContent(parseJqContent, getRuleVal("epi_arr_pre"), getRuleVal("epi_arr_suf")); + List vodItems = new ArrayList<>(); + for (int j = 0; j < lastParseContents.size(); j++) { + String title = subContent(lastParseContents.get(j), getRuleVal("epi_title").split("&&")[0], getRuleVal("epi_title").split("&&")[1]).get(0); + String link = subContent(lastParseContents.get(j), getRuleVal("epi_url").split("&&")[0], getRuleVal("epi_url").split("&&")[1]).get(0); + link = getRuleVal("epiurl_prefix", "") + link + getRuleVal("epiurl_suffix", ""); + vodItems.add(title + "$" + link); + if (link.startsWith("magnet")) { + isMagnet = true; + break; + } + } + playList.add(TextUtils.join("#", vodItems)); + if (isMagnet) { + break; + } + } catch (Throwable th) { + th.printStackTrace(); + break; + } + } + + //线路代码 + String xlparseContent = html; + //没有线路规则代码时 + if (!getRuleVal("tab_title").isEmpty() && !getRuleVal("tab_arr_pre").isEmpty()) { + //代码取线路名 + boolean xlshifouercijiequ = getRuleVal("tab_YN_twice").equals("1"); + if (xlshifouercijiequ) { + String xljiequqian = getRuleVal("tab_twice_pre"); + String xljiequhou = getRuleVal("tab_twice_suf"); + xlparseContent = subContent(html, xljiequqian, xljiequhou).get(0); + } + + String xljiequshuzuqian = getRuleVal("tab_arr_pre"); + String xljiequshuzuhou = getRuleVal("tab_arr_suf"); + ArrayList xljiequContents = subContent(xlparseContent, xljiequshuzuqian, xljiequshuzuhou); + for (int i = 0; i < playList.size(); i++) { + try { + String xltitle = subContent(xljiequContents.get(i), getRuleVal("tab_title").split("&&")[0], getRuleVal("tab_title").split("&&")[1]).get(0).replaceAll("\\s+", "").replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll("<[^>]*>", "").replaceAll("[(/>)<]", ""); + playFrom.add(xltitle); + } catch (Exception e) { + SpiderDebug.log(e); + } + } + } else { + for (int i = 0; i < playList.size(); i++) { + playFrom.add("播放列表" + (i + 1)); + } + } + + if (!getRuleVal("proj_actor").isEmpty()) { + try { + actor = subContent(html, getRuleVal("proj_actor").split("&&")[0], getRuleVal("proj_actor").split("&&")[1]).get(0).replaceAll("\\s+", ""); + } catch (Exception e) { + SpiderDebug.log(e); + } + } + if (!getRuleVal("proj_plot").isEmpty()) { + try { + desc = subContent(html, getRuleVal("proj_plot").split("&&")[0], getRuleVal("proj_plot").split("&&")[1]).get(0); + } catch (Exception e) { + SpiderDebug.log(e); + } + } + } + //非直接播放结束 + JSONObject vod = new JSONObject(); + vod.put("vod_id", ids.get(0)); + vod.put("vod_name", vodtitle); + vod.put("vod_pic", cover); + vod.put("type_name", category); + vod.put("vod_year", year); + vod.put("vod_area", area); + vod.put("vod_remarks", remark); + vod.put("vod_actor", actor); + vod.put("vod_director", director); + vod.put("vod_content", desc); + + String vod_play_from = TextUtils.join("$$$", playFrom); + String vod_play_url = TextUtils.join("$$$", playList); + vod.put("vod_play_from", vod_play_from); + vod.put("vod_play_url", vod_play_url); + + JSONObject result = new JSONObject(); + JSONArray list = new JSONArray(); + list.put(vod); + result.put("list", list); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + + @Override + public String playerContent(String flag, String id, List vipFlags) { + try { + fetchRule(); + String webUrl = id; + //WebView嗅探请求头 + JSONObject webheaders = new JSONObject(); + String webua = getRuleVal("UserAgent", "okhttp/3.12.11").trim(); + if (webua.isEmpty()) { + webua = "okhttp/3.12.11"; + } else if (webua.equals("PC_UA")) { + webua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36"; + } else if (webua.equals("MOBILE_UA")) { + webua = "Mozilla/5.0 (Linux; Android 11; Mi 10 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.152 Mobile Safari/537.36"; + } + webheaders.put("User-Agent", webua); + + if (!getRuleVal("Referer").isEmpty()) { + String webref = getRuleVal("Referer").trim(); + if (webref.startsWith("http")) { + webheaders.put("Referer", webref); + } else if (webref.equals("WebView")) { + webheaders.put("Referer", webUrl); + } + } + //嗅探请求头结束 + + JSONObject result = new JSONObject(); + boolean enforceplay = (getRuleVal("force_play").equals("1") || getRuleVal("force_play").equals("2")); + //强制视频链接 + if (enforceplay) { + webUrl = getRuleVal("play_prefix", "") + webUrl + getRuleVal("play_suffix", ""); + //请求头代码 + if (!getRuleVal("play_header").isEmpty()) { + JSONObject uaresult = rule.optJSONObject("play_header"); + if (uaresult != null) { + result.put("header", uaresult.toString()); + } else { + String[] usera = getRuleVal("play_header").split("#"); + JSONObject strua = new JSONObject(); + for (String user : usera) { + String[] head = user.split("\\$"); + strua.put(head[0], " " + head[1]); + } + result.put("header", strua.toString()); + } + } else { + result.put("header", webheaders.toString()); + } + //视频格式识别 + if (webUrl.contains("#isVideo=true#") || Misc.isVideoFormat(webUrl)) { + if (webUrl.contains("#isVideo=true#")) { + webUrl = webUrl.replaceAll("#isVideo=true#", ""); + } + result.put("parse", 0); + result.put("playUrl", ""); + } else if (Misc.isVip(webUrl)) { + result.put("parse", 1); + result.put("jx", "1"); + result.put("url", webUrl); + return result.toString(); + } else { + //不是视频就转嗅探 + result.put("parse", 1); + result.put("playUrl", ""); + } + result.put("url", webUrl); + return result.toString(); + } + //直接播放代码结束 + + //普通链接开始 + //分析mac链接解析 + boolean enMacPlayer = getRuleVal("Anal_MacPlayer").equals("1"); + String videoUrl = null; + String fromflag = null; + + if (enMacPlayer && enforceplay == false) { + try { + Document doc = Jsoup.parse(fetch(webUrl)); + Elements allScript = doc.select("script"); + for (int i = 0; i < allScript.size(); i++) { + String scContent = allScript.get(i).html().trim(); + if (scContent.startsWith("var player_")) { + int start = scContent.indexOf('{'); + int end = scContent.lastIndexOf('}') + 1; + String json = scContent.substring(start, end); + JSONObject player = new JSONObject(json); + String videoUrlTmp = player.getString("url"); + + fromflag = player.getString("from"); + if (player.has("encrypt")) { + int encrypt = player.getInt("encrypt"); + if (encrypt == 1) { + videoUrlTmp = URLDecoder.decode(videoUrlTmp); + } else if (encrypt == 2) { + videoUrlTmp = new String(Base64.decode(videoUrlTmp, Base64.DEFAULT)); + videoUrlTmp = URLDecoder.decode(videoUrlTmp); + } + } + videoUrl = videoUrlTmp; + break; + } + } + } catch (Exception e) { + SpiderDebug.log(e); + } + } + + + //视频不为null时进行处理解析 + if (videoUrl != null) { + if (Misc.isVip(videoUrl)) { // 使用jx:1 + try { + result.put("parse", 1); + result.put("jx", "1"); + result.put("url", videoUrl); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + } else if (fromflag.matches("duoduozy|ddzy")) { + + result.put("header", webheaders.toString()); + result.put("parse", 1); + result.put("playUrl", ""); + result.put("url", webUrl); + return result.toString(); + } else if (Misc.isVideoFormat(videoUrl)) { + try { + result.put("parse", 0); + result.put("playUrl", ""); + result.put("url", videoUrl); + result.put("header", ""); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + } + } + //视频不为null代码结束 + + result.put("header", webheaders.toString()); + result.put("parse", 1); + result.put("playUrl", ""); + result.put("url", webUrl); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + @Override + public boolean manualVideoCheck() { + fetchRule(); + if (getRuleVal("ManualSniffer").equals("1")) { + return true; + } else { + return false; + } + } + + //private String[] videoFormatList = getRuleVal("videoformat",".m3u8#.mp4#.flv").split("#"); + + @Override + public boolean isVideoFormat(String url) { + fetchRule(); + String[] videoFormatList = getRuleVal("VideoFormat", ".m3u8#.mp4#.flv#.mp3#.m4a").split("#"); + String[] videoFilterList = getRuleVal("VideoFilter", "=http#.html").split("#"); + url = url.toLowerCase(); + + if (url.contains("=http") || url.contains("=https") || url.contains("=https%3a%2f") || url.contains("=http%3a%2f")) { + return false; + } + for (String format : videoFormatList) { + if (url.contains(format)) { + for (String videoFilter : videoFilterList) { + if (url.contains(videoFilter)) { + return false; + } + } + return true; + } + } + return false; + } + + @Override + public String searchContent(String key, boolean quick) { + try { + fetchRule(); + String webUrlTmp = getRuleVal("search_url").replaceAll("\\{wd\\}", key); + String webUrl = webUrlTmp.split(";")[0]; + String webContent = null; + + if (webUrlTmp.contains(";post")) { + OKCallBack.OKCallBackString callBack = new OKCallBack.OKCallBackString() { + + public void onResponse(String response) { + } + + @Override + protected void onFailure(Call call, Exception exc) { + } + }; + + String postbody = getRuleVal("sea_PtBody").replaceAll("\\{wd\\}", key).trim(); + if (!postbody.isEmpty() && postbody != null) { + if (postbody.startsWith("{") && postbody.endsWith("}")) { + JSONObject jsbody = new JSONObject(postbody); + OkHttpUtil.postJson(OkHttpUtil.defaultClient(), webUrl, jsbody.toString(), getHeaders(webUrl), callBack); + } else { + LinkedHashMap params = new LinkedHashMap(); + //params.put(postbody, key); + String[] userbody = postbody.split("&"); + for (String userbd : userbody) { + int loca = userbd.indexOf("="); + //int end = userbd.lastIndexOf('=') + 1; + //String[] bdhead = userbd.split("="); + params.put(userbd.substring(0, loca), userbd.substring(loca + 1)); + } + OkHttpUtil.post(OkHttpUtil.defaultClient(), webUrl, params, getHeaders(webUrl), callBack); + } + } else { + OkHttpUtil.post(OkHttpUtil.defaultClient(), webUrl, null, getHeaders(webUrl), callBack); + } + webContent = convertUnicodeToCh(callBack.getResult().replaceAll("\r|\n", "")); + } else { + webContent = convertUnicodeToCh(fetch(webUrl)); + } + + String mark = ""; + String pic = ""; + boolean ssmoshiJson = getRuleVal("search_mode").equals("0"); + boolean picneetproxy = getRuleVal("PicNeedProxy").equals("1"); + + JSONObject result = new JSONObject(); + JSONArray videos = new JSONArray(); + if (ssmoshiJson) { + JSONObject data = new JSONObject(webContent); + JSONArray vodArray = null; + String[] keylen = getRuleVal("jsonlist", "list").split("\\."); + if (keylen.length == 1) { + vodArray = data.getJSONArray(keylen[0]); + } else if (keylen.length == 2) { + vodArray = data.getJSONObject(keylen[0]).getJSONArray(keylen[1]); + } else if (keylen.length == 3) { + vodArray = data.getJSONObject(keylen[0]).getJSONObject(keylen[1]).getJSONArray(keylen[2]); + } + //JSONArray vodArray = data.getJSONArray(getRuleVal("jsonlist","list")); + for (int j = 0; j < vodArray.length(); j++) { + try { + JSONObject vod = vodArray.getJSONObject(j); + String name = vod.optString(getRuleVal("jsonname")).trim(); + String id = vod.optString(getRuleVal("jsonid")).trim(); + id = getRuleVal("cat_prefix", "") + id + getRuleVal("cat_suffix", ""); + if (!getRuleVal("jsonpic").isEmpty()) { + try { + pic = vod.optString(getRuleVal("jsonpic")).trim(); + pic = Misc.fixUrl(webUrl, pic); + if (picneetproxy) { + pic = fixCover(pic, webUrl); + } + } catch (Exception e) { + SpiderDebug.log(e); + } + } + try { + mark = vod.optString(getRuleVal("jsonstitle")).trim(); + } catch (Exception e) { + SpiderDebug.log(e); + } + JSONObject v = new JSONObject(); + v.put("vod_id", name + "$$$" + pic + "$$$" + id); + v.put("vod_name", name); + v.put("vod_pic", pic); + v.put("vod_remarks", mark); + videos.put(v); + } catch (Exception e) { + SpiderDebug.log(e); + } + } + } else { + String parseContent = webContent; + boolean shifouercijiequ = getRuleVal("sea_YN_twice").equals("1"); + if (shifouercijiequ) { + String jiequqian = getRuleVal("sea_twice_pre"); + String jiequhou = getRuleVal("sea_twice_suf"); + parseContent = subContent(webContent, jiequqian, jiequhou).get(0); + } + String jiequshuzuqian = getRuleVal("sea_arr_pre"); + String jiequshuzuhou = getRuleVal("sea_arr_suf"); + ArrayList jiequContents = subContent(parseContent, jiequshuzuqian, jiequshuzuhou); + for (int i = 0; i < jiequContents.size(); i++) { + try { + String jiequContent = jiequContents.get(i); + String title = subContent(jiequContent, getRuleVal("sea_title").split("&&")[0], getRuleVal("sea_title").split("&&")[1]).get(0).replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll("<[^>]*>", "").replaceAll("[(/>)<]", ""); + if (!getRuleVal("sea_pic").isEmpty()) { + try { + pic = subContent(jiequContent, getRuleVal("sea_pic").split("&&")[0], getRuleVal("sea_pic").split("&&")[1]).get(0); + pic = Misc.fixUrl(webUrl, pic); + if (picneetproxy) { + pic = fixCover(pic, webUrl); + } + } catch (Exception e) { + SpiderDebug.log(e); + } + } + String link = subContent(jiequContent, getRuleVal("sea_url").split("&&")[0], getRuleVal("sea_url").split("&&")[1]).get(0); + link = getRuleVal("search_prefix") + link + getRuleVal("search_suffix"); + try { + mark = subContent(jiequContent, getRuleVal("sea_subtitle").split("&&")[0], getRuleVal("sea_subtitle").split("&&")[1]).get(0).replaceAll("\\s+", "").replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll("<[^>]*>", "").replaceAll("[(/>)<]", ""); + } catch (Exception e) { + SpiderDebug.log(e); + } + JSONObject v = new JSONObject(); + v.put("vod_id", title + "$$$" + pic + "$$$" + link); + v.put("vod_name", title); + v.put("vod_pic", pic); + v.put("vod_remarks", mark); + videos.put(v); + } catch (Throwable th) { + th.printStackTrace(); + break; + } + } + } + result.put("list", videos); + return result.toString(); + } catch ( + Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + protected String ext = null; + protected JSONObject rule = null; + + protected void fetchRule() { + if (rule == null) { + if (ext != null) { + try { + if (ext.startsWith("http")) { + String json = OkHttpUtil.string(ext, null); + rule = new JSONObject(json); + } else { + rule = new JSONObject(ext); + } + } catch (JSONException e) { + } + } + } + } + +// protected String fetch(String webUrl) { +// SpiderDebug.log(webUrl); +// return OkHttpUtil.string(webUrl, getHeaders(webUrl)).replaceAll("\r|\n", ""); + +// } + + + private static String convertUnicodeToCh(String str) { + Pattern pattern = Pattern.compile("(\\\\u(\\w{4}))"); + Matcher matcher = pattern.matcher(str); + + // 迭代,将str中的所有unicode转换为正常字符 + while (matcher.find()) { + String unicodeFull = matcher.group(1); // 匹配出的每个字的unicode,比如\u67e5 + String unicodeNum = matcher.group(2); // 匹配出每个字的数字,比如\u67e5,会匹配出67e5 + + // 将匹配出的数字按照16进制转换为10进制,转换为char类型,就是对应的正常字符了 + char singleChar = (char) Integer.parseInt(unicodeNum, 16); + + // 替换原始字符串中的unicode码 + str = str.replace(unicodeFull, singleChar + ""); + } + return str; + } + + private String getRuleVal(String key, String defaultVal) { + String v = rule.optString(key); + if (v.isEmpty() || v.equals("空") || v.equals("&&")) + return defaultVal; + return v; + } + + private String getRuleVal(String key) { + return getRuleVal(key, ""); + } + + private ArrayList subContent(String content, String startFlag, String endFlag) { + ArrayList result = new ArrayList<>(); + if (startFlag.isEmpty() && endFlag.isEmpty()) { + result.add(content); + return result; + } + try { + Pattern pattern = Pattern.compile(escapeExprSpecialWord(startFlag) + "(.*?)" + escapeExprSpecialWord(endFlag)); + Matcher matcher = pattern.matcher(content); + while (matcher.find()) { + result.add(matcher.group(1).trim()); + } + } catch (Throwable th) { + th.printStackTrace(); + } + if (result.isEmpty()) result.add(""); + return result; + } + + public static String escapeExprSpecialWord(String keyword) { + if (!keyword.isEmpty()) { + String[] fbsArr = {"\\", "$", "(", ")", "*", "+", ".", "[", "]", "?", "^", "{", "}", "|"}; + for (String key : fbsArr) { + if (keyword.contains(key)) { + keyword = keyword.replace(key, "\\" + key); + } + } + } + return keyword; + } + + protected String fixCover(String cover, String site) { + try { + return "proxy://do=XYQBiu&site=" + site + "&pic=" + cover; + } catch (Exception e) { + SpiderDebug.log(e); + } + return cover; + } + + private static HashMap XYQPicHeader = null; + + public static Object[] loadPic(Map prmap) { + try { + //pic = new String(Base64.decode(pic, Base64.DEFAULT | Base64.URL_SAFE | Base64.NO_WRAP), "UTF-8"); + String site = prmap.get("site"); + String pic = prmap.get("pic"); + + if (XYQPicHeader == null) { + XYQPicHeader = new HashMap<>(); + XYQPicHeader.put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36"); + XYQPicHeader.put("referer", site); + } + OKCallBack.OKCallBackDefault callBack = new OKCallBack.OKCallBackDefault() { + @Override + protected void onFailure(Call call, Exception e) { + + } + + @Override + protected void onResponse(Response response) { + + } + }; + OkHttpUtil.get(OkHttpUtil.defaultClient(), pic, null, XYQPicHeader, callBack); + if (callBack.getResult().code() == 200) { + Headers headers = callBack.getResult().headers(); + String type = headers.get("Content-Type"); + if (type == null) { + type = "application/octet-stream"; + } + Object[] result = new Object[3]; + result[0] = 200; + result[1] = type; + System.out.println(pic); + System.out.println(type); + result[2] = callBack.getResult().body().byteStream(); + return result; + } + } catch (Throwable th) { + th.printStackTrace(); + } + return null; + } + + + protected String fetch(String webUrl) { + String html = OkHttpUtil.string(webUrl, getHeaders(webUrl)); + html = this.jumpbtwaf(webUrl, html); + return html.replaceAll("", "").replace("\r\n","").replace("\n",""); // 移除注释 + } + + protected String jumpbtwaf(String webUrl, String html) { + + try { + // 没有配置btwaf不执行下面的代码 + if (!rule.optBoolean("btwaf", false)) { + return html; + } + + for (int i = 0; i < 3; i++) { + if (html.contains("检测中") && html.contains("跳转中") && html.contains("btwaf")) { + String btwaf = subContent(html, "btwaf=", "\"").get(0); + String bturl = webUrl + "?btwaf=" + btwaf; + + Map> cookies = new HashMap<>(); + OkHttpUtil.string(bturl, getHeaders(webUrl), cookies); + for (Map.Entry> entry : cookies.entrySet()) { + if (entry.getKey().equals("set-cookie") || entry.getKey().equals("Set-Cookie")) { + String btcookie = TextUtils.join(";", entry.getValue()); + if (!rule.has("header")) { + rule.put("header", new JSONObject()); + } + rule.getJSONObject("header").put("cookie", btcookie); + break; + } + } + html = fetch(webUrl); + } + if (!html.contains("检测中") && !html.contains("btwaf")) { + return html; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return html; + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/github/catvod/spider/Yj1211.java b/app/src/main/java/com/github/catvod/spider/Yj1211.java new file mode 100644 index 00000000..5ef5e72a --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/Yj1211.java @@ -0,0 +1,398 @@ +package com.github.catvod.spider; + + +import android.content.Context; +import android.text.TextUtils; + +import com.github.catvod.crawler.Spider; +import com.github.catvod.crawler.SpiderDebug; +import com.github.catvod.net.OkHttp; + +import org.json.JSONArray; +import org.json.JSONObject; + +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +public class Yj1211 extends Spider { + + @Override + public void init(Context context) { + super.init(context); + } + + + @Override + public String homeContent(boolean filter) { + try { + + String srcurl = "http://live.yj1211.work/api/live/getRecommend?page=1&size=20"; + String srcOrignstr =""; + for(int i=0 ; i<3 ; i++){ + srcOrignstr = OkHttp.string(srcurl, getHeaders()); + if(srcOrignstr.length()>0){ + break; + }else{ + Thread.sleep(1000); + } + } + + JSONObject srcori = new JSONObject(srcOrignstr); + JSONArray srcoria = srcori.getJSONArray("data"); + + + JSONObject result = new JSONObject(); + JSONArray classes = new JSONArray(); + String catestr ="{\"推荐\":\"?\",\"斗鱼\":\"ByPlatform?platform=douyu&\",\"哔哩哔哩\":\"ByPlatform?platform=bilibili&\",\"虎牙\":\"ByPlatform?platform=huya&\",\"网易CC\":\"ByPlatform?platform=cc&\"}"; + JSONObject catedef = new JSONObject(catestr); + Iterator it = catedef.keys(); + while(it.hasNext()){ + JSONObject jsonObject = new JSONObject(); + String key =(String) it.next(); + jsonObject.put("type_name", key); + jsonObject.put("type_id", catedef.getString(key)); + classes.put(jsonObject); + } + result.put("class", classes); + + JSONObject filterConfig = new JSONObject(); + String geta ="http://live.yj1211.work/api/live/getAllAreas"; + String aaid = ""; + for(int i=0 ; i<3 ; i++){ + aaid = OkHttp.string(geta, getHeaders()); + if(aaid.length()>0){ + break; + }else{ + Thread.sleep(1000); + } + } + + JSONObject aido = new JSONObject(aaid); + JSONArray aidoa = aido.getJSONArray("data"); + JSONArray extendsAll = new JSONArray(); + for (int j=0 ; j< 13;j++){ + JSONObject newTypeExtend = new JSONObject(); + String typeName = aidoa.getJSONArray(j).getJSONObject(0).getString("typeName"); + newTypeExtend.put("key", "typeName" + j); + newTypeExtend.put("name", typeName); + JSONArray newTypeExtendKV = new JSONArray(); + int fg = Math.min(aidoa.getJSONArray(j).length(), 20); + JSONObject kv = new JSONObject(); + kv.put("n", "全部"); + kv.put("v", typeName + "=" + "all"); + newTypeExtendKV.put(kv); + for (int k=0 ; k< fg ; k++){ + kv = new JSONObject(); + String areaName = aidoa.getJSONArray(j).getJSONObject(k).getString("areaName"); + kv.put("n", areaName); + kv.put("v", typeName + "=" + areaName); + newTypeExtendKV.put(kv); + } + newTypeExtend.put("value", newTypeExtendKV); + extendsAll.put(newTypeExtend); + } + for (int i = 0 ; i < 5 ; i++){ + String typeId = classes.getJSONObject(i).getString("type_id"); + filterConfig.put(typeId, extendsAll); + } + + JSONArray videos = new JSONArray(); + int ch = Math.min(srcoria.length(), 10); + for (int i = 0; i < ch; i++) { + JSONObject srchome = new JSONObject(); + String platForm = srcoria.getJSONObject(i).getString("platForm"); + String rd = srcoria.getJSONObject(i).getString("roomId"); + String id = platForm + "&" + rd; + String name = srcoria.getJSONObject(i).getString("ownerName"); + String pic = srcoria.getJSONObject(i).getString("ownerHeadPic"); + String mark = srcoria.getJSONObject(i).getString("categoryName"); + srchome.put("vod_id", id); + srchome.put("vod_name", name); + srchome.put("vod_pic",pic); + srchome.put("vod_remarks", mark); + videos.put(srchome); + } + if (filter) { + result.put("filters", filterConfig); + } + result.put("list", videos); + return result.toString(); + } catch ( + Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + + @Override + public String categoryContent(String tid, String pg, boolean filter, HashMap extend) { + try { + String catt=""; + switch (tid) { + case "?": + catt = "all"; + break; + case "ByPlatform?platform=douyu&": + catt = "douyu"; + break; + case "ByPlatform?platform=bilibili&": + catt = "bilibili"; + break; + case "ByPlatform?platform=huya&": + catt = "huya"; + break; + case "ByPlatform?platform=cc&": + catt = "cc"; + break; + } + + + + + + + extend = extend == null ? new HashMap<>() : extend; + String srcurl=""; + String[] cate= new String[13]; + int pp = 0; + for(int i = 0; i < 13; i++){ + cate[i] = extend.containsKey("typeName"+i) ? extend.get("typeName"+i) : ("typeName"+i + "=" + "all"); + String[] info = cate[i].split("="); + String area = info[1]; + if( !area.contains("all") ){ + pp= pp + 1; + } + } + if(pp == 1){ + for(int i = 0; i < 13; i++){ + String[] info = cate[i].split("="); + String areaType = info[0]; + String area = info[1]; + if(!area.contains("all")) { + String urlft = "http://live.yj1211.work/api/live/getRecommendByAreaAll?areaType={areaType}&area={area}&page={pg}"; + srcurl = urlft.replace("{areaType}", URLEncoder.encode(areaType)).replace("{area}", URLEncoder.encode(area)).replace("{pg}", pg); + break; + } + } + }else if( pp == 0 || pp > 1 ){ + String urlft = "http://live.yj1211.work/api/live/getRecommend{tid}page={pg}&size=20"; + srcurl = urlft.replace("{tid}", tid).replace("{pg}", pg); + } + String srcOrignstr = ""; + for (int i = 0; i < 3; i++) { + srcOrignstr = OkHttp.string(srcurl, getHeaders()); + if (srcOrignstr.length() > 0 ) { + break; + } else { + Thread.sleep(1000); + } + } + JSONObject srcori = new JSONObject(srcOrignstr); + JSONArray srcoria = srcori.getJSONArray("data"); + JSONObject result = new JSONObject(); + JSONArray videos = new JSONArray(); + for (int i = 0; i < srcoria.length(); i++) { + JSONObject srchome = new JSONObject(); + String platForm = srcoria.getJSONObject(i).getString("platForm"); + if(pp == 1 && !catt.equals("all")){ + if(!platForm.equals(catt) ){ + continue; + } + } + + String rd = srcoria.getJSONObject(i).getString("roomId"); + String id = platForm + "&" + rd; + String name = srcoria.getJSONObject(i).getString("ownerName"); + String pic = srcoria.getJSONObject(i).getString("ownerHeadPic"); + String mark = srcoria.getJSONObject(i).getString("categoryName"); + srchome.put("vod_id", id); + srchome.put("vod_name", name); + srchome.put("vod_pic", pic); + srchome.put("vod_remarks", mark); + videos.put(srchome); + } + if(videos.length() == 0 ) { + JSONObject srchome = new JSONObject(); + srchome.put("vod_id", 111); + srchome.put("vod_name", "此页无符合"); + srchome.put("vod_pic",""); + srchome.put("vod_remarks", "nothing"); + videos.put(srchome); + } + if (pp ==1 ) { + result.put("pagecount", 50); + result.put("limit",1 ); + } else{ + result.put("pagecount", Integer.MAX_VALUE); + result.put("limit",90 ); + } + result.put("list", videos); + result.put("page", pg); + result.put("total", Integer.MAX_VALUE); + + + + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + private HashMap getHeaders() { + HashMap headers = new HashMap<>(); + headers.put("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.134 YaBrowser/22.7.1.755 (beta) Yowser/2.5 Safari/537.36"); + return headers; + } + + @Override + public String detailContent(List ids) { + try { + String id = ids.get(0); + String[] info = id.split("&"); + String platform = info[0]; + String roomId = info[1]; + String srcurl = "http://live.yj1211.work/api/live/getRoomInfo?platform="+platform+"&roomId="+roomId; + String srcplayurl = "http://live.yj1211.work/api/live/getRealUrl?platform="+platform+"&roomId="+roomId; + String srcdtlstr = OkHttp.string(srcurl, getHeaders()); + String srcdtlplay = OkHttp.string(srcplayurl, getHeaders()); + JSONObject srcdtl = new JSONObject(srcdtlstr); + JSONObject srcdtlo = srcdtl.getJSONObject("data"); + JSONObject srcdtplay = new JSONObject(srcdtlplay); + JSONObject srcdtplayo = srcdtplay.getJSONObject("data"); + String title = srcdtlo.getString("roomName"); + String pic = srcdtlo.getString("roomPic"); + String director = srcdtlo.getString("ownerName") + " RoomID:"+ srcdtlo.getString("roomId"); + String content = srcdtlo.getString("categoryName"); + String actor = "观看人数:" + srcdtlo.getString("online"); + String area =srcdtlo.getString("platForm"); + String typechk =srcdtlo.optString("isLive"); + String type = typechk.equals("") ? "录播" : "正在直播中" ; + JSONObject result = new JSONObject(); + JSONObject vodList = new JSONObject(); + vodList.put("vod_id", ids.get(0)); + vodList.put("vod_pic",pic); + vodList.put("vod_name", title); + vodList.put("vod_area",area ); + vodList.put("type_name", type); + vodList.put("vod_actor", actor); + vodList.put("vod_director", director); + vodList.put("vod_content", content); + String playList = ""; + String pl=""; + List vodItems = new ArrayList<>(); + for(int i=0; i<5 ; i++){ + String[] qq = new String[] {"OD", "HD", "SD", "LD", "FD"}; + String qa = srcdtplayo.optString(qq[i]); + if (qa.isEmpty()) { + continue; + } + switch (qq[i]) { + case "OD": + pl = "原画" + "$" + qa; + break; + case "HD": + pl = "超清" + "$" + qa; + break; + case "SD": + pl = "高清" + "$" + qa; + break; + case "LD": + pl = "清晣" + "$" + qa; + break; + case "FD": + pl = "流畅" + "$" + qa; + break; + } + vodItems.add(pl); + } + if (vodItems.size() > 0) + playList = TextUtils.join("#", vodItems); + + if (playList.length() == 0) + playList = "NoStream$nolink"; + + Map vod_play = new TreeMap<>(); + vod_play.put("YJ1211", playList); + String vod_play_from = TextUtils.join("$$$", vod_play.keySet()); + String vod_play_url = TextUtils.join("$$$", vod_play.values()); + vodList.put("vod_play_from", vod_play_from); + vodList.put("vod_play_url", vod_play_url); + + JSONArray list = new JSONArray(); + list.put(vodList); + result.put("list", list); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + @Override + public String playerContent(String flag, String id, List vipFlags) { + try { + JSONObject result = new JSONObject(); + result.put("header", getHeaders()); + result.put("parse", 1); + result.put("playUrl", ""); + result.put("url", id); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + @Override + public String searchContent(String key, boolean quick) { + try { + String url = "http://live.yj1211.work/api/live/search?platform=all&keyWords=" + URLEncoder.encode(key) + "&isLive=0"; + String content =""; + for(int i=0 ; i<3 ; i++){ + content =OkHttp.string(url, getHeaders()); + if(content.length() >0){ + break; + }else{ + Thread.sleep(1000); + } + } + JSONObject searchResult = new JSONObject(content); + JSONArray sra = searchResult.getJSONArray("data"); + JSONObject result = new JSONObject(); + JSONArray videos = new JSONArray(); + if (sra.length() > 0) { + int ch = Math.min(sra.length(), 20); + for (int i = 0; i < ch; i++) { + JSONObject srat = new JSONObject(); + String platForm = sra.getJSONObject(i).getString("platform"); + String rd = sra.getJSONObject(i).getString("roomId"); + String id = platForm + "&" + rd; + String name = sra.getJSONObject(i).getString("nickName"); + String pic = sra.getJSONObject(i).getString("headPic"); + String mark =""; + if(!sra.getJSONObject(i).isNull("cateName")){ + mark = sra.getJSONObject(i).getString("cateName"); + } + srat.put("vod_remarks", mark); + srat.put("vod_id", id); + srat.put("vod_name", name); + srat.put("vod_pic", pic); + + videos.put(srat); + } + } + result.put("list", videos); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } +} diff --git a/app/src/main/java/com/github/catvod/utils/Misc.java b/app/src/main/java/com/github/catvod/utils/Misc.java index c2dcac95..90861591 100644 --- a/app/src/main/java/com/github/catvod/utils/Misc.java +++ b/app/src/main/java/com/github/catvod/utils/Misc.java @@ -17,7 +17,9 @@ import org.json.JSONException; import org.json.JSONObject; import java.math.BigInteger; +import java.nio.charset.Charset; import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.util.Arrays; import java.util.List; import java.util.Locale; @@ -25,7 +27,8 @@ import java.util.Locale; public class Misc { public static final String CHROME = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"; - + public static Charset CharsetUTF8 = Charset.forName("UTF-8"); + public static Charset CharsetIOS8859 = Charset.forName("iso-8859-1"); public static boolean isVip(String url) { List hosts = Arrays.asList("iqiyi.com", "v.qq.com", "youku.com", "le.com", "tudou.com", "mgtv.com", "sohu.com", "acfun.cn", "bilibili.com", "baofeng.com", "pptv.com"); for (String host : hosts) if (url.contains(host)) return true; @@ -138,6 +141,26 @@ public class Misc { return ""; } } + public static String NewMD5(String src, Charset charset) { + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + byte[] bytes = md.digest(src.getBytes(charset)); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < bytes.length; i++) { + int v = bytes[i] & 0xFF; + String hv = Integer.toHexString(v); + if (hv.length() < 2) { + sb.append(0); + } + sb.append(hv); + } + return sb.toString().toLowerCase(); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + return ""; + } + public static DisplayMetrics getDisplayMetrics() { return Init.context().getResources().getDisplayMetrics(); diff --git a/app/src/main/java/com/github/catvod/utils/gZip.java b/app/src/main/java/com/github/catvod/utils/gZip.java new file mode 100644 index 00000000..e8f14ea1 --- /dev/null +++ b/app/src/main/java/com/github/catvod/utils/gZip.java @@ -0,0 +1,22 @@ +package com.github.catvod.utils; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.zip.GZIPInputStream; + + +public class gZip { + public static String KS(byte[] bArr) throws IOException { + GZIPInputStream gZIPInputStream = new GZIPInputStream(new ByteArrayInputStream(bArr)); + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + byte[] bArr2 = new byte[1024]; + while (true) { + int read = gZIPInputStream.read(bArr2); + if (read == -1) { + return byteArrayOutputStream.toString("UTF-8"); + } + byteArrayOutputStream.write(bArr2, 0, read); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/github/catvod/utils/okhttp/OKCallBack.java b/app/src/main/java/com/github/catvod/utils/okhttp/OKCallBack.java new file mode 100644 index 00000000..9bd5b7c0 --- /dev/null +++ b/app/src/main/java/com/github/catvod/utils/okhttp/OKCallBack.java @@ -0,0 +1,60 @@ +package com.github.catvod.utils.okhttp; + +import java.io.IOException; + +import okhttp3.Call; +import okhttp3.Response; + + +public abstract class OKCallBack { + + private T result = null; + + public T getResult() { + return result; + } + + protected void setResult(T val) { + result = val; + } + + protected void onError(final Call call, final Exception e) { + onFailure(call, e); + } + + protected void onSuccess(Call call, Response response) { + T obj = onParseResponse(call, response); + setResult(obj); + onResponse(obj); + } + + protected abstract T onParseResponse(Call call, Response response); + + protected abstract void onFailure(Call call, Exception e); + + protected abstract void onResponse(T response); + + public static abstract class OKCallBackDefault extends OKCallBack { + @Override + public Response onParseResponse(Call call, Response response) { + return response; + } + } + + public static abstract class OKCallBackString extends OKCallBack { + @Override + public void onError(Call call, Exception e) { + setResult(""); + super.onError(call, e); + } + + @Override + public String onParseResponse(Call call, Response response) { + try { + return response.body().string(); + } catch (IOException e) { + return ""; + } + } + } +} diff --git a/app/src/main/java/com/github/catvod/utils/okhttp/OKRequest.java b/app/src/main/java/com/github/catvod/utils/okhttp/OKRequest.java new file mode 100644 index 00000000..c24d5ba2 --- /dev/null +++ b/app/src/main/java/com/github/catvod/utils/okhttp/OKRequest.java @@ -0,0 +1,132 @@ +package com.github.catvod.utils.okhttp; + +import android.text.TextUtils; + +import java.io.IOException; +import java.util.Map; + +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.FormBody; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.RequestBody; +import okhttp3.Response; + +class OKRequest { + private final String mMethodType; + private String mUrl; + private Object mTag = null; + private final Map mParamsMap; + private final String mJsonStr; + private final Map mHeaderMap; + private final OKCallBack mCallBack; + private okhttp3.Request mOkHttpRequest; + private okhttp3.Request.Builder mRequestBuilder; + + + OKRequest(String methodType, String url, Map paramsMap, Map headerMap, OKCallBack callBack) { + this(methodType, url, null, paramsMap, headerMap, callBack); + } + + OKRequest(String methodType, String url, String jsonStr, Map headerMap, OKCallBack callBack) { + this(methodType, url, jsonStr, null, headerMap, callBack); + } + + private OKRequest(String methodType, String url, String jsonStr, Map paramsMap, Map headerMap, OKCallBack callBack) { + mMethodType = methodType; + mUrl = url; + mJsonStr = jsonStr; + mParamsMap = paramsMap; + mHeaderMap = headerMap; + mCallBack = callBack; + getInstance(); + } + + public void setTag(Object tag) { + mTag = tag; + } + + private void getInstance() { + mRequestBuilder = new okhttp3.Request.Builder(); + switch (mMethodType) { + case OkHttpUtil.METHOD_GET: + setGetParams(); + break; + case OkHttpUtil.METHOD_POST: + mRequestBuilder.post(getRequestBody()); + break; + } + mRequestBuilder.url(mUrl); + if (mTag != null) + mRequestBuilder.tag(mTag); + if (mHeaderMap != null) { + setHeader(); + } + mOkHttpRequest = mRequestBuilder.build(); + } + + private RequestBody getRequestBody() { + if (!TextUtils.isEmpty(mJsonStr)) { + MediaType JSON = MediaType.parse("application/json; charset=utf-8"); + return RequestBody.create(JSON, mJsonStr); + } + FormBody.Builder formBody = new FormBody.Builder(); + if (mParamsMap != null) { + for (String key : mParamsMap.keySet()) { + formBody.add(key, mParamsMap.get(key)); + } + } + return formBody.build(); + } + + private void setGetParams() { + if (mParamsMap != null) { + mUrl = mUrl + "?"; + for (String key : mParamsMap.keySet()) { + mUrl = mUrl + key + "=" + mParamsMap.get(key) + "&"; + } + mUrl = mUrl.substring(0, mUrl.length() - 1); + } + } + + private void setHeader() { + if (mHeaderMap != null) { + for (String key : mHeaderMap.keySet()) { + mRequestBuilder.addHeader(key, mHeaderMap.get(key)); + } + } + } + + void execute(OkHttpClient client) { + Call call = client.newCall(mOkHttpRequest); + try { + Response response = call.execute(); + if (mCallBack != null) { + mCallBack.onSuccess(call, response); + } + } catch (IOException e) { + if (mCallBack != null) { + mCallBack.onError(call, e); + } + } + } + + void call(OkHttpClient client) { + client.newCall(mOkHttpRequest).enqueue(new Callback() { + @Override + public void onFailure(final Call call, final IOException e) { + if (mCallBack != null) { + mCallBack.onError(call, e); + } + } + + @Override + public void onResponse(final Call call, final Response response) throws IOException { + if (mCallBack != null) { + mCallBack.onSuccess(call, response); + } + } + }); + } +} diff --git a/app/src/main/java/com/github/catvod/utils/okhttp/OkHttpUtil.java b/app/src/main/java/com/github/catvod/utils/okhttp/OkHttpUtil.java new file mode 100644 index 00000000..e161c404 --- /dev/null +++ b/app/src/main/java/com/github/catvod/utils/okhttp/OkHttpUtil.java @@ -0,0 +1,200 @@ +package com.github.catvod.utils.okhttp; + +import com.github.catvod.crawler.SpiderDebug; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +import okhttp3.Call; +import okhttp3.OkHttpClient; +import okhttp3.Response; + +public class OkHttpUtil { + + public static final String METHOD_GET = "GET"; + public static final String METHOD_POST = "POST"; + + private static final int DEFAULT_TIMEOUT = 15; + + private static final Object lockO = new Object(); + + private static OkHttpClient defaultClient = null; + + /** + * 不自动重定向 + */ + private static OkHttpClient noRedirectClient = null; + + public static OkHttpClient defaultClient() { + synchronized (lockO) { + if (defaultClient == null) { + OkHttpClient.Builder builder = new OkHttpClient.Builder() + .readTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS) + .retryOnConnectionFailure(true) + .sslSocketFactory(new SSLSocketFactoryCompat(SSLSocketFactoryCompat.trustAllCert), SSLSocketFactoryCompat.trustAllCert); + defaultClient = builder.build(); + } + return defaultClient; + } + } + + public static OkHttpClient noRedirectClient() { + synchronized (lockO) { + if (noRedirectClient == null) { + OkHttpClient.Builder builder = new OkHttpClient.Builder() + .readTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS) + .writeTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS) + .connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS) + .followRedirects(false) + .followSslRedirects(false) + .retryOnConnectionFailure(true) + .sslSocketFactory(new SSLSocketFactoryCompat(SSLSocketFactoryCompat.trustAllCert), SSLSocketFactoryCompat.trustAllCert); + noRedirectClient = builder.build(); + } + return noRedirectClient; + } + } + + public static String string(OkHttpClient client, String url, String tag, Map paramsMap, Map headerMap, Map> respHeaderMap) { + OKCallBack stringCallback = new OKCallBack() { + @Override + public String onParseResponse(Call call, Response response) { + try { + if (respHeaderMap != null) { + respHeaderMap.clear(); + respHeaderMap.putAll(response.headers().toMultimap()); + } + return response.body().string(); + } catch (IOException e) { + return ""; + } + } + + @Override + public void onFailure(Call call, Exception e) { + setResult(""); + SpiderDebug.log(e); + } + + @Override + public void onResponse(String response) { + } + }; + OKRequest req = new OKRequest(METHOD_GET, url, paramsMap, headerMap, stringCallback); + req.setTag(tag); + req.execute(client); + return stringCallback.getResult(); + } + + public static String stringNoRedirect(String url, Map headerMap, Map> respHeaderMap) { + return string(noRedirectClient(), url, null, null, headerMap, respHeaderMap); + } + + public static String string(String url, Map headerMap, Map> respHeaderMap) { + return string(defaultClient(), url, null, null, headerMap, respHeaderMap); + } + + public static String string(String url, Map headerMap) { + return string(defaultClient(), url, null, null, headerMap, null); + } + + public static String string(String url, String tag, Map headerMap) { + return string(defaultClient(), url, tag, null, headerMap, null); + } + + public static void get(OkHttpClient client, String url, OKCallBack callBack) { + get(client, url, null, null, callBack); + } + + public static void get(OkHttpClient client, String url, Map paramsMap, OKCallBack callBack) { + get(client, url, paramsMap, null, callBack); + } + + public static void get(OkHttpClient client, String url, Map paramsMap, Map headerMap, OKCallBack callBack) { + new OKRequest(METHOD_GET, url, paramsMap, headerMap, callBack).execute(client); + } + + public static void post(OkHttpClient client, String url, OKCallBack callBack) { + post(client, url, null, callBack); + } + + public static void post(OkHttpClient client, String url, Map paramsMap, OKCallBack callBack) { + post(client, url, paramsMap, null, callBack); + } + + public static void post(OkHttpClient client, String url, Map paramsMap, Map headerMap, OKCallBack callBack) { + new OKRequest(METHOD_POST, url, paramsMap, headerMap, callBack).execute(client); + } + + public static void post(OkHttpClient client, String url, String tag, Map paramsMap, Map headerMap, OKCallBack callBack) { + OKRequest req = new OKRequest(METHOD_POST, url, paramsMap, headerMap, callBack); + req.setTag(tag); + req.execute(client); + } + + public static void postJson(OkHttpClient client, String url, String jsonStr, OKCallBack callBack) { + postJson(client, url, jsonStr, null, callBack); + } + + public static void postJson(OkHttpClient client, String url, String jsonStr, Map headerMap, OKCallBack callBack) { + new OKRequest(METHOD_POST, url, jsonStr, headerMap, callBack).execute(client); + } + + /** + * 根据Tag取消请求 + */ + public static void cancel(OkHttpClient client, Object tag) { + if (client == null || tag == null) return; + for (Call call : client.dispatcher().queuedCalls()) { + if (tag.equals(call.request().tag())) { + call.cancel(); + } + } + for (Call call : client.dispatcher().runningCalls()) { + if (tag.equals(call.request().tag())) { + call.cancel(); + } + } + } + + public static void cancel(Object tag) { + cancel(defaultClient(), tag); + } + + public static void cancelAll() { + cancelAll(defaultClient()); + } + + /** + * 取消所有请求请求 + */ + public static void cancelAll(OkHttpClient client) { + if (client == null) return; + for (Call call : client.dispatcher().queuedCalls()) { + call.cancel(); + } + for (Call call : client.dispatcher().runningCalls()) { + call.cancel(); + } + } + + /** + * 获取重定向地址 + * + * @param headers + * @return + */ + public static String getRedirectLocation(Map> headers) { + if (headers == null) + return null; + if (headers.containsKey("location")) + return headers.get("location").get(0); + if (headers.containsKey("Location")) + return headers.get("Location").get(0); + return null; + } +} diff --git a/app/src/main/java/com/github/catvod/utils/okhttp/SSLSocketFactoryCompat.java b/app/src/main/java/com/github/catvod/utils/okhttp/SSLSocketFactoryCompat.java new file mode 100644 index 00000000..f0395e06 --- /dev/null +++ b/app/src/main/java/com/github/catvod/utils/okhttp/SSLSocketFactoryCompat.java @@ -0,0 +1,167 @@ +package com.github.catvod.utils.okhttp; + +import android.os.Build; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.Socket; +import java.security.GeneralSecurityException; +import java.security.cert.CertificateException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.X509TrustManager; + +public class SSLSocketFactoryCompat extends SSLSocketFactory { + private final SSLSocketFactory defaultFactory; + // Android 5.0+ (API level21) provides reasonable default settings + // but it still allows SSLv3 + // https://developer.android.com/about/versions/android-5.0-changes.html#ssl + static String[] protocols = null; + static String[] cipherSuites = null; + + static { + try { + SSLSocket socket = (SSLSocket) SSLSocketFactory.getDefault().createSocket(); + if (socket != null) { + /* set reasonable protocol versions */ + // - enable all supported protocols (enables TLSv1.1 and TLSv1.2 on Android <5.0) + // - remove all SSL versions (especially SSLv3) because they're insecure now + List protocols = new LinkedList<>(); + for (String protocol : socket.getSupportedProtocols()) + if (!protocol.toUpperCase().contains("SSL")) + protocols.add(protocol); + SSLSocketFactoryCompat.protocols = protocols.toArray(new String[protocols.size()]); + /* set up reasonable cipher suites */ + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { + // choose known secure cipher suites + List allowedCiphers = Arrays.asList( + // TLS 1.2 + "TLS_RSA_WITH_AES_256_GCM_SHA384", + "TLS_RSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", + "TLS_ECHDE_RSA_WITH_AES_128_GCM_SHA256", + // maximum interoperability + "TLS_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_RSA_WITH_AES_128_CBC_SHA", + // additionally + "TLS_RSA_WITH_AES_256_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", + "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"); + List availableCiphers = Arrays.asList(socket.getSupportedCipherSuites()); + // take all allowed ciphers that are available and put them into preferredCiphers + HashSet preferredCiphers = new HashSet<>(allowedCiphers); + preferredCiphers.retainAll(availableCiphers); + /* For maximum security, preferredCiphers should *replace* enabled ciphers (thus disabling + * ciphers which are enabled by default, but have become unsecure), but I guess for + * the security level of DAVdroid and maximum compatibility, disabling of insecure + * ciphers should be a server-side task */ + // add preferred ciphers to enabled ciphers + HashSet enabledCiphers = preferredCiphers; + enabledCiphers.addAll(new HashSet<>(Arrays.asList(socket.getEnabledCipherSuites()))); + SSLSocketFactoryCompat.cipherSuites = enabledCiphers.toArray(new String[enabledCiphers.size()]); + } + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public SSLSocketFactoryCompat(X509TrustManager tm) { + try { + SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(null, (tm != null) ? new X509TrustManager[]{tm} : null, null); + defaultFactory = sslContext.getSocketFactory(); + } catch (GeneralSecurityException e) { + throw new AssertionError(); // The system has no TLS. Just give up. + } + } + + private void upgradeTLS(SSLSocket ssl) { + // Android 5.0+ (API level21) provides reasonable default settings + // but it still allows SSLv3 + // https://developer.android.com/about/versions/android-5.0-changes.html#ssl + if (protocols != null) { + ssl.setEnabledProtocols(protocols); + } + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP && cipherSuites != null) { + ssl.setEnabledCipherSuites(cipherSuites); + } + } + + @Override + public String[] getDefaultCipherSuites() { + return cipherSuites; + } + + @Override + public String[] getSupportedCipherSuites() { + return cipherSuites; + } + + @Override + public Socket createSocket(Socket s, String host, int port, boolean autoClose) throws IOException { + Socket ssl = defaultFactory.createSocket(s, host, port, autoClose); + if (ssl instanceof SSLSocket) + upgradeTLS((SSLSocket) ssl); + return ssl; + } + + @Override + public Socket createSocket(String host, int port) throws IOException { + Socket ssl = defaultFactory.createSocket(host, port); + if (ssl instanceof SSLSocket) + upgradeTLS((SSLSocket) ssl); + return ssl; + } + + @Override + public Socket createSocket(String host, int port, InetAddress localHost, int localPort) throws IOException { + Socket ssl = defaultFactory.createSocket(host, port, localHost, localPort); + if (ssl instanceof SSLSocket) + upgradeTLS((SSLSocket) ssl); + return ssl; + } + + @Override + public Socket createSocket(InetAddress host, int port) throws IOException { + Socket ssl = defaultFactory.createSocket(host, port); + if (ssl instanceof SSLSocket) + upgradeTLS((SSLSocket) ssl); + return ssl; + } + + @Override + public Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) throws IOException { + Socket ssl = defaultFactory.createSocket(address, port, localAddress, localPort); + if (ssl instanceof SSLSocket) + upgradeTLS((SSLSocket) ssl); + return ssl; + } + + //定义一个信任所有证书的TrustManager + public static final X509TrustManager trustAllCert = new X509TrustManager() { + @Override + public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { + } + + @Override + public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { + } + + @Override + public java.security.cert.X509Certificate[] getAcceptedIssuers() { + return new java.security.cert.X509Certificate[]{}; + } + }; +} diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index b0e01555efe124c7c6eb532fa2565b29a4da0796..1533d3c66d9cc9fb456f859d50aae0f19271b6b7 100644 GIT binary patch literal 323001 zcma&NcTm$^*ETA>mrxUWk=_z&=)H(^lp5(E2vS8t5u~?3M0$~`h_`eBgCZ>udJ}Iz zKuRJ-L3#=Oi_baFJMYZ-<9y7XO&Bs^uWPM!t+lTG!{ROpDa$QNO3GV?L7FzV{?``` z;kCP;Yejq#yY~&y{}&4{xR6pui+W%=SD{eq|wr%iG~v=E-o%$oS#r9 z3jgD;r{8bTFTJhPAKj(=aC{*=s2>hywecIE-|ltd>UQNq-?@#Id>KS#8_4|*6(0#tc?(ZH#iwZw zMq|oZ_3qr$e%2Dp3|o!ur|efO(Gvf<$0D;&4;t(<2fn0rpl3e1c8g&Gx%#+3rwQ;brR0JBXBTSTu1+zntOK7a7EoYJ>@Wy$V@c zp}FSUB8$&s=(nK%ck0&I6x)wUcHNbv{esLhJL;I)9zaQtKFpA#bVV@DS>AiilKXgy z_RkdE6_{nG0P)=}#X`?r5ZlB)@FIa_v6rNy&+szg*GugYGRGV}p>NvOExKVxXbVIf z#dhk)LN8Ptju3Xjb8hO18{3-p4u

s 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%0Dm}D11VqYZRV71dwuCeaAQ0BpM{g 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

XOSn4&e%ivcMU>TTjo@fz=nX%(1KW*Dv2 zMha7;m=fwgS|g9BXa$rRs5KP`N_a&7Mjsb6h_oY`0!ofXrF~=r7~nTn+AUAj7wwCW zeosSV<2PWi%PHKK7>!B8ViPk!XbiCnpF%CdlVFL~L9YTdPE5Cnv&8GXtD-evYMimN zo*F4km10TIL8ziOplckl)1E3X)RwA<*FmhJH(+aAvGbfdE}WODNLcu#n;Y8S=vk@9_HJaNEPJJuDks^q2L09Dz?w<-RAdsSn2tr3BMB+j>Cmi66 zHb?ITpigpj{N#)`f7eSJ!Gu0bXu~;Xkr>`$u9wnKoL`F%K>&6T?c=`!|Xd|0JW@*zm z7M4i_K(o;qbIMre@-X||#~PxK+dydJW>20}DKczGc~BQ1nmmRNcbnK;b5+F8jqWRk zX9{`kzk)1By!-z7)1H1MtF6FV#ZVeS0pEC+r{kZ$aQHv8wxF_jj&S(N%_s7pGZtI= z?kpbhKJU<$w{IVhvC0-|P~P=_PmX3AcIW~!E54+q*pDEb9AG8*)c9)f%{}N{XPr`v zKxp0vwmF}DqmI`BsPq#1?UFkC_KlIw=he&{(RpV-3{D<=c&1icIJ3WhJ`gjFpGyh3 zNLCRZTmRZmXKggX@%Z2?>Ow$5P4<)u%lJar#DyD1gWG_V7|_4(<^|l zLPB`=6T;xZ`Pu0MHe)v1K00Patsx_tRm5$Wf;LwgyJ42Rw2Q{1j^@7LkvdUzL0CZ# zRdG}$T|5T4SR3hluol&qa{qF7ilN_0S+Y(k>5~feamfol+s@toLZzk(#&Wk|d!#+I z21aDDF8*J=bCK@3ah;gKCLH6H^_@(*&Lf3IvhIup&%k>4cuTwR^P!hjg{=O=&%SiH ze;XgNYG$!g3c=gP#d8|phXfyvjxz*n3uzRQwh@wnku82-;UHDw(B)_mdyB|2$;pdnzxfzv8}A&HY@OG&n(m zCX#ANHbIByi@2cxs{6fu;~L%QohEkIqa5uGWU2E>v+OC%NH%F5o$>rqv?Ees4{G%Z zcGbqU`VqvKRIvxsWZ_T?KK?7X;#zR*qUI8mz05N`Ec@Z%hq54|Edt5Y9$IyiplHD2 z&vzyNfX?6K<6*7SjAD+b+Y9~i5#?QW-5N#a@vB`|0@Vc!`>GGn^m5fdM}J2LpM2CQ zCBvoG(=6{HT!mh-vA}gL`RqQu$w~P=E8r;W~t-M_pOju@U2~FrN`3M`JQjbv%29SpU0& z6c%+GR*+%RG$R=lw%k9juLf+CACNklq9MatURL5xgDL5V3Z=yZXVmq$mtaNB;JI{6 zUuZoTHwAsRLKAHy$f{>XT^rbJoWoE(;Wy)^!wsgBk_Fz%$y8XO%MBD&c!XO0RUG&Z zwo8i*93GNAQIG{3m9dji$Pa!PCQOgD9QI)*64a&{-b+Gc5y? z)@ha#C+ONi?&x-D$)woB(M5j_!}_V&%I87m z?6dO5?hmbiBCo7|AJX$AI>q6PJz~X|0v;8)-DaaR#q+e3Tlw?yy?8mxP#)2wH8Ojr z)B$ySr<8#Mr^GascsG~cR-!tT7^O0sbVPIf#^ga6$PXh=#cd?VW>}_Xv;plT1lL{h zwG5Xi(VY3i&Wybws)vn1ajj|eZ`yA4D>}LhY1GVOwUp?O!|6$dADH|YK@-KAHGSTI z-hw@QYSHv}1RAtd;q4k_3?O%nAB-RajX5Szy+$ov_#`aR7usiYBwjO1I!+5>D;$WSW8WursZsSs*cKL8v?W7(o6SV>BSdq;=;0__Ce!iJqBE z-RM*pARTN2nIN6{w{)%{RE)(m8X>N&3L1}+3M<87@(PA9uz~_Xv6X^CQ}JA8N_@pd zSqi2iJQKW;_}PoeI(lue&Ov8u z<%7)7FpZBhQ<8yT`syRJiDeq!BVm~-Z1T&6DI%%$yuaNQmpf8~(xV08JgFnbaMC0N zPo|5cXe78^DzgrJC#75k{wZ0(7cQJO;sKvYWX6PZCo15;lTw)J;GZGPL~w(&azr>V z{n!`2k$fx&-$*?MEw3dx@WM?BnpMk7VG)WB00WEGsXI27rzi?Q;vnAtp-)ZVLfY!Pg;vWN?4xCVvfATF=iKn^ZSG4IOj2 z3Y{r)igGzAb9V}ziF0o9omq1Lh0bqt*NQpKbAZHY_M4X<0+2@x`;0UseS5XEh{2is zabkcyVLFnCy$>UXuQ`Y~qS#!HJDt%nEuyy~G@C~yd6gaNH}iu!E_tSm)zE21AbuIn zqattF(swa&uqr>m0N4qr2zNcOn9DGdxtv4Kq%RZ0n0TprrM1R;Xh=oR-4V+ESJ;ul|=-bDwpLW;6K+eoR1iit@9g1mErc zZe74yN`m1PM4k`dYE+!B$=ZXczsxCfsHE1(e%PknNjO+1@uJO__Z;8!~P} z>l>QsggFvvyquKAmQ9%M)HI~i?c_YX&@qMxYhpC?uhdNLWLr*4*$G@;gcw^d2eRf# zTW>1erddZy-Tt*wHS{9cpCxzmhHO=jaXc~Cze$STJx$4~NTX`$p&RGW= zctu)qP?)m{J(Q~63R<}udC6LtN{Vg+a)(SR0!BQhTLV5Pt4h^#F#A8iWR`a!fo#jr zG!e^X4|@NZ`fh6f)%v_U=aJkWryRqtfaPHJr?`4o+B_s{iaaiwr_lO4ty`!yh3Sy= z?V#1B-fiigxGpC7@Hd1KOhH053U&CSfZ>25maR)LU7`rbpls?EC1lOYebA*a!FA4OOmJLX6@^@rsNH zM~>2rBk_ScNqub5=qkCY}__Cq8_V0#+MDtCJt3e`qKzM?~| z*^{Gq8!U7L0q%5+=`8Mo%;^tvZmm3Niq5Us=`q%=DQTmYtww31`mLwQqXd=H>553L zSt%83EqNnNX+}AtO|fG*_bcH>6~j&SMirx;4Mt+HBWyI--d5chAo|hBMPOgXz$Im0 z2ITTZ@%vD6%3ADDZ`<0@uP^Kg6Z>iDMDhFbDP*~$FG<3`<-HZi_4nOCxljAPdgrp% zxlW|Nm(BHZRhJ5sbN%-8WzO~Y;CV#Cm0C&dQmtZ13?7+)U>~XkhpRP8Eat0N)4t{H z@51Dxp_#(uL)VtR2I&X38r-y4*H^+cldSID45~9%V0J9`t1>n$>Z>ItRbOqn+{V4- z0%6CIm+H02kz`aMp3&rQ!iqyUh(h3@-85n5UNhT>Mq#X>*$Cl-6!89c=NwDu<^Vr+w*lLbD@ zMAaClbs8x^JL4ur-)U^m+9tQmh%-4Z({}9GVu4WToKrD1lX^_c3ZJ8aFe5x&I>WkW zOxb3Hdz7eQEMs_V#mg5=PhvR+v}opR7|d`UIrX(sb<-UnjU1b|Wk>Y5&9IDyd~fx! zvgg$OCKxf+-<_5L=rNM{O$yM>Y;7CkH9wbf&?(z5x)$*GbA^3flG!pUZ1S6lDq=slFu=a{)0yy%d!fI@ri8{KcS3c6`CPh4b?%o;AwAjBlEX;&;J!Zq;I}x|Xf~jq>VEjJqqR?XF%3 zj85oRhv`M{|E@H%4ku<|UUk<|sQL!qYmLJ)ufIH`0Ma3@ zs}E20n*%qvC(HvXk1ezT6~Fbze`S4KV6AV9n_sOov5KRr$f+$!<}Im&SY@}wN$DJn zPv|ua5U+t!^l8S4*%yRu#!(&9^Z*kpWL<97zATP+dhPuN#tU6$XTpwoq1OejwumO8 zW@khv8Tx~Lz<^m&D>AebLVbo2pblSs!vxjIl3w=&(6$oChD_|_y&glKpYnoR9j2-* zw36Q}hwwyNZ}1mTe&MJdlj0!7GoW&Ekf`qb{Ufh!dy^D~WhxSs| z)=eu!)@4wQmlSb7 zIGU5(_$YXV+dNcE6i&8>sUZM*%}xPxYDQyJ?A2>>%KqYP)x^snU&b&4(Z{mI_)JLYVQCVDK zjU_pAp>PHF4e@P8kk7GRkzDK!Tl5@Lt_-VOw(Cbg4l<)?Ner68U&ifH0DvwlMNTt2 zm`rm`t`58Z1Z)oLW9lCOi{?vbf2NN%WHKoTi(wx~xt!|H-f>aDHRJjjBy$89Szz*% zSkBk-QlnSW&y8+j^p`yH7@=p}g(*Sn4^p8v;s3yB&E9w4milch9>I3FJa>|AJxWqh@cB~es+AoE08fH?>VbDAd zbGF7W`49Z_0a_?(RB|6Ev`MsTHK~+7aA;d-xo8wCgZS|#;EBbO$*3KPEvy<;D*K{% z|)}yPP}KS3ap6@!xqirDWzq zYN6JM8k1r%XDX`Jl^R^Sm^8JcZ`p)g?ICOgP)??isfz)hE3A(j;bP`3BQ2cC9+B;H zu5zONmmi1EtX$SZa(x0QUxJS@j9=$)YolvzvjMcKHGCy`H;QHU`BG)ICe-_t_tBX1 zG>gS~H@M{Rf^zZ|qDJJ)rOVtEQmM3Uw3swggLTS?iS{N{4iDpabtn^xu~ z)KOo6u~RI%D@#n)|(*P&Pi8r_LbV#OTR7 zSEn%u%E3AAD>E!G3G+iZ#w%Magv80P69ert@*(L+r98mG?WhO@Vvzk_zC@&q7qN}q zUJ)cxMxMCDzR$6Nhk2S&c2|mc)&4ZUE_uL&*x&B76dpIgm6c*gT56v?z($;4pH=YZ z>wpxos@+)4D39{Ak96{Xake~l(|sxdaX2i>tUO%Pdl~d5S@-rmkt5SExnz$lD|>f| zWK`uH9>F4cD7|IYoV}l1GJKR^96Cyv06XB9wK6Z6CWFa z?XFSe7>YEH%TJace|`Q&_n#s~8aAu19(S#uIa5zk#3=gcr)ox4W4#1(o^h=k56UbQ)!1K)-CF3 z$1jxI&!h}rU~Ycs?P#SPeeaRI7nPShz8q|$_L7IKBSzxfQlD~VgU#=L@kNTDt`gpI zW~(oa)?%1V?$BaBajB5i5}1jFiC`pPmzoINOJfTlf8lYn=$A+FB8P>1;n^DMfqWZ9 z_($w|r&3a@x+M@9dbiW}_e)ltc2qAUbQZ0Yh<&0EnEgQ@`3vzD`cM6^ z26S7D+>hDW&6)xpU;Z$&WaA6$exctw?&12{fMNT-n$<|>2dlux-uciN#b_K&^}YS* zU&bLZEv`SE!$v>cVXJU|VQ||CYe(XD{S;A}Fw4E>{Nvz@M~U`UbMJWjy<1YxFp-Lp zfc@6qJBE%TWQIY3?b)22IjkCl(o%t=-sFBbRxYy&&Lz5A4;|jO!T4D|6+vVJfvRmV zW&#EIga-Q~zE27kIkivN7FUSP`zn+b*w2rW67L@v-i{@v;_|U1#6naa$|B7OQ-wo5 z>_p&;n}+2;hAr%B|Wq+X0FSHYtsO1mpKaoC3?R z&nU~-?v#77hqzQ6k_ch8gua-l<$_bta2HNoHXX3p7=22Vd2lBv}nlNOGptlp9ElrOdRZ zK})ixWs&1cJf+nBZ}V?)`M*AOInBJ3!`Hd@aITq1IT8q8#RXwKmDOaT3eAZGFh+^w zh?*M*rYM&VsiroTZ3`d!Fav;<%3YTW&X8GU5BWjrs4S%i;>NhR8HO?v|4`yc4@4>v z5^Yd^9V6oAvPv4lO+2DG5if}xBV9(b!Wg=Wr?IjbGJrHuIZ7_Xvr-6$8+~YHc30j5 z4mGLsQ1MG|e6>LJ6}#fv+Z~ckyepiNdc}S4*b^B-R@>7yzYIKSj0r#lnOMkneGmAz zMMYcVDl%TWNivdBiHQfr_k2Wk!8KycQ2SCiv?;Jq!zenI;f;1c*M4nEa6p&`mXm48mJz85$#j1E z{U0x~gXmmG*|Pd|K9THr_zIJQ_FQ3ElR8U**Ea*qIGVYMDW&}3ijlH;HIf2yNkD8H z!ZXcm3wCu|#PoZP{IlnSh^}9lH>CP~}|8BUC<>vrp2kK(7BE_FH6AJz% zImY-Qdx~Wp*y&9RNF)>7PL~z9#YSK$2c1dw#vtWIP5OsDlE%HK$LA@x!<`x`RF|fS zA0Q%j=CQFenBI#Uv;$A`6mUrZqUiHNa4tX%@is`~!ddo>4R!?B?c(joUCXX5Q&A#3}=dP2lpfSnK_f;D%;-p8q?8)ZC)CpNgJLi7jJ=OXSyF44guJ^!?{h8rrb&8m^)g{%WB{sxb`} zQL6Ng&@f9}%x^1kM+|>XCsW_YPIVrkr~^d0=t}J`hl=l-n2g;a{%fdL314>ua{$2z z+pS64eFm&)>aTs99&^{P$rU4R;qD>Ds|U*FZcM@Qx3$G<3OX0o75uqydz-FCm749& z=R#*lC^i#d*YjAF@47Hoo}7_?3BFnK&lPYDPIeb;G4i9{_N?)p=xljmcjfOk+b#EF z$oZ{_=S$2uY1@|LY2eGW>4aZS+CPiE!lCIt_93-Y<}YL9d}hs{fKt=g#q)-1r*`0> z`BMxIAo!$t4tn^!8_bmF_WBzXK>W(Jc;pFOulQRtvpLD(b?^Dzl&OX-=!MFpdHhe% z%S8OudP{NB1Nz(Av`B&OBmRT7d}-6u=oy)3NBYrbQ*qo(~~#o!P8DK1wC4s*9$wwZHacfSW`DyxzQDDA;;zEvaprd6`FsY z{KV6(|3>A>7RY6y(-%I`5KYv<@0y$It@F`89cYi!c!sv} zrgRsCm)g&=zsc~Zb)y|9KW0jB9pv(4?n%nu5)$c296Zrn9&p>=p{!k<;4Ic$6&P&v z@=8}=ighGbS9K*n!pl_x)_fA}1+Og|%7p^RU z6!?Fg(TG@_U-cS0mG2`WeV~(vI$eJx))~T8SJk;FeaerzWKP!Gu)fGY|GAaqpfJ6< z6$C2RcqnfEWi6O&FLX{_-E1yLcKtW>np-6jZ;IXJU$Cl>V}F8>>Mhn)HO=6pI{*D3 z%CkfKa7@g_v1^w7aAUtFoWkFXDMqzII9Tp5*5A%Upgta(koZ(&|pAi3$vo`cB6 zR$Gm(^%LEz!Nd2qvbWP)0THykCnCOe|fuT&->myb^%`%KZu#s7#^1M zO-@Wq%y7JQ1z|IId%7AV&qJkI%U$f7@2jhxw1dBZTA~uNn%OOGaEvbI*DM{kYj`QH zznaX-Z~ps%oo%C1xAEF_uIEQ_ntMwHKy*G6- zdP=(N7DrB%oZdmyyZx4;$O23IG}Ez&p*qKT6a0(utWOOo&0p&Qzs^Hsm~&`c}#C{Tke6=QtGs2}~o z-W6wf-w#_J9~-PIUw;7Ej|#42hRF!p{vs79CR`=Sda|_p9Z~-SrC52qT|EZ9^mxBj zsEi_>F z7pycZP6c-kdGg8ubXiI93yC2*ICxB+*F6$k~ftg-SuVz zkvfMr-*Ha5=BhP4eSFE9#A`Fey%tfO()cWT%EdK#@ZJ>f@owR-*E;3~ZNTOC#CiXR zyF1jk{CkQ{g}Vvv(r(>L$=w2cAqt!m!@efl!(8~p9kio08XkF9GSp4~!;R>OF z$zOzdRcP~tjQzvzuh!JnWzuBKOKfFxyZq(8H|EUmz-CcN9Tgz9@FxdcapMX9Rt*d0n4|{ z-Wx0W#wT9*-1iwl>diC@_qGpI*IX>JF-aJbk% zK5{N-e zin&wTJ!VbSq@x+m9(H-i#^iaQGrr_5y{_H%@NckyHDm4!staPTNk&Px5IVi#Py-|M zKR>GC{HefSyxp29Z$D;LZ!!$j9&sx^1xo&#Hq;5WG)$hixVYKLNk7ewdcY6LFKdYU z)8vL>7$dS2|I^rW?BDmZ4n}jOm!mi7_<{ICUJ_7wVRL~)pel9q$B?$PN%d)PW9uet zKy+MM=QZYOGbj8^*tk-+rJ;P$^{55^VQPoUB>S{QGM$*Lo~D-qQ4B-OFnFzpvWXFN?L^t6!9B@%<)I{z=jPF|qf5 zv(Ud6i?#f3{r$__Zb!E|7g@xHqR7=3GI&(b_=LzywLE7<@2dpQ-@MSd?M1xSGJDOo zG@bh-*C35&T0Wo?zGmUilr?@s$b4sKwLgAbzgV-@Z(Fp<=oT{2tEj{RZQr@DFsnVN~XVP|NYB7v=UtxacGsF9O;ksMxkfger71>{yE`W zs``Xp^Mki9^=%O|ZWq4)Q-Y7*x3lnj_o;IKm{`l_w->z7_8^aMFLb@BekalYy<01} zE!JGuE1cKr|6H{D*wPmd^^0~72z^lFz}7Mk5$9TW?kvuVeo@Hbr#A8m%|9u5uX0YK z=yHJXvL4oH5nLJT=ADx8(buUQT%7xSNAUmcV%&r%zg~R5ReV1a^Sx(V$?i2B)~*+H ztoBZ~?`U%tMLT7_rwBd%-1aB7KP1+y?1ygOS*-O@b({zJ>k0k0mNvT3^-l>|+$+9= zyN4&X(pR=V^xT8LzhOJ4Ts-4@4nDbc@c910>(qB~aq+|YYh0()&mYnAPtkkl;Q!e@ zc*E|&FYoeJqHI?g@u$_M_WgqwY>Q&OQcPD4eqd3sb@1rc@{(;Wn?161Fx)%%>~*5x ziaOlx!E?3`-nM)2Te}C(SdD1fKX}cR)y(>XpW8k7Z)>DnIrx|DgIDh#{DA%-x2IgJ zHRYo|p->|jGQN39{_~(85PbTAMb`PGqeQ>_JB>rEw#2~h(EcwD$!P#}NM%~Uq zV8zk(QJ2Lp)E~TTPYm_eTgAoUV$AJ>`rg4CSKRydie)!#E8W)^!>9h`JwA;X<0o%j z*4(jw;JR{&0N$4`i1&H@TA#nXMO^Hz7Nx1d&t1`4ZC9Sg$uK>IxA836T(69G-<~qq zeac`5=WCjC_cdlUZ8BtUC9%xj!SuR=%s&5I62QAXd;j41%5nvD*WbFV{KD4d(Nrm8 zP3LwFet!R;y?^jC`v-UFFUe|aZ(WBU-&S=^ugrI_y`=7OmAdCBCUEcv*Q=CnKUs19 zdQE?Kl(I{DsnWIHSFaGC+gmMFZ86zD`24Eit6P_Z%*o~k_SsbnzWV>PA=^h)g5In@ zxY*V7d3|)<-fI5+gKwx!@4HU<{PpXW25?FAPv02+t7@Mgy#8|QO{IGI-Zc%9f5!GN zE%=L9)>*>)HrJT8FGiL34(?IuVS9=ud|~g&+VO_HrA##A()40Y0bVI`{3c-gCANH+#o3WZl3aP{kmx88@_-GuepDa-#_@kf&*JCx2n?e3w!JBKe>PK zk-dZ0?{AbXe9Rq-vg=kl=-boW=)pt#8=h}h=rEt;BfAGby0VP-?H^pZa&Y~Xl?#a8 za7kZ(@UpHyQ-AQjy>%7j?Y_Mx#BI$;mMi?kYOy!2JlU7GmcwdG;wrQ53x8qdzM_}i zIB)&%hGl81d;VopTiVS{LTLX+w0qCqx|#9jyz-^n*Q9YR5}xlKykP$za#>?}(|c4; zc&$Es;16D>eE!*W>nkd*4YIAM%9pu7uw{k9h`{s4!`pf-;Ut06# z`dhAPo3C5bv8O6EYicI0Ke8vTKe~DS;k9ed-#a!K&Nh7RveBBDxD&o%@0xx;sQUfp zhHv=V*1<=@#9c{#^eN?g8j$%A}l|KK|t zk?50ZSb6z|zQ1MfpsFg=Qp{Ti*If~d{Nr2J`*QxS1ued6?&UwVD)>ir^t-p$b@h^m z+Fx1dHFJbrp)1eTZ*X+$;3=2mH0RaFl^jmd)cZDqA7|kUHX_Y`-te}(?|b$ScCWjX z)pE-3QU|_sL*>4_rgFc2>yuYeTuboQj9-iJs_iWG=u5ZoF}}D+y;?Vk3-8U#`EI*% z@Z(o5>7ssbU4X7@wsd_HqSV5!X+7G?KsBywL- z$A0x9mw06F;A7W`<^1zg)~Wx>S{mNJd7T0-rRQxcp602_=W@2~eUYrL1$3Tr{i2Yw z80y}Y?eUe^cULm{&0Cj3{rXzU_Oa{M)n}Rgy-c;6P1d|_8RgeZ;)>$v9#Ki=-s}Hb z%Qy4~|F2qe`}X=EOSO2BemzEhZnZ1gS}F8;B-y@BVaV%NUA9-_YI)pR1}E11nH!g_ z$Ghuth?IL1b67%c!*7?Y-?RR!B>GqE*vk6!6x>XLk?k-jLA~^B+MOL%D;XYJ~zPhH0 z@40zN_GecKie@p-({H#n)nT|c!|8(ld)DZ`{u&9vljXU{Fn&~IK}#~8Snc?D_4i-) z0^_y4@y>e0Uaoh2U%k7Ls@`=u5I;-x37o96H6E=Q=h#OZGOF zs`7#R-}mi`M2f%fTu|}#Th?_tary9uhn{Ds0f<-5R;F6r%x<5%V9d=Msl&fVd3Kc@ z3g7x<_Ya=7VNjFJq-4Rz7wug0kYPQi(I50Tv)x^h7xAR+BWovOS5_$nkLWK{mMPZr zCpWJ1KogBYNr(?_U1c#*b%Xbcjl^wxZ+-9eka9X8hWyplISC(+Z&YqvARA1gm@wEitEgMHDk8G`TT}<`gZe3?e>PczQnli3?=WXSHWEsqU z`mNbvY#EBVaD^jsj>bVGy#y_NAXE2Y@Z(EDd3$0uCUDtnCkGk$fw-v|syp>PoF>|;t zLeX6-aSc`>S!0Zv031Aj|B}=#N+e#EaZStbX)$P>O@Ft0&G`3W^=RUmt2p{ktK{vG zt!wCj>O;5?{%LPrvp&DI&Hx^l5~>0G`L4n=bu*z*`TN%|Tdg0U{?vClMqNuv%W63I z+x;a2)m&idTAp;Ysu219g$e(|M$WOjcZm^vb-#N3<>MXwfp^nlRh`bS3H133&ox|~ z`*DtCHul()jePlQS1z3#@D%X2g@1b6%Gc^vjb^(Wd$H*)OX)1#scG%(=f;2QhQeL? zOGn~&2r-Jm-?-W~YaZ@N3G+*K)}70f!uplH^&l5e4_2PJ5!s9T+HObrynWSl?H$+i?fn9w^sUPO1CU{aR1|ZlQ;;Q&#YiH@%n=h^PC)LU?DrK*{ zXCt%v`epXrv*F^`Z%;n7asNlVbNXW&eSdu8j?E3~S;n8M?kl=`@bp#F>$W#e$#*wy zcdmKUe_n0ouP$zTI&NC7jd%Ik-Ge{bP{Dh5w?2JEx4y!Ey|RAWj2A5LBENXi?Rz)$ z^5012zuN{&y@B}Z%YOcK`x}O;zkHOnNalZdgFKbZ%I()*+T_oIupe5uyl1bn?8l$v z0k#glvbC;K&COG(3iPRxrpJivN-{oEVZ)hs4vSjvC>ysx>I5nGqt-K(W)8;4i#UlO0@yxzF+r~%hEZkF#-75WXk z>r(A+-YQ$&v$!TRHV>&6M;Pmx!~NB0gO}GWk}U10X07!Xx0d&*gjhbi+R&|^pnPO4 zQBgJTTWf}KT@JHKpx#+uls3w88ZC-11K;*4+4z@*z3g41+ua+~FEew_rRDYQ z8$l;_+0?arun(>dg#Jlo%OC1jth{yOe$4um_Zt ze&a}BsioD8yT+Wlf7!4g&7u7GwUeXu#ja6uttWgwy1Smgt+8dPVvlcKV&(teIJ2{2 z-#r^)W!)$2T^{^Nw}D@Gc?0sztxH<;whfQ;*tQaAH^a+gTkCqlHk{q|{)X}1vl{7r z`v;HhUgF9(wk{FAo?g9VahUSRjZ495YH*iI)U|SzPpZP%d{E%=jXdXzoA*Z-Ou26J zDF{^wU%0ltU&OiBZP?iQ9nX6%Z;)?LcM~_Nr|UN^*7ETi)@66!HMDW_d5kyji)Sy^ zwzq$}*q@zloXq^}T9Chgf?3SAjbj4WF9PX#bV&j_xNupq1S%>V8b%eFA?;;9CVc1ZD+3DDdwE z{)51;3f#$R_#XtmNZ@}I_-g{+BhVr6Okh>uOyFM&d_>@v1>TU;@EHPMCGh73zC)lf zC!WpykhXT^`nEq^@!>+WtBZDT;^luo6Z{o*j|lvlz#H-!K3m{D0`JRfW8CrK)%d?4 z>fS5RDKH^$BJg2>R|W1B#J}AY_!5Dy6!^0O?-%%Pfky&e0>c8+0!IShFYu!RC4t`% zxL4Hh{icSu3VgP}R|tHKz&8tgm%!tu zHrBAcqx&gg3q?`)K7kJj{FK0d7P!^Y@F@ac(9*^#^Z4+$L$PL2_ZESN0v!V50!sov zF7Ppdx3o39OW?}|zEK|5Kn_U`^nI0v{6iDS_V*cuPmarwhDC;7<$uLxDko zae)nie4k_@NEKL zCGbBB{9S<-ff<2afeRb>yufb@ym_SIa|OO!;C~hP4uJ-NPJ!u>wnoLrFXC2T)IB8X zlsLVp`;@5rhQO_{hW|m}iv%7Be2c(if#(9t0v{6iQGt@cCj{Oi{P7(EUn=l50^cC; z*987gfqx{>BrqU4!;Z_YF)^L}G?`ilK4b8`O|1_Mc z;UW#s(C{`5AJOnd4L{WIUm7~w1&-EmqJ~FlxKhJ&G`vK^n>D;k!`C(Zr-pGoFZa>V zpQlSST&v+F8s4qpLmIxS;g=e^nx=UZ`bfQ8veJ2pJ=GGe%VjMVHz&b@Ei?)py8bw-ml@)PYUhd2)Z7u z_2swpvyU|VQp3s}0{7RjR>Na8T&&?54X@DfhZ_D|!^bszS;G%Cw6#84r{Nq8muPsp zhHEvvM8p5m@aGyn@_RmAjQ>mx568bdUbNL@!2AoP=Z1z;`$#_`kZuObqw{c*PuqMR z7{OV9^}B6#B#rfMyI6)_ViNy8Mg2zsF30nEfLC_f>KLM#UA8)oXz%4x{ZS21()mu- za0%eW$bX84D*&H(#a1f;Ki_GqCcyD8+3HNdhn_2y7t(M&{#}pf8+1F`G+xfu<(~t% z_o-6*E&U#yCv*9>o{5IX-=TYX>m>l*#u zwfep5y1nPubCb^ZL!IyDKJwkF^KH@je$q!fw(54=uG{f5{oWn=y`Oh`&%e4`u9=yLb!_de}bu0PM{OpqYG`t|)wzxVGx`q`!X zNgMI09@?-?`6EW}<4gOQsavsh)Tljf*}onEWoKUl*22Ij)%jOy*reZEZS+nbXX$|-l(djev`xohcY}ENK)#ZIh zeoqg1E zmmz%YZvEap`n`Mgd%rY#=L7fCd&IYNzF+HnYj=xm_2tqW{M&)&k5Yc%-Ti|9C{rWPoUg)pDRy)0~h_Cx7FsS z%G3WF7h5o%TXvPFzln>RP}d!=*k$xHPxs?3B(`Cmy$yKHuAcPsF7@;Ip5y&K((ebJ z|48+|*z>(laABjo{LAJ2+}7>hf5(4sG3CK~VN^5*{kiR>^88mmC3>5me+mA*g*;0E z$K$;W9=1K-vpoYT9XLMX)t>bS^U=AV5AE*xKAn@(@b z(13IBeqKZW&(B9^+SH&AvjJCj_QWsA^BvFF>f`6i$8B$C&vCQ@*ChX+e?jE`2k7V9 zfa9O(S^o)m$wk>G0v-YS8TnFq8%{_16X^3uJ%4=u`B(hA81H=>&mToS=M%)cbhh!Q z=+C8q4X@A%CUXBB4e6ZH51#JXj;oM<1)kHHNhj>=`TPd`{6_uUea0?(ew%)Nd$;%f ze%zy<`)PhU9pG{k+W8=jPcMA^asA%*K)J#3NfVz0Uw{3@ub)=~@%Sd-_k)*upa1?J z=>-p=J^gl-^Q(h!a~tqR=jvXJ_Rv{b^}xXidY-sCAIW#3l{#t{=E32}HwSf223!I< zm|_dRo@xufo~G}Q0K5j}&a`EmW&w^Ty9RI@#=ihK80E~-`H!}RzaOLXAFE*lTjg_aR1OQ$>+O2DIliz$oflLBoJ{tklm>2Ry%%OM2QE^kc8i_g9_oE28IDq&=o8{n1%vq@P^~I1qF;ubbXIA|!mb-|lk$e>v$R zyLyh}Pe_k@wP*UzNuTINfByx^{il1TlRh>1*`Dd7SKZYM|EBY5Z+ohIjOmZ`p@)Fq zr%5k-PV}PB!AHkv{@~O1f1{s|q8)Dnjz|070$hpu_W%w=eeVFCgZ{o3lKJ;X4L<<< z9M5Z>>N(Cq{`WEIZOHQ#@_z|@zPqbDzxzV@ef_R-zB@FGd57^E0r=^2J^TM}+|265 zzp^eY z>s~Hz)BQ*v*~@s7esoSRa^p>1o}cFTdzfy||LEsmX*lxf^8Q@f2mbxPH7MtUUgXLz z%#!_R1?v3`=_A0~BY@*~iXKCD_b3od9{4{DFbDY1&YtxK=U0U#<vZzV78+gY?|9J=3r2BmKr$@BDOgAL%~{ zq?hq^OXmGR-KKqX`VQn@0y_FV1tbA4I|0{1PCNzJ0(yHI@M+9}X8^Cq*ggyRJf1%X z_$k`^Jm95x{{_Hzfs0PSS*YVhz>%2my8t(Xo?imo4g9_gXal}N<>UEoz!NZ@uM$N1 zYm^`D{{xkWdGGU4~*7f4Qx)tfqgU%OrlZg++ zg%2F@Ou5`X3G{d|(&qdx_G$lwl-oUhU?1uG^pQTakM!Yvq>t<)eN-Rm`}dJv-A8&& zAL$46k$!L==@a@$ukR!M@IKO~_K`kIr(gMe&vCK>`Ih2lGx*>#z~n1(M){+lg}Hct z$E)Qsg8u0HA8+ln`MV<9cG^A4JB{QN-ly|*2ZHad1e^ytYCw5)bl(fz(AtY1SK37R z!4K)I?{mOc$*$duKCA|O9ekV4{yqogHB&n7&jehJcC-M#i~Clx(^1bFz{%*>S!53) z|5|Df=zkH~aWV3r1Q-P!pA5Jh{ayk%5cf*~?bLL>Obl~7x1RtVz*y`a?b<2 zv{UT&d4LxXo}aP#y!f{O=^I2>>=e7c-%B=sPv&ARH$s7Wzl-#RFNl4=8~N!h;{%ZkmLwh#qeqTp^2-JH$wHIUk1Hg|V zhsiH6>sj#&oR9Z^20ZS4snkBd9y-7DDc~HyCx|WpFYV?>>O}gM=X%-+ zU$!fBl=hG zA-$gbnt(Rm`v@=zJb$bq{RQpd`)MAaKXmTyO5o!Y;E<2HK_L?@;3#1 zO@4WFUi(|f_Ya!az1Ufg5uSJTEdOymPsmTRh1O}v|MYy%@_$SIF6uX!!~MP3`@h5U zF|YJ|?-|{$G~QeNN(m1>52G{fzeGBH17Hm5-3R#^fS195ZJj;&=rE*j?nS>Ij`U=J z_Ix{Vf26NO{RaT%(7!Q&{eb6cz$bvG0|7_k{u_Y1@VrK+j|H6kbO~QR&gcx{*HI6h z3r~K5*EAf5{O6z_2LXNzdK(XTO)vJ+{~-TzwEvoJey@gZ{;hu6Z|JA~i|7~a*?@AN z#(1?Q#qa)2z&!CQo$lk;Z|_&SeO(%!gM535p8*cW``-rqJfNq9HEbt*A>XAMUIw@W zZMpOrSfKOdP{q1Gk4?@y8=;Lqj{I+L$j@SQCd+~f%H=8I4ru-<%pVQ4hLH?+P zz35qkkbgJX>z(EH|Gr4y0Xp3e@M+NP=#=Q~2LOJGepl=J0|9p--#0WIn-V|k5j*X& z{dtdKn z&o4`fAN2ap@_wF!Y}B_^De;fo_CmQI@*+IH6m)QwZudG}PxpKmBj1;J-bVdGKfa~& zKiZ9VT%gAx`cyeSFGBiwwBuq87k2YaZA^(DWKK7Evuk&GJKFJh7xG+z{PTd{{{kFI z`boF(yBg`Mfun1vT;yBZ&7Xe*(xd2O!_IPl=B3Cs3pl(C@FqOF5&6D+S>6xg^>RF~ zBe{v^b}#-@XL={COGg-u`?Y&PYo+W?IUz(o&9{mU2RADd*Ey z%FBs%8@~kd-Gp{00XNgU?8Uzqthc|ew^G+TK-W7^*E>kpJMc9r$H&uXUC;iyo^kX( z>KdOGe|{}s4a%F4mhtod{Bb)B>3Pu2;egL${3fS`j_!JjC4^n^!{bO*|M6mT10Bl0PF3ux zSI!q6qjJc;!t>Q=#|mAqPp5vqCpDd}#PhpQ-s-gGo3EDBCxy^WMt{%5^GAtKca#0! z)c9EPYB~R);UWI_2MxcSF0G3O-@gFqUxM!IU$V>a@)5FLL3$?O7?k}ZAl84$Jl^7BCeH9okrei?5d}S>2^t+WQ=x< z3SICdBkSxjMmn91+uI7p1gAh>FEO%dqrVh5A>HWLcSO3=nCTc*4!?MBK?8bQTHnrZ zj89YfM>_TO#vu;cWz3To3@_bi3~(A73&t@zWk}i>SM1JfX1c%yj1l;FlQh?;PB)=X z1>+XeF@`wCdw3ro{9RjkH*9VM&%TzUb3VcJ9r#}w`!4$!|ZMTBd%pb zlW~MoR*!Lq;kTa0L24S{H^#_0#weXQ5m@WTC`}u)iYObDZrs$?)Y#P6=vQKVJI#H5 zt6+TJlHyxT&#zM!ab=r-C1r2Hu5mdUVfW$&I@}e|f)mG_k z)zalm+NhBxrt7=7hH4&z>H@<>P1_67^fA>amD9G=7x=oXvAP3Sn7%`)f{at$*}>d{ z3TvuH#lsvTJrIfKRHIi-P1Q!VQ{ak`0k2j2R7Ul7HB!NYkrgwrx=`4oo5LS^p=QYs zW@~kOb!YY7_Ud-z-qhYzy~%%;u13AaAVE+zUFbp+cv>|zHFW?nQeubyxW2l&tulO)9OejHcpM080(ROkGTV(s4$Yhl|6k!$@96>#WCn4ukMnFs zT^$`<=NNAB5c(O@BrP18E;KcA6Q-s?GJY_PaUc<*f47Av=CsN(E4LpSM9pJRJ8P}d4&EZQa$doP!@#V?z?P~{ZU?&YCL z`}ldh-T02_w0E@mEok!xQAkR9L8(3}4|KNs%|^`@2|y-{YA$$#aS}`I{rqWy3`4lX zjE33tuJH|eh+?-i(qycLFxswjFsCuVl7@4O$8=(h=uxN8cSiHD_JXu)HgVcYr)>`= z3iB?m8LA0i9g%J$vgYf7>89<1pAMhvP4MX@pYGTWZbvOUDBZEG9f)p&G~pMorFp{q zXPf53;Ch=#`4NV}y)0B$cU04*CO@LDfkYEUzD$j7(=u$5FXygp)5BBg_{tDrczXd= z?rmzTZ`#!J7jwQxdQ*Ml-tCQGEcKWW=ny ze^z}Hv#Lv9uPdq~5Hn*PVsNSgWty>Gg$ zsbl*l;orKv18E`aiEj6G0(H&?w)e7jvMz6Bp*AbiP8E%>Cs z5}|*Z`36mm4iE2)u-z(_?mT`5wJ34LRGQ}woL5D^O? zrjtgW;wwq1FY@s-(i&B|f$ct{;Fi-Rw{i=SsxXri2`i2D+ojc6M~mIkaBSq+w1|H{ zspo0#%h*3e(j7?X@U`-`62D9rhXx7T__wJ@CPW++qN)zz5xsT~kH-jMh1>OL4P}YR zvV#W~sddzsB8wN+Nw$qlq_LE9gO<0f94&(RB-0Gq-$18c^BbQZ<J*>U0P1L?>onu=Gf!9`pX~}q8TMyNvqaKCT zSMOmfq`unEQ|&;jAfS^_n7s5BB_E72D)8h&$_w?RP;F~$swZt^o3ERFg4_O1J#uw4 z>SrBV{oJmtjFIU=JF8_><{{|%JXB}2>bVHhpkC~gLbb4}jrG;s$Zfh!1#s2vx`8Xf zSW#3x$qAkG6_N@~q{@Kh))ypk1KuXxuG%=(>Hg|oybX?{=TUW6eWBCO0Ya`Pja@$^ z+;#wWq$}1}w{I(z(_iPKN=oP)g@#wiYMC?(>I)F-qe6BYB%W&H2H-S~+@p{~o5d;IF+SqD1 z+B~TCaU?Aolcw(0Q?5qX#k!#zeHpir8H&jS&9i@z(d>}wf_7D-Jy0u&T0dcf3ap{O zL;4zZsS5K&Entd+n zB-LY*lCo9R)JA@Mc#R?nIUuXK03%MYGz8F~JO43PRl%l(4_k1TDB8Y7V5B z_VJ|K3z}u6oAwksh};XX2nx*XQO_Q&NepsGDz?iV8ZN$rb}lLFv^D8$wSE>2P$spI zn$uKD$&lp^DF|)6Oa5!y-o*d470O<3@AeL~a!1x*P#ZN9@3k4fGPHaoDbh$5p%jAh3sOpBdjV$L5RGs!@g|XWK#pI*Xs6KFQD|&} zz2di-lz6Zx^lKzq*B}2X%X-}n55i8s9Q0&@X3*5$=DV_bKAxFw()wuyGpD03Sycp*NB>fmL)|JYY-abb%-McQywdm)KU zGxbhRH)+N=k7vP{>T0dqv)6(oJ|$1;Ds;7ND)`-9DR19fEw&S(a+B6kRC*6hQQzBS zREnJdVTN9d$v}=zWwd~M!K6FJVJCqn*8V4j@?SN(P~BF|(=Ljc> z7ZdyJ_6|}XCb7?iJZYF)q+#yokk_G;M78+rI%R;V31jwb?_~8-aMr=C=N?tp(~Y)P z2eVHSmaSyt?xnZ4QB9MGirD(bJJq27;!u#+K`yjyv&bL0YOPB84>&>l1U{i|Eh2$c z-2uU+GuGE@oej1ngof|Cn_XRe?=4bO>e1t+WOA{7BwFHOq=10&Ye_J>gP4ET@zq`} zO}p@}X4M1IZ07m)C6Q`1EU|MOpRg#gv90I;6#5|D#JI{}g$)hZ*1l;|VK3_ol#8sh zy}EwEUGaB_aDH$@ajC3?jVFE0aOp$jW}OHyOgORx)Jn;GEe*j&ZiF)Zi8HC*|Aif` z?VEImb`v#fVNztq#hA-R4C zwZgf_XnX}qmYOWSr`F8w)JioO@s*Cx^ax#DdxWLc6Rph_f|=bWoFGUPV(2TQQ;ROl zw#IGSo3@GR21`^6(>ea|4uw$IpM5TsPFGuF7x`=Yv0*%keHml;76z8|q@A9OX9a3B z(H;Gdiv={V>I>}oI2IGE)?xEr=F9AQ;|LaZlPDJ+>}ex75tDE~)-F)Zv5w9&)Zr<{ z|H&WmsuuSWhj0}`s->UMc>$ifCsk$q#A8*O!I%$wa7H>~1Doe@=4VYJHKl?kg% zxY>OV=}BXaI~0Wyd=nUqn|0>#+!myn!^~6A(|6td(AHtrDORg{IBKHaKVNKXb8Z)| zOE@AtOy}QqJ~l$slF--Zv0HNoCdZ@f*4&chA%HY$`CobV_tVWaf67cVk&kd^QduT{ z3q1eRV1MKr_fs@p&iYy!GWFNrmAVxF2tyGSS9QQ-RYXdRs7xeV)9M~aDdnu_oj;V~Ra?Fx+LK4oJ`_?rnF3=5rNRfT_KwoIOtJbqSlZf<5Nax~{Q zxKmaB?QA3)&05XwWhgmr*G@YKRNvRFw~9z-osZttMS$mU zu-^qmagl~vz_baRtRe8LC&OnG?cv|*ufcPWF3;3-`JYqc(f_}sMy9`? zm(yRBqO)3r{#K~+*ewd>tWv_KlxhM#v-nM@^w;1o#Q2lHnM|kK9hJW?gnnh*)^&pqhstoCyp|a*~T1W%e8UYMaABTfW5+|gqX7{I5qFrGU&l|2rGDYrj zrYPo+d`0|Cu)N0^%lN@qSk(V$fETar*1v>5KNO9qV)&-3c;uJxh$77xX2^&R;L-hw zheZ zf0*WTEo${Rw<_B2Y6A}@kQ&>LQ2vb2Tz7BJDbd-$%0EJw0(B)PBqM5BGR|Z7F=%?K`nO6ZNd~W0@l;(3 zvm;r`J6=^KWd_qY$(%`nPwjAs+EY9O{;a(87DKLRzBnqGu5e_&e1&WO$%n|FOc8fj zo$^wbIoYAjH6LVNPiK;)Ix@5kKn()z&>1yvYZ|)L?2QKym8DgL_${7HHbZJQ^MFeo zl06S3z_;AT@C$yBdo*#XN`|vWYfW`>iID_1eFRV9s-@;wWrj&+K9Mjn6V|w&xdPuL z*%7V_591L-T6kFaJkx)#IrnS=TpE=AF|hqq;&?n?ll#P7uJZ4skZTsE|0oU990xU# z+JD}Y;Tcn?{RZ=`IcW2Ez=oP6cvTEF{gd#HQt7RR8erOZF4dg-wc|23OK=)`0p9DP zUyE@^DOJW$;O`4et-KI(uSE-!xXMvijk+BNp6S8o8wUL%`9(LnWO`vM@H7H z<2iRH-w{9D*GL+9Gjfd10e(_^&ODDKMV>XWmfX>*A8P?Jj?go$s~j5Xu^}&XrPJ&_ zM6IwWSt@c)!_1*;cFRKNHDBIu6aKtVJW)-=Y+L3z(`*)=?Xj z=#}%(#@8|~wXt8%G*7+5+>gu5?a1t_%clD(CD>GIuyGz^bDlvQ@H{gUs={xJyB#!u zta5&^rqLf5G_GbbMv8RMh8*GKT(c#2e`2g!llzB@akSRtK6PuDf7AFpkg!-+3u9zx zY)-@2+#47hn7#*pSQu{%jeWit@2BWo(Aqo?RRp zlTxObRkn;*5<6nt%+#9JN{B`^=>?q3S||mFBFWx=^LhS$U-V_R>7vm!E&! zwZ`3p=lMTo>{j(4Nmm=i@_5~@$MEMohE{P5t9TsHcC!+Ct+a6*w~=^+XZjd|A`q<9gM<V@Y<1BXbNjP3=f?O(yyyyt z@?6GLAkT^GN6sInpe;v5UP4oh$yE$EmMdsB*_N7P)Tw32ozuAz|yeglOhr zMe?Ff!I}b`0Bp6oL%?I><^(gX=vwi0RJGQ0CL&S(jWxUHqYcRjl^poyTIs3Wd5P(kpU!V3>F!CT)6jy6D3$Jhs`5LC3q*=7 zqPr;HZE)AA(dye>RcbZHa5ZLSb8cPYE&Q%excF^Lyo+RU<+)~;nU@4tzR#~S3AHOEK zZ)*tM@_Vp9=Om^bOD#Vfb|=xQQ&!5Qfl{c1qxj7#OIiWj%3f(^r;j+!v#Y`@OfRxu zg%?FzYmP~*k7i?Y!=V_b$Dhu6iI_v_KS^Xgq{lfu(V6v<=em^st7P^7q$fB%`FPe# zRV69?cd2YW(vz+3cU+QKUKkp2>W|r$$qk9+CsNC&aVtjrR@xwS7i*5(m-V7YB#Nn0 zZ{&WYj!za-6Q$BuI9}v^DSd&IPFiQq8m-oMwdPJv06$K~QCfnDmPR_yVl%~Kq}Yn1 zIC9~$A-4AkKnscY(S;<-$ zenHl(%^s{~SW#FAM75jA0t!tC!6qF=rA`B>BFiG% zBfnf9o}DDQ{&(U7?iZM6`900~7TJ9RP7w6(z1Rj6mNo8i%=k*9ZmhVk5wbf2mWT6Z1Kjb-XHt5rR! zcGxr1?46~5IPY{a3NJn2>?&XewcU)5@=Bp@;ot!$BH~pBS@#vV?$>+7+0pl$o`ygh|{f2v_Dwd(tN9?VIQ-Jdfgb(2oL zAS0<6B{q!jvzpHB6T1N%+SrpME5U_bc81$9oJzQsOQ6&m!?T`BRu~ISvg+yXh)he( z>54p6zWr4LyY5_Q5$|VeIMw%tQCq<$V4aUmR)CAq{#o*%r7RjN3vVg5k?8MGJsyVz z_?uF)S7;e9EPW{9qMr)--8^Gp+%t#AsK2i18E3~lbDy-_W!UfSj}4vmoSi&E9RMCd z)HoOH%`^73vlY0qvco;=+p)PoRCcUqU1!r3$xHF$edY%Jd7eeSs!?S=y{t_hwW>-eQJ7RUAw#ZWUfn)=GF30j;aQ!CQdo;JVD9vxd z+_!2gW~do<-10&q&l`Y?31P_dLr9)Cfa+(2Y%^OqBW#CD`fscHOn47wNIP_jdP}ad z`5Cs&sWX+0SQvOh&;E$Mj530AreuwI=6&f3YlouQk+T}s$m|h2@(h<}5aiwMi72ORbR@+y zS2~^*c$wHfNC#}5y1mk?B zJ5hVVt8Br#&3fuYoBXU3S#sZLm9J{lg11aB`k%JyI`%lHDnIRZ9wWNj*Y`r1j;*%hL_PI%#2+`hq>=iWi8b?0jsXt*>ADhgvFM`(rE#j)EL6J5y zj(rm$T}~ISW(LZ!dX!Vcdhv(kcL8@^qPcT*(lQ_+jU_xIU6xT1JYP-xAd?^H89$4a zo}j##XIx;H=WRybxB_aq@~;`JHjua}UABBXBQ_Wi}FG`>*0R*d;%sfM*QZ>|yD zEhN6t2G+eCl?@SJYv3n4;$E0mi0^kA!qCPrGc4P)zsufdvW>m~U-=}}QnN}efSpgW zX}oGUD-&4r^1{&!@z>==itxhwEB`84FiR=jsH>!_$iQy}iTbY==Z2SK>)5=OHW3bUl;sNO$C=^UN6;!rBO;3t-Jq4K*2XpB9!| z!$}v&-2}Tn3mbvF*N0qS`_G=g>1dTYFFg@%3+Ij#2C>9ow*l z#^lDtNT$KK`18eSfcKXobp)32(igy+ASLMWAQNGb2At zUq!s=8=R}1eMuF_^+3YUNh5EVPvPv=vG6N>?qH ze<$iou_X-ZjT{;Q56GPiY6LGIQ)Nlb7Rq{ud=C*?L5q}m3M&Ji!n>?BZY&e!>pLwf z=W;FkFH-qG(wy|yWe?^V8s@tV?pT$-u%vH5s8P=!zeU_*r1U{Knb)gZU zUGcAk)C_QkmfTWhYp)94$*oYr*On(vWzF2?yG4mp+2cW6j@ChfC3vLs6z7v?iJdSG zHG`{6li6kI^&ivn)Z0AAOv6(TBs^<-+E1U(7K3dji{5sWrW!Na#hHB)^9l|Fk5%R7PCMnyA5=>0;R2i`@#2+B1bS)Y zz8wYK>oOg+vxi$pGsrXNS}ir-$y{J&2R7GSo;ly3Co=0V&9nfPEY;zyt}zDuhqE^E4j zcr``5PIp>agXE6fk*)oPNwbP5Z3YH{N^iiwOj*pyp}p8y!-{s+6)Bo^{h0TUz|(ao z_1ug+B}|cxe<qVF&z3m47dhV&Zf!;gLvJ%b|C_5hIDRS5vq`yMYg~@@ zm-st#&@e>@Ay+t;UTeJMqJNN06D=?HS^Ut*bBg+WC8fpg&eTDlEKv=WvV?!HRN}|* z!gZETmGM{kp(R_6o~+>C>-cw+5?hXbfi?A_zS8y_THA@%(2C2@Ot@_2r8cnga*7p= z_T!On^P?(&@fbAlLlYl#RVAeMgz}QN@T$mDT+6pe-e%;A>PxUx+~4K3nVS2YmKfT; zBOA`ntX*HHNaLN%HIp>oH$gcjN04Kb7r8w{Ph0pYtpRqbe8P+TGLTB|+-`8GA-t2K zCpG*eiYHf?^rQx*vCnHqNoIQX1&qyU++s`l@{h&~y2oL9WMF0Om#DLPADPMi$iRw| z`573Ql61zCQ&g$05lUpP)a$94Mp+9`+R*gk3Yn2(IcDr~wlIi8wYt+Il!tXJ$PdV? za2F)n*6KbHUuK6)04_EdO-@$Dlg8uuqq3%-vvv(E{9H4| zz+tqT!Nu+ggF4clvzw*hS1O*aOVjG?-@^B?T;1$kt>R%XvdXLrlN7w$S%dq#UM5TQ zLX?72hHODsGg97k`O=-SMOn6LdR3vKFi^lN*D=GB*3s_iUo zBYW2TB=r-RP!xf+nk?{0?O9FS{uH@hkJw@J- z8uo_Rpv8D5JK*3oG?#Y*Q^23~nrYVfd4J6sf*tlP(hO`1k`AyMLKHAm19>o2%LR%7 z`aK|h>*;t!8@ZJl1xVlU>C`ghAGRvv<72z=@efjB_1s5s7PhP$KS-R=&Kfgp+vv{e z*A+SRVX%15)f~DfzaGSOn(A2a>rr}EMPdy}qKWIky}Y>4&sM&^DWz#8 zPV^H8^b+%!O39zp>@J9rF6$+)bSdpgUVT^)qg4nm^=Xzc_PR~iM>ED=NBWFpGVG;} z=Q3WQ_%G1*8Gyr5MBD2eO8+zNBS%MJGe$FzU|C483eZlP=0plJtG4-%JSYClQCN7- z_?1iTtYmBOo-q5MF}KI6c)w_W*qy0~X0#HV#QrQ^*Kb0=3rDrhpmAi*0y*o{{xi#E zL+5pdIl?b!-jMG9SK+ZA1)^eDgCU)M2-msC>F4V+PPCt;MyrjApl3bLbA2q^R}@Ej zPne>2J*zEFGj6OORUql$$sfjj&zDYPA6Gvs>E=)HtbHmp7nB|B^38?J7K`bTSdOwvmWttzMampv0vo48LDI< zH;T5bJC=2Rx))pORK`Rev*|RA{VFB0iZp`G%=x5yGUx5DbZi`R-n^YsG=`c3SBmYi z8N8Lgr`TbHl?fjEx{aULZ1(e$1=0wf_crV5L(&ab3C|kD?Yo>~8Hs06`#b}>0-l%R z)v8Qs6to zn&5~||VlRtOAYGUC zCU{YqN$r+r$xJ%L_AHr6hlD&!r1T-&>oxSfDkFcp7nf1K1zJlgPNPcnxsE;79MKnt zfY<3BhB`x^`A`cn-ega%g)Q*BlKl`g?tdTw`<(c3O>Ldh+RvG}iE238^`821Mr`}V z*?zpvPi50OKgr`5%jo}!qj2@jK?ePi~kM52}Ij(kf6eAgR zSdZL@^t*O@i8t6|_A6K+lw)He8HNU#NErFwM%K5gkD-Al5`pM2^k*giE(C?X;oP6} z`?f4SF4US^nEU|O6=|3Cx!cm{OIqGd^IOgQdlJ9<8-6!UzU!K`>X>LU6u@G77-R7R zU5l4Ehh^UVx^6FYf}vX>Es|D*v_29h>=G^WE)b0P@pz*$N#2~}IaT;9ttS0S@CqBVnf_FhJo1j_X?<2Z)&T(Ty3?}TS{rD>eU zu^n|!$_q`*c;ODmi(cl`Srx3$UKXd>)D)rLMeIpGGD0&c#{9F&5};O^g5yWRrCXUOh4Y8uioa5)NCfBe*4Zauo58aUB^mEP0AmWsXxVZVP5ntJ;{9 znCdq57?nP`J-PjWX16UV{@s5qhVh~Fr?d9vfY{b1b5{%hPL(AXy@oOiy+7V`gSb~9}A#k4Od1xu*H^isnQ zYpuE39g(Jz-n6RHqb%}-9jIDz?U{GL5u|kFO)GoEUr>H7?Yslc?4U;uQXHj{i}MK5 zNSZQ|2h`r1Q!^5#<)v4!1@{rpJ4lT(I)9dbf1@;oC+6Y}9__bUbHfz*cJg6r|Jz^W ze-~*Xf0sze;oxZGVU)5+?&R1bGLFkLxjd4gJi=vTPAe)J^JYu#5-7n%Xmkd7ZEFJ z9k0%a71hqyH?x$#gxh{knA;wOJObCbIDxiDMKW&;c_ER<$0xjy$nE1{LyEMX5g{49 zjJeZj)zall>CL95sDMnO6aOw+i;ga!lk) znQWQuEO;c@;@LxhgFj@Zs)S9t&Xf>)fbbj%yC?vC1)DI}i5_BPzi=-r)T>qJ6xW5#RS*UU_WDRT7OQ_5LrE ze+s8l)PYfq>&oi#>@siQzp|eBJu_R;JnwwfZyd?)V4OR>v)BZWE1t2i*yzutD6(yI zw5i0uCpCX2+a|2z-?yO!ClXJxWF2=r`&(v&EIaGYu&gq<{b8yk-{(P>ep_FOr{1$p zGs=AS7Foj$IiXUH2m+PX7U`aJXfJdN$1Tifjd4e28vCLqvW-mFRkp12+Pr!?9(X3c zy@=xB-4zru!TX$P70SmU^{vVlT+rGxFqdg=IA4u(C2w%eGE!W#q}9qnDy@CEl;;uP zrG@BrdU2ou>UX+UCDdY1G-ynGI1vd{HA3v$yIxjELR zSY3|)MXBB7Ca3h2n|{0yeFN2twI)3ESJyK>PSwSU&R!xvhk2;EKaWqGrR7K-o49`- z0mjDUJOfqv+TH*^pNwH}EiaOH%U7p_=3D&Hi`2!B^lQhcPs4R5m(+7FeQmeB^enA| zErSmFVOROu7I<*vB7H@_6m8>Ja!-=n)RO!xe}yZO-x2WbX&K*#OfTm1)R_s9|2m)K zh!Z``L24S1pVncsDf8}RI9 z880L{%Q5V?_)}(T=<9SAFC-fGu|@5ADlGY%le!Ib@(t@QW3}#5P7S23{5C6Bdb|za zlQzyEEq$~|)Qu%STt&PeuLVYVZ>Ow(MWTe27_ffOW?PXr$X^eOM7`*JX}W5Ud(n8N zU%acU>pcHn^#1l3>HU6e1W6T%jUe6r5kvR~eMc*;*O=&U3e8#d_c-{VqCL2zKWFW1 zh%~0Tyaq!ju9RW}K1!A10A4Px_fxNk!f1~>(ZCAUb4Ia0QnaS^DiIENry%uL^8Bdt zJwgHf#f$zqRnl5k6lXl?x>U=8qMl2&D^3uDH-ifTJ_ZS6r~DXN$T=q>OTW{ zhZR$0E#Vc*OP#E*0w)|qMVGlyC8Cva=rXrauf7}eqCyGZRsMMfUUX%##FL68E-hY( zj>C0Zvi5KYa-N#;tm`blR?!y8z7cIvb`by|kBu-*F1hDfR^ zC9^%ns{`kjMUM)Nx+!g&rZTBiifA;&`{ZeT;AO~>cL5h@S@)2sisuo~-vO#T9`)5k z!&FE;>y6SLYmP##3&E-g{VCZng=C^=bi?%?lzB$!Ods8n5Y3sbve4X!dt@GJh>!UyN*DS6W7NW z!)zoNy_Z!pjIhdPXN1FM(9a@TpZHlQ9_Sr?MZe3S>xeb86>T0ktzl8@4TDR(7w z6zRp4oa(PN!$hP|+Gt>q!u(@EV1%eSrR8a9E^ za}R@XrQ$gmmhV|=uxPI8eXAS2n9Ng_?irHqnOG`D^92$-rc_3Mfc4k@95wp(BgOOy zVJ|`lov(uXcW6&Zw6wDUI@n}?XM^Zq?k^nKNo}e8Up#Y9*7xfSx5#II3GWy=gf&^{ zq}DrG&;GmX>#v^mHtrutmG0lgeNFLsl_mR~M;H>zn}4_}y3(Y*%WYxWCl!nxWLu?= zeNq`-(~^BXZ(6e7yyRg)yZ9WY7|#`@CKw_1NX1OgxQd?);xn-%b&%wceH=jkUqPMOJseRC|>qDb6Fgz<{5k0qr{P>^G6&s+RoZ@!>|-9=bBbHyWd=e z-0j<8x5@~V2Py04wWF=h35hJTO!rP0T$UfTZI2NSELU*lV<=8QROgc-=h4KI4ISZ+^_>Ya>DFgLnmoe75sr;=kuKgZ#PdPqD7z zwYCW~uaQRc*t1p@S8QgOW|+NHi<~oeqGz(&~H|uOi$7orU#_{d;-_n#enKer~ z17v=Tcb$a)oG!+#A?sE$emU)A<8=(Gmsxek<`a@@OXx!0(#G z>G*9;d`FQVW|AV`%Z>P5n^>&Kr}M4AiCms}V8+LZXH{p)iFr(0N@oT*f+%KCjV4|wH`U6f_TQqnEOXjTzuek3ZFw(8G>Jf zX)(>X-OIZ&NAUTLtCB){V;JA#nD(07;2Db9eY4^005AG@ z`6LX_{ws4QvApCDt_y1KTfH~8+)@}>Z)GeSk%`WvG=lG;*tct z@uSm=Z|KuMXrJNmcs3lFI$E`Md6sZd(c_!C?Y5Z`*lj~GA;LwcF$WPYDl1&VMNiS3 zqn+Va9S^cVw@EnY_k-LiCLEMF_>4#-R22hvnBSZ@dj_@mW|e=awPtBzuR$kv*xCpA zDQLBpbW+F{;*zBG(FiHcCB^5oDk)y@Da?UHOQcn=`LW?_-HWHtWKSV^08YTQF2x|9 zVU~S{v?qhkXpIJZhI}?+L`FNJx%h=eE>4hms+L*o%?t;$C{GEtMWbqR1F_$#P95RL zenYBKz9P@XPS<~1e>Lw3t!T4m}+qodda>EvkQ~vBo=x2774V=$w zPK?hI&S$Fp10=N~EVW8eG5U-YV;^8?oRae_t)e`uVBhD-DEY^Hsu!JY){xr=V`&}lNAvZUE{yN><@!rZ&W*ed+`&_yr|M!6MQa;`=lqazJ2K{5kl|IPT+#2@ zxIfXq7oHo=Mrdr-2gfFICXdbfo?{cKi_8hcrp8!vj(D{cMzSFPOd4+tSrXi zbCyxrAUCk~%jh+IiV~H`P|erwN^8E>LweDk6k5%%vxk(+E|EbIf0ds`ePlouP3MTn z6IA|n&pI;@OVAWN=LsBkmVZK%Zi&#tV-&0 zsgk}{Ni;xdL<1qV)Wuc_`C5Y#ts%@>o$wa1RfM;k&->bMVLGV{+9>Ad{N8>%Z$;Yi zytS5c-3JGxG0)rMn-kV>8u>%CtrF2bD4&;10A4mQo>lt)D=%qHYF@$`i|fla^XOy` zd1ake++*Um|3Bj~*O>orc#OZ#dx|Y*AXX)WE)v~%46xFJ$BZiSn7%p5H~z0Ui5Gp3 z!p42mLuCWZ}|=JmISYi`@CglFT90t>hqQf;4Pc~AMzGokDHHr&*%9r z^^zVpm3Nf+f*PN%-}M`(^}G8^`dwdqFC zL~Hg;|9OaLXkYF5n$3Hv7R1Dh!I7-Av)HOKK}(a*NSGdt(`ZGfho47hcY+%=KpF}~ zxA*kN;rS7Pvk;^OdGZn2Exem_Ht$FIu*-|j;uhVe{YV}|&I|rIgP$#AJS>Rud2MJN z=|VGX+wwveaoprWj?V*KJzf=(_D;Wz+Pg^GHZfk8j0R$J&Sx2ikv1;x=8qfD!ym_E z)Qg;3jk>SYv-F;@%+l{CC{6rv_k_RJ9~U|1(JH}Sn7pjomQV$dIEUk{zmV5b;%bb z^WqYJURZ>eg#OaPG>&Cjm6ZNACQEv2Lrhk95txLPO z%OohQuz|kh6e}!BnCb$>k>BVqU4B$6jrMwQ5#1_|FBwO zmgSUF{S@-lv_|vyde&!tdwcQG9MjE5BVNX7taZxlI+bU{2VGuBW|yoLiQHg~RPx)9 zeMx^biawe!MUy<}kZzEz#5{w9lzDav$0tABMZDbdW0QYb6_zt&xoxoArgI^Dp1!`@+6K+qjb;89@?U#&EQ<2ufNl9AM2|ms4aF%3vVo5Z$#AeL&HCRx&$n*y0 zy`t3?y)c&Gl;Y=Rn3lx10%s#!ZP!0siXsihprw@`gBFNcFUrC+pEc@RPscG&+hY3B ztNmFD55tTfKqrsbftV%e#kT%d$YkZ&H=A;$HBnARwh&|rx96F%FM?natJP|CmEN zpC05L+SAf>y;CKVEj9P3rAgYAUE@;PYZQx;?%=#1@`>B;XD0HF=UbhVRowB6saCYV zNwETEbO4?7F(5O+nWQ}DQaUFj^9AzMf%ePy+8oHcu2yMUJ&@Ces{Djt{Nx!$I_4US zU)#CRDAD&GpO({f_SJhRG2v8VPL8c`GIbS||4Xg;-|D?S>EQPcBx-1Q+B0RHeR#q% zWu1L^(lceHe0Yjh$_J|5v6#WMZuVEv@BlSh6}mj*JU)SOfTD=4euf{N6*2f61GAC$ z07XnX$3W64_sl4rJtVt)vXh&09}z|OIJ@8{n4k9mPNT?A%(EW=-ekyGc(k9ggFYs8 zqovn6g%4fEYn>BK@?Lmm%<-&8lEJvSa9ZN#B+~1|fQ7!ixB^2lAw-FD^tl0Rb==kZ zVuas%9s4D;NmO_+v_tvsja(Duk>;2;BP+ewvW%{cvAxuF4$(hFA9?m4(p2MIw0eRK`D8!ll;2;M zD!)J5_3ulTN}WAGW#c*qKT-Rj%kyRnucN-7IY1)Z-3Qd}c-+YU*|Vo4%gY?=mft^F ztg{rq^?z5#!+ss0JV*vU4|kT5o{zFUlcLD(2S!RMOC=>Gm>mVoF3EW65PmbNBXVBx zM_}dVtT35GIaJD^=(YC7gZ^txKy{@=q;dhiC(GJ zvni$H%xE^Hl&mQ!^(`F>c`;6xy{q+IT#?@Q4u4IiDk80qs4T~QLdwT#um1(( z{1ToK!mYP5=azZ!0G$qsc`zkG99+2d@A+&E!S1WP;`~1CAWRdtK1{{ao--BJDmXPo z+uPvOX>jVaaOywtuE_p@FE`QH3}K#mq~7;8gwy_A&Z%wT)KiqMt@zC|;nbpayx?={ zlyK@JRU%Va0ZyIHRMe#_|Cd^YQ_~m*IJGUDdJ5*eaOx>>KVo+ZG!Eg^G&4KFiz$MZ zMwHHh7_E-(;wZLAcb*$A=eZWq$T0BHQJUw{+T*tYKUF23`)?wkzZ=R4oR=x~EM}|$ zz6CkrS<5n_14Yt4FFmPr21`ixJ5$Wr45ljo6d?MJVTm4&;OH}l-^td{UbC#+>Srg62_C+XXw{vQ9cV0+M+Rta^ zio5=YlE6&hm{1;vny)wiLBiPr2#R`YXll&NI5lxZJJU z1E(1HQTmiuIMQY8Np53VCOQ0weTmVJ26hNW*;6_+LGKOk7Oy{?CD>RUeIGodNH_(Z ziTfJ!sHK7Pa)n!z&Qg}xL_hu>bI7jZa;IqNH;&J$@a$ZVRFagRIy%+p5qW=O;A|s( zT2z$d<)iX_jwp>vl-8CM#Q@UZR!zsZ8@+ui<1pBS4=egs#;~vXR)&1@LjD|`ZsP5J zs+H#h?KvE%T(vlt(`#m>Kid1$sve(-(O3EV7v%hO9 zqq^@2%W(fHDrA3_kD*~kR4q1!<9=n*KNGWr`*;~Hsop`rx_lqh_i-e;<+)%=^JGue z3@?4Vq%@Afd{xF4vn4k_IlNeE-)o=$iBCNe@Tvch@)o}w6|kt)zfxj1)9=BUhpSDw zYE@zWK62Kj6G&;N37r{9r;zfwq{dt{#k1Q~Yt2s_KMsQ4|E==h=QBktivK^@_Rq#` zaeqf=1NGu@Z1FvgJyziA?E12mH!pkydt;aL+KsH7%Q}wu+w2}Iu#33tet}hZ|HL)+ z8Bd|}H~9?S$!8>tguZMs_yEp9<~x;7QhA(hk;>c5ELY$<~l~8T``Ixafu<|f?HHv zQR0njgljZvT%vIUHBreQ)IRcCq5bDrh@IN#b-_N+wqj2U$a5WJ`b@5wK1-aimo-RH@p{nUK83uCTk zVOQTDpjE`G`5&8FdzkZs#P+M79@LCx!43)%x^8oHDngd%CFU~4xF-a%%WNw{?Y2AD zv|~yG*P0R8?qpM9EmeL~f0w@x@GeU>`!3z)?1nc;#^k|lktAbs8K-4T9@Su-E93F> zv~JMdpKT(}X1Vm^eH!smWYRy!ckL|Jc2=t^?qJipc>H^YW8u|N|Rf({`8@`{xqS*r&AkE z(6kjO(9clALQReC@UBLfYBrF)_8#W1_)p z^`TJEdBl5_<8Ht4-}Ya9Xi4!gttnj@tkC{=pNlu)w&sMF%psPN@RDX{%XH=?hq6>5 ziP|6@n>!TX&oWngY|gT=$BS+8ib>}Z2WanI>YsZUkc>l}Yf6l9aDY=4a1<*K)H%Si zF_e9k9M(<=9_!-f^`%ve*>pyT^v;am`c}y`6CX_1i5>C5Jl??XYAbexlRQ4BIZ2|R zKp7LC%fB)Y@DC$O$>r`~8AOTg#uIC0s|H(6Zdfg8-yqTZ+DZN2!D5XO#^NNb|N9z=R zpWu5!Myxxo__$)6xy#w>^Bj0Sm>MP0;I^vA1AY@%Z0r*x^4n3+m73?bYMVQ++l%36 z)`uLnyz@qSmsxR6{4Fl4c>_#0-|9oENmX8tjYT!&&##nf7%|wt@&0Z_Z9kWFv{#|t zGhm-~BV>K*b}QyNC>y(>Cb;eYFk|yF6G#_v=AkIIR~HZuCU(3qc4w4g&kketOdca+ zD7;H(WL$->&B@5f@yOulro~s_C+D{YGSh;Td@@o_0pISkZu4gbzS^&iz!z{|=n{R8 zau^x6F&6V>Jfd#{T4X5o0Q1&Yu|I;_;U|<559Oca@co~vp2F9SIJZ7|S0C?+vDfO$ zyWYg_x*dF$F%u9Pk?V-x-Eni>>onu7wC6ZrM<7ld0DW+C7-=Aew!_&ZW+l@jQRZM6=z& z={IqQD5mB|X$kSgeD+g)c7~FtU=47CLCUoT(>NHSDo^IsSoL$co60@TxYX}7coDN z_Y}QmK@YsK^te7dpWE+Gf|hL#R+SCNeSlleZ+O>rwRa86|Fw4=U#z`rF7YYvoH~-< z^?R@osf`cqugaRP?=mfUNK0$J#a^VZiOlfj^gBBDSH|WQda*)ODCytIC-pSORpkRJ z*V>rJ_Y6h<^v}gx7T6Oj;J(E3@`buw*Uc4`>zAmnBjp-p<(f?jeLq%B{S5avdXYnq zr#;7q!E)#Aputle)FcZZ@G4P~!{|7IxWcm)ut$A$xdOI$q@Ln^{xJ0-9XF_E^@;(0 za4YpL9mgre-CLD8^%vPkEj~ObhkNC4mmE$v`S1>%Nvys^{`ei{JL`VR&*s62<+Ogd zCWm9}D#WY1jUx+qKec29|(D8op@)GIp?cPqWJ6Sw$P zthW>i8Akw1?o2p3Ixb+&t~)b}^~Oy+$KEiz?I}#lf5v;VS4wt+tzS#Z)^DMek`m{} zY5N8|@2r}SWX;9_NP}KwW8#yK^PkxoNk1qBON$2v#AO8CL9FV!g=hrcYuRJ*ST^#=p?)ozOAHYvNQcf;5y6~u0; zzZF%O@~+9lRwI9JA!fNxU1pFk)ZYeR#dG1+kzra_8Ci<11(O#OU zYEZ!Jd#AzbCRw$9tKx#_qJE3WCFb31H!%TaYsj#&dKGx}>SYc2_DoCv!WwW{y}rO2 za?sBu?JuZ%vXI_&vwew3O|J=sP9jE**eM*t@`|fjYjh??M{18Odgj%cM9;j7o#>f& z$tHT{T^ND&bis#SgPf<#*cVHnwL$Ek7B&TmB@oWSHjw*>d+{;8 zd=>p0w9;$YXCuig>A8FqjXBt2uAte|r|SCXbMW(-p+=;zo%Uor^x-rDkKqV*vGr?2 z05W2GcO%Z`3Xonv3mAEBZcE-BU#9Kl(lL&F9(|8C+O_%UReHk!z4~aPbEdw$kJqR3 z*uLx)<}Bo@)F;yCBl-7c{@q_iTVk)ek!;SGG1QLdhb8xVPk~UD}L-RC|)T4E{$UCK;r*W4Waq+qmDL$3`tiMbjS_68|_4&NvhQtFC{dOJV zfnDN(E!zKhw2Qbh_WTm0T$jVUH}9c+OB;#$qOGTV=VkSIV*ovVpB@43kc=v4WE9X@ zW{}QLMuIyCw1`Io%WHPSyw#%*<(qg!?1qv}8O3ouXobi5`m*0w9y&s8D3?dL!)#S1 zD!AS*8X%b`Iz$Kg z74bMZuk+F`@EACf#*$l3qw2X^h@D0ckMh^TU-9>@9#~tu`QO#Ah#gOSU_dx6m*Ll0@ze?TSuu1`KzU0Fe0oe5WE7&Jw z)dQ(@>JfD6PySWAsjal#)cXHx?WVq!@ZYJ}DA&}iq(*&iY?S}qHd5J?jTFbZtZQ@Z z#71f!rRz3Q^BB`Ejovm!#~IK(yyo7yENl)+g20?`-l-gIS0(S?xX<58iC!?Vqnbj0 z+o*bM1pK=RE$^ROjMd;E&1+{;yf*fS3k*qV-a3b|c;kS3Nvt|35gQ^iiTmv-g@es8 z2fHtixv9L<*ie!k$4jL<6S>Q5+HX(5Ngdq!duK3~mkMWlZ7Rl}rUdsG8Xs&UnXy9jM7Wng0G8z#rM(k`#VVsG*Kj+BWsV zm~LsG3#q%NXT!DK6THOc6k7j)*d>cU2fJiWKkO3a|5vd~621CX{V_|#_ltIDpjCW5 zjXhw+=C_JEzm8&J3W`b8gLS_G53v+ZT7o@rbq&YF{C|u+@V^7cWDD&MB%VSN3Qv%{>?N z<}9!5QJd!O%u6~?X|E({#F1NNN}6^exo`WDE>ikZoi0)OVqGSp^eLgFiKokr)O9vd z`dhlrL6m-@AnC!B&g=3+C>`kZP)e`YWrk6DDBruZ_)WI@ifFwx8KL1aM&CJt(Klni zz#gaTcxMRh$e!M#953>4j?AF7WI>$&bv`aA)g3HRT3eUoGoZa(Z==1OEtI3GQ3Idjn(hj( zFW|gi1RO^w#xZQwD->fjdv4zbq-n3)6N+(6Eg}u$hPkmL6yunbja{olv$ML`KlCho z%Mw*t1D{f&Qyk-3?38Y&dDH^hUB~ufRIik@oG6Lbwl_D%_Fm+7Bq$LkETKJ(6Y*oJ z^Q?yTAk8sYDUP9z_8tx3XS(=v{7mQd^D~teF80Htj4iW}Amevr#7n=}fKMr{EuN>+ z+U$8st({@-Uuo@rh!L6ClGaXpr!pf7sg|}+3}yng6c(fIQra8v3Q}qSLqNR0D{YB6s!b*R93vUsGjMaO85DOMN=wGd%e!*w260jEybJ zjLT|(OO1_}A~{R@Lp{OB!jPrP@fDyi5LbK&k0Ot4u-4H0bxVm{^{Ar9a#yx4wPNlQ zi8eA0Hd{6Cs0$29HF`uv1NhE=F+qA9z!&}QzD8g4*NXjPNY<=l1ldOT%vbBSr%B{2 z)<4kt+o@6>U)keXW3(`_6wAJoI-ixiwS~1BNW*{2i`}Y5g}ephSn2-!pR$Wi%2qMv zZ6NJFUfhdkw#yvdUV7B0ZKkD0*i7gB*qG0jds*uB%Y05zKkXPIH6^p8_&%(hY0msL z58RnUEcD!qzEJ6p`%&v+idvsRz4Nl*ThiC>q$=;#t&pu0_C;!}DvbALO#_3J{p}CA zecp$>z>n3R*}fI1t{4*>V_B_dDk9PX;aSprOux02IOdhfn#wk>=@>+>6zjIO4Wo;` z@3mxf>DA~3DtjTVIypNU4Exw_dxvCAu_fl{JnvXeAI|<1pg706fnELnXodB9Z{m)7 z92$R5v^rlglM#w_dv9*FrK;_aEizFSXf&}Kmtt=#UUgUW^g5X=sD#*gEiLYmsoYY3 z@;+hx$!pl26zSQvoyEFdf6g3#Hp{*is>-*PHXjHJT8QD)6gvhtdqPpZ^!kADdLm90=XR+=~46?zRzMa9_gi=1kXjom{|wG*9_)Qs4e zCgt{sjX=sRh>b7F)g`g4GsFEQ zGu$+=gL%;x|CW#Y`MHcqMTnt(+EMxmcwXqI4(?0z(@V%>tgyM9_bT_DST`R>dz8xa z=)0`Od)quM6#e2Wv|i1p;{r8?zT-D}$U7=Kmet?Kl+EH+oz2tx#hi;+8Vz5p(^xuP zN42c4C$x^R7r(sou!abhO&NU`*OJ@|FB_A1i!rK_VNa@`YJ73EfZ7FRVLiRPpY?P} z%VUzUxeN0q#}dDuhrC0_WIBgAy5|_%s>s+@h|JfPoU0ycizrjd)G6iH)eP3fMw8pV zFqTGn+4!Y`PYc?(*U0c_f1}8$=2l}X+6jL#ln9|WFp?DFinb_RFJ(5@{^>a-F(>L# z(3benG#~4?^Uf5%$5T#<+ts)~O`CALC-{iJ6&A2IwrhP}U1z+jN_rF6^IY=4DDY2u1sFBzN{md(Wpz6$dxxO5nH7Ja{qPy>-RKP zK{I2^NyVY}2bi~bL-end7?k#Kpq&GL_p5n3)cqUqe)=wIg=o{e`jzkRH&MT${;#%8 z_|Gt15_^QdQGX6)dxZT=_+_PKq=Wm}BW$JZ5nv4xsGPsv_xm>Z{vgl>T%VWNEBqg7 zpU}4%`vk;uEwDwx0lf3u)FR=?qF5wA8?m^!eGTW0eb{V?=OI{64L)y<>;yUbO1m;( zseo(GDEY0+>~u{T;(~Z@`QNrt`2K%losieo3HiEpLL%{9`=3}Si0%h;^h6qar_k{n znni93r{qHXtT5G}lt09ijJW{rqKQ4Cq1TEtQ_Zyhu+8Ibk&3dQj|)Lf@k1WNxVI^qozR&uBM}alNv7YzM#r9X}>V;h64XIo~E&(cp%Qz*13h`@} z=GQ&9y6v*Y3b9#V1)Be8={k)Oa+m0t{uJ9l1IZdQ9kDmt*NN=~rPvYdkKa#J`>9G6?}RsrGHkh#DJj>EXv|m6s$W@LJP|S72Cdn@etoPO-3R@AY;EM3?XgZi zwhrfBn3xlLLeEO+YbgitNw4zy<*X@mX7$$tDAJF>vM=ikuhqqzIw$*iv zGqjA>#z90UhZNAqTWJ0E#B@~f+B4(KSIoNaUxQa>CbnrenRz`~0hpTBeVMeZ(?Lv& zB;G;n9$Ula?Qvh~i{0mg`uVeTenP2!{urJA#;>10Oy}P&*3W-T=gs;0`48#*u|oa) z7COH@RsVH#zC~C+zk<%6NnQUooxhr@|KI7nH}(9p==_n?^G>GoKcwzImdmGv*hy60|95}uZHJD}fNJILFQ zpK)dbuBm)&?8$n23FAYhR|}^4we@z_Y_i_&>Lly!t}a^P0$Fcwhy$5h4?V>uWX?Tm8RkL-BtS&Wx9`j{rtOJzi(5-e3!Rmsh>xljsKQ0gREgOwV*D6@h*f zkC)@QR1K9-`*k_&2fQiYY1l?w#0)W|kClwEu*^$^`aT zsYO__1y5b*{^7;cc(=RlY03DOxLumca%6fnoT;X0-^BCZ?q}_w^Xym&rIxf{c^I2w zc^s?dW)Et)8SQi%W4d8~A##&^4a);xFIXPhiXq(T0f^J(IpspJN885w>pLK9s5H(the_7QQRla zCzoR$=k9(xz}0Dsklalc?va>Xzv|QFYY`?Y4>aP5+99l;zlV7Hz;4+y+Pm{u;4T0G7rTcsu((YyU$SDSuovq)7O2Wov3cm{ zV3mBa5vxRNoe@tjktH0X@s8R0$B}t>G^cC$B^*icFwNy0g^{hfrK4EN%YHphH}o>5 zGa28p53D(Mo^4qUTLRF0?Aj6Ud!nk`k;W_uvuMnE8U@IUMKj2O%P3m(BCts4dDwgF2d9=J~CFXco>gV*6Z;oXK*yOG9*?j8gu<H$( zI^6*oMEh*t=O}21NQ(EkK_i?ek;Wv_aKZ_ejhyOis;H&vRA6ZtWovtNM(5JzIpHF; z>F+IuL2L1eVGEU9NnHFFX>49j>liTAU!l?h_&zU6 z%d~z`T7<$$l$PPC7<@v_HWP!7#;;H`NlU*$PaDmeZJJgi-g}qkDn36Zi=EQh53B1x zwAG4O*o@M4i@lke4NC^vnHid2`Jb?1Npzjt)3}6eHO{`z^F~^D9QX_#0kCfPk|C)C zKfP5gv{JEtOyVsq;VoN;TROputx7@85)7!wSlZmI26J@qOQ}~=T&6LCQhzTPYPh+A z_~?HWU=KD@QM&j6)A_~4KW;{g+MLp&o+Vj(&ebMIY>2+*a$J>a`w; z@7QC4LVQ|SGF4|v8s8I{9mIcxX4H_|S**%=^T|cAKuWd1Jju6MqayjV>RTNXZ9&Q0 zICti@D*C8nV$){pm^*7*HEANagwWhvnSH62)HNC(at&Xw?;iAoL7^R*eyZ&sz;`Ym z$FgAl&I=`t+LktdgSEkk${u~xX|}5BnOLDNCoVFVseW71qls!yssf|pCd9SLc1&^A z`mAZ}dv?3p_tJLNQMI7KhClVo)zhVRjDmenpQx%ArOq#!sG=xp>dbVj>RFPHcyViI z<0-&Ks9q|$u<~BJGjeG?%}!br^RxG(+>S14zZFu-;Zpmqpr@>A$XPW}bu8j{0$qQk zx^leg&Vet!jn-Af%*%87K=t|sS-s(QwFX$4yCGdZkw*M!&5 zT|K!_g+_JdI4(K&w254Tc0sxMRR7$|DDMK)r(2k=!S{XsW#efarD@&PJckxHp9F2a zF@NG%darK){lSQ$>4wW!M)8$#wJTjMo{CyH z*+esio`SdSwG1O=XQG&Bqpt>TuPu8O%+g3x10J9-#)d z`HnuEG#01=krid8di(N-T1|aj&Tgy9&NS+&ZBz&N`5k*Q!)g4s?KzgQG~r#)o3*Vt zdxAn7^}V!2e~!{uZEXcNW@+;%V>R!fTdJHYeq*&WWIYH;1DQ%)HUYpay>fM8CrqwJWWKwbo3myjo)af#muBrfN?m z9x9tl<}XIuB1Y$fWy5wYH_Qk@@*I);6OIIEl*hf^(7S-+nW;HV^|)Y=<*7u3|U(V-2zg%J>MQ zVFNGu5sASf_=Z+As%sV`Z$B^XLT452_vIoYduLZQ%UAZ{*>Gz(*vUD1m2=muNK&0E z@C;lZ1$@|c*x(()a}K7+vh|h%}=bQ#cd3%mD9}^`bHX`SS2H$!JCM+ z7M{7SmXEfp1Up&Y1rX2OWaxh z;*YF5hm=fmq*ufP{uazvgQ$87t|aqU%bqjQpswm5F1VqwAZ3o}zDEJXsOlPINr>RC+?l4|EA?aocX?8Y8+}pG8y&q13l)}R`8k^>tW*(LA zfX~dQ<}&1(*n`kcL(P9+68%k_~&1ev%?ATglMq?D6MGSk zZtVR6*Nwz(6LqyyT~oNOvQ=cu)7bk{B(>eEYa6R;8=-5<>e`;?+G6iM9L?DC%h8GA z{RHnQv)t>$!wB9{Z$*-Z|6!ZXhsDW^t->n@7}-0?o^EjmAJ;t0j1uIWz%0a&K!ue z6K6)^=*F3^;%LxcQj_Lv=0DKG6lwkgQ;Ck|Q`)FIm{uLZ@qMbNPgb#YFWVrq2BrP? zrSBQ(Rom4uS~r%&J8)eo&RkvU_IFa<0qpmmg;v#{?oVgCtblFCN0d^w<$y@Oqo7|=~y)+rLU`QoXY+43snxbRgm@lBAF}B{O6~t z*xCDExO2jQcYZ0kliGMl$`Y#jyxh5rb~oGbo%MKo^PihqYr!$;7OY45YDXNM>eEsN zD|e4cW#~L*twUv^Z1pKAGlxb$qOA28+Y$fyMWR(5#K8rI*d|Otnr#!7GVOb|G&p53 z5@&Z1e7`J^)PT^6vxA&CdkCF5)GA6Xtfl_Q&%Kb|>4=iNLGrxW4bST~DoV~baAcA=a|OpL zL%Q3DRrMLfJvotiCymgU?L4GFE#Ao-%FJ41Ro)f;QR;ewt!Cky7-w(KH#sl>>7hM^ zT-{hYjjmRok&@!mKiSwa!&(DSmrU0&S>BJWbppd_THHL%=*1l`$QNKo`ckQl?Hk4^ z?afI1&X%hBq}0D0u`l$S9K?tsla0I)B=Q@hYpK+~#tD=|9OQJ=&vm!yI$kR6!S(l~ z>L31})t}LPlj>R`_2210*1DtAPW346;V{+1JQk#0!ADhFmm$3!o8j@R?In6m!^i$z zB--HUDm5Aj9u$~v*ki-jbw4^%bE|9VSTQ7j0v#t&>L9k)G1PN(yiVI!e43%3*G!f} zz|ZYVwyk~#o}9-0YHc~;u?FmuC^m1;$JVKS^~}jCvKP0%TAFOHe zie*e+U?r2j_5&}u)}7tZ7iV5F;ZJFEJzuh*_l0dj^(+}jqgh`=(HP(e5{ zl>K!`xfNQo$I_h3DYq$9MhIJONRB?Ca@z%0ur&(51NGdt#tzscZx770uGhO&v^$>o z2i#kBRW!6~dAmw-)-GS%{v@Sh^=cGV+RhP)8)FO9nT`Z3ouT(jo)JVN*1U`NnHof| z$H9wHG@A$N8HEe4aFB#uFz9B z3wC{!PT@AwsGq>dQitLmrT~_X6}dRCEzt9|Tv|n+($;wg@YS8uS1EUQ=3N)p5$N;X zc~7A&C#rg_8)5gHP-UX-IY^YL-6y8%-dNhbp-iZB&A{24G1HismsMkTRWTz*j4eQd zXnhQwUkFR(vPGk{xka_>^<@H6xwpAI`X131qJmiplv@mGei-MwZkcAl(Vrz(aUK=M zs&9OT8GyNv!iP3b4P8qRrkiQ!bXwSCB|Z~4zpGHrh|ffGCN{-qqSsYs`pH!{f*M*Jx5TQvm$&ggHhcKPi+T@UL4kuUI>J4Sl9r8))_VlV5r?yljYvGM zhg_A`Rab36?X`gRn$Jc;-wq`D_EqB1M$%qjYAN;(C`l}b1*JG3+LtG8jvC<@V-npB z{6@EEs#bbO7ieu3bgR^>5m3CLLvtfvm3{PfGwpwAAM0DWCGD%j4)zwkjf%kJY29Wof_HS(p3*`1KTiG7t&f z!39mnUe`WYyK0Sl)P&q5f>s@|5wmEbM)N)0s^qBeO^myOmDGoxIGsx}-aq>o+>wE1 zTWJ4|ns1w!0p*-vw6Trec*6uG`A4@qNx#usyhhv_UQ)<;9qTGYv)8^YboDLTCxen- z;=_XMT%Z=vE`Nwh(p2&tQ1o>ii9skjY+*pXFM)Sd#`Vh_OZv9Z=SZQDU-sa;e9$7~ znL|CLxiYWgyS8%fjJ%3vdP7t6#~o@ZcbH%AQ?~WJ)dy{P8tVelmP;&YtCub0{xqGN zYRSj>>QVjfIfZi%?w7lmbLaNUJ;37mOjkM}i@+6I>_oS>fseVFD|VC8wPpEAR(2T& zWL=g!^3zSeVv2p~V#e`*nPsUQ3yNl9z+(XNnO98NF~00nEY6d%4$3-ghb8oMrk9k{ zQ33ju_d+{jVU#~r6;l=EX6Z%(8tzXt{Xm5PSoP1u8p&QDZ&MM-^MS-DP$`LK<& z1CMAmf2y?7;a-iMGB=_qSe!5*Zrt0+E6B z0=kvSOabl*5#7xh9c5a&I*%!<*^ZS-w7XhY<#w&esM)q98s7IHw@;#5F1E(1x05eQ zJ>?a3oY7_sWBZo7O4UK#D&clx`$TGyw&TWTBDXi=xZom=1up;SrOjtB0Vn5XE&u9NzT?#L$ErDfn~n^T^elE= zYp7a0V^_o2esjK7uTw39#f!me;0&z1a(=7%0&|4IUeZtp;z)eKrLg~jwFI#SS2=K` z#4h8z9IG$UIl#^}Dz+K4tGx(O9PcV&+_3GFMSEM~RFs7gBX+K*m&CH>Od#JIt)}#{ z#4|bp5(t_lN2@iNvOPj|RYBiR1r~^)#(brf_H|2&!wu{QN78O(?q1t4zkh_P>!#-K zwKa2fS>D6ZUC&f6ox(Js5hJgh!pK`_RrlGNUFv3u#3w0DAX@NBKxZ+$@S*foXT}GJP4_g&A zS8dB*B>092u3@^p5tAcomiF!*puIUaGog&!QOIqgT;dR?)O&$ut=Kf5S>nh-DcqJ5 z5L1fQi#>@OlD0OvtxYv|G_}EAXoLN-fjxh;w1L5WGnKz#qUcJw4P<9rvkkJlb{efB z8>qy5?sOhIgzuTd?cb}a$Bm_3%(D^tV1@1j;=~5Co#>m~k0rFAq4Y1cV~eWXpzBjz zGs5H@KBpbiIGlH~+V2FNIu~*nW zl>adN7cL2B<@Kx zq-&YOcf#7bVmei4A7>}$OtjV)p;i3rq(i8M@~zoeC2>}lw6`ijn>koK!hTTy8a?`Q z9rrYRWA5Lm#|InWa~~*vFJ-;1%d1W!;#Q8hm19~RvO1#FamAcit-b?PPSBHFs%A(d zuG2D#n+&D>uti3(e}f!TX+`#R&ySOb}a1W&*u_p*7J+V!aAFL1HzkG7>m%IuHXN%QAmkntZ;Ol?sC(G#g z6xvzHGtQzXMnR<~d4enU)t^Pd(&m%G{pk$%@6*pR0ke_Ty09l4s^ah=#9*d9ZMS37 z_ur3JAbN1W_TauF)jDqEDq|mb^y*gOef{!6z%uRE*t_}h;@ceStw=RL8cEI2!@Zq+ z1MT|%t~3V_Vg!cVs=q0|9me6I?4$lyVCbXfkgn9$@f^?6Nf4m-u%#pxw4RR)u}E(o0*Y9#z=11(!)uVfQp#`zb$fCVt97XJAyYxVhVSw9Y9o zR#@F%u@uD0u%c31G&TczUcGY)zbkfjqH71`<`~(npxw=yc0a(_eaURmwA+sU+HJ2? zjVqFZ#UMzC)ID)>bFt9O|$s;KJ?l=NL>0_18Ju~ zMaeidJDWR|wn;Td(rOpcsy1F#Zx?PMg+xYldrPH}$g~cc@6s!ma1MJ@xsF9|^9wo(1x!P?|`Sk;HoF6IwW+mNvtUB(^hQkiqc za&PF}L9G|Q-tUQ9H`aU{y_NIjWXws_;yt_VYVux^vm0hBk6y2HHSJ2)f#bLwoI(zk zukcChI2`deTFPzl*i5gJ>NVlJytkoV z_(ihbtvwIr9+nl3`Mo2#w##cPV%K>WbG!bqR_5g5SxLPkWi-7TRv#Zvly_+etQ(AT zqT~hQx(i*m9;2#{k4tL68l$Rx<9WaRnS&UHNn}X$*D07i?LQ9hH*1lHi|cbm8@7tK z68}+sY=WBm>us6FOGKAb5XFwZqVqfp=p(d0+Lm`ox3LEHC#l~jk}ooGhEk6g-(c<# zdY<1D-v}!suoAw(v-uMX9K%H@EqCSCd=HZQD@`d|&W%u$zn5hm)>f5Jj-V8aYR@TW zY3Flr)R$NzPPw2^vs>(1egUPQDvHi>Wzs&(@#+?4N>(jP3pZO;Q(9P}G7F`l7BZFjR~71|gP%B#5v!gCAtQ)uHH zYf?Iw!(!iX1))J=SD-ELNd2Bsx6Gt7i(7dVuflY18SOiYzf#)w0&T$ws~E0YpX-rD-Tbs4)t#S$>L;Ae_}y8ru)st@nVkB@kXE1QF*OoCaZm9 zmdwN+XS4z~m!VFCj*aFpV#i%W=UcPgrmwa$;Ky$8zWLV{J8RR=kIX{K?;y*%y2tWS z3)b{vdQGqGyy~mFL=fQ>o^}J>Sw!nOskB7Z`ob-H)T67Zz1~A_JqI50Z+T61i+U9DU#`$)aYd)*#!NN4G`Z zMj9<8qQh2lZgd--iY88CsS~fbk5|W!<5{s$eshyn~vJy|1>f?xnPxi!8Z^C<@MF z>qFkH!#+3qXi`Uul%kni(N^`L&Uq53&JDcInl@ZXbf=iR6^q;TLCj#6Ww#?(EA5o) z$k{_u$k{T3-G23U&HY24V;Q3>Z^q6OEN4C10NzTTrH(5&JvfzCsq{-xJ^f%R{cbId z77B4+$o;m6$L4Kpffo@K0*2|x0R7f(^uI1w zR~0|+>ab1jg+(=XaZPM_Csu)Yzg_fu1N+fqOMQ9oFJas{3u?Cf%d}tlGLAvv7%c~P zZnZu2YSu|chaMGHkF_n&2k5(^KTn!fQTpBJ3UErM(yHTFjhJ~gq{;@be7%BO(p>wD3ORrzInaMK?pg|L#nG>$0(vc;47nBTc=4^}LB>>u^{)64hx|Q5i?bTcSbH z?9N4q26h_d=dz$2huc9``vy2`yFfXX$$o@K8|V%w$KfoCDEN5Z5S~+KLerha^F+=# zfhqMAqL^g`wBnmUF|~bo#VV^Ysfdeci3=5M;v_wjIND*B&J_$p5B<5Cy|!64b}ej0 zU_uGX3BzQWXghOp;fnTfld{C z?lL=eM%1H`at_A!!K(6dYzeN?M6=r?9{XI;8GB6i^Yl$`2e2H5EXUNkbN)Wa)jU|h z0`o+yU`n2;?VixzUsg%H5c$p%*xntx$C9effgEp#BEAT6ydGG*DpvUMO^A<~%f`27bbcC;J;H`}1;p3+a#{X8ToG|s+Y!2YM( ze7CP;#)e4y%3RNu^o&m|L8ZwuDoqp15C=Ehho`Yz?Y)}Eg`NXP=r%bh0Hq#gF46cs&SCi*8?-E2ZKRsJcWSf~a zRm|}n8&{MJ@j{u{Jc1=yjN?MIbyp+sV&l0S`+3vaFpRZXxADC0F@R1w8~%3u1(jjx zXwm0}u+o6<^L1>)2?TFJRBG|+5u|Gt;M{Ks-p>l7QLbbd(r$>G7Mq8ZFuH+Pl*E31 zSYZ^+r~OV(z)_2Bnfu_&&cQw?i?J`Ugk5xa4pyIj!ODD3!PA-QBrLCeHmes{9>yj8D}vet=rWZ>E+C)xt-f{linW3?HDD z;q_WP)RM%v9_mRgLz%)6$KoBF6B{CwMBE+N5Z$Ot@8Y5L&sJFRp!2Is5Mo2np@wHu z(W`m=Q|d2zj4U_d=Tyh_8pmVgDZWWy%n%NnProE7_)uhDs& z75kQFvKUFTRP`}lEqHGB(sjhVDR8T717w=)!KLm@yQ=;SGWw~EiYcftZ^BbIgVxzb z$H6^D!KPGnr`rHA)4U^zNzGO$+h&j_bAB5==RY+OeRYEI3QO!?0!|Ncp<=JKkjre3 zGDKlSE|Vwvxt;N;s?BraFsB-yTBv1&`V&)qne)(4?8fmMM<_;Fk`;hfgGHqt>%`Rl ztBykeDLL9eMt`11|3aqRCo`VkIkKaox#hAoB`i5b19StA7SZESS+6oY&dG{!19Rqs zSpUPdP>Fqb9Mvr*vPxS=cp|wDDZlfEHr~CTucPOpuFLo-O`LyvE&sUUHT_B+SG-=N zVjGydy3FZtzK(Wi(Kd30ylyRRcUQ6VdC;Xi^*q*?t!d14(s2Ls2akj^ocrx0a*lx}4rj|4hGcHw2_c|vSJ!`h-84}+dGdbO+oJs}tlN`V z7rV2uW8J2NB_t)AX+BX2;RvDWk8`?Uuq4-S#dmGQ)N`K=x z1wTToW@9&*ZHNa8#v`vYuptHl-oYi<&ka_ho0FaekIej-6+3Hrwk~5X*ipxrU!<~u zQyEr|DTw{moh8>B!ZN279?oU%pUu$%CmTy$cxOy74rThWi?NjQyIoHuQKf*WRC4j0 zy=V@_-o1q$H&oT3!d-IwDM23Q*n@kybwt3rrcmn#{pg&4*@F2Uw&1um{6&}x zCT)av@FKBb&clK^=wpk)S#IR93~4*quo0K>dynR6&4SshSup=?Knvz8=`MFrsEjLJ z;+L_n_!t(<`D?VD-8+pI%wo$2R8rHRHyh?J`u7X_b9Vd2PjiRw_ z|B6cCb$EfMZ_s zJWdZRp~M3Spb_k`EwjhA%w8dk zcE!ElLAwgBfftQLKHmAgntUJerX$Zd+4&+eQ*29e2=T-vEUsO^6y z@YQVkDrjt=?T}M8L}Gon)T-CI5fSNARzEpyMV^$Iz-0;zWn^{S9X%YtntACovHmK+ zFFerJ%+|q$pbrm%9v=7DA}k?07tPf{(hxkyqI zW7=bJYG!O6B&j*ExlmFE#pYp>S{j>&b83G3bbhZvOkW+fziq3XnZ8D}5)zMQ4avuu zq50VUc_CI?g>g10$If7)vwKnrSc_wYKMax6b3lo+lygIM*fbUUFNUzlT*qAZHR0iq z5^vF+rDt4U8K!aOXsw9UamL{^2Xbod8pKSX-0YeKON$S)%-+dXEH~Sfj(O)zEiGx@ z+qh6i_`ZOp63dmux{Tdl<#F{irm~zbzMyngMK0Z6VqKOX(48sAntk3FmW-^!Oxgyi z7l_v=7hvgl1kLPR{#!4#7UWF|EE9Q|pL;7mrNDg2UEu@yKvkZPK^ydY#{T&xzIYwA zQsj3dW~8^gP`etO%4y8YB{Sw5#v=jqMQgNFG4@VRl|8Liwl3S%cX?5uDZA3UB4%1pH~lZXV&9Ox;^eVE;+FwuURGK^fiyaYjpto5Bjd&d?9k3t5PW3A?>akbSZD~Z-syFPNnNO#h`hAqg7Z?yH6;@j-Ym*;Kz=j zcAvoe?JHEJnCG^rcyy#zt^6H68x9?XIwInM>oyUUEfTe*)y^NQ9{8-$UxX=a_FwfC ziA~v2Hs|Yj))C8>ib}AkVGsHs9bcp4LBy4Q!2oaQsfBdhf?8=g9Zy%GBDPjd1jaLw z=m#_En;Eqtqt3{vUs-~MoyevVoRcN(`x-48yCsvtNE(8D0oO#PgV%_X#%&kYh z(J^m8(Ig(unWf3R>ar$2)13*~C*!2jEFFb!hN^s+x6pqUx9cGK>)^F#7wu=G)KRv? z3>SNeG!k=*7n^M*wAH8--c2HL@3t5(wFRhp>`}v!!3EWLh(_AEJG2c*{?j-pz;~}U zPop*+L&xnD5F-+#fFieTiSr|_ub3d{H$O|eu=y?1R3(QoS8dsjz21vzKGh{yDcBE* zpAPWK?NqG90{8hmqiDkO*hyr)2Jw0HQYB*~`}7RuvIl3d9&Sk-!w6arFDS&BrXaR2 zEX3LGmSSg65WAO`V(-dQoNFWMctt4=ZYsq2QDI!TnbyoRN^y9;2^(tcQ?PDQO|;_? zS;t)X^w^QYzA-kR%0agQIcqf9jWTL>#0HMZ7ME9qu*Z2V63y{|DCcWBULnu!o>K zmn3iR=4mwE$9MA`&f&EhV)w93?ye(&y2CAGS-fRbq${|?G#$+~)x0ue=QA^QpU%bJ zZ*x7wscUYmb{$%Z7+`Wnxinalh0I*yxqMz`w^9-ywRl^YBipuI=d%Ia(X$+tRw>RH>lLDK+r z(zEiB+O)k#*2?N@%(2gWAYfmflZy}Zf0mbeRuAlfH+|L^dRB3OXT|^Gvr z#}#)3qP#kQ+nr*-$rI z@U_0kQrE(o?Z*(s^x=o zr-{3PIsEk#Q7PF2)#4w8wROHypm4UfKp;Z z4zaTxIE;|_TFH@E+KK$0W0N9+YjIB_my(FJ8Zw%o7hWHL%OB@M2XeRqR|+rk7Q`B` zJ3B`yS|RP&c`}#S;-q56xFbumy)0`OS9q~Iq7)6Aoz1c?aYYv6bg5wNzZ9EdlhJJG z(TWI)$!PUO2e7Nw0l4AOdfd)H0JBcNTwH(BNn&Fky%$))sQ_6!%@ zSm%wz3+~r>W59Z6j&ed@{XOPoD(`EwN4M;aP?J}){T?t`A8d^5v}B+etZlqnVArYY zHdDuFxnixV_!p~MbD(CNhvBdhH&#? zjJmTf@oj>48`zbmI))c|-eO<5*TTW7F{)t7Qph+rj3USy2Ght9UDRM6saYHCEm3vy zHrm@(K<_lQ+yU~31jlm*k3CC4+jS!CmH)uParV4oV~)!nopNnuziY{ikFzf^!v7++i=+8Q>(HxAG0xJqQ{v;& zYR^$iieEBprS*(%Ahcu6o}!Mr6Xy;q z(N2T*ybDX6<0S_1BT0-BPIH@a&qb5ZC|0Qox5;N@)(oe*64_ma$p5-pP^? ziJJ>~Bhc>ZJ>f>!mwvN<`_k`UYORcGEo`Tfc=JXL5j8RD^xCguTvmoQUVl^RIzpWN zwckCJH#Z%#jr+Akl8N6PQt1Pe9UR-eJ;%R4XG-!T)}36R0S!7_t+$36E{$err-0Tl zR_)k_wsbBUtByC&2Hdjh-|OQxE7I#aS9N9T+INd-E@{q!v^>C(v81j}mA|TgdF_FV zxzw4xpZyRQB|F&gJH^_bw+vL4%Zh2~gK;3;9cs@-c~*F1?GCdE{dq&f^Ng?4?BF~8 zs(CS>31KXJozC3|W9r)aGY3H;aZOE*&ox{bcv8dPw8eR?KehaMQ@Qh%N&hA?Wa%jn zxF?kWaX^m0=EkyrWHc0AXF+m4uMR!F3wU~gb%eVrw@^&>ptZN^q0yqthM14~y2;

-eWm)G*Kr-$q$LR@5p`YZpCHLH@v+aM=`WGIwT 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蝚G5vNysB3(Z*wJgyksmX5GD9;)njWQZQw;(9 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 z

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 `#zQq+xD{)g*%RvgZWPkqH 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 S=>KVjg1CGUPnIK8MEyU|bT|h9 literal 267693 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⁢YAPc`d;o1Jfs!sSB%^QMC!W@IV<#fzWzgjq>4*z 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

2}vWz zpG)o;ymL?-sNbg1HV`$3hTd828)I#hX-mlb`R^R_Ix{3Gh!#O+?fVO3quEvEP#TQz zN323`4`OWy$4IX-5VtmZZq-*T7gPkh4qLh{c#j1=;<~U^vO~#k*X!f&0i3v!b!Pd& zx<-yS>(f7KpBQ)QlFLL`iy@S!r7NiaugY9p^4Fur*sxFi9qtrGi_=W4;+5z4s z_bYBv_WAZFqdgDRzbQQ#by{vbGkNv7&QF=@74NlO-;@ovf0XW$QjFR#A&Rpvwj6sQ zXKo)3f4+sI7FKCi{DNmbicnB|Vc94>Y2RIoYWaUCk(J}KTZvJ%s;{JUW6ob1O~QxH z43hlEMq&twqvGS;460O5{3YNv+)k!Ow{48aVP@~AtR1*>^F+<^JE�}qJ@a0dfZJh*ZZI9<$O-e_ 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 z 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

9+rFPPQ2H?Z91}Y%zAXgBNkK#W(z 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
gZO(kv>!-W(Z{Qp zfKL^cOj~+jRqn-`n$&ZDmZG)UXJD8j{955%; zOT5=ZVi8havXLaDuYlXHKzAk97wUemS|%h_7ynkhlz4d|Jawukz`Nf-eU=lRFF^Vm z)zjpN45r4vjc@VX9PoGJ0@85WE_KNK2JItp>b6eXg!kwK@N_7IgLpa=epMr6giWoh ztBt5#6`>&@wKi|CtD^BxGRhkWjfUJt8G%rnNvKp9B%_0dS-u)*f*}g{;AoVx*H1i8YE8ZHJ z<$yghTm7DdZz?7+X{2~lvEb-bdKR zqTd!HjkvQDMi?9wm&Wl1>@AdfhicZXrv`QWyE*BD!d7mGe=Ksqo8>=7?-Ei=JPdJ} znc*Mce`Nqizs;&&jDDyg_+(+lGexY3r>LWN8W~UQ8N7m(5@Vm?0UPy{o^>K@2NE7Z5lf-fqRk zdHpsRsVf%zj*L=Z2Cpb``Q(v6%P52u3=da+g<;7FmrovwVU`IWiD8}z55%yXNneDe z^o;gE*{%n^JZyhM)u-x7!_a;YVi?9T77(~ATzrA0b{M&&3nhFQxu9z^=gBblxOA^T z%mH!C!gH9#L-0&|6#7>~uSogHXo+#_1iA1^@J*O1t~p)bbXq)%X{9Yd%SNyGbC8UZ zm^@mNob>2NV=rj0YySRgn8+ISB{axOBs{Nul<@0UEm3BLkHK&R!gl=e7(NujvK1bK z;bC}+*$SVE;s1iLVujDa@EH*HTHy&8o&aIr1lq<+Cc%5JLHs3v7jG4zE3A+m_fIP% zTcIW^U6@}BjN!ukm%x}V%t-&dYu)s_J zh(LG0pqqKgm!P*}F$TL|p|>JLxvjS%Byn4BMTl`*Z$*f6TW>{3=C8)JyLB!?D+Z~t7+rgykNyfdcnL0GM#%c6G>!v9<2%6YI z(DXkDn#4i!lW&dJO@rg+;Rm2Wo_}!w8eEetI{*!qYuEv3;>5b=H_A16_(Ea!xk zoUqpwR&v5}PMGI}Sx#8W3DcY~vBQ1sub*%B<7Bh==2}3!v=5m`-&OmNTB(g2Y?LIi z;zUE~7iu}3NVllCn!a=(hKJ^aM^NL^hSJZ~k~ALXOr3}s*bOs+Hk9sB%K*RG&cWE% zl0w{27Y@TGq{F7iOO~FGp2x;>Tou1SN>iS1^r@@bs*ayHk-mkV{J3$3aahGnMv|vH zn3hzne={Ey@bgiSx_G4FulU_>i4m;${cp%fHQ*l^3Ixl}E+b`sDiz+%wyXFB;!E)b zqB1-PSDb!oQ`Mi0aK)_yaNd1glr;N7a4znE zV{*tIQEGy6cpC>ZDps8G1jF^oGOy`9 zMsA4jR<8v--qT`X6U@qm5z}j=OkY^wul3c%Z&AyL{S}kNycdSbXZ(vA%*OaCW>h$_ zzNPeAU2=LH=p_?I5L^h(6udwWu~ zYa74beAgCWoh=Vx%=o*+>d9*SYA9-2GA^qqgPQ++rsQ^vRYLBBOwXYMu%zdS=b%+m zk5d-YW03OmB#LJ$4Nt|WLkX^g4-l*JWl#e2s_EirU(1bxo7vrQ_uekn%RdlnKU?jR zNlP!aDcRD?43E)yoOC}aKY@!qCC9QE#Eu0C-b@Uiad^dp*OF-g$%nPQl=)SxZI$@d zO0^znr{e7yYQ@F?@#3w8z~jaE4GZ7M5o3gmuCk8P$q{4&_Ukms#2O}xh&9YIdo?h# z@>ef*#!S~(V5_FFW}OAL={ij+h}ouVRA4ntPsY1p3b$xX+M)*_m9A~mAeGi^=aU2& zU`elp_qH&^Zqqb6T$2gjx}6j^J5_3&ydMftp$i`-xzUCE<6RSnk$-ntp_XfLO~*Lg z3SBj&~+3peij-J^QEK34vS)k-d;uRwrXmp$F!3i zUH(6!jZu@k!`4?z>yCRutx*W=MD({^1^<6(kE4g#V__eXx%(0Sa34Y?DQ@zvjz4{{|7u0~1Sxf&&j^t-dUa{KiZ{?fF6 zh_3^iK)m_x+c7%Ise27NcmI}shf~Km?fvxKc4Sfa@inx) z2mIC^@bB4oV`bLN(e}Z;OeS4Tti4Myx>#~<0zbvR@h(-omE-q+#D#3!*y3%xL3>(t z-yCkF>EBD!htu@$+rGF{#qE4J=yiZuc8w>qo)F zvw<;OwmfwkUmYtkp?$e+K1Lb?_zp%c)t(Du%Qtl43%cM^tx4RBj$bO7@Gh!~FO^Jq z!tS!~hyAK6qtDKt@N2DY=Xf)6=4SDHcU5i&Z9p%O&Ys2pt&Dq*&%LA4;xR04a6(-V zg6zc|pjF%XsmFi7i=>~RceCoClvGmHz5_Q%QOd={zNN9^uqFjT`}X-8;sc<@ za?9fvvcAM`=~qKMLeVp;E_s9(P3tc#Xsq{9cq$H9)Jso9pYX?*>GroTXP=juMPIBn z#8s%VhSIyjc#~{Q`d08#Omup1>E`53XURqb+32oxjG*7>1l=p)?Sen3LtqT}SJ*0d z?)^-|Mp&ci;Y^Hh+74)2G3kv^=8NMH5@TPA9$|T;c?0SA79cY|c#tJ-sWMv7le zYUHz4YSh<)VAZo4Hi6#&a%(Gu_qK}g@ep41B80cTsG)0rIY#{>rU1=L8ilB)mo@62 zgJ9(=n8~Xekra<2QE4>9PFV}Mc>tvKZvt4ePLrf1?*Q2O4g@Jf3wEu z)b}(>muv^nhG71O8WzDf`c!z^iX9rgrjfVp&sV&`-qH(vtS{}q5)Ujyj;7C>t!l6(gwt^2jJ z==vWug|=U-dudaXF44B@b;2Y?h0;-}4qm@zvJNkptk=`F8+2g#W(3m!>_xC>I)L2> zR?LJtVe;P~$&Q(jWIuvsx9eBZ_S+%4aW;UNa{;u@2e9%17!xSfn&ba&Y~;%p>W!4H zTL?K&J_%($Ws!ajrSld6Y5QUTtCs+1c~m6Qo8#A0NVTX%pG@hh7EC2i!BqQO^c&zU zOM!OD;|P`mn7RT$(^G=GTaaqze}J z)x4&Qs(DQ(=pi1eW)^1D0chX6*8#L5XhX2#4FJ0lG_S?rT6nJ{&qMN^fRGyB)b9hv z-h_8_zJ;$`kKkPZZSP{~q^PtIiC1mX7g4%(6GTkeEK0Z-(W^J>4}nNFqtv$nSpPnN zIUfV)_*h7<1*xWfsxO6F`V>pE3+oHP>Rph(q!dWY1@B(~GgJ2HPg1&U59Zc^LiiHp zwHGUCAAnikq9g!7L+ayyR!F!L3N`aP09(JulCkFn_6Nvp=6?M}O84)_^8AEZ{3JyF zG7{|V0)nZHAh;!s#;Z^Oc%(b70njuVz}_1Gv`sUx0Bc1tXBck+)eJz-p9x?Uf}JxB z5Rk7ge@A3_yRn|~nRgg8vIYQOG7Csr5$wJTz>39~Web2gO96B|hMCiCn6l+5<2@Q# z{ggpu$_s^}9dKv7e{=j} zRK_W<8lM2OuZlA4M9QtN8lOVZUIofouOUYWw!UVdP(DY39cw@y`w=v*H9FvhYk{Es zEda|lqGYzBjJ68;eMmp+eIRW?u&CYWgt~7>f*nY@3x&7`!1@k@ND_~ORsEwV&(}b{ z=4+#i(lz@q{u`u3FzZ{CCQVF>Un@nu%|*ZreJkF6%|NO*T|1C)Djk7YfF3QvOgg8T4@!FL zbV%AX1CmPoAuQFL879`s${FUvlHLXZebr0=`w=Xy1QE%lqBzLSQ^?K!yUnL1eZ@WS zmJS3{=9)Az55bDL;#JQ{pu+3mnMs}si9%^w@r8Tm3U=qrGhe`pr26W4SY-$r?=?Y( z0O(8Z#rol!6r^zfmzZ*FVI}C;YRqfZy&|t2)=$%Y=Ibyf-UsPh0nmB(16YP&H2{4p zg2wrnvGTT*o3ZOZYQ&~|1eo$Q)_Y3+UT#W>N$l4#TKG#LzYmb_j`@}h9x!)Ediw*w zSIYtbZ3~1}eqw7n-^N^{?vu$=aN2uA*vFBH49Bp7p;m@@vj4E+83H%O8U%2 zSo8-0>_sqTF^FTyViXaA9SC+lgzAD|<`NS+y@#O=TM?{y1i(%N>mJ3lErPvCOmN~M z*D&9r7SNBK2zERMpyP1>Ez1C`Uj{nErIG2La0&x$=v-z>(z4|y1Xq}nf6>$C4NTwq zw8`}Stylo%x0a3>w;=V-=gnK0*8GA=wN3=HUIefL!MYbw>kzD7WkOe=oD`vaE~Z)W znmG@$d=29fOnDu^90bb{>_*VE#>7Ff+PEE4%zMeagXt?@LgJT2#2<`1F{1Gmb2iiG zyn+&XMMV73n1c~*tIfNazIQdYv{y~yqrS1W+%x|cG8`1vn2VS`^9@vJ1Z%|8T1()8Va=m8*cDVX|Dc*8O+&eu4IwcjgYqST>!fg>}Ufpa}y{>(`Iah zTY#Zi?<0R7K*X#M5$r$#?hxI@YRqWfC*ob}J~3hHq|{RJj_f}evfo0|#+~NdOkcAT zs|CT7Pq8Q5jgmmHRXlx;LZ)@bCLy~$=4Pg^+k<;e=_SS%QS>jx3-^C%Ze#kquS6HI zEw_sxUMX0QoJ0ga*zxf9P&6yP5~>+5}kKLK~@1k(Kk*8VvMXoLT%`cd~dOuSCi0v5w-GQJJgHwM3&?!I{mXcp( ze1oZXHb%Z>`m9M2U;#nPH30Ts6M?osuC^=f2i64R!?h7ANnmRfZULc2I%O!(>XlJp z);<&cUdDne)Zb{AngbC?U_ZX2lftsF`)@2&{iz>Rl9hO-c?ygLHYk*8B*2EM8N?#N88?}r$@`5t5r!A=Bo z=0-s2`3z+0P9$AFH!_>+d*>n-^8n04uyY<#d2U0hdys0;y^*7}D=pAn2PGMwW4X&O)qs1p5)pS_GhVkziytHJ(C7+7?Bg zhQeXYln0R-!EOZe7K@DUqJ__4#%+s5#+{2J&vU)`A$&c8l?d7pG%gVt&!NW4nDMM7 zkyp6BYzf4yMz90HyoXUY9*z)?q`aSQ$`LSJJ@AS(&kC(;Y>i&y(O0%c!H#($DjJ{O z0T24j7Xhq7u=T|#Ht4&-OvHCheI)V**XKV13`qP7N*}@8w!Rgmpx#s7iMDt!54z%= zD9qa45jkQ*d5`Kp$XIjFMEA?I{Tax2F913f*Z^}niv8kR%zot~kvF-%{t=W6f?1D7 zh)*(Bi9QMXA-ivaIm4rvU(+N}jCqryOJ#j01oZjWBI5{}ngFz1hp$4g=z5GmuzE6p z<|!D9U>$M_qYKusb zrp@rQax=C8@+B7jKOQvSH(<38m>fKf!Tsw+EiIt*W8}1RbL10Hoh=cR{!YZq-xB$h z>njC@G-HxQuV50skm{d_!flD{;(Esx)XuHgHW9RJji3#@2nq}T_8{HPt&t9{Pu+$p zhF}?j)c~lhEP<8;;znsqeJ_G4u>^j6s}U@FKjQIi-5%+5x+BoeT@mp>r|gbcR^+1H zsMz#j7}T(OTX#n$LA~zAevEBbvTZ2&V-J}7J9kGv@i-B*@pI6pnFtmEfDZ2wT6hii zvhzQ;+VCRyM5IracwVE-JRDcODPtqQzw_oRYmMW2670Tc1*k}v0zuOah`X@>Wqmysq!V7|qn<~F94!U5eFD}wz9=6wyg*1b_0Y1@l*`;ZR7{7wYlVVnFO z+a!YZ2s#n0`~jQjer%2iR{w}3KZy?G9^`!8{>WT8vU@+Yk>($CRx)Jc~I7O2n<;)>aPoP zWiOzt9}*o|V|0nEuWrN+5!+eTZbkvzf}%jsdTSJ?!E0&kReZ951S(a?>jD95Rt#=|*2$sx7G0u*{9F=XLG5cTPdTM-%rER@S zq*^g2%A~DxqBPifH-IJgM0d%N#<{3LbE7=6dU+ITS^fxLc7q4_-~VD%_N`tOz0pHE zS3$SX{1WyJ2&TRqmFT>ev8Z$!_J^&nM5lZ7Hs}?hra!?PW*~a^E76%Aed=mdVFb%o zBLV#s73>Zq=v*D0<0M)_vjsOU|U&>6^UToT9IlY5_GJMF7oJ8-V~Sz5i{q_=wgq) zOkl`ESp3yi>=KM^c`N#`M_>Jx7%29D4kB{LJJIDHeg8Y6K|LV`mi5smJ^GUM$TET* z>oLx=662O_h(6=d*Kfeqh@f#J)-!?@1gkcphR9!2<3*(2x=~cw{*BR>Jo>D6vG@pD z5v)hB`(44yUaG%_^i6Hi*FBMWZ6HXQ??Y>E4Wid=6WMfHKTF=T)b72g+m$c*i5o~Q2McyEazdgFqqqlF5;(Fe(yaLq3yNUp z4y;CLKfZk{QqB7)y3G@5{RrZwej;lAC#?DRMHPP_uU$jWpH`lFjMuCuY=76qmt1u(zx&6fPLV45M#Rd8YHrUKD$ZYsD}(c2)P zw@<}E?PdTg5o|@U;uZk2ZUxYSV8^Xu>{^Uj&uWHDnS8h8y$g%@5N6uaEHYi!Tp;;6 znhPFQ^wwzwl0IcRq+NxeX$F8LGk{C3-Xp=#@i->y0PLhme96oLuW$Fv0@*k7wu0q~ z-f{a;MRJaP?u;T&2 zSkr=nmlb`^0?cv&ii+I}qS9B3F@8b8tBO8#A!fY@g|JAJbq&Vt#b-ZxL-Eaguz>nH z5UhL%Kc;O%)^rmz+-U&iHODTk8sZ^D~0> z3sDQt0ix|W!G4G0>wFGHL0^^nzU0O6;rc!(iq^?}Uh(1r7WNXD<(HVW@%e(U6n)k6 z1&DqK(O(Pky;!gp_*qqe-v}T6f8Cwma}wRU=jnzJh>7VHW9Wtu8r)~*`c%#J)Tv$b zZi6QHi1wMa4)WDkf-%qN1W9ii!p!Mxv;w^L!V+zVEJm z_L({}XU@e`^pn-!wbrwq^{gM=4Gj?$L0N(9y3r#j{ydpqr8y;zsGlI#A0i}=2sI$} z7y$#k1w!lzoPA2j0^TBAE%I3#6^B(}SnW5^k zZYVGHbQ{9&DB_uSJtKy0U$sZ*jsY2<47lDCf4fC}JRZ_;)L)>A4D zn+&wa`AUeLelyaMQjf>Lf-m3(Pz8#w&}5n5d&9%L9Yu4^^bVv8i#+W^+F9Z0ok$0p z>0L;tkk)Cg7>wb5lVB_l5WFrz%w^K>S8}_q8fa~MH=0rgme>df#k2vpy@RHk238$3 z;d%p~dYt|>vH$QhgVFK1$zUQ$C<3lYLKw&ZRlqkzhyw+{d6f{liVvX+IZT)bXwscB z86R_LQJD=z&XQvJ}-7XgXPeS={Zg18GJflD8Y^7tVtB}v!)jY=FB1>!Yjzm zJEpRM`R{P$HI!n`^v1yIIXw3z`r3ZGHlw}2D0VF({GofMih(8XnP|@3LvO_e_`bx4 z?7rz8jrx7cE8I8H{hIi^+2!}h^*k^wQ->c=ZX}O@h%bK&NDcYrylKV2A`fBtp@|HO zi=r&ZZ$#-6dL4OW!kbvdN2bpP)}RBrtAv}vwzj5=+P7lYS3X+`rUs3Cfr{jTdI90l zE{R<~kR5$uavE9Y3FVXl_fr$?R@!%>JYdA;_O#i~Q_}_`t3O3M^MuemH&PY5+(ydI z%$tUctc)CAkq|C&Bkx7o10$ItH&Q8@wi=mhfeHkH*a9!LEXuhKah>;3gYq+5dxf_Od|7t zqV--Nut42}XI2_w^OO*QUDs!8RnDj*JIfHFUH%D6xo&?=XBe4R30$aQJE5;#n)ml4R)dU?XgJpHmD z>hyzJ^9D3_1qHkVGP)h5U&a#Pb;(zaEas9aYJhtKAp&H8$_5!5&Q0TxTG=S$1zuXOwbHC_i8mIJ`=Xf zFK7U_Q|p=S+&4i;?vSw#-4qE)=*pp3cu2lylmeT`HQ#0!5I1YP9w5i#k@H3=;-Q?_ z7Mb=Q!K3AS;v>Ycx`hWhzEu|8YGJD^7;0PP0yVfz#-=x{l?3T6%oKd`l94rhXj#~y z#d~~S^&MX|JLRfTs_aAs%`Q}U4>>ggLG)v|mLb$eIN(#Cve(8?J^LVE$-@WN2xtUTPtyfNefsTgLXW>*_t zaUy|!Imh{2^|#>?nWx)FkdBVaqixN%M90w!zYl>Xe;v!5l1*5rX?vLlTEE-d{Wv!t)E2r9+XO6}?G>32_<-9|w z24PP1-KAs{r~;WBAFdfK?wn@Pjr2V^+r}#Qu&>-F_#eN;|Nf9R1Xo8X% z0-u`k%Rdvj-x3WmZlgiJ;q(axSQ&c)V)vPOcuTr%Lp*u&w z28jPGkRmyqQs|V?{!Xj$w$nf*Pf;)Orotu<@HJ*#lCuDzPLRBB2#GgXJcb6U)ZfV8Xa`wD zvDhM3H&6x|fUiOoqCog9ueD(nUYmU@Z(POlZ&9oM7BgfC+YFEd@&u^{_}$f*NQW-BB1jPeOAKM8hcG~!2%*g=3^+ZQOMq`HM$5I0l0hKsCFB6- zFd57bQ>qU5x0BWKc9eGRz=#sM6G-`em?t}78>j=mUC?%sg$h!!-LOiKTz<4XLP(C1 zbNNx!K+3-dZ3bwDBm&U(QYyDk!7C70Z$U+)6<6nZ6h%K`==;ETwD<>kbQSZ~u(Jb6 zAP-al_X>t6%UR)ce{aP(n}bh%EOLgBM~d=+zjL9NgilmIdWsRX#c z;lr3>PWr>m!(;8R8eK&vkH9zi^r~Ss{tZ>W@snvm>s8OL!u9_*IYx%RDtAz_AlT0EopyF#v1yc4l4ZK=l~{6iL=4!I|xQNQ=A3P8mH%w zqBVvNDRd?|q_F5LJD0o9HviIwK1 z+rQ3F0kf%iOX1IZqN&^yDN|Lb^~DSq?t!8flUMycmClM8^agyoPa zDWb7NNu&FPQfmJhlvnUH@viRq%3?bUzT!QrAfxn3 zdD||z%UB!Q^SZ7jh=sE9u3c)BXOV@rO`D=Z@~|62J#d9Ug8tZlidQv@Zh!%GBk zxBiBo8X}A2X=YLR)Xu7lSf~~3oInL|z2(*#uoif$e4`cf7Vc^jaQ8bFQf5if8S6{R z53=x%s<^Az<*U5jKnET)tSYV!sa925jk?Yoy1%%|n9%*zOL`kRa1Xr9_a2wa+-A(U z%z9(RWghHcfsJOmAObRk?h;bLK|&nJ0yQ_mJ7gAFY=~0+O@tIsAV{@Ml;PQIhI4*6 z7uswd>5$T-Xhq|Kj-QV2Bg22fY&67Am>+aV#S>Js4g?~EBv1rgV}vk4lNmFMQhCgb zd&t{5aUU#Hx0?5NNZxH!CJLkpLU9{!dlUsq9`l|K=GwxQ0F=}g^WF}r+*A%hsc$of zI;4QtOxs(_ERCLc7;<{pe1u{;44<|WvOr)5`nrQxK7mqRpE=SYMSW&Xiy+SF@V*4y zCkmP|WM+KklO0lUC)FwKC3kKN|8)DJ%u4EuS(amY!(`CNxo zB4w4x?(6VgGJgd1C;7F=BoA@W+$L6n<|*pO0ke=)6GSNw_zq%B0RJKM0&s;0p%CJU zl>0Ct2IPP`5IsU64}>XI4ReRi^H7bL;~mUD%9RUH@}uU99a4iU+Dm*c2F!_$tXd72 z@ooee@b2TquOKtJ&z$U#a!n-%#eK|tuS1F)h!#zX8ZVfH@n!0G&y zxzp&4noAw56eZjBGlcwEf-6QS1MYKXVOa2-M-C8;6N-TU0&>zs=DbKqUZh!CyU1Iu z@yU3}ywV{hE^*}}AC!doQ-|ccY!)TH@KhZLTocw~Um6h%LD6;tXaAq5lx?=&F-1ZOZT8KiDuAa7$>fDBLrlCx&P zD+IHYECBvF7`(&#;9ZTEChnMrS4;l8T-gpKk~8mEEoF0D@j(gRH}706rS5ZO7ZhjS zynD42$~V_Al;lJ6$ZDzhu(`6JG#;Awtd@e0nkx&6=dpS3YAO2Ij2CkEK`9r^qUd>I z-cRPA@PY?;!FlsRDmdR7#3b7-{`Sm4TGD5VASk=2s>8CQ-%Njx`)$%W@!ImX>A znU9m3rRHjc5`STitd?KIpD~_5>}PQA29E<(B0K~ zLbl&R8}xvM=6TX(As-?eNcC>3lvULRtd&Zi;hq8KR)S8VS3t$Gi1Xu-`VZ`W)ZqG1fB1@h2Qn!e|O@CMG)N1 zUZJ}P1lRW(+V%f&sO8u7MF;2BmcKC&&sO7Igv}QI+Q%-7UX1Uu7{$bHi?J>1xAgQ2 zfe}lI=F=#829yEs9zt}FMU=t;O67p!J`~wcr~$46gep)vNab9ID3tjo12w>N3EcuJ90_Qb2_YasU^$+efRk4+3xIGER)EkXAL*kQ zz{I2_+$j~C$}uR7Nz3t0DLBQI6Htm%mPn`My2_O?D7kBvlburS8dpw1sa>~3J0<@O zuAGMAOk2)$N})7Y&O*sdTVkD3b($;VP@*%IbDdIl#)6&WJe10eMHIamOT1IcWq84h zT%NUD>Xf`$t|XvjvzE(bEX%7-aHr;|YJJXfrBkZh;RPol2k%*?I;GS-u3Y8D?psow zlIHAol>d5l^NdWCzcHL`6*X!@z@nD zw<&fDTzLe=vtoJNDMeSfQh*ZqYI#C^{>qgyl>GYM*PT*heJ_+ZP~roX(ZvOFRJX-gh(xZmv{$FNS*GQ!j?Nvdr7s-1~vr+RT+2lD<65- zw)B4LlU(+zB`FZ#iW^EX&^shauDx8@ z1jWC%ce5lVnu>>8-rKuHk{V5AD_8dSZlkt>T=7D29qb*Jq|iaGY=@Ew_3n^pnRCSl zC4HoKrzDk+aAg^&?=!B1Q{!lO{{Jxcxg z%#|=N^SSpJMd}MTb{tCZYwrn3N`39cnZe56hLK$4%r@&?sred*W~W{=!*GIIK)yI8 z;mN4=){_!*_gm=(pr6Z8$d!KUX^FW8NX`vdsj~R4Wmr8ctq$JoI9%?PHh07V<+7|0AiDkBsoZZU(d*9MEi=6US zYnCFk4T0Nc)oE9WD=k0ozLs0~+dKCqJl#kI=#DEiY!$=`5ZF!d`w5W|LUNQ4-b?U| zA$8J9_xh)-MM?5Tts*O(w&Kl{=V-BU+KMNFd}rW?=1Ys_GavU0+^x?o(hKhJ8S6`l z70-}c(X+fCWyr;|*4GkioQ1bBE-ykZ#jF*HImbzkk8^p6_ifzzj{0`aig#kT{2p@t zoOM}ZHOR5^T&{5==dCMbBu;W7&PU`E9IM2wbuvQkX$A3XGbCS-5x-#lDzU-^Dqn5p ze&?3~UElaJxoG_^Nx6%Z>r3#?JDD+?unNXT0<%q6ucuqBO$=R6S~oK(lSC=8pDUNG zxW`Xlwz?QA(*cW2@Z62a%}(&#@`Tk*lk^JZHm*>vPVd3ottPGf!zGjaS8$RCJ3eXk zGM1+U7MjA0zlv0fPzQ?Fco=q}e)_s~H)F-?B-gIPQ*l5)tO{Ktj3%?^hIN#&$PFu= zj6|kp1O9+i02L!QNf5p{j6x3Ms0xg28r z2@30B#tO3-v@Dm8LM~>lVa6I+lGAhCts%60objhCtS1-?-+{|_ntKA|*j?*M#+FHxi)Vay)$DLt(3x{PX`f^~wtEKp9lz;k^1u4}w+^VaKRa2{h) zZ!zY4h5$XY;@)kSUYzB2o?&`Dv(8a7&(VTzw_d!1 zocb&4UB-N6s^fo6r~r{Syo_HjJm3TW#+s*re?vLmMHmM%izw4Fq8AE$axGe)Fy^jc zp#fQ-2Ke8?L)|mR-|nzJrwG5rL|ej61SFTNdX3mSs_zwg1*Q4(isABjiHAH{x4veq zR!48YVorX8pWiXw&OTbH1B9fDkl#os4ie&<2p$h1x|QG?COCHxyt@dg-FCOC(|w3d zf*I?PD`uf)}_chFUAPdy4@d6uBz<<4Oa1D!I zM+|^E5V(N?Et}WyC*AuzYgqmU0+2=?kOWF;Ze|#z+&BBSuVKNPXaXn!?rC(lC9D^A zp-g1DZ}%FOnuZ5}X9jTrax>gg0Hx|PeS6n1Zw9RZd7zO&0sR3K2;S;DxQ4}VAt-?J zHi81Afy!-eD~zJv*}h|ISa=p@fC}Kv@&aQh5X<(RT*ES1Gy(YL5U4rs_A$M124xC! zeP`FO8gfE+FkgTo;JV8##ZfAJx9`Flmb}}C#}1H}!*Jxd+m}%wlk1yU!%C2S_pp}$ zS)c~^?{ixz6iwXkyS9eq?!(Ljgd9jd;B)7=Ubu-er3Zb}Yghw0kvujZpq%GrPUwZ( zDC2q9H@k*~9wNd(8Sp$pLx#I35Pj5_Tf@?iFz$foF-8Q)0d*iyK;s2$AYx(7Z;Ot8 zB6{WN8oWo+%$r~HYcXoXgjHzoPMc4PJPE(ub?T_>(@-SfRAh{ge=T+V_I| zc-p69#iwW(@Xq(qjr%-W2l7C5zK<@KOwp#rD*8|^_PwY1vOu{7p#H26@0CACOiS4Q zfh-Vyfy0-`D5IZ19&o=w3aA2}MHB{7Kmn)&z6z=V`AVNg)LPEM4|g}NRNnTrh>f>> zf*4%t8|r51B`m}m<`oe9*r#Q&Iy?c&pW(z8bn+Vxfz)?Q1t8mRBTohh6%WC?9oS*R zDGAyhLTE3cw2u%zK*$|L#vwxRFd=ZnhR>hcaN<7#?;=NSN4r_-D9MGRTs{Ul6}BDk zW`!`xwJ?_>kaNduW8JKBjAYkwE}w!NK5mP4v*dA-^G*2- zv7PH?#R$pu2$$pC{2f=@g>KduBiVP7%a11e z$!(vpO_A+0uziNhscwFWZ@bpb>SqzI7?*EAPK?{q-7Ghb5RG$rnwLIjo1xO@Q2IQV zZ$WOHx83e$zBs}i=W>=e8Mn<*laT98`7Y%A1zWD0F5*dcU*z(A-ph-&2h_`p=;b9Y zKjgMA*&dPY1Z*d`T;TCe*q%_lA-gVfd7jG?wj#+Bkgst08IQ>o+jEM^6~v?|zu;q; zw7sOUOkymPTrTs`nY6v8(V4{POmcaV$7IS@p_oh|CR1Eq;!R$)y`v_tqRAAO-*em7 zY|CW(8f;(Va*cQAx^0EJa|7ME!R1ffNZM8>BWW19$>lGQJ=3>mU*fVCa`v8W zcr7d6v*A-qT;2gW{lMm1%Zd*$2_D#R`F>9CRRyoQYb{>M%G-9YW%WGedLHshBd8R9 zY#Sx_A7j}(hO7yobmOT_qt%M>=1#VkJ2P+NU)e;zjJ0`NkeVu@sUkI{(_BKygD4kU z;N=SRE3LYofq`c>Jji*uY3&Fv^~`pZEIi{)hS6m5xlPkd{LZoEJ-aw z`;*^YzlYq)d)xiB%(aXy8pr|84~Pno2dY4*h9CerpaQs7U{n9>cbm^(Gq7TNzLv#S zP!^~G{*UMjkpIXXeZAJ`{bbX$3C36dR5;)8$??gyxRzxew92ouKeEeXFhQK>K6*_fJ)OD2)GDo zpaujt5K4f1BOyAdq9X%6cqQGfYFfqiFMrt;R}U^--PB;zt#0gL6-u(i5X=LiO)#|? zmI0?n#Ru64)h&d~R)TjM8rr7f5sCG!T|(D(n5>d&^m z4IX|SX#Ge2E{;Jk3vK=$JXo+p#f6Q}rwZl>!BF2trW(5mkr6_CR2A9^KzI)!u%F-x zQeoc#-q{d3n?9&&bfR{s^=CH^!>8gws$M^+9wna+!F`}~NX6?$TUz<0*m0DLgwzu~ zEFVI6536(?D0o{nW5|geR!{b@42fiO7{*UQE*(~*J*;sUVLAeH+8xb?&mcE-L_OQX z3P%vhqZp{8Du2C_Hx*XT_pnr0#i!|ZwJLE$AaG2@qo;{u>ct+GqXSkx#;YVy#d%!4 z+{66GX*31nZVLFHe}C(E0tKSS)hkr*IMoZEAS5{=gaXh2GGhe)NsQb{INY+Yl|Olq zhJox!^=8ko)8ILU_yC?L<^qt3a!+m}$fc+{+tb~Ms`xuU2U=-9XM6Cufzy~x1f_C@ z5IM_3c&Js(!Fb`UdasAo&hn^-nqj(+3{Omb(8EG8Y9t%uRgSib50T>=S0DAT$T%0n zt>R;d!EB9J5%ozAo#_g6OlP{rId#5=`Od3+Ok4l4h_FV^)3CK^PGF8M zz(nRe=F|nuu8V~1C4w`7wFeXd?`1+7Xk1n`2CX>O`uj8Y-1kLvIWnQ*z52ow|K+-> zE|I@i5wjHcZ=C$A!oNg{`&US*%M^qZVyXRrSbDChHR}B}6}Oj&^EH*GQS13ug_efl zTx-`SbfH99{AE5>5dG8YmmZd$#*hNh8H^U-&%gjs${@_b#a8~&Kl-=cMEh_fqxPFv z@D?^0;qtG%=Dz`yDBMbF<0lzQgO@q*5N_$M2|HOf1(_r%Bxk)pb|hMqb`k@g)piQ(OHm z#wdp+oa5s<)2i$+;W?@MD*jGlrj>ROAB4aIDwF`Cc~$eDb^qmdtN7R3_y5&T*Z*nF z-6o9RL)Frjd#H-W$Rl-CTjYi6H!^>$vOpDZzrwx(B!N6o2fSqrJCFv7KppVE zMh1`t%7F6?GJrUc1L4y%B>f*k}%14W_7#DOeO1-$RkE|3I@fO8pEfGCg#%7FU=tN?K!3seDj4OW08 zf#$~!!-%?IqBU5g;~_P)0;X0}esON1{nqzIT{a1kFY3=1!Zall9zt1B`Rl}nt`|6T zepFx5to#VOANhpcY3M5Rf}hmaCg!R)w{nC0hEK&hKba-!YK7KJ9c#5tvsDy!8|bXJ zgd*P0eA7sNR;wmf_^jg9aY?ybHs-e2g(1Pc)sAm1K4rkiYDQ!{QnlTV(H@2KDW83h z%s*OD@Ilq=l?~3Fb_&(%(+2ZC6i?70Zbx?7gR-Vd2Q0FSkS1tKKpls^-IR(Fa8)y@ zW+=tVfXff3fCNzRqZy%r#_Q+o-(6Bjaf6pGkm#Q}4p)5v`#D*P z2ke5B2V8q$6vzYaeV8qTIW>u7fhTMGXr}0N7Y+SFj?a{%cC8_K)Glli;$geim^yC1 zCo|6pn2Ol7LN-D%503Habjg6vBNb3BKW2X-v)ULH^Pc2`IxicNC+&hL>aQ5&%kXr& zP(*;-r+9#(r|i#UDN6@Z9q>j8;V8xoC`avLi`aIJ0xKt*wS^|P3uTybp5|s^r|oZK zsYnNs`wSs?1|x-(?<{-Po*7QSA=8x%BYa19ctKxN{zWUF!efWmwiFkvt7N%!7NQ!G5{ST?(w z-vb*{XtwIK(&}Zy&kvuyGyIvZB>%j}jPFl;W#^wFd}G(TRsS2i=vJd|uw9#&Xo5?g{{mS(Q`7-orcsyS1q?5$#E%6>xm?E_;{<*NPHr^o2O$O6~M zWb`^hA&e`{lcD~C85i#^$3=5@%|!#@-{8RaaXIjPTn>EM8^O2HZCz5QLK1T; zrWlGE8e*uTq@;0EQwfQwHI^c15n`&LrkYD>sZwpJB)C-FqOMDCE6HOK~w6f5i{As8lCvw8(OS7u(3awy!?)sguUp7Drkuq+jgRt7P@)ob?#Xb*JPA zxxFtX)gQW|m69wK2#j!lK6}5MI*TuRJ#dEkv`ewL>)RlyAjYjRUQYdi+rbN!ht1UYy6V;<}R@e5Wszy8T^sb!5vwzrbf4SsH7C%5#t;&nr%x?bnKm z_Gl06?sk*gT@m_lDvk5&@!hK0xOCf0Q^FTH;o3FSDHi=UYD?01w2hct&&n_7@DT1+ z`xKVo^!F>{6uF9i4b?$~6*BDLHy>gP2n3~pWVOwhc6gANp7q6n?IDni&fKb@#dj3t zDur9J$6b2QBhtw!btr8VysNC%V#IDUZB2HfeDKp0*A~BlK7@n-HfqvWoD`q;5!yAs zM0#)e#C^@((I&XUuY(YX@om_vZR)gGh1S0_8|vP69*LH$FbHrwT}tSdxA=9m2>AE( zc_6;tP5-?l<06pgi?7uTMcVWOO9u%7UUA{%=_PN9fULe9bN8b&jSyM|8h z>qDbF4bO2Z`L20xd|W@MX>rthDih`75!0cNb{0&T5XFZKh8he#h>{I%yd5(48NG@g zK2d?0cWp+2R;vT-=k2>CnxPYmm1lVNo{B0E?znz#|1;<~Y|0_G#5h=8{S#6+9h21_!Qt9^_jPcMe zQ~%E~-I!+Rq&+F1gR2>|6?S^`9-tVf($>2{M+C&+b68&TY5hk&N1%BalgLb8Qjmb@H-8C@DPf|xRy=`?(V@u!i;iK%Fr zPr8MCD&2)hONI*Uo@}zWxfmmS#yIvvB>feGeqF-{5^e=HR}wRJIGKxHD8^_lWjK{m zM_!$k`Q%62?X&D*#d}SkyCaAm05BeJ*E=(Hg%y5+Sj3ER7SqR8EUl26Ds zuYvJK37Go#lkNbjY*#7t3}m@!YMN^`1_`A$1FwZBOq!e&-Ybt-+_lBE;KBZmpi>~f@C&0rg6;_$#ve<;vCbU|1QZ5C z061GdAQS)wg8`B*X0CuA49fMf7S86{HujdfSaW+DOA9Aw9jxUhmf34(tF1FAVyms$ z&m3rW)EhZBHA}K-U~Ts}*dus^)aF&Cq-&&>sT9|Bl8H1`y@XP|fOK((Q=9=0egrA>1FZkLej&b*kpYo9{sFiC_u!A0{>9-R bE8=qge~fUp`~rVP@p4B3cbAt0a@YR=igrbP diff --git a/jar/custom_spider.jar.md5 b/jar/custom_spider.jar.md5 index da14f3c3..42dcb4c3 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -0a5952d9789ee1a8398598bea20ce488 +f97e3722085c65ff04e5fe63429a7676