1 Star 0 Fork 0

幻塔de总裁/springcloud1

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
springcloud1Gitee.com.html 139.26 KB
一键复制 编辑 原始数据 按行查看 历史
1487884767@qq.com 提交于 2022-03-09 15:22 . 测试提交4
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792
<!DOCTYPE html>
<!-- saved from url=(0062)https://gitee.com/inandout/springcloud1/new/master?readme=true -->
<html lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><style type="text/css">.tippy-iOS{cursor:pointer!important}.tippy-notransition{transition:none}.tippy-popper{transition-timing-function:cubic-bezier(.165,.84,.44,1);max-width:calc(100% - 10px);pointer-events:none;outline:0}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-8px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;bottom:-7px;margin:0 6px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 25%;transform-origin:0 25%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%)}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%,-45%);transform:scale(.2) translate(-50%,-45%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(-10px) rotateX(0);transform:perspective(700px) translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(60deg);transform:perspective(700px) translateY(0) rotateX(60deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px) scale(.5);transform:translateY(-10px) scale(.5)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-8px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;top:-7px;margin:0 6px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%)}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%);transform:scale(.2) translate(-50%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(10px) rotateX(0);transform:perspective(700px) translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(-60deg);transform:perspective(700px) translateY(0) rotateX(-60deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px) scale(.5);transform:translateY(10px) scale(.5)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-16px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-75%,-50%);transform:scale(.2) translate(-75%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(-10px) rotateY(0);transform:perspective(700px) translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(-60deg);transform:perspective(700px) translateX(0) rotateY(-60deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px) scale(.5);transform:translateX(-10px) scale(.5)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-16px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-25%,-50%);transform:scale(.2) translate(-25%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(10px) rotateY(0);transform:perspective(700px) translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(60deg);transform:perspective(700px) translateX(0) rotateY(60deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px) scale(.5);transform:translateX(10px) scale(.5)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;line-height:1.4;text-align:center;will-change:transform;background-color:#333}.tippy-tooltip[data-size=small]{padding:.2rem .4rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:24px;height:8px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:"";float:left;padding-top:100%}.tippy-backdrop+.tippy-content{transition-property:opacity;will-change:opacity}.tippy-backdrop+.tippy-content[data-state=visible]{opacity:1}.tippy-backdrop+.tippy-content[data-state=hidden]{opacity:0}</style>
<title>新建文件 · 幻塔de总裁/springcloud1 - Gitee.com</title>
<meta content="on" http-equiv="x-dns-prefetch-control">
<link href="https://e.gitee.com/" rel="dns-prefetch">
<link href="https://files.gitee.com/" rel="dns-prefetch">
<link href="https://toscode.gitee.com/" rel="dns-prefetch">
<link href="https://assets.gitee.com/" rel="dns-prefetch">
<link href="https://portrait.gitee.com/" rel="dns-prefetch">
<link rel="shortcut icon" type="image/vnd.microsoft.icon" href="https://gitee.com/assets/favicon_message.ico?1581387642851">
<link rel="canonical" href="https://gitee.com/inandout/springcloud1">
<meta content="gitee.com/inandout/springcloud1 git https://gitee.com/inandout/springcloud1.git" name="go-import">
<meta content="always" name="referrer">
<meta content="Gitee" property="og:site_name">
<meta content="Object" property="og:type">
<meta content="http://gitee.com/inandout/springcloud1/new/master?readme=true" property="og:url">
<meta content="https://gitee.com/static/images/logo_themecolor.png" itemprop="image" property="og:image">
<meta content="新建文件 · 幻塔de总裁/springcloud1 - Gitee.com" itemprop="name" property="og:title">
<meta content="Gitee.com(码云) 是 OSCHINA.NET 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已有超过 800 万的开发者选择 Gitee。" property="og:description">
<meta content="码云,Gitee,代码托管,Git,Git@OSC,Gitee.com,开源,内源,项目管理,版本控制,开源代码,代码分享,项目协作,开源项目托管,免费代码托管,Git代码托管,Git托管服务" name="Keywords">
<meta content="Gitee.com(码云) 是 OSCHINA.NET 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已有超过 800 万的开发者选择 Gitee。" itemprop="description" name="Description">
<meta content="pc,mobile" name="applicable-device">
<meta content="IE=edge" http-equiv="X-UA-Compatible">
<meta name="csrf-param" content="authenticity_token">
<meta name="csrf-token" content="S6jD/S1UyyDzgjgfuEvD83XC48s4wD+uCCx1iF0De9sYyveIsx6FYIqg2Dtl6WIX0VGlnd9SwxiWcmotNjbJ9g==">
<link rel="stylesheet" media="all" href="./springcloud1Gitee.com_files/application-7375caee6d8b647e10e0e70e4f740ca8.css">
<script charset="utf-8" src="./springcloud1Gitee.com_files/UrlChangeTracker.js"></script><script src="./springcloud1Gitee.com_files/hm.js"></script><script async="" src="./springcloud1Gitee.com_files/sensorsdata.min.js" charset="UTF-8"></script><script>
//<![CDATA[
window.gon = {};gon.locale="zh-CN";gon.sentry_dsn=null;gon.baidu_register_hm_push=null;gon.sensor={"server_url":"https://haveaniceday.gitee.com:3443/sa?project=production","page_type":"其他"};gon.info={"controller_path":"blob","action_name":"new","current_user":{"id":9215991,"name":"幻塔de总裁","username":"inandout","official":false,"admin":false,"avatar_url":"no_portrait.png#幻塔de总裁-inandout"}};gon.tour_env={"current_user":"inandout","action_name":"new","original_url":"http://gitee.com/inandout/springcloud1/new/master?readme=true","controller_path":"blob"};gon.http_clone="https://gitee.com/inandout/springcloud1.git";gon.user_project="inandout/springcloud1";gon.manage_branch="管理分支";gon.manage_tag="管理标签";gon.enterprise_id=0;gon.create_reaction_path="/inandout/springcloud1/reactions";gon.ipipe_base_url="https://go-api.gitee.com";gon.gitee_go_active=false;gon.current_project_is_mirror=false;gon.all_files_name=[];
//]]>
</script><style type="text/css"></style>
<script src="./springcloud1Gitee.com_files/sensor-42ae731632c43f0efd3963709358d23f.js"></script>
<script src="./springcloud1Gitee.com_files/sentry-5.1.0-a823fb0be1b61c5d7ca4a89f0536cb0a.js"></script>
<script src="./springcloud1Gitee.com_files/application-90ebb6f158b1e16d40c254454831941d.js"></script>
<script src="./springcloud1Gitee.com_files/jquery.timeago.zh-CN-4a4818e98c1978d2419ab19fabcba740.js"></script>
<link rel="stylesheet" media="all" href="./springcloud1Gitee.com_files/application-4e0cf3ff22c9fd90a6c5bbdd99cb8053.css">
<script src="./springcloud1Gitee.com_files/app-ec4ead470184e0545203898d37232caa.js"></script>
<script src="./springcloud1Gitee.com_files/jweixin-1.2.0.js"></script>
<script>
var title = document.title.replace(/( - Gitee| - 码云)$/, '')
imgUrl = '';
document.addEventListener('DOMContentLoaded', function(event) {
var imgUrlEl = document.querySelector('.readme-box .markdown-body > img, .readme-box .markdown-body :not(a) > img');
imgUrl = imgUrlEl && imgUrlEl.getAttribute('src');
if (!imgUrl) {
imgUrlEl = document.querySelector('meta[itemprop=image]');
imgUrl = imgUrlEl && imgUrlEl.getAttribute('content');
imgUrl = imgUrl || "https://gitee.com/static/images/logo_themecolor.png";
}
wx.config({
debug: false,
appId: "wxff219d611a159737",
timestamp: "1646290222",
nonceStr: "8a4c008ba54ada321dcb771a2169eab3",
signature: "d9e1daf05d029c599b83e907978eba87561f2a5b",
jsApiList: [
'onMenuShareTimeline',
'onMenuShareAppMessage'
]
});
wx.ready(function () {
wx.onMenuShareTimeline({
title: title, // 分享标题
link: "https://gitee.com/inandout/springcloud1/new/master?readme=true", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: imgUrl // 分享图标
});
wx.onMenuShareAppMessage({
title: title, // 分享标题
link: "https://gitee.com/inandout/springcloud1/new/master?readme=true", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
desc: document.querySelector('meta[name=Description]').getAttribute('content'),
imgUrl: imgUrl // 分享图标
});
});
wx.error(function(res){
console.error('err', res)
});
})
</script>
<script type="text/x-mathjax-config;executed=true">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$'], ['\\(','\\)']],
displayMath: [["$$","$$"],["\\[","\\]"]],
processEscapes: true,
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code'],
ignoreClass: "container|files",
processClass: "markdown-body"
}
});
</script>
<script src="./springcloud1Gitee.com_files/MathJax.js"></script>
<script>
(function () {
var messages = {
'zh-CN': {
addResult: '增加 <b>{term}</b>',
count: '已选择 {count}',
maxSelections: '最多 {maxCount} 个选择',
noResults: '未找到结果',
serverError: '连接服务器时发生错误'
},
'zh-TW': {
addResult: '增加 <b>{term}</b>',
count: '已選擇 {count}',
maxSelections: '最多 {maxCount} 個選擇',
noResults: '未找到結果',
serverError: '連接服務器時發生錯誤'
}
}
if (messages[gon.locale]) {
$.fn.dropdown.settings.message = messages[gon.locale]
}
}());
</script>
<script>
var userAgent = navigator.userAgent;
var isLessIE11 = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;
if(isLessIE11){
var can_access = ""
if (can_access != "true"){
window.location.href = "/incompatible.html";
}
}
document.addEventListener("error", function (ev) {
var elem = ev.target;
if (elem.tagName.toLowerCase() === 'img') {
elem.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAAAAACIM/FCAAACh0lEQVR4Ae3ch5W0OgyG4dt/mQJ2xgQPzJoM1m3AbALrxzrf28FzsoP0HykJEEAAAUQTBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEkKK0789+GK/I2ezfQB522PnS1qc8pGgXvr4tE4aY0XOUWlGImThWgyCk6DleixzE7qwBkg/MGiDPlVVAyp1VQGrPKiACDhFI6VkF5LmzCki+sg7IwDoglnVAil0IMkeG9CyUiwsxLFUVFzJJOQaKCjFCDN9RXMjIX7W6ztZXZDKKCyn8sWJvH+nca7WHDN9lROlAliPH9iRKCPI4cswFJQWxB46toLQgQ9jhn5QYZA9DOkoMUoQde5YapAxDWkoNYsOQR3KQd9CxUnIQF4S49CB9ENKlBxmDEKsFUgMCCCCAAHIrSF61f6153Ajy8nyiPr8L5MXnmm4CyT2fzN4DUvHZ+ntA2tOQBRBAAAEEEEAAAQQQ7ZBaC6TwSiDUaYHQ2yuB0MN+ft+43whyrs4rgVCjBUKTFshLC6TUAjGA3AxSaYFYLZBOC2RUAsk8h5qTg9QcbEoOsoQhQ2qQhsO5xCD5dgB5JQaZ+KBKGtKecvR81Ic0ZDjByKdDx0rSEDZ/djQbH+bkIdvfJFm98BfV8hD2zprfVdlu9PxVeyYAkciREohRAplJCaRSAplJCcQogTjSAdlyHRBvSAekJR0QRzogA+mADJkOiCPSAPEtqYBshlRAXC43hxix2QiOuEZkVERykGyNo9idIZKE0HO7XrG6OiMShlDWjstVzdPgXtUH9v0CEidAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQP4HgjZxTpdEii0AAAAASUVORK5CYII=";
}
}, true);
</script>
<style type="text/css">.MathJax_Hover_Frame {border-radius: .25em; -webkit-border-radius: .25em; -moz-border-radius: .25em; -khtml-border-radius: .25em; box-shadow: 0px 0px 15px #83A; -webkit-box-shadow: 0px 0px 15px #83A; -moz-box-shadow: 0px 0px 15px #83A; -khtml-box-shadow: 0px 0px 15px #83A; border: 1px solid #A6D ! important; display: inline-block; position: absolute}
.MathJax_Menu_Button .MathJax_Hover_Arrow {position: absolute; cursor: pointer; display: inline-block; border: 2px solid #AAA; border-radius: 4px; -webkit-border-radius: 4px; -moz-border-radius: 4px; -khtml-border-radius: 4px; font-family: 'Courier New',Courier; font-size: 9px; color: #F0F0F0}
.MathJax_Menu_Button .MathJax_Hover_Arrow span {display: block; background-color: #AAA; border: 1px solid; border-radius: 3px; line-height: 0; padding: 4px}
.MathJax_Hover_Arrow:hover {color: white!important; border: 2px solid #CCC!important}
.MathJax_Hover_Arrow:hover span {background-color: #CCC!important}
</style><style type="text/css">#MathJax_About {position: fixed; left: 50%; width: auto; text-align: center; border: 3px outset; padding: 1em 2em; background-color: #DDDDDD; color: black; cursor: default; font-family: message-box; font-size: 120%; font-style: normal; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; border-radius: 15px; -webkit-border-radius: 15px; -moz-border-radius: 15px; -khtml-border-radius: 15px; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_About.MathJax_MousePost {outline: none}
.MathJax_Menu {position: absolute; background-color: white; color: black; width: auto; padding: 2px; border: 1px solid #CCCCCC; margin: 0; cursor: default; font: menu; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
.MathJax_MenuItem {padding: 2px 2em; background: transparent}
.MathJax_MenuArrow {position: absolute; right: .5em; padding-top: .25em; color: #666666; font-size: .75em}
.MathJax_MenuActive .MathJax_MenuArrow {color: white}
.MathJax_MenuArrow.RTL {left: .5em; right: auto}
.MathJax_MenuCheck {position: absolute; left: .7em}
.MathJax_MenuCheck.RTL {right: .7em; left: auto}
.MathJax_MenuRadioCheck {position: absolute; left: 1em}
.MathJax_MenuRadioCheck.RTL {right: 1em; left: auto}
.MathJax_MenuLabel {padding: 2px 2em 4px 1.33em; font-style: italic}
.MathJax_MenuRule {border-top: 1px solid #CCCCCC; margin: 4px 1px 0px}
.MathJax_MenuDisabled {color: GrayText}
.MathJax_MenuActive {background-color: Highlight; color: HighlightText}
.MathJax_MenuDisabled:focus, .MathJax_MenuLabel:focus {background-color: #E8E8E8}
.MathJax_ContextMenu:focus {outline: none}
.MathJax_ContextMenu .MathJax_MenuItem:focus {outline: none}
#MathJax_AboutClose {top: .2em; right: .2em}
.MathJax_Menu .MathJax_MenuClose {top: -10px; left: -10px}
.MathJax_MenuClose {position: absolute; cursor: pointer; display: inline-block; border: 2px solid #AAA; border-radius: 18px; -webkit-border-radius: 18px; -moz-border-radius: 18px; -khtml-border-radius: 18px; font-family: 'Courier New',Courier; font-size: 24px; color: #F0F0F0}
.MathJax_MenuClose span {display: block; background-color: #AAA; border: 1.5px solid; border-radius: 18px; -webkit-border-radius: 18px; -moz-border-radius: 18px; -khtml-border-radius: 18px; line-height: 0; padding: 8px 0 6px}
.MathJax_MenuClose:hover {color: white!important; border: 2px solid #CCC!important}
.MathJax_MenuClose:hover span {background-color: #CCC!important}
.MathJax_MenuClose:hover:focus {outline: none}
</style><style type="text/css">.MathJax_Preview .MJXf-math {color: inherit!important}
</style><style type="text/css">.MJX_Assistive_MathML {position: absolute!important; top: 0; left: 0; clip: rect(1px, 1px, 1px, 1px); padding: 1px 0 0 0!important; border: 0!important; height: 1px!important; width: 1px!important; overflow: hidden!important; display: block!important; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none}
.MJX_Assistive_MathML.MJX_Assistive_MathML_Block {width: 100%!important}
</style><style type="text/css">#MathJax_Zoom {position: absolute; background-color: #F0F0F0; overflow: auto; display: block; z-index: 301; padding: .5em; border: 1px solid black; margin: 0; font-weight: normal; font-style: normal; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; box-shadow: 5px 5px 15px #AAAAAA; -webkit-box-shadow: 5px 5px 15px #AAAAAA; -moz-box-shadow: 5px 5px 15px #AAAAAA; -khtml-box-shadow: 5px 5px 15px #AAAAAA; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_ZoomOverlay {position: absolute; left: 0; top: 0; z-index: 300; display: inline-block; width: 100%; height: 100%; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
#MathJax_ZoomFrame {position: relative; display: inline-block; height: 0; width: 0}
#MathJax_ZoomEventTrap {position: absolute; left: 0; top: 0; z-index: 302; display: inline-block; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
</style><style type="text/css">.MathJax_Preview {color: #888}
#MathJax_Message {position: fixed; left: 1em; bottom: 1.5em; background-color: #E6E6E6; border: 1px solid #959595; margin: 0px; padding: 2px 8px; z-index: 102; color: black; font-size: 80%; width: auto; white-space: nowrap}
#MathJax_MSIE_Frame {position: absolute; top: 0; left: 0; width: 0px; z-index: 101; border: 0px; margin: 0px; padding: 0px}
.MathJax_Error {color: #CC0000; font-style: italic}
</style><style type="text/css">#screenShotContainer{position:absolute;top:0;left:0;cursor:crosshair}#toolPanel{height:24px;background:#fff;z-index:9999;position:absolute;top:0;left:0;padding:10px}#toolPanel .item-panel{width:24px;height:24px;margin-right:15px;float:left}#toolPanel .item-panel:last-child{margin-right:0}#toolPanel .square{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAORJREFUaAXtmLENwkAQBA0iI6ULeqAKmqMHCiCmBzrBMdzK+fvlXVsgzUsX3d3u/2z2w8CBAAQgAAEItAmcqn2veld9Nip5yVPezbNrdqemhM5Vz47Z5MilxF5VV1dUNG6uyIJ9ecq7efbN7tQ8dsysNTLr3fOAtS4X0eUBEYyGCAkY8CKrJBDBaIiQgAEvskoCEYyGCAkY8CKrJBDBaIiQgAEvskoCEYyGCAkY8CKrJBDBaIiQgAEvstqTwBhxWiYy633o0H3UjD5at/4flae87aMv7p/9XrdfhwAEIAABCPw1gS8CdEV3aG1wFQAAAABJRU5ErkJggg==);background-size:cover}#toolPanel .square:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAARFJREFUaAXtmLENwkAMRe8QUoTogIoV2AGJjgHoWICRYABm4Dq2oaIkoFSHja6M4lN+FBD5lNj+//x+KjvHHwmQAAmQwJAJeGv55TUuqup1lL5tjHFq9XdR996XohOKYnK4bfy9SXPcVNRaevxKHn+2eruqi5eTJdbJewfpzsPzMbuUJ0ikxbB6qrc1OrIa+vps6t6R420uUCf8S/9xgW+nwQSYAEiAnxAIEB5nAjBCUIAJgADhcSYAIwQFmAAIEB5nAjBCUIAJgADhcSYAIwQFmAAIEB7//wTSoRUm1UYgx9s87opx0ENr3/dR9VRva3FzAT1x65VYBPc5t0rLMKeeyH/O6zn97CEBEiABEhgugTemKDubNjFCTQAAAABJRU5ErkJggg==)}#toolPanel .square-active,#toolPanel .square:active{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAPJJREFUaAXtmDEOwjAMRRuEVCFWJm7D1r0cgiNxlG7chokVoU4hkTJWcdQfKCovY2x/x+9nctNwIAABCEDgnwk4a/jjzR/G8XUNeZ33fm/l14g7555BZ2jb3eV+co+c5jYXjLH4+PDw3sqrGU+g+tA7yp5z2ptcMMW6gpxPpZi9zQG+9W2mCJT0NgeYEv6lOwZY2g0cwAGRAF9IBCiX44CMUBTAARGgXI4DMkJRAAdEgHI5DsgIRQEcEAHK5TggIxQFcEAEKJev34G0aJVJzREo6V3iwDCneaUas7e5nY4r7rQlXmS9XgkEMhCAAAQgsFICb9uiLZTmm16RAAAAAElFTkSuQmCC)}#toolPanel .round{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAi5JREFUaAXtmL9OwzAYxAsS7cLGwp+dSkh0ZmFgYusjdehD8BIsiBegEkM3xo4siDIjmFjgfk2uA1LSlDhpLXzS1VFj3/n77MR2Op2ElIGUgZSBlIH/nIGdgMF3pXUlDsUz8Tinis4850zlvfggfolbgUP14kZ8F78rkrq0oe3G0JPzWPwU3fEnXY9ERuJU3M/JNf9xjzquT1s00GoVZG4quiO3uu6v0QPq0sbt0WptNAYye8nNn1VeiH8FbdEgEDTPxUZBltz5ia4PArihgZaDaGwkejJhqDGaiHtiKKA1EdHGA6/g4GHDgCEPkfnfHUTT0wmvoGBY/bZh3jYFtEkSXkGnEu9shHlzNA2/nfAMgq5UvEj1gyiWi+BBsvDEuzaupYAgC1Bb8GKHdyl2S+9mN4d5nbsKdUNVsZe9C3WrBMDGDDxmRSu/9rJ3oWmVANhVgtesaOXXXvauZfqh1jwDbMzaAl544l2KKiNggZBnB2sWlfYiiFJUCWCeKxyVKoW9aa+3VbLrBHCySizgfXs5eYXSVQKY5a0vC1XC37CXvWs5bPVCViWy6LcSBBn1Zo4Aot9OE8RY5L0c5YGGAHriVCSIiRjdkVJ9XkylaA/1BAAGooNgOtU5YtLW52A0G/+sIo8FeKg9nZhSUX3YykLIngkebB/2CYST1Ejc+k+L6uMSjAbrhM/NBLKKwT7uetu67E2NC1ZsMs8xMKrP6zViTk1TBlIGUgZSBjacgR/CFam/GpziJgAAAABJRU5ErkJggg==);background-size:cover}#toolPanel .round:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAA4hJREFUaAXtWEFrE0EUfrNJTVJBRK1oK6JYEVoQigr1IFKwBxVE0ZP+C6+KB9Gr/0JPFUUQDxaK9GCgSg9SQawI0lalKlKwSUyy4/smOzEEMm+SbJXQncsm+2a+b743b2feG6KkJR5IPJB4IPHAZvaAikv86ILesvqpNFGl8AIpGiFNg/wcNPiaVvj3Cr97m6LgycD+zMzCqPodB3fXAgZm9J6wVLxFOrymibb5TIpJ10gF94NM9vbqhPriM6ZVn44FDL/XmZ8f1m9oUte11ltBwGDzWgWPA6JZSqtllcqs4L2ulgapoodColNKhxdZ6Jjpr9QvRfre9kP9dxcPqxLetds6EmC8Xiw80qTHQahITSkKbn47m33nM4Fdz4pHNIV3ePyVaHw+yOYudbIabQvYPV06Wi1XnzL5PlLqI6Xo6o/J/rzPxJv77Hi+Pk5VekBaH2QnLKXTqXNfJzNvmvu5/rclIPL8HCbPhC+yfbnLy2fUdxeBZBua1juL5cJDxjwNEbwSJ9pZCQ5Xv4aYD2thYyZ/YCA32e3kwQwMYMEhcAw4wOU3KyJvAbUPlmOewwaef31clX1JpH7AAiawWcQ4uKQx1u4VQrWtsrBodpu0OtlpzFvSVk/zTVT0S8W7U5DJDfuEktcKYJ/H5HmZpzZq8hAFbHCAy5wtrZQ2vBcF4ITFIYUx2Cobxm7IzzoHcxpugUUUgPQAJyzH2rzvPi9wOs3gABc4we3szEZRgMltuCNOWAksLrvlstwuXFEAx80IALjjrAsoTludK+J2YcsCkFWicW7jAorVZrkstwNcFhClxDYxc2DFZqpz2XTcgSwLiAbrPiSb/6bVufhUkxhlAShG0IqlvRJYbPa/XJ8lTFkAKik0zuclsNjslstyO4BlAVwGYjyKEQdOrKY6V8TtAhcFoIYFACopF1CcNstluV3YogAU4Pz1rqEMRCXlAovDVqvWaAyc4JYwRQHm9oALcAChDJQAu7XXOZjT5+bCa2vs+XQaeTluD4x3uYZFGditp5vHG0zUx9zA5VMLoK8YQuiEhqsPztXzKMBRwx57xcdNTA1YwIyK+zy4fKG9QsiC9XRRDxFY1lRf6jyvxBJuEQqVwpwpA63CNp8YCwxgARPXKr6hY6naWgE7KFqJ3rzYsiJ6+mrRisCztsX24OVuowj8/l/X683zSP4nHkg8kHgg8cDm8sAfhkzSnCu/+OAAAAAASUVORK5CYII=)}#toolPanel .round-active,#toolPanel .round:active{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAqJJREFUaAXtWDFLHEEUfrNn3LsIIRYGOcQml8YDu0BKr7BREKzzL2wDFopt/kXqQCBdwDZgKWeTsxE5FRsREr2Eu8l8uzewCLvvzbp7q9xMM3M7b973vjdzM+89It+8B7wHvAe8B6bZA6oo8u2unr0+G3SGNNoiRSukqWn6ZqRfU9+M++bbSY2CbwvL4WG3rf4Wgf1oAguHenE0uN8lPfqoiV5JjDKgt6SCL0FY37vuqEvJmjSZ3ARav3R4c/rnkya1o7WeSwPI+q6U+q1If3799uVB750aZMmmzeUiEHn9/u6rJv0hTbHLd0XqZ1BvbOfZDWcCb34MVof/ht+N8UsuRnKyhsT5zExt42o9POZkk/NOBMaePyraeGsQSJideO+yE4FdzPU486P42BTq+SQuHAMMYCW/Z43FBOI/bDFnPssg/K+AlSWTnBMdofiqvOvlvW2SgJIxbqcgbLQkR0m0A7jnJ2U8CAIrelsEbFkCeGHxSAl0FStiMCNsRitLAOGB9IVlsJymgQlsbhFLIIptOC0lzUuwWQJRYFaSgaxaBIVM4wkgqqyqCbB5AjYkroKEAJsnUIXhFtO8anaY1vMEkIxU1y44aJ4AMqmqmgCbJ2DSwKrsRwrKYbMEkMNySsqal2CzBJCAm4jvtiwj0/QCE9hp8/Y7SyCqHpgE3C6YWG8wJZULlgAMRvUAIe6kjI/D6fqeBE9EAHE5qgcShUXIAEuSCwBLRACCKH2geoBxmQ0YwJJiiAmgboPSBxJvqXJXuXFSv+1SIxITgDHY1tqL2mYZJKATZRXp0bHOEeXEVtj2T6mw5bQDlgC8NN9qrAWK9h9zO0W3jdEBXa6et7bk2gG7GH1csXiGxd0kCYyrKq8/tMP/9h7wHvAe8B6YLg/8B7td+kBEJNs9AAAAAElFTkSuQmCC)}#toolPanel .right-top{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAgNJREFUaAXtmE0rRkEUx6/XsrC1okRPYWWhbCQWFmxsbCyelKysZGFnISWSlJBIkpT0ZO8T2Nmy8QGQkrzn7X8yU9N97h0z923uZE79u3PPPXPmd05zPeN6njPXAdcB1wHXgf/cgQqDxddi7QLULqgJ4xNoFVKyLAqoB0kbJILSuBWqgvz2Cked3xl2Xx32IIa/C3OLEAdu1Mx1qxmfePgpMn7HEM1XtkrlSPXAKYTeqIeXRV6UeSSONAoggH4oahFaBUhqi/2oAxmuId3t1Bt75QQTRCmiIcH1E0mlU8Sd7oppvAN+hks4zvzOkPvc7H/ORz+UOxB/Dx6FMfeJV4rNlW2AhgPOY/zXdprOEz2dZzj8ggAmK2JQiDM6XBLgFwNIwopoDojN3EVbhXd+WbK6v4gnxGZxuJQged6sAL8ijfx9KBZxrhCfasgMsvPOK5/nMYeKuILmIGNGBzgOv2aMIuLCkwL8esQcxqZNYOUvVsCmMYqIC49h3ieD38LV+F8QnTpGBXj6+bcKfgTAHxC9tLu2wQ8D+J3B7+GaxWkWyyRjQ0jzBlHn9yGr4AcA/MLgD2yD7wPwM4M/xDXoYxTc+bQeYPF/Qo4wtgq+G8APEO35Y9vgOwF8z+BLuKbxCRJp07NtpKbO05di6+CpLS3QOFRDN85cB1wHXAdcB1wH8tqBH3D6o7sgJgNQAAAAAElFTkSuQmCC);background-size:cover}#toolPanel .right-top:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAwdJREFUaAXtmD1s00AUx9+7JCgBIdEoNJ1QyoDqAQkJNkCqYGgEMwMDCwsLLOyUAitsMDCzsVUdSghVJTYkmJBI+VhgoOJTgiLH+fA93nNICFHjnGNXMZKfFPt89+z7/d/dO58DkFgSgSQCSQSSCISIAIa4N9StpXXK2m7zELmuRZosjWgxzDQhvs5AdvHTAn426SBt4hTGh0H32U7daiPOAZKFRBYQWj+d+iwAqd6ziYDkgmi+hfYBLp3ptfkUIhWwRKTuVRtl7eqzgMCgxKD2jNc/AwqhBylHxDYCvuXiKxZWA1AbXLlJ5FaR4LgP8z9NkQq4W7Gva4LFDnCnH4a0GXCDo14DxT/NsOlUrTS1692LY9jqp5lZrZeaUoH4q7/erxypACI8ITFm6DWF6nY6Q7WPp7IfEDmmA/Zt4FouXYUWaC4Q8IiY2d85aObv66UQ7osD084T6anN07n328EPewhpbXltCDydzCxSAV/Kux8CKp5ClOJAPiis2ufNMDpempO8U5KcMLNIBUiX38u5W2OL4NXJw0Y1OQGhRPwZAaTsZAWMI6JYoWlOnjyvAD++lnHTGwmDQ+RTqL/PINPJRcebPijLbQDbUQHCkVKpFU7qrZGJ3VuBzBNYnr+jAvY/bh5xdWuN30x7ObGf+YngPVC8RqAHz/Oa3wXLs4XsSd/VSdOcRBSU+QrkuXs3RXwYhC8Vcudk2+CXE90RUGnzt7BgR76dHgbfH6P8o/o1IH2Tu3d5Dl/AbG7FdewtHinnykJuzxKibCiMLNIcMIEXqsGRcBv1G1JPRG+CwMs9kQkwhZdOxfpFMPlVqeMReCrnIBaJgKDwXUARoRRcQgT5+nqZIbzTbTM9h86BceFNAUf5hRIwaXgRN7aAOMCPLSAu8GMJiBN8YAFxgw8kII7wxgLiCm8kIM7wIwXEHd5XwP8ALwJSchi0YrVxuK3b6/KRLR8j3f38oF8crrf9a7HVbl9muNjDDw1g8YlzMF+pXzz6nDJDnZKGJAJJBJIIJBFIIhCDCPwGO3q+e4PmVA0AAAAASUVORK5CYII=)}#toolPanel .right-top-active,#toolPanel .right-top:active{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAjBJREFUaAXtmDlLA0EUgN/brMaINiEqgoIoglEEQf+A4AXWlja2WuRPWPtPBLXywsZSS402NlYeSSPGHJt9zrisSOIeM9llR5wpsuy8zcz3vTmYXQBddAZ0BnQGdAb+cwYwKfmZG+ouPdYn69jMA2EegNgVRsGA/fJq715YrtgFcpfUT9XKFFgGA2SQCBw0TwATDDrVCoqI1dJab6a13uve9ArI1udO3heIcPMLlmXWfquMOG3ZzoWR+xUWfvGLt8YiF6Am7BLQitNRAG0rDbtHouIv1Z5VhmdENmCaBUR4lv07ICYrUFpOF8k0F2Ulkh8BlvryUvpWVgINI9kRcKeOrIQBPXduG2Gu0a+BH70KSyCUn1ZRaP3EKsBduISV7loPtSZIbAHz9mMXGDipz5m1xiEhbgdKoNgWGrsAh2/ajXMiGEYbFoMWtqHSCLjw7NiQZceDg7GBTCFoTYjuQLGNQBt8LrNxvYAN3qGfRMoWn0KRH+b84LmAW7JntWm0rAs2vQZ5HQJWXtcyfWy0hM4fkS7isPAcuH0k6F4UnrcTmYAIPO+YF1eC5f+B7VBHTq3YbyRTSAZeDNP76Y4FkoTnWh0JJA3fkYAK8NICqsBLCagELyygGryQgIrwoQVUhQ8loDJ8oIDq8L4CfwGeC7R9m+SVQ6e1Wcu2Lr5fRn6c53lcpfLrp8WGZe0wSOdNSmF4z0QOnVXHs8cfW/NX1OX5kA7oDOgM6AzoDOgMKJCBTz35SoU1TFsiAAAAAElFTkSuQmCC)}#toolPanel .brush{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAArJJREFUaAXtl7tu1UAURS+IDokkvEOABkENFVADEl+UXwglXb4EiY6UvN+PyzMlFZCCBhpYi3ikKWznWJixI3ykfce58mTWGc/Zx3c2m2LagWkHph2YdmAX78Ap2G+hp2gN7Ue7Ji5D+gP9ynSP6wU0+rgI4U+Uw6fr0SexAvhmA/zokxD+fQX/hHHeksjonsQJYN9VwA8ZF9Fx9Lr6Lu1+PprEKApb+LcV6CPGJZRipyRupBuHGpdZOB2Vx1wfrAFpS+JFzf3FvhLsDfJYeObr4Pn6TzQlsZ5uKD0eY8EEb6M6FAAwiTlKdfCJ6yOBeb3fInwqzmdcR+CFsLA9ZiawiU6j4nGUFV8hIZ6jwygSwj9AzvuIfM0oHj7ul0gIiy8Krysl+A9cn0TFQ3ihE3z07ApvX3CeTW4QeHfa4yKET8BjFAldyb7gPJucnbp4CG+hCuHZ7wKfCtYmZ7MrHrqLFim8rqP7RMJ59gXnDQbv408Q+r0eHok8aT3fTl08hE+PX4gofH7cuiTda4K6Rio8H390B3WlVOget2jS3Npf5JbX5ezmFmuhR2ulP3L+k50y+bWWF3UNXUlrtWC7WCy39xd5m7fZRP16FPALAN9H7mCXNu8x8bg4zw7tMSoeB1jRn3VC+IIVbfMWqIXqPAt3EHh/i96tILq8HQqvRQpvh9Y6B4lLrCrEZxR9L9dS59U8O7RNa7C4zsomcDtIoCtprc6xQxeB38tCTaHzGFvbQ+un8HfQOST8FfQF/fPoIwEtdQMJ7+vFVfQVFYm2BOy6xrftofZTV9pAZ5GvF0XhWW+2z4+G2OkIJfgzzBf+GmpLtmGZv/s6ksAFllhFJpTrPH/rOr5eCL+FRhXr0OgobbJDm9Rg0fYEbkJljexB7m6d7LLf0RTTDkw7MO3Af7oDvwFjWdeSB4jgWgAAAABJRU5ErkJggg==);background-size:cover}#toolPanel .brush:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABOFJREFUaAXtmVtzU1UUgNfaSZOckwFKW8ql6DDeRaugCOMDTE5vMuMP4J/4pk/+AB/9J9RSmqI8OCqKBUUEsYNQSymYjvScxKRnudZOT8xkcrJ3GhJ8yOnDydnXb133pQD9p6+Bvgb6GuhroAMNYAd9O+46dImeg2Lpc6JwTBGcTyrn0wcf4GY7Az8zAUbP++9XABYBKBUBo8Jv9ihn5s40bkRlprcyNehG/fCCf6qMcKkeXuahkE5uhMHcCxdoj+28PbfA8EV/jMp4mWmPxEG2Y4meWkDgocxuI/AqcRUBbzYToh1L9EyAkbnNQwyfJ6KXEOHK7lTaUxknx79vtBJi/xeUbVYflfVEAIGnLRT4lxn4+2zWnV72sPDQw1WVdidaCVGh4OMIttm76wKMzNJBCnGBgF7hgPvBAXf67mn8K4IxCQGAH0Ztm727KsC+PB0gCBZY868CwlUH3al7Z/FxI4hBiMuN7eu/uybA6DztD0uBuM1rDP+jk2wOH8HUhKgPbIW/D7iZT6I2zd5dEUDgtyp+FR5gieEn70/ho2YA9WUcrUVA5UsZZ6jljMLc6hl8WN+m8XeysaDTb84ao5Wyzz4Pr/NY1zIZhvfM8EfyNPh3MbjAsXKc8e+kFeRWpp0/TDwJU4N26g98SfvKZT/Pfd5gFV5n+IkVD9dNYzz/Fe194mv4E6z53yADubUp956pn9Q/NQsI/D++vwBUhU+5DH/GDn5z02fNw7uIeJvS4D327OBFgKeylTiUp5FikeEBxnnEnwbQneBd5ZpM0Oo5PEtDATA8wTsMfwsGwHs06d5v1aexrmMLbMNf5IHHWRs/J9uBJ3+eNX+c3eZXVOStT2ZXGgFN3x3FwNg8DRfLvsC/LatpYsCdWJsxa176BaHuV4VPMPxM+/Ai3I5dSMzvA0MQHGPz/6LSjie53KQxDV/R/VhovIngeOtn8U9Tv7j6HQmgfTcyP0MwfM4Gvs7d3mpH6Dh4KW97IZOUpwMv8l3WoA28ZKntQGd4uGFrsVbwUtdWEAu8TnmSNSTwtO+azV9LsQBvSqAnkhwrHj4wwdnUW7uQXilLnDVI5+tbnDVyNoEnK3OZauuDdYq1gZc2VgLULfMn2Hdvc77O2eTrbsNbCSAH7I2KXubfk2WeeJm3WSn1hq66JzrKarouK7NpY2ar9fp2LdeBoa9pdynQ8CdlgyV7FBt4OQeEvCfiReooT3YtlXUnuwEvgsRmITmLYiGY4/28hs/w7tAaXp8D9G50STZ03YIXAWKzUFkF41ChUxwkq+kkejZbWzk+bh9i5AQmhxirrbSA7PSJtUBiSw3KoMQgDH/XNIE+uFOwyBarHh8tDzGmcU31sQIQhloA9v2CaZDarcP2wd0FuxOYaVyb+lgBgKgqALYWQN+0hbiobx34yiTu4G4Ds5M2sTFApPYChIAh1a5AGicYyvuHofTfZZXc99RfmTS278Z3rACAbAHOgxyMTV1I4LEIovkXeW9z5VnAi0JiBeBg1C4kB47hWf+jqkBqkIG5nAaxRMe47iAvbt/tSjvTy6dbu1o3tN9SAEQV8j8emJXOMeg5bQ12qeipGge/3ZVxZuSaMCrv9TvWAkj4GUMqdiH+wwJ/Fzgg+K0KfP3N77BAKWeJ4Z/0Gro/X18DfQ30NfD/0cC/yGVeCCJ5w/QAAAAASUVORK5CYII=)}#toolPanel .brush-active,#toolPanel .brush:active{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAA45JREFUaAXtmFtPE0EUx8/ZFuwuQS5yE9EYjJdoiLeoL2rYUpAPZXwwfgA/DiBQ1BfjXcQbKhoFREQsUXYLpXs8U9xkQzLb2d22+LDtw+zOnDPz+59zdnZagPgTRyCOQByBOAIRIoARfCO7dt2j9oKVv0lEfQxyP6npt75fw/UgE++agO5R62DegSkA6nWBEfFhU0IfmhvENbevXKuVM6jGeGvW6tlwIOuFF+twJi6uFe2x3jvUpLpuzTOwb8I6AJtwl4COyCCDZKKmGSjBF2DKDz5oJmqWgbax9W5ycIrL5Kgs8jv7RSaSqKf9HuyaZKAEX8RsEHg3E1uOfX2nMO991QW0jdB+jvwkl80x78Kq1wRw2c+2qgLas9RFYE9y5I/7QfiNcRnN+I1XTUDHOHU6G7YomxN+AL5jiJ/qjNQNP5uqCBDwxS0rGjzgXCqB/UtX8YefgITfYJixzlHqKBYZHuBkGP9tH4bXoH9xyPhabo6KCiidbQoWv2HhVLmFZeMI+BFS0L+cMeZlNt7+ipWQgN+0rEmgCPCIH4jhV001eCGkIhnozlLbhs3wAH3e6AS55t3mPdSBuZo2FoL4Rc6AgM/nrYlI8ICzqFH/z4Fg8EJopAwcGKd9+UIJ/nSQqHltueZnMUHmylDDordf9Tr0WahnhFotYHiCM6qL7bTjsnmHoJsrw/ht55jqfVLV0Gsn4G2yxrkvCvxbbY9u/jBxyTt30OvAz8Ch+9Rig3WH9/mzQRdz7RHhTSXgxXyBBAj49XWGJzjnwgRtuWZfJ5JG5Mi76yoLOJyl5n/w513nwC3Cq6RmmMsZ/B7YV+Kg9AwI+N95W5RNJPg6NMSPk2UJS6jusruQ+IG9tiXg6UKoFYQTwky9YaTLHczCzO9bQq0PaK/4lyASPMDLasFvx0Yim0+VDVtkT/B5/pLERKV7OpUyBhZNXFExDmMjzUBBs/siwSO80OuMdDXhhWCpgERRaw4TkZIPwnM9aQwsZPBn6DkUHaUCCJ1QAnhXeGZAbeCFRqkA/p8vsAB+wz7V0cjMD+OqYgAjm0nfA0RaC4CjvADDP2loMAa/XMFfyk4VMJRnANUzsFvwQr9UAO9ASiXE5/nHjXuMTK0j7yZPKgBRK1s/DP+oMaUPfjYx505Y61b6DCDhbT77aHwM4C/m+D4H6HCr5VAT906O6vVphv9Ta+h4vTgCcQTiCPw/EfgLJV9RSXPyCEcAAAAASUVORK5CYII=)}#toolPanel .mosaicPen{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAOtJREFUaAXtmckNwjAQRcNSBg3QCkVRIXQBZxogghlxQ7Zl8YKSSG8kX2bx8r4PtmYYNAlIQAJLJXCOjT1jvGYet1j/FKNom6L348zN7xrx3tC1N7GSdwz/I8ahEq+6pyJfXaAzcIm83EvRtkXvipweYG6xVEAFIAGvEASIy1UAI4QTqAAEiMtVACOEE6xegdb58w2eb3Fqf/1XrF4BD0DvF61XAUqQ1qsAJUjrVYASpPUqQAnSehWgBGm9ClCCtH7fmOAesWwuTPEnaCzTFRq7sr6Ssq2T7Z2pPiS/zpOdomx3aRKQgAQWSOANmudym8Lt+O8AAAAASUVORK5CYII=);background-size:cover}#toolPanel .mosaicPen:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAXxJREFUaAXtWU1Kw0AUfm90UeyuIih4Add6ATeinkP0TIrnqOLGC+gtFASxu0o2zpgpSUngvaTtS6YtfFkl37zf78tiZh4RHjAABsDAOhlgLfnBS3btvX8MIRxpNilwJv50O+72+2IwlvLtSmDEiuIPtfVlcGZ6X8a+ZhvoxP/5hxw7ruHFh9pAhfkxDfhucr73IQVowkZP0xDXfy6HZ012TWv7z9O3EOhUs3Hawhxfsfi5f88vrQ2swnzPNdfCtzZQs97ADzSwblGgABQwMoBfyEig2R0KmCk0BoACRgLN7uqBptwKmzN0FGByNRRr3fpfSD3QROLiScpyGClV1NhbRJwyhma79QqgAU3aVDgUSMW0lgcKaMykwqFAKqa1PFBAYyYVDgX6ZHr0+iteqVdzbqwCs+KzcF8tVnpXt9NxMkL5cCHez0uOi2D5vf7sadsSi7GywpkoMPOXaJODagNxrBMnI03DBS1ol3gs3jl302VMxAIDYAAMdMfAP+EdVKaWg/p6AAAAAElFTkSuQmCC)}#toolPanel .mosaicPen-active,#toolPanel .mosaicPen:active{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAV9JREFUaAXtmU1KBDEQhauiC9GdIih4Add6BhnmHOKhxHOoeAY9hjAgLkfcTGo6Mo2ZpivW2F3GgZdNJ5VKVfK9XuSHCAUEQAAEahJgLfnx0+c0xngnIqeaz1/Ymfg17ISbt6u9+758u33GZFtN/kTr38TOTC+b+K/5Cp3HRbxtbGdr9lVDXcA3ef4gkv2+wVbb++Tg0urb9Tt6nD+L0EXX3rZDW9G/wyavxx2nx7CAcRJ5RcECvMha40IBKykvPyjgRdYaFwpYSXn5QQEvsta4UMBKystP3U6PmfDwYS6/jddspYtl63+hogLpJDXkMDKEfBF71rn1CmABmZpVqlCgCvYsKRTIYFSpQoEq2LOkUCCDUaUKBapgz5L+cwXS1X65qNvp9DJCzeNCup8vh9B7fzqM6CPbnq+rfWHmWWvpftUFpGed9DJSelzoBvNop8mHEK49YiMmCIAACAwnsARsm0C5E2sdIAAAAABJRU5ErkJggg==)}#toolPanel .separateLine{width:1px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAAoCAYAAADUgSt0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABlJREFUeNpi4WUQTWMAAiYGKBhl0IIBEGAA+zwA23Qf36YAAAAASUVORK5CYII=);background-size:cover}#toolPanel .text{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAupJREFUaAXtmE2ITlEYx8dn1EiUSYkSKRNRzMpEUayQolgZpXyVBStqdmY1ZDGyIKywsSCFSSE7Y2OiFBuTCPlokPIR/j+et+68zX3Pe+49933vne5T/857znme//M/5z33nHNvS0tp5QyUM1DOwFidgXUa2Edhd1EHeE/C/whDwgShUNYutYivYHOh1EvsKRP/1sr+Ig2gVWKHTfhqld+E38JCoRC2VypZOvdN7Tmrn7B67otBE7zdlK6w+geVU60tt0WniX2jcnJE5QNr3xVpy+XPSyb0WJW6ndb+sKo9V9U2qfku/BLmVimbovp7gWejo6ovN9WjJvBqjKJe678Q09/U5vHK/kJghtcLo9kCNbKdsq3OHM2hmW2blBzxz4VxNYTcNL/DNXya0nXLhB1yZN9ofq6BOmjCdkeXxgwHdXSpbXD4Nqz7uDKxfM7XmfGI+V+r0z9TN7ZHTlgGsLLOTLPkV9lu59UZk5lbl5gRP+CZ4aLF9XjGBXdHOAPo8mReZXFct6NXDk+adO7RSxpLydceKYDB7/ANjPpPjFY8fx8w/36V8z1jcb8hLBP2C5eFhhrbJScqMxgCS5OqT/oPcC3mbs9XB9ZxUmMiZgv8C/uSkvjGcVV4JjDznKxpbLGC4fkiTEtD5BPLZY2kQwIna1q7IwL4Ks9UWj5nPNdlEnKihrCtIoHvSQgyFwcvKrywcJLyAhPCeA5fCQxijS+h7xLYowR8ZbsivPNNFuPPhJy1Ph7mzGySmHlZZ6Y4SUPaHJH9FH4I7EqZGJ9JED+YCfv/fxX+7oz4/32oIgHLKAtbK1L4Xwos06C2RGyQDwutQZlHkj1VlTxbRjanr5024r70VDUZDlqe2zW9PDs5IT8bcbtnrK/7dAV8Ffh6scg3OM6frY2/9W6cQ+D2M5bvZCjeyr19WyhCB89yG8AnlUFedgZE9FjgHGiUXVei1wI33tTGlhZ8W3Oo4oaQ9KrvoC67yxkYWzPwF7rCpZtbo68bAAAAAElFTkSuQmCC);background-size:cover}#toolPanel .text:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABOpJREFUaAXtWd1vG0UQ3zk7ju0koCROUkWhUFEqQVB4KH1rKVGIXQlUgSoEDy1qpVI+/4VK+SMQFLUIgQQtEkKt+LLr0FQUeIAi8ZUCUkE0qBWJ46A0sc92zzf87i6Oncj4bs/rB5D9cre3szO/38zuzO5aiPav7YG2B9oe+F96oP+8PtH3aW4pltSPtpKg1jLlZT4O3b2m4ONPMgdaZYdaobhvunifuGXMVnQTicez+7rOVdoqny2JABnlFy2QAL5gg2Vht1UCr+hSHoGBGe42C/nrLMRtAU3ba5qcZBLhgNB2ZPaFr1YMq3oqjwAX8wct8HD/pUwi8rkgPi2YqSzMF1SBrtWjnIDJwgaqkXjVMoRpZD+F4MMjX3Gk1riKd6UEBtL6boAaA+j5oZHIBxbAxUTXt0T0tWDRl79ZeFoF6FodSgmUy1xZrKdmR6m0bojIiQav9693NfuijMBQigfh5QOYNOVOotdrgfWEwu8JElkW/GD/dG5XbV+z78oIGFxAxeUQps9HNxLRP2uB/TFOBcH0pv3NUJtSlRCYYtaY+ZgFkDVtbdHWUhAiGNJOYEUjCPTUSJL7Nvb6bykh8Eoy/xig34nFejU72ZmuB2dhIvwbZFJgECkI/Ug9GT/flBAwyZkW8O9rIIEyUP9XSa0QeB4RU1JEmyYw+FnhbizcOAnSo90RZ57Xxy9ejkc/huw1gN8+lCzG/0VM6nPTBIxbqLCWN4nPzO2hvxtZnyJCsJwMVSazknIbDXHta4rAXTMcxry25zNplYrb2GZHV/gUolBiFo8Op/WtjaXde5sisFJAZUWFhVe/WYx3XXY3J8RfD1EGqfZ9EA8Uy+ZzXsY0kmmKAECsTQOn0jYyVNsXqEbr6Ogsh2r7ZN99E4ilcjuREnehwi71hMNnZAwvxKNfYtz3mEaD83M6qrf/X9DvUBh/yRlLqRWjtK0/XZRTZRqfQMcDprBT8Gm5wVVpX7l46yXuza3qOLSo2R53BINj85OdP1ZheX/zFYH8qn7EBo/pAw/Meze3SZJFL4raFqNsp1RfBx7pCFgVNJbSf8XzHk0T+7Hf/3ATLM9NTLt72TCuoHqvUndkeHE3rXgevCYovYhhdNICj43ZnFNZZU1W5bFv+hngZ6Cvm1fzz1R7vL9JEyDTqaDEdMKqrN5N1ZdEDbd3r5hKvqaQFIHhVP4OZA7sPKkU1MJv1Ick93UsFDmLKNxAQRyNndf3yo0WQopAkRmVkwNWJZ1P0IKssXryF8fJIOaTVh+uYKT3R54J7LzMHbBh33PWVNJ6mKS/4Rx3EmvKwMAncK+0RUaBZwLXsvoBTJ8hKP/BrqQyVlxksxPR60iH57Cr7SgXC8+6iG/o9kwA9z12eDGg7pFxg1Y/jerNxTGZy2BPBIZSxfvhnT3w0k0KR9/xg89tTDYRuYDF/AsK5MiFtL7fTb7S74mAwWuHD6K3M+O0Whms/Ikjqa1TYjG7Eoh9wT3w/kFLMQcDjgHlyB2FtwcjbyEKORY0EZsu7PBixpUA5/KHENYeKL649EjnFS9K/cr8PknLsPWufUQ1vF0GuxNg4dz3cIsW7ya2Aa3DThL4Z+ewl8OOKwFsGUo4fPy0bSBydpOtljQz8dB31u0eEoa+vCya/2vKSmkyaU0Fqync9D08w762+irst3W0PfBf8sA/GcCs3A4F3NoAAAAASUVORK5CYII=)}#toolPanel .text-active,#toolPanel .text:active{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABFBJREFUaAXtWd1rHFUUv2e/srumSpNNUkrUirSglbwU6UulhriJglRERIVWKmgltiCITxYhhfY/EBWKDwr65ENFhWxTuwU/HsQH8aMqSMFqimmaQtLd+Whm5/ib2S7sTnYyc+/cfajsPOzMPffe3zm/c8+5XytE/+l7oO+Bvgf+lx4YPmtODc3XV4cr9ZO9JJjqGXiD3xYs7hRMrz/LnO6Vnp4QGDpnP8iC93tGM/NgtWI9d1sRIKfxWrvBrsBo9Ogh3bgjVR50LWORBcKn9RAhhlK7lh/P/9kS6XprDyG2jYMdxnuWMlNDuKd0Gd2Oo52Ay2K2XUHrG6SeGv+OC62yrrdWAiML5j4YNiEQMkEDiXnAWLOPBOVJy1oJNBrcTF6ETHfD+M3ucnVpiCJ5wLEKj6675t+CRNaL+TAEytHelani92H1snJtI+Cw9TKyNbeZ8b5x66Q1mbUQmGNOYcGKFd8s3MnxeR6S9XRYey0E3pk3noT37+2WvBsUs0ibwnhjg1xRoIWASyIieTutY0GzGLHQPOlsvXkpMYHRr6z7haBpqNkwdYaqZh4aXbCfCK2XqEhMwFl3Z28lrpRHXXZPSNgZ2lRKaRBlR5Xza7axCN8rJCVxPkM7rpQLl4O4MuVEI3DDsp5XM94zkclyxVsyxnZrm4gAjOjYNndTsJkM24tDu3/F2pHgUSZQqtT34NDyMBLYVdWPmaj47z/WC6r9vX7KBJjF0aZiVsbw+oPE8SaO2q9SEt/zNW+t10wcWvRsj7OZzMRSeeBnFQoZlU5GzXzJN57EdXhgSQXD78NiKxaPbU7D9XKp6zkiClt6BLwVtFQx/8B7ZyolDlybuePzKCVh9cML9gPsOBeJqEaDhe3X9tGNsLZhcun4hdKyZzz2PZePTRe/DAOOI18pD/wG46vAG+Sa8WKcPsE20gTI9YdbENP7c6Q+A7UMwY7oXe8boaQUQlIEtleMuzH7YOdJNzOp/ActI5K8J3KFMxiFK2Cwu3TW3C+LJUXAZn4VvkoTiU+XZuiqrLJu7S9MkoMF7bRX57ryC2NsAnt+4Cx04NQlRDrVHHbvW8fDOTqNnHKA9TTulbbJYMYm8NeK+QzCZwzgP12dLn4roySqLc7Ii5gOP8Oqlm3Y1itR7dvrYxPAfY+/70EHP+naQbR8E/m4CKcjMpfBsQiMVeyH4J1H4KU1yhc/1mJwAGRlpnAeyfw7Fsjx8wvmgUB1aDEWAYebUyfi9KPlSaqFoiWtYPGeDyGRzJEESt/wFnj/oAfMmXRTQVJDQ/rflSl8iFGo48w8VTpn7Qpp1iGOJMB14xCGdQuAL1x/bOBiR2/NhUtlWoWuT+AwEg6OqjGeaAIs/PsezEC9Sd6AkelU1teD/xQOxznsRBLAluEmrgt/uW+kcCagqyfF5encj1gov8CEYa6uiuR/TXlTmsy0poPVHG76Hq2y0lZfh/4+Rt8Dt5MH/gPfHXmcyfgZhQAAAABJRU5ErkJggg==)}#toolPanel .save{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAY9JREFUaAXtWDFKQ0EQDSaNliFl5F9AyBEscgKLHMLGQ9jkCBYeIkUkNxAsLA0eQLAT7bQR8xYZEPmzM7t/d/iaWRgW9r19M/Mm+flkMPDlDrgDNR24gXiIP7u+UHmIauugmrKRsDdgZDSbxifAWmME+ASMjGbT+ARYa4wAn4CR0WwanwBrjRGw1xO4g8n0usztNAcOp/N7IqbuXSbwmposwn+LYNWgKZRfEORi7h6MaKpVKQifFWhgIeSoDl91aOK6enWKBIfgPGQ08Yg7Rwp9E8oJsrwjtN+DD3BnJpUlJDlPaOAiQTeZ2uW/nJWiiXVyRd8X1HXRxyAnzxiXnhCk8Xt/BjbJEf6hKV6npCKRIZzi/BNBOrSHszlzR3NMOiJXTYwoXQIjHdqXEb4GIh2RqyZGlIbAbhGkFd6bRhG+BiItkasmCkrHwLeI8LxvBK4GVtelJmqyFuS01tXlbbRgbflS3kC+d2Vu+gTK+Jiv4hPI967MzdivY3ju9n61fYQ2Pa66z7X12DYv7T87sAMM9Kzb7VMBMwAAAABJRU5ErkJggg==);background-size:cover}#toolPanel .save:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAuRJREFUaAXtWE1oE1EQntmkTXYLIok/KEGvQvVWKFgo5JKk9OShmoMepAp6KvTgxf+DFw+CPahIr5FCQT0U2xRK9VIU9VBQ8W6IKEktQjaJJjvOBgNJNtvd7PYFhbewZHfevO+b+Wb2vd0AyEMqIBUQpkBkpbRknsIIGDgoEhwIJoXiM7gimkA0vkxAtMJO+LICTgqJHpcVEK2wE76sgJNCosdlBUQr7IQvK+CkkOjx/74C6FWh6Ir+mohGvc5vnYcI74upoZFWm9trzxUgoB9uSRz9CLcdfWwcvH/QhPAiVGmTP1oiCDhTnNDmbDi6mqPZ0mUy4AEgbA8O4HRXJxdGzy1kYkdX9VNUp6ecQDWAwdHvqcFNF5xwMFs9XqP6W27BMACe3prQFt3M6+bjuYVMsGJCe4aoPOJ2CtWhtnD4HWndSFptsQ1Sf1NtoRE8wryf4E1cXwmYAOqe8Cy3wUcO6FiloN83bTsd5Z+Ve9x2w4j4ObxPm9nJ182Y7wRyJ7E8gME0B1ThwC5ElvUpO+JGy5FxqdFyEEznR1C383Vr952ASfQtGfoASLMNUqTHh9bKRzsDiKzrMTJo/q/9itvnpROn896SgNf/corJoYdchedchb3VX5SZIgo0yW4RKVCFTGPFQljqdcUycezisiTAJJONs8new68K6jS3Rw6Axtaz+s3m1Lls5RoQjfOG9TUU0s437T392sRlTaAn1HbnXAq3MIBneWk0DMKr+7Pl8QOr+hgHf8O0gaKcy8ex0D7L392uJmCGUkiorxSkO1wFhbPI1Ax4wtcB3nDuFhPqmr9wrbN3PQGTIp7UbgPiBu8PMVb/CD8bb06E1etWev8WIQksItbDCGlW/ZO53vOrwpmXcaz5D9eK4P1dyIrVZskntS9sGG4zCrgRUgEBcdpCygRspenTgKxAn4S2pZEVsJWmTwO2+0BkuUR9isEXTbcWeuELUezkfzk2sZlLdKmAjQJ/ANa802uhvjOOAAAAAElFTkSuQmCC)}#toolPanel .save:active{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAmNJREFUaAXtWL9rFEEUft/mcne7AYuY0v8gpDsQ7A7h7oIK6bxCi5AfrZDCLoWFjX+Bhf9BijRB0wixEVOkEIykDTkuGHKbNMkpqJO3p5tsuNnM3OwMKMzBcbPvx/fe+97sG26I/Mcz4BlwxsDk5tlG8nUWgIFLLsFJ0AOn+AweuA7gGt8X4JphFb7vgIoh13rfAdcMq/B9B1QMudb7DrhmWIXvO6BiyLX+v+8ATBm6vXn+SQhx19Q/6wfQTq81UcvKdNfGHRAkTnSDKO0ETpU2OQbGBVAFSwSKc3D1xaDTchkL+g7XLY0LiOtRBwEW/8BBXIfVeMJfH4Hlw/vhvoaH1MS4gASt14jWgeA1kRj9XRLsA3oTz0Zr0sw0hYUKSGKEt6ornMiuZrxLMwB71ano2aXAcFG4gM499MdRanNC33VzYOp/jFGp3a3hXNcnz65wAQnwt2blC0GsDIKke1sW8Ur3/KhV/iwzGVU2tHfTe5y4NfFwVDA+G9b5bJi7yY9n/gbP/Ec32ch0eXkN3wsVuMsJKVzoU7/GZ8QdWRKc/GGlEs3LdEpZTl5WtlAavNNCjDE8IcJvutourE5GJsuC4Gm3juPU3sav1QKShI4b4YcA4iUNxmR6Pggmn171GuF7G0lnMawXkIDXm9EL7sDHQRH8zBNqe6YarmYD21o7KWAN+FUFtZn1r8m8L4/j8VYdP20lncUZfomz2gLrbjM6YPfpAhBark46oBXZkpEvwBKRxjC+A8bUWXL0HbBEpDFM7jkw+e5s9L+JxmmYO8q20FtzOOee/3Juzov3ATwDMgYuAKebdW38MyGrAAAAAElFTkSuQmCC)}#toolPanel .close{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAUJJREFUaAXtmD0KwkAQhdPZWNho4wlEvIKnyDE8k3ewyE08hXaWWuh74MAihvzNbCY6C8MKgdnveybsJkURIxKIBCKBSCAS+JMEZvAsUYsMvnOLNQj/RJ1RS4sF0JMhnVB31BalOpg84a0kCF+9+18xm4TEphYSn/A7rGM2tCWywksqWhKjwGtJjAo/VMIFfF8JV/BdJVzCt5VwDd8kMQn4Ook1LlQo7uDcYU03KfRXGek+cUPHScFLAkxe4B/4vZcLU5jTe57wVgdAkyxSeN7zTN7iAJgFXh7Y9JmwfJ8YJJUmf0EngZemriWa4F1LtIV3KdEV3pVEX3gXEkPhR5XQgh9FQhs+q4QVfBYJa/g6CbXPmAeswAPZtx1WFteaV2gkZ6dSq+kGjY4o9e+VNYBMnvD852NEApFAJBAJRAK/m8ALlHeZDLF6LwcAAAAASUVORK5CYII=);background-size:cover}#toolPanel .close:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAjZJREFUaAXtmN1KAkEUx2d0V3EpCUUQuonozleIQC0Coa7qEXqlLrrpAYIgujEoBIleIKKLPugyNSwNdtGy055kY7VNZ2fPXESzIIoze+b3++/XYRnTm05AJ6AT0AnoBP5DAks3kMyc2FsLNZhT7ZurwYzoGjHRie17Z4N9wEG3Z5/n65AT3S/MPAwpW7WPBj2nna/2CiL7CgukE6lTxtkVA1bo23aNWgLh27f2IQBsMoAOsxJNUoGHIn9JWFZRhYQH7wJX3M+TaRilxxXeEhHgIpP8czB5PAJ4JFAGpUQX89fxfgfBN9aSl974tO/QAliQSiIqPLJICVBIUMBHEogiQQUfWUBGghKeRCCMBDU8mYCIhAp4UoFJEqrgyQWCJHjaWoeOveeOfT+kwtznseakTfo2OqnoyHOC8VfGYNad//WEpYRHBiUCWDh7AfPQca4RHjh/N0yz3CqbdRyj3ISbuTCL4jk/PG2G8BzAGLz1d6kbQGQiFxi/YDF5FQ2gFyipwDg8dpV42qjqYlGC7Brww7tFW4ZhlP0X7MiFTdDFekeARGAavLeYConIAqLwqiQiCYSFVyEhLSALTy0hJRAVnlIitAAVPJVEKAFqeAoJYQFV8FElhARUw/8mkU5ay/g+yhsP+hZqJZ7vnB1354pr++MJG1RU9j98v2Ryq+T1Tt2+szqtlpAAi8fPOGf7JjeK/vZgWnGZ8cY6b2LyLMa3M4upY5kaeh+dgE5AJ6AT0An8mQQ+AcXxBv2nkpz+AAAAAElFTkSuQmCC)}#toolPanel .undo-disabled{background-size:cover;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAA/pJREFUaAXtmU9Ik2Ecx93cdJbEDlIQBKvoZOVBbzL8n5jdOowET4HQH8MOXZW6ehHFpAjqErJDR7P8w4QQdhiBhR2izFOHFTRkObO59fmt94Wx+bx73V5lg/eBn8//7+/3/T2/93n2PFZV2cn2gO0B2wO2B0rwgKOEuXlTV1dXT+7s7FxNp9PtSKPD4fCRn5CBlLcob5KvIysej+d1a2trNA/kgA2WEFhaWvKj9wHSh5EuMzZAIsm4eWS8u7v7nZk5+40piQCGn8PgSYD7BRyj/pK9pW2BcqSuru6r1+uNSV8sFvMmEonz9LXQd4WmXspu6SPN1dTUDLe1tX37XzX/t2gCy8vLNzDgKVKPQTFkwul0Tnd0dPw0oz4UCjWkUqk7zB9BvMyPI0NdXV2zZubrYwwJAAymI60P1nM8P0rfQ6nTH8TT94qNZ/luWJlJ8AIa3hgh9UjXVShXElhcXLyEcSEx1OVyzeBZidmqLOP3qA739PTMFFJiph99txg3hVSj1zQJJQGW+GIymfwoygH8hNxnyRuovkTE+ADGvyK3LEHiOmBBpJpwHDATTkoCa2trx6PRaDzbOkh8Z0VO03bbKs9n40tZW4nH6Iq73e7LhT5sZy6AXm9qavpN+Ydel1wzPgn42XA4nNnfs/utKItjwA+iq353d1dCyjApCcgsgPbb1lyAP4jH45/5Hm5SNsQw1K7olE0B3bL99qNDzhhlKqR8PwIZMAw/hTxjOw1HIpFjSg1FdMiOBoEJbaockMpkSAADlQQ0RAmxN83NzX+UGorskDMFEnIw9slWq4IxJKAIIcEK0zfo8/nOsGePUpZdydKkHYhyqrvk95UK3PB3C4Z9ASAzl3KCwiz5NNvbexWgle3oXgDvGnk7+QskLxkS6OzsXCHGp5m1UVtb+9zv9//KQzjEBpwVEQcijSo1hgQASDHxrmryYbfLj8Ht7W3ZDX0qXYbfgGrSUbXrv2RZAeWZU9YEzDiqrAnIHUJIEEJbKjJlTUAuQGI4IbRZkQQwvEUMZwXWK5IAhsvVUwisVBwBuXJidC/GJ+UFwxICgHpUQFa3a/dlufTPG11XTX/EnMiDe3t7H4x+WFlFQnQQ/yMa3rgRrmkCeCQA6AW5gBsBWtGnXfJlC50r9GZkmgCxKJeMOCQC2rXPClvzMARbdIgueSvKG5DTYJoAntgAdEibP6VdwHPgSqtqmJlrpOgqdB8WbaYJyGB5JQB4jGI1ErRyJTSszIuE6DDzIiE2KV8lpFOVst6GZI8uz4ctlfF6Ox4bwPgnxGv5Pi3qxqpyVqJyH3ezSWlPH/J6UFnP69kkpCwH0FH/gyPXBrtue8D2gO0B2wMH8sA/gAT1Qeh5oB4AAAAASUVORK5CYII=)}#toolPanel .undo{background-size:cover;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAp1JREFUaAXtmb1LHEEYxs8oiSiIgWDtR2lsJI2FcKRIYZsqoiAIAYs0/gEe2Aip0wqWqfVIbReS1GlSXRMQIwgKgh+QPL+wLyzDLsrM7N0uzgvP7czsvM/7sTuzM3OtVpKUgZSBlIGUgYAMDAXoFqlOqXFFaAvzwrQwISAXQk/4KRwLX4RToRayLC8OhVvh7wNBX3TQHZjMynJXMKdvVD4SPghLAk/kaQbKtHGPPvQ1PThmhL7KO1m7FHDiXOgIL4SHCn3RQRcOuOCMKmVjZEdWMAo+C2TXV9CFw/jgjiILYjkTeOQjOUZz/k5tW7n20CJccBJIlCBeZmQQMnO8EVazNgy9FWILnBZE8Os0LjJ7rHb9nbXFzLybBLixx5gIHtjM0+a8XZn+Pgo2v6sYXWxMMDsFyTdpm+Pu9UT3NoUnQRaKlRnYNjsFfScsE67z+fp3GRsr9iOotSNt7PCx85Y9aeaddcu8YrvCsLeFckW+E3zseGW9p+n3Unadpv5VWBOeCVXKkcixt+Fr5HVGAMmVsC8sCv0SvkHYPvA1yAD9JGwLz31JAvRYOxHAjwCOgary7hPAn4F6EWCclSwBXJdxVDGHl9mqpL3uAUxmUV+URV/3AOYyx3tNDeBV5jir4UKp+xNgCY8c//9t2E+UpYQb86jbUGG9I26m0KDFXN6/dVV+Cd4LqzzZPWVsRFlO5+10VSEjLLGrFlvGYzOazIqJbR5BNGZL6UbPRpsAGrGpd523emOOVczhoqsFYWMiZGCja+88fFHOhIqcdts4I7IxUdujRddpt87AttmJ7LGHZRvITorNCNllSQwo08Y9+tAXHQBH8BmQOLyFow8+OH0/Xi87vPWNhCyvCG2hUX9wyN8kKQMpAykDjzED/wAOt9HUp+PK6gAAAABJRU5ErkJggg==)}#toolPanel .undo:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABOlJREFUaAXtWU2IW1UUPufmZ/KSUcoknYhUqIouHEdcWLqxoDA2E/82goMFdzIgpcWFiriw1YWb2UilDAri30JmIYKlJhkLFQTpQhBGZ+NPZyitNm3mh2knL5kk93jOewam8b6Xl0wYI+TB5L137z0/37nnnXPuGYDBNbDAwAIDCwwssAML4A5o/0WaLtBoXVeeBNCPAeAYAe3n++3uQtpAwGUAWgRQ34VV7JtiBq+5c93/9gTA3rx9SBO9RghZIAoHUgexjgQ5hThzfdL6PhCNYdGOAKTPVe6p1RungOAphzdiDYEKgDgf0vAjKuuP1D5Yl7nSZdhD2r63oeARBnmYADN8j7h0cDaC6lgxYy057x38+AIgIuSLTPxSufILbPEPec0wICuJ6r1YNHb6z8exZFrfOnbneUpVtipHgfQrbIA9LOcmS5ouZeNftK71ezcC2H+eYhtVe5799SH2289jYevklQlcaTIaydtvseC3nXfEuQhax7v1Z/luamTzLtKUy0+dWJ203mnKanc3AkgWygdJ04VtxGuo8MR41JpdqFbedJXHBio6tpJJzG5b1/VjsrD5Mml8n40W4t0MDMIIIP1tdbxWry/w5HXW6Cf2ocOiGb9f5ud9/NTgl6nVyfiXXWtsIBzJl59jd5oTEArwSBB3UgY+0LCiy+44Dq9kExml4Fn20d9c5XkG4eeQUgsm2p2MiUFkV4WHfF/pgn13O35GAKVH8QYTljiOW6PnKF3KJM7ccZf1IFvldd6FDfbXhxsN/ctIrjwzcoH+ifPtRAWbd1ySvysJDjXS7FL+lxGAkLhJB6BOrhUWx3CLt3QmFInfz0Qf8RKO9/Qqrpd/3VuoZP3FdDYrQYEVWJfwLDnGj9oTALvLkhCqOtyyjdcmsFjKJl5SGD7AQhaJIK21/oqjScJPUCdzTkTjsCw0kiD9aD0BILoAOBPcAuAkkUoVNp/RUHuX9+kBlzmtccKq+QnqdE5yCifEmmR3CbVe9N4AgJwdINAOAEk8yYL9xqm8fVFr+Jq3N8OJpyLuRDE8IC7mJaSbcUmITlbn0sStr8xcPOsWRaElDQ12cziYzJc/q1bs5/mjHhI2HJF+Z+Vn48PWx5cO4ZqZdQ9GuSThgPG0WxzCJyaOngD0bUM/4E17k6PBuPyx2po/7DMhUKeLmaF5rxLDJKTbMamn6g4xjnnx8AQgoXQ0V36igTBNqJajGj69mrWWhRGH0l25pBgEXWYnkLLcfO2WLmbpbUbHFin616VylU22tZqNO+7bSuL5Ebcu7Nf3vgYgZwjXcLThZcC+BiAHIFG8WRWYQPQ1AOf05mgt52jz1dcAOAc4Zbw0Aczq84zXxH89LpnfOTfz4V86GF76dARAjppejHo97p6XKcIZP+d3XA0MIJm3X7xRtRf8CqtegXBkyGGfL2m7+PENDICLuikuKe5zDuB+HHsw5x7yOYQinG3XMwoMIBIOHZfWB39YU3IA74GeRhYOb5YhsqRXZFy0bTAwgOJE7CL747TQSvfAOYBvY9SLR+HpdiY49rOsII2uwABEQadLwC0PhhDiCmuulzvhWt7tSEhbJUhHQnTqqpjr+8aWIGt3pfL2ES5zP5DuAZuhv1qL7ZRvzvd9c7epaLv7/7a93gpMEtBu/4OjVYfB+8ACAwsMLDCwQEcW+BshWTaR4gPCwwAAAABJRU5ErkJggg==)}#toolPanel .confirm{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAN5JREFUaAXtmE0KwjAQhXsuvUZBxIU9RN17WZfeQNE3iwEXSqJmknnwAkMaOovvfSn9myYNGZABGZABGZABGagxMKNpX9OYsecEqAfqmhGuxOTwdzQeS83Zzq8AMvMGv6CoBjX862WzUGkHrOBH7ZjMu3l74h180WFubv4CaLv3nhnhjXmHuqGiQzQ3b/A+okOEwkeH6AIfFaIrfOsQQ+BbhRgK/2+IFPC/hkgF/22IlPC1IVLDl0JQwH8KQQX/LgTtB7i/O1H+PfCd2OBg6wvNMiADMiADMiADMkBg4Akg3m3A8SMAAwAAAABJRU5ErkJggg==);background-size:cover}#toolPanel .confirm:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAWBJREFUaAXtmDtOw0AQhmcCDa0xOQycgB4JIRokboCgBlo6JA5AQSoOsFruROlNQ3bZAQWCoyTY+/BG+t1Efmjn+z+vPesQYYMBGIABGIABGICBjQYqbU5qZc7aF47aB0rc9+A3ZN2rZffU5tttHyhtX+AtuQcitsx8VRrfWp5am+tKNa5SZravphdrLy7t5HbD+2mzveYBP9DDIG8bTBuR/9Xx9PQ8140INb/UidnRo7X2pVbNXeoQf5oU8eX78d5z15pLAUZMvtvxzBLdpgwRA35l2ANtTn33+5CHKkWI0GmzEnzxRKoQWeDnQWKHyAofO8Qg8LFCDAofGqII+L4hioLvGqJI+P+GKBp+U4jc8DwH6vMrfcKvOSZEbsevSe79EqT5+QDvubbpyhEUQIothvgu7v89yAQv9YIDyCC/IYhzwkvtaNtYm8PxmzmKNiAGggEYgAEYgAEYgIH0Bj4BteBmoOo+DxkAAAAASUVORK5CYII=)}.ico-panel{width:0;height:0;border-right:6px solid transparent;border-left:6px solid transparent;border-top:6px solid #fff;position:absolute;top:0;left:23px;transform:rotate(180deg)}.ico-panel img{width:100%;height:100%}#optionPanel{height:20px;top:6px;left:0;border-radius:5px;background:#fff;z-index:9999;position:absolute;padding:10px}#optionPanel .brush-select-panel{height:20px;float:left}#optionPanel .brush-select-panel .item-panel{width:20px;height:20px;margin-right:18px;float:left}#optionPanel .brush-select-panel .item-panel:first-child{margin-left:2px}#optionPanel .brush-select-panel .item-panel:last-child{margin-right:0}#optionPanel .brush-select-panel .brush-small{background-size:cover;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKlJREFUeNrs18EKgkAUhWEnwmW1amObHqKeo0ftOfIh3OSmlba0xXSEK4SICAoz4X/gINwL8sE4C533Pok5myTyAAQIECBAgAAB/jdwO/cFO3dsH3v1qmY2LtWHWr/9KyxQOag3Nf2ZnQ17V6vQR3zp4bqktgv+DWYjuxO3eELKkd0zBmCuNgPzxnbBgZXd1kL9WIslbnAbx38xQIAAAQIECBDgqoFfAQYAhLQbgzDvXkAAAAAASUVORK5CYII=)}#optionPanel .brush-select-panel .brush-small-active,#optionPanel .brush-select-panel .brush-small:active,#optionPanel .brush-select-panel .brush-small:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALhJREFUeNpi/P//P8NgBkwMgxyMOnDUgaMOHHXgqANHHTjqwFEHDm0HslBqAB+jGIhSBeIOIHaBCu8B4gogvv3p/yuKzGektMEKdKA6kDoBxAJoUh+A2ALowJsDHcVtWBzHABVro9RwaoTgRxCFQ/oLMAR5R3MxAbAHj9yuweDAamiGYMCSSaoHgwNvgHIrEK8D4s9QvA4qdmPAM8loVTfqwFEHjjpw1IGjDhx14KgDRx04pB0IEGAAHeMoHW2kl/cAAAAASUVORK5CYII=)}#optionPanel .brush-select-panel .brush-medium{background-size:cover;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAS9JREFUeNrs2EsLgkAQB/BWupQQHXpczbp36/EB6ptH1M2D17RLhx6XQG9lszCBxEa5zoTQDPxvjv52RR1UWZbVqlxOreIlQAEKUID/Dqx/e2BL9d4t0MP0IS7kBkkgZ0iMub82XrMjLdBQGjXTdgO6jRlpC2QDiX51ixVkClkacMbNhyywR/0COIGMLfrG2MsK9C1xeaTPBdTHzgkezHmR6zoFd88lAOpzDDmAHuHrzeMA9giBXQ5ggxDY5ADeq/4tTgmvm3IAL4TAEwcwJgTGHMAdTillK8FzsTwkawLgGkcylm+xXnlQAhcU2T3baWYLCS36QuzlmahzpX/mrCAHnPE+zYRXhO1strzMRK0n5D0OEQNIJzdMPEf+CGHWL3klf7cEKEABClCApeohwADD8zb9WRTsHgAAAABJRU5ErkJggg==)}#optionPanel .brush-select-panel .brush-medium-active,#optionPanel .brush-select-panel .brush-medium:active,#optionPanel .brush-select-panel .brush-medium:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAU9JREFUeNpi/P//P8NgBkwMgxyMOnDUgaMOHHXgSHcgC7EK+RjFsAmzAXEAFFsCsRQQ/wLiJ0B8HojXA/FGqBgK+PT/FVH2MhJb1WFxYCAQdwGxCgGtd4C4HIjXkeNAcqKYGYg7oRaqEKEepGYtVA8zzaIYCbQBcRkZ+mB6ymmZSULIdByyI0NI0UBKGgRliLtALENhxnwKxErANPiL2iEYSgXHgYA0EIfRIooDqFi8BdDCgaZUdKAJLRwoQUUHStLCgb8YBgCQ4sDnVLT3OS0ceImKDjxDCwduoKIDN9DCgauhrRRKwVOoWTTJJEVUcGAhEP+kVV0M8nk3BY7rJiX0yG1uVQLxFDL0TYXqpXmT/y8Q50JbJXeIUH8HWo/nQPWSBChpUcOa/KHQ1rUxtCEAywhnoU3+1XRp8o/26kYdOOrAUQeOOnDUgVgBQIABAPYuSgtJpajwAAAAAElFTkSuQmCC)}#optionPanel .brush-select-panel .brush-big{background-size:cover;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAaNJREFUeNrcmMFKw0AQhpOqRdGUCloD2lMv1T6B6RMI4sOK4BM0b1Clh56skFahpVaUaln/wBQkzKYmTbJTB75TSPJlN7uzM7ZSypIc9sYIVuxa0nsdUAcuqIIDUKZrczADExCAJ/CW5OFTNUolaIMGaIGThB80BF3QByoPwVPQptFaJ8JR7YDnrAS3gAfOM/69HoEPFusI7oIrcJzTGngB9+AzjWAod5PBlP5lym+jkqsEt8E1qBW0m4Q2d+A7KljS3OAVKGfRuzzuQkmzWpsG9uQmvTtW0KatxFS0yUEr2ChgUcRFlRy0ghcC0m9LJ+hQXjUdYQqtcIJ1QYeYM07QFSTocoKHggSrnOC+IEGHEywLEtyJyySi4rfgXJDXFyf4LkhwxgmOBQmOOcFAkGDACQ4ECQ44wamQURySC7vNPAgQ7MYdt/pUxJiKCTloBRUV1abCj3YduEwSVvw9A3I9bqHqUl2HSsGiYqSbuY0t3JexR62Po5zkXqn18ZG2N7PsMlxaQptH0TrBs7Jpv/mrMte/bGByx/LiWsBSQ7zgjwADAPqYqQ1c9nN+AAAAAElFTkSuQmCC)}#optionPanel .brush-select-panel .brush-big-active,#optionPanel .brush-select-panel .brush-big:active,#optionPanel .brush-select-panel .brush-big:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAhRJREFUeNrUmLtPAkEQh+/UghCxw06JNuCjJURBK+OjsNVEW4KF6P+iYKGF9rYWhmClKKGg8wGNRu2kA4M25PyNGRKFPb0Fjlsm+SKG3MyXLLezs7phGJrK0acpHgP1D0P6sOyzY2AJRMAE8AEPf1cBz+ABZEAKPMkkLxtv33/1+hJbFOwHayAOZuh5i/WoSBYkwSmo2SG4ABIg0OaqFcAOuLAiaOU36AKHIN0BOY1zpDmnq92XxAsuQcyG33+Mc3tbFaQHr0DQxpc0yDW8soJucAb8XdhJ/FzLLSO4B0Jd3O5CXNOSIL2tUQf25CjX/lOQ/t93sHEkeK81FVznruBUBLgRmApuK9B+42aC1FtnFRCkFjouElyW6K12hs6HkCbBsEKnrLBIcEohwUmR4IhCgj6RoEchwcGeOfL/FKwo5PUuEnxVSPBFJHivkOCdSDCjkOC1SDDF05fTYbBLk+AjuFFAMMsuwm3mQAHB5K/G3DAX02HxtkPjZasz8zQN9mZzcY2Haqdit/HWQdRJaOI/cUDumAd6S1MdnWpzXZTLma2cmWAVrIJiF+SKXKsqe7NQAvMgb6NcnmuUWrn6oKBXaQ4c2SBHOSNcQ2tVkOIDbIHFDi15kXNRzk+Z49Z/keaxYIN3e9m2SM9sco605QlK8oZVaxhTV3iZaGMfpTT8XZmPTAU+hJxr7V4B98KJWsn4EmAAKPJ2SXt/mW0AAAAASUVORK5CYII=)}#optionPanel .right-panel{float:left;display:flex;align-items:center;margin-left:39px}#optionPanel .right-panel .color-panel{width:72px;display:flex;justify-content:center;flex-wrap:wrap;background:#fff;border:1px solid #e5e6e5;border-radius:5px;position:absolute;top:-225px;right:28px}#optionPanel .right-panel .color-panel .color-item{width:62px;height:20px;margin-bottom:5px}#optionPanel .right-panel .color-panel .color-item:first-child{margin-top:5px;background:#f53440}#optionPanel .right-panel .color-panel .color-item:nth-child(2){background:#f65e95}#optionPanel .right-panel .color-panel .color-item:nth-child(3){background:#d254cf}#optionPanel .right-panel .color-panel .color-item:nth-child(4){background:#12a9d7}#optionPanel .right-panel .color-panel .color-item:nth-child(5){background:#30a345}#optionPanel .right-panel .color-panel .color-item:nth-child(6){background:#facf50}#optionPanel .right-panel .color-panel .color-item:nth-child(7){background:#f66632}#optionPanel .right-panel .color-panel .color-item:nth-child(8){background:#989998}#optionPanel .right-panel .color-panel .color-item:nth-child(9){background:#000}#optionPanel .right-panel .color-panel .color-item:nth-child(10){border:1px solid #e5e6e5;background:#feffff}#optionPanel .right-panel .color-select-panel{width:62px;height:20px;background:#f53340;border:1px solid #e5e6e5}#optionPanel .right-panel .pull-down-arrow{width:15px;height:8px;margin-left:10px;background-size:cover;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAQCAYAAAABOs/SAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANNJREFUeNq01TEKwjAUxvHXOAhKJ3Fwc9PVzbWipxCdHLyMV9AD6A2EegRdvYBOnd3E70ELIcT2JU0C/1BI4AeB8pKUhlMiOqAtKijuGqEj2ne61D/jY1V2QZ+IaI7maKywrdETzdAVDSKi/Lp3tGP4hRYRcRPlly1Uech4FgG3onygtEvvwDijNxtqwiHxCp3YUBscAm9E/8FtcBFaB/vgYrQJdsGdUAkswZ1RKVyH6+hDivJKMCTa/CY9DV26DBlX2MTJB/WFK/yEvmjjM05/AgwANuZSRB8r5twAAAAASUVORK5CYII=)}#textInputPanel{min-width:20px;min-height:30px;line-height:30px;padding:5px;box-sizing:border-box;position:absolute;outline:none;top:0;left:0;color:red;border:1px solid red}</style><style type="text/css">.MJXp-script {font-size: .8em}
.MJXp-right {-webkit-transform-origin: right; -moz-transform-origin: right; -ms-transform-origin: right; -o-transform-origin: right; transform-origin: right}
.MJXp-bold {font-weight: bold}
.MJXp-italic {font-style: italic}
.MJXp-scr {font-family: MathJax_Script,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-frak {font-family: MathJax_Fraktur,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-sf {font-family: MathJax_SansSerif,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-cal {font-family: MathJax_Caligraphic,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-mono {font-family: MathJax_Typewriter,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-largeop {font-size: 150%}
.MJXp-largeop.MJXp-int {vertical-align: -.2em}
.MJXp-math {display: inline-block; line-height: 1.2; text-indent: 0; font-family: 'Times New Roman',Times,STIXGeneral,serif; white-space: nowrap; border-collapse: collapse}
.MJXp-display {display: block; text-align: center; margin: 1em 0}
.MJXp-math span {display: inline-block}
.MJXp-box {display: block!important; text-align: center}
.MJXp-box:after {content: " "}
.MJXp-rule {display: block!important; margin-top: .1em}
.MJXp-char {display: block!important}
.MJXp-mo {margin: 0 .15em}
.MJXp-mfrac {margin: 0 .125em; vertical-align: .25em}
.MJXp-denom {display: inline-table!important; width: 100%}
.MJXp-denom > * {display: table-row!important}
.MJXp-surd {vertical-align: top}
.MJXp-surd > * {display: block!important}
.MJXp-script-box > * {display: table!important; height: 50%}
.MJXp-script-box > * > * {display: table-cell!important; vertical-align: top}
.MJXp-script-box > *:last-child > * {vertical-align: bottom}
.MJXp-script-box > * > * > * {display: block!important}
.MJXp-mphantom {visibility: hidden}
.MJXp-munderover {display: inline-table!important}
.MJXp-over {display: inline-block!important; text-align: center}
.MJXp-over > * {display: block!important}
.MJXp-munderover > * {display: table-row!important}
.MJXp-mtable {vertical-align: .25em; margin: 0 .125em}
.MJXp-mtable > * {display: inline-table!important; vertical-align: middle}
.MJXp-mtr {display: table-row!important}
.MJXp-mtd {display: table-cell!important; text-align: center; padding: .5em 0 0 .5em}
.MJXp-mtr > .MJXp-mtd:first-child {padding-left: 0}
.MJXp-mtr:first-child > .MJXp-mtd {padding-top: 0}
.MJXp-mlabeledtr {display: table-row!important}
.MJXp-mlabeledtr > .MJXp-mtd:first-child {padding-left: 0}
.MJXp-mlabeledtr:first-child > .MJXp-mtd {padding-top: 0}
.MJXp-merror {background-color: #FFFF88; color: #CC0000; border: 1px solid #CC0000; padding: 1px 3px; font-style: normal; font-size: 90%}
.MJXp-scale0 {-webkit-transform: scaleX(.0); -moz-transform: scaleX(.0); -ms-transform: scaleX(.0); -o-transform: scaleX(.0); transform: scaleX(.0)}
.MJXp-scale1 {-webkit-transform: scaleX(.1); -moz-transform: scaleX(.1); -ms-transform: scaleX(.1); -o-transform: scaleX(.1); transform: scaleX(.1)}
.MJXp-scale2 {-webkit-transform: scaleX(.2); -moz-transform: scaleX(.2); -ms-transform: scaleX(.2); -o-transform: scaleX(.2); transform: scaleX(.2)}
.MJXp-scale3 {-webkit-transform: scaleX(.3); -moz-transform: scaleX(.3); -ms-transform: scaleX(.3); -o-transform: scaleX(.3); transform: scaleX(.3)}
.MJXp-scale4 {-webkit-transform: scaleX(.4); -moz-transform: scaleX(.4); -ms-transform: scaleX(.4); -o-transform: scaleX(.4); transform: scaleX(.4)}
.MJXp-scale5 {-webkit-transform: scaleX(.5); -moz-transform: scaleX(.5); -ms-transform: scaleX(.5); -o-transform: scaleX(.5); transform: scaleX(.5)}
.MJXp-scale6 {-webkit-transform: scaleX(.6); -moz-transform: scaleX(.6); -ms-transform: scaleX(.6); -o-transform: scaleX(.6); transform: scaleX(.6)}
.MJXp-scale7 {-webkit-transform: scaleX(.7); -moz-transform: scaleX(.7); -ms-transform: scaleX(.7); -o-transform: scaleX(.7); transform: scaleX(.7)}
.MJXp-scale8 {-webkit-transform: scaleX(.8); -moz-transform: scaleX(.8); -ms-transform: scaleX(.8); -o-transform: scaleX(.8); transform: scaleX(.8)}
.MJXp-scale9 {-webkit-transform: scaleX(.9); -moz-transform: scaleX(.9); -ms-transform: scaleX(.9); -o-transform: scaleX(.9); transform: scaleX(.9)}
.MathJax_PHTML .noError {vertical-align: ; font-size: 90%; text-align: left; color: black; padding: 1px 3px; border: 1px solid}
</style></head>
<body class="git-project lang-zh-CN dimmable webkit" style=""><div id="MathJax_Message" style="display: none;"></div>
<header class="common-header fixed noborder" id="git-header-nav">
<div class="ui container">
<div class="ui menu header-menu header-container">
<div class="git-nav-expand-bar">
<i class="iconfont icon-mode-table"></i>
</div>
<div class="gitee-nav__sidebar">
<div class="gitee-nav__sidebar-container">
<div class="gitee-nav__sidebar-top">
<div class="gitee-nav__avatar-box">
<a href="https://gitee.com/inandout"><img class="ui avatar image inandout-avatar" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAABSCAYAAADHLIObAAAEWElEQVR4Xu2aXUgUURTHz7ampOLmloWl0hcUZS8VhFgQQVA9BGVQvdtLD1HQQy9F0HvRW730AQX1EBSIRfTx1osPSYQRJmGWtUXqsiqb7kec0ZHpujtzZ+c/u+zsGZAF585/5v7mf88998wN7bo5mCU5PBMICUjPDA0BAYnhKCBBHAWkgEQRAOlIjBSQIAIgGXGkgAQRAMmIIwUkiABIRhwpIEEEQDLiSAEJIgCSEUcKSBABkIw4UkCCCIBkxJECEkQAJFMyR66qq6Ibh9dQOET0eCBOjz7EQV0qjUzJQJ5sX07nOlZQeEnI6Hn/zySdfvqtNBQAdy0ZyPtdrbR5ZY3RhUyW6PyzUXo7Mg3oUmkkSgJSdePzzwm69Cq2iMC1g820tmEphMyf6TSd6fkO0colUhKQVjfGk2k62ztKA7//Lno+azuvBEbis3Ts4bBXmbzXFx2krhv5iQWkzXu3wnFyCc/sBzbWF+yijtZa2t1Sa1zvdK+CbzJ/YVEdaXUjTzC3343Rrb4xr33Ie/31Q820p60ueCCtbrRLd9Y3VtOp7cvpycd4ztipSz6QIC90NtGJ9ohWumMCYNcOT8zQlTexgoAGDiQ7jN1YzcsYIsqX7vA5ta2X2GYF6XfCX5QY6cYZyERdN5Tohgq7dr6DVCcYuxUMetkYGJCcvtw52kL8y4fT8NJN1HUdFBiQbsBYJyOnOFpRINVZ+l7/OPFy0Dy46tMWmVtHcwGos62OosvC0JwvEI4sdHmHrAQFAqQ6VHWHo1Mc1dVR1+p2KZcbzXxtfZu1j2+LUPeOKE3NZiiVyRrD+mt8duE5fiRSlExl6MiWBtrQWG38364S5Laz6kRXtiB1Oq7GUeTau2JAqisY5JDml1gxIN2kRjruVttUBEg/h7QJNPAgnYb0xb1NtG9dPfWNTuf8jqPrTivIYtQ+fZu183XYbkhbixteZ3DrCwscSKch7abc5uTMwIJ0GtImGJQrAwlSDfx2wxblykCCtLpMZy2NcKUK0u+dHL5PNm6+Y5vDG+FKNwVlp3irc95XkHZx0fxmbZbTeGsKl9H4j8tqDTVzJTU+CvluExiQalxkIImZDNVWhRZ2oOm8aW5TSPoSaJC64Bh4OpP9z5luXWlNtbzmpDrP7evQzlXcnUimDYfx76+pFMUmU/RlfMYotambTVUYl1/HtLb+qaPB7UvQAae28RUk1yQjNWGj7vjg/YTr5+MYe3X/ano5NEm9gwnq3hk1Ngzkgm6K8z27tkZoU3SuxsmH37VIvoevIF2Ts7lAnbh0tXXSLV0tu3ZlA5I74fY7EEN8MZR7EysCnlWjrEBaE3UnEBwCej4l6G7/uFNTyPmyAqmzX9IufkKI5REpK5B+gvCqLSC9Epy/XkAKSBABkIw4UkCCCIBkxJECEkQAJCOOFJAgAiAZcaSABBEAyYgjBSSIAEhGHCkgQQRAMuJIAQkiAJIRRwpIEAGQjDgSBPIfPZx+rO2MuE0AAAAASUVORK5CYII=" alt="幻塔de总裁-inandout">
</a></div>
<div class="gitee-nav__info-box">
<a href="https://gitee.com/inandout">幻塔de总裁</a>
</div>
</div>
<div class="gitee-nav__sidebar-middle">
<div class="gitee-nav__sidebar-list">
<ul>
<li class="gitee-nav__sidebar-item">
<a href="https://gitee.com/inandout"><i class="iconfont icon-ic-dashboard"></i>
<span class="gitee-nav__sidebar-name">个人主页</span>
</a></li>
<li class="gitee-nav__sidebar-item">
<a href="https://gitee.com/explore"><i class="iconfont icon-ic-discover"></i>
<span class="gitee-nav__sidebar-name">开源软件</span>
</a></li>
<li class="gitee-nav__sidebar-item">
<a href="https://gitee.com/enterprises"><i class="iconfont icon-ic-enterprise"></i>
<span class="gitee-nav__sidebar-name">企业版</span>
</a></li>
<li class="gitee-nav__sidebar-item">
<a href="https://gitee.com/education"><i class="iconfont icon-ic-education"></i>
<span class="gitee-nav__sidebar-name">高校版</span>
</a></li>
<li class="gitee-nav__sidebar-item split-line"></li>
<li class="gitee-nav__sidebar-item">
<a href="https://gitee.com/search"><i class="iconfont icon-ic-search"></i>
<span class="gitee-nav__sidebar-name">搜索</span>
</a></li>
<li class="gitee-nav__sidebar-item">
<a href="https://gitee.com/help"><i class="iconfont icon-help-circle"></i>
<span class="gitee-nav__sidebar-name">帮助中心</span>
</a></li>
<li class="gitee-nav__sidebar-item">
<a href="https://gitee.com/terms"><i class="iconfont icon-file"></i>
<span class="gitee-nav__sidebar-name">使用条款</span>
</a></li>
<li class="gitee-nav__sidebar-item">
<a href="https://gitee.com/about_us"><i class="iconfont icon-issuepx"></i>
<span class="gitee-nav__sidebar-name">关于我们</span>
</a></li>
<li class="gitee-nav__sidebar-item">
<a href="https://gitee.com/profile/account_information"><i class="iconfont icon-edit"></i>
<span class="gitee-nav__sidebar-name">设置</span>
</a></li>
<li class="gitee-nav__sidebar-item">
<a rel="nofollow" data-method="delete" href="https://gitee.com/logout"><i class="iconfont icon-ic-logout"></i>
<span class="gitee-nav__sidebar-name">
退出
</span>
</a></li>
</ul>
</div>
</div>
<div class="gitee-nav__sidebar-bottom">
<div class="gitee-nav__sidebar-close-button">
<i class="fa fa-angle-double-left"></i>
</div>
</div>
</div>
</div>
<div class="item gitosc-logo">
<a href="https://gitee.com/"><img alt="Gitee — 基于 Git 的代码托管和研发协作平台" class="ui inline image" height="28" src="./springcloud1Gitee.com_files/logo.svg" title="Gitee — 基于 Git 的代码托管和研发协作平台" width="95">
<img alt="Gitee — 基于 Git 的代码托管和研发协作平台" class="ui inline black image" height="28" src="./springcloud1Gitee.com_files/logo-black.svg" title="Gitee — 基于 Git 的代码托管和研发协作平台" width="95">
</a></div>
<a title="开源软件" class="item " href="https://gitee.com/explore">开源软件
</a><a title="企业版" class="item " href="https://gitee.com/enterprises">企业版
<sup class="ui red label">
特惠
</sup>
</a><a title="高校版" class="item " href="https://gitee.com/education">高校版
</a><a title="私有云" class="item" target="_blank" href="https://gitee.cn/?utm_source=giteecom">私有云
</a><a title="博客" class="item" id="gitee-blog" target="_blank" href="https://blog.gitee.com/?utm_sources=site_nav">博客
</a><div class="dropdown item ui" id="my-gitee-dropdown" tabindex="0">
<a href="https://gitee.com/">我的</a>
<i class="dropdown icon"></i>
<div class="menu" tabindex="-1">
<div class="ui active dimmer inverted js-my-gitee-dropdown-loader">
<div class="ui loader"></div>
</div>
<div class="header user-enterprises">
<a class="pull-right" target="_blank" href="https://gitee.com/inandout/dashboard/enterprises">全部</a>
企业
<span class="count"></span>
</div>
<div class="disabled item tip user-enterprises">
无企业
</div>
<div class="header user-groups">
<a class="pull-right" target="_blank" href="https://gitee.com/inandout/dashboard/groups">全部</a>
组织
<span class="count"></span>
</div>
<div class="disabled item tip user-groups">
无组织
</div>
<div class="header user-programs">
项目
<span class="count"></span>
</div>
<div class="disabled item tip user-programs">
<span class="translation_missing" title="translation missing: zh-CN.layouts.header.empty_programs">Empty Programs</span>
</div>
<div class="header user-projects">
<a class="pull-right" target="_blank" href="https://gitee.com/inandout/projects">全部</a>
仓库
<span class="count"></span>
</div>
<div class="disabled item tip user-projects">
无项目
</div>
</div>
</div>
<div class="center responsive-logo">
<a href="https://gitee.com/"><img alt="Gitee — 基于 Git 的代码托管和研发协作平台" class="ui inline image" height="24" src="./springcloud1Gitee.com_files/logo.svg" title="Gitee — 基于 Git 的代码托管和研发协作平台" width="85">
<img alt="Gitee — 基于 Git 的代码托管和研发协作平台" class="ui inline black image" height="24" src="./springcloud1Gitee.com_files/logo-black.svg" title="Gitee — 基于 Git 的代码托管和研发协作平台" width="85">
</a></div>
<div class="right menu userbar right-header" id="git-nav-user-bar">
<form class="ui item" id="navbar-search-form" data-text-require="搜索关键字不能少于1个" data-text-filter="搜索格式不正确" action="https://gitee.com/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓">
<input type="hidden" name="type" id="navbar-search-type">
<input type="hidden" name="fork_filter" id="fork_filter" value="on">
<div class="ui search header-search">
<input type="text" name="q" id="navbar-search-input" value="" class="prompt" placeholder="搜开源" autocomplete="off">
<div class="results"></div></div>
</form>
<script>
var can_search_in_repo = 1,
repo = "VFZSck5FOVVXVEZOYW1ob1RucFplbHBuUFQxaE56WXpaZz09YTc2M2Y=",
reponame = "inandout/springcloud1";
$(function() {
var $search = $('#navbar-search-form .ui.search');
$search.search({
apiSettings: {
url: '/search/relative_project?q={query}',
onResponse: function (res) {
if (res && res.status === 200 && res.data) {
var query = htmlSafe($search.search('get value'));
res.data.map(function (item) {
item.path_ns = '/' + item.path_ns;
item.icon = 'iconfont icon-project-public';
});
res.data.unshift({
name_ns: "在全站搜索 <b class='hl'>" + query +"</b> 相关项目",
path_ns: '/search?fork_filter=on&q=' + query,
icon: 'iconfont icon-search'
});
return res;
} else {
return { data: [] };
}
}
},
fields: {
results: 'data',
description: 'name_ns',
url: 'path_ns',
icon: 'icon'
},
minCharacters: 1,
maxResults: 10,
searchDelay: 250,
showNoResults: false,
transition: 'fade'
});
});
</script>
<div class="item ui dropdown empty" data-count-path="/notifications/unread_count" data-enable="" data-mark-notice-path="/notifications/mark" id="notice-dropdown" tabindex="0">
<a class="remind-button" href="https://gitee.com/notifications"><i class="iconfont icon-remind"></i>
<div class="notice-count total visible">1</div>
</a><div class="notice-dropdown-panel menu" tabindex="-1" style="left: -165px;">
<div class="notice-dropdown-panel-header">
<div class="tab active" data-data-path="/notifications/notices?scope=referer" data-html-path="/notifications/referer" data-scope="referer">
<div class="content">
@ 我
<div class="notice-count referer"></div>
</div>
</div>
<div class="tab" data-data-path="/notifications/notices?scope=infos" data-html-path="/notifications/infos" data-scope="infos">
<div class="content">
通知
<div class="notice-count infos"></div>
</div>
</div>
<div class="tab" data-data-path="/notifications/notices?scope=messages" data-html-path="/notifications/messages" data-scope="messages">
<div class="content">
私信
<div class="notice-count messages visible">1</div>
</div>
</div>
</div>
<div class="item notice-dropdown-panel-container">
<div class="ui dimmer over active">
<div class="ui loader"></div>
</div>
<div class="notice-list"></div>
<div class="notice-dropdown-panel-blank">
暂没有新消息
</div>
</div>
<div class="notice-dropdown-panel-footer">
<div class="action">
<div class="side left">
<a class="mark-notices" href="javascript: void(0);">当前标记为已读
</a></div>
<div class="side right">
<a class="load-all" target="_blank" href="javascript: void(0);">查看全部
</a></div>
</div>
</div>
</div>
</div>
<div class="ui item" id="feature-update-notice">
<div class="notice-update-icon">
<a class="notice-update-popup click-knowed" title="" href="https://gitee.com/help/articles/4338"><img alt="功能更新" title="" class="bubl_icon bubl-off-icon" src="./springcloud1Gitee.com_files/bulb_off-24ee940be20998aace89a3f040cbc704.svg" style="display: block;">
<img alt="功能更新" title="" class="bubl_icon bubl-on-icon" src="./springcloud1Gitee.com_files/bulb_on-3986b1dc417285398e3d15671bd8f261.svg" style="display: none;">
</a></div>
<div class="feature-update-notice-panel menu" style="left: -119px;">
<div class="notice-img">
<img alt="" title="" class="notice-img-show" src="./springcloud1Gitee.com_files/101042_80e5322e_8189591.gif">
</div>
<div class="notice-update-title">Change Request 上线</div>
<div class="notice-update-des"><p>保护分支新增评审模式,该模式下,对分支无推送权限的成员推送代码,将会自动向保护分支提交创建 PR。</p></div>
<div class="notice-btn-list d-flex-between">
<button name="button" type="button" class="ui basic orange button btn-notice btn-knowed click-knowed" style="margin-right: 0">我知道了</button>
<a class="ui button orange btn-notice btn-details click-knowed" target="_blank" href="https://gitee.com/help/articles/4338">查看详情</a>
</div>
</div>
</div>
<div class="ui dropdown link item" id="git-nav-create" tabindex="0">
<i class="iconfont icon-add-thin"></i>
<div class="right menu" tabindex="-1">
<a class="item" href="https://gitee.com/projects/new"><i class="add square icon"></i>
新建仓库
</a><a class="item" href="https://gitee.com/inandout/codes/new"><i class="code icon"></i>
发布代码片段
</a><a class="item" href="https://gitee.com/organizations/new"><i class="group icon"></i>
创建组织
</a><a class="item" href="https://gitee.com/enterprises/new"><i class="icon iconfont icon-enterprise"></i>
开通企业版
</a><a class="item" href="https://gitee.com/projects/import/url"><i class="github icon"></i>
从 GitHub / GitLab 导入仓库
</a></div>
</div>
<div class="ui dropdown item" id="git-nav-user" tabindex="0">
<img class="ui avatar image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAABSCAYAAADHLIObAAAEWElEQVR4Xu2aXUgUURTHz7ampOLmloWl0hcUZS8VhFgQQVA9BGVQvdtLD1HQQy9F0HvRW730AQX1EBSIRfTx1osPSYQRJmGWtUXqsiqb7kec0ZHpujtzZ+c/u+zsGZAF585/5v7mf88998wN7bo5mCU5PBMICUjPDA0BAYnhKCBBHAWkgEQRAOlIjBSQIAIgGXGkgAQRAMmIIwUkiABIRhwpIEEEQDLiSAEJIgCSEUcKSBABkIw4UkCCCIBkxJECEkQAJFMyR66qq6Ibh9dQOET0eCBOjz7EQV0qjUzJQJ5sX07nOlZQeEnI6Hn/zySdfvqtNBQAdy0ZyPtdrbR5ZY3RhUyW6PyzUXo7Mg3oUmkkSgJSdePzzwm69Cq2iMC1g820tmEphMyf6TSd6fkO0colUhKQVjfGk2k62ztKA7//Lno+azuvBEbis3Ts4bBXmbzXFx2krhv5iQWkzXu3wnFyCc/sBzbWF+yijtZa2t1Sa1zvdK+CbzJ/YVEdaXUjTzC3343Rrb4xr33Ie/31Q820p60ueCCtbrRLd9Y3VtOp7cvpycd4ztipSz6QIC90NtGJ9ohWumMCYNcOT8zQlTexgoAGDiQ7jN1YzcsYIsqX7vA5ta2X2GYF6XfCX5QY6cYZyERdN5Tohgq7dr6DVCcYuxUMetkYGJCcvtw52kL8y4fT8NJN1HUdFBiQbsBYJyOnOFpRINVZ+l7/OPFy0Dy46tMWmVtHcwGos62OosvC0JwvEI4sdHmHrAQFAqQ6VHWHo1Mc1dVR1+p2KZcbzXxtfZu1j2+LUPeOKE3NZiiVyRrD+mt8duE5fiRSlExl6MiWBtrQWG38364S5Laz6kRXtiB1Oq7GUeTau2JAqisY5JDml1gxIN2kRjruVttUBEg/h7QJNPAgnYb0xb1NtG9dPfWNTuf8jqPrTivIYtQ+fZu183XYbkhbixteZ3DrCwscSKch7abc5uTMwIJ0GtImGJQrAwlSDfx2wxblykCCtLpMZy2NcKUK0u+dHL5PNm6+Y5vDG+FKNwVlp3irc95XkHZx0fxmbZbTeGsKl9H4j8tqDTVzJTU+CvluExiQalxkIImZDNVWhRZ2oOm8aW5TSPoSaJC64Bh4OpP9z5luXWlNtbzmpDrP7evQzlXcnUimDYfx76+pFMUmU/RlfMYotambTVUYl1/HtLb+qaPB7UvQAae28RUk1yQjNWGj7vjg/YTr5+MYe3X/ano5NEm9gwnq3hk1Ngzkgm6K8z27tkZoU3SuxsmH37VIvoevIF2Ts7lAnbh0tXXSLV0tu3ZlA5I74fY7EEN8MZR7EysCnlWjrEBaE3UnEBwCej4l6G7/uFNTyPmyAqmzX9IufkKI5REpK5B+gvCqLSC9Epy/XkAKSBABkIw4UkCCCIBkxJECEkQAJCOOFJAgAiAZcaSABBEAyYgjBSSIAEhGHCkgQQRAMuJIAQkiAJIRRwpIEAGQjDgSBPIfPZx+rO2MuE0AAAAASUVORK5CYII=" alt="幻塔de总裁-inandout">
<i class="dropdown icon"></i>
<div class="right menu" tabindex="-1">
<a class="item" href="https://gitee.com/inandout"><i class="iconfont icon-ic-home"></i>
个人主页
</a><a class="item" href="https://gitee.com/inandout/starred"><i class="iconfont icon-star"></i>
我的星选集
</a><a class="item" href="https://gitee.com/profile/account_information"><div class="mayun-icon my-ic-edit my-ic-edit-dims"></div>
设置
</a><div class="divider"></div>
<a class="item" target="_blank" href="https://gitee.com/help"><div class="mayun-icon my-ic-help my-ic-help-dims"></div>
帮助
</a><div class="divider"></div>
<a class="item destroy-user-session" rel="nofollow" data-method="delete" href="https://gitee.com/logout"><div class="mayun-icon my-ic-exit my-ic-exit-dims"></div>
退出
</a></div>
</div>
<script>
$('.destroy-user-session').on('click', function() {
$.cookie('access_token', null, { path: '/' });
})
</script>
</div>
</div>
</div>
</header>
<script>
Gitee.initNavbar()
Gitee.initRepoRemoteWay()
$.cookie('user_locale',null)
</script>
<script>
var userAgent = navigator.userAgent;
var isLessIE11 = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;
if(isLessIE11){
var can_access = ""
if (can_access != "true"){
window.location.href = "/incompatible.html";
}
}
</script>
<div class="fixed-notice-infos">
<div class="all-messages">
</div>
<div class="ui container">
<div class="flash-messages" id="messages-container"></div>
</div>
<script>
(function() {
$(function() {
var $error_box, alertTip, notify_content, notify_options, template;
template = '<div data-notify="container" class="ui {0} message" role="alert">' + '<i data-notify="dismiss" class="close icon"></i>' + '<span data-notify="message">{2}</span>' + '</div>';
notify_content = null;
notify_options = {};
alertTip = '';
$error_box = $(".flash_error.flash_error_box");
if (notify_options.type === 'error' && $error_box.length > 0 && !$.isEmptyObject(notify_content.message)) {
if (notify_content.message === 'captcha_fail') {
alertTip = "验证码不正确";
} else if (notify_content.message === 'captcha_expired') {
alertTip = "验证码已过期,请点击刷新";
} else if (notify_content.message === 'not_found_in_database') {
alertTip = "帐号或者密码错误";
} else if (notify_content.message === 'not_found_and_show_captcha') {
alertTip = "帐号或者密码错误";
} else if (notify_content.message === 'phone_captcha_fail') {
alertTip = "手机验证码不通过";
} else {
alertTip = notify_content.message;
}
return $error_box.html(alertTip).show();
} else if (notify_content) {
if ("new" === 'third_party_binding') {
return $('#third_party_binding-message').html(notify_content.message).addClass('ui message red');
}
notify_options.delay = 3000;
notify_options.template = template;
notify_options.offset = {
x: 10,
y: 30
};
notify_options.element = '#messages-container';
return $.notify(notify_content, notify_options);
}
});
}).call(this);
</script>
</div>
<script>
(function() {
$(function() {
var setCookie;
setCookie = function(name, value) {
$.cookie(name, value, {
path: '/',
expires: 365
});
};
$('#remove-bulletin, #remove-bulletin-dashboard').on('click', function() {
setCookie('remove_bulletin', "gitee-maintain-1645805024");
$('#git-bulletin').hide();
});
$('#remove-member-bulletin').on('click', function() {
setCookie('remove_member_bulletin', "gitee_member_bulletin");
$(this).parent().hide();
});
return $('#remove-gift-bulletin').on('click', function() {
setCookie('remove_gift_bulletin', "gitee-gift-bulletin");
$(this).parent().hide();
});
});
}).call(this);
</script>
<script>
function closeMessageBanner(pthis, type, val) {
var json = {}
val = typeof val === 'undefined' ? null : val
$(pthis).parent().remove()
if (type === 'out_of_enterprise_member') {
json = {type: type, data: val}
} else if (type === 'enterprise_overdue') {
json = {type: type, data: val}
}
$.post('/profile/close_flash_tip', json)
}
</script>
<div class="site-content">
<div class="git-project-header">
<div class="fixed-notice-infos">
<div class="ui info icon floating message green" id="fetch-ok" style="display: none">
<div class="content">
<div class="header status-title">
<i class="info icon status-icon"></i>
代码拉取完成,页面将自动刷新
</div>
</div>
</div>
<div class="ui info icon floating message error" id="fetch-error" style="display: none">
<div class="content">
<div class="header status-title">
<i class="info icon status-icon"></i>
<span class="error_msg"></span>
</div>
</div>
</div>
</div>
<div class="ui container">
<div class="git-project-header-details">
<div class="git-project-header-container">
<div class="git-project-header-actions">
<div class="ui small modal wepay-qrcode">
<i class="iconfont icon-close close"></i>
<div class="header">
扫描微信二维码支付
<span class="wepay-cash"></span>
</div>
<div class="content weqcode-center">
<img id="wepay-qrcode" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAAAAACIM/FCAAACh0lEQVR4Ae3ch5W0OgyG4dt/mQJ2xgQPzJoM1m3AbALrxzrf28FzsoP0HykJEEAAAUQTBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEkKK0789+GK/I2ezfQB522PnS1qc8pGgXvr4tE4aY0XOUWlGImThWgyCk6DleixzE7qwBkg/MGiDPlVVAyp1VQGrPKiACDhFI6VkF5LmzCki+sg7IwDoglnVAil0IMkeG9CyUiwsxLFUVFzJJOQaKCjFCDN9RXMjIX7W6ztZXZDKKCyn8sWJvH+nca7WHDN9lROlAliPH9iRKCPI4cswFJQWxB46toLQgQ9jhn5QYZA9DOkoMUoQde5YapAxDWkoNYsOQR3KQd9CxUnIQF4S49CB9ENKlBxmDEKsFUgMCCCCAAHIrSF61f6153Ajy8nyiPr8L5MXnmm4CyT2fzN4DUvHZ+ntA2tOQBRBAAAEEEEAAAQQQ7ZBaC6TwSiDUaYHQ2yuB0MN+ft+43whyrs4rgVCjBUKTFshLC6TUAjGA3AxSaYFYLZBOC2RUAsk8h5qTg9QcbEoOsoQhQ2qQhsO5xCD5dgB5JQaZ+KBKGtKecvR81Ic0ZDjByKdDx0rSEDZ/djQbH+bkIdvfJFm98BfV8hD2zprfVdlu9PxVeyYAkciREohRAplJCaRSAplJCcQogTjSAdlyHRBvSAekJR0QRzogA+mADJkOiCPSAPEtqYBshlRAXC43hxix2QiOuEZkVERykGyNo9idIZKE0HO7XrG6OiMShlDWjstVzdPgXtUH9v0CEidAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQP4HgjZxTpdEii0AAAAASUVORK5CYII=">
</div>
<div class="actions">
<div class="ui cancel blank button">取消</div>
<div class="ui ok orange button">支付完成</div>
</div>
</div>
<span class="ui buttons basic watch-container">
<div class="ui dropdown button js-project-watch" data-watch-type="watching" tabindex="0">
<input type="hidden" value="watching">
<i class="iconfont icon-watch"></i>
<div class="text">Watching</div>
<i class="dropdown icon"></i>
<div class="menu" tabindex="-1">
<a data-value="unwatch" class="item" data-remote="true" rel="nofollow" data-method="post" href="https://gitee.com/inandout/springcloud1/unwatch"><i class="iconfont icon-msg-read"></i>
不关注
</a><a data-value="watching" class="item active selected" data-remote="true" rel="nofollow" data-method="post" href="https://gitee.com/inandout/springcloud1/watch"><i class="iconfont icon-msg-read"></i>
关注所有动态
</a><a data-value="releases_only" class="disabled item" data-remote="true" rel="nofollow" data-method="post" href="https://gitee.com/inandout/springcloud1/release_only_watch"><i class="iconfont icon-msg-read"></i>
仅关注版本发行动态
</a><a data-value="ignoring" class="item" data-remote="true" rel="nofollow" data-method="post" href="https://gitee.com/inandout/springcloud1/ignoring_watch"><i class="iconfont icon-msg-read"></i>
关注但不提醒动态
</a></div>
</div>
<style>
.js-project-watch .text .iconfont {
display: none; }
.js-project-watch a, .js-project-watch a:hover {
color: #000; }
.js-project-watch .item > .iconfont {
visibility: hidden;
margin-left: -10px; }
.js-project-watch .selected .iconfont {
visibility: visible; }
.js-project-watch .menu {
margin-top: 4px !important; }
</style>
<script>
$('.js-project-watch').dropdown({
action: 'select',
onChange: function(value, text, $selectedItem) {
var type = value === 'unwatch' ? 'Watch' : 'Watching';
$(this).children('.text').text(type);
$(this).dropdown('set selected', value)
}
});
</script>
<a class="ui button action-social-count" title="1" href="https://gitee.com/inandout/springcloud1/watchers">1
</a></span>
<span class="basic buttons star-container ui">
<a class="ui button unstar " sa_evt="clickStar" sa_location="其他" sa_url="" sa_repo_id="19896528" data-remote="true" rel="nofollow" data-method="post" href="https://gitee.com/inandout/springcloud1/unstar"><i class="iconfont icon-star-solid"></i>
Starred
</a><a class="ui button star " sa_evt="clickStar" sa_location="其他" sa_url="" sa_repo_id="19896528" data-remote="true" rel="nofollow" data-method="post" href="https://gitee.com/inandout/springcloud1/star"><i class="iconfont icon-star"></i>
Star
</a><a class="ui button action-social-count " title="0" href="https://gitee.com/inandout/springcloud1/stargazers">0
</a></span>
<span class="ui basic buttons fork-container" title="">
<a id="fork-top-button" class="ui button fork " sa_evt="repoFork" sa_repo_id="19896528" sa_is_self="true" sa_is_member="true" href="https://gitee.com/inandout/springcloud1/new/master?readme=true#"><i class="iconfont icon-fork"></i>
Fork
</a><a class="ui button action-social-count " title="0" href="https://gitee.com/inandout/springcloud1/members">0
</a></span>
</div>
<h2 class="git-project-title mt-0 mb-0">
<span class="project-title"><i class="project-icon iconfont icon-project-public" title="这是一个公开仓库"></i> <a title="幻塔de总裁" class="author" href="https://gitee.com/inandout">幻塔de总裁</a> / <a title="springcloud1" class="repository" target="" style="padding-bottom: 0px; margin-right: 4px" sa_evt="repoClick" sa_location="其他" sa_url="" sa_repo_id="19896528" href="https://gitee.com/inandout/springcloud1">springcloud1</a></span><span class="project-badges"><a data-confirm="1.你的自荐申请将由我们人工审核,介绍完善、质量高的项目才能被推荐 &lt;br/&gt; 2.编辑可能会根据需要来调整推荐软件的描述信息 &lt;br/&gt; 3.申请提交后,&lt;strong&gt;如一个工作日内未得到推荐,则默认表示被拒&lt;/strong&gt;。" title="自荐" class="git-project-recommend-badge" rel="nofollow" data-method="post" href="https://gitee.com/inandout/springcloud1/recomm_self"><i class="iconfont icon-recommend recommend-icon"></i>
</a><style>
.gitee-modal {
width: 500px !important; }
</style>
</span>
<input type="hidden" name="project_title" id="project_title" value="幻塔de总裁/springcloud1">
</h2>
</div>
</div>
</div>
<script>
var title_import_url = "false";
var title_post_url = "/inandout/springcloud1/update_import";
var title_fork_url = "/inandout/springcloud1/sync_fork";
var title_project_path = "springcloud1";
var title_p_name = "springcloud1";
var title_p_id= "19896528";
var title_description = "第五阶段";
var title_form_authenticity_token = "XJ3/K1fpoJdD9DOBH2Jv+Ulwoxml/cvVzg9cvlcty4gP/8teyaPu1zrW06XCwM4d7ePlT0JvN2NQUUMbPBh5pQ==";
var watch_type = "watching";
var checkFirst = false;
$('.js-project-watch').dropdown('set selected', watch_type);
$('.checkbox.sync-wiki').checkbox();
$('.checkbox.team-member-checkbox').checkbox();
</script>
<script>
$(function () {
// SemticUI 校验表单等地方要求直接return 值, 对异步支持非常不友好...
// 从提交表单处 再用异步校验 ,控制是否提交
var $modalFork = $('#modal-fork-project');
var $okBtn = $modalFork.find('.ui.ok.button');
var $currentTarget = null;
var isSameProject = false;
$('#fork-top-button, #fork-btm-button').on('click', function (e) {
e.preventDefault();
$modalFork.modal('show');
setTimeout(function () {
$.ajax({ url: '/inandout/springcloud1/fork_project_info' }).done(function () {
// 自定义错误消息模板, inline : true 每个输入框后面都插入消息提示, 而非集中到一处提醒
$.fn.form.settings.templates.prompt = function (errors) {
return $('<div />').addClass('ui error message custom prompt label').html(errors[0]);
};
// 表单的内容是异步传输的js动态生成的....
var $repoForm = $('#modal-fork-project .repo-form');
$repoForm.form({
on: 'change',
inline: true,
fields: {
projectName: {
identifier: 'project-name',
rules: [
{
type: 'empty',
prompt: "仓库名不能为空"
},
{
type: 'regExp',
value: window.giteeRegex.projectName,
prompt: "仓库名只允许包含中文、字母、数字或者下划线(_)、中划线(-)、英文句号(.)、加号(+),必须以字母或数字开头,不能以下划线/中划线结尾,且长度为2~191个字符"
},
{
type: 'maxLength[255]',
prompt: "仓库名只允许包含中文、字母、数字或者下划线(_)、中划线(-)、英文句号(.)、加号(+),必须以字母或数字开头,不能以下划线/中划线结尾,且长度为2~191个字符"
}
]
},
projectPath: {
identifier: 'project-path',
rules: [
{
type: 'empty',
prompt: "路径不能为空"
},
{
type: 'regExp',
value: window.giteeRegex.projectPath,
prompt: "路径只允许包含字母、数字或者下划线(_)、中划线(-)、英文句号(.),必须以字母开头,且长度为2~191个字符"
}
]
}
}
});
$modalFork.find('.namespace-img-area.ui.checkbox').checkbox({
onChecked: function () {
$currentTarget = $(this).closest('.ui.checkbox');
// 当前选中的空间
isSameProject = $currentTarget[0].hasAttribute('data-any-same-projects');
var conflictProjectName = $currentTarget.data('conflict-project-title');
var conflictProjectUrl = $currentTarget.data('conflict-project-url');
var conflictProjectNameSpacePath = $currentTarget.data('conflict-namespace');
var conflictPathType = $currentTarget.find('.path-type').text();
// fork目标
var targetProjectName = $currentTarget.data('target-project-name');
var targetProjectPath = $currentTarget.data('target-project-path');
// 命名空间名称(@xxx)
var conflictNameSpaceName = $currentTarget.find('.path-name').text();
var $forkTargetNamespace = $('.fork-target-namespace-area');
var $forkTargetNamespaceItem = $(this).closest('.fork-target-namespace-item')
// 冲突 显示修改表单
if (isSameProject) {
//$forkTargetNamespace.addClass('same-name-editing');
$('.fork-target-namespace-item').removeClass('same-name-editing')
$forkTargetNamespaceItem.addClass('same-name-editing')
$forkTargetNamespace
.find('.conflict-namespace-name')
.attr('href', `/${conflictProjectNameSpacePath}`)
.text(conflictNameSpaceName);
$forkTargetNamespace
.find('.conflict-path')
.attr('href', `${conflictProjectUrl}`)
.text(`${conflictProjectNameSpacePath}/${targetProjectPath}`);
$forkTargetNamespace
.find('.prefix-path')
.text(`${window.location.origin}/${conflictProjectNameSpacePath}/`);
$forkTargetNamespace
.find('.conflict-path-type')
.text(conflictPathType.toLowerCase())
var $nameInput = $forkTargetNamespace.find('[name="project-name"]');
var $pathInput = $forkTargetNamespace.find('[name="project-path"]');
$nameInput.val(targetProjectName);
$pathInput.val(targetProjectPath);
checkFirst = true
// 立即校验一次
asyncValidateForkRepoForm();
} else {
$('.fork-target-namespace-item').removeClass('same-name-editing')
$forkTargetNamespaceItem.addClass('same-name-editing');
}
$okBtn.removeClass('disabled');
}
});
});
}, 500);
});
// 异步校验
function asyncValidateForkRepoForm (successCallback) {
var $repoForm = $('#modal-fork-project .same-name-editing .repo-form');
var $forkTargetNamespace = $('.fork-target-namespace-area .same-name-editing');
var $nameInput = $forkTargetNamespace.find('[name="project-name"]');
var $pathInput = $forkTargetNamespace.find('[name="project-path"]');
var name = $nameInput.val().trim();
var path = $pathInput.val().trim();
var namespace = $currentTarget ? $currentTarget.data('conflict-namespace') : '';
if (!name || !path) return;
$okBtn.addClass('loading');
$.ajax('/projects/check_fork_form', {
type: 'get',
data: { project_name: name, project_path: path, target_namespaces: namespace },
success: function (data) {
if (data.status == 0) {
successCallback && successCallback();
} else if (data.status == -1 && Array.isArray(data.conflict_keys)) {
if (!checkFirst) {
data.conflict_keys.includes('name') && $repoForm.form('add prompt', 'project-name', "已存在相同仓库名");
data.conflict_keys.includes('path') && $repoForm.form('add prompt', 'project-path', "已存在相同路径");
} else {
data.conflict_keys.includes('name') && data.new_name && $nameInput.val(data.new_name);
data.conflict_keys.includes('path') && data.new_path && $pathInput.val(data.new_path);
}
} else {
Flash.error("校验失败");
}
checkFirst = false
},
error: function (err) {
Flash.error(err.responseJSON.message);
},
complete: function () {
$okBtn.removeClass('loading');
// 添加提示 弹窗变高后 刷新弹窗位置
$modalFork.modal('refresh');
}
});
}
function forkSubmit () {
$modalFork.modal('hide');
// 构造一些 input 用于表单提交
var $form = $('<form></form>');
var $input = $('<input type="hidden" name="authenticity_token" />');
var $inputCheck = $('<input type="hidden" name="members" />');
var $inputCheck2 = $('<input type="hidden" name="namespace_path" />');
var checkedPath = $('.checkbox.checked > input[name=namespace_path]').val();
// fork存在冲突, 修改后的表单:
if (isSameProject) {
// 获取最新表单数据
var $forkTargetNamespace = $('.fork-target-namespace-area .same-name-editing');
var name = $forkTargetNamespace.find('[name="project-name"]').val().trim();
var path = $forkTargetNamespace.find('[name="project-path"]').val().trim();
var $projectName = $('<input type="hidden" name="name" />');
var $projectPath = $('<input type="hidden" name="path" />');
$projectName.val(name);
$projectPath.val(path);
$form.append($projectName);
$form.append($projectPath);
}
$form.hide();
$form.attr('method', 'post');
$form.attr('action', '/' + checkedPath + '/fork_project/inandout/springcloud1');
$input.attr('value', $('meta[name="csrf-token"]').attr('content'));
$inputCheck.attr('value', $('.checkbox.checked > input[name=members]').val());
$inputCheck2.attr('value', checkedPath);
$form.append($input);
$form.append($inputCheck);
$form.append($inputCheck2);
$form.appendTo('body');
$form.submit();
}
$modalFork.modal({
transition: 'fade',
closable: true,
centered: false,
observeChanges:true,
onApprove: function () {
// 存在同名冲突时, 需要修改仓库信息, 再进行校验同名
// 判断当前选中的空间类型, 用于决定是否需要修改路径仓库名,验证表单
if (isSameProject) {
var $repoForm = $('#modal-fork-project .same-name-editing .repo-form');
$repoForm.form('validate form');
var isRepoInfoValid = $repoForm.form('is valid'); // 前端校验通过
// 由于是form提交和ajax检测结合..., 防止意外篡改 提交前必定校验一次, 通过后自动submit
if (isRepoInfoValid) {
// SemticUI add prompt 自定义验证连续执行太快, 会消失掉重复再出现再消失.
setTimeout(function () {
asyncValidateForkRepoForm(function () {
forkSubmit();
});
}, 200);
} else {
$repoForm.form('validate form');
}
} else {
// 正常 frok
forkSubmit();
}
return false;
}
});
$modalFork.find('.close-button').on('click', function () {
$modalFork.modal('hide');
});
});
</script>
<style>
i.loading, .icon-sync.loading {
-webkit-animation: icon-loading 1.2s linear infinite;
animation: icon-loading 1.2s linear infinite;
}
.qrcode_cs {
float: left;
}
.check-sync-wiki {
float: left;
height: 28px;
line-height: 28px;
}
.sync-wiki-warn {
color: #e28560;
}
</style>
<div class="git-project-nav">
<div class="ui container">
<div class="ui secondary pointing menu">
<a class="item active" href="https://gitee.com/inandout/springcloud1"><i class="iconfont icon-code"></i>
代码
</a><a class="item " href="https://gitee.com/inandout/springcloud1/issues"><i class="iconfont icon-task"></i>
Issues
<span class="ui mini circular label">
0
</span>
</a><a class="item " href="https://gitee.com/inandout/springcloud1/pulls"><i class="iconfont icon-pull-request"></i>
Pull Requests
<span class="ui mini circular label">
0
</span>
</a><a class="item " href="https://gitee.com/inandout/springcloud1/wikis"><i class="iconfont icon-wiki"></i>
Wiki
</a><a class="item " href="https://gitee.com/inandout/springcloud1/repository/stats/master"><i class="iconfont icon-statistics"></i>
统计
</a><div class="item project-devops-item">
<div class="ui pointing top right dropdown project-devops-dropdown" tabindex="0">
<div class="text">
<i class="iconfont icon-devops"></i>
DevOps
</div>
<i class="dropdown icon"></i>
<div class="menu" style="display:none" tabindex="-1">
<a class="item" href="https://gitee.com/inandout/springcloud1/gitee_go"><img src="./springcloud1Gitee.com_files/giteego-7ec42270742374f05850d0d3ad09e303.png" alt="Giteego">
<div class="item-title">
Gitee Go
</div>
</a><a class="item" href="https://gitee.com/inandout/springcloud1/artifact_repositories"><img src="./springcloud1Gitee.com_files/artifacts-eae00b503105733ce5f171de96fbb927.svg" alt="Artifacts">
<div class="item-title">
制品库管理
</div>
</a><a class="item" target="_blank" href="https://gitee.com/help/articles/4285"><img src="./springcloud1Gitee.com_files/baidu_efficiency_cloud-81a98c2eb67fac83b1453ca3d2feb326.svg" alt="Baidu efficiency cloud">
<div class="item-title">
百度效率云
</div>
</a><a class="item" target="_blank" href="https://gitee.com/help/articles/4318"><img src="./springcloud1Gitee.com_files/cloudbase-1197b95ea3398aff1df7fe17c65a6d42.png" alt="Cloudbase">
<div class="item-title">
腾讯云托管
</div>
</a><a class="item" target="_blank" href="https://gitee.com/help/articles/4330"><img src="./springcloud1Gitee.com_files/cloud_serverless-686cf926ced5d6d2f1d6e606d270b81e.png" alt="Cloud serverless">
<div class="item-title">
腾讯云 Serverless
</div>
</a><a class="item" target="_blank" href="https://gitee.com/help/articles/4193"><img src="./springcloud1Gitee.com_files/jenkins_for_gitee-554ec65c490d0f1f18de632c48acc4e7.png" alt="Jenkins for gitee">
<div class="item-title">
Jenkins for Gitee
</div>
</a></div>
</div>
</div>
<div class="item">
<div class="ui pointing top right dropdown git-project-service" tabindex="0">
<div>
<i class="iconfont icon-service"></i>
服务
<i class="dropdown icon"></i>
</div>
<div class="menu" style="display:none" tabindex="-1">
<a class="item" href="https://gitee.com/inandout/springcloud1/pages"><img src="./springcloud1Gitee.com_files/logo-en.svg" alt="Logo en">
<div class="item-title">
Gitee Pages
</div>
</a><a class="item" href="https://gitee.com/inandout/springcloud1/javadoc"><img src="./springcloud1Gitee.com_files/maven-bd58aee84f266d64d4b8ce5b006a9fcf.png" alt="Maven">
<div class="item-title">
JavaDoc
</div>
</a><a class="item" href="https://gitee.com/inandout/springcloud1/phpdoc"><img src="./springcloud1Gitee.com_files/phpdoc-a99f87c2feaa2fd99e5065377a39487e.png" alt="Phpdoc">
<div class="item-title">
PHPDoc
</div>
</a><a class="item" href="https://gitee.com/inandout/springcloud1/quality_analyses?platform=sonar_qube"><img src="./springcloud1Gitee.com_files/sonar_mini-5e1b54bb9f6c951d97fb778ef623afea.png" alt="Sonar mini">
<div class="item-title">
质量分析
</div>
</a><a class="item" href="https://gitee.com/inandout/springcloud1/quality_analyses?platform=codesafe"><img width="100%" src="./springcloud1Gitee.com_files/codesafe_mini-accbe1e555e9864c552620240d10e4de.png" alt="Codesafe mini">
<div class="item-title">
奇安信代码卫士
</div>
</a><a class="item" href="https://gitee.com/inandout/springcloud1/gitee_scans"><img src="./springcloud1Gitee.com_files/giteescan-cd9ab4076bd751faf7e30888eb10f782.png" alt="Giteescan">
<div class="item-title">Gitee Scan</div>
</a><a class="item" href="https://gitee.com/inandout/springcloud1/codecheck/report?branch=master"><img src="./springcloud1Gitee.com_files/CodeCheck-70a10cf889c51df6f00bf159c8e12374.svg" alt="Codecheck">
<div class="item-title">CodeCheck</div>
</a><a class="item" href="https://gitee.com/inandout/springcloud1/fosseye_scans"><img src="./springcloud1Gitee.com_files/lic-de91a87a4f8dad44d993b27a69d58d5e.png" alt="Lic">
<div class="item-title">
许可证合规分析
</div>
</a><button class="ui orange basic button quit-button" id="quiting-button">
我知道了,不再自动展开
</button>
</div>
</div>
</div>
<a class="item d-flex d-flex-center " href="https://gitee.com/inandout/springcloud1/settings"><i class="iconfont icon-settings"></i>
<div class="text ml-05 setting-text">管理</div>
</a></div>
</div>
</div>
<script>
$('.git-project-nav .ui.dropdown').dropdown({ action: 'nothing' });
var gitee_reward_config = JSON.parse(localStorage.getItem('gitee_reward_config') || null) || false
var $settingText = $('.setting-text')
// 如果没有访问过
if(!gitee_reward_config) $settingText.addClass('red-dot')
</script>
<style>
.git-project-nav i.checkmark.icon {
color: green;
}
#quiting-button {
display: none;
}
.git-project-nav .dropdown .menu.hidden:after {
visibility: hidden !important;
}
</style>
<script>
isSignIn = true
isClickGuide = true
$('#git-versions.dropdown').dropdown();
$.ajax({
url:"/inandout/springcloud1/access/add_access_log",
type:"GET"
});
$('#quiting-button').on('click',function() {
$('.git-project-service').click();
if (isSignIn) {
$.post("/projects/set_service_guide")
}
$.cookie("Serve_State", true, { expires: 3650, path: '/'})
$('#quiting-button').hide();
});
if (!(isClickGuide || $.cookie("Serve_State") == 'true')) {
$('.git-project-service').click()
$('#quiting-button').show()
}
</script>
</div>
<div class="ui container">
<form action="https://gitee.com/inandout/springcloud1/new/master" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓"><input type="hidden" name="authenticity_token" value="S6jD/S1UyyDzgjgfuEvD83XC48s4wD+uCCx1iF0De9sYyveIsx6FYIqg2Dtl6WIX0VGlnd9SwxiWcmotNjbJ9g==">
<link rel="stylesheet" media="all" href="./springcloud1Gitee.com_files/editor-44a51c1d9f3a36ad52fc1bbbd61822cc.css">
<div class="ui form blob-form blob-form--markdown error" id="js-blob-form">
<div class="field blob-form__path-wrapper">
<div class="blob-form__license-select">
<div class="ui search dropdown selection"><select id="js-license-select" name="license">
<option value="no">请选择开源许可证</option>
<option value="MulanPSL-2.0">MulanPSL-2.0</option>
<option value="0BSD">0BSD</option>
<option value="AFL-3.0">AFL-3.0</option>
<option value="AGPL-3.0">AGPL-3.0</option>
<option value="Apache-2.0">Apache-2.0</option>
<option value="Artistic-2.0">Artistic-2.0</option>
<option value="BSD-2-Clause">BSD-2-Clause</option>
<option value="BSD-3-Clause">BSD-3-Clause</option>
<option value="BSD-3-Clause-Clear">BSD-3-Clause-Clear</option>
<option value="BSL-1.0">BSL-1.0</option>
<option value="CC-BY-4.0">CC-BY-4.0</option>
<option value="CC-BY-SA-4.0">CC-BY-SA-4.0</option>
<option value="CC0-1.0">CC0-1.0</option>
<option value="ECL-2.0">ECL-2.0</option>
<option value="EPL-1.0">EPL-1.0</option>
<option value="EPL-2.0">EPL-2.0</option>
<option value="EUPL-1.1">EUPL-1.1</option>
<option value="EUPL-1.2">EUPL-1.2</option>
<option value="GPL-2.0">GPL-2.0</option>
<option value="GPL-3.0">GPL-3.0</option>
<option value="ISC">ISC</option>
<option value="LGPL-2.1">LGPL-2.1</option>
<option value="LGPL-3.0">LGPL-3.0</option>
<option value="LPPL-1.3c">LPPL-1.3c</option>
<option value="MIT">MIT</option>
<option value="MPL-2.0">MPL-2.0</option>
<option value="MS-PL">MS-PL</option>
<option value="MS-RL">MS-RL</option>
<option value="MulanPSL-1.0">MulanPSL-1.0</option>
<option value="MulanPubL-1.0">MulanPubL-1.0</option>
<option value="MulanPubL-2.0">MulanPubL-2.0</option>
<option value="NCSA">NCSA</option>
<option value="OFL-1.1">OFL-1.1</option>
<option value="OSL-3.0">OSL-3.0</option>
<option value="PostgreSQL">PostgreSQL</option>
<option value="UPL-1.0">UPL-1.0</option>
<option value="Unlicense">Unlicense</option>
<option value="WTFPL">WTFPL</option>
<option value="Zlib">Zlib</option>
</select><i class="dropdown icon"></i><input class="search" autocomplete="off" tabindex="0"><div class="text">请选择开源许可证</div><div class="menu" tabindex="-1"><div class="item active selected" data-value="no">请选择开源许可证</div><div class="item" data-value="MulanPSL-2.0">MulanPSL-2.0</div><div class="item" data-value="0BSD">0BSD</div><div class="item" data-value="AFL-3.0">AFL-3.0</div><div class="item" data-value="AGPL-3.0">AGPL-3.0</div><div class="item" data-value="Apache-2.0">Apache-2.0</div><div class="item" data-value="Artistic-2.0">Artistic-2.0</div><div class="item" data-value="BSD-2-Clause">BSD-2-Clause</div><div class="item" data-value="BSD-3-Clause">BSD-3-Clause</div><div class="item" data-value="BSD-3-Clause-Clear">BSD-3-Clause-Clear</div><div class="item" data-value="BSL-1.0">BSL-1.0</div><div class="item" data-value="CC-BY-4.0">CC-BY-4.0</div><div class="item" data-value="CC-BY-SA-4.0">CC-BY-SA-4.0</div><div class="item" data-value="CC0-1.0">CC0-1.0</div><div class="item" data-value="ECL-2.0">ECL-2.0</div><div class="item" data-value="EPL-1.0">EPL-1.0</div><div class="item" data-value="EPL-2.0">EPL-2.0</div><div class="item" data-value="EUPL-1.1">EUPL-1.1</div><div class="item" data-value="EUPL-1.2">EUPL-1.2</div><div class="item" data-value="GPL-2.0">GPL-2.0</div><div class="item" data-value="GPL-3.0">GPL-3.0</div><div class="item" data-value="ISC">ISC</div><div class="item" data-value="LGPL-2.1">LGPL-2.1</div><div class="item" data-value="LGPL-3.0">LGPL-3.0</div><div class="item" data-value="LPPL-1.3c">LPPL-1.3c</div><div class="item" data-value="MIT">MIT</div><div class="item" data-value="MPL-2.0">MPL-2.0</div><div class="item" data-value="MS-PL">MS-PL</div><div class="item" data-value="MS-RL">MS-RL</div><div class="item" data-value="MulanPSL-1.0">MulanPSL-1.0</div><div class="item" data-value="MulanPubL-1.0">MulanPubL-1.0</div><div class="item" data-value="MulanPubL-2.0">MulanPubL-2.0</div><div class="item" data-value="NCSA">NCSA</div><div class="item" data-value="OFL-1.1">OFL-1.1</div><div class="item" data-value="OSL-3.0">OSL-3.0</div><div class="item" data-value="PostgreSQL">PostgreSQL</div><div class="item" data-value="UPL-1.0">UPL-1.0</div><div class="item" data-value="Unlicense">Unlicense</div><div class="item" data-value="WTFPL">WTFPL</div><div class="item" data-value="Zlib">Zlib</div></div></div>
</div>
<div class="blob-form__path">
<i class="iconfont icon-file"></i>
<a href="https://gitee.com/inandout/springcloud1">springcloud1</a>
<span class="blob-form__dirpath" id="js-file-dirpath">/ </span>
<input class="blob-form__path-input" id="file_name" name="file_name" placeholder="文件名称或文件路径" value="README.md">
<span class="ml-1">
<strong>
提示:
</strong>
输入 / 可以将文件创建到新文件夹下
</span>
</div>
</div>
<div class="ui warning message blob-form__draft-message">
上次编辑的内容尚未保存,是否继续编辑?
<div class="pull-right actions">
<a class="ui orange button">继续编辑</a>
<a class="ui blank button">删除草稿</a>
</div>
</div>
<div id="markdown-image-upload-container"></div>
<div>
<div class="field blob-form__md-editor">
<div class="md-editor active" id="1646290223704" style="padding-top: 0px;"><div class="md-header btn-toolbar" style=""><div class="btn-group"><button type="button" title="粗体 (Ctrl+B)" tabindex="-1" data-provider="bootstrap-markdown" data-handler="bootstrap-markdown-cmdBold" data-hotkey="Ctrl+B"><i class="icon bold"></i></button><button type="button" title="斜体 (Ctrl+I)" tabindex="-1" data-provider="bootstrap-markdown" data-handler="bootstrap-markdown-cmdItalic" data-hotkey="Ctrl+I"><i class="icon italic"></i></button><button type="button" title="标题 (Ctrl+H)" tabindex="-1" data-provider="bootstrap-markdown" data-handler="bootstrap-markdown-cmdHeading" data-hotkey="Ctrl+H"><i class="icon header"></i></button></div><div class="btn-group"><button type="button" title="链接 (Ctrl+L)" tabindex="-1" data-provider="bootstrap-markdown" data-handler="bootstrap-markdown-cmdUrl" data-hotkey="Ctrl+L"><i class="icon linkify"></i></button><button type="button" title="图片 (Ctrl+G)" tabindex="-1" data-provider="bootstrap-markdown" data-handler="bootstrap-markdown-cmdImage" data-hotkey="Ctrl+G"><i class="icon picture outline"></i></button><button type="button" title="Emoji (Ctrl+E)" tabindex="-1" data-provider="bootstrap-markdown" data-handler="bootstrap-markdown-cmdEmoji" data-hotkey="Ctrl+E"><i class="icon smile outline"></i></button></div><div class="btn-group"><button type="button" title="无序列表 (Ctrl+U)" tabindex="-1" data-provider="bootstrap-markdown" data-handler="bootstrap-markdown-cmdList" data-hotkey="Ctrl+U"><i class="icon list"></i></button><button type="button" title="有序列表 (Ctrl+O)" tabindex="-1" data-provider="bootstrap-markdown" data-handler="bootstrap-markdown-cmdListO" data-hotkey="Ctrl+O"><i class="icon list ol"></i></button><button type="button" title="Table" tabindex="-1" data-provider="bootstrap-markdown" data-handler="bootstrap-markdown-cmdTable" data-hotkey=""><i class="icon table"></i></button><button type="button" title="代码 (Ctrl+K)" tabindex="-1" data-provider="bootstrap-markdown" data-handler="bootstrap-markdown-cmdCode" data-hotkey="Ctrl+K"><i class="icon code"></i></button><button type="button" title="引用 (Ctrl+Q)" tabindex="-1" data-provider="bootstrap-markdown" data-handler="bootstrap-markdown-cmdQuote" data-hotkey="Ctrl+Q"><i class="icon quote left"></i></button></div><div class="btn-group"><button type="button" title="预览 (Ctrl+P)" tabindex="-1" data-provider="bootstrap-markdown" data-handler="bootstrap-markdown-cmdPreview" data-hotkey="Ctrl+P" data-toggle="button"><i class="iconfont icon-watch"></i></button></div><div class="btn-group"><button type="button" title="Help (Ctrl+/)" tabindex="-1" data-provider="bootstrap-markdown" data-handler="bootstrap-markdown-cmdHelp" data-hotkey="Ctrl+/" data-always="yes"><i class="icon question circle"></i></button></div><div class="md-controls"><span class="md-control md-control-fullscreen"><i class="icon expand"></i></span></div></div><textarea id="js-md-editor" class="md-input" rows="5" style="max-height: 100%; resize: none; overflow: hidden; overflow-wrap: break-word; height: 728px;"></textarea><div class="md-full-preview"><div class="md-full-preview-body markdown-body"><div class="md-full-preview-inner"></div></div><div class="md-full-preview-tool"></div></div> <div class="md-fullscreen-controls"> <a href="https://gitee.com/inandout/springcloud1/new/master?readme=true#" class="exit-fullscreen" title="Exit fullscreen"><i class="icon compress"></i></a> </div><div class="md-cut-paste" contenteditable="true"></div></div>
<div class="ui active inline loader small" style="float:right;margin-top:-72px;margin-right:24px;display:none;font-size:14px;"></div></div>
<div class="field blob-form__monaco-editor">
<div class="ui inverted dimmer" id="js-editor-loader">
<div class="ui text loader">
正在加载编辑器...
</div>
</div>
<div class="monaco-editor-container" id="js-editor-container"></div>
</div>
<div class="field blob-form__commit">
<div class="field commit-message-container">
<label for="commit_message"><span class="text required-icon">提交信息</span>
<i class="iconfont icon-help-circle text-green js-popup"></i>
<div class="ui popup">
<a target="blank" href="https://gitee.com/help/articles/4231">了解更多:Git Commit Message 编写指南</a>
</div>
</label><div class="ui input">
<input type="text" name="commit_message_header" id="commit_message_header" placeholder="必填,描述主要修改类型和内容。(相当于 Git Commit message 的 Header)">
</div>
</div>
<div class="field commit_message-group">
<label for="extended_information">扩展信息
</label><textarea name="extended_information" id="extended_information" placeholder="此处可填写为什么修改,做了什么样的修改,以及开发的思路等更加详细的提交信息。(相当于 Git Commit message 的 Body)" rows="2"></textarea>
</div>
<div class="field commit-branch">
<label for="branch_name">目标分支
</label><input type="text" name="branch_name" id="branch_name" value="master" placeholder="指定将此次更改提交到哪个分支">
</div>
</div>
<div class="field blob-form__actions">
<input type="hidden" name="file_path" id="file_path" value="README.md">
<input type="hidden" name="content" id="js-blob-content" value="# springcloud1
#### 介绍
第五阶段
#### 软件架构
软件架构说明
#### 安装教程
1. xxxx
2. xxxx
3. xxxx
#### 使用说明
1. xxxx
2. xxxx
3. xxxx
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
">
<button name="button" type="submit" id="js-commit-button" class="ui large submit orange button mr-2">提交</button>
<a class="btn-cancel" data-confirm="内容尚未保存,取消将会丢失,确认取消?" href="https://gitee.com/inandout/springcloud1/blob/master">取消</a>
<div class="ui error message"><ul class="list"><li>文件内容未更改</li></ul></div>
</div>
</div>
<div class="clearfix"></div>
</div>
<script src="./springcloud1Gitee.com_files/editor-c8129e79af73f1f9e14e5aa90cadf1b1.js"></script>
<script src="./springcloud1Gitee.com_files/loader.js"></script>
</form>
<script>
Gitee.initBlobForm({
type: "markdown",
locale: 'zh-cn',
content: "# springcloud1\n\n#### 介绍\n第五阶段\n\n#### 软件架构\n软件架构说明\n\n\n#### 安装教程\n\n1. xxxx\n2. xxxx\n3. xxxx\n\n#### 使用说明\n\n1. xxxx\n2. xxxx\n3. xxxx\n\n#### 参与贡献\n\n1. Fork 本仓库\n2. 新建 Feat_xxx 分支\n3. 提交代码\n4. 新建 Pull Request\n\n\n#### 特技\n\n1. 使用 Readme\\_XXX.md 来支持不同的语言,例如 Readme\\_en.md, Readme\\_zh.md\n2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)\n3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目\n4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目\n5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)\n6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)\n",
checkLicensePath: '/inandout/springcloud1/check_license',
message: {
notChange: '文件内容未更改'
},
form: {
on: 'blur',
fields: {
file_name: {
identifier: 'file_name',
rules: [
{
type: 'empty',
prompt: '文件名不能为空'
}
]
},
commit_message_header: {
identifier: 'commit_message_header',
rules: [
{
type: 'empty',
prompt: '提交信息不能为空'
},
{
type: 'maxLength[100]',
prompt: '提交信息长度不应该超过 100 个字符,请尽可能简单的描述此次改动'
}
]
}
}
},
license: '',
action: 'new'
});
</script>
</div>
<script>
(function() {
var donateModal;
Gitee.modalHelper = new GiteeModalHelper({
alertText: '提示',
okText: '确定'
});
donateModal = new ProjectDonateModal({
el: '#project-donate-modal',
alipayUrl: '/inandout/springcloud1/alipay',
wepayUrl: '/inandout/springcloud1/wepay',
nameIsBlank: '名称不能为空',
nameTooLong: '名称过长(最多为 36 个字符)',
modalHelper: Gitee.modalHelper
});
if (null === 'true') {
donateModal.show();
}
$('#project-donate').on('click', function() {
return donateModal.show();
});
}).call(this);
</script>
<script>
Tree.initHighlightTheme('white')
</script>
</div><div class="ui dimmer modals page"><div class="ui mini modal" id="confirm-alipay-modal">
<div class="header">支付提示</div>
<div class="content">
将跳转至支付宝完成支付
</div>
<div class="actions">
<div class="ui approve orange button">确定</div>
<div class="ui blank cancel button">取消</div>
</div>
</div><div class="ui tiny modal project-donate-modal" id="project-donate-modal">
<i class="iconfont icon-close close"></i>
<div class="header">捐赠</div>
<div class="content">
未开启捐赠功能,开启捐赠功能需要绑定 OSCHINA 帐号
</div>
<div class="actions">
<a class="ui blank button cancel">取消</a>
<a class="ui orange ok button" href="https://gitee.com/profile/account_information" target="_blank">马上绑定</a>
</div>
</div><div class="ui small modal long" id="modal-fork-project">
<i class="icon-close iconfont close"></i>
<div class="header">
Fork 仓库
</div>
<div class="content fork-project-content">
<div class="fork-info-content">
<div class="ui segment fork_project_loader">
<div class="ui active inverted dimmer">
<div class="ui text loader">加载中</div>
</div>
</div>
</div>
</div>
<div class="actions fork-action d-flex-between hide">
<div>
</div>
<div>
<a class="cancel"> 取消 </a>
<div class="ui disabled button orange ok"> 确认 </div>
</div>
</div>
</div><div id="1" class="ui tiny modal md-file-upload-modal"><div class="header">UploadFile</div><div class="content"><div class="md-files-dropzone"><div class="dropzone-message"><input type="file" name="file" multiple="multiple"><img src="./springcloud1Gitee.com_files/upload-file.svg" height="64"><p>FileDragTip</p></div><div class="ui relaxed list files"></div></div></div><div class="actions"><div class="ui blank cancel button">取消</div><div class="ui orange approve button">插入</div></div></div></div>
<div class="gitee-project-extension">
<div class="extension public">1</div>
<div class="extension https">https://gitee.com/inandout/springcloud1.git</div>
<div class="extension ssh">git@gitee.com:inandout/springcloud1.git</div>
<div class="extension namespace">inandout</div>
<div class="extension repo">springcloud1</div>
<div class="extension name">springcloud1</div>
<div class="extension branch">master</div>
</div>
<script>
$(function() {
GitLab.GfmAutoComplete.dataSource = "/inandout/springcloud1/autocomplete_sources"
GitLab.GfmAutoComplete.Emoji.assetBase = '/assets/emoji'
GitLab.GfmAutoComplete.setup();
});
</script>
<footer id="git-footer-main">
<div class="ui container">
<div class="logo-row">
<a href="https://gitee.com/"><img alt="Gitee — 基于 Git 的代码托管和研发协作平台" class="logo-img" src="./springcloud1Gitee.com_files/logo-black(1).svg">
</a></div>
<div class="name-important">
深圳市奥思网络科技有限公司版权所有
</div>
<div class="ui two column grid d-flex-center">
<div class="nine wide column git-footer-left">
<div class="ui four column grid" id="footer-left">
<div class="column">
<div class="ui link list">
<div class="item">
<a class="item" href="https://gitee.com/all-about-git">Git 大全</a>
</div>
<div class="item">
<a class="item" rel="nofollow" href="https://oschina.gitee.io/learn-git-branching/">Git 命令学习</a>
</div>
<div class="item">
<a class="item" rel="nofollow" href="https://copycat.gitee.com/">CopyCat 代码克隆检测</a>
</div>
<div class="item">
<a class="item" href="https://gitee.com/appclient">APP与插件下载</a>
</div>
</div>
</div>
<div class="column">
<div class="ui link list">
<div class="item">
<a class="item" href="https://gitee.com/gitee_reward">Gitee Reward</a>
</div>
<div class="item">
<a class="item" href="https://gitee.com/gitee-stars">Gitee 封面人物</a>
</div>
<div class="item">
<a class="item" href="https://gitee.com/gvp">GVP 项目</a>
</div>
<div class="item">
<a class="item" rel="nofollow" href="https://blog.gitee.com/">Gitee 博客</a>
</div>
<div class="item">
<a class="item" href="https://gitee.com/enterprises#nonprofit-plan">Gitee 公益计划</a>
</div>
</div>
</div>
<div class="column">
<div class="ui link list">
<div class="item">
<a class="item" href="https://gitee.com/api/v5/swagger">OpenAPI</a>
</div>
<div class="item">
<a class="item" href="https://gitee.com/help">帮助文档</a>
</div>
<div class="item">
<a class="item" href="https://gitee.com/self_services">在线自助服务</a>
</div>
<div class="item">
<a class="item" href="https://gitee.com/help/articles/4378">更新日志</a>
</div>
</div>
</div>
<div class="column">
<div class="ui link list">
<div class="item">
<a class="item" href="https://gitee.com/about_us">关于我们</a>
</div>
<div class="item">
<a class="item" rel="nofollow" href="https://www.oschina.net/news/131099/oschina-hiring">加入我们</a>
</div>
<div class="item">
<a class="item" href="https://gitee.com/terms">使用条款</a>
</div>
<div class="item">
<a class="item" href="https://gitee.com/oschina/git-osc/issues">意见建议</a>
</div>
<div class="item">
<a class="item" href="https://gitee.com/links.html">合作伙伴</a>
</div>
</div>
</div>
</div>
</div>
<div class="seven wide column right aligned followus git-footer-right">
<div class="qrcode mini_app">
<img alt="微信小程序" src="./springcloud1Gitee.com_files/mini_app-e5eee5a21c552b69ae6bf2cf87406b59.jpg">
<p class="mini_app-text">微信小程序</p>
</div>
<div class="qrcode weixin">
<img alt="微信服务号" src="./springcloud1Gitee.com_files/qrcode-weixin-9e7cfb27165143d2b8e8b268a52ea822.jpg">
<p class="weixin-text">微信服务号</p>
</div>
<div class="phone-and-qq column">
<div class="ui list official-support-container">
<div class="item">
<a class="icon-popup" title="点击加入 Gitee 官方群" rel="nofollow" href="https://qm.qq.com/cgi-bin/qm/qr?k=OUfztMuf7jElTIf78lMuNT_D_lZYOWnd"><i class="iconfont icon-logo-qq"></i>
<span>官方技术交流QQ群:515965326</span>
</a></div>
<div class="item mail-and-zhihu">
<a rel="nofollow" href="mailto:%20git@oschina.cn"><i class="iconfont icon-msg-mail"></i>
<span id="git-footer-email">git@oschina.cn</span>
</a></div>
<div class="item mail-and-zhihu">
<a target="_blank" rel="nofollow" href="https://www.zhihu.com/org/ma-yun-osc/"><i class="iconfont icon-zhihu"></i>
<span>Gitee</span>
</a></div>
<div class="item tel">
<a>
<i class="iconfont icon-tel"></i>
<span>售前及售后使用咨询:400-606-0201</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="bottombar">
<div class="ui container">
<div class="ui d-flex d-flex-between">
<div class="seven wide column partner d-flex">
<div class="open-atom d-flex-center">
<img class="logo-openatom mr-1" alt="开放原子开源基金会" src="./springcloud1Gitee.com_files/logo-openatom-d083391cc8a54e283529f3fc11cc38ca.svg">
<a target="_blank" rel="nofollow" href="https://www.openatom.org/">开放原子开源基金会</a>
<div class="sub-title ml-1">合作代码托管平台</div>
</div>
<div class="report-12377 d-flex-center ml-3">
<img class="report-12377__logo mr-1" alt="违法和不良信息举报中心" src="./springcloud1Gitee.com_files/12377@2x-1aa42ed2d2256f82a61ecf57be1ec244.png">
<a target="_blank" rel="nofollow" href="https://12377.cn/">违法和不良信息举报中心</a>
</div>
<div class="copyright ml-3">
<a rel="nofollow" href="http://beian.miit.gov.cn/">粤ICP备12009483号</a>
</div>
</div>
<div class="nine wide column right aligned">
<i class="icon world"></i>
<a href="https://gitee.com/language/zh-CN">简 体</a>
/
<a href="https://gitee.com/language/zh-TW">繁 體</a>
/
<a href="https://gitee.com/language/en">English</a>
</div>
</div>
</div>
</div>
</footer>
<script>
var officialEmail = $('#git-footer-email').text()
$('#git-footer-main .icon-popup').popup({ position: 'bottom center' })
$('#git-footer-email').text(officialEmail.replace('#', '@'))
window.gon.popover_card_locale = {
follow:"关注",
unfollow:"已关注",
gvp_title: "GVP - Gitee 最有价值开源项目",
project: "项目",
org: "开源组织",
member: "",
author: "作者",
user_blocked: "该用户已被屏蔽或已注销",
net_error: "网络错误",
unknown_exception: "未知异常"
}
window.gon.select_message = {
placeholder: "请输入个人空间地址或完整的邮箱地址"
}
</script>
<script src="./springcloud1Gitee.com_files/popover_card-f39945758963ad1d01cc.bundle.js"></script>
<link rel="stylesheet" media="all" href="./springcloud1Gitee.com_files/gitee_nps-69491f94919350b0258c.css">
<script src="./springcloud1Gitee.com_files/gitee_nps-fc17df2911a31f92e96f.bundle.js"></script>
<div class="side-toolbar">
<div class="button toolbar-help">
<i class="iconfont icon-help"></i>
</div>
<div class="ui popup left center dark">点此查找更多帮助</div>
<div class="toolbar-help-dialog">
<div class="toolbar-dialog-header">
<h3 class="toolbar-dialog-title">搜索帮助</h3>
<form class="toolbar-help-search-form" action="https://gitee.com/help/load_keywords_data" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓">
<div class="ui icon input fluid toolbar-help-search">
<input name="keywords" placeholder="请输入产品名称或问题" type="text">
<i class="icon search"></i>
</div>
</form>
<i class="iconfont icon-close toolbar-dialog-close-icon"></i>
</div>
<div class="toolbar-dialog-content">
<div class="toolbar-help-hot-search">
<div class="toolbar-roll">
<a class="" title="Git 命令在线学习" href="https://oschina.gitee.io/learn-git-branching/?utm_source==gitee-help-widget"><i class="Blue icon icon-command iconfont"></i>
<span>Git 命令在线学习</span>
</a><a class="active" title="如何在 Gitee 导入 GitHub 仓库" href="https://gitee.com/help/articles/4261?utm_source==gitee-help-widget"><i class="icon icon-clipboard iconfont orange"></i>
<span>如何在 Gitee 导入 GitHub 仓库</span>
</a></div>
<div class="toolbar-list">
<div class="toolbar-list-item">
<a href="https://gitee.com/help/articles/4114">Git 仓库基础操作</a>
</div>
<div class="toolbar-list-item">
<a href="https://gitee.com/help/articles/4166">企业版和社区版功能对比</a>
</div>
<div class="toolbar-list-item">
<a href="https://gitee.com/help/articles/4191">SSH 公钥设置</a>
</div>
<div class="toolbar-list-item">
<a href="https://gitee.com/help/articles/4194">如何处理代码冲突</a>
</div>
<div class="toolbar-list-item">
<a href="https://gitee.com/help/articles/4232">仓库体积过大,如何减小?</a>
</div>
<div class="toolbar-list-item">
<a href="https://gitee.com/help/articles/4279">如何找回被删除的仓库数据</a>
</div>
<div class="toolbar-list-item">
<a href="https://gitee.com/help/articles/4283">Gitee 产品配额说明</a>
</div>
<div class="toolbar-list-item">
<a href="https://gitee.com/help/articles/4284">GitHub仓库快速导入Gitee及同步更新</a>
</div>
<div class="toolbar-list-item">
<a href="https://gitee.com/help/articles/4328">什么是 Release(发行版)</a>
</div>
<div class="toolbar-list-item">
<a href="https://gitee.com/help/articles/4354">将 PHP 项目自动发布到 packagist.org</a>
</div>
</div>
</div>
<div class="toolbar-help-search-reseult">
<div class="toolbar-help-flex-column">
<div class="ui centered inline loader toolbar-help-loader"></div>
<div class="toolbar-list"></div>
<div class="toolbar-help-link-to-help">
<a target="_blank" href="https://gitee.com/inandout/springcloud1/new/master?readme=true">查看更多搜索结果</a>
</div>
</div>
</div>
</div>
</div>
<script>
var opt = { position: 'left center'};
var $helpSideToolbar = $('.button.toolbar-help');
var $toolbarRoll = $('.toolbar-roll');
$(function() {
if (true) {
$helpSideToolbar.popup(opt).popup({lastResort:'left center'})
} else {
$helpSideToolbar.popup({lastResort:'left center'}).popup('show', opt);
setTimeout(function() {
$helpSideToolbar.popup('hide', opt);
}, 3000);
}
if ($toolbarRoll.length) {
setInterval(function() {
var $nextActiveLink = $toolbarRoll.find('a.active').next();
if (!$nextActiveLink.length) {
$nextActiveLink = $toolbarRoll.find('a:first-child');
}
$nextActiveLink.attr('class', 'active').siblings().removeClass('active init');
}, 5000);
}
})
</script>
<div class="ui popup dark left center transition hidden js-feedback-popup">发送反馈</div>
<div class="button" id="feedback-btn">
<i class="iconfont icon-feedback"></i>
</div>
<div class="popup button" id="home-comment">
<i class="iconfont icon-comment"></i>
</div>
<div class="ui popup dark">评论</div>
<div class="button gotop popup active" id="gotop">
<i class="iconfont icon-top"></i>
</div>
<div class="ui popup dark">回到顶部</div>
</div>
<style>
.side-toolbar .bdsharebuttonbox a {
font-size: 24px;
color: white !important;
opacity: 0.9;
margin: 6px 6px 0px 6px;
background-image: none;
text-indent: 0;
height: auto;
width: auto;
}
</style>
<style>
#udesk_btn a {
margin: 0px 20px 217px 0px !important;
}
</style>
<script>
(function() {
$('#project-user-message').popup({
position: 'left center'
});
}).call(this);
</script>
<script>
Gitee.initSideToolbar({
hasComment: true,
commentUrl: '/inandout/springcloud1#tree_comm_title'
})
</script>
<link rel="stylesheet" media="all" href="./springcloud1Gitee.com_files/side_toolbar_feedback-7e09f46182ec5f6f4e00.css">
<script src="./springcloud1Gitee.com_files/side_toolbar_feedback-a7e4fb843b378eb1c477.bundle.js"></script>
<script>
(function() {
this.__gac = {
domain: 'www.oschina.net'
};
}).call(this);
</script>
<script src="./springcloud1Gitee.com_files/build_status-6c80de070289f47ed94e.bundle.js"></script>
<div class="star-collection-popup d-none" style="display: none;">
<div class="star-collection-popup__header d-flex-between">
<div class="star-collection-popup__header__left">已成功 Star,添加到以下星选集:</div>
<div class="star-collection-popup__header__right"><i class="iconfont icon-close js-close-popup cursor-pointer hover-color"></i></div>
</div>
<div class="star-collection-popup__body">
<div class="blank-message d-none">点击下方新建星选集</div>
<div class="star-collection-popup__search ui input small icon">
<input type="text" class="js-star-collection-search" placeholder="快速搜索">
<i class="iconfont icon-search"></i>
</div>
<div class="star-collection-popup__scroll">
<div class="star-collection-popup__list js-star-collection-popup__list">
</div>
</div>
</div>
<div class="star-collection-popup__footer js-star-collection-popup__footer">
<div class="star-collection-popup__footer--normal js-new-star-collection-btn cursor-pointer hover-color">新建星选集</div>
<div class="star-collection-popup__footer--new d-flex-between">
<input class="star-collection-popup__footer__new-input js-star-collection-popup__footer__new-input" maxlength="35" type="text" placeholder="请输入星选集名称">
<div class="star-collection-popup__footer__add-btn js-star-collection-popup__footer__add-btn cursor-pointer hover-color disabled">新建</div>
</div>
</div>
</div><div class="feedback-screenshot-tip">按下并拖动鼠标开始截图</div><div></div></body></html>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/inandout/springcloud1.git
git@gitee.com:inandout/springcloud1.git
inandout
springcloud1
springcloud1
master

搜索帮助