Report.html 337 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258
  1. <!DOCTYPE html>
  2. <html>
  3. <head><meta charset="utf-8" />
  4. <title>Report</title>
  5. <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
  6. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
  7. <style type="text/css">
  8. /*!
  9. *
  10. * Twitter Bootstrap
  11. *
  12. */
  13. /*!
  14. * Bootstrap v3.3.6 (http://getbootstrap.com)
  15. * Copyright 2011-2015 Twitter, Inc.
  16. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  17. */
  18. /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
  19. html {
  20. font-family: sans-serif;
  21. -ms-text-size-adjust: 100%;
  22. -webkit-text-size-adjust: 100%;
  23. }
  24. body {
  25. margin: 0;
  26. }
  27. article,
  28. aside,
  29. details,
  30. figcaption,
  31. figure,
  32. footer,
  33. header,
  34. hgroup,
  35. main,
  36. menu,
  37. nav,
  38. section,
  39. summary {
  40. display: block;
  41. }
  42. audio,
  43. canvas,
  44. progress,
  45. video {
  46. display: inline-block;
  47. vertical-align: baseline;
  48. }
  49. audio:not([controls]) {
  50. display: none;
  51. height: 0;
  52. }
  53. [hidden],
  54. template {
  55. display: none;
  56. }
  57. a {
  58. background-color: transparent;
  59. }
  60. a:active,
  61. a:hover {
  62. outline: 0;
  63. }
  64. abbr[title] {
  65. border-bottom: 1px dotted;
  66. }
  67. b,
  68. strong {
  69. font-weight: bold;
  70. }
  71. dfn {
  72. font-style: italic;
  73. }
  74. h1 {
  75. font-size: 2em;
  76. margin: 0.67em 0;
  77. }
  78. mark {
  79. background: #ff0;
  80. color: #000;
  81. }
  82. small {
  83. font-size: 80%;
  84. }
  85. sub,
  86. sup {
  87. font-size: 75%;
  88. line-height: 0;
  89. position: relative;
  90. vertical-align: baseline;
  91. }
  92. sup {
  93. top: -0.5em;
  94. }
  95. sub {
  96. bottom: -0.25em;
  97. }
  98. img {
  99. border: 0;
  100. }
  101. svg:not(:root) {
  102. overflow: hidden;
  103. }
  104. figure {
  105. margin: 1em 40px;
  106. }
  107. hr {
  108. box-sizing: content-box;
  109. height: 0;
  110. }
  111. pre {
  112. overflow: auto;
  113. }
  114. code,
  115. kbd,
  116. pre,
  117. samp {
  118. font-family: monospace, monospace;
  119. font-size: 1em;
  120. }
  121. button,
  122. input,
  123. optgroup,
  124. select,
  125. textarea {
  126. color: inherit;
  127. font: inherit;
  128. margin: 0;
  129. }
  130. button {
  131. overflow: visible;
  132. }
  133. button,
  134. select {
  135. text-transform: none;
  136. }
  137. button,
  138. html input[type="button"],
  139. input[type="reset"],
  140. input[type="submit"] {
  141. -webkit-appearance: button;
  142. cursor: pointer;
  143. }
  144. button[disabled],
  145. html input[disabled] {
  146. cursor: default;
  147. }
  148. button::-moz-focus-inner,
  149. input::-moz-focus-inner {
  150. border: 0;
  151. padding: 0;
  152. }
  153. input {
  154. line-height: normal;
  155. }
  156. input[type="checkbox"],
  157. input[type="radio"] {
  158. box-sizing: border-box;
  159. padding: 0;
  160. }
  161. input[type="number"]::-webkit-inner-spin-button,
  162. input[type="number"]::-webkit-outer-spin-button {
  163. height: auto;
  164. }
  165. input[type="search"] {
  166. -webkit-appearance: textfield;
  167. box-sizing: content-box;
  168. }
  169. input[type="search"]::-webkit-search-cancel-button,
  170. input[type="search"]::-webkit-search-decoration {
  171. -webkit-appearance: none;
  172. }
  173. fieldset {
  174. border: 1px solid #c0c0c0;
  175. margin: 0 2px;
  176. padding: 0.35em 0.625em 0.75em;
  177. }
  178. legend {
  179. border: 0;
  180. padding: 0;
  181. }
  182. textarea {
  183. overflow: auto;
  184. }
  185. optgroup {
  186. font-weight: bold;
  187. }
  188. table {
  189. border-collapse: collapse;
  190. border-spacing: 0;
  191. }
  192. td,
  193. th {
  194. padding: 0;
  195. }
  196. /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
  197. @media print {
  198. *,
  199. *:before,
  200. *:after {
  201. background: transparent !important;
  202. color: #000 !important;
  203. box-shadow: none !important;
  204. text-shadow: none !important;
  205. }
  206. a,
  207. a:visited {
  208. text-decoration: underline;
  209. }
  210. a[href]:after {
  211. content: " (" attr(href) ")";
  212. }
  213. abbr[title]:after {
  214. content: " (" attr(title) ")";
  215. }
  216. a[href^="#"]:after,
  217. a[href^="javascript:"]:after {
  218. content: "";
  219. }
  220. pre,
  221. blockquote {
  222. border: 1px solid #999;
  223. page-break-inside: avoid;
  224. }
  225. thead {
  226. display: table-header-group;
  227. }
  228. tr,
  229. img {
  230. page-break-inside: avoid;
  231. }
  232. img {
  233. max-width: 100% !important;
  234. }
  235. p,
  236. h2,
  237. h3 {
  238. orphans: 3;
  239. widows: 3;
  240. }
  241. h2,
  242. h3 {
  243. page-break-after: avoid;
  244. }
  245. .navbar {
  246. display: none;
  247. }
  248. .btn > .caret,
  249. .dropup > .btn > .caret {
  250. border-top-color: #000 !important;
  251. }
  252. .label {
  253. border: 1px solid #000;
  254. }
  255. .table {
  256. border-collapse: collapse !important;
  257. }
  258. .table td,
  259. .table th {
  260. background-color: #fff !important;
  261. }
  262. .table-bordered th,
  263. .table-bordered td {
  264. border: 1px solid #ddd !important;
  265. }
  266. }
  267. @font-face {
  268. font-family: 'Glyphicons Halflings';
  269. src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
  270. src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
  271. }
  272. .glyphicon {
  273. position: relative;
  274. top: 1px;
  275. display: inline-block;
  276. font-family: 'Glyphicons Halflings';
  277. font-style: normal;
  278. font-weight: normal;
  279. line-height: 1;
  280. -webkit-font-smoothing: antialiased;
  281. -moz-osx-font-smoothing: grayscale;
  282. }
  283. .glyphicon-asterisk:before {
  284. content: "\002a";
  285. }
  286. .glyphicon-plus:before {
  287. content: "\002b";
  288. }
  289. .glyphicon-euro:before,
  290. .glyphicon-eur:before {
  291. content: "\20ac";
  292. }
  293. .glyphicon-minus:before {
  294. content: "\2212";
  295. }
  296. .glyphicon-cloud:before {
  297. content: "\2601";
  298. }
  299. .glyphicon-envelope:before {
  300. content: "\2709";
  301. }
  302. .glyphicon-pencil:before {
  303. content: "\270f";
  304. }
  305. .glyphicon-glass:before {
  306. content: "\e001";
  307. }
  308. .glyphicon-music:before {
  309. content: "\e002";
  310. }
  311. .glyphicon-search:before {
  312. content: "\e003";
  313. }
  314. .glyphicon-heart:before {
  315. content: "\e005";
  316. }
  317. .glyphicon-star:before {
  318. content: "\e006";
  319. }
  320. .glyphicon-star-empty:before {
  321. content: "\e007";
  322. }
  323. .glyphicon-user:before {
  324. content: "\e008";
  325. }
  326. .glyphicon-film:before {
  327. content: "\e009";
  328. }
  329. .glyphicon-th-large:before {
  330. content: "\e010";
  331. }
  332. .glyphicon-th:before {
  333. content: "\e011";
  334. }
  335. .glyphicon-th-list:before {
  336. content: "\e012";
  337. }
  338. .glyphicon-ok:before {
  339. content: "\e013";
  340. }
  341. .glyphicon-remove:before {
  342. content: "\e014";
  343. }
  344. .glyphicon-zoom-in:before {
  345. content: "\e015";
  346. }
  347. .glyphicon-zoom-out:before {
  348. content: "\e016";
  349. }
  350. .glyphicon-off:before {
  351. content: "\e017";
  352. }
  353. .glyphicon-signal:before {
  354. content: "\e018";
  355. }
  356. .glyphicon-cog:before {
  357. content: "\e019";
  358. }
  359. .glyphicon-trash:before {
  360. content: "\e020";
  361. }
  362. .glyphicon-home:before {
  363. content: "\e021";
  364. }
  365. .glyphicon-file:before {
  366. content: "\e022";
  367. }
  368. .glyphicon-time:before {
  369. content: "\e023";
  370. }
  371. .glyphicon-road:before {
  372. content: "\e024";
  373. }
  374. .glyphicon-download-alt:before {
  375. content: "\e025";
  376. }
  377. .glyphicon-download:before {
  378. content: "\e026";
  379. }
  380. .glyphicon-upload:before {
  381. content: "\e027";
  382. }
  383. .glyphicon-inbox:before {
  384. content: "\e028";
  385. }
  386. .glyphicon-play-circle:before {
  387. content: "\e029";
  388. }
  389. .glyphicon-repeat:before {
  390. content: "\e030";
  391. }
  392. .glyphicon-refresh:before {
  393. content: "\e031";
  394. }
  395. .glyphicon-list-alt:before {
  396. content: "\e032";
  397. }
  398. .glyphicon-lock:before {
  399. content: "\e033";
  400. }
  401. .glyphicon-flag:before {
  402. content: "\e034";
  403. }
  404. .glyphicon-headphones:before {
  405. content: "\e035";
  406. }
  407. .glyphicon-volume-off:before {
  408. content: "\e036";
  409. }
  410. .glyphicon-volume-down:before {
  411. content: "\e037";
  412. }
  413. .glyphicon-volume-up:before {
  414. content: "\e038";
  415. }
  416. .glyphicon-qrcode:before {
  417. content: "\e039";
  418. }
  419. .glyphicon-barcode:before {
  420. content: "\e040";
  421. }
  422. .glyphicon-tag:before {
  423. content: "\e041";
  424. }
  425. .glyphicon-tags:before {
  426. content: "\e042";
  427. }
  428. .glyphicon-book:before {
  429. content: "\e043";
  430. }
  431. .glyphicon-bookmark:before {
  432. content: "\e044";
  433. }
  434. .glyphicon-print:before {
  435. content: "\e045";
  436. }
  437. .glyphicon-camera:before {
  438. content: "\e046";
  439. }
  440. .glyphicon-font:before {
  441. content: "\e047";
  442. }
  443. .glyphicon-bold:before {
  444. content: "\e048";
  445. }
  446. .glyphicon-italic:before {
  447. content: "\e049";
  448. }
  449. .glyphicon-text-height:before {
  450. content: "\e050";
  451. }
  452. .glyphicon-text-width:before {
  453. content: "\e051";
  454. }
  455. .glyphicon-align-left:before {
  456. content: "\e052";
  457. }
  458. .glyphicon-align-center:before {
  459. content: "\e053";
  460. }
  461. .glyphicon-align-right:before {
  462. content: "\e054";
  463. }
  464. .glyphicon-align-justify:before {
  465. content: "\e055";
  466. }
  467. .glyphicon-list:before {
  468. content: "\e056";
  469. }
  470. .glyphicon-indent-left:before {
  471. content: "\e057";
  472. }
  473. .glyphicon-indent-right:before {
  474. content: "\e058";
  475. }
  476. .glyphicon-facetime-video:before {
  477. content: "\e059";
  478. }
  479. .glyphicon-picture:before {
  480. content: "\e060";
  481. }
  482. .glyphicon-map-marker:before {
  483. content: "\e062";
  484. }
  485. .glyphicon-adjust:before {
  486. content: "\e063";
  487. }
  488. .glyphicon-tint:before {
  489. content: "\e064";
  490. }
  491. .glyphicon-edit:before {
  492. content: "\e065";
  493. }
  494. .glyphicon-share:before {
  495. content: "\e066";
  496. }
  497. .glyphicon-check:before {
  498. content: "\e067";
  499. }
  500. .glyphicon-move:before {
  501. content: "\e068";
  502. }
  503. .glyphicon-step-backward:before {
  504. content: "\e069";
  505. }
  506. .glyphicon-fast-backward:before {
  507. content: "\e070";
  508. }
  509. .glyphicon-backward:before {
  510. content: "\e071";
  511. }
  512. .glyphicon-play:before {
  513. content: "\e072";
  514. }
  515. .glyphicon-pause:before {
  516. content: "\e073";
  517. }
  518. .glyphicon-stop:before {
  519. content: "\e074";
  520. }
  521. .glyphicon-forward:before {
  522. content: "\e075";
  523. }
  524. .glyphicon-fast-forward:before {
  525. content: "\e076";
  526. }
  527. .glyphicon-step-forward:before {
  528. content: "\e077";
  529. }
  530. .glyphicon-eject:before {
  531. content: "\e078";
  532. }
  533. .glyphicon-chevron-left:before {
  534. content: "\e079";
  535. }
  536. .glyphicon-chevron-right:before {
  537. content: "\e080";
  538. }
  539. .glyphicon-plus-sign:before {
  540. content: "\e081";
  541. }
  542. .glyphicon-minus-sign:before {
  543. content: "\e082";
  544. }
  545. .glyphicon-remove-sign:before {
  546. content: "\e083";
  547. }
  548. .glyphicon-ok-sign:before {
  549. content: "\e084";
  550. }
  551. .glyphicon-question-sign:before {
  552. content: "\e085";
  553. }
  554. .glyphicon-info-sign:before {
  555. content: "\e086";
  556. }
  557. .glyphicon-screenshot:before {
  558. content: "\e087";
  559. }
  560. .glyphicon-remove-circle:before {
  561. content: "\e088";
  562. }
  563. .glyphicon-ok-circle:before {
  564. content: "\e089";
  565. }
  566. .glyphicon-ban-circle:before {
  567. content: "\e090";
  568. }
  569. .glyphicon-arrow-left:before {
  570. content: "\e091";
  571. }
  572. .glyphicon-arrow-right:before {
  573. content: "\e092";
  574. }
  575. .glyphicon-arrow-up:before {
  576. content: "\e093";
  577. }
  578. .glyphicon-arrow-down:before {
  579. content: "\e094";
  580. }
  581. .glyphicon-share-alt:before {
  582. content: "\e095";
  583. }
  584. .glyphicon-resize-full:before {
  585. content: "\e096";
  586. }
  587. .glyphicon-resize-small:before {
  588. content: "\e097";
  589. }
  590. .glyphicon-exclamation-sign:before {
  591. content: "\e101";
  592. }
  593. .glyphicon-gift:before {
  594. content: "\e102";
  595. }
  596. .glyphicon-leaf:before {
  597. content: "\e103";
  598. }
  599. .glyphicon-fire:before {
  600. content: "\e104";
  601. }
  602. .glyphicon-eye-open:before {
  603. content: "\e105";
  604. }
  605. .glyphicon-eye-close:before {
  606. content: "\e106";
  607. }
  608. .glyphicon-warning-sign:before {
  609. content: "\e107";
  610. }
  611. .glyphicon-plane:before {
  612. content: "\e108";
  613. }
  614. .glyphicon-calendar:before {
  615. content: "\e109";
  616. }
  617. .glyphicon-random:before {
  618. content: "\e110";
  619. }
  620. .glyphicon-comment:before {
  621. content: "\e111";
  622. }
  623. .glyphicon-magnet:before {
  624. content: "\e112";
  625. }
  626. .glyphicon-chevron-up:before {
  627. content: "\e113";
  628. }
  629. .glyphicon-chevron-down:before {
  630. content: "\e114";
  631. }
  632. .glyphicon-retweet:before {
  633. content: "\e115";
  634. }
  635. .glyphicon-shopping-cart:before {
  636. content: "\e116";
  637. }
  638. .glyphicon-folder-close:before {
  639. content: "\e117";
  640. }
  641. .glyphicon-folder-open:before {
  642. content: "\e118";
  643. }
  644. .glyphicon-resize-vertical:before {
  645. content: "\e119";
  646. }
  647. .glyphicon-resize-horizontal:before {
  648. content: "\e120";
  649. }
  650. .glyphicon-hdd:before {
  651. content: "\e121";
  652. }
  653. .glyphicon-bullhorn:before {
  654. content: "\e122";
  655. }
  656. .glyphicon-bell:before {
  657. content: "\e123";
  658. }
  659. .glyphicon-certificate:before {
  660. content: "\e124";
  661. }
  662. .glyphicon-thumbs-up:before {
  663. content: "\e125";
  664. }
  665. .glyphicon-thumbs-down:before {
  666. content: "\e126";
  667. }
  668. .glyphicon-hand-right:before {
  669. content: "\e127";
  670. }
  671. .glyphicon-hand-left:before {
  672. content: "\e128";
  673. }
  674. .glyphicon-hand-up:before {
  675. content: "\e129";
  676. }
  677. .glyphicon-hand-down:before {
  678. content: "\e130";
  679. }
  680. .glyphicon-circle-arrow-right:before {
  681. content: "\e131";
  682. }
  683. .glyphicon-circle-arrow-left:before {
  684. content: "\e132";
  685. }
  686. .glyphicon-circle-arrow-up:before {
  687. content: "\e133";
  688. }
  689. .glyphicon-circle-arrow-down:before {
  690. content: "\e134";
  691. }
  692. .glyphicon-globe:before {
  693. content: "\e135";
  694. }
  695. .glyphicon-wrench:before {
  696. content: "\e136";
  697. }
  698. .glyphicon-tasks:before {
  699. content: "\e137";
  700. }
  701. .glyphicon-filter:before {
  702. content: "\e138";
  703. }
  704. .glyphicon-briefcase:before {
  705. content: "\e139";
  706. }
  707. .glyphicon-fullscreen:before {
  708. content: "\e140";
  709. }
  710. .glyphicon-dashboard:before {
  711. content: "\e141";
  712. }
  713. .glyphicon-paperclip:before {
  714. content: "\e142";
  715. }
  716. .glyphicon-heart-empty:before {
  717. content: "\e143";
  718. }
  719. .glyphicon-link:before {
  720. content: "\e144";
  721. }
  722. .glyphicon-phone:before {
  723. content: "\e145";
  724. }
  725. .glyphicon-pushpin:before {
  726. content: "\e146";
  727. }
  728. .glyphicon-usd:before {
  729. content: "\e148";
  730. }
  731. .glyphicon-gbp:before {
  732. content: "\e149";
  733. }
  734. .glyphicon-sort:before {
  735. content: "\e150";
  736. }
  737. .glyphicon-sort-by-alphabet:before {
  738. content: "\e151";
  739. }
  740. .glyphicon-sort-by-alphabet-alt:before {
  741. content: "\e152";
  742. }
  743. .glyphicon-sort-by-order:before {
  744. content: "\e153";
  745. }
  746. .glyphicon-sort-by-order-alt:before {
  747. content: "\e154";
  748. }
  749. .glyphicon-sort-by-attributes:before {
  750. content: "\e155";
  751. }
  752. .glyphicon-sort-by-attributes-alt:before {
  753. content: "\e156";
  754. }
  755. .glyphicon-unchecked:before {
  756. content: "\e157";
  757. }
  758. .glyphicon-expand:before {
  759. content: "\e158";
  760. }
  761. .glyphicon-collapse-down:before {
  762. content: "\e159";
  763. }
  764. .glyphicon-collapse-up:before {
  765. content: "\e160";
  766. }
  767. .glyphicon-log-in:before {
  768. content: "\e161";
  769. }
  770. .glyphicon-flash:before {
  771. content: "\e162";
  772. }
  773. .glyphicon-log-out:before {
  774. content: "\e163";
  775. }
  776. .glyphicon-new-window:before {
  777. content: "\e164";
  778. }
  779. .glyphicon-record:before {
  780. content: "\e165";
  781. }
  782. .glyphicon-save:before {
  783. content: "\e166";
  784. }
  785. .glyphicon-open:before {
  786. content: "\e167";
  787. }
  788. .glyphicon-saved:before {
  789. content: "\e168";
  790. }
  791. .glyphicon-import:before {
  792. content: "\e169";
  793. }
  794. .glyphicon-export:before {
  795. content: "\e170";
  796. }
  797. .glyphicon-send:before {
  798. content: "\e171";
  799. }
  800. .glyphicon-floppy-disk:before {
  801. content: "\e172";
  802. }
  803. .glyphicon-floppy-saved:before {
  804. content: "\e173";
  805. }
  806. .glyphicon-floppy-remove:before {
  807. content: "\e174";
  808. }
  809. .glyphicon-floppy-save:before {
  810. content: "\e175";
  811. }
  812. .glyphicon-floppy-open:before {
  813. content: "\e176";
  814. }
  815. .glyphicon-credit-card:before {
  816. content: "\e177";
  817. }
  818. .glyphicon-transfer:before {
  819. content: "\e178";
  820. }
  821. .glyphicon-cutlery:before {
  822. content: "\e179";
  823. }
  824. .glyphicon-header:before {
  825. content: "\e180";
  826. }
  827. .glyphicon-compressed:before {
  828. content: "\e181";
  829. }
  830. .glyphicon-earphone:before {
  831. content: "\e182";
  832. }
  833. .glyphicon-phone-alt:before {
  834. content: "\e183";
  835. }
  836. .glyphicon-tower:before {
  837. content: "\e184";
  838. }
  839. .glyphicon-stats:before {
  840. content: "\e185";
  841. }
  842. .glyphicon-sd-video:before {
  843. content: "\e186";
  844. }
  845. .glyphicon-hd-video:before {
  846. content: "\e187";
  847. }
  848. .glyphicon-subtitles:before {
  849. content: "\e188";
  850. }
  851. .glyphicon-sound-stereo:before {
  852. content: "\e189";
  853. }
  854. .glyphicon-sound-dolby:before {
  855. content: "\e190";
  856. }
  857. .glyphicon-sound-5-1:before {
  858. content: "\e191";
  859. }
  860. .glyphicon-sound-6-1:before {
  861. content: "\e192";
  862. }
  863. .glyphicon-sound-7-1:before {
  864. content: "\e193";
  865. }
  866. .glyphicon-copyright-mark:before {
  867. content: "\e194";
  868. }
  869. .glyphicon-registration-mark:before {
  870. content: "\e195";
  871. }
  872. .glyphicon-cloud-download:before {
  873. content: "\e197";
  874. }
  875. .glyphicon-cloud-upload:before {
  876. content: "\e198";
  877. }
  878. .glyphicon-tree-conifer:before {
  879. content: "\e199";
  880. }
  881. .glyphicon-tree-deciduous:before {
  882. content: "\e200";
  883. }
  884. .glyphicon-cd:before {
  885. content: "\e201";
  886. }
  887. .glyphicon-save-file:before {
  888. content: "\e202";
  889. }
  890. .glyphicon-open-file:before {
  891. content: "\e203";
  892. }
  893. .glyphicon-level-up:before {
  894. content: "\e204";
  895. }
  896. .glyphicon-copy:before {
  897. content: "\e205";
  898. }
  899. .glyphicon-paste:before {
  900. content: "\e206";
  901. }
  902. .glyphicon-alert:before {
  903. content: "\e209";
  904. }
  905. .glyphicon-equalizer:before {
  906. content: "\e210";
  907. }
  908. .glyphicon-king:before {
  909. content: "\e211";
  910. }
  911. .glyphicon-queen:before {
  912. content: "\e212";
  913. }
  914. .glyphicon-pawn:before {
  915. content: "\e213";
  916. }
  917. .glyphicon-bishop:before {
  918. content: "\e214";
  919. }
  920. .glyphicon-knight:before {
  921. content: "\e215";
  922. }
  923. .glyphicon-baby-formula:before {
  924. content: "\e216";
  925. }
  926. .glyphicon-tent:before {
  927. content: "\26fa";
  928. }
  929. .glyphicon-blackboard:before {
  930. content: "\e218";
  931. }
  932. .glyphicon-bed:before {
  933. content: "\e219";
  934. }
  935. .glyphicon-apple:before {
  936. content: "\f8ff";
  937. }
  938. .glyphicon-erase:before {
  939. content: "\e221";
  940. }
  941. .glyphicon-hourglass:before {
  942. content: "\231b";
  943. }
  944. .glyphicon-lamp:before {
  945. content: "\e223";
  946. }
  947. .glyphicon-duplicate:before {
  948. content: "\e224";
  949. }
  950. .glyphicon-piggy-bank:before {
  951. content: "\e225";
  952. }
  953. .glyphicon-scissors:before {
  954. content: "\e226";
  955. }
  956. .glyphicon-bitcoin:before {
  957. content: "\e227";
  958. }
  959. .glyphicon-btc:before {
  960. content: "\e227";
  961. }
  962. .glyphicon-xbt:before {
  963. content: "\e227";
  964. }
  965. .glyphicon-yen:before {
  966. content: "\00a5";
  967. }
  968. .glyphicon-jpy:before {
  969. content: "\00a5";
  970. }
  971. .glyphicon-ruble:before {
  972. content: "\20bd";
  973. }
  974. .glyphicon-rub:before {
  975. content: "\20bd";
  976. }
  977. .glyphicon-scale:before {
  978. content: "\e230";
  979. }
  980. .glyphicon-ice-lolly:before {
  981. content: "\e231";
  982. }
  983. .glyphicon-ice-lolly-tasted:before {
  984. content: "\e232";
  985. }
  986. .glyphicon-education:before {
  987. content: "\e233";
  988. }
  989. .glyphicon-option-horizontal:before {
  990. content: "\e234";
  991. }
  992. .glyphicon-option-vertical:before {
  993. content: "\e235";
  994. }
  995. .glyphicon-menu-hamburger:before {
  996. content: "\e236";
  997. }
  998. .glyphicon-modal-window:before {
  999. content: "\e237";
  1000. }
  1001. .glyphicon-oil:before {
  1002. content: "\e238";
  1003. }
  1004. .glyphicon-grain:before {
  1005. content: "\e239";
  1006. }
  1007. .glyphicon-sunglasses:before {
  1008. content: "\e240";
  1009. }
  1010. .glyphicon-text-size:before {
  1011. content: "\e241";
  1012. }
  1013. .glyphicon-text-color:before {
  1014. content: "\e242";
  1015. }
  1016. .glyphicon-text-background:before {
  1017. content: "\e243";
  1018. }
  1019. .glyphicon-object-align-top:before {
  1020. content: "\e244";
  1021. }
  1022. .glyphicon-object-align-bottom:before {
  1023. content: "\e245";
  1024. }
  1025. .glyphicon-object-align-horizontal:before {
  1026. content: "\e246";
  1027. }
  1028. .glyphicon-object-align-left:before {
  1029. content: "\e247";
  1030. }
  1031. .glyphicon-object-align-vertical:before {
  1032. content: "\e248";
  1033. }
  1034. .glyphicon-object-align-right:before {
  1035. content: "\e249";
  1036. }
  1037. .glyphicon-triangle-right:before {
  1038. content: "\e250";
  1039. }
  1040. .glyphicon-triangle-left:before {
  1041. content: "\e251";
  1042. }
  1043. .glyphicon-triangle-bottom:before {
  1044. content: "\e252";
  1045. }
  1046. .glyphicon-triangle-top:before {
  1047. content: "\e253";
  1048. }
  1049. .glyphicon-console:before {
  1050. content: "\e254";
  1051. }
  1052. .glyphicon-superscript:before {
  1053. content: "\e255";
  1054. }
  1055. .glyphicon-subscript:before {
  1056. content: "\e256";
  1057. }
  1058. .glyphicon-menu-left:before {
  1059. content: "\e257";
  1060. }
  1061. .glyphicon-menu-right:before {
  1062. content: "\e258";
  1063. }
  1064. .glyphicon-menu-down:before {
  1065. content: "\e259";
  1066. }
  1067. .glyphicon-menu-up:before {
  1068. content: "\e260";
  1069. }
  1070. * {
  1071. -webkit-box-sizing: border-box;
  1072. -moz-box-sizing: border-box;
  1073. box-sizing: border-box;
  1074. }
  1075. *:before,
  1076. *:after {
  1077. -webkit-box-sizing: border-box;
  1078. -moz-box-sizing: border-box;
  1079. box-sizing: border-box;
  1080. }
  1081. html {
  1082. font-size: 10px;
  1083. -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  1084. }
  1085. body {
  1086. font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  1087. font-size: 13px;
  1088. line-height: 1.42857143;
  1089. color: #000;
  1090. background-color: #fff;
  1091. }
  1092. input,
  1093. button,
  1094. select,
  1095. textarea {
  1096. font-family: inherit;
  1097. font-size: inherit;
  1098. line-height: inherit;
  1099. }
  1100. a {
  1101. color: #337ab7;
  1102. text-decoration: none;
  1103. }
  1104. a:hover,
  1105. a:focus {
  1106. color: #23527c;
  1107. text-decoration: underline;
  1108. }
  1109. a:focus {
  1110. outline: thin dotted;
  1111. outline: 5px auto -webkit-focus-ring-color;
  1112. outline-offset: -2px;
  1113. }
  1114. figure {
  1115. margin: 0;
  1116. }
  1117. img {
  1118. vertical-align: middle;
  1119. }
  1120. .img-responsive,
  1121. .thumbnail > img,
  1122. .thumbnail a > img,
  1123. .carousel-inner > .item > img,
  1124. .carousel-inner > .item > a > img {
  1125. display: block;
  1126. max-width: 100%;
  1127. height: auto;
  1128. }
  1129. .img-rounded {
  1130. border-radius: 3px;
  1131. }
  1132. .img-thumbnail {
  1133. padding: 4px;
  1134. line-height: 1.42857143;
  1135. background-color: #fff;
  1136. border: 1px solid #ddd;
  1137. border-radius: 2px;
  1138. -webkit-transition: all 0.2s ease-in-out;
  1139. -o-transition: all 0.2s ease-in-out;
  1140. transition: all 0.2s ease-in-out;
  1141. display: inline-block;
  1142. max-width: 100%;
  1143. height: auto;
  1144. }
  1145. .img-circle {
  1146. border-radius: 50%;
  1147. }
  1148. hr {
  1149. margin-top: 18px;
  1150. margin-bottom: 18px;
  1151. border: 0;
  1152. border-top: 1px solid #eeeeee;
  1153. }
  1154. .sr-only {
  1155. position: absolute;
  1156. width: 1px;
  1157. height: 1px;
  1158. margin: -1px;
  1159. padding: 0;
  1160. overflow: hidden;
  1161. clip: rect(0, 0, 0, 0);
  1162. border: 0;
  1163. }
  1164. .sr-only-focusable:active,
  1165. .sr-only-focusable:focus {
  1166. position: static;
  1167. width: auto;
  1168. height: auto;
  1169. margin: 0;
  1170. overflow: visible;
  1171. clip: auto;
  1172. }
  1173. [role="button"] {
  1174. cursor: pointer;
  1175. }
  1176. h1,
  1177. h2,
  1178. h3,
  1179. h4,
  1180. h5,
  1181. h6,
  1182. .h1,
  1183. .h2,
  1184. .h3,
  1185. .h4,
  1186. .h5,
  1187. .h6 {
  1188. font-family: inherit;
  1189. font-weight: 500;
  1190. line-height: 1.1;
  1191. color: inherit;
  1192. }
  1193. h1 small,
  1194. h2 small,
  1195. h3 small,
  1196. h4 small,
  1197. h5 small,
  1198. h6 small,
  1199. .h1 small,
  1200. .h2 small,
  1201. .h3 small,
  1202. .h4 small,
  1203. .h5 small,
  1204. .h6 small,
  1205. h1 .small,
  1206. h2 .small,
  1207. h3 .small,
  1208. h4 .small,
  1209. h5 .small,
  1210. h6 .small,
  1211. .h1 .small,
  1212. .h2 .small,
  1213. .h3 .small,
  1214. .h4 .small,
  1215. .h5 .small,
  1216. .h6 .small {
  1217. font-weight: normal;
  1218. line-height: 1;
  1219. color: #777777;
  1220. }
  1221. h1,
  1222. .h1,
  1223. h2,
  1224. .h2,
  1225. h3,
  1226. .h3 {
  1227. margin-top: 18px;
  1228. margin-bottom: 9px;
  1229. }
  1230. h1 small,
  1231. .h1 small,
  1232. h2 small,
  1233. .h2 small,
  1234. h3 small,
  1235. .h3 small,
  1236. h1 .small,
  1237. .h1 .small,
  1238. h2 .small,
  1239. .h2 .small,
  1240. h3 .small,
  1241. .h3 .small {
  1242. font-size: 65%;
  1243. }
  1244. h4,
  1245. .h4,
  1246. h5,
  1247. .h5,
  1248. h6,
  1249. .h6 {
  1250. margin-top: 9px;
  1251. margin-bottom: 9px;
  1252. }
  1253. h4 small,
  1254. .h4 small,
  1255. h5 small,
  1256. .h5 small,
  1257. h6 small,
  1258. .h6 small,
  1259. h4 .small,
  1260. .h4 .small,
  1261. h5 .small,
  1262. .h5 .small,
  1263. h6 .small,
  1264. .h6 .small {
  1265. font-size: 75%;
  1266. }
  1267. h1,
  1268. .h1 {
  1269. font-size: 33px;
  1270. }
  1271. h2,
  1272. .h2 {
  1273. font-size: 27px;
  1274. }
  1275. h3,
  1276. .h3 {
  1277. font-size: 23px;
  1278. }
  1279. h4,
  1280. .h4 {
  1281. font-size: 17px;
  1282. }
  1283. h5,
  1284. .h5 {
  1285. font-size: 13px;
  1286. }
  1287. h6,
  1288. .h6 {
  1289. font-size: 12px;
  1290. }
  1291. p {
  1292. margin: 0 0 9px;
  1293. }
  1294. .lead {
  1295. margin-bottom: 18px;
  1296. font-size: 14px;
  1297. font-weight: 300;
  1298. line-height: 1.4;
  1299. }
  1300. @media (min-width: 768px) {
  1301. .lead {
  1302. font-size: 19.5px;
  1303. }
  1304. }
  1305. small,
  1306. .small {
  1307. font-size: 92%;
  1308. }
  1309. mark,
  1310. .mark {
  1311. background-color: #fcf8e3;
  1312. padding: .2em;
  1313. }
  1314. .text-left {
  1315. text-align: left;
  1316. }
  1317. .text-right {
  1318. text-align: right;
  1319. }
  1320. .text-center {
  1321. text-align: center;
  1322. }
  1323. .text-justify {
  1324. text-align: justify;
  1325. }
  1326. .text-nowrap {
  1327. white-space: nowrap;
  1328. }
  1329. .text-lowercase {
  1330. text-transform: lowercase;
  1331. }
  1332. .text-uppercase {
  1333. text-transform: uppercase;
  1334. }
  1335. .text-capitalize {
  1336. text-transform: capitalize;
  1337. }
  1338. .text-muted {
  1339. color: #777777;
  1340. }
  1341. .text-primary {
  1342. color: #337ab7;
  1343. }
  1344. a.text-primary:hover,
  1345. a.text-primary:focus {
  1346. color: #286090;
  1347. }
  1348. .text-success {
  1349. color: #3c763d;
  1350. }
  1351. a.text-success:hover,
  1352. a.text-success:focus {
  1353. color: #2b542c;
  1354. }
  1355. .text-info {
  1356. color: #31708f;
  1357. }
  1358. a.text-info:hover,
  1359. a.text-info:focus {
  1360. color: #245269;
  1361. }
  1362. .text-warning {
  1363. color: #8a6d3b;
  1364. }
  1365. a.text-warning:hover,
  1366. a.text-warning:focus {
  1367. color: #66512c;
  1368. }
  1369. .text-danger {
  1370. color: #a94442;
  1371. }
  1372. a.text-danger:hover,
  1373. a.text-danger:focus {
  1374. color: #843534;
  1375. }
  1376. .bg-primary {
  1377. color: #fff;
  1378. background-color: #337ab7;
  1379. }
  1380. a.bg-primary:hover,
  1381. a.bg-primary:focus {
  1382. background-color: #286090;
  1383. }
  1384. .bg-success {
  1385. background-color: #dff0d8;
  1386. }
  1387. a.bg-success:hover,
  1388. a.bg-success:focus {
  1389. background-color: #c1e2b3;
  1390. }
  1391. .bg-info {
  1392. background-color: #d9edf7;
  1393. }
  1394. a.bg-info:hover,
  1395. a.bg-info:focus {
  1396. background-color: #afd9ee;
  1397. }
  1398. .bg-warning {
  1399. background-color: #fcf8e3;
  1400. }
  1401. a.bg-warning:hover,
  1402. a.bg-warning:focus {
  1403. background-color: #f7ecb5;
  1404. }
  1405. .bg-danger {
  1406. background-color: #f2dede;
  1407. }
  1408. a.bg-danger:hover,
  1409. a.bg-danger:focus {
  1410. background-color: #e4b9b9;
  1411. }
  1412. .page-header {
  1413. padding-bottom: 8px;
  1414. margin: 36px 0 18px;
  1415. border-bottom: 1px solid #eeeeee;
  1416. }
  1417. ul,
  1418. ol {
  1419. margin-top: 0;
  1420. margin-bottom: 9px;
  1421. }
  1422. ul ul,
  1423. ol ul,
  1424. ul ol,
  1425. ol ol {
  1426. margin-bottom: 0;
  1427. }
  1428. .list-unstyled {
  1429. padding-left: 0;
  1430. list-style: none;
  1431. }
  1432. .list-inline {
  1433. padding-left: 0;
  1434. list-style: none;
  1435. margin-left: -5px;
  1436. }
  1437. .list-inline > li {
  1438. display: inline-block;
  1439. padding-left: 5px;
  1440. padding-right: 5px;
  1441. }
  1442. dl {
  1443. margin-top: 0;
  1444. margin-bottom: 18px;
  1445. }
  1446. dt,
  1447. dd {
  1448. line-height: 1.42857143;
  1449. }
  1450. dt {
  1451. font-weight: bold;
  1452. }
  1453. dd {
  1454. margin-left: 0;
  1455. }
  1456. @media (min-width: 541px) {
  1457. .dl-horizontal dt {
  1458. float: left;
  1459. width: 160px;
  1460. clear: left;
  1461. text-align: right;
  1462. overflow: hidden;
  1463. text-overflow: ellipsis;
  1464. white-space: nowrap;
  1465. }
  1466. .dl-horizontal dd {
  1467. margin-left: 180px;
  1468. }
  1469. }
  1470. abbr[title],
  1471. abbr[data-original-title] {
  1472. cursor: help;
  1473. border-bottom: 1px dotted #777777;
  1474. }
  1475. .initialism {
  1476. font-size: 90%;
  1477. text-transform: uppercase;
  1478. }
  1479. blockquote {
  1480. padding: 9px 18px;
  1481. margin: 0 0 18px;
  1482. font-size: inherit;
  1483. border-left: 5px solid #eeeeee;
  1484. }
  1485. blockquote p:last-child,
  1486. blockquote ul:last-child,
  1487. blockquote ol:last-child {
  1488. margin-bottom: 0;
  1489. }
  1490. blockquote footer,
  1491. blockquote small,
  1492. blockquote .small {
  1493. display: block;
  1494. font-size: 80%;
  1495. line-height: 1.42857143;
  1496. color: #777777;
  1497. }
  1498. blockquote footer:before,
  1499. blockquote small:before,
  1500. blockquote .small:before {
  1501. content: '\2014 \00A0';
  1502. }
  1503. .blockquote-reverse,
  1504. blockquote.pull-right {
  1505. padding-right: 15px;
  1506. padding-left: 0;
  1507. border-right: 5px solid #eeeeee;
  1508. border-left: 0;
  1509. text-align: right;
  1510. }
  1511. .blockquote-reverse footer:before,
  1512. blockquote.pull-right footer:before,
  1513. .blockquote-reverse small:before,
  1514. blockquote.pull-right small:before,
  1515. .blockquote-reverse .small:before,
  1516. blockquote.pull-right .small:before {
  1517. content: '';
  1518. }
  1519. .blockquote-reverse footer:after,
  1520. blockquote.pull-right footer:after,
  1521. .blockquote-reverse small:after,
  1522. blockquote.pull-right small:after,
  1523. .blockquote-reverse .small:after,
  1524. blockquote.pull-right .small:after {
  1525. content: '\00A0 \2014';
  1526. }
  1527. address {
  1528. margin-bottom: 18px;
  1529. font-style: normal;
  1530. line-height: 1.42857143;
  1531. }
  1532. code,
  1533. kbd,
  1534. pre,
  1535. samp {
  1536. font-family: monospace;
  1537. }
  1538. code {
  1539. padding: 2px 4px;
  1540. font-size: 90%;
  1541. color: #c7254e;
  1542. background-color: #f9f2f4;
  1543. border-radius: 2px;
  1544. }
  1545. kbd {
  1546. padding: 2px 4px;
  1547. font-size: 90%;
  1548. color: #888;
  1549. background-color: transparent;
  1550. border-radius: 1px;
  1551. box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
  1552. }
  1553. kbd kbd {
  1554. padding: 0;
  1555. font-size: 100%;
  1556. font-weight: bold;
  1557. box-shadow: none;
  1558. }
  1559. pre {
  1560. display: block;
  1561. padding: 8.5px;
  1562. margin: 0 0 9px;
  1563. font-size: 12px;
  1564. line-height: 1.42857143;
  1565. word-break: break-all;
  1566. word-wrap: break-word;
  1567. color: #333333;
  1568. background-color: #f5f5f5;
  1569. border: 1px solid #ccc;
  1570. border-radius: 2px;
  1571. }
  1572. pre code {
  1573. padding: 0;
  1574. font-size: inherit;
  1575. color: inherit;
  1576. white-space: pre-wrap;
  1577. background-color: transparent;
  1578. border-radius: 0;
  1579. }
  1580. .pre-scrollable {
  1581. max-height: 340px;
  1582. overflow-y: scroll;
  1583. }
  1584. .container {
  1585. margin-right: auto;
  1586. margin-left: auto;
  1587. padding-left: 0px;
  1588. padding-right: 0px;
  1589. }
  1590. @media (min-width: 768px) {
  1591. .container {
  1592. width: 768px;
  1593. }
  1594. }
  1595. @media (min-width: 992px) {
  1596. .container {
  1597. width: 940px;
  1598. }
  1599. }
  1600. @media (min-width: 1200px) {
  1601. .container {
  1602. width: 1140px;
  1603. }
  1604. }
  1605. .container-fluid {
  1606. margin-right: auto;
  1607. margin-left: auto;
  1608. padding-left: 0px;
  1609. padding-right: 0px;
  1610. }
  1611. .row {
  1612. margin-left: 0px;
  1613. margin-right: 0px;
  1614. }
  1615. .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  1616. position: relative;
  1617. min-height: 1px;
  1618. padding-left: 0px;
  1619. padding-right: 0px;
  1620. }
  1621. .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  1622. float: left;
  1623. }
  1624. .col-xs-12 {
  1625. width: 100%;
  1626. }
  1627. .col-xs-11 {
  1628. width: 91.66666667%;
  1629. }
  1630. .col-xs-10 {
  1631. width: 83.33333333%;
  1632. }
  1633. .col-xs-9 {
  1634. width: 75%;
  1635. }
  1636. .col-xs-8 {
  1637. width: 66.66666667%;
  1638. }
  1639. .col-xs-7 {
  1640. width: 58.33333333%;
  1641. }
  1642. .col-xs-6 {
  1643. width: 50%;
  1644. }
  1645. .col-xs-5 {
  1646. width: 41.66666667%;
  1647. }
  1648. .col-xs-4 {
  1649. width: 33.33333333%;
  1650. }
  1651. .col-xs-3 {
  1652. width: 25%;
  1653. }
  1654. .col-xs-2 {
  1655. width: 16.66666667%;
  1656. }
  1657. .col-xs-1 {
  1658. width: 8.33333333%;
  1659. }
  1660. .col-xs-pull-12 {
  1661. right: 100%;
  1662. }
  1663. .col-xs-pull-11 {
  1664. right: 91.66666667%;
  1665. }
  1666. .col-xs-pull-10 {
  1667. right: 83.33333333%;
  1668. }
  1669. .col-xs-pull-9 {
  1670. right: 75%;
  1671. }
  1672. .col-xs-pull-8 {
  1673. right: 66.66666667%;
  1674. }
  1675. .col-xs-pull-7 {
  1676. right: 58.33333333%;
  1677. }
  1678. .col-xs-pull-6 {
  1679. right: 50%;
  1680. }
  1681. .col-xs-pull-5 {
  1682. right: 41.66666667%;
  1683. }
  1684. .col-xs-pull-4 {
  1685. right: 33.33333333%;
  1686. }
  1687. .col-xs-pull-3 {
  1688. right: 25%;
  1689. }
  1690. .col-xs-pull-2 {
  1691. right: 16.66666667%;
  1692. }
  1693. .col-xs-pull-1 {
  1694. right: 8.33333333%;
  1695. }
  1696. .col-xs-pull-0 {
  1697. right: auto;
  1698. }
  1699. .col-xs-push-12 {
  1700. left: 100%;
  1701. }
  1702. .col-xs-push-11 {
  1703. left: 91.66666667%;
  1704. }
  1705. .col-xs-push-10 {
  1706. left: 83.33333333%;
  1707. }
  1708. .col-xs-push-9 {
  1709. left: 75%;
  1710. }
  1711. .col-xs-push-8 {
  1712. left: 66.66666667%;
  1713. }
  1714. .col-xs-push-7 {
  1715. left: 58.33333333%;
  1716. }
  1717. .col-xs-push-6 {
  1718. left: 50%;
  1719. }
  1720. .col-xs-push-5 {
  1721. left: 41.66666667%;
  1722. }
  1723. .col-xs-push-4 {
  1724. left: 33.33333333%;
  1725. }
  1726. .col-xs-push-3 {
  1727. left: 25%;
  1728. }
  1729. .col-xs-push-2 {
  1730. left: 16.66666667%;
  1731. }
  1732. .col-xs-push-1 {
  1733. left: 8.33333333%;
  1734. }
  1735. .col-xs-push-0 {
  1736. left: auto;
  1737. }
  1738. .col-xs-offset-12 {
  1739. margin-left: 100%;
  1740. }
  1741. .col-xs-offset-11 {
  1742. margin-left: 91.66666667%;
  1743. }
  1744. .col-xs-offset-10 {
  1745. margin-left: 83.33333333%;
  1746. }
  1747. .col-xs-offset-9 {
  1748. margin-left: 75%;
  1749. }
  1750. .col-xs-offset-8 {
  1751. margin-left: 66.66666667%;
  1752. }
  1753. .col-xs-offset-7 {
  1754. margin-left: 58.33333333%;
  1755. }
  1756. .col-xs-offset-6 {
  1757. margin-left: 50%;
  1758. }
  1759. .col-xs-offset-5 {
  1760. margin-left: 41.66666667%;
  1761. }
  1762. .col-xs-offset-4 {
  1763. margin-left: 33.33333333%;
  1764. }
  1765. .col-xs-offset-3 {
  1766. margin-left: 25%;
  1767. }
  1768. .col-xs-offset-2 {
  1769. margin-left: 16.66666667%;
  1770. }
  1771. .col-xs-offset-1 {
  1772. margin-left: 8.33333333%;
  1773. }
  1774. .col-xs-offset-0 {
  1775. margin-left: 0%;
  1776. }
  1777. @media (min-width: 768px) {
  1778. .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
  1779. float: left;
  1780. }
  1781. .col-sm-12 {
  1782. width: 100%;
  1783. }
  1784. .col-sm-11 {
  1785. width: 91.66666667%;
  1786. }
  1787. .col-sm-10 {
  1788. width: 83.33333333%;
  1789. }
  1790. .col-sm-9 {
  1791. width: 75%;
  1792. }
  1793. .col-sm-8 {
  1794. width: 66.66666667%;
  1795. }
  1796. .col-sm-7 {
  1797. width: 58.33333333%;
  1798. }
  1799. .col-sm-6 {
  1800. width: 50%;
  1801. }
  1802. .col-sm-5 {
  1803. width: 41.66666667%;
  1804. }
  1805. .col-sm-4 {
  1806. width: 33.33333333%;
  1807. }
  1808. .col-sm-3 {
  1809. width: 25%;
  1810. }
  1811. .col-sm-2 {
  1812. width: 16.66666667%;
  1813. }
  1814. .col-sm-1 {
  1815. width: 8.33333333%;
  1816. }
  1817. .col-sm-pull-12 {
  1818. right: 100%;
  1819. }
  1820. .col-sm-pull-11 {
  1821. right: 91.66666667%;
  1822. }
  1823. .col-sm-pull-10 {
  1824. right: 83.33333333%;
  1825. }
  1826. .col-sm-pull-9 {
  1827. right: 75%;
  1828. }
  1829. .col-sm-pull-8 {
  1830. right: 66.66666667%;
  1831. }
  1832. .col-sm-pull-7 {
  1833. right: 58.33333333%;
  1834. }
  1835. .col-sm-pull-6 {
  1836. right: 50%;
  1837. }
  1838. .col-sm-pull-5 {
  1839. right: 41.66666667%;
  1840. }
  1841. .col-sm-pull-4 {
  1842. right: 33.33333333%;
  1843. }
  1844. .col-sm-pull-3 {
  1845. right: 25%;
  1846. }
  1847. .col-sm-pull-2 {
  1848. right: 16.66666667%;
  1849. }
  1850. .col-sm-pull-1 {
  1851. right: 8.33333333%;
  1852. }
  1853. .col-sm-pull-0 {
  1854. right: auto;
  1855. }
  1856. .col-sm-push-12 {
  1857. left: 100%;
  1858. }
  1859. .col-sm-push-11 {
  1860. left: 91.66666667%;
  1861. }
  1862. .col-sm-push-10 {
  1863. left: 83.33333333%;
  1864. }
  1865. .col-sm-push-9 {
  1866. left: 75%;
  1867. }
  1868. .col-sm-push-8 {
  1869. left: 66.66666667%;
  1870. }
  1871. .col-sm-push-7 {
  1872. left: 58.33333333%;
  1873. }
  1874. .col-sm-push-6 {
  1875. left: 50%;
  1876. }
  1877. .col-sm-push-5 {
  1878. left: 41.66666667%;
  1879. }
  1880. .col-sm-push-4 {
  1881. left: 33.33333333%;
  1882. }
  1883. .col-sm-push-3 {
  1884. left: 25%;
  1885. }
  1886. .col-sm-push-2 {
  1887. left: 16.66666667%;
  1888. }
  1889. .col-sm-push-1 {
  1890. left: 8.33333333%;
  1891. }
  1892. .col-sm-push-0 {
  1893. left: auto;
  1894. }
  1895. .col-sm-offset-12 {
  1896. margin-left: 100%;
  1897. }
  1898. .col-sm-offset-11 {
  1899. margin-left: 91.66666667%;
  1900. }
  1901. .col-sm-offset-10 {
  1902. margin-left: 83.33333333%;
  1903. }
  1904. .col-sm-offset-9 {
  1905. margin-left: 75%;
  1906. }
  1907. .col-sm-offset-8 {
  1908. margin-left: 66.66666667%;
  1909. }
  1910. .col-sm-offset-7 {
  1911. margin-left: 58.33333333%;
  1912. }
  1913. .col-sm-offset-6 {
  1914. margin-left: 50%;
  1915. }
  1916. .col-sm-offset-5 {
  1917. margin-left: 41.66666667%;
  1918. }
  1919. .col-sm-offset-4 {
  1920. margin-left: 33.33333333%;
  1921. }
  1922. .col-sm-offset-3 {
  1923. margin-left: 25%;
  1924. }
  1925. .col-sm-offset-2 {
  1926. margin-left: 16.66666667%;
  1927. }
  1928. .col-sm-offset-1 {
  1929. margin-left: 8.33333333%;
  1930. }
  1931. .col-sm-offset-0 {
  1932. margin-left: 0%;
  1933. }
  1934. }
  1935. @media (min-width: 992px) {
  1936. .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
  1937. float: left;
  1938. }
  1939. .col-md-12 {
  1940. width: 100%;
  1941. }
  1942. .col-md-11 {
  1943. width: 91.66666667%;
  1944. }
  1945. .col-md-10 {
  1946. width: 83.33333333%;
  1947. }
  1948. .col-md-9 {
  1949. width: 75%;
  1950. }
  1951. .col-md-8 {
  1952. width: 66.66666667%;
  1953. }
  1954. .col-md-7 {
  1955. width: 58.33333333%;
  1956. }
  1957. .col-md-6 {
  1958. width: 50%;
  1959. }
  1960. .col-md-5 {
  1961. width: 41.66666667%;
  1962. }
  1963. .col-md-4 {
  1964. width: 33.33333333%;
  1965. }
  1966. .col-md-3 {
  1967. width: 25%;
  1968. }
  1969. .col-md-2 {
  1970. width: 16.66666667%;
  1971. }
  1972. .col-md-1 {
  1973. width: 8.33333333%;
  1974. }
  1975. .col-md-pull-12 {
  1976. right: 100%;
  1977. }
  1978. .col-md-pull-11 {
  1979. right: 91.66666667%;
  1980. }
  1981. .col-md-pull-10 {
  1982. right: 83.33333333%;
  1983. }
  1984. .col-md-pull-9 {
  1985. right: 75%;
  1986. }
  1987. .col-md-pull-8 {
  1988. right: 66.66666667%;
  1989. }
  1990. .col-md-pull-7 {
  1991. right: 58.33333333%;
  1992. }
  1993. .col-md-pull-6 {
  1994. right: 50%;
  1995. }
  1996. .col-md-pull-5 {
  1997. right: 41.66666667%;
  1998. }
  1999. .col-md-pull-4 {
  2000. right: 33.33333333%;
  2001. }
  2002. .col-md-pull-3 {
  2003. right: 25%;
  2004. }
  2005. .col-md-pull-2 {
  2006. right: 16.66666667%;
  2007. }
  2008. .col-md-pull-1 {
  2009. right: 8.33333333%;
  2010. }
  2011. .col-md-pull-0 {
  2012. right: auto;
  2013. }
  2014. .col-md-push-12 {
  2015. left: 100%;
  2016. }
  2017. .col-md-push-11 {
  2018. left: 91.66666667%;
  2019. }
  2020. .col-md-push-10 {
  2021. left: 83.33333333%;
  2022. }
  2023. .col-md-push-9 {
  2024. left: 75%;
  2025. }
  2026. .col-md-push-8 {
  2027. left: 66.66666667%;
  2028. }
  2029. .col-md-push-7 {
  2030. left: 58.33333333%;
  2031. }
  2032. .col-md-push-6 {
  2033. left: 50%;
  2034. }
  2035. .col-md-push-5 {
  2036. left: 41.66666667%;
  2037. }
  2038. .col-md-push-4 {
  2039. left: 33.33333333%;
  2040. }
  2041. .col-md-push-3 {
  2042. left: 25%;
  2043. }
  2044. .col-md-push-2 {
  2045. left: 16.66666667%;
  2046. }
  2047. .col-md-push-1 {
  2048. left: 8.33333333%;
  2049. }
  2050. .col-md-push-0 {
  2051. left: auto;
  2052. }
  2053. .col-md-offset-12 {
  2054. margin-left: 100%;
  2055. }
  2056. .col-md-offset-11 {
  2057. margin-left: 91.66666667%;
  2058. }
  2059. .col-md-offset-10 {
  2060. margin-left: 83.33333333%;
  2061. }
  2062. .col-md-offset-9 {
  2063. margin-left: 75%;
  2064. }
  2065. .col-md-offset-8 {
  2066. margin-left: 66.66666667%;
  2067. }
  2068. .col-md-offset-7 {
  2069. margin-left: 58.33333333%;
  2070. }
  2071. .col-md-offset-6 {
  2072. margin-left: 50%;
  2073. }
  2074. .col-md-offset-5 {
  2075. margin-left: 41.66666667%;
  2076. }
  2077. .col-md-offset-4 {
  2078. margin-left: 33.33333333%;
  2079. }
  2080. .col-md-offset-3 {
  2081. margin-left: 25%;
  2082. }
  2083. .col-md-offset-2 {
  2084. margin-left: 16.66666667%;
  2085. }
  2086. .col-md-offset-1 {
  2087. margin-left: 8.33333333%;
  2088. }
  2089. .col-md-offset-0 {
  2090. margin-left: 0%;
  2091. }
  2092. }
  2093. @media (min-width: 1200px) {
  2094. .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
  2095. float: left;
  2096. }
  2097. .col-lg-12 {
  2098. width: 100%;
  2099. }
  2100. .col-lg-11 {
  2101. width: 91.66666667%;
  2102. }
  2103. .col-lg-10 {
  2104. width: 83.33333333%;
  2105. }
  2106. .col-lg-9 {
  2107. width: 75%;
  2108. }
  2109. .col-lg-8 {
  2110. width: 66.66666667%;
  2111. }
  2112. .col-lg-7 {
  2113. width: 58.33333333%;
  2114. }
  2115. .col-lg-6 {
  2116. width: 50%;
  2117. }
  2118. .col-lg-5 {
  2119. width: 41.66666667%;
  2120. }
  2121. .col-lg-4 {
  2122. width: 33.33333333%;
  2123. }
  2124. .col-lg-3 {
  2125. width: 25%;
  2126. }
  2127. .col-lg-2 {
  2128. width: 16.66666667%;
  2129. }
  2130. .col-lg-1 {
  2131. width: 8.33333333%;
  2132. }
  2133. .col-lg-pull-12 {
  2134. right: 100%;
  2135. }
  2136. .col-lg-pull-11 {
  2137. right: 91.66666667%;
  2138. }
  2139. .col-lg-pull-10 {
  2140. right: 83.33333333%;
  2141. }
  2142. .col-lg-pull-9 {
  2143. right: 75%;
  2144. }
  2145. .col-lg-pull-8 {
  2146. right: 66.66666667%;
  2147. }
  2148. .col-lg-pull-7 {
  2149. right: 58.33333333%;
  2150. }
  2151. .col-lg-pull-6 {
  2152. right: 50%;
  2153. }
  2154. .col-lg-pull-5 {
  2155. right: 41.66666667%;
  2156. }
  2157. .col-lg-pull-4 {
  2158. right: 33.33333333%;
  2159. }
  2160. .col-lg-pull-3 {
  2161. right: 25%;
  2162. }
  2163. .col-lg-pull-2 {
  2164. right: 16.66666667%;
  2165. }
  2166. .col-lg-pull-1 {
  2167. right: 8.33333333%;
  2168. }
  2169. .col-lg-pull-0 {
  2170. right: auto;
  2171. }
  2172. .col-lg-push-12 {
  2173. left: 100%;
  2174. }
  2175. .col-lg-push-11 {
  2176. left: 91.66666667%;
  2177. }
  2178. .col-lg-push-10 {
  2179. left: 83.33333333%;
  2180. }
  2181. .col-lg-push-9 {
  2182. left: 75%;
  2183. }
  2184. .col-lg-push-8 {
  2185. left: 66.66666667%;
  2186. }
  2187. .col-lg-push-7 {
  2188. left: 58.33333333%;
  2189. }
  2190. .col-lg-push-6 {
  2191. left: 50%;
  2192. }
  2193. .col-lg-push-5 {
  2194. left: 41.66666667%;
  2195. }
  2196. .col-lg-push-4 {
  2197. left: 33.33333333%;
  2198. }
  2199. .col-lg-push-3 {
  2200. left: 25%;
  2201. }
  2202. .col-lg-push-2 {
  2203. left: 16.66666667%;
  2204. }
  2205. .col-lg-push-1 {
  2206. left: 8.33333333%;
  2207. }
  2208. .col-lg-push-0 {
  2209. left: auto;
  2210. }
  2211. .col-lg-offset-12 {
  2212. margin-left: 100%;
  2213. }
  2214. .col-lg-offset-11 {
  2215. margin-left: 91.66666667%;
  2216. }
  2217. .col-lg-offset-10 {
  2218. margin-left: 83.33333333%;
  2219. }
  2220. .col-lg-offset-9 {
  2221. margin-left: 75%;
  2222. }
  2223. .col-lg-offset-8 {
  2224. margin-left: 66.66666667%;
  2225. }
  2226. .col-lg-offset-7 {
  2227. margin-left: 58.33333333%;
  2228. }
  2229. .col-lg-offset-6 {
  2230. margin-left: 50%;
  2231. }
  2232. .col-lg-offset-5 {
  2233. margin-left: 41.66666667%;
  2234. }
  2235. .col-lg-offset-4 {
  2236. margin-left: 33.33333333%;
  2237. }
  2238. .col-lg-offset-3 {
  2239. margin-left: 25%;
  2240. }
  2241. .col-lg-offset-2 {
  2242. margin-left: 16.66666667%;
  2243. }
  2244. .col-lg-offset-1 {
  2245. margin-left: 8.33333333%;
  2246. }
  2247. .col-lg-offset-0 {
  2248. margin-left: 0%;
  2249. }
  2250. }
  2251. table {
  2252. background-color: transparent;
  2253. }
  2254. caption {
  2255. padding-top: 8px;
  2256. padding-bottom: 8px;
  2257. color: #777777;
  2258. text-align: left;
  2259. }
  2260. th {
  2261. text-align: left;
  2262. }
  2263. .table {
  2264. width: 100%;
  2265. max-width: 100%;
  2266. margin-bottom: 18px;
  2267. }
  2268. .table > thead > tr > th,
  2269. .table > tbody > tr > th,
  2270. .table > tfoot > tr > th,
  2271. .table > thead > tr > td,
  2272. .table > tbody > tr > td,
  2273. .table > tfoot > tr > td {
  2274. padding: 8px;
  2275. line-height: 1.42857143;
  2276. vertical-align: top;
  2277. border-top: 1px solid #ddd;
  2278. }
  2279. .table > thead > tr > th {
  2280. vertical-align: bottom;
  2281. border-bottom: 2px solid #ddd;
  2282. }
  2283. .table > caption + thead > tr:first-child > th,
  2284. .table > colgroup + thead > tr:first-child > th,
  2285. .table > thead:first-child > tr:first-child > th,
  2286. .table > caption + thead > tr:first-child > td,
  2287. .table > colgroup + thead > tr:first-child > td,
  2288. .table > thead:first-child > tr:first-child > td {
  2289. border-top: 0;
  2290. }
  2291. .table > tbody + tbody {
  2292. border-top: 2px solid #ddd;
  2293. }
  2294. .table .table {
  2295. background-color: #fff;
  2296. }
  2297. .table-condensed > thead > tr > th,
  2298. .table-condensed > tbody > tr > th,
  2299. .table-condensed > tfoot > tr > th,
  2300. .table-condensed > thead > tr > td,
  2301. .table-condensed > tbody > tr > td,
  2302. .table-condensed > tfoot > tr > td {
  2303. padding: 5px;
  2304. }
  2305. .table-bordered {
  2306. border: 1px solid #ddd;
  2307. }
  2308. .table-bordered > thead > tr > th,
  2309. .table-bordered > tbody > tr > th,
  2310. .table-bordered > tfoot > tr > th,
  2311. .table-bordered > thead > tr > td,
  2312. .table-bordered > tbody > tr > td,
  2313. .table-bordered > tfoot > tr > td {
  2314. border: 1px solid #ddd;
  2315. }
  2316. .table-bordered > thead > tr > th,
  2317. .table-bordered > thead > tr > td {
  2318. border-bottom-width: 2px;
  2319. }
  2320. .table-striped > tbody > tr:nth-of-type(odd) {
  2321. background-color: #f9f9f9;
  2322. }
  2323. .table-hover > tbody > tr:hover {
  2324. background-color: #f5f5f5;
  2325. }
  2326. table col[class*="col-"] {
  2327. position: static;
  2328. float: none;
  2329. display: table-column;
  2330. }
  2331. table td[class*="col-"],
  2332. table th[class*="col-"] {
  2333. position: static;
  2334. float: none;
  2335. display: table-cell;
  2336. }
  2337. .table > thead > tr > td.active,
  2338. .table > tbody > tr > td.active,
  2339. .table > tfoot > tr > td.active,
  2340. .table > thead > tr > th.active,
  2341. .table > tbody > tr > th.active,
  2342. .table > tfoot > tr > th.active,
  2343. .table > thead > tr.active > td,
  2344. .table > tbody > tr.active > td,
  2345. .table > tfoot > tr.active > td,
  2346. .table > thead > tr.active > th,
  2347. .table > tbody > tr.active > th,
  2348. .table > tfoot > tr.active > th {
  2349. background-color: #f5f5f5;
  2350. }
  2351. .table-hover > tbody > tr > td.active:hover,
  2352. .table-hover > tbody > tr > th.active:hover,
  2353. .table-hover > tbody > tr.active:hover > td,
  2354. .table-hover > tbody > tr:hover > .active,
  2355. .table-hover > tbody > tr.active:hover > th {
  2356. background-color: #e8e8e8;
  2357. }
  2358. .table > thead > tr > td.success,
  2359. .table > tbody > tr > td.success,
  2360. .table > tfoot > tr > td.success,
  2361. .table > thead > tr > th.success,
  2362. .table > tbody > tr > th.success,
  2363. .table > tfoot > tr > th.success,
  2364. .table > thead > tr.success > td,
  2365. .table > tbody > tr.success > td,
  2366. .table > tfoot > tr.success > td,
  2367. .table > thead > tr.success > th,
  2368. .table > tbody > tr.success > th,
  2369. .table > tfoot > tr.success > th {
  2370. background-color: #dff0d8;
  2371. }
  2372. .table-hover > tbody > tr > td.success:hover,
  2373. .table-hover > tbody > tr > th.success:hover,
  2374. .table-hover > tbody > tr.success:hover > td,
  2375. .table-hover > tbody > tr:hover > .success,
  2376. .table-hover > tbody > tr.success:hover > th {
  2377. background-color: #d0e9c6;
  2378. }
  2379. .table > thead > tr > td.info,
  2380. .table > tbody > tr > td.info,
  2381. .table > tfoot > tr > td.info,
  2382. .table > thead > tr > th.info,
  2383. .table > tbody > tr > th.info,
  2384. .table > tfoot > tr > th.info,
  2385. .table > thead > tr.info > td,
  2386. .table > tbody > tr.info > td,
  2387. .table > tfoot > tr.info > td,
  2388. .table > thead > tr.info > th,
  2389. .table > tbody > tr.info > th,
  2390. .table > tfoot > tr.info > th {
  2391. background-color: #d9edf7;
  2392. }
  2393. .table-hover > tbody > tr > td.info:hover,
  2394. .table-hover > tbody > tr > th.info:hover,
  2395. .table-hover > tbody > tr.info:hover > td,
  2396. .table-hover > tbody > tr:hover > .info,
  2397. .table-hover > tbody > tr.info:hover > th {
  2398. background-color: #c4e3f3;
  2399. }
  2400. .table > thead > tr > td.warning,
  2401. .table > tbody > tr > td.warning,
  2402. .table > tfoot > tr > td.warning,
  2403. .table > thead > tr > th.warning,
  2404. .table > tbody > tr > th.warning,
  2405. .table > tfoot > tr > th.warning,
  2406. .table > thead > tr.warning > td,
  2407. .table > tbody > tr.warning > td,
  2408. .table > tfoot > tr.warning > td,
  2409. .table > thead > tr.warning > th,
  2410. .table > tbody > tr.warning > th,
  2411. .table > tfoot > tr.warning > th {
  2412. background-color: #fcf8e3;
  2413. }
  2414. .table-hover > tbody > tr > td.warning:hover,
  2415. .table-hover > tbody > tr > th.warning:hover,
  2416. .table-hover > tbody > tr.warning:hover > td,
  2417. .table-hover > tbody > tr:hover > .warning,
  2418. .table-hover > tbody > tr.warning:hover > th {
  2419. background-color: #faf2cc;
  2420. }
  2421. .table > thead > tr > td.danger,
  2422. .table > tbody > tr > td.danger,
  2423. .table > tfoot > tr > td.danger,
  2424. .table > thead > tr > th.danger,
  2425. .table > tbody > tr > th.danger,
  2426. .table > tfoot > tr > th.danger,
  2427. .table > thead > tr.danger > td,
  2428. .table > tbody > tr.danger > td,
  2429. .table > tfoot > tr.danger > td,
  2430. .table > thead > tr.danger > th,
  2431. .table > tbody > tr.danger > th,
  2432. .table > tfoot > tr.danger > th {
  2433. background-color: #f2dede;
  2434. }
  2435. .table-hover > tbody > tr > td.danger:hover,
  2436. .table-hover > tbody > tr > th.danger:hover,
  2437. .table-hover > tbody > tr.danger:hover > td,
  2438. .table-hover > tbody > tr:hover > .danger,
  2439. .table-hover > tbody > tr.danger:hover > th {
  2440. background-color: #ebcccc;
  2441. }
  2442. .table-responsive {
  2443. overflow-x: auto;
  2444. min-height: 0.01%;
  2445. }
  2446. @media screen and (max-width: 767px) {
  2447. .table-responsive {
  2448. width: 100%;
  2449. margin-bottom: 13.5px;
  2450. overflow-y: hidden;
  2451. -ms-overflow-style: -ms-autohiding-scrollbar;
  2452. border: 1px solid #ddd;
  2453. }
  2454. .table-responsive > .table {
  2455. margin-bottom: 0;
  2456. }
  2457. .table-responsive > .table > thead > tr > th,
  2458. .table-responsive > .table > tbody > tr > th,
  2459. .table-responsive > .table > tfoot > tr > th,
  2460. .table-responsive > .table > thead > tr > td,
  2461. .table-responsive > .table > tbody > tr > td,
  2462. .table-responsive > .table > tfoot > tr > td {
  2463. white-space: nowrap;
  2464. }
  2465. .table-responsive > .table-bordered {
  2466. border: 0;
  2467. }
  2468. .table-responsive > .table-bordered > thead > tr > th:first-child,
  2469. .table-responsive > .table-bordered > tbody > tr > th:first-child,
  2470. .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  2471. .table-responsive > .table-bordered > thead > tr > td:first-child,
  2472. .table-responsive > .table-bordered > tbody > tr > td:first-child,
  2473. .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  2474. border-left: 0;
  2475. }
  2476. .table-responsive > .table-bordered > thead > tr > th:last-child,
  2477. .table-responsive > .table-bordered > tbody > tr > th:last-child,
  2478. .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  2479. .table-responsive > .table-bordered > thead > tr > td:last-child,
  2480. .table-responsive > .table-bordered > tbody > tr > td:last-child,
  2481. .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  2482. border-right: 0;
  2483. }
  2484. .table-responsive > .table-bordered > tbody > tr:last-child > th,
  2485. .table-responsive > .table-bordered > tfoot > tr:last-child > th,
  2486. .table-responsive > .table-bordered > tbody > tr:last-child > td,
  2487. .table-responsive > .table-bordered > tfoot > tr:last-child > td {
  2488. border-bottom: 0;
  2489. }
  2490. }
  2491. fieldset {
  2492. padding: 0;
  2493. margin: 0;
  2494. border: 0;
  2495. min-width: 0;
  2496. }
  2497. legend {
  2498. display: block;
  2499. width: 100%;
  2500. padding: 0;
  2501. margin-bottom: 18px;
  2502. font-size: 19.5px;
  2503. line-height: inherit;
  2504. color: #333333;
  2505. border: 0;
  2506. border-bottom: 1px solid #e5e5e5;
  2507. }
  2508. label {
  2509. display: inline-block;
  2510. max-width: 100%;
  2511. margin-bottom: 5px;
  2512. font-weight: bold;
  2513. }
  2514. input[type="search"] {
  2515. -webkit-box-sizing: border-box;
  2516. -moz-box-sizing: border-box;
  2517. box-sizing: border-box;
  2518. }
  2519. input[type="radio"],
  2520. input[type="checkbox"] {
  2521. margin: 4px 0 0;
  2522. margin-top: 1px \9;
  2523. line-height: normal;
  2524. }
  2525. input[type="file"] {
  2526. display: block;
  2527. }
  2528. input[type="range"] {
  2529. display: block;
  2530. width: 100%;
  2531. }
  2532. select[multiple],
  2533. select[size] {
  2534. height: auto;
  2535. }
  2536. input[type="file"]:focus,
  2537. input[type="radio"]:focus,
  2538. input[type="checkbox"]:focus {
  2539. outline: thin dotted;
  2540. outline: 5px auto -webkit-focus-ring-color;
  2541. outline-offset: -2px;
  2542. }
  2543. output {
  2544. display: block;
  2545. padding-top: 7px;
  2546. font-size: 13px;
  2547. line-height: 1.42857143;
  2548. color: #555555;
  2549. }
  2550. .form-control {
  2551. display: block;
  2552. width: 100%;
  2553. height: 32px;
  2554. padding: 6px 12px;
  2555. font-size: 13px;
  2556. line-height: 1.42857143;
  2557. color: #555555;
  2558. background-color: #fff;
  2559. background-image: none;
  2560. border: 1px solid #ccc;
  2561. border-radius: 2px;
  2562. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2563. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2564. -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  2565. -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  2566. transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  2567. }
  2568. .form-control:focus {
  2569. border-color: #66afe9;
  2570. outline: 0;
  2571. -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  2572. box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  2573. }
  2574. .form-control::-moz-placeholder {
  2575. color: #999;
  2576. opacity: 1;
  2577. }
  2578. .form-control:-ms-input-placeholder {
  2579. color: #999;
  2580. }
  2581. .form-control::-webkit-input-placeholder {
  2582. color: #999;
  2583. }
  2584. .form-control::-ms-expand {
  2585. border: 0;
  2586. background-color: transparent;
  2587. }
  2588. .form-control[disabled],
  2589. .form-control[readonly],
  2590. fieldset[disabled] .form-control {
  2591. background-color: #eeeeee;
  2592. opacity: 1;
  2593. }
  2594. .form-control[disabled],
  2595. fieldset[disabled] .form-control {
  2596. cursor: not-allowed;
  2597. }
  2598. textarea.form-control {
  2599. height: auto;
  2600. }
  2601. input[type="search"] {
  2602. -webkit-appearance: none;
  2603. }
  2604. @media screen and (-webkit-min-device-pixel-ratio: 0) {
  2605. input[type="date"].form-control,
  2606. input[type="time"].form-control,
  2607. input[type="datetime-local"].form-control,
  2608. input[type="month"].form-control {
  2609. line-height: 32px;
  2610. }
  2611. input[type="date"].input-sm,
  2612. input[type="time"].input-sm,
  2613. input[type="datetime-local"].input-sm,
  2614. input[type="month"].input-sm,
  2615. .input-group-sm input[type="date"],
  2616. .input-group-sm input[type="time"],
  2617. .input-group-sm input[type="datetime-local"],
  2618. .input-group-sm input[type="month"] {
  2619. line-height: 30px;
  2620. }
  2621. input[type="date"].input-lg,
  2622. input[type="time"].input-lg,
  2623. input[type="datetime-local"].input-lg,
  2624. input[type="month"].input-lg,
  2625. .input-group-lg input[type="date"],
  2626. .input-group-lg input[type="time"],
  2627. .input-group-lg input[type="datetime-local"],
  2628. .input-group-lg input[type="month"] {
  2629. line-height: 45px;
  2630. }
  2631. }
  2632. .form-group {
  2633. margin-bottom: 15px;
  2634. }
  2635. .radio,
  2636. .checkbox {
  2637. position: relative;
  2638. display: block;
  2639. margin-top: 10px;
  2640. margin-bottom: 10px;
  2641. }
  2642. .radio label,
  2643. .checkbox label {
  2644. min-height: 18px;
  2645. padding-left: 20px;
  2646. margin-bottom: 0;
  2647. font-weight: normal;
  2648. cursor: pointer;
  2649. }
  2650. .radio input[type="radio"],
  2651. .radio-inline input[type="radio"],
  2652. .checkbox input[type="checkbox"],
  2653. .checkbox-inline input[type="checkbox"] {
  2654. position: absolute;
  2655. margin-left: -20px;
  2656. margin-top: 4px \9;
  2657. }
  2658. .radio + .radio,
  2659. .checkbox + .checkbox {
  2660. margin-top: -5px;
  2661. }
  2662. .radio-inline,
  2663. .checkbox-inline {
  2664. position: relative;
  2665. display: inline-block;
  2666. padding-left: 20px;
  2667. margin-bottom: 0;
  2668. vertical-align: middle;
  2669. font-weight: normal;
  2670. cursor: pointer;
  2671. }
  2672. .radio-inline + .radio-inline,
  2673. .checkbox-inline + .checkbox-inline {
  2674. margin-top: 0;
  2675. margin-left: 10px;
  2676. }
  2677. input[type="radio"][disabled],
  2678. input[type="checkbox"][disabled],
  2679. input[type="radio"].disabled,
  2680. input[type="checkbox"].disabled,
  2681. fieldset[disabled] input[type="radio"],
  2682. fieldset[disabled] input[type="checkbox"] {
  2683. cursor: not-allowed;
  2684. }
  2685. .radio-inline.disabled,
  2686. .checkbox-inline.disabled,
  2687. fieldset[disabled] .radio-inline,
  2688. fieldset[disabled] .checkbox-inline {
  2689. cursor: not-allowed;
  2690. }
  2691. .radio.disabled label,
  2692. .checkbox.disabled label,
  2693. fieldset[disabled] .radio label,
  2694. fieldset[disabled] .checkbox label {
  2695. cursor: not-allowed;
  2696. }
  2697. .form-control-static {
  2698. padding-top: 7px;
  2699. padding-bottom: 7px;
  2700. margin-bottom: 0;
  2701. min-height: 31px;
  2702. }
  2703. .form-control-static.input-lg,
  2704. .form-control-static.input-sm {
  2705. padding-left: 0;
  2706. padding-right: 0;
  2707. }
  2708. .input-sm {
  2709. height: 30px;
  2710. padding: 5px 10px;
  2711. font-size: 12px;
  2712. line-height: 1.5;
  2713. border-radius: 1px;
  2714. }
  2715. select.input-sm {
  2716. height: 30px;
  2717. line-height: 30px;
  2718. }
  2719. textarea.input-sm,
  2720. select[multiple].input-sm {
  2721. height: auto;
  2722. }
  2723. .form-group-sm .form-control {
  2724. height: 30px;
  2725. padding: 5px 10px;
  2726. font-size: 12px;
  2727. line-height: 1.5;
  2728. border-radius: 1px;
  2729. }
  2730. .form-group-sm select.form-control {
  2731. height: 30px;
  2732. line-height: 30px;
  2733. }
  2734. .form-group-sm textarea.form-control,
  2735. .form-group-sm select[multiple].form-control {
  2736. height: auto;
  2737. }
  2738. .form-group-sm .form-control-static {
  2739. height: 30px;
  2740. min-height: 30px;
  2741. padding: 6px 10px;
  2742. font-size: 12px;
  2743. line-height: 1.5;
  2744. }
  2745. .input-lg {
  2746. height: 45px;
  2747. padding: 10px 16px;
  2748. font-size: 17px;
  2749. line-height: 1.3333333;
  2750. border-radius: 3px;
  2751. }
  2752. select.input-lg {
  2753. height: 45px;
  2754. line-height: 45px;
  2755. }
  2756. textarea.input-lg,
  2757. select[multiple].input-lg {
  2758. height: auto;
  2759. }
  2760. .form-group-lg .form-control {
  2761. height: 45px;
  2762. padding: 10px 16px;
  2763. font-size: 17px;
  2764. line-height: 1.3333333;
  2765. border-radius: 3px;
  2766. }
  2767. .form-group-lg select.form-control {
  2768. height: 45px;
  2769. line-height: 45px;
  2770. }
  2771. .form-group-lg textarea.form-control,
  2772. .form-group-lg select[multiple].form-control {
  2773. height: auto;
  2774. }
  2775. .form-group-lg .form-control-static {
  2776. height: 45px;
  2777. min-height: 35px;
  2778. padding: 11px 16px;
  2779. font-size: 17px;
  2780. line-height: 1.3333333;
  2781. }
  2782. .has-feedback {
  2783. position: relative;
  2784. }
  2785. .has-feedback .form-control {
  2786. padding-right: 40px;
  2787. }
  2788. .form-control-feedback {
  2789. position: absolute;
  2790. top: 0;
  2791. right: 0;
  2792. z-index: 2;
  2793. display: block;
  2794. width: 32px;
  2795. height: 32px;
  2796. line-height: 32px;
  2797. text-align: center;
  2798. pointer-events: none;
  2799. }
  2800. .input-lg + .form-control-feedback,
  2801. .input-group-lg + .form-control-feedback,
  2802. .form-group-lg .form-control + .form-control-feedback {
  2803. width: 45px;
  2804. height: 45px;
  2805. line-height: 45px;
  2806. }
  2807. .input-sm + .form-control-feedback,
  2808. .input-group-sm + .form-control-feedback,
  2809. .form-group-sm .form-control + .form-control-feedback {
  2810. width: 30px;
  2811. height: 30px;
  2812. line-height: 30px;
  2813. }
  2814. .has-success .help-block,
  2815. .has-success .control-label,
  2816. .has-success .radio,
  2817. .has-success .checkbox,
  2818. .has-success .radio-inline,
  2819. .has-success .checkbox-inline,
  2820. .has-success.radio label,
  2821. .has-success.checkbox label,
  2822. .has-success.radio-inline label,
  2823. .has-success.checkbox-inline label {
  2824. color: #3c763d;
  2825. }
  2826. .has-success .form-control {
  2827. border-color: #3c763d;
  2828. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2829. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2830. }
  2831. .has-success .form-control:focus {
  2832. border-color: #2b542c;
  2833. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  2834. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  2835. }
  2836. .has-success .input-group-addon {
  2837. color: #3c763d;
  2838. border-color: #3c763d;
  2839. background-color: #dff0d8;
  2840. }
  2841. .has-success .form-control-feedback {
  2842. color: #3c763d;
  2843. }
  2844. .has-warning .help-block,
  2845. .has-warning .control-label,
  2846. .has-warning .radio,
  2847. .has-warning .checkbox,
  2848. .has-warning .radio-inline,
  2849. .has-warning .checkbox-inline,
  2850. .has-warning.radio label,
  2851. .has-warning.checkbox label,
  2852. .has-warning.radio-inline label,
  2853. .has-warning.checkbox-inline label {
  2854. color: #8a6d3b;
  2855. }
  2856. .has-warning .form-control {
  2857. border-color: #8a6d3b;
  2858. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2859. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2860. }
  2861. .has-warning .form-control:focus {
  2862. border-color: #66512c;
  2863. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  2864. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  2865. }
  2866. .has-warning .input-group-addon {
  2867. color: #8a6d3b;
  2868. border-color: #8a6d3b;
  2869. background-color: #fcf8e3;
  2870. }
  2871. .has-warning .form-control-feedback {
  2872. color: #8a6d3b;
  2873. }
  2874. .has-error .help-block,
  2875. .has-error .control-label,
  2876. .has-error .radio,
  2877. .has-error .checkbox,
  2878. .has-error .radio-inline,
  2879. .has-error .checkbox-inline,
  2880. .has-error.radio label,
  2881. .has-error.checkbox label,
  2882. .has-error.radio-inline label,
  2883. .has-error.checkbox-inline label {
  2884. color: #a94442;
  2885. }
  2886. .has-error .form-control {
  2887. border-color: #a94442;
  2888. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2889. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  2890. }
  2891. .has-error .form-control:focus {
  2892. border-color: #843534;
  2893. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  2894. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  2895. }
  2896. .has-error .input-group-addon {
  2897. color: #a94442;
  2898. border-color: #a94442;
  2899. background-color: #f2dede;
  2900. }
  2901. .has-error .form-control-feedback {
  2902. color: #a94442;
  2903. }
  2904. .has-feedback label ~ .form-control-feedback {
  2905. top: 23px;
  2906. }
  2907. .has-feedback label.sr-only ~ .form-control-feedback {
  2908. top: 0;
  2909. }
  2910. .help-block {
  2911. display: block;
  2912. margin-top: 5px;
  2913. margin-bottom: 10px;
  2914. color: #404040;
  2915. }
  2916. @media (min-width: 768px) {
  2917. .form-inline .form-group {
  2918. display: inline-block;
  2919. margin-bottom: 0;
  2920. vertical-align: middle;
  2921. }
  2922. .form-inline .form-control {
  2923. display: inline-block;
  2924. width: auto;
  2925. vertical-align: middle;
  2926. }
  2927. .form-inline .form-control-static {
  2928. display: inline-block;
  2929. }
  2930. .form-inline .input-group {
  2931. display: inline-table;
  2932. vertical-align: middle;
  2933. }
  2934. .form-inline .input-group .input-group-addon,
  2935. .form-inline .input-group .input-group-btn,
  2936. .form-inline .input-group .form-control {
  2937. width: auto;
  2938. }
  2939. .form-inline .input-group > .form-control {
  2940. width: 100%;
  2941. }
  2942. .form-inline .control-label {
  2943. margin-bottom: 0;
  2944. vertical-align: middle;
  2945. }
  2946. .form-inline .radio,
  2947. .form-inline .checkbox {
  2948. display: inline-block;
  2949. margin-top: 0;
  2950. margin-bottom: 0;
  2951. vertical-align: middle;
  2952. }
  2953. .form-inline .radio label,
  2954. .form-inline .checkbox label {
  2955. padding-left: 0;
  2956. }
  2957. .form-inline .radio input[type="radio"],
  2958. .form-inline .checkbox input[type="checkbox"] {
  2959. position: relative;
  2960. margin-left: 0;
  2961. }
  2962. .form-inline .has-feedback .form-control-feedback {
  2963. top: 0;
  2964. }
  2965. }
  2966. .form-horizontal .radio,
  2967. .form-horizontal .checkbox,
  2968. .form-horizontal .radio-inline,
  2969. .form-horizontal .checkbox-inline {
  2970. margin-top: 0;
  2971. margin-bottom: 0;
  2972. padding-top: 7px;
  2973. }
  2974. .form-horizontal .radio,
  2975. .form-horizontal .checkbox {
  2976. min-height: 25px;
  2977. }
  2978. .form-horizontal .form-group {
  2979. margin-left: 0px;
  2980. margin-right: 0px;
  2981. }
  2982. @media (min-width: 768px) {
  2983. .form-horizontal .control-label {
  2984. text-align: right;
  2985. margin-bottom: 0;
  2986. padding-top: 7px;
  2987. }
  2988. }
  2989. .form-horizontal .has-feedback .form-control-feedback {
  2990. right: 0px;
  2991. }
  2992. @media (min-width: 768px) {
  2993. .form-horizontal .form-group-lg .control-label {
  2994. padding-top: 11px;
  2995. font-size: 17px;
  2996. }
  2997. }
  2998. @media (min-width: 768px) {
  2999. .form-horizontal .form-group-sm .control-label {
  3000. padding-top: 6px;
  3001. font-size: 12px;
  3002. }
  3003. }
  3004. .btn {
  3005. display: inline-block;
  3006. margin-bottom: 0;
  3007. font-weight: normal;
  3008. text-align: center;
  3009. vertical-align: middle;
  3010. touch-action: manipulation;
  3011. cursor: pointer;
  3012. background-image: none;
  3013. border: 1px solid transparent;
  3014. white-space: nowrap;
  3015. padding: 6px 12px;
  3016. font-size: 13px;
  3017. line-height: 1.42857143;
  3018. border-radius: 2px;
  3019. -webkit-user-select: none;
  3020. -moz-user-select: none;
  3021. -ms-user-select: none;
  3022. user-select: none;
  3023. }
  3024. .btn:focus,
  3025. .btn:active:focus,
  3026. .btn.active:focus,
  3027. .btn.focus,
  3028. .btn:active.focus,
  3029. .btn.active.focus {
  3030. outline: thin dotted;
  3031. outline: 5px auto -webkit-focus-ring-color;
  3032. outline-offset: -2px;
  3033. }
  3034. .btn:hover,
  3035. .btn:focus,
  3036. .btn.focus {
  3037. color: #333;
  3038. text-decoration: none;
  3039. }
  3040. .btn:active,
  3041. .btn.active {
  3042. outline: 0;
  3043. background-image: none;
  3044. -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  3045. box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  3046. }
  3047. .btn.disabled,
  3048. .btn[disabled],
  3049. fieldset[disabled] .btn {
  3050. cursor: not-allowed;
  3051. opacity: 0.65;
  3052. filter: alpha(opacity=65);
  3053. -webkit-box-shadow: none;
  3054. box-shadow: none;
  3055. }
  3056. a.btn.disabled,
  3057. fieldset[disabled] a.btn {
  3058. pointer-events: none;
  3059. }
  3060. .btn-default {
  3061. color: #333;
  3062. background-color: #fff;
  3063. border-color: #ccc;
  3064. }
  3065. .btn-default:focus,
  3066. .btn-default.focus {
  3067. color: #333;
  3068. background-color: #e6e6e6;
  3069. border-color: #8c8c8c;
  3070. }
  3071. .btn-default:hover {
  3072. color: #333;
  3073. background-color: #e6e6e6;
  3074. border-color: #adadad;
  3075. }
  3076. .btn-default:active,
  3077. .btn-default.active,
  3078. .open > .dropdown-toggle.btn-default {
  3079. color: #333;
  3080. background-color: #e6e6e6;
  3081. border-color: #adadad;
  3082. }
  3083. .btn-default:active:hover,
  3084. .btn-default.active:hover,
  3085. .open > .dropdown-toggle.btn-default:hover,
  3086. .btn-default:active:focus,
  3087. .btn-default.active:focus,
  3088. .open > .dropdown-toggle.btn-default:focus,
  3089. .btn-default:active.focus,
  3090. .btn-default.active.focus,
  3091. .open > .dropdown-toggle.btn-default.focus {
  3092. color: #333;
  3093. background-color: #d4d4d4;
  3094. border-color: #8c8c8c;
  3095. }
  3096. .btn-default:active,
  3097. .btn-default.active,
  3098. .open > .dropdown-toggle.btn-default {
  3099. background-image: none;
  3100. }
  3101. .btn-default.disabled:hover,
  3102. .btn-default[disabled]:hover,
  3103. fieldset[disabled] .btn-default:hover,
  3104. .btn-default.disabled:focus,
  3105. .btn-default[disabled]:focus,
  3106. fieldset[disabled] .btn-default:focus,
  3107. .btn-default.disabled.focus,
  3108. .btn-default[disabled].focus,
  3109. fieldset[disabled] .btn-default.focus {
  3110. background-color: #fff;
  3111. border-color: #ccc;
  3112. }
  3113. .btn-default .badge {
  3114. color: #fff;
  3115. background-color: #333;
  3116. }
  3117. .btn-primary {
  3118. color: #fff;
  3119. background-color: #337ab7;
  3120. border-color: #2e6da4;
  3121. }
  3122. .btn-primary:focus,
  3123. .btn-primary.focus {
  3124. color: #fff;
  3125. background-color: #286090;
  3126. border-color: #122b40;
  3127. }
  3128. .btn-primary:hover {
  3129. color: #fff;
  3130. background-color: #286090;
  3131. border-color: #204d74;
  3132. }
  3133. .btn-primary:active,
  3134. .btn-primary.active,
  3135. .open > .dropdown-toggle.btn-primary {
  3136. color: #fff;
  3137. background-color: #286090;
  3138. border-color: #204d74;
  3139. }
  3140. .btn-primary:active:hover,
  3141. .btn-primary.active:hover,
  3142. .open > .dropdown-toggle.btn-primary:hover,
  3143. .btn-primary:active:focus,
  3144. .btn-primary.active:focus,
  3145. .open > .dropdown-toggle.btn-primary:focus,
  3146. .btn-primary:active.focus,
  3147. .btn-primary.active.focus,
  3148. .open > .dropdown-toggle.btn-primary.focus {
  3149. color: #fff;
  3150. background-color: #204d74;
  3151. border-color: #122b40;
  3152. }
  3153. .btn-primary:active,
  3154. .btn-primary.active,
  3155. .open > .dropdown-toggle.btn-primary {
  3156. background-image: none;
  3157. }
  3158. .btn-primary.disabled:hover,
  3159. .btn-primary[disabled]:hover,
  3160. fieldset[disabled] .btn-primary:hover,
  3161. .btn-primary.disabled:focus,
  3162. .btn-primary[disabled]:focus,
  3163. fieldset[disabled] .btn-primary:focus,
  3164. .btn-primary.disabled.focus,
  3165. .btn-primary[disabled].focus,
  3166. fieldset[disabled] .btn-primary.focus {
  3167. background-color: #337ab7;
  3168. border-color: #2e6da4;
  3169. }
  3170. .btn-primary .badge {
  3171. color: #337ab7;
  3172. background-color: #fff;
  3173. }
  3174. .btn-success {
  3175. color: #fff;
  3176. background-color: #5cb85c;
  3177. border-color: #4cae4c;
  3178. }
  3179. .btn-success:focus,
  3180. .btn-success.focus {
  3181. color: #fff;
  3182. background-color: #449d44;
  3183. border-color: #255625;
  3184. }
  3185. .btn-success:hover {
  3186. color: #fff;
  3187. background-color: #449d44;
  3188. border-color: #398439;
  3189. }
  3190. .btn-success:active,
  3191. .btn-success.active,
  3192. .open > .dropdown-toggle.btn-success {
  3193. color: #fff;
  3194. background-color: #449d44;
  3195. border-color: #398439;
  3196. }
  3197. .btn-success:active:hover,
  3198. .btn-success.active:hover,
  3199. .open > .dropdown-toggle.btn-success:hover,
  3200. .btn-success:active:focus,
  3201. .btn-success.active:focus,
  3202. .open > .dropdown-toggle.btn-success:focus,
  3203. .btn-success:active.focus,
  3204. .btn-success.active.focus,
  3205. .open > .dropdown-toggle.btn-success.focus {
  3206. color: #fff;
  3207. background-color: #398439;
  3208. border-color: #255625;
  3209. }
  3210. .btn-success:active,
  3211. .btn-success.active,
  3212. .open > .dropdown-toggle.btn-success {
  3213. background-image: none;
  3214. }
  3215. .btn-success.disabled:hover,
  3216. .btn-success[disabled]:hover,
  3217. fieldset[disabled] .btn-success:hover,
  3218. .btn-success.disabled:focus,
  3219. .btn-success[disabled]:focus,
  3220. fieldset[disabled] .btn-success:focus,
  3221. .btn-success.disabled.focus,
  3222. .btn-success[disabled].focus,
  3223. fieldset[disabled] .btn-success.focus {
  3224. background-color: #5cb85c;
  3225. border-color: #4cae4c;
  3226. }
  3227. .btn-success .badge {
  3228. color: #5cb85c;
  3229. background-color: #fff;
  3230. }
  3231. .btn-info {
  3232. color: #fff;
  3233. background-color: #5bc0de;
  3234. border-color: #46b8da;
  3235. }
  3236. .btn-info:focus,
  3237. .btn-info.focus {
  3238. color: #fff;
  3239. background-color: #31b0d5;
  3240. border-color: #1b6d85;
  3241. }
  3242. .btn-info:hover {
  3243. color: #fff;
  3244. background-color: #31b0d5;
  3245. border-color: #269abc;
  3246. }
  3247. .btn-info:active,
  3248. .btn-info.active,
  3249. .open > .dropdown-toggle.btn-info {
  3250. color: #fff;
  3251. background-color: #31b0d5;
  3252. border-color: #269abc;
  3253. }
  3254. .btn-info:active:hover,
  3255. .btn-info.active:hover,
  3256. .open > .dropdown-toggle.btn-info:hover,
  3257. .btn-info:active:focus,
  3258. .btn-info.active:focus,
  3259. .open > .dropdown-toggle.btn-info:focus,
  3260. .btn-info:active.focus,
  3261. .btn-info.active.focus,
  3262. .open > .dropdown-toggle.btn-info.focus {
  3263. color: #fff;
  3264. background-color: #269abc;
  3265. border-color: #1b6d85;
  3266. }
  3267. .btn-info:active,
  3268. .btn-info.active,
  3269. .open > .dropdown-toggle.btn-info {
  3270. background-image: none;
  3271. }
  3272. .btn-info.disabled:hover,
  3273. .btn-info[disabled]:hover,
  3274. fieldset[disabled] .btn-info:hover,
  3275. .btn-info.disabled:focus,
  3276. .btn-info[disabled]:focus,
  3277. fieldset[disabled] .btn-info:focus,
  3278. .btn-info.disabled.focus,
  3279. .btn-info[disabled].focus,
  3280. fieldset[disabled] .btn-info.focus {
  3281. background-color: #5bc0de;
  3282. border-color: #46b8da;
  3283. }
  3284. .btn-info .badge {
  3285. color: #5bc0de;
  3286. background-color: #fff;
  3287. }
  3288. .btn-warning {
  3289. color: #fff;
  3290. background-color: #f0ad4e;
  3291. border-color: #eea236;
  3292. }
  3293. .btn-warning:focus,
  3294. .btn-warning.focus {
  3295. color: #fff;
  3296. background-color: #ec971f;
  3297. border-color: #985f0d;
  3298. }
  3299. .btn-warning:hover {
  3300. color: #fff;
  3301. background-color: #ec971f;
  3302. border-color: #d58512;
  3303. }
  3304. .btn-warning:active,
  3305. .btn-warning.active,
  3306. .open > .dropdown-toggle.btn-warning {
  3307. color: #fff;
  3308. background-color: #ec971f;
  3309. border-color: #d58512;
  3310. }
  3311. .btn-warning:active:hover,
  3312. .btn-warning.active:hover,
  3313. .open > .dropdown-toggle.btn-warning:hover,
  3314. .btn-warning:active:focus,
  3315. .btn-warning.active:focus,
  3316. .open > .dropdown-toggle.btn-warning:focus,
  3317. .btn-warning:active.focus,
  3318. .btn-warning.active.focus,
  3319. .open > .dropdown-toggle.btn-warning.focus {
  3320. color: #fff;
  3321. background-color: #d58512;
  3322. border-color: #985f0d;
  3323. }
  3324. .btn-warning:active,
  3325. .btn-warning.active,
  3326. .open > .dropdown-toggle.btn-warning {
  3327. background-image: none;
  3328. }
  3329. .btn-warning.disabled:hover,
  3330. .btn-warning[disabled]:hover,
  3331. fieldset[disabled] .btn-warning:hover,
  3332. .btn-warning.disabled:focus,
  3333. .btn-warning[disabled]:focus,
  3334. fieldset[disabled] .btn-warning:focus,
  3335. .btn-warning.disabled.focus,
  3336. .btn-warning[disabled].focus,
  3337. fieldset[disabled] .btn-warning.focus {
  3338. background-color: #f0ad4e;
  3339. border-color: #eea236;
  3340. }
  3341. .btn-warning .badge {
  3342. color: #f0ad4e;
  3343. background-color: #fff;
  3344. }
  3345. .btn-danger {
  3346. color: #fff;
  3347. background-color: #d9534f;
  3348. border-color: #d43f3a;
  3349. }
  3350. .btn-danger:focus,
  3351. .btn-danger.focus {
  3352. color: #fff;
  3353. background-color: #c9302c;
  3354. border-color: #761c19;
  3355. }
  3356. .btn-danger:hover {
  3357. color: #fff;
  3358. background-color: #c9302c;
  3359. border-color: #ac2925;
  3360. }
  3361. .btn-danger:active,
  3362. .btn-danger.active,
  3363. .open > .dropdown-toggle.btn-danger {
  3364. color: #fff;
  3365. background-color: #c9302c;
  3366. border-color: #ac2925;
  3367. }
  3368. .btn-danger:active:hover,
  3369. .btn-danger.active:hover,
  3370. .open > .dropdown-toggle.btn-danger:hover,
  3371. .btn-danger:active:focus,
  3372. .btn-danger.active:focus,
  3373. .open > .dropdown-toggle.btn-danger:focus,
  3374. .btn-danger:active.focus,
  3375. .btn-danger.active.focus,
  3376. .open > .dropdown-toggle.btn-danger.focus {
  3377. color: #fff;
  3378. background-color: #ac2925;
  3379. border-color: #761c19;
  3380. }
  3381. .btn-danger:active,
  3382. .btn-danger.active,
  3383. .open > .dropdown-toggle.btn-danger {
  3384. background-image: none;
  3385. }
  3386. .btn-danger.disabled:hover,
  3387. .btn-danger[disabled]:hover,
  3388. fieldset[disabled] .btn-danger:hover,
  3389. .btn-danger.disabled:focus,
  3390. .btn-danger[disabled]:focus,
  3391. fieldset[disabled] .btn-danger:focus,
  3392. .btn-danger.disabled.focus,
  3393. .btn-danger[disabled].focus,
  3394. fieldset[disabled] .btn-danger.focus {
  3395. background-color: #d9534f;
  3396. border-color: #d43f3a;
  3397. }
  3398. .btn-danger .badge {
  3399. color: #d9534f;
  3400. background-color: #fff;
  3401. }
  3402. .btn-link {
  3403. color: #337ab7;
  3404. font-weight: normal;
  3405. border-radius: 0;
  3406. }
  3407. .btn-link,
  3408. .btn-link:active,
  3409. .btn-link.active,
  3410. .btn-link[disabled],
  3411. fieldset[disabled] .btn-link {
  3412. background-color: transparent;
  3413. -webkit-box-shadow: none;
  3414. box-shadow: none;
  3415. }
  3416. .btn-link,
  3417. .btn-link:hover,
  3418. .btn-link:focus,
  3419. .btn-link:active {
  3420. border-color: transparent;
  3421. }
  3422. .btn-link:hover,
  3423. .btn-link:focus {
  3424. color: #23527c;
  3425. text-decoration: underline;
  3426. background-color: transparent;
  3427. }
  3428. .btn-link[disabled]:hover,
  3429. fieldset[disabled] .btn-link:hover,
  3430. .btn-link[disabled]:focus,
  3431. fieldset[disabled] .btn-link:focus {
  3432. color: #777777;
  3433. text-decoration: none;
  3434. }
  3435. .btn-lg,
  3436. .btn-group-lg > .btn {
  3437. padding: 10px 16px;
  3438. font-size: 17px;
  3439. line-height: 1.3333333;
  3440. border-radius: 3px;
  3441. }
  3442. .btn-sm,
  3443. .btn-group-sm > .btn {
  3444. padding: 5px 10px;
  3445. font-size: 12px;
  3446. line-height: 1.5;
  3447. border-radius: 1px;
  3448. }
  3449. .btn-xs,
  3450. .btn-group-xs > .btn {
  3451. padding: 1px 5px;
  3452. font-size: 12px;
  3453. line-height: 1.5;
  3454. border-radius: 1px;
  3455. }
  3456. .btn-block {
  3457. display: block;
  3458. width: 100%;
  3459. }
  3460. .btn-block + .btn-block {
  3461. margin-top: 5px;
  3462. }
  3463. input[type="submit"].btn-block,
  3464. input[type="reset"].btn-block,
  3465. input[type="button"].btn-block {
  3466. width: 100%;
  3467. }
  3468. .fade {
  3469. opacity: 0;
  3470. -webkit-transition: opacity 0.15s linear;
  3471. -o-transition: opacity 0.15s linear;
  3472. transition: opacity 0.15s linear;
  3473. }
  3474. .fade.in {
  3475. opacity: 1;
  3476. }
  3477. .collapse {
  3478. display: none;
  3479. }
  3480. .collapse.in {
  3481. display: block;
  3482. }
  3483. tr.collapse.in {
  3484. display: table-row;
  3485. }
  3486. tbody.collapse.in {
  3487. display: table-row-group;
  3488. }
  3489. .collapsing {
  3490. position: relative;
  3491. height: 0;
  3492. overflow: hidden;
  3493. -webkit-transition-property: height, visibility;
  3494. transition-property: height, visibility;
  3495. -webkit-transition-duration: 0.35s;
  3496. transition-duration: 0.35s;
  3497. -webkit-transition-timing-function: ease;
  3498. transition-timing-function: ease;
  3499. }
  3500. .caret {
  3501. display: inline-block;
  3502. width: 0;
  3503. height: 0;
  3504. margin-left: 2px;
  3505. vertical-align: middle;
  3506. border-top: 4px dashed;
  3507. border-top: 4px solid \9;
  3508. border-right: 4px solid transparent;
  3509. border-left: 4px solid transparent;
  3510. }
  3511. .dropup,
  3512. .dropdown {
  3513. position: relative;
  3514. }
  3515. .dropdown-toggle:focus {
  3516. outline: 0;
  3517. }
  3518. .dropdown-menu {
  3519. position: absolute;
  3520. top: 100%;
  3521. left: 0;
  3522. z-index: 1000;
  3523. display: none;
  3524. float: left;
  3525. min-width: 160px;
  3526. padding: 5px 0;
  3527. margin: 2px 0 0;
  3528. list-style: none;
  3529. font-size: 13px;
  3530. text-align: left;
  3531. background-color: #fff;
  3532. border: 1px solid #ccc;
  3533. border: 1px solid rgba(0, 0, 0, 0.15);
  3534. border-radius: 2px;
  3535. -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  3536. box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  3537. background-clip: padding-box;
  3538. }
  3539. .dropdown-menu.pull-right {
  3540. right: 0;
  3541. left: auto;
  3542. }
  3543. .dropdown-menu .divider {
  3544. height: 1px;
  3545. margin: 8px 0;
  3546. overflow: hidden;
  3547. background-color: #e5e5e5;
  3548. }
  3549. .dropdown-menu > li > a {
  3550. display: block;
  3551. padding: 3px 20px;
  3552. clear: both;
  3553. font-weight: normal;
  3554. line-height: 1.42857143;
  3555. color: #333333;
  3556. white-space: nowrap;
  3557. }
  3558. .dropdown-menu > li > a:hover,
  3559. .dropdown-menu > li > a:focus {
  3560. text-decoration: none;
  3561. color: #262626;
  3562. background-color: #f5f5f5;
  3563. }
  3564. .dropdown-menu > .active > a,
  3565. .dropdown-menu > .active > a:hover,
  3566. .dropdown-menu > .active > a:focus {
  3567. color: #fff;
  3568. text-decoration: none;
  3569. outline: 0;
  3570. background-color: #337ab7;
  3571. }
  3572. .dropdown-menu > .disabled > a,
  3573. .dropdown-menu > .disabled > a:hover,
  3574. .dropdown-menu > .disabled > a:focus {
  3575. color: #777777;
  3576. }
  3577. .dropdown-menu > .disabled > a:hover,
  3578. .dropdown-menu > .disabled > a:focus {
  3579. text-decoration: none;
  3580. background-color: transparent;
  3581. background-image: none;
  3582. filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  3583. cursor: not-allowed;
  3584. }
  3585. .open > .dropdown-menu {
  3586. display: block;
  3587. }
  3588. .open > a {
  3589. outline: 0;
  3590. }
  3591. .dropdown-menu-right {
  3592. left: auto;
  3593. right: 0;
  3594. }
  3595. .dropdown-menu-left {
  3596. left: 0;
  3597. right: auto;
  3598. }
  3599. .dropdown-header {
  3600. display: block;
  3601. padding: 3px 20px;
  3602. font-size: 12px;
  3603. line-height: 1.42857143;
  3604. color: #777777;
  3605. white-space: nowrap;
  3606. }
  3607. .dropdown-backdrop {
  3608. position: fixed;
  3609. left: 0;
  3610. right: 0;
  3611. bottom: 0;
  3612. top: 0;
  3613. z-index: 990;
  3614. }
  3615. .pull-right > .dropdown-menu {
  3616. right: 0;
  3617. left: auto;
  3618. }
  3619. .dropup .caret,
  3620. .navbar-fixed-bottom .dropdown .caret {
  3621. border-top: 0;
  3622. border-bottom: 4px dashed;
  3623. border-bottom: 4px solid \9;
  3624. content: "";
  3625. }
  3626. .dropup .dropdown-menu,
  3627. .navbar-fixed-bottom .dropdown .dropdown-menu {
  3628. top: auto;
  3629. bottom: 100%;
  3630. margin-bottom: 2px;
  3631. }
  3632. @media (min-width: 541px) {
  3633. .navbar-right .dropdown-menu {
  3634. left: auto;
  3635. right: 0;
  3636. }
  3637. .navbar-right .dropdown-menu-left {
  3638. left: 0;
  3639. right: auto;
  3640. }
  3641. }
  3642. .btn-group,
  3643. .btn-group-vertical {
  3644. position: relative;
  3645. display: inline-block;
  3646. vertical-align: middle;
  3647. }
  3648. .btn-group > .btn,
  3649. .btn-group-vertical > .btn {
  3650. position: relative;
  3651. float: left;
  3652. }
  3653. .btn-group > .btn:hover,
  3654. .btn-group-vertical > .btn:hover,
  3655. .btn-group > .btn:focus,
  3656. .btn-group-vertical > .btn:focus,
  3657. .btn-group > .btn:active,
  3658. .btn-group-vertical > .btn:active,
  3659. .btn-group > .btn.active,
  3660. .btn-group-vertical > .btn.active {
  3661. z-index: 2;
  3662. }
  3663. .btn-group .btn + .btn,
  3664. .btn-group .btn + .btn-group,
  3665. .btn-group .btn-group + .btn,
  3666. .btn-group .btn-group + .btn-group {
  3667. margin-left: -1px;
  3668. }
  3669. .btn-toolbar {
  3670. margin-left: -5px;
  3671. }
  3672. .btn-toolbar .btn,
  3673. .btn-toolbar .btn-group,
  3674. .btn-toolbar .input-group {
  3675. float: left;
  3676. }
  3677. .btn-toolbar > .btn,
  3678. .btn-toolbar > .btn-group,
  3679. .btn-toolbar > .input-group {
  3680. margin-left: 5px;
  3681. }
  3682. .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
  3683. border-radius: 0;
  3684. }
  3685. .btn-group > .btn:first-child {
  3686. margin-left: 0;
  3687. }
  3688. .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
  3689. border-bottom-right-radius: 0;
  3690. border-top-right-radius: 0;
  3691. }
  3692. .btn-group > .btn:last-child:not(:first-child),
  3693. .btn-group > .dropdown-toggle:not(:first-child) {
  3694. border-bottom-left-radius: 0;
  3695. border-top-left-radius: 0;
  3696. }
  3697. .btn-group > .btn-group {
  3698. float: left;
  3699. }
  3700. .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
  3701. border-radius: 0;
  3702. }
  3703. .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
  3704. .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  3705. border-bottom-right-radius: 0;
  3706. border-top-right-radius: 0;
  3707. }
  3708. .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
  3709. border-bottom-left-radius: 0;
  3710. border-top-left-radius: 0;
  3711. }
  3712. .btn-group .dropdown-toggle:active,
  3713. .btn-group.open .dropdown-toggle {
  3714. outline: 0;
  3715. }
  3716. .btn-group > .btn + .dropdown-toggle {
  3717. padding-left: 8px;
  3718. padding-right: 8px;
  3719. }
  3720. .btn-group > .btn-lg + .dropdown-toggle {
  3721. padding-left: 12px;
  3722. padding-right: 12px;
  3723. }
  3724. .btn-group.open .dropdown-toggle {
  3725. -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  3726. box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  3727. }
  3728. .btn-group.open .dropdown-toggle.btn-link {
  3729. -webkit-box-shadow: none;
  3730. box-shadow: none;
  3731. }
  3732. .btn .caret {
  3733. margin-left: 0;
  3734. }
  3735. .btn-lg .caret {
  3736. border-width: 5px 5px 0;
  3737. border-bottom-width: 0;
  3738. }
  3739. .dropup .btn-lg .caret {
  3740. border-width: 0 5px 5px;
  3741. }
  3742. .btn-group-vertical > .btn,
  3743. .btn-group-vertical > .btn-group,
  3744. .btn-group-vertical > .btn-group > .btn {
  3745. display: block;
  3746. float: none;
  3747. width: 100%;
  3748. max-width: 100%;
  3749. }
  3750. .btn-group-vertical > .btn-group > .btn {
  3751. float: none;
  3752. }
  3753. .btn-group-vertical > .btn + .btn,
  3754. .btn-group-vertical > .btn + .btn-group,
  3755. .btn-group-vertical > .btn-group + .btn,
  3756. .btn-group-vertical > .btn-group + .btn-group {
  3757. margin-top: -1px;
  3758. margin-left: 0;
  3759. }
  3760. .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
  3761. border-radius: 0;
  3762. }
  3763. .btn-group-vertical > .btn:first-child:not(:last-child) {
  3764. border-top-right-radius: 2px;
  3765. border-top-left-radius: 2px;
  3766. border-bottom-right-radius: 0;
  3767. border-bottom-left-radius: 0;
  3768. }
  3769. .btn-group-vertical > .btn:last-child:not(:first-child) {
  3770. border-top-right-radius: 0;
  3771. border-top-left-radius: 0;
  3772. border-bottom-right-radius: 2px;
  3773. border-bottom-left-radius: 2px;
  3774. }
  3775. .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  3776. border-radius: 0;
  3777. }
  3778. .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
  3779. .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  3780. border-bottom-right-radius: 0;
  3781. border-bottom-left-radius: 0;
  3782. }
  3783. .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
  3784. border-top-right-radius: 0;
  3785. border-top-left-radius: 0;
  3786. }
  3787. .btn-group-justified {
  3788. display: table;
  3789. width: 100%;
  3790. table-layout: fixed;
  3791. border-collapse: separate;
  3792. }
  3793. .btn-group-justified > .btn,
  3794. .btn-group-justified > .btn-group {
  3795. float: none;
  3796. display: table-cell;
  3797. width: 1%;
  3798. }
  3799. .btn-group-justified > .btn-group .btn {
  3800. width: 100%;
  3801. }
  3802. .btn-group-justified > .btn-group .dropdown-menu {
  3803. left: auto;
  3804. }
  3805. [data-toggle="buttons"] > .btn input[type="radio"],
  3806. [data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
  3807. [data-toggle="buttons"] > .btn input[type="checkbox"],
  3808. [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
  3809. position: absolute;
  3810. clip: rect(0, 0, 0, 0);
  3811. pointer-events: none;
  3812. }
  3813. .input-group {
  3814. position: relative;
  3815. display: table;
  3816. border-collapse: separate;
  3817. }
  3818. .input-group[class*="col-"] {
  3819. float: none;
  3820. padding-left: 0;
  3821. padding-right: 0;
  3822. }
  3823. .input-group .form-control {
  3824. position: relative;
  3825. z-index: 2;
  3826. float: left;
  3827. width: 100%;
  3828. margin-bottom: 0;
  3829. }
  3830. .input-group .form-control:focus {
  3831. z-index: 3;
  3832. }
  3833. .input-group-lg > .form-control,
  3834. .input-group-lg > .input-group-addon,
  3835. .input-group-lg > .input-group-btn > .btn {
  3836. height: 45px;
  3837. padding: 10px 16px;
  3838. font-size: 17px;
  3839. line-height: 1.3333333;
  3840. border-radius: 3px;
  3841. }
  3842. select.input-group-lg > .form-control,
  3843. select.input-group-lg > .input-group-addon,
  3844. select.input-group-lg > .input-group-btn > .btn {
  3845. height: 45px;
  3846. line-height: 45px;
  3847. }
  3848. textarea.input-group-lg > .form-control,
  3849. textarea.input-group-lg > .input-group-addon,
  3850. textarea.input-group-lg > .input-group-btn > .btn,
  3851. select[multiple].input-group-lg > .form-control,
  3852. select[multiple].input-group-lg > .input-group-addon,
  3853. select[multiple].input-group-lg > .input-group-btn > .btn {
  3854. height: auto;
  3855. }
  3856. .input-group-sm > .form-control,
  3857. .input-group-sm > .input-group-addon,
  3858. .input-group-sm > .input-group-btn > .btn {
  3859. height: 30px;
  3860. padding: 5px 10px;
  3861. font-size: 12px;
  3862. line-height: 1.5;
  3863. border-radius: 1px;
  3864. }
  3865. select.input-group-sm > .form-control,
  3866. select.input-group-sm > .input-group-addon,
  3867. select.input-group-sm > .input-group-btn > .btn {
  3868. height: 30px;
  3869. line-height: 30px;
  3870. }
  3871. textarea.input-group-sm > .form-control,
  3872. textarea.input-group-sm > .input-group-addon,
  3873. textarea.input-group-sm > .input-group-btn > .btn,
  3874. select[multiple].input-group-sm > .form-control,
  3875. select[multiple].input-group-sm > .input-group-addon,
  3876. select[multiple].input-group-sm > .input-group-btn > .btn {
  3877. height: auto;
  3878. }
  3879. .input-group-addon,
  3880. .input-group-btn,
  3881. .input-group .form-control {
  3882. display: table-cell;
  3883. }
  3884. .input-group-addon:not(:first-child):not(:last-child),
  3885. .input-group-btn:not(:first-child):not(:last-child),
  3886. .input-group .form-control:not(:first-child):not(:last-child) {
  3887. border-radius: 0;
  3888. }
  3889. .input-group-addon,
  3890. .input-group-btn {
  3891. width: 1%;
  3892. white-space: nowrap;
  3893. vertical-align: middle;
  3894. }
  3895. .input-group-addon {
  3896. padding: 6px 12px;
  3897. font-size: 13px;
  3898. font-weight: normal;
  3899. line-height: 1;
  3900. color: #555555;
  3901. text-align: center;
  3902. background-color: #eeeeee;
  3903. border: 1px solid #ccc;
  3904. border-radius: 2px;
  3905. }
  3906. .input-group-addon.input-sm {
  3907. padding: 5px 10px;
  3908. font-size: 12px;
  3909. border-radius: 1px;
  3910. }
  3911. .input-group-addon.input-lg {
  3912. padding: 10px 16px;
  3913. font-size: 17px;
  3914. border-radius: 3px;
  3915. }
  3916. .input-group-addon input[type="radio"],
  3917. .input-group-addon input[type="checkbox"] {
  3918. margin-top: 0;
  3919. }
  3920. .input-group .form-control:first-child,
  3921. .input-group-addon:first-child,
  3922. .input-group-btn:first-child > .btn,
  3923. .input-group-btn:first-child > .btn-group > .btn,
  3924. .input-group-btn:first-child > .dropdown-toggle,
  3925. .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
  3926. .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
  3927. border-bottom-right-radius: 0;
  3928. border-top-right-radius: 0;
  3929. }
  3930. .input-group-addon:first-child {
  3931. border-right: 0;
  3932. }
  3933. .input-group .form-control:last-child,
  3934. .input-group-addon:last-child,
  3935. .input-group-btn:last-child > .btn,
  3936. .input-group-btn:last-child > .btn-group > .btn,
  3937. .input-group-btn:last-child > .dropdown-toggle,
  3938. .input-group-btn:first-child > .btn:not(:first-child),
  3939. .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
  3940. border-bottom-left-radius: 0;
  3941. border-top-left-radius: 0;
  3942. }
  3943. .input-group-addon:last-child {
  3944. border-left: 0;
  3945. }
  3946. .input-group-btn {
  3947. position: relative;
  3948. font-size: 0;
  3949. white-space: nowrap;
  3950. }
  3951. .input-group-btn > .btn {
  3952. position: relative;
  3953. }
  3954. .input-group-btn > .btn + .btn {
  3955. margin-left: -1px;
  3956. }
  3957. .input-group-btn > .btn:hover,
  3958. .input-group-btn > .btn:focus,
  3959. .input-group-btn > .btn:active {
  3960. z-index: 2;
  3961. }
  3962. .input-group-btn:first-child > .btn,
  3963. .input-group-btn:first-child > .btn-group {
  3964. margin-right: -1px;
  3965. }
  3966. .input-group-btn:last-child > .btn,
  3967. .input-group-btn:last-child > .btn-group {
  3968. z-index: 2;
  3969. margin-left: -1px;
  3970. }
  3971. .nav {
  3972. margin-bottom: 0;
  3973. padding-left: 0;
  3974. list-style: none;
  3975. }
  3976. .nav > li {
  3977. position: relative;
  3978. display: block;
  3979. }
  3980. .nav > li > a {
  3981. position: relative;
  3982. display: block;
  3983. padding: 10px 15px;
  3984. }
  3985. .nav > li > a:hover,
  3986. .nav > li > a:focus {
  3987. text-decoration: none;
  3988. background-color: #eeeeee;
  3989. }
  3990. .nav > li.disabled > a {
  3991. color: #777777;
  3992. }
  3993. .nav > li.disabled > a:hover,
  3994. .nav > li.disabled > a:focus {
  3995. color: #777777;
  3996. text-decoration: none;
  3997. background-color: transparent;
  3998. cursor: not-allowed;
  3999. }
  4000. .nav .open > a,
  4001. .nav .open > a:hover,
  4002. .nav .open > a:focus {
  4003. background-color: #eeeeee;
  4004. border-color: #337ab7;
  4005. }
  4006. .nav .nav-divider {
  4007. height: 1px;
  4008. margin: 8px 0;
  4009. overflow: hidden;
  4010. background-color: #e5e5e5;
  4011. }
  4012. .nav > li > a > img {
  4013. max-width: none;
  4014. }
  4015. .nav-tabs {
  4016. border-bottom: 1px solid #ddd;
  4017. }
  4018. .nav-tabs > li {
  4019. float: left;
  4020. margin-bottom: -1px;
  4021. }
  4022. .nav-tabs > li > a {
  4023. margin-right: 2px;
  4024. line-height: 1.42857143;
  4025. border: 1px solid transparent;
  4026. border-radius: 2px 2px 0 0;
  4027. }
  4028. .nav-tabs > li > a:hover {
  4029. border-color: #eeeeee #eeeeee #ddd;
  4030. }
  4031. .nav-tabs > li.active > a,
  4032. .nav-tabs > li.active > a:hover,
  4033. .nav-tabs > li.active > a:focus {
  4034. color: #555555;
  4035. background-color: #fff;
  4036. border: 1px solid #ddd;
  4037. border-bottom-color: transparent;
  4038. cursor: default;
  4039. }
  4040. .nav-tabs.nav-justified {
  4041. width: 100%;
  4042. border-bottom: 0;
  4043. }
  4044. .nav-tabs.nav-justified > li {
  4045. float: none;
  4046. }
  4047. .nav-tabs.nav-justified > li > a {
  4048. text-align: center;
  4049. margin-bottom: 5px;
  4050. }
  4051. .nav-tabs.nav-justified > .dropdown .dropdown-menu {
  4052. top: auto;
  4053. left: auto;
  4054. }
  4055. @media (min-width: 768px) {
  4056. .nav-tabs.nav-justified > li {
  4057. display: table-cell;
  4058. width: 1%;
  4059. }
  4060. .nav-tabs.nav-justified > li > a {
  4061. margin-bottom: 0;
  4062. }
  4063. }
  4064. .nav-tabs.nav-justified > li > a {
  4065. margin-right: 0;
  4066. border-radius: 2px;
  4067. }
  4068. .nav-tabs.nav-justified > .active > a,
  4069. .nav-tabs.nav-justified > .active > a:hover,
  4070. .nav-tabs.nav-justified > .active > a:focus {
  4071. border: 1px solid #ddd;
  4072. }
  4073. @media (min-width: 768px) {
  4074. .nav-tabs.nav-justified > li > a {
  4075. border-bottom: 1px solid #ddd;
  4076. border-radius: 2px 2px 0 0;
  4077. }
  4078. .nav-tabs.nav-justified > .active > a,
  4079. .nav-tabs.nav-justified > .active > a:hover,
  4080. .nav-tabs.nav-justified > .active > a:focus {
  4081. border-bottom-color: #fff;
  4082. }
  4083. }
  4084. .nav-pills > li {
  4085. float: left;
  4086. }
  4087. .nav-pills > li > a {
  4088. border-radius: 2px;
  4089. }
  4090. .nav-pills > li + li {
  4091. margin-left: 2px;
  4092. }
  4093. .nav-pills > li.active > a,
  4094. .nav-pills > li.active > a:hover,
  4095. .nav-pills > li.active > a:focus {
  4096. color: #fff;
  4097. background-color: #337ab7;
  4098. }
  4099. .nav-stacked > li {
  4100. float: none;
  4101. }
  4102. .nav-stacked > li + li {
  4103. margin-top: 2px;
  4104. margin-left: 0;
  4105. }
  4106. .nav-justified {
  4107. width: 100%;
  4108. }
  4109. .nav-justified > li {
  4110. float: none;
  4111. }
  4112. .nav-justified > li > a {
  4113. text-align: center;
  4114. margin-bottom: 5px;
  4115. }
  4116. .nav-justified > .dropdown .dropdown-menu {
  4117. top: auto;
  4118. left: auto;
  4119. }
  4120. @media (min-width: 768px) {
  4121. .nav-justified > li {
  4122. display: table-cell;
  4123. width: 1%;
  4124. }
  4125. .nav-justified > li > a {
  4126. margin-bottom: 0;
  4127. }
  4128. }
  4129. .nav-tabs-justified {
  4130. border-bottom: 0;
  4131. }
  4132. .nav-tabs-justified > li > a {
  4133. margin-right: 0;
  4134. border-radius: 2px;
  4135. }
  4136. .nav-tabs-justified > .active > a,
  4137. .nav-tabs-justified > .active > a:hover,
  4138. .nav-tabs-justified > .active > a:focus {
  4139. border: 1px solid #ddd;
  4140. }
  4141. @media (min-width: 768px) {
  4142. .nav-tabs-justified > li > a {
  4143. border-bottom: 1px solid #ddd;
  4144. border-radius: 2px 2px 0 0;
  4145. }
  4146. .nav-tabs-justified > .active > a,
  4147. .nav-tabs-justified > .active > a:hover,
  4148. .nav-tabs-justified > .active > a:focus {
  4149. border-bottom-color: #fff;
  4150. }
  4151. }
  4152. .tab-content > .tab-pane {
  4153. display: none;
  4154. }
  4155. .tab-content > .active {
  4156. display: block;
  4157. }
  4158. .nav-tabs .dropdown-menu {
  4159. margin-top: -1px;
  4160. border-top-right-radius: 0;
  4161. border-top-left-radius: 0;
  4162. }
  4163. .navbar {
  4164. position: relative;
  4165. min-height: 30px;
  4166. margin-bottom: 18px;
  4167. border: 1px solid transparent;
  4168. }
  4169. @media (min-width: 541px) {
  4170. .navbar {
  4171. border-radius: 2px;
  4172. }
  4173. }
  4174. @media (min-width: 541px) {
  4175. .navbar-header {
  4176. float: left;
  4177. }
  4178. }
  4179. .navbar-collapse {
  4180. overflow-x: visible;
  4181. padding-right: 0px;
  4182. padding-left: 0px;
  4183. border-top: 1px solid transparent;
  4184. box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  4185. -webkit-overflow-scrolling: touch;
  4186. }
  4187. .navbar-collapse.in {
  4188. overflow-y: auto;
  4189. }
  4190. @media (min-width: 541px) {
  4191. .navbar-collapse {
  4192. width: auto;
  4193. border-top: 0;
  4194. box-shadow: none;
  4195. }
  4196. .navbar-collapse.collapse {
  4197. display: block !important;
  4198. height: auto !important;
  4199. padding-bottom: 0;
  4200. overflow: visible !important;
  4201. }
  4202. .navbar-collapse.in {
  4203. overflow-y: visible;
  4204. }
  4205. .navbar-fixed-top .navbar-collapse,
  4206. .navbar-static-top .navbar-collapse,
  4207. .navbar-fixed-bottom .navbar-collapse {
  4208. padding-left: 0;
  4209. padding-right: 0;
  4210. }
  4211. }
  4212. .navbar-fixed-top .navbar-collapse,
  4213. .navbar-fixed-bottom .navbar-collapse {
  4214. max-height: 340px;
  4215. }
  4216. @media (max-device-width: 540px) and (orientation: landscape) {
  4217. .navbar-fixed-top .navbar-collapse,
  4218. .navbar-fixed-bottom .navbar-collapse {
  4219. max-height: 200px;
  4220. }
  4221. }
  4222. .container > .navbar-header,
  4223. .container-fluid > .navbar-header,
  4224. .container > .navbar-collapse,
  4225. .container-fluid > .navbar-collapse {
  4226. margin-right: 0px;
  4227. margin-left: 0px;
  4228. }
  4229. @media (min-width: 541px) {
  4230. .container > .navbar-header,
  4231. .container-fluid > .navbar-header,
  4232. .container > .navbar-collapse,
  4233. .container-fluid > .navbar-collapse {
  4234. margin-right: 0;
  4235. margin-left: 0;
  4236. }
  4237. }
  4238. .navbar-static-top {
  4239. z-index: 1000;
  4240. border-width: 0 0 1px;
  4241. }
  4242. @media (min-width: 541px) {
  4243. .navbar-static-top {
  4244. border-radius: 0;
  4245. }
  4246. }
  4247. .navbar-fixed-top,
  4248. .navbar-fixed-bottom {
  4249. position: fixed;
  4250. right: 0;
  4251. left: 0;
  4252. z-index: 1030;
  4253. }
  4254. @media (min-width: 541px) {
  4255. .navbar-fixed-top,
  4256. .navbar-fixed-bottom {
  4257. border-radius: 0;
  4258. }
  4259. }
  4260. .navbar-fixed-top {
  4261. top: 0;
  4262. border-width: 0 0 1px;
  4263. }
  4264. .navbar-fixed-bottom {
  4265. bottom: 0;
  4266. margin-bottom: 0;
  4267. border-width: 1px 0 0;
  4268. }
  4269. .navbar-brand {
  4270. float: left;
  4271. padding: 6px 0px;
  4272. font-size: 17px;
  4273. line-height: 18px;
  4274. height: 30px;
  4275. }
  4276. .navbar-brand:hover,
  4277. .navbar-brand:focus {
  4278. text-decoration: none;
  4279. }
  4280. .navbar-brand > img {
  4281. display: block;
  4282. }
  4283. @media (min-width: 541px) {
  4284. .navbar > .container .navbar-brand,
  4285. .navbar > .container-fluid .navbar-brand {
  4286. margin-left: 0px;
  4287. }
  4288. }
  4289. .navbar-toggle {
  4290. position: relative;
  4291. float: right;
  4292. margin-right: 0px;
  4293. padding: 9px 10px;
  4294. margin-top: -2px;
  4295. margin-bottom: -2px;
  4296. background-color: transparent;
  4297. background-image: none;
  4298. border: 1px solid transparent;
  4299. border-radius: 2px;
  4300. }
  4301. .navbar-toggle:focus {
  4302. outline: 0;
  4303. }
  4304. .navbar-toggle .icon-bar {
  4305. display: block;
  4306. width: 22px;
  4307. height: 2px;
  4308. border-radius: 1px;
  4309. }
  4310. .navbar-toggle .icon-bar + .icon-bar {
  4311. margin-top: 4px;
  4312. }
  4313. @media (min-width: 541px) {
  4314. .navbar-toggle {
  4315. display: none;
  4316. }
  4317. }
  4318. .navbar-nav {
  4319. margin: 3px 0px;
  4320. }
  4321. .navbar-nav > li > a {
  4322. padding-top: 10px;
  4323. padding-bottom: 10px;
  4324. line-height: 18px;
  4325. }
  4326. @media (max-width: 540px) {
  4327. .navbar-nav .open .dropdown-menu {
  4328. position: static;
  4329. float: none;
  4330. width: auto;
  4331. margin-top: 0;
  4332. background-color: transparent;
  4333. border: 0;
  4334. box-shadow: none;
  4335. }
  4336. .navbar-nav .open .dropdown-menu > li > a,
  4337. .navbar-nav .open .dropdown-menu .dropdown-header {
  4338. padding: 5px 15px 5px 25px;
  4339. }
  4340. .navbar-nav .open .dropdown-menu > li > a {
  4341. line-height: 18px;
  4342. }
  4343. .navbar-nav .open .dropdown-menu > li > a:hover,
  4344. .navbar-nav .open .dropdown-menu > li > a:focus {
  4345. background-image: none;
  4346. }
  4347. }
  4348. @media (min-width: 541px) {
  4349. .navbar-nav {
  4350. float: left;
  4351. margin: 0;
  4352. }
  4353. .navbar-nav > li {
  4354. float: left;
  4355. }
  4356. .navbar-nav > li > a {
  4357. padding-top: 6px;
  4358. padding-bottom: 6px;
  4359. }
  4360. }
  4361. .navbar-form {
  4362. margin-left: 0px;
  4363. margin-right: 0px;
  4364. padding: 10px 0px;
  4365. border-top: 1px solid transparent;
  4366. border-bottom: 1px solid transparent;
  4367. -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  4368. box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  4369. margin-top: -1px;
  4370. margin-bottom: -1px;
  4371. }
  4372. @media (min-width: 768px) {
  4373. .navbar-form .form-group {
  4374. display: inline-block;
  4375. margin-bottom: 0;
  4376. vertical-align: middle;
  4377. }
  4378. .navbar-form .form-control {
  4379. display: inline-block;
  4380. width: auto;
  4381. vertical-align: middle;
  4382. }
  4383. .navbar-form .form-control-static {
  4384. display: inline-block;
  4385. }
  4386. .navbar-form .input-group {
  4387. display: inline-table;
  4388. vertical-align: middle;
  4389. }
  4390. .navbar-form .input-group .input-group-addon,
  4391. .navbar-form .input-group .input-group-btn,
  4392. .navbar-form .input-group .form-control {
  4393. width: auto;
  4394. }
  4395. .navbar-form .input-group > .form-control {
  4396. width: 100%;
  4397. }
  4398. .navbar-form .control-label {
  4399. margin-bottom: 0;
  4400. vertical-align: middle;
  4401. }
  4402. .navbar-form .radio,
  4403. .navbar-form .checkbox {
  4404. display: inline-block;
  4405. margin-top: 0;
  4406. margin-bottom: 0;
  4407. vertical-align: middle;
  4408. }
  4409. .navbar-form .radio label,
  4410. .navbar-form .checkbox label {
  4411. padding-left: 0;
  4412. }
  4413. .navbar-form .radio input[type="radio"],
  4414. .navbar-form .checkbox input[type="checkbox"] {
  4415. position: relative;
  4416. margin-left: 0;
  4417. }
  4418. .navbar-form .has-feedback .form-control-feedback {
  4419. top: 0;
  4420. }
  4421. }
  4422. @media (max-width: 540px) {
  4423. .navbar-form .form-group {
  4424. margin-bottom: 5px;
  4425. }
  4426. .navbar-form .form-group:last-child {
  4427. margin-bottom: 0;
  4428. }
  4429. }
  4430. @media (min-width: 541px) {
  4431. .navbar-form {
  4432. width: auto;
  4433. border: 0;
  4434. margin-left: 0;
  4435. margin-right: 0;
  4436. padding-top: 0;
  4437. padding-bottom: 0;
  4438. -webkit-box-shadow: none;
  4439. box-shadow: none;
  4440. }
  4441. }
  4442. .navbar-nav > li > .dropdown-menu {
  4443. margin-top: 0;
  4444. border-top-right-radius: 0;
  4445. border-top-left-radius: 0;
  4446. }
  4447. .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
  4448. margin-bottom: 0;
  4449. border-top-right-radius: 2px;
  4450. border-top-left-radius: 2px;
  4451. border-bottom-right-radius: 0;
  4452. border-bottom-left-radius: 0;
  4453. }
  4454. .navbar-btn {
  4455. margin-top: -1px;
  4456. margin-bottom: -1px;
  4457. }
  4458. .navbar-btn.btn-sm {
  4459. margin-top: 0px;
  4460. margin-bottom: 0px;
  4461. }
  4462. .navbar-btn.btn-xs {
  4463. margin-top: 4px;
  4464. margin-bottom: 4px;
  4465. }
  4466. .navbar-text {
  4467. margin-top: 6px;
  4468. margin-bottom: 6px;
  4469. }
  4470. @media (min-width: 541px) {
  4471. .navbar-text {
  4472. float: left;
  4473. margin-left: 0px;
  4474. margin-right: 0px;
  4475. }
  4476. }
  4477. @media (min-width: 541px) {
  4478. .navbar-left {
  4479. float: left !important;
  4480. float: left;
  4481. }
  4482. .navbar-right {
  4483. float: right !important;
  4484. float: right;
  4485. margin-right: 0px;
  4486. }
  4487. .navbar-right ~ .navbar-right {
  4488. margin-right: 0;
  4489. }
  4490. }
  4491. .navbar-default {
  4492. background-color: #f8f8f8;
  4493. border-color: #e7e7e7;
  4494. }
  4495. .navbar-default .navbar-brand {
  4496. color: #777;
  4497. }
  4498. .navbar-default .navbar-brand:hover,
  4499. .navbar-default .navbar-brand:focus {
  4500. color: #5e5e5e;
  4501. background-color: transparent;
  4502. }
  4503. .navbar-default .navbar-text {
  4504. color: #777;
  4505. }
  4506. .navbar-default .navbar-nav > li > a {
  4507. color: #777;
  4508. }
  4509. .navbar-default .navbar-nav > li > a:hover,
  4510. .navbar-default .navbar-nav > li > a:focus {
  4511. color: #333;
  4512. background-color: transparent;
  4513. }
  4514. .navbar-default .navbar-nav > .active > a,
  4515. .navbar-default .navbar-nav > .active > a:hover,
  4516. .navbar-default .navbar-nav > .active > a:focus {
  4517. color: #555;
  4518. background-color: #e7e7e7;
  4519. }
  4520. .navbar-default .navbar-nav > .disabled > a,
  4521. .navbar-default .navbar-nav > .disabled > a:hover,
  4522. .navbar-default .navbar-nav > .disabled > a:focus {
  4523. color: #ccc;
  4524. background-color: transparent;
  4525. }
  4526. .navbar-default .navbar-toggle {
  4527. border-color: #ddd;
  4528. }
  4529. .navbar-default .navbar-toggle:hover,
  4530. .navbar-default .navbar-toggle:focus {
  4531. background-color: #ddd;
  4532. }
  4533. .navbar-default .navbar-toggle .icon-bar {
  4534. background-color: #888;
  4535. }
  4536. .navbar-default .navbar-collapse,
  4537. .navbar-default .navbar-form {
  4538. border-color: #e7e7e7;
  4539. }
  4540. .navbar-default .navbar-nav > .open > a,
  4541. .navbar-default .navbar-nav > .open > a:hover,
  4542. .navbar-default .navbar-nav > .open > a:focus {
  4543. background-color: #e7e7e7;
  4544. color: #555;
  4545. }
  4546. @media (max-width: 540px) {
  4547. .navbar-default .navbar-nav .open .dropdown-menu > li > a {
  4548. color: #777;
  4549. }
  4550. .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  4551. .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
  4552. color: #333;
  4553. background-color: transparent;
  4554. }
  4555. .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
  4556. .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
  4557. .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
  4558. color: #555;
  4559. background-color: #e7e7e7;
  4560. }
  4561. .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
  4562. .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  4563. .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
  4564. color: #ccc;
  4565. background-color: transparent;
  4566. }
  4567. }
  4568. .navbar-default .navbar-link {
  4569. color: #777;
  4570. }
  4571. .navbar-default .navbar-link:hover {
  4572. color: #333;
  4573. }
  4574. .navbar-default .btn-link {
  4575. color: #777;
  4576. }
  4577. .navbar-default .btn-link:hover,
  4578. .navbar-default .btn-link:focus {
  4579. color: #333;
  4580. }
  4581. .navbar-default .btn-link[disabled]:hover,
  4582. fieldset[disabled] .navbar-default .btn-link:hover,
  4583. .navbar-default .btn-link[disabled]:focus,
  4584. fieldset[disabled] .navbar-default .btn-link:focus {
  4585. color: #ccc;
  4586. }
  4587. .navbar-inverse {
  4588. background-color: #222;
  4589. border-color: #080808;
  4590. }
  4591. .navbar-inverse .navbar-brand {
  4592. color: #9d9d9d;
  4593. }
  4594. .navbar-inverse .navbar-brand:hover,
  4595. .navbar-inverse .navbar-brand:focus {
  4596. color: #fff;
  4597. background-color: transparent;
  4598. }
  4599. .navbar-inverse .navbar-text {
  4600. color: #9d9d9d;
  4601. }
  4602. .navbar-inverse .navbar-nav > li > a {
  4603. color: #9d9d9d;
  4604. }
  4605. .navbar-inverse .navbar-nav > li > a:hover,
  4606. .navbar-inverse .navbar-nav > li > a:focus {
  4607. color: #fff;
  4608. background-color: transparent;
  4609. }
  4610. .navbar-inverse .navbar-nav > .active > a,
  4611. .navbar-inverse .navbar-nav > .active > a:hover,
  4612. .navbar-inverse .navbar-nav > .active > a:focus {
  4613. color: #fff;
  4614. background-color: #080808;
  4615. }
  4616. .navbar-inverse .navbar-nav > .disabled > a,
  4617. .navbar-inverse .navbar-nav > .disabled > a:hover,
  4618. .navbar-inverse .navbar-nav > .disabled > a:focus {
  4619. color: #444;
  4620. background-color: transparent;
  4621. }
  4622. .navbar-inverse .navbar-toggle {
  4623. border-color: #333;
  4624. }
  4625. .navbar-inverse .navbar-toggle:hover,
  4626. .navbar-inverse .navbar-toggle:focus {
  4627. background-color: #333;
  4628. }
  4629. .navbar-inverse .navbar-toggle .icon-bar {
  4630. background-color: #fff;
  4631. }
  4632. .navbar-inverse .navbar-collapse,
  4633. .navbar-inverse .navbar-form {
  4634. border-color: #101010;
  4635. }
  4636. .navbar-inverse .navbar-nav > .open > a,
  4637. .navbar-inverse .navbar-nav > .open > a:hover,
  4638. .navbar-inverse .navbar-nav > .open > a:focus {
  4639. background-color: #080808;
  4640. color: #fff;
  4641. }
  4642. @media (max-width: 540px) {
  4643. .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
  4644. border-color: #080808;
  4645. }
  4646. .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
  4647. background-color: #080808;
  4648. }
  4649. .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
  4650. color: #9d9d9d;
  4651. }
  4652. .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  4653. .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
  4654. color: #fff;
  4655. background-color: transparent;
  4656. }
  4657. .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
  4658. .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
  4659. .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
  4660. color: #fff;
  4661. background-color: #080808;
  4662. }
  4663. .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
  4664. .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  4665. .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
  4666. color: #444;
  4667. background-color: transparent;
  4668. }
  4669. }
  4670. .navbar-inverse .navbar-link {
  4671. color: #9d9d9d;
  4672. }
  4673. .navbar-inverse .navbar-link:hover {
  4674. color: #fff;
  4675. }
  4676. .navbar-inverse .btn-link {
  4677. color: #9d9d9d;
  4678. }
  4679. .navbar-inverse .btn-link:hover,
  4680. .navbar-inverse .btn-link:focus {
  4681. color: #fff;
  4682. }
  4683. .navbar-inverse .btn-link[disabled]:hover,
  4684. fieldset[disabled] .navbar-inverse .btn-link:hover,
  4685. .navbar-inverse .btn-link[disabled]:focus,
  4686. fieldset[disabled] .navbar-inverse .btn-link:focus {
  4687. color: #444;
  4688. }
  4689. .breadcrumb {
  4690. padding: 8px 15px;
  4691. margin-bottom: 18px;
  4692. list-style: none;
  4693. background-color: #f5f5f5;
  4694. border-radius: 2px;
  4695. }
  4696. .breadcrumb > li {
  4697. display: inline-block;
  4698. }
  4699. .breadcrumb > li + li:before {
  4700. content: "/\00a0";
  4701. padding: 0 5px;
  4702. color: #5e5e5e;
  4703. }
  4704. .breadcrumb > .active {
  4705. color: #777777;
  4706. }
  4707. .pagination {
  4708. display: inline-block;
  4709. padding-left: 0;
  4710. margin: 18px 0;
  4711. border-radius: 2px;
  4712. }
  4713. .pagination > li {
  4714. display: inline;
  4715. }
  4716. .pagination > li > a,
  4717. .pagination > li > span {
  4718. position: relative;
  4719. float: left;
  4720. padding: 6px 12px;
  4721. line-height: 1.42857143;
  4722. text-decoration: none;
  4723. color: #337ab7;
  4724. background-color: #fff;
  4725. border: 1px solid #ddd;
  4726. margin-left: -1px;
  4727. }
  4728. .pagination > li:first-child > a,
  4729. .pagination > li:first-child > span {
  4730. margin-left: 0;
  4731. border-bottom-left-radius: 2px;
  4732. border-top-left-radius: 2px;
  4733. }
  4734. .pagination > li:last-child > a,
  4735. .pagination > li:last-child > span {
  4736. border-bottom-right-radius: 2px;
  4737. border-top-right-radius: 2px;
  4738. }
  4739. .pagination > li > a:hover,
  4740. .pagination > li > span:hover,
  4741. .pagination > li > a:focus,
  4742. .pagination > li > span:focus {
  4743. z-index: 2;
  4744. color: #23527c;
  4745. background-color: #eeeeee;
  4746. border-color: #ddd;
  4747. }
  4748. .pagination > .active > a,
  4749. .pagination > .active > span,
  4750. .pagination > .active > a:hover,
  4751. .pagination > .active > span:hover,
  4752. .pagination > .active > a:focus,
  4753. .pagination > .active > span:focus {
  4754. z-index: 3;
  4755. color: #fff;
  4756. background-color: #337ab7;
  4757. border-color: #337ab7;
  4758. cursor: default;
  4759. }
  4760. .pagination > .disabled > span,
  4761. .pagination > .disabled > span:hover,
  4762. .pagination > .disabled > span:focus,
  4763. .pagination > .disabled > a,
  4764. .pagination > .disabled > a:hover,
  4765. .pagination > .disabled > a:focus {
  4766. color: #777777;
  4767. background-color: #fff;
  4768. border-color: #ddd;
  4769. cursor: not-allowed;
  4770. }
  4771. .pagination-lg > li > a,
  4772. .pagination-lg > li > span {
  4773. padding: 10px 16px;
  4774. font-size: 17px;
  4775. line-height: 1.3333333;
  4776. }
  4777. .pagination-lg > li:first-child > a,
  4778. .pagination-lg > li:first-child > span {
  4779. border-bottom-left-radius: 3px;
  4780. border-top-left-radius: 3px;
  4781. }
  4782. .pagination-lg > li:last-child > a,
  4783. .pagination-lg > li:last-child > span {
  4784. border-bottom-right-radius: 3px;
  4785. border-top-right-radius: 3px;
  4786. }
  4787. .pagination-sm > li > a,
  4788. .pagination-sm > li > span {
  4789. padding: 5px 10px;
  4790. font-size: 12px;
  4791. line-height: 1.5;
  4792. }
  4793. .pagination-sm > li:first-child > a,
  4794. .pagination-sm > li:first-child > span {
  4795. border-bottom-left-radius: 1px;
  4796. border-top-left-radius: 1px;
  4797. }
  4798. .pagination-sm > li:last-child > a,
  4799. .pagination-sm > li:last-child > span {
  4800. border-bottom-right-radius: 1px;
  4801. border-top-right-radius: 1px;
  4802. }
  4803. .pager {
  4804. padding-left: 0;
  4805. margin: 18px 0;
  4806. list-style: none;
  4807. text-align: center;
  4808. }
  4809. .pager li {
  4810. display: inline;
  4811. }
  4812. .pager li > a,
  4813. .pager li > span {
  4814. display: inline-block;
  4815. padding: 5px 14px;
  4816. background-color: #fff;
  4817. border: 1px solid #ddd;
  4818. border-radius: 15px;
  4819. }
  4820. .pager li > a:hover,
  4821. .pager li > a:focus {
  4822. text-decoration: none;
  4823. background-color: #eeeeee;
  4824. }
  4825. .pager .next > a,
  4826. .pager .next > span {
  4827. float: right;
  4828. }
  4829. .pager .previous > a,
  4830. .pager .previous > span {
  4831. float: left;
  4832. }
  4833. .pager .disabled > a,
  4834. .pager .disabled > a:hover,
  4835. .pager .disabled > a:focus,
  4836. .pager .disabled > span {
  4837. color: #777777;
  4838. background-color: #fff;
  4839. cursor: not-allowed;
  4840. }
  4841. .label {
  4842. display: inline;
  4843. padding: .2em .6em .3em;
  4844. font-size: 75%;
  4845. font-weight: bold;
  4846. line-height: 1;
  4847. color: #fff;
  4848. text-align: center;
  4849. white-space: nowrap;
  4850. vertical-align: baseline;
  4851. border-radius: .25em;
  4852. }
  4853. a.label:hover,
  4854. a.label:focus {
  4855. color: #fff;
  4856. text-decoration: none;
  4857. cursor: pointer;
  4858. }
  4859. .label:empty {
  4860. display: none;
  4861. }
  4862. .btn .label {
  4863. position: relative;
  4864. top: -1px;
  4865. }
  4866. .label-default {
  4867. background-color: #777777;
  4868. }
  4869. .label-default[href]:hover,
  4870. .label-default[href]:focus {
  4871. background-color: #5e5e5e;
  4872. }
  4873. .label-primary {
  4874. background-color: #337ab7;
  4875. }
  4876. .label-primary[href]:hover,
  4877. .label-primary[href]:focus {
  4878. background-color: #286090;
  4879. }
  4880. .label-success {
  4881. background-color: #5cb85c;
  4882. }
  4883. .label-success[href]:hover,
  4884. .label-success[href]:focus {
  4885. background-color: #449d44;
  4886. }
  4887. .label-info {
  4888. background-color: #5bc0de;
  4889. }
  4890. .label-info[href]:hover,
  4891. .label-info[href]:focus {
  4892. background-color: #31b0d5;
  4893. }
  4894. .label-warning {
  4895. background-color: #f0ad4e;
  4896. }
  4897. .label-warning[href]:hover,
  4898. .label-warning[href]:focus {
  4899. background-color: #ec971f;
  4900. }
  4901. .label-danger {
  4902. background-color: #d9534f;
  4903. }
  4904. .label-danger[href]:hover,
  4905. .label-danger[href]:focus {
  4906. background-color: #c9302c;
  4907. }
  4908. .badge {
  4909. display: inline-block;
  4910. min-width: 10px;
  4911. padding: 3px 7px;
  4912. font-size: 12px;
  4913. font-weight: bold;
  4914. color: #fff;
  4915. line-height: 1;
  4916. vertical-align: middle;
  4917. white-space: nowrap;
  4918. text-align: center;
  4919. background-color: #777777;
  4920. border-radius: 10px;
  4921. }
  4922. .badge:empty {
  4923. display: none;
  4924. }
  4925. .btn .badge {
  4926. position: relative;
  4927. top: -1px;
  4928. }
  4929. .btn-xs .badge,
  4930. .btn-group-xs > .btn .badge {
  4931. top: 0;
  4932. padding: 1px 5px;
  4933. }
  4934. a.badge:hover,
  4935. a.badge:focus {
  4936. color: #fff;
  4937. text-decoration: none;
  4938. cursor: pointer;
  4939. }
  4940. .list-group-item.active > .badge,
  4941. .nav-pills > .active > a > .badge {
  4942. color: #337ab7;
  4943. background-color: #fff;
  4944. }
  4945. .list-group-item > .badge {
  4946. float: right;
  4947. }
  4948. .list-group-item > .badge + .badge {
  4949. margin-right: 5px;
  4950. }
  4951. .nav-pills > li > a > .badge {
  4952. margin-left: 3px;
  4953. }
  4954. .jumbotron {
  4955. padding-top: 30px;
  4956. padding-bottom: 30px;
  4957. margin-bottom: 30px;
  4958. color: inherit;
  4959. background-color: #eeeeee;
  4960. }
  4961. .jumbotron h1,
  4962. .jumbotron .h1 {
  4963. color: inherit;
  4964. }
  4965. .jumbotron p {
  4966. margin-bottom: 15px;
  4967. font-size: 20px;
  4968. font-weight: 200;
  4969. }
  4970. .jumbotron > hr {
  4971. border-top-color: #d5d5d5;
  4972. }
  4973. .container .jumbotron,
  4974. .container-fluid .jumbotron {
  4975. border-radius: 3px;
  4976. padding-left: 0px;
  4977. padding-right: 0px;
  4978. }
  4979. .jumbotron .container {
  4980. max-width: 100%;
  4981. }
  4982. @media screen and (min-width: 768px) {
  4983. .jumbotron {
  4984. padding-top: 48px;
  4985. padding-bottom: 48px;
  4986. }
  4987. .container .jumbotron,
  4988. .container-fluid .jumbotron {
  4989. padding-left: 60px;
  4990. padding-right: 60px;
  4991. }
  4992. .jumbotron h1,
  4993. .jumbotron .h1 {
  4994. font-size: 59px;
  4995. }
  4996. }
  4997. .thumbnail {
  4998. display: block;
  4999. padding: 4px;
  5000. margin-bottom: 18px;
  5001. line-height: 1.42857143;
  5002. background-color: #fff;
  5003. border: 1px solid #ddd;
  5004. border-radius: 2px;
  5005. -webkit-transition: border 0.2s ease-in-out;
  5006. -o-transition: border 0.2s ease-in-out;
  5007. transition: border 0.2s ease-in-out;
  5008. }
  5009. .thumbnail > img,
  5010. .thumbnail a > img {
  5011. margin-left: auto;
  5012. margin-right: auto;
  5013. }
  5014. a.thumbnail:hover,
  5015. a.thumbnail:focus,
  5016. a.thumbnail.active {
  5017. border-color: #337ab7;
  5018. }
  5019. .thumbnail .caption {
  5020. padding: 9px;
  5021. color: #000;
  5022. }
  5023. .alert {
  5024. padding: 15px;
  5025. margin-bottom: 18px;
  5026. border: 1px solid transparent;
  5027. border-radius: 2px;
  5028. }
  5029. .alert h4 {
  5030. margin-top: 0;
  5031. color: inherit;
  5032. }
  5033. .alert .alert-link {
  5034. font-weight: bold;
  5035. }
  5036. .alert > p,
  5037. .alert > ul {
  5038. margin-bottom: 0;
  5039. }
  5040. .alert > p + p {
  5041. margin-top: 5px;
  5042. }
  5043. .alert-dismissable,
  5044. .alert-dismissible {
  5045. padding-right: 35px;
  5046. }
  5047. .alert-dismissable .close,
  5048. .alert-dismissible .close {
  5049. position: relative;
  5050. top: -2px;
  5051. right: -21px;
  5052. color: inherit;
  5053. }
  5054. .alert-success {
  5055. background-color: #dff0d8;
  5056. border-color: #d6e9c6;
  5057. color: #3c763d;
  5058. }
  5059. .alert-success hr {
  5060. border-top-color: #c9e2b3;
  5061. }
  5062. .alert-success .alert-link {
  5063. color: #2b542c;
  5064. }
  5065. .alert-info {
  5066. background-color: #d9edf7;
  5067. border-color: #bce8f1;
  5068. color: #31708f;
  5069. }
  5070. .alert-info hr {
  5071. border-top-color: #a6e1ec;
  5072. }
  5073. .alert-info .alert-link {
  5074. color: #245269;
  5075. }
  5076. .alert-warning {
  5077. background-color: #fcf8e3;
  5078. border-color: #faebcc;
  5079. color: #8a6d3b;
  5080. }
  5081. .alert-warning hr {
  5082. border-top-color: #f7e1b5;
  5083. }
  5084. .alert-warning .alert-link {
  5085. color: #66512c;
  5086. }
  5087. .alert-danger {
  5088. background-color: #f2dede;
  5089. border-color: #ebccd1;
  5090. color: #a94442;
  5091. }
  5092. .alert-danger hr {
  5093. border-top-color: #e4b9c0;
  5094. }
  5095. .alert-danger .alert-link {
  5096. color: #843534;
  5097. }
  5098. @-webkit-keyframes progress-bar-stripes {
  5099. from {
  5100. background-position: 40px 0;
  5101. }
  5102. to {
  5103. background-position: 0 0;
  5104. }
  5105. }
  5106. @keyframes progress-bar-stripes {
  5107. from {
  5108. background-position: 40px 0;
  5109. }
  5110. to {
  5111. background-position: 0 0;
  5112. }
  5113. }
  5114. .progress {
  5115. overflow: hidden;
  5116. height: 18px;
  5117. margin-bottom: 18px;
  5118. background-color: #f5f5f5;
  5119. border-radius: 2px;
  5120. -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  5121. box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  5122. }
  5123. .progress-bar {
  5124. float: left;
  5125. width: 0%;
  5126. height: 100%;
  5127. font-size: 12px;
  5128. line-height: 18px;
  5129. color: #fff;
  5130. text-align: center;
  5131. background-color: #337ab7;
  5132. -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  5133. box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  5134. -webkit-transition: width 0.6s ease;
  5135. -o-transition: width 0.6s ease;
  5136. transition: width 0.6s ease;
  5137. }
  5138. .progress-striped .progress-bar,
  5139. .progress-bar-striped {
  5140. background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5141. background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5142. background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5143. background-size: 40px 40px;
  5144. }
  5145. .progress.active .progress-bar,
  5146. .progress-bar.active {
  5147. -webkit-animation: progress-bar-stripes 2s linear infinite;
  5148. -o-animation: progress-bar-stripes 2s linear infinite;
  5149. animation: progress-bar-stripes 2s linear infinite;
  5150. }
  5151. .progress-bar-success {
  5152. background-color: #5cb85c;
  5153. }
  5154. .progress-striped .progress-bar-success {
  5155. background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5156. background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5157. background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5158. }
  5159. .progress-bar-info {
  5160. background-color: #5bc0de;
  5161. }
  5162. .progress-striped .progress-bar-info {
  5163. background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5164. background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5165. background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5166. }
  5167. .progress-bar-warning {
  5168. background-color: #f0ad4e;
  5169. }
  5170. .progress-striped .progress-bar-warning {
  5171. background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5172. background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5173. background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5174. }
  5175. .progress-bar-danger {
  5176. background-color: #d9534f;
  5177. }
  5178. .progress-striped .progress-bar-danger {
  5179. background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5180. background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5181. background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  5182. }
  5183. .media {
  5184. margin-top: 15px;
  5185. }
  5186. .media:first-child {
  5187. margin-top: 0;
  5188. }
  5189. .media,
  5190. .media-body {
  5191. zoom: 1;
  5192. overflow: hidden;
  5193. }
  5194. .media-body {
  5195. width: 10000px;
  5196. }
  5197. .media-object {
  5198. display: block;
  5199. }
  5200. .media-object.img-thumbnail {
  5201. max-width: none;
  5202. }
  5203. .media-right,
  5204. .media > .pull-right {
  5205. padding-left: 10px;
  5206. }
  5207. .media-left,
  5208. .media > .pull-left {
  5209. padding-right: 10px;
  5210. }
  5211. .media-left,
  5212. .media-right,
  5213. .media-body {
  5214. display: table-cell;
  5215. vertical-align: top;
  5216. }
  5217. .media-middle {
  5218. vertical-align: middle;
  5219. }
  5220. .media-bottom {
  5221. vertical-align: bottom;
  5222. }
  5223. .media-heading {
  5224. margin-top: 0;
  5225. margin-bottom: 5px;
  5226. }
  5227. .media-list {
  5228. padding-left: 0;
  5229. list-style: none;
  5230. }
  5231. .list-group {
  5232. margin-bottom: 20px;
  5233. padding-left: 0;
  5234. }
  5235. .list-group-item {
  5236. position: relative;
  5237. display: block;
  5238. padding: 10px 15px;
  5239. margin-bottom: -1px;
  5240. background-color: #fff;
  5241. border: 1px solid #ddd;
  5242. }
  5243. .list-group-item:first-child {
  5244. border-top-right-radius: 2px;
  5245. border-top-left-radius: 2px;
  5246. }
  5247. .list-group-item:last-child {
  5248. margin-bottom: 0;
  5249. border-bottom-right-radius: 2px;
  5250. border-bottom-left-radius: 2px;
  5251. }
  5252. a.list-group-item,
  5253. button.list-group-item {
  5254. color: #555;
  5255. }
  5256. a.list-group-item .list-group-item-heading,
  5257. button.list-group-item .list-group-item-heading {
  5258. color: #333;
  5259. }
  5260. a.list-group-item:hover,
  5261. button.list-group-item:hover,
  5262. a.list-group-item:focus,
  5263. button.list-group-item:focus {
  5264. text-decoration: none;
  5265. color: #555;
  5266. background-color: #f5f5f5;
  5267. }
  5268. button.list-group-item {
  5269. width: 100%;
  5270. text-align: left;
  5271. }
  5272. .list-group-item.disabled,
  5273. .list-group-item.disabled:hover,
  5274. .list-group-item.disabled:focus {
  5275. background-color: #eeeeee;
  5276. color: #777777;
  5277. cursor: not-allowed;
  5278. }
  5279. .list-group-item.disabled .list-group-item-heading,
  5280. .list-group-item.disabled:hover .list-group-item-heading,
  5281. .list-group-item.disabled:focus .list-group-item-heading {
  5282. color: inherit;
  5283. }
  5284. .list-group-item.disabled .list-group-item-text,
  5285. .list-group-item.disabled:hover .list-group-item-text,
  5286. .list-group-item.disabled:focus .list-group-item-text {
  5287. color: #777777;
  5288. }
  5289. .list-group-item.active,
  5290. .list-group-item.active:hover,
  5291. .list-group-item.active:focus {
  5292. z-index: 2;
  5293. color: #fff;
  5294. background-color: #337ab7;
  5295. border-color: #337ab7;
  5296. }
  5297. .list-group-item.active .list-group-item-heading,
  5298. .list-group-item.active:hover .list-group-item-heading,
  5299. .list-group-item.active:focus .list-group-item-heading,
  5300. .list-group-item.active .list-group-item-heading > small,
  5301. .list-group-item.active:hover .list-group-item-heading > small,
  5302. .list-group-item.active:focus .list-group-item-heading > small,
  5303. .list-group-item.active .list-group-item-heading > .small,
  5304. .list-group-item.active:hover .list-group-item-heading > .small,
  5305. .list-group-item.active:focus .list-group-item-heading > .small {
  5306. color: inherit;
  5307. }
  5308. .list-group-item.active .list-group-item-text,
  5309. .list-group-item.active:hover .list-group-item-text,
  5310. .list-group-item.active:focus .list-group-item-text {
  5311. color: #c7ddef;
  5312. }
  5313. .list-group-item-success {
  5314. color: #3c763d;
  5315. background-color: #dff0d8;
  5316. }
  5317. a.list-group-item-success,
  5318. button.list-group-item-success {
  5319. color: #3c763d;
  5320. }
  5321. a.list-group-item-success .list-group-item-heading,
  5322. button.list-group-item-success .list-group-item-heading {
  5323. color: inherit;
  5324. }
  5325. a.list-group-item-success:hover,
  5326. button.list-group-item-success:hover,
  5327. a.list-group-item-success:focus,
  5328. button.list-group-item-success:focus {
  5329. color: #3c763d;
  5330. background-color: #d0e9c6;
  5331. }
  5332. a.list-group-item-success.active,
  5333. button.list-group-item-success.active,
  5334. a.list-group-item-success.active:hover,
  5335. button.list-group-item-success.active:hover,
  5336. a.list-group-item-success.active:focus,
  5337. button.list-group-item-success.active:focus {
  5338. color: #fff;
  5339. background-color: #3c763d;
  5340. border-color: #3c763d;
  5341. }
  5342. .list-group-item-info {
  5343. color: #31708f;
  5344. background-color: #d9edf7;
  5345. }
  5346. a.list-group-item-info,
  5347. button.list-group-item-info {
  5348. color: #31708f;
  5349. }
  5350. a.list-group-item-info .list-group-item-heading,
  5351. button.list-group-item-info .list-group-item-heading {
  5352. color: inherit;
  5353. }
  5354. a.list-group-item-info:hover,
  5355. button.list-group-item-info:hover,
  5356. a.list-group-item-info:focus,
  5357. button.list-group-item-info:focus {
  5358. color: #31708f;
  5359. background-color: #c4e3f3;
  5360. }
  5361. a.list-group-item-info.active,
  5362. button.list-group-item-info.active,
  5363. a.list-group-item-info.active:hover,
  5364. button.list-group-item-info.active:hover,
  5365. a.list-group-item-info.active:focus,
  5366. button.list-group-item-info.active:focus {
  5367. color: #fff;
  5368. background-color: #31708f;
  5369. border-color: #31708f;
  5370. }
  5371. .list-group-item-warning {
  5372. color: #8a6d3b;
  5373. background-color: #fcf8e3;
  5374. }
  5375. a.list-group-item-warning,
  5376. button.list-group-item-warning {
  5377. color: #8a6d3b;
  5378. }
  5379. a.list-group-item-warning .list-group-item-heading,
  5380. button.list-group-item-warning .list-group-item-heading {
  5381. color: inherit;
  5382. }
  5383. a.list-group-item-warning:hover,
  5384. button.list-group-item-warning:hover,
  5385. a.list-group-item-warning:focus,
  5386. button.list-group-item-warning:focus {
  5387. color: #8a6d3b;
  5388. background-color: #faf2cc;
  5389. }
  5390. a.list-group-item-warning.active,
  5391. button.list-group-item-warning.active,
  5392. a.list-group-item-warning.active:hover,
  5393. button.list-group-item-warning.active:hover,
  5394. a.list-group-item-warning.active:focus,
  5395. button.list-group-item-warning.active:focus {
  5396. color: #fff;
  5397. background-color: #8a6d3b;
  5398. border-color: #8a6d3b;
  5399. }
  5400. .list-group-item-danger {
  5401. color: #a94442;
  5402. background-color: #f2dede;
  5403. }
  5404. a.list-group-item-danger,
  5405. button.list-group-item-danger {
  5406. color: #a94442;
  5407. }
  5408. a.list-group-item-danger .list-group-item-heading,
  5409. button.list-group-item-danger .list-group-item-heading {
  5410. color: inherit;
  5411. }
  5412. a.list-group-item-danger:hover,
  5413. button.list-group-item-danger:hover,
  5414. a.list-group-item-danger:focus,
  5415. button.list-group-item-danger:focus {
  5416. color: #a94442;
  5417. background-color: #ebcccc;
  5418. }
  5419. a.list-group-item-danger.active,
  5420. button.list-group-item-danger.active,
  5421. a.list-group-item-danger.active:hover,
  5422. button.list-group-item-danger.active:hover,
  5423. a.list-group-item-danger.active:focus,
  5424. button.list-group-item-danger.active:focus {
  5425. color: #fff;
  5426. background-color: #a94442;
  5427. border-color: #a94442;
  5428. }
  5429. .list-group-item-heading {
  5430. margin-top: 0;
  5431. margin-bottom: 5px;
  5432. }
  5433. .list-group-item-text {
  5434. margin-bottom: 0;
  5435. line-height: 1.3;
  5436. }
  5437. .panel {
  5438. margin-bottom: 18px;
  5439. background-color: #fff;
  5440. border: 1px solid transparent;
  5441. border-radius: 2px;
  5442. -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  5443. box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  5444. }
  5445. .panel-body {
  5446. padding: 15px;
  5447. }
  5448. .panel-heading {
  5449. padding: 10px 15px;
  5450. border-bottom: 1px solid transparent;
  5451. border-top-right-radius: 1px;
  5452. border-top-left-radius: 1px;
  5453. }
  5454. .panel-heading > .dropdown .dropdown-toggle {
  5455. color: inherit;
  5456. }
  5457. .panel-title {
  5458. margin-top: 0;
  5459. margin-bottom: 0;
  5460. font-size: 15px;
  5461. color: inherit;
  5462. }
  5463. .panel-title > a,
  5464. .panel-title > small,
  5465. .panel-title > .small,
  5466. .panel-title > small > a,
  5467. .panel-title > .small > a {
  5468. color: inherit;
  5469. }
  5470. .panel-footer {
  5471. padding: 10px 15px;
  5472. background-color: #f5f5f5;
  5473. border-top: 1px solid #ddd;
  5474. border-bottom-right-radius: 1px;
  5475. border-bottom-left-radius: 1px;
  5476. }
  5477. .panel > .list-group,
  5478. .panel > .panel-collapse > .list-group {
  5479. margin-bottom: 0;
  5480. }
  5481. .panel > .list-group .list-group-item,
  5482. .panel > .panel-collapse > .list-group .list-group-item {
  5483. border-width: 1px 0;
  5484. border-radius: 0;
  5485. }
  5486. .panel > .list-group:first-child .list-group-item:first-child,
  5487. .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
  5488. border-top: 0;
  5489. border-top-right-radius: 1px;
  5490. border-top-left-radius: 1px;
  5491. }
  5492. .panel > .list-group:last-child .list-group-item:last-child,
  5493. .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
  5494. border-bottom: 0;
  5495. border-bottom-right-radius: 1px;
  5496. border-bottom-left-radius: 1px;
  5497. }
  5498. .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
  5499. border-top-right-radius: 0;
  5500. border-top-left-radius: 0;
  5501. }
  5502. .panel-heading + .list-group .list-group-item:first-child {
  5503. border-top-width: 0;
  5504. }
  5505. .list-group + .panel-footer {
  5506. border-top-width: 0;
  5507. }
  5508. .panel > .table,
  5509. .panel > .table-responsive > .table,
  5510. .panel > .panel-collapse > .table {
  5511. margin-bottom: 0;
  5512. }
  5513. .panel > .table caption,
  5514. .panel > .table-responsive > .table caption,
  5515. .panel > .panel-collapse > .table caption {
  5516. padding-left: 15px;
  5517. padding-right: 15px;
  5518. }
  5519. .panel > .table:first-child,
  5520. .panel > .table-responsive:first-child > .table:first-child {
  5521. border-top-right-radius: 1px;
  5522. border-top-left-radius: 1px;
  5523. }
  5524. .panel > .table:first-child > thead:first-child > tr:first-child,
  5525. .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
  5526. .panel > .table:first-child > tbody:first-child > tr:first-child,
  5527. .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
  5528. border-top-left-radius: 1px;
  5529. border-top-right-radius: 1px;
  5530. }
  5531. .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
  5532. .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
  5533. .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
  5534. .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
  5535. .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
  5536. .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
  5537. .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
  5538. .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
  5539. border-top-left-radius: 1px;
  5540. }
  5541. .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
  5542. .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
  5543. .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
  5544. .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
  5545. .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
  5546. .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
  5547. .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
  5548. .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
  5549. border-top-right-radius: 1px;
  5550. }
  5551. .panel > .table:last-child,
  5552. .panel > .table-responsive:last-child > .table:last-child {
  5553. border-bottom-right-radius: 1px;
  5554. border-bottom-left-radius: 1px;
  5555. }
  5556. .panel > .table:last-child > tbody:last-child > tr:last-child,
  5557. .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
  5558. .panel > .table:last-child > tfoot:last-child > tr:last-child,
  5559. .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
  5560. border-bottom-left-radius: 1px;
  5561. border-bottom-right-radius: 1px;
  5562. }
  5563. .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
  5564. .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
  5565. .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
  5566. .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
  5567. .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
  5568. .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
  5569. .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
  5570. .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
  5571. border-bottom-left-radius: 1px;
  5572. }
  5573. .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
  5574. .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
  5575. .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
  5576. .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
  5577. .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
  5578. .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
  5579. .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
  5580. .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
  5581. border-bottom-right-radius: 1px;
  5582. }
  5583. .panel > .panel-body + .table,
  5584. .panel > .panel-body + .table-responsive,
  5585. .panel > .table + .panel-body,
  5586. .panel > .table-responsive + .panel-body {
  5587. border-top: 1px solid #ddd;
  5588. }
  5589. .panel > .table > tbody:first-child > tr:first-child th,
  5590. .panel > .table > tbody:first-child > tr:first-child td {
  5591. border-top: 0;
  5592. }
  5593. .panel > .table-bordered,
  5594. .panel > .table-responsive > .table-bordered {
  5595. border: 0;
  5596. }
  5597. .panel > .table-bordered > thead > tr > th:first-child,
  5598. .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
  5599. .panel > .table-bordered > tbody > tr > th:first-child,
  5600. .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
  5601. .panel > .table-bordered > tfoot > tr > th:first-child,
  5602. .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  5603. .panel > .table-bordered > thead > tr > td:first-child,
  5604. .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
  5605. .panel > .table-bordered > tbody > tr > td:first-child,
  5606. .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
  5607. .panel > .table-bordered > tfoot > tr > td:first-child,
  5608. .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  5609. border-left: 0;
  5610. }
  5611. .panel > .table-bordered > thead > tr > th:last-child,
  5612. .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
  5613. .panel > .table-bordered > tbody > tr > th:last-child,
  5614. .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
  5615. .panel > .table-bordered > tfoot > tr > th:last-child,
  5616. .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  5617. .panel > .table-bordered > thead > tr > td:last-child,
  5618. .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
  5619. .panel > .table-bordered > tbody > tr > td:last-child,
  5620. .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
  5621. .panel > .table-bordered > tfoot > tr > td:last-child,
  5622. .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  5623. border-right: 0;
  5624. }
  5625. .panel > .table-bordered > thead > tr:first-child > td,
  5626. .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
  5627. .panel > .table-bordered > tbody > tr:first-child > td,
  5628. .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
  5629. .panel > .table-bordered > thead > tr:first-child > th,
  5630. .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
  5631. .panel > .table-bordered > tbody > tr:first-child > th,
  5632. .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
  5633. border-bottom: 0;
  5634. }
  5635. .panel > .table-bordered > tbody > tr:last-child > td,
  5636. .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
  5637. .panel > .table-bordered > tfoot > tr:last-child > td,
  5638. .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
  5639. .panel > .table-bordered > tbody > tr:last-child > th,
  5640. .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
  5641. .panel > .table-bordered > tfoot > tr:last-child > th,
  5642. .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
  5643. border-bottom: 0;
  5644. }
  5645. .panel > .table-responsive {
  5646. border: 0;
  5647. margin-bottom: 0;
  5648. }
  5649. .panel-group {
  5650. margin-bottom: 18px;
  5651. }
  5652. .panel-group .panel {
  5653. margin-bottom: 0;
  5654. border-radius: 2px;
  5655. }
  5656. .panel-group .panel + .panel {
  5657. margin-top: 5px;
  5658. }
  5659. .panel-group .panel-heading {
  5660. border-bottom: 0;
  5661. }
  5662. .panel-group .panel-heading + .panel-collapse > .panel-body,
  5663. .panel-group .panel-heading + .panel-collapse > .list-group {
  5664. border-top: 1px solid #ddd;
  5665. }
  5666. .panel-group .panel-footer {
  5667. border-top: 0;
  5668. }
  5669. .panel-group .panel-footer + .panel-collapse .panel-body {
  5670. border-bottom: 1px solid #ddd;
  5671. }
  5672. .panel-default {
  5673. border-color: #ddd;
  5674. }
  5675. .panel-default > .panel-heading {
  5676. color: #333333;
  5677. background-color: #f5f5f5;
  5678. border-color: #ddd;
  5679. }
  5680. .panel-default > .panel-heading + .panel-collapse > .panel-body {
  5681. border-top-color: #ddd;
  5682. }
  5683. .panel-default > .panel-heading .badge {
  5684. color: #f5f5f5;
  5685. background-color: #333333;
  5686. }
  5687. .panel-default > .panel-footer + .panel-collapse > .panel-body {
  5688. border-bottom-color: #ddd;
  5689. }
  5690. .panel-primary {
  5691. border-color: #337ab7;
  5692. }
  5693. .panel-primary > .panel-heading {
  5694. color: #fff;
  5695. background-color: #337ab7;
  5696. border-color: #337ab7;
  5697. }
  5698. .panel-primary > .panel-heading + .panel-collapse > .panel-body {
  5699. border-top-color: #337ab7;
  5700. }
  5701. .panel-primary > .panel-heading .badge {
  5702. color: #337ab7;
  5703. background-color: #fff;
  5704. }
  5705. .panel-primary > .panel-footer + .panel-collapse > .panel-body {
  5706. border-bottom-color: #337ab7;
  5707. }
  5708. .panel-success {
  5709. border-color: #d6e9c6;
  5710. }
  5711. .panel-success > .panel-heading {
  5712. color: #3c763d;
  5713. background-color: #dff0d8;
  5714. border-color: #d6e9c6;
  5715. }
  5716. .panel-success > .panel-heading + .panel-collapse > .panel-body {
  5717. border-top-color: #d6e9c6;
  5718. }
  5719. .panel-success > .panel-heading .badge {
  5720. color: #dff0d8;
  5721. background-color: #3c763d;
  5722. }
  5723. .panel-success > .panel-footer + .panel-collapse > .panel-body {
  5724. border-bottom-color: #d6e9c6;
  5725. }
  5726. .panel-info {
  5727. border-color: #bce8f1;
  5728. }
  5729. .panel-info > .panel-heading {
  5730. color: #31708f;
  5731. background-color: #d9edf7;
  5732. border-color: #bce8f1;
  5733. }
  5734. .panel-info > .panel-heading + .panel-collapse > .panel-body {
  5735. border-top-color: #bce8f1;
  5736. }
  5737. .panel-info > .panel-heading .badge {
  5738. color: #d9edf7;
  5739. background-color: #31708f;
  5740. }
  5741. .panel-info > .panel-footer + .panel-collapse > .panel-body {
  5742. border-bottom-color: #bce8f1;
  5743. }
  5744. .panel-warning {
  5745. border-color: #faebcc;
  5746. }
  5747. .panel-warning > .panel-heading {
  5748. color: #8a6d3b;
  5749. background-color: #fcf8e3;
  5750. border-color: #faebcc;
  5751. }
  5752. .panel-warning > .panel-heading + .panel-collapse > .panel-body {
  5753. border-top-color: #faebcc;
  5754. }
  5755. .panel-warning > .panel-heading .badge {
  5756. color: #fcf8e3;
  5757. background-color: #8a6d3b;
  5758. }
  5759. .panel-warning > .panel-footer + .panel-collapse > .panel-body {
  5760. border-bottom-color: #faebcc;
  5761. }
  5762. .panel-danger {
  5763. border-color: #ebccd1;
  5764. }
  5765. .panel-danger > .panel-heading {
  5766. color: #a94442;
  5767. background-color: #f2dede;
  5768. border-color: #ebccd1;
  5769. }
  5770. .panel-danger > .panel-heading + .panel-collapse > .panel-body {
  5771. border-top-color: #ebccd1;
  5772. }
  5773. .panel-danger > .panel-heading .badge {
  5774. color: #f2dede;
  5775. background-color: #a94442;
  5776. }
  5777. .panel-danger > .panel-footer + .panel-collapse > .panel-body {
  5778. border-bottom-color: #ebccd1;
  5779. }
  5780. .embed-responsive {
  5781. position: relative;
  5782. display: block;
  5783. height: 0;
  5784. padding: 0;
  5785. overflow: hidden;
  5786. }
  5787. .embed-responsive .embed-responsive-item,
  5788. .embed-responsive iframe,
  5789. .embed-responsive embed,
  5790. .embed-responsive object,
  5791. .embed-responsive video {
  5792. position: absolute;
  5793. top: 0;
  5794. left: 0;
  5795. bottom: 0;
  5796. height: 100%;
  5797. width: 100%;
  5798. border: 0;
  5799. }
  5800. .embed-responsive-16by9 {
  5801. padding-bottom: 56.25%;
  5802. }
  5803. .embed-responsive-4by3 {
  5804. padding-bottom: 75%;
  5805. }
  5806. .well {
  5807. min-height: 20px;
  5808. padding: 19px;
  5809. margin-bottom: 20px;
  5810. background-color: #f5f5f5;
  5811. border: 1px solid #e3e3e3;
  5812. border-radius: 2px;
  5813. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  5814. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  5815. }
  5816. .well blockquote {
  5817. border-color: #ddd;
  5818. border-color: rgba(0, 0, 0, 0.15);
  5819. }
  5820. .well-lg {
  5821. padding: 24px;
  5822. border-radius: 3px;
  5823. }
  5824. .well-sm {
  5825. padding: 9px;
  5826. border-radius: 1px;
  5827. }
  5828. .close {
  5829. float: right;
  5830. font-size: 19.5px;
  5831. font-weight: bold;
  5832. line-height: 1;
  5833. color: #000;
  5834. text-shadow: 0 1px 0 #fff;
  5835. opacity: 0.2;
  5836. filter: alpha(opacity=20);
  5837. }
  5838. .close:hover,
  5839. .close:focus {
  5840. color: #000;
  5841. text-decoration: none;
  5842. cursor: pointer;
  5843. opacity: 0.5;
  5844. filter: alpha(opacity=50);
  5845. }
  5846. button.close {
  5847. padding: 0;
  5848. cursor: pointer;
  5849. background: transparent;
  5850. border: 0;
  5851. -webkit-appearance: none;
  5852. }
  5853. .modal-open {
  5854. overflow: hidden;
  5855. }
  5856. .modal {
  5857. display: none;
  5858. overflow: hidden;
  5859. position: fixed;
  5860. top: 0;
  5861. right: 0;
  5862. bottom: 0;
  5863. left: 0;
  5864. z-index: 1050;
  5865. -webkit-overflow-scrolling: touch;
  5866. outline: 0;
  5867. }
  5868. .modal.fade .modal-dialog {
  5869. -webkit-transform: translate(0, -25%);
  5870. -ms-transform: translate(0, -25%);
  5871. -o-transform: translate(0, -25%);
  5872. transform: translate(0, -25%);
  5873. -webkit-transition: -webkit-transform 0.3s ease-out;
  5874. -moz-transition: -moz-transform 0.3s ease-out;
  5875. -o-transition: -o-transform 0.3s ease-out;
  5876. transition: transform 0.3s ease-out;
  5877. }
  5878. .modal.in .modal-dialog {
  5879. -webkit-transform: translate(0, 0);
  5880. -ms-transform: translate(0, 0);
  5881. -o-transform: translate(0, 0);
  5882. transform: translate(0, 0);
  5883. }
  5884. .modal-open .modal {
  5885. overflow-x: hidden;
  5886. overflow-y: auto;
  5887. }
  5888. .modal-dialog {
  5889. position: relative;
  5890. width: auto;
  5891. margin: 10px;
  5892. }
  5893. .modal-content {
  5894. position: relative;
  5895. background-color: #fff;
  5896. border: 1px solid #999;
  5897. border: 1px solid rgba(0, 0, 0, 0.2);
  5898. border-radius: 3px;
  5899. -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  5900. box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  5901. background-clip: padding-box;
  5902. outline: 0;
  5903. }
  5904. .modal-backdrop {
  5905. position: fixed;
  5906. top: 0;
  5907. right: 0;
  5908. bottom: 0;
  5909. left: 0;
  5910. z-index: 1040;
  5911. background-color: #000;
  5912. }
  5913. .modal-backdrop.fade {
  5914. opacity: 0;
  5915. filter: alpha(opacity=0);
  5916. }
  5917. .modal-backdrop.in {
  5918. opacity: 0.5;
  5919. filter: alpha(opacity=50);
  5920. }
  5921. .modal-header {
  5922. padding: 15px;
  5923. border-bottom: 1px solid #e5e5e5;
  5924. }
  5925. .modal-header .close {
  5926. margin-top: -2px;
  5927. }
  5928. .modal-title {
  5929. margin: 0;
  5930. line-height: 1.42857143;
  5931. }
  5932. .modal-body {
  5933. position: relative;
  5934. padding: 15px;
  5935. }
  5936. .modal-footer {
  5937. padding: 15px;
  5938. text-align: right;
  5939. border-top: 1px solid #e5e5e5;
  5940. }
  5941. .modal-footer .btn + .btn {
  5942. margin-left: 5px;
  5943. margin-bottom: 0;
  5944. }
  5945. .modal-footer .btn-group .btn + .btn {
  5946. margin-left: -1px;
  5947. }
  5948. .modal-footer .btn-block + .btn-block {
  5949. margin-left: 0;
  5950. }
  5951. .modal-scrollbar-measure {
  5952. position: absolute;
  5953. top: -9999px;
  5954. width: 50px;
  5955. height: 50px;
  5956. overflow: scroll;
  5957. }
  5958. @media (min-width: 768px) {
  5959. .modal-dialog {
  5960. width: 600px;
  5961. margin: 30px auto;
  5962. }
  5963. .modal-content {
  5964. -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  5965. box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  5966. }
  5967. .modal-sm {
  5968. width: 300px;
  5969. }
  5970. }
  5971. @media (min-width: 992px) {
  5972. .modal-lg {
  5973. width: 900px;
  5974. }
  5975. }
  5976. .tooltip {
  5977. position: absolute;
  5978. z-index: 1070;
  5979. display: block;
  5980. font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  5981. font-style: normal;
  5982. font-weight: normal;
  5983. letter-spacing: normal;
  5984. line-break: auto;
  5985. line-height: 1.42857143;
  5986. text-align: left;
  5987. text-align: start;
  5988. text-decoration: none;
  5989. text-shadow: none;
  5990. text-transform: none;
  5991. white-space: normal;
  5992. word-break: normal;
  5993. word-spacing: normal;
  5994. word-wrap: normal;
  5995. font-size: 12px;
  5996. opacity: 0;
  5997. filter: alpha(opacity=0);
  5998. }
  5999. .tooltip.in {
  6000. opacity: 0.9;
  6001. filter: alpha(opacity=90);
  6002. }
  6003. .tooltip.top {
  6004. margin-top: -3px;
  6005. padding: 5px 0;
  6006. }
  6007. .tooltip.right {
  6008. margin-left: 3px;
  6009. padding: 0 5px;
  6010. }
  6011. .tooltip.bottom {
  6012. margin-top: 3px;
  6013. padding: 5px 0;
  6014. }
  6015. .tooltip.left {
  6016. margin-left: -3px;
  6017. padding: 0 5px;
  6018. }
  6019. .tooltip-inner {
  6020. max-width: 200px;
  6021. padding: 3px 8px;
  6022. color: #fff;
  6023. text-align: center;
  6024. background-color: #000;
  6025. border-radius: 2px;
  6026. }
  6027. .tooltip-arrow {
  6028. position: absolute;
  6029. width: 0;
  6030. height: 0;
  6031. border-color: transparent;
  6032. border-style: solid;
  6033. }
  6034. .tooltip.top .tooltip-arrow {
  6035. bottom: 0;
  6036. left: 50%;
  6037. margin-left: -5px;
  6038. border-width: 5px 5px 0;
  6039. border-top-color: #000;
  6040. }
  6041. .tooltip.top-left .tooltip-arrow {
  6042. bottom: 0;
  6043. right: 5px;
  6044. margin-bottom: -5px;
  6045. border-width: 5px 5px 0;
  6046. border-top-color: #000;
  6047. }
  6048. .tooltip.top-right .tooltip-arrow {
  6049. bottom: 0;
  6050. left: 5px;
  6051. margin-bottom: -5px;
  6052. border-width: 5px 5px 0;
  6053. border-top-color: #000;
  6054. }
  6055. .tooltip.right .tooltip-arrow {
  6056. top: 50%;
  6057. left: 0;
  6058. margin-top: -5px;
  6059. border-width: 5px 5px 5px 0;
  6060. border-right-color: #000;
  6061. }
  6062. .tooltip.left .tooltip-arrow {
  6063. top: 50%;
  6064. right: 0;
  6065. margin-top: -5px;
  6066. border-width: 5px 0 5px 5px;
  6067. border-left-color: #000;
  6068. }
  6069. .tooltip.bottom .tooltip-arrow {
  6070. top: 0;
  6071. left: 50%;
  6072. margin-left: -5px;
  6073. border-width: 0 5px 5px;
  6074. border-bottom-color: #000;
  6075. }
  6076. .tooltip.bottom-left .tooltip-arrow {
  6077. top: 0;
  6078. right: 5px;
  6079. margin-top: -5px;
  6080. border-width: 0 5px 5px;
  6081. border-bottom-color: #000;
  6082. }
  6083. .tooltip.bottom-right .tooltip-arrow {
  6084. top: 0;
  6085. left: 5px;
  6086. margin-top: -5px;
  6087. border-width: 0 5px 5px;
  6088. border-bottom-color: #000;
  6089. }
  6090. .popover {
  6091. position: absolute;
  6092. top: 0;
  6093. left: 0;
  6094. z-index: 1060;
  6095. display: none;
  6096. max-width: 276px;
  6097. padding: 1px;
  6098. font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  6099. font-style: normal;
  6100. font-weight: normal;
  6101. letter-spacing: normal;
  6102. line-break: auto;
  6103. line-height: 1.42857143;
  6104. text-align: left;
  6105. text-align: start;
  6106. text-decoration: none;
  6107. text-shadow: none;
  6108. text-transform: none;
  6109. white-space: normal;
  6110. word-break: normal;
  6111. word-spacing: normal;
  6112. word-wrap: normal;
  6113. font-size: 13px;
  6114. background-color: #fff;
  6115. background-clip: padding-box;
  6116. border: 1px solid #ccc;
  6117. border: 1px solid rgba(0, 0, 0, 0.2);
  6118. border-radius: 3px;
  6119. -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  6120. box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  6121. }
  6122. .popover.top {
  6123. margin-top: -10px;
  6124. }
  6125. .popover.right {
  6126. margin-left: 10px;
  6127. }
  6128. .popover.bottom {
  6129. margin-top: 10px;
  6130. }
  6131. .popover.left {
  6132. margin-left: -10px;
  6133. }
  6134. .popover-title {
  6135. margin: 0;
  6136. padding: 8px 14px;
  6137. font-size: 13px;
  6138. background-color: #f7f7f7;
  6139. border-bottom: 1px solid #ebebeb;
  6140. border-radius: 2px 2px 0 0;
  6141. }
  6142. .popover-content {
  6143. padding: 9px 14px;
  6144. }
  6145. .popover > .arrow,
  6146. .popover > .arrow:after {
  6147. position: absolute;
  6148. display: block;
  6149. width: 0;
  6150. height: 0;
  6151. border-color: transparent;
  6152. border-style: solid;
  6153. }
  6154. .popover > .arrow {
  6155. border-width: 11px;
  6156. }
  6157. .popover > .arrow:after {
  6158. border-width: 10px;
  6159. content: "";
  6160. }
  6161. .popover.top > .arrow {
  6162. left: 50%;
  6163. margin-left: -11px;
  6164. border-bottom-width: 0;
  6165. border-top-color: #999999;
  6166. border-top-color: rgba(0, 0, 0, 0.25);
  6167. bottom: -11px;
  6168. }
  6169. .popover.top > .arrow:after {
  6170. content: " ";
  6171. bottom: 1px;
  6172. margin-left: -10px;
  6173. border-bottom-width: 0;
  6174. border-top-color: #fff;
  6175. }
  6176. .popover.right > .arrow {
  6177. top: 50%;
  6178. left: -11px;
  6179. margin-top: -11px;
  6180. border-left-width: 0;
  6181. border-right-color: #999999;
  6182. border-right-color: rgba(0, 0, 0, 0.25);
  6183. }
  6184. .popover.right > .arrow:after {
  6185. content: " ";
  6186. left: 1px;
  6187. bottom: -10px;
  6188. border-left-width: 0;
  6189. border-right-color: #fff;
  6190. }
  6191. .popover.bottom > .arrow {
  6192. left: 50%;
  6193. margin-left: -11px;
  6194. border-top-width: 0;
  6195. border-bottom-color: #999999;
  6196. border-bottom-color: rgba(0, 0, 0, 0.25);
  6197. top: -11px;
  6198. }
  6199. .popover.bottom > .arrow:after {
  6200. content: " ";
  6201. top: 1px;
  6202. margin-left: -10px;
  6203. border-top-width: 0;
  6204. border-bottom-color: #fff;
  6205. }
  6206. .popover.left > .arrow {
  6207. top: 50%;
  6208. right: -11px;
  6209. margin-top: -11px;
  6210. border-right-width: 0;
  6211. border-left-color: #999999;
  6212. border-left-color: rgba(0, 0, 0, 0.25);
  6213. }
  6214. .popover.left > .arrow:after {
  6215. content: " ";
  6216. right: 1px;
  6217. border-right-width: 0;
  6218. border-left-color: #fff;
  6219. bottom: -10px;
  6220. }
  6221. .carousel {
  6222. position: relative;
  6223. }
  6224. .carousel-inner {
  6225. position: relative;
  6226. overflow: hidden;
  6227. width: 100%;
  6228. }
  6229. .carousel-inner > .item {
  6230. display: none;
  6231. position: relative;
  6232. -webkit-transition: 0.6s ease-in-out left;
  6233. -o-transition: 0.6s ease-in-out left;
  6234. transition: 0.6s ease-in-out left;
  6235. }
  6236. .carousel-inner > .item > img,
  6237. .carousel-inner > .item > a > img {
  6238. line-height: 1;
  6239. }
  6240. @media all and (transform-3d), (-webkit-transform-3d) {
  6241. .carousel-inner > .item {
  6242. -webkit-transition: -webkit-transform 0.6s ease-in-out;
  6243. -moz-transition: -moz-transform 0.6s ease-in-out;
  6244. -o-transition: -o-transform 0.6s ease-in-out;
  6245. transition: transform 0.6s ease-in-out;
  6246. -webkit-backface-visibility: hidden;
  6247. -moz-backface-visibility: hidden;
  6248. backface-visibility: hidden;
  6249. -webkit-perspective: 1000px;
  6250. -moz-perspective: 1000px;
  6251. perspective: 1000px;
  6252. }
  6253. .carousel-inner > .item.next,
  6254. .carousel-inner > .item.active.right {
  6255. -webkit-transform: translate3d(100%, 0, 0);
  6256. transform: translate3d(100%, 0, 0);
  6257. left: 0;
  6258. }
  6259. .carousel-inner > .item.prev,
  6260. .carousel-inner > .item.active.left {
  6261. -webkit-transform: translate3d(-100%, 0, 0);
  6262. transform: translate3d(-100%, 0, 0);
  6263. left: 0;
  6264. }
  6265. .carousel-inner > .item.next.left,
  6266. .carousel-inner > .item.prev.right,
  6267. .carousel-inner > .item.active {
  6268. -webkit-transform: translate3d(0, 0, 0);
  6269. transform: translate3d(0, 0, 0);
  6270. left: 0;
  6271. }
  6272. }
  6273. .carousel-inner > .active,
  6274. .carousel-inner > .next,
  6275. .carousel-inner > .prev {
  6276. display: block;
  6277. }
  6278. .carousel-inner > .active {
  6279. left: 0;
  6280. }
  6281. .carousel-inner > .next,
  6282. .carousel-inner > .prev {
  6283. position: absolute;
  6284. top: 0;
  6285. width: 100%;
  6286. }
  6287. .carousel-inner > .next {
  6288. left: 100%;
  6289. }
  6290. .carousel-inner > .prev {
  6291. left: -100%;
  6292. }
  6293. .carousel-inner > .next.left,
  6294. .carousel-inner > .prev.right {
  6295. left: 0;
  6296. }
  6297. .carousel-inner > .active.left {
  6298. left: -100%;
  6299. }
  6300. .carousel-inner > .active.right {
  6301. left: 100%;
  6302. }
  6303. .carousel-control {
  6304. position: absolute;
  6305. top: 0;
  6306. left: 0;
  6307. bottom: 0;
  6308. width: 15%;
  6309. opacity: 0.5;
  6310. filter: alpha(opacity=50);
  6311. font-size: 20px;
  6312. color: #fff;
  6313. text-align: center;
  6314. text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  6315. background-color: rgba(0, 0, 0, 0);
  6316. }
  6317. .carousel-control.left {
  6318. background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  6319. background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  6320. background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  6321. background-repeat: repeat-x;
  6322. filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
  6323. }
  6324. .carousel-control.right {
  6325. left: auto;
  6326. right: 0;
  6327. background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  6328. background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  6329. background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  6330. background-repeat: repeat-x;
  6331. filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
  6332. }
  6333. .carousel-control:hover,
  6334. .carousel-control:focus {
  6335. outline: 0;
  6336. color: #fff;
  6337. text-decoration: none;
  6338. opacity: 0.9;
  6339. filter: alpha(opacity=90);
  6340. }
  6341. .carousel-control .icon-prev,
  6342. .carousel-control .icon-next,
  6343. .carousel-control .glyphicon-chevron-left,
  6344. .carousel-control .glyphicon-chevron-right {
  6345. position: absolute;
  6346. top: 50%;
  6347. margin-top: -10px;
  6348. z-index: 5;
  6349. display: inline-block;
  6350. }
  6351. .carousel-control .icon-prev,
  6352. .carousel-control .glyphicon-chevron-left {
  6353. left: 50%;
  6354. margin-left: -10px;
  6355. }
  6356. .carousel-control .icon-next,
  6357. .carousel-control .glyphicon-chevron-right {
  6358. right: 50%;
  6359. margin-right: -10px;
  6360. }
  6361. .carousel-control .icon-prev,
  6362. .carousel-control .icon-next {
  6363. width: 20px;
  6364. height: 20px;
  6365. line-height: 1;
  6366. font-family: serif;
  6367. }
  6368. .carousel-control .icon-prev:before {
  6369. content: '\2039';
  6370. }
  6371. .carousel-control .icon-next:before {
  6372. content: '\203a';
  6373. }
  6374. .carousel-indicators {
  6375. position: absolute;
  6376. bottom: 10px;
  6377. left: 50%;
  6378. z-index: 15;
  6379. width: 60%;
  6380. margin-left: -30%;
  6381. padding-left: 0;
  6382. list-style: none;
  6383. text-align: center;
  6384. }
  6385. .carousel-indicators li {
  6386. display: inline-block;
  6387. width: 10px;
  6388. height: 10px;
  6389. margin: 1px;
  6390. text-indent: -999px;
  6391. border: 1px solid #fff;
  6392. border-radius: 10px;
  6393. cursor: pointer;
  6394. background-color: #000 \9;
  6395. background-color: rgba(0, 0, 0, 0);
  6396. }
  6397. .carousel-indicators .active {
  6398. margin: 0;
  6399. width: 12px;
  6400. height: 12px;
  6401. background-color: #fff;
  6402. }
  6403. .carousel-caption {
  6404. position: absolute;
  6405. left: 15%;
  6406. right: 15%;
  6407. bottom: 20px;
  6408. z-index: 10;
  6409. padding-top: 20px;
  6410. padding-bottom: 20px;
  6411. color: #fff;
  6412. text-align: center;
  6413. text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  6414. }
  6415. .carousel-caption .btn {
  6416. text-shadow: none;
  6417. }
  6418. @media screen and (min-width: 768px) {
  6419. .carousel-control .glyphicon-chevron-left,
  6420. .carousel-control .glyphicon-chevron-right,
  6421. .carousel-control .icon-prev,
  6422. .carousel-control .icon-next {
  6423. width: 30px;
  6424. height: 30px;
  6425. margin-top: -10px;
  6426. font-size: 30px;
  6427. }
  6428. .carousel-control .glyphicon-chevron-left,
  6429. .carousel-control .icon-prev {
  6430. margin-left: -10px;
  6431. }
  6432. .carousel-control .glyphicon-chevron-right,
  6433. .carousel-control .icon-next {
  6434. margin-right: -10px;
  6435. }
  6436. .carousel-caption {
  6437. left: 20%;
  6438. right: 20%;
  6439. padding-bottom: 30px;
  6440. }
  6441. .carousel-indicators {
  6442. bottom: 20px;
  6443. }
  6444. }
  6445. .clearfix:before,
  6446. .clearfix:after,
  6447. .dl-horizontal dd:before,
  6448. .dl-horizontal dd:after,
  6449. .container:before,
  6450. .container:after,
  6451. .container-fluid:before,
  6452. .container-fluid:after,
  6453. .row:before,
  6454. .row:after,
  6455. .form-horizontal .form-group:before,
  6456. .form-horizontal .form-group:after,
  6457. .btn-toolbar:before,
  6458. .btn-toolbar:after,
  6459. .btn-group-vertical > .btn-group:before,
  6460. .btn-group-vertical > .btn-group:after,
  6461. .nav:before,
  6462. .nav:after,
  6463. .navbar:before,
  6464. .navbar:after,
  6465. .navbar-header:before,
  6466. .navbar-header:after,
  6467. .navbar-collapse:before,
  6468. .navbar-collapse:after,
  6469. .pager:before,
  6470. .pager:after,
  6471. .panel-body:before,
  6472. .panel-body:after,
  6473. .modal-header:before,
  6474. .modal-header:after,
  6475. .modal-footer:before,
  6476. .modal-footer:after,
  6477. .item_buttons:before,
  6478. .item_buttons:after {
  6479. content: " ";
  6480. display: table;
  6481. }
  6482. .clearfix:after,
  6483. .dl-horizontal dd:after,
  6484. .container:after,
  6485. .container-fluid:after,
  6486. .row:after,
  6487. .form-horizontal .form-group:after,
  6488. .btn-toolbar:after,
  6489. .btn-group-vertical > .btn-group:after,
  6490. .nav:after,
  6491. .navbar:after,
  6492. .navbar-header:after,
  6493. .navbar-collapse:after,
  6494. .pager:after,
  6495. .panel-body:after,
  6496. .modal-header:after,
  6497. .modal-footer:after,
  6498. .item_buttons:after {
  6499. clear: both;
  6500. }
  6501. .center-block {
  6502. display: block;
  6503. margin-left: auto;
  6504. margin-right: auto;
  6505. }
  6506. .pull-right {
  6507. float: right !important;
  6508. }
  6509. .pull-left {
  6510. float: left !important;
  6511. }
  6512. .hide {
  6513. display: none !important;
  6514. }
  6515. .show {
  6516. display: block !important;
  6517. }
  6518. .invisible {
  6519. visibility: hidden;
  6520. }
  6521. .text-hide {
  6522. font: 0/0 a;
  6523. color: transparent;
  6524. text-shadow: none;
  6525. background-color: transparent;
  6526. border: 0;
  6527. }
  6528. .hidden {
  6529. display: none !important;
  6530. }
  6531. .affix {
  6532. position: fixed;
  6533. }
  6534. @-ms-viewport {
  6535. width: device-width;
  6536. }
  6537. .visible-xs,
  6538. .visible-sm,
  6539. .visible-md,
  6540. .visible-lg {
  6541. display: none !important;
  6542. }
  6543. .visible-xs-block,
  6544. .visible-xs-inline,
  6545. .visible-xs-inline-block,
  6546. .visible-sm-block,
  6547. .visible-sm-inline,
  6548. .visible-sm-inline-block,
  6549. .visible-md-block,
  6550. .visible-md-inline,
  6551. .visible-md-inline-block,
  6552. .visible-lg-block,
  6553. .visible-lg-inline,
  6554. .visible-lg-inline-block {
  6555. display: none !important;
  6556. }
  6557. @media (max-width: 767px) {
  6558. .visible-xs {
  6559. display: block !important;
  6560. }
  6561. table.visible-xs {
  6562. display: table !important;
  6563. }
  6564. tr.visible-xs {
  6565. display: table-row !important;
  6566. }
  6567. th.visible-xs,
  6568. td.visible-xs {
  6569. display: table-cell !important;
  6570. }
  6571. }
  6572. @media (max-width: 767px) {
  6573. .visible-xs-block {
  6574. display: block !important;
  6575. }
  6576. }
  6577. @media (max-width: 767px) {
  6578. .visible-xs-inline {
  6579. display: inline !important;
  6580. }
  6581. }
  6582. @media (max-width: 767px) {
  6583. .visible-xs-inline-block {
  6584. display: inline-block !important;
  6585. }
  6586. }
  6587. @media (min-width: 768px) and (max-width: 991px) {
  6588. .visible-sm {
  6589. display: block !important;
  6590. }
  6591. table.visible-sm {
  6592. display: table !important;
  6593. }
  6594. tr.visible-sm {
  6595. display: table-row !important;
  6596. }
  6597. th.visible-sm,
  6598. td.visible-sm {
  6599. display: table-cell !important;
  6600. }
  6601. }
  6602. @media (min-width: 768px) and (max-width: 991px) {
  6603. .visible-sm-block {
  6604. display: block !important;
  6605. }
  6606. }
  6607. @media (min-width: 768px) and (max-width: 991px) {
  6608. .visible-sm-inline {
  6609. display: inline !important;
  6610. }
  6611. }
  6612. @media (min-width: 768px) and (max-width: 991px) {
  6613. .visible-sm-inline-block {
  6614. display: inline-block !important;
  6615. }
  6616. }
  6617. @media (min-width: 992px) and (max-width: 1199px) {
  6618. .visible-md {
  6619. display: block !important;
  6620. }
  6621. table.visible-md {
  6622. display: table !important;
  6623. }
  6624. tr.visible-md {
  6625. display: table-row !important;
  6626. }
  6627. th.visible-md,
  6628. td.visible-md {
  6629. display: table-cell !important;
  6630. }
  6631. }
  6632. @media (min-width: 992px) and (max-width: 1199px) {
  6633. .visible-md-block {
  6634. display: block !important;
  6635. }
  6636. }
  6637. @media (min-width: 992px) and (max-width: 1199px) {
  6638. .visible-md-inline {
  6639. display: inline !important;
  6640. }
  6641. }
  6642. @media (min-width: 992px) and (max-width: 1199px) {
  6643. .visible-md-inline-block {
  6644. display: inline-block !important;
  6645. }
  6646. }
  6647. @media (min-width: 1200px) {
  6648. .visible-lg {
  6649. display: block !important;
  6650. }
  6651. table.visible-lg {
  6652. display: table !important;
  6653. }
  6654. tr.visible-lg {
  6655. display: table-row !important;
  6656. }
  6657. th.visible-lg,
  6658. td.visible-lg {
  6659. display: table-cell !important;
  6660. }
  6661. }
  6662. @media (min-width: 1200px) {
  6663. .visible-lg-block {
  6664. display: block !important;
  6665. }
  6666. }
  6667. @media (min-width: 1200px) {
  6668. .visible-lg-inline {
  6669. display: inline !important;
  6670. }
  6671. }
  6672. @media (min-width: 1200px) {
  6673. .visible-lg-inline-block {
  6674. display: inline-block !important;
  6675. }
  6676. }
  6677. @media (max-width: 767px) {
  6678. .hidden-xs {
  6679. display: none !important;
  6680. }
  6681. }
  6682. @media (min-width: 768px) and (max-width: 991px) {
  6683. .hidden-sm {
  6684. display: none !important;
  6685. }
  6686. }
  6687. @media (min-width: 992px) and (max-width: 1199px) {
  6688. .hidden-md {
  6689. display: none !important;
  6690. }
  6691. }
  6692. @media (min-width: 1200px) {
  6693. .hidden-lg {
  6694. display: none !important;
  6695. }
  6696. }
  6697. .visible-print {
  6698. display: none !important;
  6699. }
  6700. @media print {
  6701. .visible-print {
  6702. display: block !important;
  6703. }
  6704. table.visible-print {
  6705. display: table !important;
  6706. }
  6707. tr.visible-print {
  6708. display: table-row !important;
  6709. }
  6710. th.visible-print,
  6711. td.visible-print {
  6712. display: table-cell !important;
  6713. }
  6714. }
  6715. .visible-print-block {
  6716. display: none !important;
  6717. }
  6718. @media print {
  6719. .visible-print-block {
  6720. display: block !important;
  6721. }
  6722. }
  6723. .visible-print-inline {
  6724. display: none !important;
  6725. }
  6726. @media print {
  6727. .visible-print-inline {
  6728. display: inline !important;
  6729. }
  6730. }
  6731. .visible-print-inline-block {
  6732. display: none !important;
  6733. }
  6734. @media print {
  6735. .visible-print-inline-block {
  6736. display: inline-block !important;
  6737. }
  6738. }
  6739. @media print {
  6740. .hidden-print {
  6741. display: none !important;
  6742. }
  6743. }
  6744. /*!
  6745. *
  6746. * Font Awesome
  6747. *
  6748. */
  6749. /*!
  6750. * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
  6751. * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
  6752. */
  6753. /* FONT PATH
  6754. * -------------------------- */
  6755. @font-face {
  6756. font-family: 'FontAwesome';
  6757. src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0');
  6758. src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
  6759. font-weight: normal;
  6760. font-style: normal;
  6761. }
  6762. .fa {
  6763. display: inline-block;
  6764. font: normal normal normal 14px/1 FontAwesome;
  6765. font-size: inherit;
  6766. text-rendering: auto;
  6767. -webkit-font-smoothing: antialiased;
  6768. -moz-osx-font-smoothing: grayscale;
  6769. }
  6770. /* makes the font 33% larger relative to the icon container */
  6771. .fa-lg {
  6772. font-size: 1.33333333em;
  6773. line-height: 0.75em;
  6774. vertical-align: -15%;
  6775. }
  6776. .fa-2x {
  6777. font-size: 2em;
  6778. }
  6779. .fa-3x {
  6780. font-size: 3em;
  6781. }
  6782. .fa-4x {
  6783. font-size: 4em;
  6784. }
  6785. .fa-5x {
  6786. font-size: 5em;
  6787. }
  6788. .fa-fw {
  6789. width: 1.28571429em;
  6790. text-align: center;
  6791. }
  6792. .fa-ul {
  6793. padding-left: 0;
  6794. margin-left: 2.14285714em;
  6795. list-style-type: none;
  6796. }
  6797. .fa-ul > li {
  6798. position: relative;
  6799. }
  6800. .fa-li {
  6801. position: absolute;
  6802. left: -2.14285714em;
  6803. width: 2.14285714em;
  6804. top: 0.14285714em;
  6805. text-align: center;
  6806. }
  6807. .fa-li.fa-lg {
  6808. left: -1.85714286em;
  6809. }
  6810. .fa-border {
  6811. padding: .2em .25em .15em;
  6812. border: solid 0.08em #eee;
  6813. border-radius: .1em;
  6814. }
  6815. .pull-right {
  6816. float: right;
  6817. }
  6818. .pull-left {
  6819. float: left;
  6820. }
  6821. .fa.pull-left {
  6822. margin-right: .3em;
  6823. }
  6824. .fa.pull-right {
  6825. margin-left: .3em;
  6826. }
  6827. .fa-spin {
  6828. -webkit-animation: fa-spin 2s infinite linear;
  6829. animation: fa-spin 2s infinite linear;
  6830. }
  6831. @-webkit-keyframes fa-spin {
  6832. 0% {
  6833. -webkit-transform: rotate(0deg);
  6834. transform: rotate(0deg);
  6835. }
  6836. 100% {
  6837. -webkit-transform: rotate(359deg);
  6838. transform: rotate(359deg);
  6839. }
  6840. }
  6841. @keyframes fa-spin {
  6842. 0% {
  6843. -webkit-transform: rotate(0deg);
  6844. transform: rotate(0deg);
  6845. }
  6846. 100% {
  6847. -webkit-transform: rotate(359deg);
  6848. transform: rotate(359deg);
  6849. }
  6850. }
  6851. .fa-rotate-90 {
  6852. filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
  6853. -webkit-transform: rotate(90deg);
  6854. -ms-transform: rotate(90deg);
  6855. transform: rotate(90deg);
  6856. }
  6857. .fa-rotate-180 {
  6858. filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  6859. -webkit-transform: rotate(180deg);
  6860. -ms-transform: rotate(180deg);
  6861. transform: rotate(180deg);
  6862. }
  6863. .fa-rotate-270 {
  6864. filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
  6865. -webkit-transform: rotate(270deg);
  6866. -ms-transform: rotate(270deg);
  6867. transform: rotate(270deg);
  6868. }
  6869. .fa-flip-horizontal {
  6870. filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
  6871. -webkit-transform: scale(-1, 1);
  6872. -ms-transform: scale(-1, 1);
  6873. transform: scale(-1, 1);
  6874. }
  6875. .fa-flip-vertical {
  6876. filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
  6877. -webkit-transform: scale(1, -1);
  6878. -ms-transform: scale(1, -1);
  6879. transform: scale(1, -1);
  6880. }
  6881. :root .fa-rotate-90,
  6882. :root .fa-rotate-180,
  6883. :root .fa-rotate-270,
  6884. :root .fa-flip-horizontal,
  6885. :root .fa-flip-vertical {
  6886. filter: none;
  6887. }
  6888. .fa-stack {
  6889. position: relative;
  6890. display: inline-block;
  6891. width: 2em;
  6892. height: 2em;
  6893. line-height: 2em;
  6894. vertical-align: middle;
  6895. }
  6896. .fa-stack-1x,
  6897. .fa-stack-2x {
  6898. position: absolute;
  6899. left: 0;
  6900. width: 100%;
  6901. text-align: center;
  6902. }
  6903. .fa-stack-1x {
  6904. line-height: inherit;
  6905. }
  6906. .fa-stack-2x {
  6907. font-size: 2em;
  6908. }
  6909. .fa-inverse {
  6910. color: #fff;
  6911. }
  6912. /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
  6913. readers do not read off random characters that represent icons */
  6914. .fa-glass:before {
  6915. content: "\f000";
  6916. }
  6917. .fa-music:before {
  6918. content: "\f001";
  6919. }
  6920. .fa-search:before {
  6921. content: "\f002";
  6922. }
  6923. .fa-envelope-o:before {
  6924. content: "\f003";
  6925. }
  6926. .fa-heart:before {
  6927. content: "\f004";
  6928. }
  6929. .fa-star:before {
  6930. content: "\f005";
  6931. }
  6932. .fa-star-o:before {
  6933. content: "\f006";
  6934. }
  6935. .fa-user:before {
  6936. content: "\f007";
  6937. }
  6938. .fa-film:before {
  6939. content: "\f008";
  6940. }
  6941. .fa-th-large:before {
  6942. content: "\f009";
  6943. }
  6944. .fa-th:before {
  6945. content: "\f00a";
  6946. }
  6947. .fa-th-list:before {
  6948. content: "\f00b";
  6949. }
  6950. .fa-check:before {
  6951. content: "\f00c";
  6952. }
  6953. .fa-remove:before,
  6954. .fa-close:before,
  6955. .fa-times:before {
  6956. content: "\f00d";
  6957. }
  6958. .fa-search-plus:before {
  6959. content: "\f00e";
  6960. }
  6961. .fa-search-minus:before {
  6962. content: "\f010";
  6963. }
  6964. .fa-power-off:before {
  6965. content: "\f011";
  6966. }
  6967. .fa-signal:before {
  6968. content: "\f012";
  6969. }
  6970. .fa-gear:before,
  6971. .fa-cog:before {
  6972. content: "\f013";
  6973. }
  6974. .fa-trash-o:before {
  6975. content: "\f014";
  6976. }
  6977. .fa-home:before {
  6978. content: "\f015";
  6979. }
  6980. .fa-file-o:before {
  6981. content: "\f016";
  6982. }
  6983. .fa-clock-o:before {
  6984. content: "\f017";
  6985. }
  6986. .fa-road:before {
  6987. content: "\f018";
  6988. }
  6989. .fa-download:before {
  6990. content: "\f019";
  6991. }
  6992. .fa-arrow-circle-o-down:before {
  6993. content: "\f01a";
  6994. }
  6995. .fa-arrow-circle-o-up:before {
  6996. content: "\f01b";
  6997. }
  6998. .fa-inbox:before {
  6999. content: "\f01c";
  7000. }
  7001. .fa-play-circle-o:before {
  7002. content: "\f01d";
  7003. }
  7004. .fa-rotate-right:before,
  7005. .fa-repeat:before {
  7006. content: "\f01e";
  7007. }
  7008. .fa-refresh:before {
  7009. content: "\f021";
  7010. }
  7011. .fa-list-alt:before {
  7012. content: "\f022";
  7013. }
  7014. .fa-lock:before {
  7015. content: "\f023";
  7016. }
  7017. .fa-flag:before {
  7018. content: "\f024";
  7019. }
  7020. .fa-headphones:before {
  7021. content: "\f025";
  7022. }
  7023. .fa-volume-off:before {
  7024. content: "\f026";
  7025. }
  7026. .fa-volume-down:before {
  7027. content: "\f027";
  7028. }
  7029. .fa-volume-up:before {
  7030. content: "\f028";
  7031. }
  7032. .fa-qrcode:before {
  7033. content: "\f029";
  7034. }
  7035. .fa-barcode:before {
  7036. content: "\f02a";
  7037. }
  7038. .fa-tag:before {
  7039. content: "\f02b";
  7040. }
  7041. .fa-tags:before {
  7042. content: "\f02c";
  7043. }
  7044. .fa-book:before {
  7045. content: "\f02d";
  7046. }
  7047. .fa-bookmark:before {
  7048. content: "\f02e";
  7049. }
  7050. .fa-print:before {
  7051. content: "\f02f";
  7052. }
  7053. .fa-camera:before {
  7054. content: "\f030";
  7055. }
  7056. .fa-font:before {
  7057. content: "\f031";
  7058. }
  7059. .fa-bold:before {
  7060. content: "\f032";
  7061. }
  7062. .fa-italic:before {
  7063. content: "\f033";
  7064. }
  7065. .fa-text-height:before {
  7066. content: "\f034";
  7067. }
  7068. .fa-text-width:before {
  7069. content: "\f035";
  7070. }
  7071. .fa-align-left:before {
  7072. content: "\f036";
  7073. }
  7074. .fa-align-center:before {
  7075. content: "\f037";
  7076. }
  7077. .fa-align-right:before {
  7078. content: "\f038";
  7079. }
  7080. .fa-align-justify:before {
  7081. content: "\f039";
  7082. }
  7083. .fa-list:before {
  7084. content: "\f03a";
  7085. }
  7086. .fa-dedent:before,
  7087. .fa-outdent:before {
  7088. content: "\f03b";
  7089. }
  7090. .fa-indent:before {
  7091. content: "\f03c";
  7092. }
  7093. .fa-video-camera:before {
  7094. content: "\f03d";
  7095. }
  7096. .fa-photo:before,
  7097. .fa-image:before,
  7098. .fa-picture-o:before {
  7099. content: "\f03e";
  7100. }
  7101. .fa-pencil:before {
  7102. content: "\f040";
  7103. }
  7104. .fa-map-marker:before {
  7105. content: "\f041";
  7106. }
  7107. .fa-adjust:before {
  7108. content: "\f042";
  7109. }
  7110. .fa-tint:before {
  7111. content: "\f043";
  7112. }
  7113. .fa-edit:before,
  7114. .fa-pencil-square-o:before {
  7115. content: "\f044";
  7116. }
  7117. .fa-share-square-o:before {
  7118. content: "\f045";
  7119. }
  7120. .fa-check-square-o:before {
  7121. content: "\f046";
  7122. }
  7123. .fa-arrows:before {
  7124. content: "\f047";
  7125. }
  7126. .fa-step-backward:before {
  7127. content: "\f048";
  7128. }
  7129. .fa-fast-backward:before {
  7130. content: "\f049";
  7131. }
  7132. .fa-backward:before {
  7133. content: "\f04a";
  7134. }
  7135. .fa-play:before {
  7136. content: "\f04b";
  7137. }
  7138. .fa-pause:before {
  7139. content: "\f04c";
  7140. }
  7141. .fa-stop:before {
  7142. content: "\f04d";
  7143. }
  7144. .fa-forward:before {
  7145. content: "\f04e";
  7146. }
  7147. .fa-fast-forward:before {
  7148. content: "\f050";
  7149. }
  7150. .fa-step-forward:before {
  7151. content: "\f051";
  7152. }
  7153. .fa-eject:before {
  7154. content: "\f052";
  7155. }
  7156. .fa-chevron-left:before {
  7157. content: "\f053";
  7158. }
  7159. .fa-chevron-right:before {
  7160. content: "\f054";
  7161. }
  7162. .fa-plus-circle:before {
  7163. content: "\f055";
  7164. }
  7165. .fa-minus-circle:before {
  7166. content: "\f056";
  7167. }
  7168. .fa-times-circle:before {
  7169. content: "\f057";
  7170. }
  7171. .fa-check-circle:before {
  7172. content: "\f058";
  7173. }
  7174. .fa-question-circle:before {
  7175. content: "\f059";
  7176. }
  7177. .fa-info-circle:before {
  7178. content: "\f05a";
  7179. }
  7180. .fa-crosshairs:before {
  7181. content: "\f05b";
  7182. }
  7183. .fa-times-circle-o:before {
  7184. content: "\f05c";
  7185. }
  7186. .fa-check-circle-o:before {
  7187. content: "\f05d";
  7188. }
  7189. .fa-ban:before {
  7190. content: "\f05e";
  7191. }
  7192. .fa-arrow-left:before {
  7193. content: "\f060";
  7194. }
  7195. .fa-arrow-right:before {
  7196. content: "\f061";
  7197. }
  7198. .fa-arrow-up:before {
  7199. content: "\f062";
  7200. }
  7201. .fa-arrow-down:before {
  7202. content: "\f063";
  7203. }
  7204. .fa-mail-forward:before,
  7205. .fa-share:before {
  7206. content: "\f064";
  7207. }
  7208. .fa-expand:before {
  7209. content: "\f065";
  7210. }
  7211. .fa-compress:before {
  7212. content: "\f066";
  7213. }
  7214. .fa-plus:before {
  7215. content: "\f067";
  7216. }
  7217. .fa-minus:before {
  7218. content: "\f068";
  7219. }
  7220. .fa-asterisk:before {
  7221. content: "\f069";
  7222. }
  7223. .fa-exclamation-circle:before {
  7224. content: "\f06a";
  7225. }
  7226. .fa-gift:before {
  7227. content: "\f06b";
  7228. }
  7229. .fa-leaf:before {
  7230. content: "\f06c";
  7231. }
  7232. .fa-fire:before {
  7233. content: "\f06d";
  7234. }
  7235. .fa-eye:before {
  7236. content: "\f06e";
  7237. }
  7238. .fa-eye-slash:before {
  7239. content: "\f070";
  7240. }
  7241. .fa-warning:before,
  7242. .fa-exclamation-triangle:before {
  7243. content: "\f071";
  7244. }
  7245. .fa-plane:before {
  7246. content: "\f072";
  7247. }
  7248. .fa-calendar:before {
  7249. content: "\f073";
  7250. }
  7251. .fa-random:before {
  7252. content: "\f074";
  7253. }
  7254. .fa-comment:before {
  7255. content: "\f075";
  7256. }
  7257. .fa-magnet:before {
  7258. content: "\f076";
  7259. }
  7260. .fa-chevron-up:before {
  7261. content: "\f077";
  7262. }
  7263. .fa-chevron-down:before {
  7264. content: "\f078";
  7265. }
  7266. .fa-retweet:before {
  7267. content: "\f079";
  7268. }
  7269. .fa-shopping-cart:before {
  7270. content: "\f07a";
  7271. }
  7272. .fa-folder:before {
  7273. content: "\f07b";
  7274. }
  7275. .fa-folder-open:before {
  7276. content: "\f07c";
  7277. }
  7278. .fa-arrows-v:before {
  7279. content: "\f07d";
  7280. }
  7281. .fa-arrows-h:before {
  7282. content: "\f07e";
  7283. }
  7284. .fa-bar-chart-o:before,
  7285. .fa-bar-chart:before {
  7286. content: "\f080";
  7287. }
  7288. .fa-twitter-square:before {
  7289. content: "\f081";
  7290. }
  7291. .fa-facebook-square:before {
  7292. content: "\f082";
  7293. }
  7294. .fa-camera-retro:before {
  7295. content: "\f083";
  7296. }
  7297. .fa-key:before {
  7298. content: "\f084";
  7299. }
  7300. .fa-gears:before,
  7301. .fa-cogs:before {
  7302. content: "\f085";
  7303. }
  7304. .fa-comments:before {
  7305. content: "\f086";
  7306. }
  7307. .fa-thumbs-o-up:before {
  7308. content: "\f087";
  7309. }
  7310. .fa-thumbs-o-down:before {
  7311. content: "\f088";
  7312. }
  7313. .fa-star-half:before {
  7314. content: "\f089";
  7315. }
  7316. .fa-heart-o:before {
  7317. content: "\f08a";
  7318. }
  7319. .fa-sign-out:before {
  7320. content: "\f08b";
  7321. }
  7322. .fa-linkedin-square:before {
  7323. content: "\f08c";
  7324. }
  7325. .fa-thumb-tack:before {
  7326. content: "\f08d";
  7327. }
  7328. .fa-external-link:before {
  7329. content: "\f08e";
  7330. }
  7331. .fa-sign-in:before {
  7332. content: "\f090";
  7333. }
  7334. .fa-trophy:before {
  7335. content: "\f091";
  7336. }
  7337. .fa-github-square:before {
  7338. content: "\f092";
  7339. }
  7340. .fa-upload:before {
  7341. content: "\f093";
  7342. }
  7343. .fa-lemon-o:before {
  7344. content: "\f094";
  7345. }
  7346. .fa-phone:before {
  7347. content: "\f095";
  7348. }
  7349. .fa-square-o:before {
  7350. content: "\f096";
  7351. }
  7352. .fa-bookmark-o:before {
  7353. content: "\f097";
  7354. }
  7355. .fa-phone-square:before {
  7356. content: "\f098";
  7357. }
  7358. .fa-twitter:before {
  7359. content: "\f099";
  7360. }
  7361. .fa-facebook:before {
  7362. content: "\f09a";
  7363. }
  7364. .fa-github:before {
  7365. content: "\f09b";
  7366. }
  7367. .fa-unlock:before {
  7368. content: "\f09c";
  7369. }
  7370. .fa-credit-card:before {
  7371. content: "\f09d";
  7372. }
  7373. .fa-rss:before {
  7374. content: "\f09e";
  7375. }
  7376. .fa-hdd-o:before {
  7377. content: "\f0a0";
  7378. }
  7379. .fa-bullhorn:before {
  7380. content: "\f0a1";
  7381. }
  7382. .fa-bell:before {
  7383. content: "\f0f3";
  7384. }
  7385. .fa-certificate:before {
  7386. content: "\f0a3";
  7387. }
  7388. .fa-hand-o-right:before {
  7389. content: "\f0a4";
  7390. }
  7391. .fa-hand-o-left:before {
  7392. content: "\f0a5";
  7393. }
  7394. .fa-hand-o-up:before {
  7395. content: "\f0a6";
  7396. }
  7397. .fa-hand-o-down:before {
  7398. content: "\f0a7";
  7399. }
  7400. .fa-arrow-circle-left:before {
  7401. content: "\f0a8";
  7402. }
  7403. .fa-arrow-circle-right:before {
  7404. content: "\f0a9";
  7405. }
  7406. .fa-arrow-circle-up:before {
  7407. content: "\f0aa";
  7408. }
  7409. .fa-arrow-circle-down:before {
  7410. content: "\f0ab";
  7411. }
  7412. .fa-globe:before {
  7413. content: "\f0ac";
  7414. }
  7415. .fa-wrench:before {
  7416. content: "\f0ad";
  7417. }
  7418. .fa-tasks:before {
  7419. content: "\f0ae";
  7420. }
  7421. .fa-filter:before {
  7422. content: "\f0b0";
  7423. }
  7424. .fa-briefcase:before {
  7425. content: "\f0b1";
  7426. }
  7427. .fa-arrows-alt:before {
  7428. content: "\f0b2";
  7429. }
  7430. .fa-group:before,
  7431. .fa-users:before {
  7432. content: "\f0c0";
  7433. }
  7434. .fa-chain:before,
  7435. .fa-link:before {
  7436. content: "\f0c1";
  7437. }
  7438. .fa-cloud:before {
  7439. content: "\f0c2";
  7440. }
  7441. .fa-flask:before {
  7442. content: "\f0c3";
  7443. }
  7444. .fa-cut:before,
  7445. .fa-scissors:before {
  7446. content: "\f0c4";
  7447. }
  7448. .fa-copy:before,
  7449. .fa-files-o:before {
  7450. content: "\f0c5";
  7451. }
  7452. .fa-paperclip:before {
  7453. content: "\f0c6";
  7454. }
  7455. .fa-save:before,
  7456. .fa-floppy-o:before {
  7457. content: "\f0c7";
  7458. }
  7459. .fa-square:before {
  7460. content: "\f0c8";
  7461. }
  7462. .fa-navicon:before,
  7463. .fa-reorder:before,
  7464. .fa-bars:before {
  7465. content: "\f0c9";
  7466. }
  7467. .fa-list-ul:before {
  7468. content: "\f0ca";
  7469. }
  7470. .fa-list-ol:before {
  7471. content: "\f0cb";
  7472. }
  7473. .fa-strikethrough:before {
  7474. content: "\f0cc";
  7475. }
  7476. .fa-underline:before {
  7477. content: "\f0cd";
  7478. }
  7479. .fa-table:before {
  7480. content: "\f0ce";
  7481. }
  7482. .fa-magic:before {
  7483. content: "\f0d0";
  7484. }
  7485. .fa-truck:before {
  7486. content: "\f0d1";
  7487. }
  7488. .fa-pinterest:before {
  7489. content: "\f0d2";
  7490. }
  7491. .fa-pinterest-square:before {
  7492. content: "\f0d3";
  7493. }
  7494. .fa-google-plus-square:before {
  7495. content: "\f0d4";
  7496. }
  7497. .fa-google-plus:before {
  7498. content: "\f0d5";
  7499. }
  7500. .fa-money:before {
  7501. content: "\f0d6";
  7502. }
  7503. .fa-caret-down:before {
  7504. content: "\f0d7";
  7505. }
  7506. .fa-caret-up:before {
  7507. content: "\f0d8";
  7508. }
  7509. .fa-caret-left:before {
  7510. content: "\f0d9";
  7511. }
  7512. .fa-caret-right:before {
  7513. content: "\f0da";
  7514. }
  7515. .fa-columns:before {
  7516. content: "\f0db";
  7517. }
  7518. .fa-unsorted:before,
  7519. .fa-sort:before {
  7520. content: "\f0dc";
  7521. }
  7522. .fa-sort-down:before,
  7523. .fa-sort-desc:before {
  7524. content: "\f0dd";
  7525. }
  7526. .fa-sort-up:before,
  7527. .fa-sort-asc:before {
  7528. content: "\f0de";
  7529. }
  7530. .fa-envelope:before {
  7531. content: "\f0e0";
  7532. }
  7533. .fa-linkedin:before {
  7534. content: "\f0e1";
  7535. }
  7536. .fa-rotate-left:before,
  7537. .fa-undo:before {
  7538. content: "\f0e2";
  7539. }
  7540. .fa-legal:before,
  7541. .fa-gavel:before {
  7542. content: "\f0e3";
  7543. }
  7544. .fa-dashboard:before,
  7545. .fa-tachometer:before {
  7546. content: "\f0e4";
  7547. }
  7548. .fa-comment-o:before {
  7549. content: "\f0e5";
  7550. }
  7551. .fa-comments-o:before {
  7552. content: "\f0e6";
  7553. }
  7554. .fa-flash:before,
  7555. .fa-bolt:before {
  7556. content: "\f0e7";
  7557. }
  7558. .fa-sitemap:before {
  7559. content: "\f0e8";
  7560. }
  7561. .fa-umbrella:before {
  7562. content: "\f0e9";
  7563. }
  7564. .fa-paste:before,
  7565. .fa-clipboard:before {
  7566. content: "\f0ea";
  7567. }
  7568. .fa-lightbulb-o:before {
  7569. content: "\f0eb";
  7570. }
  7571. .fa-exchange:before {
  7572. content: "\f0ec";
  7573. }
  7574. .fa-cloud-download:before {
  7575. content: "\f0ed";
  7576. }
  7577. .fa-cloud-upload:before {
  7578. content: "\f0ee";
  7579. }
  7580. .fa-user-md:before {
  7581. content: "\f0f0";
  7582. }
  7583. .fa-stethoscope:before {
  7584. content: "\f0f1";
  7585. }
  7586. .fa-suitcase:before {
  7587. content: "\f0f2";
  7588. }
  7589. .fa-bell-o:before {
  7590. content: "\f0a2";
  7591. }
  7592. .fa-coffee:before {
  7593. content: "\f0f4";
  7594. }
  7595. .fa-cutlery:before {
  7596. content: "\f0f5";
  7597. }
  7598. .fa-file-text-o:before {
  7599. content: "\f0f6";
  7600. }
  7601. .fa-building-o:before {
  7602. content: "\f0f7";
  7603. }
  7604. .fa-hospital-o:before {
  7605. content: "\f0f8";
  7606. }
  7607. .fa-ambulance:before {
  7608. content: "\f0f9";
  7609. }
  7610. .fa-medkit:before {
  7611. content: "\f0fa";
  7612. }
  7613. .fa-fighter-jet:before {
  7614. content: "\f0fb";
  7615. }
  7616. .fa-beer:before {
  7617. content: "\f0fc";
  7618. }
  7619. .fa-h-square:before {
  7620. content: "\f0fd";
  7621. }
  7622. .fa-plus-square:before {
  7623. content: "\f0fe";
  7624. }
  7625. .fa-angle-double-left:before {
  7626. content: "\f100";
  7627. }
  7628. .fa-angle-double-right:before {
  7629. content: "\f101";
  7630. }
  7631. .fa-angle-double-up:before {
  7632. content: "\f102";
  7633. }
  7634. .fa-angle-double-down:before {
  7635. content: "\f103";
  7636. }
  7637. .fa-angle-left:before {
  7638. content: "\f104";
  7639. }
  7640. .fa-angle-right:before {
  7641. content: "\f105";
  7642. }
  7643. .fa-angle-up:before {
  7644. content: "\f106";
  7645. }
  7646. .fa-angle-down:before {
  7647. content: "\f107";
  7648. }
  7649. .fa-desktop:before {
  7650. content: "\f108";
  7651. }
  7652. .fa-laptop:before {
  7653. content: "\f109";
  7654. }
  7655. .fa-tablet:before {
  7656. content: "\f10a";
  7657. }
  7658. .fa-mobile-phone:before,
  7659. .fa-mobile:before {
  7660. content: "\f10b";
  7661. }
  7662. .fa-circle-o:before {
  7663. content: "\f10c";
  7664. }
  7665. .fa-quote-left:before {
  7666. content: "\f10d";
  7667. }
  7668. .fa-quote-right:before {
  7669. content: "\f10e";
  7670. }
  7671. .fa-spinner:before {
  7672. content: "\f110";
  7673. }
  7674. .fa-circle:before {
  7675. content: "\f111";
  7676. }
  7677. .fa-mail-reply:before,
  7678. .fa-reply:before {
  7679. content: "\f112";
  7680. }
  7681. .fa-github-alt:before {
  7682. content: "\f113";
  7683. }
  7684. .fa-folder-o:before {
  7685. content: "\f114";
  7686. }
  7687. .fa-folder-open-o:before {
  7688. content: "\f115";
  7689. }
  7690. .fa-smile-o:before {
  7691. content: "\f118";
  7692. }
  7693. .fa-frown-o:before {
  7694. content: "\f119";
  7695. }
  7696. .fa-meh-o:before {
  7697. content: "\f11a";
  7698. }
  7699. .fa-gamepad:before {
  7700. content: "\f11b";
  7701. }
  7702. .fa-keyboard-o:before {
  7703. content: "\f11c";
  7704. }
  7705. .fa-flag-o:before {
  7706. content: "\f11d";
  7707. }
  7708. .fa-flag-checkered:before {
  7709. content: "\f11e";
  7710. }
  7711. .fa-terminal:before {
  7712. content: "\f120";
  7713. }
  7714. .fa-code:before {
  7715. content: "\f121";
  7716. }
  7717. .fa-mail-reply-all:before,
  7718. .fa-reply-all:before {
  7719. content: "\f122";
  7720. }
  7721. .fa-star-half-empty:before,
  7722. .fa-star-half-full:before,
  7723. .fa-star-half-o:before {
  7724. content: "\f123";
  7725. }
  7726. .fa-location-arrow:before {
  7727. content: "\f124";
  7728. }
  7729. .fa-crop:before {
  7730. content: "\f125";
  7731. }
  7732. .fa-code-fork:before {
  7733. content: "\f126";
  7734. }
  7735. .fa-unlink:before,
  7736. .fa-chain-broken:before {
  7737. content: "\f127";
  7738. }
  7739. .fa-question:before {
  7740. content: "\f128";
  7741. }
  7742. .fa-info:before {
  7743. content: "\f129";
  7744. }
  7745. .fa-exclamation:before {
  7746. content: "\f12a";
  7747. }
  7748. .fa-superscript:before {
  7749. content: "\f12b";
  7750. }
  7751. .fa-subscript:before {
  7752. content: "\f12c";
  7753. }
  7754. .fa-eraser:before {
  7755. content: "\f12d";
  7756. }
  7757. .fa-puzzle-piece:before {
  7758. content: "\f12e";
  7759. }
  7760. .fa-microphone:before {
  7761. content: "\f130";
  7762. }
  7763. .fa-microphone-slash:before {
  7764. content: "\f131";
  7765. }
  7766. .fa-shield:before {
  7767. content: "\f132";
  7768. }
  7769. .fa-calendar-o:before {
  7770. content: "\f133";
  7771. }
  7772. .fa-fire-extinguisher:before {
  7773. content: "\f134";
  7774. }
  7775. .fa-rocket:before {
  7776. content: "\f135";
  7777. }
  7778. .fa-maxcdn:before {
  7779. content: "\f136";
  7780. }
  7781. .fa-chevron-circle-left:before {
  7782. content: "\f137";
  7783. }
  7784. .fa-chevron-circle-right:before {
  7785. content: "\f138";
  7786. }
  7787. .fa-chevron-circle-up:before {
  7788. content: "\f139";
  7789. }
  7790. .fa-chevron-circle-down:before {
  7791. content: "\f13a";
  7792. }
  7793. .fa-html5:before {
  7794. content: "\f13b";
  7795. }
  7796. .fa-css3:before {
  7797. content: "\f13c";
  7798. }
  7799. .fa-anchor:before {
  7800. content: "\f13d";
  7801. }
  7802. .fa-unlock-alt:before {
  7803. content: "\f13e";
  7804. }
  7805. .fa-bullseye:before {
  7806. content: "\f140";
  7807. }
  7808. .fa-ellipsis-h:before {
  7809. content: "\f141";
  7810. }
  7811. .fa-ellipsis-v:before {
  7812. content: "\f142";
  7813. }
  7814. .fa-rss-square:before {
  7815. content: "\f143";
  7816. }
  7817. .fa-play-circle:before {
  7818. content: "\f144";
  7819. }
  7820. .fa-ticket:before {
  7821. content: "\f145";
  7822. }
  7823. .fa-minus-square:before {
  7824. content: "\f146";
  7825. }
  7826. .fa-minus-square-o:before {
  7827. content: "\f147";
  7828. }
  7829. .fa-level-up:before {
  7830. content: "\f148";
  7831. }
  7832. .fa-level-down:before {
  7833. content: "\f149";
  7834. }
  7835. .fa-check-square:before {
  7836. content: "\f14a";
  7837. }
  7838. .fa-pencil-square:before {
  7839. content: "\f14b";
  7840. }
  7841. .fa-external-link-square:before {
  7842. content: "\f14c";
  7843. }
  7844. .fa-share-square:before {
  7845. content: "\f14d";
  7846. }
  7847. .fa-compass:before {
  7848. content: "\f14e";
  7849. }
  7850. .fa-toggle-down:before,
  7851. .fa-caret-square-o-down:before {
  7852. content: "\f150";
  7853. }
  7854. .fa-toggle-up:before,
  7855. .fa-caret-square-o-up:before {
  7856. content: "\f151";
  7857. }
  7858. .fa-toggle-right:before,
  7859. .fa-caret-square-o-right:before {
  7860. content: "\f152";
  7861. }
  7862. .fa-euro:before,
  7863. .fa-eur:before {
  7864. content: "\f153";
  7865. }
  7866. .fa-gbp:before {
  7867. content: "\f154";
  7868. }
  7869. .fa-dollar:before,
  7870. .fa-usd:before {
  7871. content: "\f155";
  7872. }
  7873. .fa-rupee:before,
  7874. .fa-inr:before {
  7875. content: "\f156";
  7876. }
  7877. .fa-cny:before,
  7878. .fa-rmb:before,
  7879. .fa-yen:before,
  7880. .fa-jpy:before {
  7881. content: "\f157";
  7882. }
  7883. .fa-ruble:before,
  7884. .fa-rouble:before,
  7885. .fa-rub:before {
  7886. content: "\f158";
  7887. }
  7888. .fa-won:before,
  7889. .fa-krw:before {
  7890. content: "\f159";
  7891. }
  7892. .fa-bitcoin:before,
  7893. .fa-btc:before {
  7894. content: "\f15a";
  7895. }
  7896. .fa-file:before {
  7897. content: "\f15b";
  7898. }
  7899. .fa-file-text:before {
  7900. content: "\f15c";
  7901. }
  7902. .fa-sort-alpha-asc:before {
  7903. content: "\f15d";
  7904. }
  7905. .fa-sort-alpha-desc:before {
  7906. content: "\f15e";
  7907. }
  7908. .fa-sort-amount-asc:before {
  7909. content: "\f160";
  7910. }
  7911. .fa-sort-amount-desc:before {
  7912. content: "\f161";
  7913. }
  7914. .fa-sort-numeric-asc:before {
  7915. content: "\f162";
  7916. }
  7917. .fa-sort-numeric-desc:before {
  7918. content: "\f163";
  7919. }
  7920. .fa-thumbs-up:before {
  7921. content: "\f164";
  7922. }
  7923. .fa-thumbs-down:before {
  7924. content: "\f165";
  7925. }
  7926. .fa-youtube-square:before {
  7927. content: "\f166";
  7928. }
  7929. .fa-youtube:before {
  7930. content: "\f167";
  7931. }
  7932. .fa-xing:before {
  7933. content: "\f168";
  7934. }
  7935. .fa-xing-square:before {
  7936. content: "\f169";
  7937. }
  7938. .fa-youtube-play:before {
  7939. content: "\f16a";
  7940. }
  7941. .fa-dropbox:before {
  7942. content: "\f16b";
  7943. }
  7944. .fa-stack-overflow:before {
  7945. content: "\f16c";
  7946. }
  7947. .fa-instagram:before {
  7948. content: "\f16d";
  7949. }
  7950. .fa-flickr:before {
  7951. content: "\f16e";
  7952. }
  7953. .fa-adn:before {
  7954. content: "\f170";
  7955. }
  7956. .fa-bitbucket:before {
  7957. content: "\f171";
  7958. }
  7959. .fa-bitbucket-square:before {
  7960. content: "\f172";
  7961. }
  7962. .fa-tumblr:before {
  7963. content: "\f173";
  7964. }
  7965. .fa-tumblr-square:before {
  7966. content: "\f174";
  7967. }
  7968. .fa-long-arrow-down:before {
  7969. content: "\f175";
  7970. }
  7971. .fa-long-arrow-up:before {
  7972. content: "\f176";
  7973. }
  7974. .fa-long-arrow-left:before {
  7975. content: "\f177";
  7976. }
  7977. .fa-long-arrow-right:before {
  7978. content: "\f178";
  7979. }
  7980. .fa-apple:before {
  7981. content: "\f179";
  7982. }
  7983. .fa-windows:before {
  7984. content: "\f17a";
  7985. }
  7986. .fa-android:before {
  7987. content: "\f17b";
  7988. }
  7989. .fa-linux:before {
  7990. content: "\f17c";
  7991. }
  7992. .fa-dribbble:before {
  7993. content: "\f17d";
  7994. }
  7995. .fa-skype:before {
  7996. content: "\f17e";
  7997. }
  7998. .fa-foursquare:before {
  7999. content: "\f180";
  8000. }
  8001. .fa-trello:before {
  8002. content: "\f181";
  8003. }
  8004. .fa-female:before {
  8005. content: "\f182";
  8006. }
  8007. .fa-male:before {
  8008. content: "\f183";
  8009. }
  8010. .fa-gittip:before {
  8011. content: "\f184";
  8012. }
  8013. .fa-sun-o:before {
  8014. content: "\f185";
  8015. }
  8016. .fa-moon-o:before {
  8017. content: "\f186";
  8018. }
  8019. .fa-archive:before {
  8020. content: "\f187";
  8021. }
  8022. .fa-bug:before {
  8023. content: "\f188";
  8024. }
  8025. .fa-vk:before {
  8026. content: "\f189";
  8027. }
  8028. .fa-weibo:before {
  8029. content: "\f18a";
  8030. }
  8031. .fa-renren:before {
  8032. content: "\f18b";
  8033. }
  8034. .fa-pagelines:before {
  8035. content: "\f18c";
  8036. }
  8037. .fa-stack-exchange:before {
  8038. content: "\f18d";
  8039. }
  8040. .fa-arrow-circle-o-right:before {
  8041. content: "\f18e";
  8042. }
  8043. .fa-arrow-circle-o-left:before {
  8044. content: "\f190";
  8045. }
  8046. .fa-toggle-left:before,
  8047. .fa-caret-square-o-left:before {
  8048. content: "\f191";
  8049. }
  8050. .fa-dot-circle-o:before {
  8051. content: "\f192";
  8052. }
  8053. .fa-wheelchair:before {
  8054. content: "\f193";
  8055. }
  8056. .fa-vimeo-square:before {
  8057. content: "\f194";
  8058. }
  8059. .fa-turkish-lira:before,
  8060. .fa-try:before {
  8061. content: "\f195";
  8062. }
  8063. .fa-plus-square-o:before {
  8064. content: "\f196";
  8065. }
  8066. .fa-space-shuttle:before {
  8067. content: "\f197";
  8068. }
  8069. .fa-slack:before {
  8070. content: "\f198";
  8071. }
  8072. .fa-envelope-square:before {
  8073. content: "\f199";
  8074. }
  8075. .fa-wordpress:before {
  8076. content: "\f19a";
  8077. }
  8078. .fa-openid:before {
  8079. content: "\f19b";
  8080. }
  8081. .fa-institution:before,
  8082. .fa-bank:before,
  8083. .fa-university:before {
  8084. content: "\f19c";
  8085. }
  8086. .fa-mortar-board:before,
  8087. .fa-graduation-cap:before {
  8088. content: "\f19d";
  8089. }
  8090. .fa-yahoo:before {
  8091. content: "\f19e";
  8092. }
  8093. .fa-google:before {
  8094. content: "\f1a0";
  8095. }
  8096. .fa-reddit:before {
  8097. content: "\f1a1";
  8098. }
  8099. .fa-reddit-square:before {
  8100. content: "\f1a2";
  8101. }
  8102. .fa-stumbleupon-circle:before {
  8103. content: "\f1a3";
  8104. }
  8105. .fa-stumbleupon:before {
  8106. content: "\f1a4";
  8107. }
  8108. .fa-delicious:before {
  8109. content: "\f1a5";
  8110. }
  8111. .fa-digg:before {
  8112. content: "\f1a6";
  8113. }
  8114. .fa-pied-piper:before {
  8115. content: "\f1a7";
  8116. }
  8117. .fa-pied-piper-alt:before {
  8118. content: "\f1a8";
  8119. }
  8120. .fa-drupal:before {
  8121. content: "\f1a9";
  8122. }
  8123. .fa-joomla:before {
  8124. content: "\f1aa";
  8125. }
  8126. .fa-language:before {
  8127. content: "\f1ab";
  8128. }
  8129. .fa-fax:before {
  8130. content: "\f1ac";
  8131. }
  8132. .fa-building:before {
  8133. content: "\f1ad";
  8134. }
  8135. .fa-child:before {
  8136. content: "\f1ae";
  8137. }
  8138. .fa-paw:before {
  8139. content: "\f1b0";
  8140. }
  8141. .fa-spoon:before {
  8142. content: "\f1b1";
  8143. }
  8144. .fa-cube:before {
  8145. content: "\f1b2";
  8146. }
  8147. .fa-cubes:before {
  8148. content: "\f1b3";
  8149. }
  8150. .fa-behance:before {
  8151. content: "\f1b4";
  8152. }
  8153. .fa-behance-square:before {
  8154. content: "\f1b5";
  8155. }
  8156. .fa-steam:before {
  8157. content: "\f1b6";
  8158. }
  8159. .fa-steam-square:before {
  8160. content: "\f1b7";
  8161. }
  8162. .fa-recycle:before {
  8163. content: "\f1b8";
  8164. }
  8165. .fa-automobile:before,
  8166. .fa-car:before {
  8167. content: "\f1b9";
  8168. }
  8169. .fa-cab:before,
  8170. .fa-taxi:before {
  8171. content: "\f1ba";
  8172. }
  8173. .fa-tree:before {
  8174. content: "\f1bb";
  8175. }
  8176. .fa-spotify:before {
  8177. content: "\f1bc";
  8178. }
  8179. .fa-deviantart:before {
  8180. content: "\f1bd";
  8181. }
  8182. .fa-soundcloud:before {
  8183. content: "\f1be";
  8184. }
  8185. .fa-database:before {
  8186. content: "\f1c0";
  8187. }
  8188. .fa-file-pdf-o:before {
  8189. content: "\f1c1";
  8190. }
  8191. .fa-file-word-o:before {
  8192. content: "\f1c2";
  8193. }
  8194. .fa-file-excel-o:before {
  8195. content: "\f1c3";
  8196. }
  8197. .fa-file-powerpoint-o:before {
  8198. content: "\f1c4";
  8199. }
  8200. .fa-file-photo-o:before,
  8201. .fa-file-picture-o:before,
  8202. .fa-file-image-o:before {
  8203. content: "\f1c5";
  8204. }
  8205. .fa-file-zip-o:before,
  8206. .fa-file-archive-o:before {
  8207. content: "\f1c6";
  8208. }
  8209. .fa-file-sound-o:before,
  8210. .fa-file-audio-o:before {
  8211. content: "\f1c7";
  8212. }
  8213. .fa-file-movie-o:before,
  8214. .fa-file-video-o:before {
  8215. content: "\f1c8";
  8216. }
  8217. .fa-file-code-o:before {
  8218. content: "\f1c9";
  8219. }
  8220. .fa-vine:before {
  8221. content: "\f1ca";
  8222. }
  8223. .fa-codepen:before {
  8224. content: "\f1cb";
  8225. }
  8226. .fa-jsfiddle:before {
  8227. content: "\f1cc";
  8228. }
  8229. .fa-life-bouy:before,
  8230. .fa-life-buoy:before,
  8231. .fa-life-saver:before,
  8232. .fa-support:before,
  8233. .fa-life-ring:before {
  8234. content: "\f1cd";
  8235. }
  8236. .fa-circle-o-notch:before {
  8237. content: "\f1ce";
  8238. }
  8239. .fa-ra:before,
  8240. .fa-rebel:before {
  8241. content: "\f1d0";
  8242. }
  8243. .fa-ge:before,
  8244. .fa-empire:before {
  8245. content: "\f1d1";
  8246. }
  8247. .fa-git-square:before {
  8248. content: "\f1d2";
  8249. }
  8250. .fa-git:before {
  8251. content: "\f1d3";
  8252. }
  8253. .fa-hacker-news:before {
  8254. content: "\f1d4";
  8255. }
  8256. .fa-tencent-weibo:before {
  8257. content: "\f1d5";
  8258. }
  8259. .fa-qq:before {
  8260. content: "\f1d6";
  8261. }
  8262. .fa-wechat:before,
  8263. .fa-weixin:before {
  8264. content: "\f1d7";
  8265. }
  8266. .fa-send:before,
  8267. .fa-paper-plane:before {
  8268. content: "\f1d8";
  8269. }
  8270. .fa-send-o:before,
  8271. .fa-paper-plane-o:before {
  8272. content: "\f1d9";
  8273. }
  8274. .fa-history:before {
  8275. content: "\f1da";
  8276. }
  8277. .fa-circle-thin:before {
  8278. content: "\f1db";
  8279. }
  8280. .fa-header:before {
  8281. content: "\f1dc";
  8282. }
  8283. .fa-paragraph:before {
  8284. content: "\f1dd";
  8285. }
  8286. .fa-sliders:before {
  8287. content: "\f1de";
  8288. }
  8289. .fa-share-alt:before {
  8290. content: "\f1e0";
  8291. }
  8292. .fa-share-alt-square:before {
  8293. content: "\f1e1";
  8294. }
  8295. .fa-bomb:before {
  8296. content: "\f1e2";
  8297. }
  8298. .fa-soccer-ball-o:before,
  8299. .fa-futbol-o:before {
  8300. content: "\f1e3";
  8301. }
  8302. .fa-tty:before {
  8303. content: "\f1e4";
  8304. }
  8305. .fa-binoculars:before {
  8306. content: "\f1e5";
  8307. }
  8308. .fa-plug:before {
  8309. content: "\f1e6";
  8310. }
  8311. .fa-slideshare:before {
  8312. content: "\f1e7";
  8313. }
  8314. .fa-twitch:before {
  8315. content: "\f1e8";
  8316. }
  8317. .fa-yelp:before {
  8318. content: "\f1e9";
  8319. }
  8320. .fa-newspaper-o:before {
  8321. content: "\f1ea";
  8322. }
  8323. .fa-wifi:before {
  8324. content: "\f1eb";
  8325. }
  8326. .fa-calculator:before {
  8327. content: "\f1ec";
  8328. }
  8329. .fa-paypal:before {
  8330. content: "\f1ed";
  8331. }
  8332. .fa-google-wallet:before {
  8333. content: "\f1ee";
  8334. }
  8335. .fa-cc-visa:before {
  8336. content: "\f1f0";
  8337. }
  8338. .fa-cc-mastercard:before {
  8339. content: "\f1f1";
  8340. }
  8341. .fa-cc-discover:before {
  8342. content: "\f1f2";
  8343. }
  8344. .fa-cc-amex:before {
  8345. content: "\f1f3";
  8346. }
  8347. .fa-cc-paypal:before {
  8348. content: "\f1f4";
  8349. }
  8350. .fa-cc-stripe:before {
  8351. content: "\f1f5";
  8352. }
  8353. .fa-bell-slash:before {
  8354. content: "\f1f6";
  8355. }
  8356. .fa-bell-slash-o:before {
  8357. content: "\f1f7";
  8358. }
  8359. .fa-trash:before {
  8360. content: "\f1f8";
  8361. }
  8362. .fa-copyright:before {
  8363. content: "\f1f9";
  8364. }
  8365. .fa-at:before {
  8366. content: "\f1fa";
  8367. }
  8368. .fa-eyedropper:before {
  8369. content: "\f1fb";
  8370. }
  8371. .fa-paint-brush:before {
  8372. content: "\f1fc";
  8373. }
  8374. .fa-birthday-cake:before {
  8375. content: "\f1fd";
  8376. }
  8377. .fa-area-chart:before {
  8378. content: "\f1fe";
  8379. }
  8380. .fa-pie-chart:before {
  8381. content: "\f200";
  8382. }
  8383. .fa-line-chart:before {
  8384. content: "\f201";
  8385. }
  8386. .fa-lastfm:before {
  8387. content: "\f202";
  8388. }
  8389. .fa-lastfm-square:before {
  8390. content: "\f203";
  8391. }
  8392. .fa-toggle-off:before {
  8393. content: "\f204";
  8394. }
  8395. .fa-toggle-on:before {
  8396. content: "\f205";
  8397. }
  8398. .fa-bicycle:before {
  8399. content: "\f206";
  8400. }
  8401. .fa-bus:before {
  8402. content: "\f207";
  8403. }
  8404. .fa-ioxhost:before {
  8405. content: "\f208";
  8406. }
  8407. .fa-angellist:before {
  8408. content: "\f209";
  8409. }
  8410. .fa-cc:before {
  8411. content: "\f20a";
  8412. }
  8413. .fa-shekel:before,
  8414. .fa-sheqel:before,
  8415. .fa-ils:before {
  8416. content: "\f20b";
  8417. }
  8418. .fa-meanpath:before {
  8419. content: "\f20c";
  8420. }
  8421. /*!
  8422. *
  8423. * IPython base
  8424. *
  8425. */
  8426. .modal.fade .modal-dialog {
  8427. -webkit-transform: translate(0, 0);
  8428. -ms-transform: translate(0, 0);
  8429. -o-transform: translate(0, 0);
  8430. transform: translate(0, 0);
  8431. }
  8432. code {
  8433. color: #000;
  8434. }
  8435. pre {
  8436. font-size: inherit;
  8437. line-height: inherit;
  8438. }
  8439. label {
  8440. font-weight: normal;
  8441. }
  8442. /* Make the page background atleast 100% the height of the view port */
  8443. /* Make the page itself atleast 70% the height of the view port */
  8444. .border-box-sizing {
  8445. box-sizing: border-box;
  8446. -moz-box-sizing: border-box;
  8447. -webkit-box-sizing: border-box;
  8448. }
  8449. .corner-all {
  8450. border-radius: 2px;
  8451. }
  8452. .no-padding {
  8453. padding: 0px;
  8454. }
  8455. /* Flexible box model classes */
  8456. /* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
  8457. /* This file is a compatability layer. It allows the usage of flexible box
  8458. model layouts accross multiple browsers, including older browsers. The newest,
  8459. universal implementation of the flexible box model is used when available (see
  8460. `Modern browsers` comments below). Browsers that are known to implement this
  8461. new spec completely include:
  8462. Firefox 28.0+
  8463. Chrome 29.0+
  8464. Internet Explorer 11+
  8465. Opera 17.0+
  8466. Browsers not listed, including Safari, are supported via the styling under the
  8467. `Old browsers` comments below.
  8468. */
  8469. .hbox {
  8470. /* Old browsers */
  8471. display: -webkit-box;
  8472. -webkit-box-orient: horizontal;
  8473. -webkit-box-align: stretch;
  8474. display: -moz-box;
  8475. -moz-box-orient: horizontal;
  8476. -moz-box-align: stretch;
  8477. display: box;
  8478. box-orient: horizontal;
  8479. box-align: stretch;
  8480. /* Modern browsers */
  8481. display: flex;
  8482. flex-direction: row;
  8483. align-items: stretch;
  8484. }
  8485. .hbox > * {
  8486. /* Old browsers */
  8487. -webkit-box-flex: 0;
  8488. -moz-box-flex: 0;
  8489. box-flex: 0;
  8490. /* Modern browsers */
  8491. flex: none;
  8492. }
  8493. .vbox {
  8494. /* Old browsers */
  8495. display: -webkit-box;
  8496. -webkit-box-orient: vertical;
  8497. -webkit-box-align: stretch;
  8498. display: -moz-box;
  8499. -moz-box-orient: vertical;
  8500. -moz-box-align: stretch;
  8501. display: box;
  8502. box-orient: vertical;
  8503. box-align: stretch;
  8504. /* Modern browsers */
  8505. display: flex;
  8506. flex-direction: column;
  8507. align-items: stretch;
  8508. }
  8509. .vbox > * {
  8510. /* Old browsers */
  8511. -webkit-box-flex: 0;
  8512. -moz-box-flex: 0;
  8513. box-flex: 0;
  8514. /* Modern browsers */
  8515. flex: none;
  8516. }
  8517. .hbox.reverse,
  8518. .vbox.reverse,
  8519. .reverse {
  8520. /* Old browsers */
  8521. -webkit-box-direction: reverse;
  8522. -moz-box-direction: reverse;
  8523. box-direction: reverse;
  8524. /* Modern browsers */
  8525. flex-direction: row-reverse;
  8526. }
  8527. .hbox.box-flex0,
  8528. .vbox.box-flex0,
  8529. .box-flex0 {
  8530. /* Old browsers */
  8531. -webkit-box-flex: 0;
  8532. -moz-box-flex: 0;
  8533. box-flex: 0;
  8534. /* Modern browsers */
  8535. flex: none;
  8536. width: auto;
  8537. }
  8538. .hbox.box-flex1,
  8539. .vbox.box-flex1,
  8540. .box-flex1 {
  8541. /* Old browsers */
  8542. -webkit-box-flex: 1;
  8543. -moz-box-flex: 1;
  8544. box-flex: 1;
  8545. /* Modern browsers */
  8546. flex: 1;
  8547. }
  8548. .hbox.box-flex,
  8549. .vbox.box-flex,
  8550. .box-flex {
  8551. /* Old browsers */
  8552. /* Old browsers */
  8553. -webkit-box-flex: 1;
  8554. -moz-box-flex: 1;
  8555. box-flex: 1;
  8556. /* Modern browsers */
  8557. flex: 1;
  8558. }
  8559. .hbox.box-flex2,
  8560. .vbox.box-flex2,
  8561. .box-flex2 {
  8562. /* Old browsers */
  8563. -webkit-box-flex: 2;
  8564. -moz-box-flex: 2;
  8565. box-flex: 2;
  8566. /* Modern browsers */
  8567. flex: 2;
  8568. }
  8569. .box-group1 {
  8570. /* Deprecated */
  8571. -webkit-box-flex-group: 1;
  8572. -moz-box-flex-group: 1;
  8573. box-flex-group: 1;
  8574. }
  8575. .box-group2 {
  8576. /* Deprecated */
  8577. -webkit-box-flex-group: 2;
  8578. -moz-box-flex-group: 2;
  8579. box-flex-group: 2;
  8580. }
  8581. .hbox.start,
  8582. .vbox.start,
  8583. .start {
  8584. /* Old browsers */
  8585. -webkit-box-pack: start;
  8586. -moz-box-pack: start;
  8587. box-pack: start;
  8588. /* Modern browsers */
  8589. justify-content: flex-start;
  8590. }
  8591. .hbox.end,
  8592. .vbox.end,
  8593. .end {
  8594. /* Old browsers */
  8595. -webkit-box-pack: end;
  8596. -moz-box-pack: end;
  8597. box-pack: end;
  8598. /* Modern browsers */
  8599. justify-content: flex-end;
  8600. }
  8601. .hbox.center,
  8602. .vbox.center,
  8603. .center {
  8604. /* Old browsers */
  8605. -webkit-box-pack: center;
  8606. -moz-box-pack: center;
  8607. box-pack: center;
  8608. /* Modern browsers */
  8609. justify-content: center;
  8610. }
  8611. .hbox.baseline,
  8612. .vbox.baseline,
  8613. .baseline {
  8614. /* Old browsers */
  8615. -webkit-box-pack: baseline;
  8616. -moz-box-pack: baseline;
  8617. box-pack: baseline;
  8618. /* Modern browsers */
  8619. justify-content: baseline;
  8620. }
  8621. .hbox.stretch,
  8622. .vbox.stretch,
  8623. .stretch {
  8624. /* Old browsers */
  8625. -webkit-box-pack: stretch;
  8626. -moz-box-pack: stretch;
  8627. box-pack: stretch;
  8628. /* Modern browsers */
  8629. justify-content: stretch;
  8630. }
  8631. .hbox.align-start,
  8632. .vbox.align-start,
  8633. .align-start {
  8634. /* Old browsers */
  8635. -webkit-box-align: start;
  8636. -moz-box-align: start;
  8637. box-align: start;
  8638. /* Modern browsers */
  8639. align-items: flex-start;
  8640. }
  8641. .hbox.align-end,
  8642. .vbox.align-end,
  8643. .align-end {
  8644. /* Old browsers */
  8645. -webkit-box-align: end;
  8646. -moz-box-align: end;
  8647. box-align: end;
  8648. /* Modern browsers */
  8649. align-items: flex-end;
  8650. }
  8651. .hbox.align-center,
  8652. .vbox.align-center,
  8653. .align-center {
  8654. /* Old browsers */
  8655. -webkit-box-align: center;
  8656. -moz-box-align: center;
  8657. box-align: center;
  8658. /* Modern browsers */
  8659. align-items: center;
  8660. }
  8661. .hbox.align-baseline,
  8662. .vbox.align-baseline,
  8663. .align-baseline {
  8664. /* Old browsers */
  8665. -webkit-box-align: baseline;
  8666. -moz-box-align: baseline;
  8667. box-align: baseline;
  8668. /* Modern browsers */
  8669. align-items: baseline;
  8670. }
  8671. .hbox.align-stretch,
  8672. .vbox.align-stretch,
  8673. .align-stretch {
  8674. /* Old browsers */
  8675. -webkit-box-align: stretch;
  8676. -moz-box-align: stretch;
  8677. box-align: stretch;
  8678. /* Modern browsers */
  8679. align-items: stretch;
  8680. }
  8681. div.error {
  8682. margin: 2em;
  8683. text-align: center;
  8684. }
  8685. div.error > h1 {
  8686. font-size: 500%;
  8687. line-height: normal;
  8688. }
  8689. div.error > p {
  8690. font-size: 200%;
  8691. line-height: normal;
  8692. }
  8693. div.traceback-wrapper {
  8694. text-align: left;
  8695. max-width: 800px;
  8696. margin: auto;
  8697. }
  8698. /**
  8699. * Primary styles
  8700. *
  8701. * Author: Jupyter Development Team
  8702. */
  8703. body {
  8704. background-color: #fff;
  8705. /* This makes sure that the body covers the entire window and needs to
  8706. be in a different element than the display: box in wrapper below */
  8707. position: absolute;
  8708. left: 0px;
  8709. right: 0px;
  8710. top: 0px;
  8711. bottom: 0px;
  8712. overflow: visible;
  8713. }
  8714. body > #header {
  8715. /* Initially hidden to prevent FLOUC */
  8716. display: none;
  8717. background-color: #fff;
  8718. /* Display over codemirror */
  8719. position: relative;
  8720. z-index: 100;
  8721. }
  8722. body > #header #header-container {
  8723. padding-bottom: 5px;
  8724. padding-top: 5px;
  8725. box-sizing: border-box;
  8726. -moz-box-sizing: border-box;
  8727. -webkit-box-sizing: border-box;
  8728. }
  8729. body > #header .header-bar {
  8730. width: 100%;
  8731. height: 1px;
  8732. background: #e7e7e7;
  8733. margin-bottom: -1px;
  8734. }
  8735. @media print {
  8736. body > #header {
  8737. display: none !important;
  8738. }
  8739. }
  8740. #header-spacer {
  8741. width: 100%;
  8742. visibility: hidden;
  8743. }
  8744. @media print {
  8745. #header-spacer {
  8746. display: none;
  8747. }
  8748. }
  8749. #ipython_notebook {
  8750. padding-left: 0px;
  8751. padding-top: 1px;
  8752. padding-bottom: 1px;
  8753. }
  8754. @media (max-width: 991px) {
  8755. #ipython_notebook {
  8756. margin-left: 10px;
  8757. }
  8758. }
  8759. #noscript {
  8760. width: auto;
  8761. padding-top: 16px;
  8762. padding-bottom: 16px;
  8763. text-align: center;
  8764. font-size: 22px;
  8765. color: red;
  8766. font-weight: bold;
  8767. }
  8768. #ipython_notebook img {
  8769. height: 28px;
  8770. }
  8771. #site {
  8772. width: 100%;
  8773. display: none;
  8774. box-sizing: border-box;
  8775. -moz-box-sizing: border-box;
  8776. -webkit-box-sizing: border-box;
  8777. overflow: auto;
  8778. }
  8779. @media print {
  8780. #site {
  8781. height: auto !important;
  8782. }
  8783. }
  8784. /* Smaller buttons */
  8785. .ui-button .ui-button-text {
  8786. padding: 0.2em 0.8em;
  8787. font-size: 77%;
  8788. }
  8789. input.ui-button {
  8790. padding: 0.3em 0.9em;
  8791. }
  8792. span#login_widget {
  8793. float: right;
  8794. }
  8795. span#login_widget > .button,
  8796. #logout {
  8797. color: #333;
  8798. background-color: #fff;
  8799. border-color: #ccc;
  8800. }
  8801. span#login_widget > .button:focus,
  8802. #logout:focus,
  8803. span#login_widget > .button.focus,
  8804. #logout.focus {
  8805. color: #333;
  8806. background-color: #e6e6e6;
  8807. border-color: #8c8c8c;
  8808. }
  8809. span#login_widget > .button:hover,
  8810. #logout:hover {
  8811. color: #333;
  8812. background-color: #e6e6e6;
  8813. border-color: #adadad;
  8814. }
  8815. span#login_widget > .button:active,
  8816. #logout:active,
  8817. span#login_widget > .button.active,
  8818. #logout.active,
  8819. .open > .dropdown-togglespan#login_widget > .button,
  8820. .open > .dropdown-toggle#logout {
  8821. color: #333;
  8822. background-color: #e6e6e6;
  8823. border-color: #adadad;
  8824. }
  8825. span#login_widget > .button:active:hover,
  8826. #logout:active:hover,
  8827. span#login_widget > .button.active:hover,
  8828. #logout.active:hover,
  8829. .open > .dropdown-togglespan#login_widget > .button:hover,
  8830. .open > .dropdown-toggle#logout:hover,
  8831. span#login_widget > .button:active:focus,
  8832. #logout:active:focus,
  8833. span#login_widget > .button.active:focus,
  8834. #logout.active:focus,
  8835. .open > .dropdown-togglespan#login_widget > .button:focus,
  8836. .open > .dropdown-toggle#logout:focus,
  8837. span#login_widget > .button:active.focus,
  8838. #logout:active.focus,
  8839. span#login_widget > .button.active.focus,
  8840. #logout.active.focus,
  8841. .open > .dropdown-togglespan#login_widget > .button.focus,
  8842. .open > .dropdown-toggle#logout.focus {
  8843. color: #333;
  8844. background-color: #d4d4d4;
  8845. border-color: #8c8c8c;
  8846. }
  8847. span#login_widget > .button:active,
  8848. #logout:active,
  8849. span#login_widget > .button.active,
  8850. #logout.active,
  8851. .open > .dropdown-togglespan#login_widget > .button,
  8852. .open > .dropdown-toggle#logout {
  8853. background-image: none;
  8854. }
  8855. span#login_widget > .button.disabled:hover,
  8856. #logout.disabled:hover,
  8857. span#login_widget > .button[disabled]:hover,
  8858. #logout[disabled]:hover,
  8859. fieldset[disabled] span#login_widget > .button:hover,
  8860. fieldset[disabled] #logout:hover,
  8861. span#login_widget > .button.disabled:focus,
  8862. #logout.disabled:focus,
  8863. span#login_widget > .button[disabled]:focus,
  8864. #logout[disabled]:focus,
  8865. fieldset[disabled] span#login_widget > .button:focus,
  8866. fieldset[disabled] #logout:focus,
  8867. span#login_widget > .button.disabled.focus,
  8868. #logout.disabled.focus,
  8869. span#login_widget > .button[disabled].focus,
  8870. #logout[disabled].focus,
  8871. fieldset[disabled] span#login_widget > .button.focus,
  8872. fieldset[disabled] #logout.focus {
  8873. background-color: #fff;
  8874. border-color: #ccc;
  8875. }
  8876. span#login_widget > .button .badge,
  8877. #logout .badge {
  8878. color: #fff;
  8879. background-color: #333;
  8880. }
  8881. .nav-header {
  8882. text-transform: none;
  8883. }
  8884. #header > span {
  8885. margin-top: 10px;
  8886. }
  8887. .modal_stretch .modal-dialog {
  8888. /* Old browsers */
  8889. display: -webkit-box;
  8890. -webkit-box-orient: vertical;
  8891. -webkit-box-align: stretch;
  8892. display: -moz-box;
  8893. -moz-box-orient: vertical;
  8894. -moz-box-align: stretch;
  8895. display: box;
  8896. box-orient: vertical;
  8897. box-align: stretch;
  8898. /* Modern browsers */
  8899. display: flex;
  8900. flex-direction: column;
  8901. align-items: stretch;
  8902. min-height: 80vh;
  8903. }
  8904. .modal_stretch .modal-dialog .modal-body {
  8905. max-height: calc(100vh - 200px);
  8906. overflow: auto;
  8907. flex: 1;
  8908. }
  8909. @media (min-width: 768px) {
  8910. .modal .modal-dialog {
  8911. width: 700px;
  8912. }
  8913. }
  8914. @media (min-width: 768px) {
  8915. select.form-control {
  8916. margin-left: 12px;
  8917. margin-right: 12px;
  8918. }
  8919. }
  8920. /*!
  8921. *
  8922. * IPython auth
  8923. *
  8924. */
  8925. .center-nav {
  8926. display: inline-block;
  8927. margin-bottom: -4px;
  8928. }
  8929. /*!
  8930. *
  8931. * IPython tree view
  8932. *
  8933. */
  8934. /* We need an invisible input field on top of the sentense*/
  8935. /* "Drag file onto the list ..." */
  8936. .alternate_upload {
  8937. background-color: none;
  8938. display: inline;
  8939. }
  8940. .alternate_upload.form {
  8941. padding: 0;
  8942. margin: 0;
  8943. }
  8944. .alternate_upload input.fileinput {
  8945. text-align: center;
  8946. vertical-align: middle;
  8947. display: inline;
  8948. opacity: 0;
  8949. z-index: 2;
  8950. width: 12ex;
  8951. margin-right: -12ex;
  8952. }
  8953. .alternate_upload .btn-upload {
  8954. height: 22px;
  8955. }
  8956. /**
  8957. * Primary styles
  8958. *
  8959. * Author: Jupyter Development Team
  8960. */
  8961. ul#tabs {
  8962. margin-bottom: 4px;
  8963. }
  8964. ul#tabs a {
  8965. padding-top: 6px;
  8966. padding-bottom: 4px;
  8967. }
  8968. ul.breadcrumb a:focus,
  8969. ul.breadcrumb a:hover {
  8970. text-decoration: none;
  8971. }
  8972. ul.breadcrumb i.icon-home {
  8973. font-size: 16px;
  8974. margin-right: 4px;
  8975. }
  8976. ul.breadcrumb span {
  8977. color: #5e5e5e;
  8978. }
  8979. .list_toolbar {
  8980. padding: 4px 0 4px 0;
  8981. vertical-align: middle;
  8982. }
  8983. .list_toolbar .tree-buttons {
  8984. padding-top: 1px;
  8985. }
  8986. .dynamic-buttons {
  8987. padding-top: 3px;
  8988. display: inline-block;
  8989. }
  8990. .list_toolbar [class*="span"] {
  8991. min-height: 24px;
  8992. }
  8993. .list_header {
  8994. font-weight: bold;
  8995. background-color: #EEE;
  8996. }
  8997. .list_placeholder {
  8998. font-weight: bold;
  8999. padding-top: 4px;
  9000. padding-bottom: 4px;
  9001. padding-left: 7px;
  9002. padding-right: 7px;
  9003. }
  9004. .list_container {
  9005. margin-top: 4px;
  9006. margin-bottom: 20px;
  9007. border: 1px solid #ddd;
  9008. border-radius: 2px;
  9009. }
  9010. .list_container > div {
  9011. border-bottom: 1px solid #ddd;
  9012. }
  9013. .list_container > div:hover .list-item {
  9014. background-color: red;
  9015. }
  9016. .list_container > div:last-child {
  9017. border: none;
  9018. }
  9019. .list_item:hover .list_item {
  9020. background-color: #ddd;
  9021. }
  9022. .list_item a {
  9023. text-decoration: none;
  9024. }
  9025. .list_item:hover {
  9026. background-color: #fafafa;
  9027. }
  9028. .list_header > div,
  9029. .list_item > div {
  9030. padding-top: 4px;
  9031. padding-bottom: 4px;
  9032. padding-left: 7px;
  9033. padding-right: 7px;
  9034. line-height: 22px;
  9035. }
  9036. .list_header > div input,
  9037. .list_item > div input {
  9038. margin-right: 7px;
  9039. margin-left: 14px;
  9040. vertical-align: baseline;
  9041. line-height: 22px;
  9042. position: relative;
  9043. top: -1px;
  9044. }
  9045. .list_header > div .item_link,
  9046. .list_item > div .item_link {
  9047. margin-left: -1px;
  9048. vertical-align: baseline;
  9049. line-height: 22px;
  9050. }
  9051. .new-file input[type=checkbox] {
  9052. visibility: hidden;
  9053. }
  9054. .item_name {
  9055. line-height: 22px;
  9056. height: 24px;
  9057. }
  9058. .item_icon {
  9059. font-size: 14px;
  9060. color: #5e5e5e;
  9061. margin-right: 7px;
  9062. margin-left: 7px;
  9063. line-height: 22px;
  9064. vertical-align: baseline;
  9065. }
  9066. .item_buttons {
  9067. line-height: 1em;
  9068. margin-left: -5px;
  9069. }
  9070. .item_buttons .btn,
  9071. .item_buttons .btn-group,
  9072. .item_buttons .input-group {
  9073. float: left;
  9074. }
  9075. .item_buttons > .btn,
  9076. .item_buttons > .btn-group,
  9077. .item_buttons > .input-group {
  9078. margin-left: 5px;
  9079. }
  9080. .item_buttons .btn {
  9081. min-width: 13ex;
  9082. }
  9083. .item_buttons .running-indicator {
  9084. padding-top: 4px;
  9085. color: #5cb85c;
  9086. }
  9087. .item_buttons .kernel-name {
  9088. padding-top: 4px;
  9089. color: #5bc0de;
  9090. margin-right: 7px;
  9091. float: left;
  9092. }
  9093. .toolbar_info {
  9094. height: 24px;
  9095. line-height: 24px;
  9096. }
  9097. .list_item input:not([type=checkbox]) {
  9098. padding-top: 3px;
  9099. padding-bottom: 3px;
  9100. height: 22px;
  9101. line-height: 14px;
  9102. margin: 0px;
  9103. }
  9104. .highlight_text {
  9105. color: blue;
  9106. }
  9107. #project_name {
  9108. display: inline-block;
  9109. padding-left: 7px;
  9110. margin-left: -2px;
  9111. }
  9112. #project_name > .breadcrumb {
  9113. padding: 0px;
  9114. margin-bottom: 0px;
  9115. background-color: transparent;
  9116. font-weight: bold;
  9117. }
  9118. #tree-selector {
  9119. padding-right: 0px;
  9120. }
  9121. #button-select-all {
  9122. min-width: 50px;
  9123. }
  9124. #select-all {
  9125. margin-left: 7px;
  9126. margin-right: 2px;
  9127. }
  9128. .menu_icon {
  9129. margin-right: 2px;
  9130. }
  9131. .tab-content .row {
  9132. margin-left: 0px;
  9133. margin-right: 0px;
  9134. }
  9135. .folder_icon:before {
  9136. display: inline-block;
  9137. font: normal normal normal 14px/1 FontAwesome;
  9138. font-size: inherit;
  9139. text-rendering: auto;
  9140. -webkit-font-smoothing: antialiased;
  9141. -moz-osx-font-smoothing: grayscale;
  9142. content: "\f114";
  9143. }
  9144. .folder_icon:before.pull-left {
  9145. margin-right: .3em;
  9146. }
  9147. .folder_icon:before.pull-right {
  9148. margin-left: .3em;
  9149. }
  9150. .notebook_icon:before {
  9151. display: inline-block;
  9152. font: normal normal normal 14px/1 FontAwesome;
  9153. font-size: inherit;
  9154. text-rendering: auto;
  9155. -webkit-font-smoothing: antialiased;
  9156. -moz-osx-font-smoothing: grayscale;
  9157. content: "\f02d";
  9158. position: relative;
  9159. top: -1px;
  9160. }
  9161. .notebook_icon:before.pull-left {
  9162. margin-right: .3em;
  9163. }
  9164. .notebook_icon:before.pull-right {
  9165. margin-left: .3em;
  9166. }
  9167. .running_notebook_icon:before {
  9168. display: inline-block;
  9169. font: normal normal normal 14px/1 FontAwesome;
  9170. font-size: inherit;
  9171. text-rendering: auto;
  9172. -webkit-font-smoothing: antialiased;
  9173. -moz-osx-font-smoothing: grayscale;
  9174. content: "\f02d";
  9175. position: relative;
  9176. top: -1px;
  9177. color: #5cb85c;
  9178. }
  9179. .running_notebook_icon:before.pull-left {
  9180. margin-right: .3em;
  9181. }
  9182. .running_notebook_icon:before.pull-right {
  9183. margin-left: .3em;
  9184. }
  9185. .file_icon:before {
  9186. display: inline-block;
  9187. font: normal normal normal 14px/1 FontAwesome;
  9188. font-size: inherit;
  9189. text-rendering: auto;
  9190. -webkit-font-smoothing: antialiased;
  9191. -moz-osx-font-smoothing: grayscale;
  9192. content: "\f016";
  9193. position: relative;
  9194. top: -2px;
  9195. }
  9196. .file_icon:before.pull-left {
  9197. margin-right: .3em;
  9198. }
  9199. .file_icon:before.pull-right {
  9200. margin-left: .3em;
  9201. }
  9202. #notebook_toolbar .pull-right {
  9203. padding-top: 0px;
  9204. margin-right: -1px;
  9205. }
  9206. ul#new-menu {
  9207. left: auto;
  9208. right: 0;
  9209. }
  9210. .kernel-menu-icon {
  9211. padding-right: 12px;
  9212. width: 24px;
  9213. content: "\f096";
  9214. }
  9215. .kernel-menu-icon:before {
  9216. content: "\f096";
  9217. }
  9218. .kernel-menu-icon-current:before {
  9219. content: "\f00c";
  9220. }
  9221. #tab_content {
  9222. padding-top: 20px;
  9223. }
  9224. #running .panel-group .panel {
  9225. margin-top: 3px;
  9226. margin-bottom: 1em;
  9227. }
  9228. #running .panel-group .panel .panel-heading {
  9229. background-color: #EEE;
  9230. padding-top: 4px;
  9231. padding-bottom: 4px;
  9232. padding-left: 7px;
  9233. padding-right: 7px;
  9234. line-height: 22px;
  9235. }
  9236. #running .panel-group .panel .panel-heading a:focus,
  9237. #running .panel-group .panel .panel-heading a:hover {
  9238. text-decoration: none;
  9239. }
  9240. #running .panel-group .panel .panel-body {
  9241. padding: 0px;
  9242. }
  9243. #running .panel-group .panel .panel-body .list_container {
  9244. margin-top: 0px;
  9245. margin-bottom: 0px;
  9246. border: 0px;
  9247. border-radius: 0px;
  9248. }
  9249. #running .panel-group .panel .panel-body .list_container .list_item {
  9250. border-bottom: 1px solid #ddd;
  9251. }
  9252. #running .panel-group .panel .panel-body .list_container .list_item:last-child {
  9253. border-bottom: 0px;
  9254. }
  9255. .delete-button {
  9256. display: none;
  9257. }
  9258. .duplicate-button {
  9259. display: none;
  9260. }
  9261. .rename-button {
  9262. display: none;
  9263. }
  9264. .shutdown-button {
  9265. display: none;
  9266. }
  9267. .dynamic-instructions {
  9268. display: inline-block;
  9269. padding-top: 4px;
  9270. }
  9271. /*!
  9272. *
  9273. * IPython text editor webapp
  9274. *
  9275. */
  9276. .selected-keymap i.fa {
  9277. padding: 0px 5px;
  9278. }
  9279. .selected-keymap i.fa:before {
  9280. content: "\f00c";
  9281. }
  9282. #mode-menu {
  9283. overflow: auto;
  9284. max-height: 20em;
  9285. }
  9286. .edit_app #header {
  9287. -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  9288. box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  9289. }
  9290. .edit_app #menubar .navbar {
  9291. /* Use a negative 1 bottom margin, so the border overlaps the border of the
  9292. header */
  9293. margin-bottom: -1px;
  9294. }
  9295. .dirty-indicator {
  9296. display: inline-block;
  9297. font: normal normal normal 14px/1 FontAwesome;
  9298. font-size: inherit;
  9299. text-rendering: auto;
  9300. -webkit-font-smoothing: antialiased;
  9301. -moz-osx-font-smoothing: grayscale;
  9302. width: 20px;
  9303. }
  9304. .dirty-indicator.pull-left {
  9305. margin-right: .3em;
  9306. }
  9307. .dirty-indicator.pull-right {
  9308. margin-left: .3em;
  9309. }
  9310. .dirty-indicator-dirty {
  9311. display: inline-block;
  9312. font: normal normal normal 14px/1 FontAwesome;
  9313. font-size: inherit;
  9314. text-rendering: auto;
  9315. -webkit-font-smoothing: antialiased;
  9316. -moz-osx-font-smoothing: grayscale;
  9317. width: 20px;
  9318. }
  9319. .dirty-indicator-dirty.pull-left {
  9320. margin-right: .3em;
  9321. }
  9322. .dirty-indicator-dirty.pull-right {
  9323. margin-left: .3em;
  9324. }
  9325. .dirty-indicator-clean {
  9326. display: inline-block;
  9327. font: normal normal normal 14px/1 FontAwesome;
  9328. font-size: inherit;
  9329. text-rendering: auto;
  9330. -webkit-font-smoothing: antialiased;
  9331. -moz-osx-font-smoothing: grayscale;
  9332. width: 20px;
  9333. }
  9334. .dirty-indicator-clean.pull-left {
  9335. margin-right: .3em;
  9336. }
  9337. .dirty-indicator-clean.pull-right {
  9338. margin-left: .3em;
  9339. }
  9340. .dirty-indicator-clean:before {
  9341. display: inline-block;
  9342. font: normal normal normal 14px/1 FontAwesome;
  9343. font-size: inherit;
  9344. text-rendering: auto;
  9345. -webkit-font-smoothing: antialiased;
  9346. -moz-osx-font-smoothing: grayscale;
  9347. content: "\f00c";
  9348. }
  9349. .dirty-indicator-clean:before.pull-left {
  9350. margin-right: .3em;
  9351. }
  9352. .dirty-indicator-clean:before.pull-right {
  9353. margin-left: .3em;
  9354. }
  9355. #filename {
  9356. font-size: 16pt;
  9357. display: table;
  9358. padding: 0px 5px;
  9359. }
  9360. #current-mode {
  9361. padding-left: 5px;
  9362. padding-right: 5px;
  9363. }
  9364. #texteditor-backdrop {
  9365. padding-top: 20px;
  9366. padding-bottom: 20px;
  9367. }
  9368. @media not print {
  9369. #texteditor-backdrop {
  9370. background-color: #EEE;
  9371. }
  9372. }
  9373. @media print {
  9374. #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  9375. #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
  9376. background-color: #fff;
  9377. }
  9378. }
  9379. @media not print {
  9380. #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  9381. #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
  9382. background-color: #fff;
  9383. }
  9384. }
  9385. @media not print {
  9386. #texteditor-backdrop #texteditor-container {
  9387. padding: 0px;
  9388. background-color: #fff;
  9389. -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  9390. box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  9391. }
  9392. }
  9393. /*!
  9394. *
  9395. * IPython notebook
  9396. *
  9397. */
  9398. /* CSS font colors for translated ANSI colors. */
  9399. .ansibold {
  9400. font-weight: bold;
  9401. }
  9402. /* use dark versions for foreground, to improve visibility */
  9403. .ansiblack {
  9404. color: black;
  9405. }
  9406. .ansired {
  9407. color: darkred;
  9408. }
  9409. .ansigreen {
  9410. color: darkgreen;
  9411. }
  9412. .ansiyellow {
  9413. color: #c4a000;
  9414. }
  9415. .ansiblue {
  9416. color: darkblue;
  9417. }
  9418. .ansipurple {
  9419. color: darkviolet;
  9420. }
  9421. .ansicyan {
  9422. color: steelblue;
  9423. }
  9424. .ansigray {
  9425. color: gray;
  9426. }
  9427. /* and light for background, for the same reason */
  9428. .ansibgblack {
  9429. background-color: black;
  9430. }
  9431. .ansibgred {
  9432. background-color: red;
  9433. }
  9434. .ansibggreen {
  9435. background-color: green;
  9436. }
  9437. .ansibgyellow {
  9438. background-color: yellow;
  9439. }
  9440. .ansibgblue {
  9441. background-color: blue;
  9442. }
  9443. .ansibgpurple {
  9444. background-color: magenta;
  9445. }
  9446. .ansibgcyan {
  9447. background-color: cyan;
  9448. }
  9449. .ansibggray {
  9450. background-color: gray;
  9451. }
  9452. div.cell {
  9453. /* Old browsers */
  9454. display: -webkit-box;
  9455. -webkit-box-orient: vertical;
  9456. -webkit-box-align: stretch;
  9457. display: -moz-box;
  9458. -moz-box-orient: vertical;
  9459. -moz-box-align: stretch;
  9460. display: box;
  9461. box-orient: vertical;
  9462. box-align: stretch;
  9463. /* Modern browsers */
  9464. display: flex;
  9465. flex-direction: column;
  9466. align-items: stretch;
  9467. border-radius: 2px;
  9468. box-sizing: border-box;
  9469. -moz-box-sizing: border-box;
  9470. -webkit-box-sizing: border-box;
  9471. border-width: 1px;
  9472. border-style: solid;
  9473. border-color: transparent;
  9474. width: 100%;
  9475. padding: 5px;
  9476. /* This acts as a spacer between cells, that is outside the border */
  9477. margin: 0px;
  9478. outline: none;
  9479. border-left-width: 1px;
  9480. padding-left: 5px;
  9481. background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
  9482. }
  9483. div.cell.jupyter-soft-selected {
  9484. border-left-color: #90CAF9;
  9485. border-left-color: #E3F2FD;
  9486. border-left-width: 1px;
  9487. padding-left: 5px;
  9488. border-right-color: #E3F2FD;
  9489. border-right-width: 1px;
  9490. background: #E3F2FD;
  9491. }
  9492. @media print {
  9493. div.cell.jupyter-soft-selected {
  9494. border-color: transparent;
  9495. }
  9496. }
  9497. div.cell.selected {
  9498. border-color: #ababab;
  9499. border-left-width: 0px;
  9500. padding-left: 6px;
  9501. background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%);
  9502. }
  9503. @media print {
  9504. div.cell.selected {
  9505. border-color: transparent;
  9506. }
  9507. }
  9508. div.cell.selected.jupyter-soft-selected {
  9509. border-left-width: 0;
  9510. padding-left: 6px;
  9511. background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%);
  9512. }
  9513. .edit_mode div.cell.selected {
  9514. border-color: #66BB6A;
  9515. border-left-width: 0px;
  9516. padding-left: 6px;
  9517. background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%);
  9518. }
  9519. @media print {
  9520. .edit_mode div.cell.selected {
  9521. border-color: transparent;
  9522. }
  9523. }
  9524. .prompt {
  9525. /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
  9526. min-width: 14ex;
  9527. /* This padding is tuned to match the padding on the CodeMirror editor. */
  9528. padding: 0.4em;
  9529. margin: 0px;
  9530. font-family: monospace;
  9531. text-align: right;
  9532. /* This has to match that of the the CodeMirror class line-height below */
  9533. line-height: 1.21429em;
  9534. /* Don't highlight prompt number selection */
  9535. -webkit-touch-callout: none;
  9536. -webkit-user-select: none;
  9537. -khtml-user-select: none;
  9538. -moz-user-select: none;
  9539. -ms-user-select: none;
  9540. user-select: none;
  9541. /* Use default cursor */
  9542. cursor: default;
  9543. }
  9544. @media (max-width: 540px) {
  9545. .prompt {
  9546. text-align: left;
  9547. }
  9548. }
  9549. div.inner_cell {
  9550. /* Old browsers */
  9551. display: -webkit-box;
  9552. -webkit-box-orient: vertical;
  9553. -webkit-box-align: stretch;
  9554. display: -moz-box;
  9555. -moz-box-orient: vertical;
  9556. -moz-box-align: stretch;
  9557. display: box;
  9558. box-orient: vertical;
  9559. box-align: stretch;
  9560. /* Modern browsers */
  9561. display: flex;
  9562. flex-direction: column;
  9563. align-items: stretch;
  9564. /* Old browsers */
  9565. -webkit-box-flex: 1;
  9566. -moz-box-flex: 1;
  9567. box-flex: 1;
  9568. /* Modern browsers */
  9569. flex: 1;
  9570. }
  9571. @-moz-document url-prefix() {
  9572. div.inner_cell {
  9573. overflow-x: hidden;
  9574. }
  9575. }
  9576. /* input_area and input_prompt must match in top border and margin for alignment */
  9577. div.input_area {
  9578. border: 1px solid #cfcfcf;
  9579. border-radius: 2px;
  9580. background: #f7f7f7;
  9581. line-height: 1.21429em;
  9582. }
  9583. /* This is needed so that empty prompt areas can collapse to zero height when there
  9584. is no content in the output_subarea and the prompt. The main purpose of this is
  9585. to make sure that empty JavaScript output_subareas have no height. */
  9586. div.prompt:empty {
  9587. padding-top: 0;
  9588. padding-bottom: 0;
  9589. }
  9590. div.unrecognized_cell {
  9591. padding: 5px 5px 5px 0px;
  9592. /* Old browsers */
  9593. display: -webkit-box;
  9594. -webkit-box-orient: horizontal;
  9595. -webkit-box-align: stretch;
  9596. display: -moz-box;
  9597. -moz-box-orient: horizontal;
  9598. -moz-box-align: stretch;
  9599. display: box;
  9600. box-orient: horizontal;
  9601. box-align: stretch;
  9602. /* Modern browsers */
  9603. display: flex;
  9604. flex-direction: row;
  9605. align-items: stretch;
  9606. }
  9607. div.unrecognized_cell .inner_cell {
  9608. border-radius: 2px;
  9609. padding: 5px;
  9610. font-weight: bold;
  9611. color: red;
  9612. border: 1px solid #cfcfcf;
  9613. background: #eaeaea;
  9614. }
  9615. div.unrecognized_cell .inner_cell a {
  9616. color: inherit;
  9617. text-decoration: none;
  9618. }
  9619. div.unrecognized_cell .inner_cell a:hover {
  9620. color: inherit;
  9621. text-decoration: none;
  9622. }
  9623. @media (max-width: 540px) {
  9624. div.unrecognized_cell > div.prompt {
  9625. display: none;
  9626. }
  9627. }
  9628. div.code_cell {
  9629. /* avoid page breaking on code cells when printing */
  9630. }
  9631. @media print {
  9632. div.code_cell {
  9633. page-break-inside: avoid;
  9634. }
  9635. }
  9636. /* any special styling for code cells that are currently running goes here */
  9637. div.input {
  9638. page-break-inside: avoid;
  9639. /* Old browsers */
  9640. display: -webkit-box;
  9641. -webkit-box-orient: horizontal;
  9642. -webkit-box-align: stretch;
  9643. display: -moz-box;
  9644. -moz-box-orient: horizontal;
  9645. -moz-box-align: stretch;
  9646. display: box;
  9647. box-orient: horizontal;
  9648. box-align: stretch;
  9649. /* Modern browsers */
  9650. display: flex;
  9651. flex-direction: row;
  9652. align-items: stretch;
  9653. }
  9654. @media (max-width: 540px) {
  9655. div.input {
  9656. /* Old browsers */
  9657. display: -webkit-box;
  9658. -webkit-box-orient: vertical;
  9659. -webkit-box-align: stretch;
  9660. display: -moz-box;
  9661. -moz-box-orient: vertical;
  9662. -moz-box-align: stretch;
  9663. display: box;
  9664. box-orient: vertical;
  9665. box-align: stretch;
  9666. /* Modern browsers */
  9667. display: flex;
  9668. flex-direction: column;
  9669. align-items: stretch;
  9670. }
  9671. }
  9672. /* input_area and input_prompt must match in top border and margin for alignment */
  9673. div.input_prompt {
  9674. color: #303F9F;
  9675. border-top: 1px solid transparent;
  9676. }
  9677. div.input_area > div.highlight {
  9678. margin: 0.4em;
  9679. border: none;
  9680. padding: 0px;
  9681. background-color: transparent;
  9682. }
  9683. div.input_area > div.highlight > pre {
  9684. margin: 0px;
  9685. border: none;
  9686. padding: 0px;
  9687. background-color: transparent;
  9688. }
  9689. /* The following gets added to the <head> if it is detected that the user has a
  9690. * monospace font with inconsistent normal/bold/italic height. See
  9691. * notebookmain.js. Such fonts will have keywords vertically offset with
  9692. * respect to the rest of the text. The user should select a better font.
  9693. * See: https://github.com/ipython/ipython/issues/1503
  9694. *
  9695. * .CodeMirror span {
  9696. * vertical-align: bottom;
  9697. * }
  9698. */
  9699. .CodeMirror {
  9700. line-height: 1.21429em;
  9701. /* Changed from 1em to our global default */
  9702. font-size: 14px;
  9703. height: auto;
  9704. /* Changed to auto to autogrow */
  9705. background: none;
  9706. /* Changed from white to allow our bg to show through */
  9707. }
  9708. .CodeMirror-scroll {
  9709. /* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
  9710. /* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
  9711. overflow-y: hidden;
  9712. overflow-x: auto;
  9713. }
  9714. .CodeMirror-lines {
  9715. /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
  9716. /* we have set a different line-height and want this to scale with that. */
  9717. padding: 0.4em;
  9718. }
  9719. .CodeMirror-linenumber {
  9720. padding: 0 8px 0 4px;
  9721. }
  9722. .CodeMirror-gutters {
  9723. border-bottom-left-radius: 2px;
  9724. border-top-left-radius: 2px;
  9725. }
  9726. .CodeMirror pre {
  9727. /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
  9728. /* .CodeMirror-lines */
  9729. padding: 0;
  9730. border: 0;
  9731. border-radius: 0;
  9732. }
  9733. /*
  9734. Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
  9735. Adapted from GitHub theme
  9736. */
  9737. .highlight-base {
  9738. color: #000;
  9739. }
  9740. .highlight-variable {
  9741. color: #000;
  9742. }
  9743. .highlight-variable-2 {
  9744. color: #1a1a1a;
  9745. }
  9746. .highlight-variable-3 {
  9747. color: #333333;
  9748. }
  9749. .highlight-string {
  9750. color: #BA2121;
  9751. }
  9752. .highlight-comment {
  9753. color: #408080;
  9754. font-style: italic;
  9755. }
  9756. .highlight-number {
  9757. color: #080;
  9758. }
  9759. .highlight-atom {
  9760. color: #88F;
  9761. }
  9762. .highlight-keyword {
  9763. color: #008000;
  9764. font-weight: bold;
  9765. }
  9766. .highlight-builtin {
  9767. color: #008000;
  9768. }
  9769. .highlight-error {
  9770. color: #f00;
  9771. }
  9772. .highlight-operator {
  9773. color: #AA22FF;
  9774. font-weight: bold;
  9775. }
  9776. .highlight-meta {
  9777. color: #AA22FF;
  9778. }
  9779. /* previously not defined, copying from default codemirror */
  9780. .highlight-def {
  9781. color: #00f;
  9782. }
  9783. .highlight-string-2 {
  9784. color: #f50;
  9785. }
  9786. .highlight-qualifier {
  9787. color: #555;
  9788. }
  9789. .highlight-bracket {
  9790. color: #997;
  9791. }
  9792. .highlight-tag {
  9793. color: #170;
  9794. }
  9795. .highlight-attribute {
  9796. color: #00c;
  9797. }
  9798. .highlight-header {
  9799. color: blue;
  9800. }
  9801. .highlight-quote {
  9802. color: #090;
  9803. }
  9804. .highlight-link {
  9805. color: #00c;
  9806. }
  9807. /* apply the same style to codemirror */
  9808. .cm-s-ipython span.cm-keyword {
  9809. color: #008000;
  9810. font-weight: bold;
  9811. }
  9812. .cm-s-ipython span.cm-atom {
  9813. color: #88F;
  9814. }
  9815. .cm-s-ipython span.cm-number {
  9816. color: #080;
  9817. }
  9818. .cm-s-ipython span.cm-def {
  9819. color: #00f;
  9820. }
  9821. .cm-s-ipython span.cm-variable {
  9822. color: #000;
  9823. }
  9824. .cm-s-ipython span.cm-operator {
  9825. color: #AA22FF;
  9826. font-weight: bold;
  9827. }
  9828. .cm-s-ipython span.cm-variable-2 {
  9829. color: #1a1a1a;
  9830. }
  9831. .cm-s-ipython span.cm-variable-3 {
  9832. color: #333333;
  9833. }
  9834. .cm-s-ipython span.cm-comment {
  9835. color: #408080;
  9836. font-style: italic;
  9837. }
  9838. .cm-s-ipython span.cm-string {
  9839. color: #BA2121;
  9840. }
  9841. .cm-s-ipython span.cm-string-2 {
  9842. color: #f50;
  9843. }
  9844. .cm-s-ipython span.cm-meta {
  9845. color: #AA22FF;
  9846. }
  9847. .cm-s-ipython span.cm-qualifier {
  9848. color: #555;
  9849. }
  9850. .cm-s-ipython span.cm-builtin {
  9851. color: #008000;
  9852. }
  9853. .cm-s-ipython span.cm-bracket {
  9854. color: #997;
  9855. }
  9856. .cm-s-ipython span.cm-tag {
  9857. color: #170;
  9858. }
  9859. .cm-s-ipython span.cm-attribute {
  9860. color: #00c;
  9861. }
  9862. .cm-s-ipython span.cm-header {
  9863. color: blue;
  9864. }
  9865. .cm-s-ipython span.cm-quote {
  9866. color: #090;
  9867. }
  9868. .cm-s-ipython span.cm-link {
  9869. color: #00c;
  9870. }
  9871. .cm-s-ipython span.cm-error {
  9872. color: #f00;
  9873. }
  9874. .cm-s-ipython span.cm-tab {
  9875. background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
  9876. background-position: right;
  9877. background-repeat: no-repeat;
  9878. }
  9879. div.output_wrapper {
  9880. /* this position must be relative to enable descendents to be absolute within it */
  9881. position: relative;
  9882. /* Old browsers */
  9883. display: -webkit-box;
  9884. -webkit-box-orient: vertical;
  9885. -webkit-box-align: stretch;
  9886. display: -moz-box;
  9887. -moz-box-orient: vertical;
  9888. -moz-box-align: stretch;
  9889. display: box;
  9890. box-orient: vertical;
  9891. box-align: stretch;
  9892. /* Modern browsers */
  9893. display: flex;
  9894. flex-direction: column;
  9895. align-items: stretch;
  9896. z-index: 1;
  9897. }
  9898. /* class for the output area when it should be height-limited */
  9899. div.output_scroll {
  9900. /* ideally, this would be max-height, but FF barfs all over that */
  9901. height: 24em;
  9902. /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
  9903. width: 100%;
  9904. overflow: auto;
  9905. border-radius: 2px;
  9906. -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  9907. box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  9908. display: block;
  9909. }
  9910. /* output div while it is collapsed */
  9911. div.output_collapsed {
  9912. margin: 0px;
  9913. padding: 0px;
  9914. /* Old browsers */
  9915. display: -webkit-box;
  9916. -webkit-box-orient: vertical;
  9917. -webkit-box-align: stretch;
  9918. display: -moz-box;
  9919. -moz-box-orient: vertical;
  9920. -moz-box-align: stretch;
  9921. display: box;
  9922. box-orient: vertical;
  9923. box-align: stretch;
  9924. /* Modern browsers */
  9925. display: flex;
  9926. flex-direction: column;
  9927. align-items: stretch;
  9928. }
  9929. div.out_prompt_overlay {
  9930. height: 100%;
  9931. padding: 0px 0.4em;
  9932. position: absolute;
  9933. border-radius: 2px;
  9934. }
  9935. div.out_prompt_overlay:hover {
  9936. /* use inner shadow to get border that is computed the same on WebKit/FF */
  9937. -webkit-box-shadow: inset 0 0 1px #000;
  9938. box-shadow: inset 0 0 1px #000;
  9939. background: rgba(240, 240, 240, 0.5);
  9940. }
  9941. div.output_prompt {
  9942. color: #D84315;
  9943. }
  9944. /* This class is the outer container of all output sections. */
  9945. div.output_area {
  9946. padding: 0px;
  9947. page-break-inside: avoid;
  9948. /* Old browsers */
  9949. display: -webkit-box;
  9950. -webkit-box-orient: horizontal;
  9951. -webkit-box-align: stretch;
  9952. display: -moz-box;
  9953. -moz-box-orient: horizontal;
  9954. -moz-box-align: stretch;
  9955. display: box;
  9956. box-orient: horizontal;
  9957. box-align: stretch;
  9958. /* Modern browsers */
  9959. display: flex;
  9960. flex-direction: row;
  9961. align-items: stretch;
  9962. }
  9963. div.output_area .MathJax_Display {
  9964. text-align: left !important;
  9965. }
  9966. div.output_area .rendered_html table {
  9967. margin-left: 0;
  9968. margin-right: 0;
  9969. }
  9970. div.output_area .rendered_html img {
  9971. margin-left: 0;
  9972. margin-right: 0;
  9973. }
  9974. div.output_area img,
  9975. div.output_area svg {
  9976. max-width: 100%;
  9977. height: auto;
  9978. }
  9979. div.output_area img.unconfined,
  9980. div.output_area svg.unconfined {
  9981. max-width: none;
  9982. }
  9983. /* This is needed to protect the pre formating from global settings such
  9984. as that of bootstrap */
  9985. .output {
  9986. /* Old browsers */
  9987. display: -webkit-box;
  9988. -webkit-box-orient: vertical;
  9989. -webkit-box-align: stretch;
  9990. display: -moz-box;
  9991. -moz-box-orient: vertical;
  9992. -moz-box-align: stretch;
  9993. display: box;
  9994. box-orient: vertical;
  9995. box-align: stretch;
  9996. /* Modern browsers */
  9997. display: flex;
  9998. flex-direction: column;
  9999. align-items: stretch;
  10000. }
  10001. @media (max-width: 540px) {
  10002. div.output_area {
  10003. /* Old browsers */
  10004. display: -webkit-box;
  10005. -webkit-box-orient: vertical;
  10006. -webkit-box-align: stretch;
  10007. display: -moz-box;
  10008. -moz-box-orient: vertical;
  10009. -moz-box-align: stretch;
  10010. display: box;
  10011. box-orient: vertical;
  10012. box-align: stretch;
  10013. /* Modern browsers */
  10014. display: flex;
  10015. flex-direction: column;
  10016. align-items: stretch;
  10017. }
  10018. }
  10019. div.output_area pre {
  10020. margin: 0;
  10021. padding: 0;
  10022. border: 0;
  10023. vertical-align: baseline;
  10024. color: black;
  10025. background-color: transparent;
  10026. border-radius: 0;
  10027. }
  10028. /* This class is for the output subarea inside the output_area and after
  10029. the prompt div. */
  10030. div.output_subarea {
  10031. overflow-x: auto;
  10032. padding: 0.4em;
  10033. /* Old browsers */
  10034. -webkit-box-flex: 1;
  10035. -moz-box-flex: 1;
  10036. box-flex: 1;
  10037. /* Modern browsers */
  10038. flex: 1;
  10039. max-width: calc(100% - 14ex);
  10040. }
  10041. div.output_scroll div.output_subarea {
  10042. overflow-x: visible;
  10043. }
  10044. /* The rest of the output_* classes are for special styling of the different
  10045. output types */
  10046. /* all text output has this class: */
  10047. div.output_text {
  10048. text-align: left;
  10049. color: #000;
  10050. /* This has to match that of the the CodeMirror class line-height below */
  10051. line-height: 1.21429em;
  10052. }
  10053. /* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
  10054. div.output_stderr {
  10055. background: #fdd;
  10056. /* very light red background for stderr */
  10057. }
  10058. div.output_latex {
  10059. text-align: left;
  10060. }
  10061. /* Empty output_javascript divs should have no height */
  10062. div.output_javascript:empty {
  10063. padding: 0;
  10064. }
  10065. .js-error {
  10066. color: darkred;
  10067. }
  10068. /* raw_input styles */
  10069. div.raw_input_container {
  10070. line-height: 1.21429em;
  10071. padding-top: 5px;
  10072. }
  10073. pre.raw_input_prompt {
  10074. /* nothing needed here. */
  10075. }
  10076. input.raw_input {
  10077. font-family: monospace;
  10078. font-size: inherit;
  10079. color: inherit;
  10080. width: auto;
  10081. /* make sure input baseline aligns with prompt */
  10082. vertical-align: baseline;
  10083. /* padding + margin = 0.5em between prompt and cursor */
  10084. padding: 0em 0.25em;
  10085. margin: 0em 0.25em;
  10086. }
  10087. input.raw_input:focus {
  10088. box-shadow: none;
  10089. }
  10090. p.p-space {
  10091. margin-bottom: 10px;
  10092. }
  10093. div.output_unrecognized {
  10094. padding: 5px;
  10095. font-weight: bold;
  10096. color: red;
  10097. }
  10098. div.output_unrecognized a {
  10099. color: inherit;
  10100. text-decoration: none;
  10101. }
  10102. div.output_unrecognized a:hover {
  10103. color: inherit;
  10104. text-decoration: none;
  10105. }
  10106. .rendered_html {
  10107. color: #000;
  10108. /* any extras will just be numbers: */
  10109. }
  10110. .rendered_html em {
  10111. font-style: italic;
  10112. }
  10113. .rendered_html strong {
  10114. font-weight: bold;
  10115. }
  10116. .rendered_html u {
  10117. text-decoration: underline;
  10118. }
  10119. .rendered_html :link {
  10120. text-decoration: underline;
  10121. }
  10122. .rendered_html :visited {
  10123. text-decoration: underline;
  10124. }
  10125. .rendered_html h1 {
  10126. font-size: 185.7%;
  10127. margin: 1.08em 0 0 0;
  10128. font-weight: bold;
  10129. line-height: 1.0;
  10130. }
  10131. .rendered_html h2 {
  10132. font-size: 157.1%;
  10133. margin: 1.27em 0 0 0;
  10134. font-weight: bold;
  10135. line-height: 1.0;
  10136. }
  10137. .rendered_html h3 {
  10138. font-size: 128.6%;
  10139. margin: 1.55em 0 0 0;
  10140. font-weight: bold;
  10141. line-height: 1.0;
  10142. }
  10143. .rendered_html h4 {
  10144. font-size: 100%;
  10145. margin: 2em 0 0 0;
  10146. font-weight: bold;
  10147. line-height: 1.0;
  10148. }
  10149. .rendered_html h5 {
  10150. font-size: 100%;
  10151. margin: 2em 0 0 0;
  10152. font-weight: bold;
  10153. line-height: 1.0;
  10154. font-style: italic;
  10155. }
  10156. .rendered_html h6 {
  10157. font-size: 100%;
  10158. margin: 2em 0 0 0;
  10159. font-weight: bold;
  10160. line-height: 1.0;
  10161. font-style: italic;
  10162. }
  10163. .rendered_html h1:first-child {
  10164. margin-top: 0.538em;
  10165. }
  10166. .rendered_html h2:first-child {
  10167. margin-top: 0.636em;
  10168. }
  10169. .rendered_html h3:first-child {
  10170. margin-top: 0.777em;
  10171. }
  10172. .rendered_html h4:first-child {
  10173. margin-top: 1em;
  10174. }
  10175. .rendered_html h5:first-child {
  10176. margin-top: 1em;
  10177. }
  10178. .rendered_html h6:first-child {
  10179. margin-top: 1em;
  10180. }
  10181. .rendered_html ul {
  10182. list-style: disc;
  10183. margin: 0em 2em;
  10184. padding-left: 0px;
  10185. }
  10186. .rendered_html ul ul {
  10187. list-style: square;
  10188. margin: 0em 2em;
  10189. }
  10190. .rendered_html ul ul ul {
  10191. list-style: circle;
  10192. margin: 0em 2em;
  10193. }
  10194. .rendered_html ol {
  10195. list-style: decimal;
  10196. margin: 0em 2em;
  10197. padding-left: 0px;
  10198. }
  10199. .rendered_html ol ol {
  10200. list-style: upper-alpha;
  10201. margin: 0em 2em;
  10202. }
  10203. .rendered_html ol ol ol {
  10204. list-style: lower-alpha;
  10205. margin: 0em 2em;
  10206. }
  10207. .rendered_html ol ol ol ol {
  10208. list-style: lower-roman;
  10209. margin: 0em 2em;
  10210. }
  10211. .rendered_html ol ol ol ol ol {
  10212. list-style: decimal;
  10213. margin: 0em 2em;
  10214. }
  10215. .rendered_html * + ul {
  10216. margin-top: 1em;
  10217. }
  10218. .rendered_html * + ol {
  10219. margin-top: 1em;
  10220. }
  10221. .rendered_html hr {
  10222. color: black;
  10223. background-color: black;
  10224. }
  10225. .rendered_html pre {
  10226. margin: 1em 2em;
  10227. }
  10228. .rendered_html pre,
  10229. .rendered_html code {
  10230. border: 0;
  10231. background-color: #fff;
  10232. color: #000;
  10233. font-size: 100%;
  10234. padding: 0px;
  10235. }
  10236. .rendered_html blockquote {
  10237. margin: 1em 2em;
  10238. }
  10239. .rendered_html table {
  10240. margin-left: auto;
  10241. margin-right: auto;
  10242. border: 1px solid black;
  10243. border-collapse: collapse;
  10244. }
  10245. .rendered_html tr,
  10246. .rendered_html th,
  10247. .rendered_html td {
  10248. border: 1px solid black;
  10249. border-collapse: collapse;
  10250. margin: 1em 2em;
  10251. }
  10252. .rendered_html td,
  10253. .rendered_html th {
  10254. text-align: left;
  10255. vertical-align: middle;
  10256. padding: 4px;
  10257. }
  10258. .rendered_html th {
  10259. font-weight: bold;
  10260. }
  10261. .rendered_html * + table {
  10262. margin-top: 1em;
  10263. }
  10264. .rendered_html p {
  10265. text-align: left;
  10266. }
  10267. .rendered_html * + p {
  10268. margin-top: 1em;
  10269. }
  10270. .rendered_html img {
  10271. display: block;
  10272. margin-left: auto;
  10273. margin-right: auto;
  10274. }
  10275. .rendered_html * + img {
  10276. margin-top: 1em;
  10277. }
  10278. .rendered_html img,
  10279. .rendered_html svg {
  10280. max-width: 100%;
  10281. height: auto;
  10282. }
  10283. .rendered_html img.unconfined,
  10284. .rendered_html svg.unconfined {
  10285. max-width: none;
  10286. }
  10287. div.text_cell {
  10288. /* Old browsers */
  10289. display: -webkit-box;
  10290. -webkit-box-orient: horizontal;
  10291. -webkit-box-align: stretch;
  10292. display: -moz-box;
  10293. -moz-box-orient: horizontal;
  10294. -moz-box-align: stretch;
  10295. display: box;
  10296. box-orient: horizontal;
  10297. box-align: stretch;
  10298. /* Modern browsers */
  10299. display: flex;
  10300. flex-direction: row;
  10301. align-items: stretch;
  10302. }
  10303. @media (max-width: 540px) {
  10304. div.text_cell > div.prompt {
  10305. display: none;
  10306. }
  10307. }
  10308. div.text_cell_render {
  10309. /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
  10310. outline: none;
  10311. resize: none;
  10312. width: inherit;
  10313. border-style: none;
  10314. padding: 0.5em 0.5em 0.5em 0.4em;
  10315. color: #000;
  10316. box-sizing: border-box;
  10317. -moz-box-sizing: border-box;
  10318. -webkit-box-sizing: border-box;
  10319. }
  10320. a.anchor-link:link {
  10321. text-decoration: none;
  10322. padding: 0px 20px;
  10323. visibility: hidden;
  10324. }
  10325. h1:hover .anchor-link,
  10326. h2:hover .anchor-link,
  10327. h3:hover .anchor-link,
  10328. h4:hover .anchor-link,
  10329. h5:hover .anchor-link,
  10330. h6:hover .anchor-link {
  10331. visibility: visible;
  10332. }
  10333. .text_cell.rendered .input_area {
  10334. display: none;
  10335. }
  10336. .text_cell.rendered .rendered_html {
  10337. overflow-x: auto;
  10338. overflow-y: hidden;
  10339. }
  10340. .text_cell.unrendered .text_cell_render {
  10341. display: none;
  10342. }
  10343. .cm-header-1,
  10344. .cm-header-2,
  10345. .cm-header-3,
  10346. .cm-header-4,
  10347. .cm-header-5,
  10348. .cm-header-6 {
  10349. font-weight: bold;
  10350. font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  10351. }
  10352. .cm-header-1 {
  10353. font-size: 185.7%;
  10354. }
  10355. .cm-header-2 {
  10356. font-size: 157.1%;
  10357. }
  10358. .cm-header-3 {
  10359. font-size: 128.6%;
  10360. }
  10361. .cm-header-4 {
  10362. font-size: 110%;
  10363. }
  10364. .cm-header-5 {
  10365. font-size: 100%;
  10366. font-style: italic;
  10367. }
  10368. .cm-header-6 {
  10369. font-size: 100%;
  10370. font-style: italic;
  10371. }
  10372. /*!
  10373. *
  10374. * IPython notebook webapp
  10375. *
  10376. */
  10377. @media (max-width: 767px) {
  10378. .notebook_app {
  10379. padding-left: 0px;
  10380. padding-right: 0px;
  10381. }
  10382. }
  10383. #ipython-main-app {
  10384. box-sizing: border-box;
  10385. -moz-box-sizing: border-box;
  10386. -webkit-box-sizing: border-box;
  10387. height: 100%;
  10388. }
  10389. div#notebook_panel {
  10390. margin: 0px;
  10391. padding: 0px;
  10392. box-sizing: border-box;
  10393. -moz-box-sizing: border-box;
  10394. -webkit-box-sizing: border-box;
  10395. height: 100%;
  10396. }
  10397. div#notebook {
  10398. font-size: 14px;
  10399. line-height: 20px;
  10400. overflow-y: hidden;
  10401. overflow-x: auto;
  10402. width: 100%;
  10403. /* This spaces the page away from the edge of the notebook area */
  10404. padding-top: 20px;
  10405. margin: 0px;
  10406. outline: none;
  10407. box-sizing: border-box;
  10408. -moz-box-sizing: border-box;
  10409. -webkit-box-sizing: border-box;
  10410. min-height: 100%;
  10411. }
  10412. @media not print {
  10413. #notebook-container {
  10414. padding: 15px;
  10415. background-color: #fff;
  10416. min-height: 0;
  10417. -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  10418. box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  10419. }
  10420. }
  10421. @media print {
  10422. #notebook-container {
  10423. width: 100%;
  10424. }
  10425. }
  10426. div.ui-widget-content {
  10427. border: 1px solid #ababab;
  10428. outline: none;
  10429. }
  10430. pre.dialog {
  10431. background-color: #f7f7f7;
  10432. border: 1px solid #ddd;
  10433. border-radius: 2px;
  10434. padding: 0.4em;
  10435. padding-left: 2em;
  10436. }
  10437. p.dialog {
  10438. padding: 0.2em;
  10439. }
  10440. /* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems
  10441. to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do.
  10442. */
  10443. pre,
  10444. code,
  10445. kbd,
  10446. samp {
  10447. white-space: pre-wrap;
  10448. }
  10449. #fonttest {
  10450. font-family: monospace;
  10451. }
  10452. p {
  10453. margin-bottom: 0;
  10454. }
  10455. .end_space {
  10456. min-height: 100px;
  10457. transition: height .2s ease;
  10458. }
  10459. .notebook_app > #header {
  10460. -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  10461. box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  10462. }
  10463. @media not print {
  10464. .notebook_app {
  10465. background-color: #EEE;
  10466. }
  10467. }
  10468. kbd {
  10469. border-style: solid;
  10470. border-width: 1px;
  10471. box-shadow: none;
  10472. margin: 2px;
  10473. padding-left: 2px;
  10474. padding-right: 2px;
  10475. padding-top: 1px;
  10476. padding-bottom: 1px;
  10477. }
  10478. /* CSS for the cell toolbar */
  10479. .celltoolbar {
  10480. border: thin solid #CFCFCF;
  10481. border-bottom: none;
  10482. background: #EEE;
  10483. border-radius: 2px 2px 0px 0px;
  10484. width: 100%;
  10485. height: 29px;
  10486. padding-right: 4px;
  10487. /* Old browsers */
  10488. display: -webkit-box;
  10489. -webkit-box-orient: horizontal;
  10490. -webkit-box-align: stretch;
  10491. display: -moz-box;
  10492. -moz-box-orient: horizontal;
  10493. -moz-box-align: stretch;
  10494. display: box;
  10495. box-orient: horizontal;
  10496. box-align: stretch;
  10497. /* Modern browsers */
  10498. display: flex;
  10499. flex-direction: row;
  10500. align-items: stretch;
  10501. /* Old browsers */
  10502. -webkit-box-pack: end;
  10503. -moz-box-pack: end;
  10504. box-pack: end;
  10505. /* Modern browsers */
  10506. justify-content: flex-end;
  10507. display: -webkit-flex;
  10508. }
  10509. @media print {
  10510. .celltoolbar {
  10511. display: none;
  10512. }
  10513. }
  10514. .ctb_hideshow {
  10515. display: none;
  10516. vertical-align: bottom;
  10517. }
  10518. /* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
  10519. Cell toolbars are only shown when the ctb_global_show class is also set.
  10520. */
  10521. .ctb_global_show .ctb_show.ctb_hideshow {
  10522. display: block;
  10523. }
  10524. .ctb_global_show .ctb_show + .input_area,
  10525. .ctb_global_show .ctb_show + div.text_cell_input,
  10526. .ctb_global_show .ctb_show ~ div.text_cell_render {
  10527. border-top-right-radius: 0px;
  10528. border-top-left-radius: 0px;
  10529. }
  10530. .ctb_global_show .ctb_show ~ div.text_cell_render {
  10531. border: 1px solid #cfcfcf;
  10532. }
  10533. .celltoolbar {
  10534. font-size: 87%;
  10535. padding-top: 3px;
  10536. }
  10537. .celltoolbar select {
  10538. display: block;
  10539. width: 100%;
  10540. height: 32px;
  10541. padding: 6px 12px;
  10542. font-size: 13px;
  10543. line-height: 1.42857143;
  10544. color: #555555;
  10545. background-color: #fff;
  10546. background-image: none;
  10547. border: 1px solid #ccc;
  10548. border-radius: 2px;
  10549. -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  10550. box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  10551. -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  10552. -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  10553. transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  10554. height: 30px;
  10555. padding: 5px 10px;
  10556. font-size: 12px;
  10557. line-height: 1.5;
  10558. border-radius: 1px;
  10559. width: inherit;
  10560. font-size: inherit;
  10561. height: 22px;
  10562. padding: 0px;
  10563. display: inline-block;
  10564. }
  10565. .celltoolbar select:focus {
  10566. border-color: #66afe9;
  10567. outline: 0;
  10568. -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  10569. box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  10570. }
  10571. .celltoolbar select::-moz-placeholder {
  10572. color: #999;
  10573. opacity: 1;
  10574. }
  10575. .celltoolbar select:-ms-input-placeholder {
  10576. color: #999;
  10577. }
  10578. .celltoolbar select::-webkit-input-placeholder {
  10579. color: #999;
  10580. }
  10581. .celltoolbar select::-ms-expand {
  10582. border: 0;
  10583. background-color: transparent;
  10584. }
  10585. .celltoolbar select[disabled],
  10586. .celltoolbar select[readonly],
  10587. fieldset[disabled] .celltoolbar select {
  10588. background-color: #eeeeee;
  10589. opacity: 1;
  10590. }
  10591. .celltoolbar select[disabled],
  10592. fieldset[disabled] .celltoolbar select {
  10593. cursor: not-allowed;
  10594. }
  10595. textarea.celltoolbar select {
  10596. height: auto;
  10597. }
  10598. select.celltoolbar select {
  10599. height: 30px;
  10600. line-height: 30px;
  10601. }
  10602. textarea.celltoolbar select,
  10603. select[multiple].celltoolbar select {
  10604. height: auto;
  10605. }
  10606. .celltoolbar label {
  10607. margin-left: 5px;
  10608. margin-right: 5px;
  10609. }
  10610. .completions {
  10611. position: absolute;
  10612. z-index: 110;
  10613. overflow: hidden;
  10614. border: 1px solid #ababab;
  10615. border-radius: 2px;
  10616. -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  10617. box-shadow: 0px 6px 10px -1px #adadad;
  10618. line-height: 1;
  10619. }
  10620. .completions select {
  10621. background: white;
  10622. outline: none;
  10623. border: none;
  10624. padding: 0px;
  10625. margin: 0px;
  10626. overflow: auto;
  10627. font-family: monospace;
  10628. font-size: 110%;
  10629. color: #000;
  10630. width: auto;
  10631. }
  10632. .completions select option.context {
  10633. color: #286090;
  10634. }
  10635. #kernel_logo_widget {
  10636. float: right !important;
  10637. float: right;
  10638. }
  10639. #kernel_logo_widget .current_kernel_logo {
  10640. display: none;
  10641. margin-top: -1px;
  10642. margin-bottom: -1px;
  10643. width: 32px;
  10644. height: 32px;
  10645. }
  10646. #menubar {
  10647. box-sizing: border-box;
  10648. -moz-box-sizing: border-box;
  10649. -webkit-box-sizing: border-box;
  10650. margin-top: 1px;
  10651. }
  10652. #menubar .navbar {
  10653. border-top: 1px;
  10654. border-radius: 0px 0px 2px 2px;
  10655. margin-bottom: 0px;
  10656. }
  10657. #menubar .navbar-toggle {
  10658. float: left;
  10659. padding-top: 7px;
  10660. padding-bottom: 7px;
  10661. border: none;
  10662. }
  10663. #menubar .navbar-collapse {
  10664. clear: left;
  10665. }
  10666. .nav-wrapper {
  10667. border-bottom: 1px solid #e7e7e7;
  10668. }
  10669. i.menu-icon {
  10670. padding-top: 4px;
  10671. }
  10672. ul#help_menu li a {
  10673. overflow: hidden;
  10674. padding-right: 2.2em;
  10675. }
  10676. ul#help_menu li a i {
  10677. margin-right: -1.2em;
  10678. }
  10679. .dropdown-submenu {
  10680. position: relative;
  10681. }
  10682. .dropdown-submenu > .dropdown-menu {
  10683. top: 0;
  10684. left: 100%;
  10685. margin-top: -6px;
  10686. margin-left: -1px;
  10687. }
  10688. .dropdown-submenu:hover > .dropdown-menu {
  10689. display: block;
  10690. }
  10691. .dropdown-submenu > a:after {
  10692. display: inline-block;
  10693. font: normal normal normal 14px/1 FontAwesome;
  10694. font-size: inherit;
  10695. text-rendering: auto;
  10696. -webkit-font-smoothing: antialiased;
  10697. -moz-osx-font-smoothing: grayscale;
  10698. display: block;
  10699. content: "\f0da";
  10700. float: right;
  10701. color: #333333;
  10702. margin-top: 2px;
  10703. margin-right: -10px;
  10704. }
  10705. .dropdown-submenu > a:after.pull-left {
  10706. margin-right: .3em;
  10707. }
  10708. .dropdown-submenu > a:after.pull-right {
  10709. margin-left: .3em;
  10710. }
  10711. .dropdown-submenu:hover > a:after {
  10712. color: #262626;
  10713. }
  10714. .dropdown-submenu.pull-left {
  10715. float: none;
  10716. }
  10717. .dropdown-submenu.pull-left > .dropdown-menu {
  10718. left: -100%;
  10719. margin-left: 10px;
  10720. }
  10721. #notification_area {
  10722. float: right !important;
  10723. float: right;
  10724. z-index: 10;
  10725. }
  10726. .indicator_area {
  10727. float: right !important;
  10728. float: right;
  10729. color: #777;
  10730. margin-left: 5px;
  10731. margin-right: 5px;
  10732. width: 11px;
  10733. z-index: 10;
  10734. text-align: center;
  10735. width: auto;
  10736. }
  10737. #kernel_indicator {
  10738. float: right !important;
  10739. float: right;
  10740. color: #777;
  10741. margin-left: 5px;
  10742. margin-right: 5px;
  10743. width: 11px;
  10744. z-index: 10;
  10745. text-align: center;
  10746. width: auto;
  10747. border-left: 1px solid;
  10748. }
  10749. #kernel_indicator .kernel_indicator_name {
  10750. padding-left: 5px;
  10751. padding-right: 5px;
  10752. }
  10753. #modal_indicator {
  10754. float: right !important;
  10755. float: right;
  10756. color: #777;
  10757. margin-left: 5px;
  10758. margin-right: 5px;
  10759. width: 11px;
  10760. z-index: 10;
  10761. text-align: center;
  10762. width: auto;
  10763. }
  10764. #readonly-indicator {
  10765. float: right !important;
  10766. float: right;
  10767. color: #777;
  10768. margin-left: 5px;
  10769. margin-right: 5px;
  10770. width: 11px;
  10771. z-index: 10;
  10772. text-align: center;
  10773. width: auto;
  10774. margin-top: 2px;
  10775. margin-bottom: 0px;
  10776. margin-left: 0px;
  10777. margin-right: 0px;
  10778. display: none;
  10779. }
  10780. .modal_indicator:before {
  10781. width: 1.28571429em;
  10782. text-align: center;
  10783. }
  10784. .edit_mode .modal_indicator:before {
  10785. display: inline-block;
  10786. font: normal normal normal 14px/1 FontAwesome;
  10787. font-size: inherit;
  10788. text-rendering: auto;
  10789. -webkit-font-smoothing: antialiased;
  10790. -moz-osx-font-smoothing: grayscale;
  10791. content: "\f040";
  10792. }
  10793. .edit_mode .modal_indicator:before.pull-left {
  10794. margin-right: .3em;
  10795. }
  10796. .edit_mode .modal_indicator:before.pull-right {
  10797. margin-left: .3em;
  10798. }
  10799. .command_mode .modal_indicator:before {
  10800. display: inline-block;
  10801. font: normal normal normal 14px/1 FontAwesome;
  10802. font-size: inherit;
  10803. text-rendering: auto;
  10804. -webkit-font-smoothing: antialiased;
  10805. -moz-osx-font-smoothing: grayscale;
  10806. content: ' ';
  10807. }
  10808. .command_mode .modal_indicator:before.pull-left {
  10809. margin-right: .3em;
  10810. }
  10811. .command_mode .modal_indicator:before.pull-right {
  10812. margin-left: .3em;
  10813. }
  10814. .kernel_idle_icon:before {
  10815. display: inline-block;
  10816. font: normal normal normal 14px/1 FontAwesome;
  10817. font-size: inherit;
  10818. text-rendering: auto;
  10819. -webkit-font-smoothing: antialiased;
  10820. -moz-osx-font-smoothing: grayscale;
  10821. content: "\f10c";
  10822. }
  10823. .kernel_idle_icon:before.pull-left {
  10824. margin-right: .3em;
  10825. }
  10826. .kernel_idle_icon:before.pull-right {
  10827. margin-left: .3em;
  10828. }
  10829. .kernel_busy_icon:before {
  10830. display: inline-block;
  10831. font: normal normal normal 14px/1 FontAwesome;
  10832. font-size: inherit;
  10833. text-rendering: auto;
  10834. -webkit-font-smoothing: antialiased;
  10835. -moz-osx-font-smoothing: grayscale;
  10836. content: "\f111";
  10837. }
  10838. .kernel_busy_icon:before.pull-left {
  10839. margin-right: .3em;
  10840. }
  10841. .kernel_busy_icon:before.pull-right {
  10842. margin-left: .3em;
  10843. }
  10844. .kernel_dead_icon:before {
  10845. display: inline-block;
  10846. font: normal normal normal 14px/1 FontAwesome;
  10847. font-size: inherit;
  10848. text-rendering: auto;
  10849. -webkit-font-smoothing: antialiased;
  10850. -moz-osx-font-smoothing: grayscale;
  10851. content: "\f1e2";
  10852. }
  10853. .kernel_dead_icon:before.pull-left {
  10854. margin-right: .3em;
  10855. }
  10856. .kernel_dead_icon:before.pull-right {
  10857. margin-left: .3em;
  10858. }
  10859. .kernel_disconnected_icon:before {
  10860. display: inline-block;
  10861. font: normal normal normal 14px/1 FontAwesome;
  10862. font-size: inherit;
  10863. text-rendering: auto;
  10864. -webkit-font-smoothing: antialiased;
  10865. -moz-osx-font-smoothing: grayscale;
  10866. content: "\f127";
  10867. }
  10868. .kernel_disconnected_icon:before.pull-left {
  10869. margin-right: .3em;
  10870. }
  10871. .kernel_disconnected_icon:before.pull-right {
  10872. margin-left: .3em;
  10873. }
  10874. .notification_widget {
  10875. color: #777;
  10876. z-index: 10;
  10877. background: rgba(240, 240, 240, 0.5);
  10878. margin-right: 4px;
  10879. color: #333;
  10880. background-color: #fff;
  10881. border-color: #ccc;
  10882. }
  10883. .notification_widget:focus,
  10884. .notification_widget.focus {
  10885. color: #333;
  10886. background-color: #e6e6e6;
  10887. border-color: #8c8c8c;
  10888. }
  10889. .notification_widget:hover {
  10890. color: #333;
  10891. background-color: #e6e6e6;
  10892. border-color: #adadad;
  10893. }
  10894. .notification_widget:active,
  10895. .notification_widget.active,
  10896. .open > .dropdown-toggle.notification_widget {
  10897. color: #333;
  10898. background-color: #e6e6e6;
  10899. border-color: #adadad;
  10900. }
  10901. .notification_widget:active:hover,
  10902. .notification_widget.active:hover,
  10903. .open > .dropdown-toggle.notification_widget:hover,
  10904. .notification_widget:active:focus,
  10905. .notification_widget.active:focus,
  10906. .open > .dropdown-toggle.notification_widget:focus,
  10907. .notification_widget:active.focus,
  10908. .notification_widget.active.focus,
  10909. .open > .dropdown-toggle.notification_widget.focus {
  10910. color: #333;
  10911. background-color: #d4d4d4;
  10912. border-color: #8c8c8c;
  10913. }
  10914. .notification_widget:active,
  10915. .notification_widget.active,
  10916. .open > .dropdown-toggle.notification_widget {
  10917. background-image: none;
  10918. }
  10919. .notification_widget.disabled:hover,
  10920. .notification_widget[disabled]:hover,
  10921. fieldset[disabled] .notification_widget:hover,
  10922. .notification_widget.disabled:focus,
  10923. .notification_widget[disabled]:focus,
  10924. fieldset[disabled] .notification_widget:focus,
  10925. .notification_widget.disabled.focus,
  10926. .notification_widget[disabled].focus,
  10927. fieldset[disabled] .notification_widget.focus {
  10928. background-color: #fff;
  10929. border-color: #ccc;
  10930. }
  10931. .notification_widget .badge {
  10932. color: #fff;
  10933. background-color: #333;
  10934. }
  10935. .notification_widget.warning {
  10936. color: #fff;
  10937. background-color: #f0ad4e;
  10938. border-color: #eea236;
  10939. }
  10940. .notification_widget.warning:focus,
  10941. .notification_widget.warning.focus {
  10942. color: #fff;
  10943. background-color: #ec971f;
  10944. border-color: #985f0d;
  10945. }
  10946. .notification_widget.warning:hover {
  10947. color: #fff;
  10948. background-color: #ec971f;
  10949. border-color: #d58512;
  10950. }
  10951. .notification_widget.warning:active,
  10952. .notification_widget.warning.active,
  10953. .open > .dropdown-toggle.notification_widget.warning {
  10954. color: #fff;
  10955. background-color: #ec971f;
  10956. border-color: #d58512;
  10957. }
  10958. .notification_widget.warning:active:hover,
  10959. .notification_widget.warning.active:hover,
  10960. .open > .dropdown-toggle.notification_widget.warning:hover,
  10961. .notification_widget.warning:active:focus,
  10962. .notification_widget.warning.active:focus,
  10963. .open > .dropdown-toggle.notification_widget.warning:focus,
  10964. .notification_widget.warning:active.focus,
  10965. .notification_widget.warning.active.focus,
  10966. .open > .dropdown-toggle.notification_widget.warning.focus {
  10967. color: #fff;
  10968. background-color: #d58512;
  10969. border-color: #985f0d;
  10970. }
  10971. .notification_widget.warning:active,
  10972. .notification_widget.warning.active,
  10973. .open > .dropdown-toggle.notification_widget.warning {
  10974. background-image: none;
  10975. }
  10976. .notification_widget.warning.disabled:hover,
  10977. .notification_widget.warning[disabled]:hover,
  10978. fieldset[disabled] .notification_widget.warning:hover,
  10979. .notification_widget.warning.disabled:focus,
  10980. .notification_widget.warning[disabled]:focus,
  10981. fieldset[disabled] .notification_widget.warning:focus,
  10982. .notification_widget.warning.disabled.focus,
  10983. .notification_widget.warning[disabled].focus,
  10984. fieldset[disabled] .notification_widget.warning.focus {
  10985. background-color: #f0ad4e;
  10986. border-color: #eea236;
  10987. }
  10988. .notification_widget.warning .badge {
  10989. color: #f0ad4e;
  10990. background-color: #fff;
  10991. }
  10992. .notification_widget.success {
  10993. color: #fff;
  10994. background-color: #5cb85c;
  10995. border-color: #4cae4c;
  10996. }
  10997. .notification_widget.success:focus,
  10998. .notification_widget.success.focus {
  10999. color: #fff;
  11000. background-color: #449d44;
  11001. border-color: #255625;
  11002. }
  11003. .notification_widget.success:hover {
  11004. color: #fff;
  11005. background-color: #449d44;
  11006. border-color: #398439;
  11007. }
  11008. .notification_widget.success:active,
  11009. .notification_widget.success.active,
  11010. .open > .dropdown-toggle.notification_widget.success {
  11011. color: #fff;
  11012. background-color: #449d44;
  11013. border-color: #398439;
  11014. }
  11015. .notification_widget.success:active:hover,
  11016. .notification_widget.success.active:hover,
  11017. .open > .dropdown-toggle.notification_widget.success:hover,
  11018. .notification_widget.success:active:focus,
  11019. .notification_widget.success.active:focus,
  11020. .open > .dropdown-toggle.notification_widget.success:focus,
  11021. .notification_widget.success:active.focus,
  11022. .notification_widget.success.active.focus,
  11023. .open > .dropdown-toggle.notification_widget.success.focus {
  11024. color: #fff;
  11025. background-color: #398439;
  11026. border-color: #255625;
  11027. }
  11028. .notification_widget.success:active,
  11029. .notification_widget.success.active,
  11030. .open > .dropdown-toggle.notification_widget.success {
  11031. background-image: none;
  11032. }
  11033. .notification_widget.success.disabled:hover,
  11034. .notification_widget.success[disabled]:hover,
  11035. fieldset[disabled] .notification_widget.success:hover,
  11036. .notification_widget.success.disabled:focus,
  11037. .notification_widget.success[disabled]:focus,
  11038. fieldset[disabled] .notification_widget.success:focus,
  11039. .notification_widget.success.disabled.focus,
  11040. .notification_widget.success[disabled].focus,
  11041. fieldset[disabled] .notification_widget.success.focus {
  11042. background-color: #5cb85c;
  11043. border-color: #4cae4c;
  11044. }
  11045. .notification_widget.success .badge {
  11046. color: #5cb85c;
  11047. background-color: #fff;
  11048. }
  11049. .notification_widget.info {
  11050. color: #fff;
  11051. background-color: #5bc0de;
  11052. border-color: #46b8da;
  11053. }
  11054. .notification_widget.info:focus,
  11055. .notification_widget.info.focus {
  11056. color: #fff;
  11057. background-color: #31b0d5;
  11058. border-color: #1b6d85;
  11059. }
  11060. .notification_widget.info:hover {
  11061. color: #fff;
  11062. background-color: #31b0d5;
  11063. border-color: #269abc;
  11064. }
  11065. .notification_widget.info:active,
  11066. .notification_widget.info.active,
  11067. .open > .dropdown-toggle.notification_widget.info {
  11068. color: #fff;
  11069. background-color: #31b0d5;
  11070. border-color: #269abc;
  11071. }
  11072. .notification_widget.info:active:hover,
  11073. .notification_widget.info.active:hover,
  11074. .open > .dropdown-toggle.notification_widget.info:hover,
  11075. .notification_widget.info:active:focus,
  11076. .notification_widget.info.active:focus,
  11077. .open > .dropdown-toggle.notification_widget.info:focus,
  11078. .notification_widget.info:active.focus,
  11079. .notification_widget.info.active.focus,
  11080. .open > .dropdown-toggle.notification_widget.info.focus {
  11081. color: #fff;
  11082. background-color: #269abc;
  11083. border-color: #1b6d85;
  11084. }
  11085. .notification_widget.info:active,
  11086. .notification_widget.info.active,
  11087. .open > .dropdown-toggle.notification_widget.info {
  11088. background-image: none;
  11089. }
  11090. .notification_widget.info.disabled:hover,
  11091. .notification_widget.info[disabled]:hover,
  11092. fieldset[disabled] .notification_widget.info:hover,
  11093. .notification_widget.info.disabled:focus,
  11094. .notification_widget.info[disabled]:focus,
  11095. fieldset[disabled] .notification_widget.info:focus,
  11096. .notification_widget.info.disabled.focus,
  11097. .notification_widget.info[disabled].focus,
  11098. fieldset[disabled] .notification_widget.info.focus {
  11099. background-color: #5bc0de;
  11100. border-color: #46b8da;
  11101. }
  11102. .notification_widget.info .badge {
  11103. color: #5bc0de;
  11104. background-color: #fff;
  11105. }
  11106. .notification_widget.danger {
  11107. color: #fff;
  11108. background-color: #d9534f;
  11109. border-color: #d43f3a;
  11110. }
  11111. .notification_widget.danger:focus,
  11112. .notification_widget.danger.focus {
  11113. color: #fff;
  11114. background-color: #c9302c;
  11115. border-color: #761c19;
  11116. }
  11117. .notification_widget.danger:hover {
  11118. color: #fff;
  11119. background-color: #c9302c;
  11120. border-color: #ac2925;
  11121. }
  11122. .notification_widget.danger:active,
  11123. .notification_widget.danger.active,
  11124. .open > .dropdown-toggle.notification_widget.danger {
  11125. color: #fff;
  11126. background-color: #c9302c;
  11127. border-color: #ac2925;
  11128. }
  11129. .notification_widget.danger:active:hover,
  11130. .notification_widget.danger.active:hover,
  11131. .open > .dropdown-toggle.notification_widget.danger:hover,
  11132. .notification_widget.danger:active:focus,
  11133. .notification_widget.danger.active:focus,
  11134. .open > .dropdown-toggle.notification_widget.danger:focus,
  11135. .notification_widget.danger:active.focus,
  11136. .notification_widget.danger.active.focus,
  11137. .open > .dropdown-toggle.notification_widget.danger.focus {
  11138. color: #fff;
  11139. background-color: #ac2925;
  11140. border-color: #761c19;
  11141. }
  11142. .notification_widget.danger:active,
  11143. .notification_widget.danger.active,
  11144. .open > .dropdown-toggle.notification_widget.danger {
  11145. background-image: none;
  11146. }
  11147. .notification_widget.danger.disabled:hover,
  11148. .notification_widget.danger[disabled]:hover,
  11149. fieldset[disabled] .notification_widget.danger:hover,
  11150. .notification_widget.danger.disabled:focus,
  11151. .notification_widget.danger[disabled]:focus,
  11152. fieldset[disabled] .notification_widget.danger:focus,
  11153. .notification_widget.danger.disabled.focus,
  11154. .notification_widget.danger[disabled].focus,
  11155. fieldset[disabled] .notification_widget.danger.focus {
  11156. background-color: #d9534f;
  11157. border-color: #d43f3a;
  11158. }
  11159. .notification_widget.danger .badge {
  11160. color: #d9534f;
  11161. background-color: #fff;
  11162. }
  11163. div#pager {
  11164. background-color: #fff;
  11165. font-size: 14px;
  11166. line-height: 20px;
  11167. overflow: hidden;
  11168. display: none;
  11169. position: fixed;
  11170. bottom: 0px;
  11171. width: 100%;
  11172. max-height: 50%;
  11173. padding-top: 8px;
  11174. -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  11175. box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  11176. /* Display over codemirror */
  11177. z-index: 100;
  11178. /* Hack which prevents jquery ui resizable from changing top. */
  11179. top: auto !important;
  11180. }
  11181. div#pager pre {
  11182. line-height: 1.21429em;
  11183. color: #000;
  11184. background-color: #f7f7f7;
  11185. padding: 0.4em;
  11186. }
  11187. div#pager #pager-button-area {
  11188. position: absolute;
  11189. top: 8px;
  11190. right: 20px;
  11191. }
  11192. div#pager #pager-contents {
  11193. position: relative;
  11194. overflow: auto;
  11195. width: 100%;
  11196. height: 100%;
  11197. }
  11198. div#pager #pager-contents #pager-container {
  11199. position: relative;
  11200. padding: 15px 0px;
  11201. box-sizing: border-box;
  11202. -moz-box-sizing: border-box;
  11203. -webkit-box-sizing: border-box;
  11204. }
  11205. div#pager .ui-resizable-handle {
  11206. top: 0px;
  11207. height: 8px;
  11208. background: #f7f7f7;
  11209. border-top: 1px solid #cfcfcf;
  11210. border-bottom: 1px solid #cfcfcf;
  11211. /* This injects handle bars (a short, wide = symbol) for
  11212. the resize handle. */
  11213. }
  11214. div#pager .ui-resizable-handle::after {
  11215. content: '';
  11216. top: 2px;
  11217. left: 50%;
  11218. height: 3px;
  11219. width: 30px;
  11220. margin-left: -15px;
  11221. position: absolute;
  11222. border-top: 1px solid #cfcfcf;
  11223. }
  11224. .quickhelp {
  11225. /* Old browsers */
  11226. display: -webkit-box;
  11227. -webkit-box-orient: horizontal;
  11228. -webkit-box-align: stretch;
  11229. display: -moz-box;
  11230. -moz-box-orient: horizontal;
  11231. -moz-box-align: stretch;
  11232. display: box;
  11233. box-orient: horizontal;
  11234. box-align: stretch;
  11235. /* Modern browsers */
  11236. display: flex;
  11237. flex-direction: row;
  11238. align-items: stretch;
  11239. line-height: 1.8em;
  11240. }
  11241. .shortcut_key {
  11242. display: inline-block;
  11243. width: 20ex;
  11244. text-align: right;
  11245. font-family: monospace;
  11246. }
  11247. .shortcut_descr {
  11248. display: inline-block;
  11249. /* Old browsers */
  11250. -webkit-box-flex: 1;
  11251. -moz-box-flex: 1;
  11252. box-flex: 1;
  11253. /* Modern browsers */
  11254. flex: 1;
  11255. }
  11256. span.save_widget {
  11257. margin-top: 6px;
  11258. }
  11259. span.save_widget span.filename {
  11260. height: 1em;
  11261. line-height: 1em;
  11262. padding: 3px;
  11263. margin-left: 16px;
  11264. border: none;
  11265. font-size: 146.5%;
  11266. border-radius: 2px;
  11267. }
  11268. span.save_widget span.filename:hover {
  11269. background-color: #e6e6e6;
  11270. }
  11271. span.checkpoint_status,
  11272. span.autosave_status {
  11273. font-size: small;
  11274. }
  11275. @media (max-width: 767px) {
  11276. span.save_widget {
  11277. font-size: small;
  11278. }
  11279. span.checkpoint_status,
  11280. span.autosave_status {
  11281. display: none;
  11282. }
  11283. }
  11284. @media (min-width: 768px) and (max-width: 991px) {
  11285. span.checkpoint_status {
  11286. display: none;
  11287. }
  11288. span.autosave_status {
  11289. font-size: x-small;
  11290. }
  11291. }
  11292. .toolbar {
  11293. padding: 0px;
  11294. margin-left: -5px;
  11295. margin-top: 2px;
  11296. margin-bottom: 5px;
  11297. box-sizing: border-box;
  11298. -moz-box-sizing: border-box;
  11299. -webkit-box-sizing: border-box;
  11300. }
  11301. .toolbar select,
  11302. .toolbar label {
  11303. width: auto;
  11304. vertical-align: middle;
  11305. margin-right: 2px;
  11306. margin-bottom: 0px;
  11307. display: inline;
  11308. font-size: 92%;
  11309. margin-left: 0.3em;
  11310. margin-right: 0.3em;
  11311. padding: 0px;
  11312. padding-top: 3px;
  11313. }
  11314. .toolbar .btn {
  11315. padding: 2px 8px;
  11316. }
  11317. .toolbar .btn-group {
  11318. margin-top: 0px;
  11319. margin-left: 5px;
  11320. }
  11321. #maintoolbar {
  11322. margin-bottom: -3px;
  11323. margin-top: -8px;
  11324. border: 0px;
  11325. min-height: 27px;
  11326. margin-left: 0px;
  11327. padding-top: 11px;
  11328. padding-bottom: 3px;
  11329. }
  11330. #maintoolbar .navbar-text {
  11331. float: none;
  11332. vertical-align: middle;
  11333. text-align: right;
  11334. margin-left: 5px;
  11335. margin-right: 0px;
  11336. margin-top: 0px;
  11337. }
  11338. .select-xs {
  11339. height: 24px;
  11340. }
  11341. .pulse,
  11342. .dropdown-menu > li > a.pulse,
  11343. li.pulse > a.dropdown-toggle,
  11344. li.pulse.open > a.dropdown-toggle {
  11345. background-color: #F37626;
  11346. color: white;
  11347. }
  11348. /**
  11349. * Primary styles
  11350. *
  11351. * Author: Jupyter Development Team
  11352. */
  11353. /** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
  11354. * of chance of beeing generated from the ../less/[samename].less file, you can
  11355. * try to get back the less file by reverting somme commit in history
  11356. **/
  11357. /*
  11358. * We'll try to get something pretty, so we
  11359. * have some strange css to have the scroll bar on
  11360. * the left with fix button on the top right of the tooltip
  11361. */
  11362. @-moz-keyframes fadeOut {
  11363. from {
  11364. opacity: 1;
  11365. }
  11366. to {
  11367. opacity: 0;
  11368. }
  11369. }
  11370. @-webkit-keyframes fadeOut {
  11371. from {
  11372. opacity: 1;
  11373. }
  11374. to {
  11375. opacity: 0;
  11376. }
  11377. }
  11378. @-moz-keyframes fadeIn {
  11379. from {
  11380. opacity: 0;
  11381. }
  11382. to {
  11383. opacity: 1;
  11384. }
  11385. }
  11386. @-webkit-keyframes fadeIn {
  11387. from {
  11388. opacity: 0;
  11389. }
  11390. to {
  11391. opacity: 1;
  11392. }
  11393. }
  11394. /*properties of tooltip after "expand"*/
  11395. .bigtooltip {
  11396. overflow: auto;
  11397. height: 200px;
  11398. -webkit-transition-property: height;
  11399. -webkit-transition-duration: 500ms;
  11400. -moz-transition-property: height;
  11401. -moz-transition-duration: 500ms;
  11402. transition-property: height;
  11403. transition-duration: 500ms;
  11404. }
  11405. /*properties of tooltip before "expand"*/
  11406. .smalltooltip {
  11407. -webkit-transition-property: height;
  11408. -webkit-transition-duration: 500ms;
  11409. -moz-transition-property: height;
  11410. -moz-transition-duration: 500ms;
  11411. transition-property: height;
  11412. transition-duration: 500ms;
  11413. text-overflow: ellipsis;
  11414. overflow: hidden;
  11415. height: 80px;
  11416. }
  11417. .tooltipbuttons {
  11418. position: absolute;
  11419. padding-right: 15px;
  11420. top: 0px;
  11421. right: 0px;
  11422. }
  11423. .tooltiptext {
  11424. /*avoid the button to overlap on some docstring*/
  11425. padding-right: 30px;
  11426. }
  11427. .ipython_tooltip {
  11428. max-width: 700px;
  11429. /*fade-in animation when inserted*/
  11430. -webkit-animation: fadeOut 400ms;
  11431. -moz-animation: fadeOut 400ms;
  11432. animation: fadeOut 400ms;
  11433. -webkit-animation: fadeIn 400ms;
  11434. -moz-animation: fadeIn 400ms;
  11435. animation: fadeIn 400ms;
  11436. vertical-align: middle;
  11437. background-color: #f7f7f7;
  11438. overflow: visible;
  11439. border: #ababab 1px solid;
  11440. outline: none;
  11441. padding: 3px;
  11442. margin: 0px;
  11443. padding-left: 7px;
  11444. font-family: monospace;
  11445. min-height: 50px;
  11446. -moz-box-shadow: 0px 6px 10px -1px #adadad;
  11447. -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  11448. box-shadow: 0px 6px 10px -1px #adadad;
  11449. border-radius: 2px;
  11450. position: absolute;
  11451. z-index: 1000;
  11452. }
  11453. .ipython_tooltip a {
  11454. float: right;
  11455. }
  11456. .ipython_tooltip .tooltiptext pre {
  11457. border: 0;
  11458. border-radius: 0;
  11459. font-size: 100%;
  11460. background-color: #f7f7f7;
  11461. }
  11462. .pretooltiparrow {
  11463. left: 0px;
  11464. margin: 0px;
  11465. top: -16px;
  11466. width: 40px;
  11467. height: 16px;
  11468. overflow: hidden;
  11469. position: absolute;
  11470. }
  11471. .pretooltiparrow:before {
  11472. background-color: #f7f7f7;
  11473. border: 1px #ababab solid;
  11474. z-index: 11;
  11475. content: "";
  11476. position: absolute;
  11477. left: 15px;
  11478. top: 10px;
  11479. width: 25px;
  11480. height: 25px;
  11481. -webkit-transform: rotate(45deg);
  11482. -moz-transform: rotate(45deg);
  11483. -ms-transform: rotate(45deg);
  11484. -o-transform: rotate(45deg);
  11485. }
  11486. ul.typeahead-list i {
  11487. margin-left: -10px;
  11488. width: 18px;
  11489. }
  11490. ul.typeahead-list {
  11491. max-height: 80vh;
  11492. overflow: auto;
  11493. }
  11494. ul.typeahead-list > li > a {
  11495. /** Firefox bug **/
  11496. /* see https://github.com/jupyter/notebook/issues/559 */
  11497. white-space: normal;
  11498. }
  11499. .cmd-palette .modal-body {
  11500. padding: 7px;
  11501. }
  11502. .cmd-palette form {
  11503. background: white;
  11504. }
  11505. .cmd-palette input {
  11506. outline: none;
  11507. }
  11508. .no-shortcut {
  11509. display: none;
  11510. }
  11511. .command-shortcut:before {
  11512. content: "(command)";
  11513. padding-right: 3px;
  11514. color: #777777;
  11515. }
  11516. .edit-shortcut:before {
  11517. content: "(edit)";
  11518. padding-right: 3px;
  11519. color: #777777;
  11520. }
  11521. #find-and-replace #replace-preview .match,
  11522. #find-and-replace #replace-preview .insert {
  11523. background-color: #BBDEFB;
  11524. border-color: #90CAF9;
  11525. border-style: solid;
  11526. border-width: 1px;
  11527. border-radius: 0px;
  11528. }
  11529. #find-and-replace #replace-preview .replace .match {
  11530. background-color: #FFCDD2;
  11531. border-color: #EF9A9A;
  11532. border-radius: 0px;
  11533. }
  11534. #find-and-replace #replace-preview .replace .insert {
  11535. background-color: #C8E6C9;
  11536. border-color: #A5D6A7;
  11537. border-radius: 0px;
  11538. }
  11539. #find-and-replace #replace-preview {
  11540. max-height: 60vh;
  11541. overflow: auto;
  11542. }
  11543. #find-and-replace #replace-preview pre {
  11544. padding: 5px 10px;
  11545. }
  11546. .terminal-app {
  11547. background: #EEE;
  11548. }
  11549. .terminal-app #header {
  11550. background: #fff;
  11551. -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  11552. box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  11553. }
  11554. .terminal-app .terminal {
  11555. float: left;
  11556. font-family: monospace;
  11557. color: white;
  11558. background: black;
  11559. padding: 0.4em;
  11560. border-radius: 2px;
  11561. -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
  11562. box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
  11563. }
  11564. .terminal-app .terminal,
  11565. .terminal-app .terminal dummy-screen {
  11566. line-height: 1em;
  11567. font-size: 14px;
  11568. }
  11569. .terminal-app .terminal-cursor {
  11570. color: black;
  11571. background: white;
  11572. }
  11573. .terminal-app #terminado-container {
  11574. margin-top: 20px;
  11575. }
  11576. /*# sourceMappingURL=style.min.css.map */
  11577. </style>
  11578. <style type="text/css">
  11579. .highlight .hll { background-color: #ffffcc }
  11580. .highlight { background: #f8f8f8; }
  11581. .highlight .c { color: #408080; font-style: italic } /* Comment */
  11582. .highlight .err { border: 1px solid #FF0000 } /* Error */
  11583. .highlight .k { color: #008000; font-weight: bold } /* Keyword */
  11584. .highlight .o { color: #666666 } /* Operator */
  11585. .highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
  11586. .highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
  11587. .highlight .cp { color: #BC7A00 } /* Comment.Preproc */
  11588. .highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
  11589. .highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
  11590. .highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
  11591. .highlight .gd { color: #A00000 } /* Generic.Deleted */
  11592. .highlight .ge { font-style: italic } /* Generic.Emph */
  11593. .highlight .gr { color: #FF0000 } /* Generic.Error */
  11594. .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
  11595. .highlight .gi { color: #00A000 } /* Generic.Inserted */
  11596. .highlight .go { color: #888888 } /* Generic.Output */
  11597. .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
  11598. .highlight .gs { font-weight: bold } /* Generic.Strong */
  11599. .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
  11600. .highlight .gt { color: #0044DD } /* Generic.Traceback */
  11601. .highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
  11602. .highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
  11603. .highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
  11604. .highlight .kp { color: #008000 } /* Keyword.Pseudo */
  11605. .highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
  11606. .highlight .kt { color: #B00040 } /* Keyword.Type */
  11607. .highlight .m { color: #666666 } /* Literal.Number */
  11608. .highlight .s { color: #BA2121 } /* Literal.String */
  11609. .highlight .na { color: #7D9029 } /* Name.Attribute */
  11610. .highlight .nb { color: #008000 } /* Name.Builtin */
  11611. .highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
  11612. .highlight .no { color: #880000 } /* Name.Constant */
  11613. .highlight .nd { color: #AA22FF } /* Name.Decorator */
  11614. .highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
  11615. .highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
  11616. .highlight .nf { color: #0000FF } /* Name.Function */
  11617. .highlight .nl { color: #A0A000 } /* Name.Label */
  11618. .highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
  11619. .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
  11620. .highlight .nv { color: #19177C } /* Name.Variable */
  11621. .highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
  11622. .highlight .w { color: #bbbbbb } /* Text.Whitespace */
  11623. .highlight .mb { color: #666666 } /* Literal.Number.Bin */
  11624. .highlight .mf { color: #666666 } /* Literal.Number.Float */
  11625. .highlight .mh { color: #666666 } /* Literal.Number.Hex */
  11626. .highlight .mi { color: #666666 } /* Literal.Number.Integer */
  11627. .highlight .mo { color: #666666 } /* Literal.Number.Oct */
  11628. .highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
  11629. .highlight .sc { color: #BA2121 } /* Literal.String.Char */
  11630. .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
  11631. .highlight .s2 { color: #BA2121 } /* Literal.String.Double */
  11632. .highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
  11633. .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
  11634. .highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
  11635. .highlight .sx { color: #008000 } /* Literal.String.Other */
  11636. .highlight .sr { color: #BB6688 } /* Literal.String.Regex */
  11637. .highlight .s1 { color: #BA2121 } /* Literal.String.Single */
  11638. .highlight .ss { color: #19177C } /* Literal.String.Symbol */
  11639. .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
  11640. .highlight .vc { color: #19177C } /* Name.Variable.Class */
  11641. .highlight .vg { color: #19177C } /* Name.Variable.Global */
  11642. .highlight .vi { color: #19177C } /* Name.Variable.Instance */
  11643. .highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
  11644. </style>
  11645. <style type="text/css">
  11646. /* Temporary definitions which will become obsolete with Notebook release 5.0 */
  11647. .ansi-black-fg { color: #3E424D; }
  11648. .ansi-black-bg { background-color: #3E424D; }
  11649. .ansi-black-intense-fg { color: #282C36; }
  11650. .ansi-black-intense-bg { background-color: #282C36; }
  11651. .ansi-red-fg { color: #E75C58; }
  11652. .ansi-red-bg { background-color: #E75C58; }
  11653. .ansi-red-intense-fg { color: #B22B31; }
  11654. .ansi-red-intense-bg { background-color: #B22B31; }
  11655. .ansi-green-fg { color: #00A250; }
  11656. .ansi-green-bg { background-color: #00A250; }
  11657. .ansi-green-intense-fg { color: #007427; }
  11658. .ansi-green-intense-bg { background-color: #007427; }
  11659. .ansi-yellow-fg { color: #DDB62B; }
  11660. .ansi-yellow-bg { background-color: #DDB62B; }
  11661. .ansi-yellow-intense-fg { color: #B27D12; }
  11662. .ansi-yellow-intense-bg { background-color: #B27D12; }
  11663. .ansi-blue-fg { color: #208FFB; }
  11664. .ansi-blue-bg { background-color: #208FFB; }
  11665. .ansi-blue-intense-fg { color: #0065CA; }
  11666. .ansi-blue-intense-bg { background-color: #0065CA; }
  11667. .ansi-magenta-fg { color: #D160C4; }
  11668. .ansi-magenta-bg { background-color: #D160C4; }
  11669. .ansi-magenta-intense-fg { color: #A03196; }
  11670. .ansi-magenta-intense-bg { background-color: #A03196; }
  11671. .ansi-cyan-fg { color: #60C6C8; }
  11672. .ansi-cyan-bg { background-color: #60C6C8; }
  11673. .ansi-cyan-intense-fg { color: #258F8F; }
  11674. .ansi-cyan-intense-bg { background-color: #258F8F; }
  11675. .ansi-white-fg { color: #C5C1B4; }
  11676. .ansi-white-bg { background-color: #C5C1B4; }
  11677. .ansi-white-intense-fg { color: #A1A6B2; }
  11678. .ansi-white-intense-bg { background-color: #A1A6B2; }
  11679. .ansi-bold { font-weight: bold; }
  11680. </style>
  11681. <style type="text/css">
  11682. /* Overrides of notebook CSS for static HTML export */
  11683. body {
  11684. overflow: visible;
  11685. padding: 8px;
  11686. }
  11687. div#notebook {
  11688. overflow: visible;
  11689. border-top: none;
  11690. }
  11691. @media print {
  11692. div.cell {
  11693. display: block;
  11694. page-break-inside: avoid;
  11695. }
  11696. div.output_wrapper {
  11697. display: block;
  11698. page-break-inside: avoid;
  11699. }
  11700. div.output {
  11701. display: block;
  11702. page-break-inside: avoid;
  11703. }
  11704. }
  11705. </style>
  11706. <!-- Custom stylesheet, it must be in the same directory as the html file -->
  11707. <link rel="stylesheet" href="custom.css">
  11708. <!-- Loading mathjax macro -->
  11709. <!-- Load mathjax -->
  11710. <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>
  11711. <!-- MathJax configuration -->
  11712. <script type="text/x-mathjax-config">
  11713. MathJax.Hub.Config({
  11714. tex2jax: {
  11715. inlineMath: [ ['$','$'], ["\\(","\\)"] ],
  11716. displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
  11717. processEscapes: true,
  11718. processEnvironments: true
  11719. },
  11720. // Center justify equations in code and markdown cells. Elsewhere
  11721. // we use CSS to left justify single line equations in code cells.
  11722. displayAlign: 'center',
  11723. "HTML-CSS": {
  11724. styles: {'.MathJax_Display': {"margin": 0}},
  11725. linebreaks: { automatic: true }
  11726. }
  11727. });
  11728. </script>
  11729. <!-- End of mathjax configuration --></head>
  11730. <body>
  11731. <div tabindex="-1" id="notebook" class="border-box-sizing">
  11732. <div class="container" id="notebook-container">
  11733. <div class="cell border-box-sizing text_cell rendered">
  11734. <div class="prompt input_prompt">
  11735. </div>
  11736. <div class="inner_cell">
  11737. <div class="text_cell_render border-box-sizing rendered_html">
  11738. <h1 id="OpenStreetMap:-Data-Wrangling">OpenStreetMap: Data Wrangling<a class="anchor-link" href="#OpenStreetMap:-Data-Wrangling">&#182;</a></h1><p>OpenStreetMap (<a href="http://www.openstreetmap.org">http://www.openstreetmap.org</a>) foundation builds a free and editable map of the world, enabling the development of freely-reusable geospatial data. The data from OpenStreetMap is being used by many applications such as GoogleMaps, Foursquare, and Craigslist.</p>
  11739. <p>OpenStreetMap data structure has four core elements: Nodes, Ways, Tags, and Relations.</p>
  11740. <ul>
  11741. <li><p><strong>Nodes</strong> are points with a geographic position stored as lon (longitude) and lan (latitude).</p>
  11742. </li>
  11743. <li><p><strong>Ways</strong> are ordered list of nodes, representing a polyline (can be a closed loop). They depict entities like streets, rivers, parks, and lakes.</p>
  11744. </li>
  11745. <li><p><strong>Relations</strong> are ordered list of nodes, ways and relations (called 'members') to show the relation between nodes and ways such as restrictions on roads.</p>
  11746. </li>
  11747. <li><p><strong>Tags</strong> are pairs of Keys and Values. They are used to store metadata of the map such as address, type of building, or any other physical property. Tags are always attached to a node, way or relation and are not stand-alone elements.</p>
  11748. </li>
  11749. </ul>
  11750. <p>Users can add points on the map, create relations of the nodes and ways, and assign properties such as address or type to them. The data can be stored in OSM format and can be accessed in different formats. For this project, <a href="http://wiki.openstreetmap.org/wiki/OSM_XML">OSM XML</a> format is used.</p>
  11751. <p>In this project, I have worked with the raw data from an area. Since the data is put by different users, I suppose it can be quite messy; therefore, cleaning and auditing functions to make the data look clean for analysis. I then export the data into CSV format and use this format to create tables in my SQLite database. Then I run queries on the database to extract information such as the number of nodes and ways, most contributing users, top points of interest, etc. The report is concluded by discussing benefits as well as some anticipated problems in implementing the improvement.</p>
  11752. </div>
  11753. </div>
  11754. </div>
  11755. <div class="cell border-box-sizing text_cell rendered">
  11756. <div class="prompt input_prompt">
  11757. </div>
  11758. <div class="inner_cell">
  11759. <div class="text_cell_render border-box-sizing rendered_html">
  11760. <h2 id="Area-Chosen-for-Analysis:-San-Francisco,-California">Area Chosen for Analysis: San Francisco, California<a class="anchor-link" href="#Area-Chosen-for-Analysis:-San-Francisco,-California">&#182;</a></h2><p>The reason I chose San Francisco as the area of choice for this study is that it is where the Silicon Valley is; a place I want to work in someday.</p>
  11761. <p>The raw data was locally downloaded from – <a href="https://mapzen.com/data/metro-extracts/metro/san-francisco_california/">https://mapzen.com/data/metro-extracts/metro/san-francisco_california/</a>. The 'metro extracts' provides the map of the metropolitan area (i.e., contains more elements to work with). The original file is about 1.42 GB in size. Hence, a sample file of about 20 MB is used to perform the initial analysis. Post this, after a satisfactory code is written, it is run on the original files to create the CSV files for my database.</p>
  11762. <p>The data analyzed in this Jupyter notebook is from the sample file to be able to show shorter results. I have included all the functions here, as well as the function to create CSV files, in separate .py files in the accompanying directory/repository, which can be run on the original dataset.</p>
  11763. </div>
  11764. </div>
  11765. </div>
  11766. <div class="cell border-box-sizing text_cell rendered">
  11767. <div class="prompt input_prompt">
  11768. </div>
  11769. <div class="inner_cell">
  11770. <div class="text_cell_render border-box-sizing rendered_html">
  11771. <h2 id="How-the-Project-Proceeds">How the Project Proceeds<a class="anchor-link" href="#How-the-Project-Proceeds">&#182;</a></h2><ol>
  11772. <li><strong>Exploring the Data</strong></li>
  11773. <li><strong>Auditing Street Names</strong></li>
  11774. <li><strong>Auditing Postcodes</strong></li>
  11775. <li><strong>Preparing the Data for the Database</strong></li>
  11776. <li><strong>Creating Tables in the Database</strong></li>
  11777. <li><strong>Running Queries on the Data</strong></li>
  11778. <li><strong>Conclusions</strong></li>
  11779. </ol>
  11780. <p>The detailed case study includes information about all snippets of codes, as well as outputs from the query. You can find the complete report from this repository from CaseStudy for OpenStreetMap.</p>
  11781. <h2 id="The-Files-in-this-Directory">The Files in this Directory<a class="anchor-link" href="#The-Files-in-this-Directory">&#182;</a></h2><p>This notebook (<code>Report.ipynb</code>) gives a complete explanation regarding the project, the code, and queries.</p>
  11782. <ol>
  11783. <li><strong><code>audit.py</code></strong>: This script contains the auditing and cleaning functions. This file is a dependency of <code>shaping_csv.py</code>.</li>
  11784. <li><strong><code>shaping_csv.py</code></strong>: The main script which created the CSV files from the OSM data.</li>
  11785. <li><strong><code>creating_database.py</code></strong>: This script creates databases and tables, then insert the relevant data.</li>
  11786. <li><strong><code>query_on_database.py</code></strong>: This script contains all the SQL commands.</li>
  11787. <li><strong><code>sample.osm</code></strong>: This file contains a sample data from the original San Francisco database.</li>
  11788. <li><strong><code>sampler.py</code></strong>: This scripts sampels the original OSM file by taking every 'k' observations.</li>
  11789. <li><strong><code>Report.html</code></strong>: Export of this report from Jupyter notebook to HTML.</li>
  11790. </ol>
  11791. </div>
  11792. </div>
  11793. </div>
  11794. <div class="cell border-box-sizing text_cell rendered">
  11795. <div class="prompt input_prompt">
  11796. </div>
  11797. <div class="inner_cell">
  11798. <div class="text_cell_render border-box-sizing rendered_html">
  11799. <h2 id="Exploring-the-Data">Exploring the Data<a class="anchor-link" href="#Exploring-the-Data">&#182;</a></h2><p>This section shows the data exploration i.e. to check how the data is structured, what are problems and how they can be cleaned. This is done by first looking into the dataset and parse through using <code>ElementTree</code> and extract information such as different types of elements (nodes, ways, etc.) in the OSM XML file.</p>
  11800. <p>Since the original file is too large for processing, the file can be parsed using <code>ET.iterparse</code> (i.e. iterative parsing) as it will parse the file as it builds it – <a href="http://stackoverflow.com/questions/12792998/elementtree-iterparse-strategy">http://stackoverflow.com/questions/12792998/elementtree-iterparse-strategy</a>).</p>
  11801. </div>
  11802. </div>
  11803. </div>
  11804. <div class="cell border-box-sizing text_cell rendered">
  11805. <div class="prompt input_prompt">
  11806. </div>
  11807. <div class="inner_cell">
  11808. <div class="text_cell_render border-box-sizing rendered_html">
  11809. <p>In the following code,</p>
  11810. <ul>
  11811. <li>I will iterate through different tags in the XML.</li>
  11812. <li>Count them and put them in a dictionary with the key being the tag type.</li>
  11813. </ul>
  11814. </div>
  11815. </div>
  11816. </div>
  11817. <div class="cell border-box-sizing code_cell rendered">
  11818. <div class="input">
  11819. <div class="prompt input_prompt">In&nbsp;[67]:</div>
  11820. <div class="inner_cell">
  11821. <div class="input_area">
  11822. <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">xml.etree.cElementTree</span> <span class="k">as</span> <span class="nn">ET</span>
  11823. <span class="kn">import</span> <span class="nn">pprint</span>
  11824. <span class="n">OSMFILE</span> <span class="o">=</span> <span class="s1">&#39;sample.osm&#39;</span>
  11825. <span class="k">def</span> <span class="nf">count_tags</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
  11826. <span class="n">tags</span><span class="o">=</span> <span class="p">{}</span>
  11827. <span class="k">for</span> <span class="n">event</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">ET</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
  11828. <span class="k">if</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">tags</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
  11829. <span class="n">tags</span><span class="p">[</span><span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
  11830. <span class="k">else</span><span class="p">:</span>
  11831. <span class="n">tags</span><span class="p">[</span><span class="n">elem</span><span class="o">.</span><span class="n">tag</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
  11832. <span class="n">pprint</span><span class="o">.</span><span class="n">pprint</span><span class="p">(</span><span class="n">tags</span><span class="p">)</span>
  11833. <span class="n">count_tags</span><span class="p">(</span><span class="n">OSMFILE</span><span class="p">)</span>
  11834. </pre></div>
  11835. </div>
  11836. </div>
  11837. </div>
  11838. <div class="output_wrapper">
  11839. <div class="output">
  11840. <div class="output_area"><div class="prompt"></div>
  11841. <div class="output_subarea output_stream output_stdout output_text">
  11842. <pre>{&#39;member&#39;: 910,
  11843. &#39;nd&#39;: 105916,
  11844. &#39;node&#39;: 89220,
  11845. &#39;osm&#39;: 1,
  11846. &#39;relation&#39;: 110,
  11847. &#39;tag&#39;: 27721,
  11848. &#39;way&#39;: 11113}
  11849. </pre>
  11850. </div>
  11851. </div>
  11852. </div>
  11853. </div>
  11854. </div>
  11855. <div class="cell border-box-sizing text_cell rendered">
  11856. <div class="prompt input_prompt">
  11857. </div>
  11858. <div class="inner_cell">
  11859. <div class="text_cell_render border-box-sizing rendered_html">
  11860. <p>In the OSM XML file, the 'tag' element has key-value pairs which contain information about different points (nodes) or ways in the map. I parse through this element using the following regular expressions:</p>
  11861. <ul>
  11862. <li><p>Lower - <strong><code>^([a-z]|_)*$</code></strong>: Matches strings that contain only lower case characters. It also covers the underscore '_' character.</p>
  11863. </li>
  11864. <li><p>Lower Colon - <strong><code>^([a-z]|_)*:([a-z]|_)*$</code></strong>: Matches strings which contain lower case characters but also have the colon ':' character.</p>
  11865. </li>
  11866. <li><p>Problem Char - <strong><code>[=\+/&amp;&lt;&gt;;\'"\?%#$@\,\. \t\r\n]</code></strong>: Matches tags with problematic characters specified in the regex pattern.</p>
  11867. </li>
  11868. </ul>
  11869. <p>Take this section of the map as an example:</p>
  11870. <pre><code> &lt;node changeset="30175357" id="358830340"
  11871. lat="37.6504905" lon="-122.4896963"
  11872. timestamp="2015-04-12T22:43:37Z"
  11873. uid="35667" user="encleadus" version="4"&gt;
  11874. &lt;tag k="name" v="Ocean Shore School" /&gt;
  11875. &lt;tag k="phone" v="+1 650 738 6650" /&gt;
  11876. &lt;tag k="amenity" v="school" /&gt;
  11877. &lt;tag k="website" v="http://www.oceanshoreschool.org/" /&gt;
  11878. &lt;tag k="addr:city" v="Pacifica" /&gt;
  11879. &lt;tag k="addr:state" v="CA" /&gt;
  11880. &lt;tag k="addr:street" v="Oceana Boulevard" /&gt;
  11881. &lt;tag k="gnis:created" v="04/06/1998" /&gt;
  11882. &lt;tag k="addr:postcode" v="94044" /&gt;
  11883. &lt;tag k="gnis:state_id" v="06" /&gt;
  11884. &lt;tag k="gnis:county_id" v="081" /&gt;
  11885. &lt;tag k="gnis:feature_id" v="1785657" /&gt;
  11886. &lt;tag k="addr:housenumber" v="411" /&gt;
  11887. &lt;/node&gt;</code></pre>
  11888. <p>This node tag has 13 tag elements inside it. There are multiple keys that have the ':' character in them, so they fall under the 'Lower_Colon' regular expression. Keys like name, phone, and amenity will fall under the 'lower' regular expression. There are no problematic characters in this specific node.</p>
  11889. </div>
  11890. </div>
  11891. </div>
  11892. <div class="cell border-box-sizing code_cell rendered">
  11893. <div class="input">
  11894. <div class="prompt input_prompt">In&nbsp;[5]:</div>
  11895. <div class="inner_cell">
  11896. <div class="input_area">
  11897. <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">xml.etree.cElementTree</span> <span class="k">as</span> <span class="nn">ET</span>
  11898. <span class="kn">import</span> <span class="nn">pprint</span>
  11899. <span class="kn">import</span> <span class="nn">re</span>
  11900. <span class="n">OSMFILE</span> <span class="o">=</span> <span class="s1">&#39;sample.osm&#39;</span>
  11901. <span class="n">lower</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s1">r&#39;^([a-z]|_)*$&#39;</span><span class="p">)</span>
  11902. <span class="n">lower_colon</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s1">r&#39;^([a-z]|_)*:([a-z]|_)*$&#39;</span><span class="p">)</span>
  11903. <span class="n">problem_chars</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s1">r&#39;[=\+/&amp;&lt;&gt;;</span><span class="se">\&#39;</span><span class="s1">&quot;\?%#$@\,\. \t\r\n]&#39;</span><span class="p">)</span>
  11904. <span class="k">def</span> <span class="nf">key_type</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="n">keys</span><span class="p">):</span>
  11905. <span class="k">if</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s2">&quot;tag&quot;</span><span class="p">:</span>
  11906. <span class="k">for</span> <span class="n">tag</span> <span class="ow">in</span> <span class="n">element</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s1">&#39;tag&#39;</span><span class="p">):</span> <span class="c1"># Iterating through the tag elements.</span>
  11907. <span class="n">k</span> <span class="o">=</span> <span class="n">element</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;k&#39;</span><span class="p">]</span> <span class="c1"># Looking for the tag attribute &#39;k&#39; which contains the keys.</span>
  11908. <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">lower</span><span class="p">,</span> <span class="n">k</span><span class="p">):</span>
  11909. <span class="n">keys</span><span class="p">[</span><span class="s1">&#39;lower&#39;</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
  11910. <span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">lower_colon</span><span class="p">,</span> <span class="n">k</span><span class="p">):</span>
  11911. <span class="n">keys</span><span class="p">[</span><span class="s1">&#39;lower_colon&#39;</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
  11912. <span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">problem_chars</span><span class="p">,</span> <span class="n">k</span><span class="p">):</span>
  11913. <span class="n">keys</span><span class="p">[</span><span class="s1">&#39;problem_chars&#39;</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
  11914. <span class="k">else</span><span class="p">:</span>
  11915. <span class="n">keys</span><span class="p">[</span><span class="s1">&#39;other&#39;</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
  11916. <span class="k">return</span> <span class="n">keys</span>
  11917. <span class="k">def</span> <span class="nf">process_map</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
  11918. <span class="n">keys</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;lower&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">&quot;lower_colon&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">&quot;problem_chars&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">&quot;other&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">}</span>
  11919. <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">ET</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
  11920. <span class="n">keys</span> <span class="o">=</span> <span class="n">key_type</span><span class="p">(</span><span class="n">element</span><span class="p">,</span> <span class="n">keys</span><span class="p">)</span>
  11921. <span class="n">pprint</span><span class="o">.</span><span class="n">pprint</span><span class="p">(</span><span class="n">keys</span><span class="p">)</span>
  11922. <span class="n">process_map</span><span class="p">(</span><span class="n">OSMFILE</span><span class="p">)</span>
  11923. </pre></div>
  11924. </div>
  11925. </div>
  11926. </div>
  11927. <div class="output_wrapper">
  11928. <div class="output">
  11929. <div class="output_area"><div class="prompt"></div>
  11930. <div class="output_subarea output_stream output_stdout output_text">
  11931. <pre>{&#39;lower&#39;: 19501, &#39;lower_colon&#39;: 7857, &#39;other&#39;: 361, &#39;problem_chars&#39;: 2}
  11932. </pre>
  11933. </div>
  11934. </div>
  11935. </div>
  11936. </div>
  11937. </div>
  11938. <div class="cell border-box-sizing text_cell rendered">
  11939. <div class="prompt input_prompt">
  11940. </div>
  11941. <div class="inner_cell">
  11942. <div class="text_cell_render border-box-sizing rendered_html">
  11943. <p>Now, the number of unique users that have contributed to the OpenStreetMap data for San Francisco have to be calculated. To find the users, we need to look through the attributes of the node, way and relation tags. The 'uid' attribute is what we need to count.</p>
  11944. <pre><code>`&lt;node changeset="30175357"
  11945. id="358830340" lat="37.6504905" lon="-122.4896963"
  11946. timestamp="2015-04-12T22:43:37Z" uid="35667" user="encleadus" version="4"&gt;`</code></pre>
  11947. </div>
  11948. </div>
  11949. </div>
  11950. <div class="cell border-box-sizing code_cell rendered">
  11951. <div class="input">
  11952. <div class="prompt input_prompt">In&nbsp;[6]:</div>
  11953. <div class="inner_cell">
  11954. <div class="input_area">
  11955. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">OSMFILE</span> <span class="o">=</span> <span class="s1">&#39;sample.osm&#39;</span>
  11956. <span class="k">def</span> <span class="nf">process_map</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
  11957. <span class="n">users</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span>
  11958. <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">ET</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
  11959. <span class="k">if</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s1">&#39;node&#39;</span> <span class="ow">or</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s1">&#39;way&#39;</span> <span class="ow">or</span> <span class="n">element</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s1">&#39;relation&#39;</span><span class="p">:</span>
  11960. <span class="n">userid</span> <span class="o">=</span> <span class="n">element</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;uid&#39;</span><span class="p">]</span>
  11961. <span class="n">users</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">userid</span><span class="p">)</span>
  11962. <span class="nb">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">users</span><span class="p">))</span>
  11963. <span class="n">process_map</span><span class="p">(</span><span class="n">OSMFILE</span><span class="p">)</span>
  11964. </pre></div>
  11965. </div>
  11966. </div>
  11967. </div>
  11968. <div class="output_wrapper">
  11969. <div class="output">
  11970. <div class="output_area"><div class="prompt"></div>
  11971. <div class="output_subarea output_stream output_stdout output_text">
  11972. <pre>928
  11973. </pre>
  11974. </div>
  11975. </div>
  11976. </div>
  11977. </div>
  11978. </div>
  11979. <div class="cell border-box-sizing text_cell rendered">
  11980. <div class="prompt input_prompt">
  11981. </div>
  11982. <div class="inner_cell">
  11983. <div class="text_cell_render border-box-sizing rendered_html">
  11984. <h2 id="Auditing-the-Data">Auditing the Data<a class="anchor-link" href="#Auditing-the-Data">&#182;</a></h2><h3 id="Auditing-Street-Names">Auditing Street Names<a class="anchor-link" href="#Auditing-Street-Names">&#182;</a></h3><p>Since, many users are entering data in OpenStreetMap, the way they represent the formatting of streets can vary. For example, the street type 'Avenue' can be written in formats such as:</p>
  11985. <ul>
  11986. <li>Avenue (starting with a capital letter)</li>
  11987. <li>avenue (starting with a small letter)</li>
  11988. <li>Ave. (with a .)</li>
  11989. <li>Ave (without a .)</li>
  11990. </ul>
  11991. <p>To be able to process the data, we need to make these street types uniform. In case we are later searching for specific Avenue names, we can do a quick search on all street types that have the word 'Avenue' in them, and we can make sure that we are not missing anything with abbreviations of Avenue.</p>
  11992. </div>
  11993. </div>
  11994. </div>
  11995. <div class="cell border-box-sizing code_cell rendered">
  11996. <div class="input">
  11997. <div class="prompt input_prompt">In&nbsp;[19]:</div>
  11998. <div class="inner_cell">
  11999. <div class="input_area">
  12000. <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">xml.etree.cElementTree</span> <span class="k">as</span> <span class="nn">ET</span>
  12001. <span class="kn">from</span> <span class="nn">collections</span> <span class="k">import</span> <span class="n">defaultdict</span>
  12002. <span class="kn">import</span> <span class="nn">re</span>
  12003. <span class="kn">import</span> <span class="nn">pprint</span>
  12004. <span class="n">OSMFILE</span> <span class="o">=</span> <span class="s2">&quot;sample.osm&quot;</span>
  12005. <span class="sd">&quot;&quot;&quot;This regular expression matches letters without any white space with zero to one &#39;.&#39;</span>
  12006. <span class="sd">Extract a string which might or might not have the &#39;.&#39; character in it.&quot;&quot;&quot;</span>
  12007. <span class="n">street_type_re</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s1">r&#39;\b\S+\.?$&#39;</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">IGNORECASE</span><span class="p">)</span>
  12008. <span class="c1"># List of expected street types.</span>
  12009. <span class="n">expected</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;Street&quot;</span><span class="p">,</span> <span class="s2">&quot;Avenue&quot;</span><span class="p">,</span> <span class="s2">&quot;Boulevard&quot;</span><span class="p">,</span> <span class="s2">&quot;Drive&quot;</span><span class="p">,</span> <span class="s2">&quot;Court&quot;</span><span class="p">,</span> <span class="s2">&quot;Place&quot;</span><span class="p">,</span> <span class="s2">&quot;Square&quot;</span><span class="p">,</span> <span class="s2">&quot;Lane&quot;</span><span class="p">,</span> <span class="s2">&quot;Road&quot;</span><span class="p">,</span>
  12010. <span class="s2">&quot;Trail&quot;</span><span class="p">,</span> <span class="s2">&quot;Parkway&quot;</span><span class="p">,</span> <span class="s2">&quot;Commons&quot;</span><span class="p">]</span>
  12011. <span class="k">def</span> <span class="nf">audit_street_type</span><span class="p">(</span><span class="n">street_types</span><span class="p">,</span> <span class="n">street_name</span><span class="p">):</span>
  12012. <span class="sd">&quot;&quot;&quot;This function will get the list of street types and using the regular expression, </span>
  12013. <span class="sd"> compare them to the expected list. If they do not match the names in the expected list, </span>
  12014. <span class="sd"> it adds it to the street_types dictionary.</span>
  12015. <span class="sd"> &quot;&quot;&quot;</span>
  12016. <span class="n">m</span> <span class="o">=</span> <span class="n">street_type_re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">street_name</span><span class="p">)</span>
  12017. <span class="k">if</span> <span class="n">m</span><span class="p">:</span>
  12018. <span class="n">street_type</span> <span class="o">=</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">()</span>
  12019. <span class="k">if</span> <span class="n">street_type</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">expected</span><span class="p">:</span>
  12020. <span class="n">street_types</span><span class="p">[</span><span class="n">street_type</span><span class="p">]</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">street_name</span><span class="p">)</span>
  12021. <span class="k">def</span> <span class="nf">is_street_name</span><span class="p">(</span><span class="n">elem</span><span class="p">):</span>
  12022. <span class="sd">&quot;&quot;&quot;This unction will get the elements in the file (i.e. the tag element) and </span>
  12023. <span class="sd"> return the attributes in that element for which their key is equal to &#39;addr:street&#39;. </span>
  12024. <span class="sd"> &quot;&quot;&quot;</span>
  12025. <span class="k">return</span> <span class="p">(</span><span class="n">elem</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;k&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;addr:street&quot;</span><span class="p">)</span>
  12026. <span class="k">def</span> <span class="nf">audit_street</span><span class="p">(</span><span class="n">osmfile</span><span class="p">):</span>
  12027. <span class="sd">&quot;&quot;&quot;This function uses iterative parsing to go through the XML file, </span>
  12028. <span class="sd"> parse node and way elements, and iterate through their tag element. </span>
  12029. <span class="sd"> It will then call the &#39;audit_street_type&#39; function to add the value attribute </span>
  12030. <span class="sd"> of the tag (i.e. the street name) to it. </span>
  12031. <span class="sd"> &quot;&quot;&quot;</span>
  12032. <span class="n">osm_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">osmfile</span><span class="p">,</span> <span class="s2">&quot;r&quot;</span><span class="p">)</span>
  12033. <span class="n">street_types</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">set</span><span class="p">)</span>
  12034. <span class="c1"># Parses the XML file.</span>
  12035. <span class="k">for</span> <span class="n">event</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">ET</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">osm_file</span><span class="p">,</span> <span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s2">&quot;start&quot;</span><span class="p">,)):</span>
  12036. <span class="c1"># Iterate through the &#39;tag&#39; element of node and way elements.</span>
  12037. <span class="k">if</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s2">&quot;node&quot;</span> <span class="ow">or</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s2">&quot;way&quot;</span><span class="p">:</span>
  12038. <span class="k">for</span> <span class="n">tag</span> <span class="ow">in</span> <span class="n">elem</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s2">&quot;tag&quot;</span><span class="p">):</span>
  12039. <span class="k">if</span> <span class="n">is_street_name</span><span class="p">(</span><span class="n">tag</span><span class="p">):</span>
  12040. <span class="n">audit_street_type</span><span class="p">(</span><span class="n">street_types</span><span class="p">,</span> <span class="n">tag</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;v&#39;</span><span class="p">])</span>
  12041. <span class="n">osm_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
  12042. <span class="k">return</span> <span class="n">street_types</span>
  12043. <span class="n">street_types</span> <span class="o">=</span> <span class="n">audit_street</span><span class="p">(</span><span class="n">OSMFILE</span><span class="p">)</span>
  12044. <span class="n">pprint</span><span class="o">.</span><span class="n">pprint</span><span class="p">(</span><span class="nb">dict</span><span class="p">(</span><span class="n">street_types</span><span class="p">))</span>
  12045. </pre></div>
  12046. </div>
  12047. </div>
  12048. </div>
  12049. <div class="output_wrapper">
  12050. <div class="output">
  12051. <div class="output_area"><div class="prompt"></div>
  12052. <div class="output_subarea output_stream output_stdout output_text">
  12053. <pre>{&#39;2&#39;: {&#39;San Francisco Bicycle Route 2&#39;},
  12054. &#39;Alameda&#39;: {&#39;Alameda&#39;},
  12055. &#39;Blvd&#39;: {&#39;Newark Blvd&#39;},
  12056. &#39;Broadway&#39;: {&#39;Broadway&#39;},
  12057. &#39;Center&#39;: {&#39;Westlake Center&#39;},
  12058. &#39;Circle&#39;: {&#39;Columbia Circle&#39;, &#39;Blossom Circle&#39;, &#39;Inner Circle&#39;},
  12059. &#39;Clemente&#39;: {&#39;San Clemente&#39;},
  12060. &#39;Cres&#39;: {&#39;Wellesley Cres&#39;},
  12061. &#39;Gardens&#39;: {&#39;Wildwood Gardens&#39;},
  12062. &#39;Highway&#39;: {&#39;Great Highway&#39;},
  12063. &#39;Ora&#39;: {&#39;Avenue Del Ora&#39;},
  12064. &#39;Real&#39;: {&#39;North el Camino Real&#39;, &#39;El Camino Real&#39;},
  12065. &#39;Terrace&#39;: {&#39;Hawthorne Terrace&#39;},
  12066. &#39;Way&#39;: {&#39;Camberly Way&#39;,
  12067. &#39;Cambridge Way&#39;,
  12068. &#39;Chelsea Way&#39;,
  12069. &#39;Facebook Way&#39;,
  12070. &#39;Glenn Way&#39;,
  12071. &#39;Hansen Way&#39;,
  12072. &#39;Industrial Way&#39;,
  12073. &#39;Lenox Way&#39;,
  12074. &#39;Liberty Ship Way&#39;,
  12075. &#39;Lincoln Way&#39;,
  12076. &#39;Marina Way&#39;,
  12077. &#39;Martin Luther King Jr Way&#39;,
  12078. &#39;Olympia Way&#39;,
  12079. &#39;Park Way&#39;,
  12080. &#39;Ranleigh Way&#39;,
  12081. &#39;San Benito Way&#39;,
  12082. &#39;Sanchez Way&#39;,
  12083. &#39;Sussex Way&#39;,
  12084. &#39;Sylvan Way&#39;,
  12085. &#39;Tum Suden Way&#39;,
  12086. &#39;Wessex Way&#39;}}
  12087. </pre>
  12088. </div>
  12089. </div>
  12090. </div>
  12091. </div>
  12092. </div>
  12093. <div class="cell border-box-sizing text_cell rendered">
  12094. <div class="prompt input_prompt">
  12095. </div>
  12096. <div class="inner_cell">
  12097. <div class="text_cell_render border-box-sizing rendered_html">
  12098. <p>Going through the street name list, I use it to update the 'mapping' list. In this list, I mention the format of the street type that was found in the file (left) and specify to what format it needs to be changed (right). The dictionary containing the abbreviated street types do not cover all the different street types but covers a large number of them. I go through this list and see which ones can be changed. For instance:</p>
  12099. <ul>
  12100. <li><code>{'Highway': Great Highway'}</code> needs no changes. </li>
  12101. <li><code>{'Blvd': 'Newark Blvd'}</code> needs to be changed from Blvd to 'Boulevard.</li>
  12102. </ul>
  12103. </div>
  12104. </div>
  12105. </div>
  12106. <div class="cell border-box-sizing code_cell rendered">
  12107. <div class="input">
  12108. <div class="prompt input_prompt">In&nbsp;[20]:</div>
  12109. <div class="inner_cell">
  12110. <div class="input_area">
  12111. <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># The list of dictionaries, containing street types that need to be changed to match the expected list.</span>
  12112. <span class="n">mapping</span> <span class="o">=</span> <span class="p">{</span> <span class="s2">&quot;St&quot;</span><span class="p">:</span> <span class="s2">&quot;Street&quot;</span><span class="p">,</span>
  12113. <span class="s2">&quot;St.&quot;</span><span class="p">:</span> <span class="s2">&quot;Street&quot;</span><span class="p">,</span>
  12114. <span class="s2">&quot;street&quot;</span><span class="p">:</span> <span class="s2">&quot;Street&quot;</span><span class="p">,</span>
  12115. <span class="s2">&quot;Ave&quot;</span><span class="p">:</span> <span class="s2">&quot;Avenue&quot;</span><span class="p">,</span>
  12116. <span class="s2">&quot;Ave.&quot;</span><span class="p">:</span> <span class="s2">&quot;Avenue&quot;</span><span class="p">,</span>
  12117. <span class="s2">&quot;AVE&quot;</span><span class="p">:</span> <span class="s2">&quot;Avenue,&quot;</span><span class="p">,</span>
  12118. <span class="s2">&quot;avenue&quot;</span><span class="p">:</span> <span class="s2">&quot;Avenue&quot;</span><span class="p">,</span>
  12119. <span class="s2">&quot;Rd.&quot;</span><span class="p">:</span> <span class="s2">&quot;Road&quot;</span><span class="p">,</span>
  12120. <span class="s2">&quot;Rd&quot;</span><span class="p">:</span> <span class="s2">&quot;Road&quot;</span><span class="p">,</span>
  12121. <span class="s2">&quot;road&quot;</span><span class="p">:</span> <span class="s2">&quot;Road&quot;</span><span class="p">,</span>
  12122. <span class="s2">&quot;Blvd&quot;</span><span class="p">:</span> <span class="s2">&quot;Boulevard&quot;</span><span class="p">,</span>
  12123. <span class="s2">&quot;Blvd.&quot;</span><span class="p">:</span> <span class="s2">&quot;Boulevard&quot;</span><span class="p">,</span>
  12124. <span class="s2">&quot;Blvd,&quot;</span><span class="p">:</span> <span class="s2">&quot;Boulevard&quot;</span><span class="p">,</span>
  12125. <span class="s2">&quot;boulevard&quot;</span><span class="p">:</span> <span class="s2">&quot;Boulevard&quot;</span><span class="p">,</span>
  12126. <span class="s2">&quot;broadway&quot;</span><span class="p">:</span> <span class="s2">&quot;Broadway&quot;</span><span class="p">,</span>
  12127. <span class="s2">&quot;square&quot;</span><span class="p">:</span> <span class="s2">&quot;Square&quot;</span><span class="p">,</span>
  12128. <span class="s2">&quot;way&quot;</span><span class="p">:</span> <span class="s2">&quot;Way&quot;</span><span class="p">,</span>
  12129. <span class="s2">&quot;Dr.&quot;</span><span class="p">:</span> <span class="s2">&quot;Drive&quot;</span><span class="p">,</span>
  12130. <span class="s2">&quot;Dr&quot;</span><span class="p">:</span> <span class="s2">&quot;Drive&quot;</span><span class="p">,</span>
  12131. <span class="s2">&quot;ct&quot;</span><span class="p">:</span> <span class="s2">&quot;Court&quot;</span><span class="p">,</span>
  12132. <span class="s2">&quot;Ct&quot;</span><span class="p">:</span> <span class="s2">&quot;Court&quot;</span><span class="p">,</span>
  12133. <span class="s2">&quot;court&quot;</span><span class="p">:</span> <span class="s2">&quot;Court&quot;</span><span class="p">,</span>
  12134. <span class="s2">&quot;Sq&quot;</span><span class="p">:</span> <span class="s2">&quot;Square&quot;</span><span class="p">,</span>
  12135. <span class="s2">&quot;square&quot;</span><span class="p">:</span> <span class="s2">&quot;Square&quot;</span><span class="p">,</span>
  12136. <span class="s2">&quot;cres&quot;</span><span class="p">:</span> <span class="s2">&quot;Crescent&quot;</span><span class="p">,</span>
  12137. <span class="s2">&quot;Cres&quot;</span><span class="p">:</span> <span class="s2">&quot;Crescent&quot;</span><span class="p">,</span>
  12138. <span class="s2">&quot;Ctr&quot;</span><span class="p">:</span> <span class="s2">&quot;Center&quot;</span><span class="p">,</span>
  12139. <span class="s2">&quot;Hwy&quot;</span><span class="p">:</span> <span class="s2">&quot;Highway&quot;</span><span class="p">,</span>
  12140. <span class="s2">&quot;hwy&quot;</span><span class="p">:</span> <span class="s2">&quot;Highway&quot;</span><span class="p">,</span>
  12141. <span class="s2">&quot;Ln&quot;</span><span class="p">:</span> <span class="s2">&quot;Lane&quot;</span><span class="p">,</span>
  12142. <span class="s2">&quot;Ln.&quot;</span><span class="p">:</span> <span class="s2">&quot;Lane&quot;</span><span class="p">,</span>
  12143. <span class="s2">&quot;parkway&quot;</span><span class="p">:</span> <span class="s2">&quot;Parkway&quot;</span>
  12144. <span class="p">}</span>
  12145. <span class="k">def</span> <span class="nf">update_name</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">mapping</span><span class="p">):</span>
  12146. <span class="sd">&quot;&quot;&quot;This function takes the street name and split it at the space character. </span>
  12147. <span class="sd"> In case, it finds a string that matches any key in the mapping, it replaces it with </span>
  12148. <span class="sd"> the format that has been specified for it. </span>
  12149. <span class="sd"> </span>
  12150. <span class="sd"> e.g. When the function finds &#39;Blvd&#39; in &quot;Newark Blvd&quot;, it goes through mapping and maps </span>
  12151. <span class="sd"> it to &#39;Boulevard&#39;, and the final street name will come out as &#39;Newark Boulevard&#39;.</span>
  12152. <span class="sd"> &quot;&quot;&quot;</span>
  12153. <span class="n">output</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
  12154. <span class="n">parts</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot; &quot;</span><span class="p">)</span>
  12155. <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">parts</span><span class="p">:</span>
  12156. <span class="k">if</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">mapping</span><span class="p">:</span>
  12157. <span class="n">output</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">mapping</span><span class="p">[</span><span class="n">part</span><span class="p">])</span>
  12158. <span class="k">else</span><span class="p">:</span>
  12159. <span class="n">output</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">part</span><span class="p">)</span>
  12160. <span class="k">return</span> <span class="s2">&quot; &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">output</span><span class="p">)</span>
  12161. <span class="c1"># Printing the changes made in street names.</span>
  12162. <span class="k">for</span> <span class="n">st_type</span><span class="p">,</span> <span class="n">ways</span> <span class="ow">in</span> <span class="n">street_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
  12163. <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">ways</span><span class="p">:</span>
  12164. <span class="n">better_name</span> <span class="o">=</span> <span class="n">update_name</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">mapping</span><span class="p">)</span>
  12165. <span class="nb">print</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="s2">&quot;→&quot;</span><span class="p">,</span> <span class="n">better_name</span><span class="p">)</span>
  12166. </pre></div>
  12167. </div>
  12168. </div>
  12169. </div>
  12170. <div class="output_wrapper">
  12171. <div class="output">
  12172. <div class="output_area"><div class="prompt"></div>
  12173. <div class="output_subarea output_stream output_stdout output_text">
  12174. <pre>Columbia Circle → Columbia Circle
  12175. Blossom Circle → Blossom Circle
  12176. Inner Circle → Inner Circle
  12177. Hawthorne Terrace → Hawthorne Terrace
  12178. Sanchez Way → Sanchez Way
  12179. Park Way → Park Way
  12180. Glenn Way → Glenn Way
  12181. Chelsea Way → Chelsea Way
  12182. Wessex Way → Wessex Way
  12183. Ranleigh Way → Ranleigh Way
  12184. Sussex Way → Sussex Way
  12185. Liberty Ship Way → Liberty Ship Way
  12186. Facebook Way → Facebook Way
  12187. Camberly Way → Camberly Way
  12188. Lenox Way → Lenox Way
  12189. San Benito Way → San Benito Way
  12190. Lincoln Way → Lincoln Way
  12191. Martin Luther King Jr Way → Martin Luther King Jr Way
  12192. Cambridge Way → Cambridge Way
  12193. Hansen Way → Hansen Way
  12194. Sylvan Way → Sylvan Way
  12195. Tum Suden Way → Tum Suden Way
  12196. Marina Way → Marina Way
  12197. Olympia Way → Olympia Way
  12198. Industrial Way → Industrial Way
  12199. Alameda → Alameda
  12200. Westlake Center → Westlake Center
  12201. Broadway → Broadway
  12202. Newark Blvd → Newark Boulevard
  12203. San Francisco Bicycle Route 2 → San Francisco Bicycle Route 2
  12204. San Clemente → San Clemente
  12205. North el Camino Real → North el Camino Real
  12206. El Camino Real → El Camino Real
  12207. Wellesley Cres → Wellesley Crescent
  12208. Avenue Del Ora → Avenue Del Ora
  12209. Wildwood Gardens → Wildwood Gardens
  12210. Great Highway → Great Highway
  12211. </pre>
  12212. </div>
  12213. </div>
  12214. </div>
  12215. </div>
  12216. </div>
  12217. <div class="cell border-box-sizing text_cell rendered">
  12218. <div class="prompt input_prompt">
  12219. </div>
  12220. <div class="inner_cell">
  12221. <div class="text_cell_render border-box-sizing rendered_html">
  12222. <h3 id="Auditing-Postcodes">Auditing Postcodes<a class="anchor-link" href="#Auditing-Postcodes">&#182;</a></h3><p>Postcodes are another inconsistent type of data that is entered into the map. The inconsistency is either in how they are represented (with the city abbreviation or without) or how long they are. The theory behind auditing Postcodes is the same as auditing street names.</p>
  12223. </div>
  12224. </div>
  12225. </div>
  12226. <div class="cell border-box-sizing code_cell rendered">
  12227. <div class="input">
  12228. <div class="prompt input_prompt">In&nbsp;[28]:</div>
  12229. <div class="inner_cell">
  12230. <div class="input_area">
  12231. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">OSMFILE</span> <span class="o">=</span> <span class="s1">&#39;sample.osm&#39;</span>
  12232. <span class="k">def</span> <span class="nf">dicti</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span>
  12233. <span class="sd">&quot;&quot;&quot;This function creates a dictionary postcodes can be held. </span>
  12234. <span class="sd"> The dictionary key will be the postcode itself and the dictionary value </span>
  12235. <span class="sd"> will be the number of times that postcode was repeated throughout the map.&quot;&quot;&quot;</span>
  12236. <span class="n">data</span><span class="p">[</span><span class="n">item</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
  12237. <span class="k">def</span> <span class="nf">get_postcode</span><span class="p">(</span><span class="n">elem</span><span class="p">):</span>
  12238. <span class="sd">&quot;&quot;&quot;This function takes the &#39;tag&#39; element as an input and </span>
  12239. <span class="sd"> return the elements for which the keys are equal to &#39;addr:postcode&#39;&quot;&quot;&quot;</span>
  12240. <span class="k">return</span> <span class="p">(</span><span class="n">elem</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;k&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;addr:postcode&quot;</span><span class="p">)</span>
  12241. <span class="k">def</span> <span class="nf">audit</span><span class="p">(</span><span class="n">osmfile</span><span class="p">):</span>
  12242. <span class="sd">&quot;&quot;&quot;This function parses the XML file and iterates through node and </span>
  12243. <span class="sd"> way elements. It extracts the value attribute (i.e. the postcode) and </span>
  12244. <span class="sd"> add it to the &#39;dicti&#39; dictionary.&quot;&quot;&quot;</span>
  12245. <span class="n">osm_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">osmfile</span><span class="p">,</span> <span class="s2">&quot;r&quot;</span><span class="p">)</span>
  12246. <span class="n">data</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span>
  12247. <span class="c1"># Parsing the XML file</span>
  12248. <span class="k">for</span> <span class="n">event</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">ET</span><span class="o">.</span><span class="n">iterparse</span><span class="p">(</span><span class="n">osm_file</span><span class="p">,</span> <span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s2">&quot;start&quot;</span><span class="p">,)):</span>
  12249. <span class="c1"># Iterating through node and way elements.</span>
  12250. <span class="k">if</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s2">&quot;node&quot;</span> <span class="ow">or</span> <span class="n">elem</span><span class="o">.</span><span class="n">tag</span> <span class="o">==</span> <span class="s2">&quot;way&quot;</span><span class="p">:</span>
  12251. <span class="k">for</span> <span class="n">tag</span> <span class="ow">in</span> <span class="n">elem</span><span class="o">.</span><span class="n">iter</span><span class="p">(</span><span class="s2">&quot;tag&quot;</span><span class="p">):</span>
  12252. <span class="k">if</span> <span class="n">get_postcode</span><span class="p">(</span><span class="n">tag</span><span class="p">):</span>
  12253. <span class="n">dicti</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">tag</span><span class="o">.</span><span class="n">attrib</span><span class="p">[</span><span class="s1">&#39;v&#39;</span><span class="p">])</span>
  12254. <span class="k">return</span> <span class="n">data</span>
  12255. <span class="n">postcodes</span> <span class="o">=</span> <span class="n">audit</span><span class="p">(</span><span class="n">OSMFILE</span><span class="p">)</span>
  12256. <span class="n">pprint</span><span class="o">.</span><span class="n">pprint</span><span class="p">(</span><span class="nb">dict</span><span class="p">(</span><span class="n">postcodes</span><span class="p">))</span>
  12257. </pre></div>
  12258. </div>
  12259. </div>
  12260. </div>
  12261. <div class="output_wrapper">
  12262. <div class="output">
  12263. <div class="output_area"><div class="prompt"></div>
  12264. <div class="output_subarea output_stream output_stdout output_text">
  12265. <pre>{&#39;94005&#39;: 1,
  12266. &#39;94010&#39;: 2,
  12267. &#39;94014&#39;: 1,
  12268. &#39;94015&#39;: 2,
  12269. &#39;94025&#39;: 1,
  12270. &#39;94061&#39;: 3,
  12271. &#39;94062&#39;: 1,
  12272. &#39;94063&#39;: 2,
  12273. &#39;94065&#39;: 1,
  12274. &#39;94102&#39;: 1,
  12275. &#39;94103&#39;: 18,
  12276. &#39;94104&#39;: 1,
  12277. &#39;94105&#39;: 2,
  12278. &#39;94107&#39;: 2,
  12279. &#39;94108&#39;: 1,
  12280. &#39;94109&#39;: 10,
  12281. &#39;94110&#39;: 2,
  12282. &#39;94111&#39;: 1,
  12283. &#39;94113&#39;: 1,
  12284. &#39;94114&#39;: 5,
  12285. &#39;94115&#39;: 1,
  12286. &#39;94116&#39;: 29,
  12287. &#39;94117&#39;: 22,
  12288. &#39;94118&#39;: 14,
  12289. &#39;94121&#39;: 6,
  12290. &#39;94122&#39;: 69,
  12291. &#39;94123&#39;: 1,
  12292. &#39;94124&#39;: 1,
  12293. &#39;94127&#39;: 10,
  12294. &#39;94131&#39;: 2,
  12295. &#39;94132&#39;: 1,
  12296. &#39;94133&#39;: 15,
  12297. &#39;94401&#39;: 1,
  12298. &#39;94501&#39;: 2,
  12299. &#39;94530&#39;: 2,
  12300. &#39;94541&#39;: 3,
  12301. &#39;94560&#39;: 1,
  12302. &#39;94578&#39;: 1,
  12303. &#39;94580&#39;: 1,
  12304. &#39;94587&#39;: 6,
  12305. &#39;94598&#39;: 1,
  12306. &#39;94602&#39;: 1,
  12307. &#39;94605&#39;: 1,
  12308. &#39;94606&#39;: 2,
  12309. &#39;94610&#39;: 14,
  12310. &#39;94611&#39;: 46,
  12311. &#39;94612&#39;: 4,
  12312. &#39;94618&#39;: 2,
  12313. &#39;94702&#39;: 1,
  12314. &#39;94703&#39;: 1,
  12315. &#39;94704&#39;: 2,
  12316. &#39;94706&#39;: 4,
  12317. &#39;94707&#39;: 2,
  12318. &#39;94709&#39;: 1,
  12319. &#39;94804&#39;: 1,
  12320. &#39;94805&#39;: 9,
  12321. &#39;94904&#39;: 1,
  12322. &#39;94941&#39;: 1,
  12323. &#39;94965&#39;: 1,
  12324. &#39;95498&#39;: 1}
  12325. </pre>
  12326. </div>
  12327. </div>
  12328. </div>
  12329. </div>
  12330. </div>
  12331. <div class="cell border-box-sizing text_cell rendered">
  12332. <div class="prompt input_prompt">
  12333. </div>
  12334. <div class="inner_cell">
  12335. <div class="text_cell_render border-box-sizing rendered_html">
  12336. <p>The output shows that the postcode is in a <em>5-digit format</em>.</p>
  12337. <p>After running the code on the original file, I also found other postcode formats. To deal with these other formats observed, I divide them into different categories: <br></p>
  12338. <ul>
  12339. <li><p>The first category includes the ones:</p>
  12340. <ul>
  12341. <li>Where the length equals to 5 (e.g., 12345).</li>
  12342. <li>Where the length is longer than 5, and they contain characters (e.g., CA 12345). <br><br> </li>
  12343. </ul>
  12344. </li>
  12345. <li><p>The second category includes the ones:</p>
  12346. <ul>
  12347. <li>Where the length is longer than 5, and they are followed by a hyphen (e.g., 12345-6789). <br><br></li>
  12348. </ul>
  12349. </li>
  12350. <li><p>The third category includes the ones:</p>
  12351. <ul>
  12352. <li>Where the length is longer than 5, but are not followed by any hyphen (e.g., 123456).</li>
  12353. <li>Where the length is shorter than 5 (e.g., 1234, 515).</li>
  12354. <li>Where the postcode equals to 'CA.' <br></li>
  12355. </ul>
  12356. </li>
  12357. </ul>
  12358. <p>For the first category, I use a regular expression to extract only 5 digits from the pattern. This regex asserts position at the start of the string (<code>^</code>) and matches any character that is NOT a digit (<code>\D*</code>). The (<code>\d{5}</code>) matches a digit exactly 5 times. In case the postcode starts with letters (e.g., CA 12345), it gives two groups of output: 'CA' and '12345'. Depending on which one is needed, the preferred group can be chosen – <strong><code>^\D*(\d{5}).*</code></strong>.</p>
  12359. <p>For the second category, I use another regular expression to extract the first 5-digits. This regex matches digits 5 times, is followed by a '-,' and then matching digits exactly 4 times – <strong><code>^(\d{5})-\d{4}$</code></strong>.</p>
  12360. <p>For the third category, having postcodes which have shorter or longer than 5-digit length, means that they are not valid. To clean them up, I replace those postcodes with '00000'. I use regular expressions to be able to find the ones that are exactly 6-digit long – <strong><code>^\d{6}$</code></strong>.</p>
  12361. </div>
  12362. </div>
  12363. </div>
  12364. <div class="cell border-box-sizing code_cell rendered">
  12365. <div class="input">
  12366. <div class="prompt input_prompt">In&nbsp;[30]:</div>
  12367. <div class="inner_cell">
  12368. <div class="input_area">
  12369. <div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">update_postcode</span><span class="p">(</span><span class="n">digit</span><span class="p">):</span>
  12370. <span class="sd">&quot;&quot;&quot;Makes use of different conditions in the function to match the </span>
  12371. <span class="sd"> postcodes in the 3 categories that can be found for postal codes.&quot;&quot;&quot;</span>
  12372. <span class="n">output</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
  12373. <span class="n">first_category</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s1">r&#39;^\D*(\d</span><span class="si">{5}</span><span class="s1">$)&#39;</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">IGNORECASE</span><span class="p">)</span>
  12374. <span class="n">second_category</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s1">&#39;^(\d</span><span class="si">{5}</span><span class="s1">)-\d</span><span class="si">{4}</span><span class="s1">$&#39;</span><span class="p">)</span>
  12375. <span class="n">third_category</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s1">&#39;^\d</span><span class="si">{6}</span><span class="s1">$&#39;</span><span class="p">)</span>
  12376. <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">first_category</span><span class="p">,</span> <span class="n">digit</span><span class="p">):</span>
  12377. <span class="n">new_digit</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">first_category</span><span class="p">,</span> <span class="n">digit</span><span class="p">)</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
  12378. <span class="n">output</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_digit</span><span class="p">)</span>
  12379. <span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">second_category</span><span class="p">,</span> <span class="n">digit</span><span class="p">):</span>
  12380. <span class="n">new_digit</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">second_category</span><span class="p">,</span> <span class="n">digit</span><span class="p">)</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
  12381. <span class="n">output</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_digit</span><span class="p">)</span>
  12382. <span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">third_category</span><span class="p">,</span> <span class="n">digit</span><span class="p">):</span>
  12383. <span class="n">third_output</span> <span class="o">=</span> <span class="n">third_category</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">digit</span><span class="p">)</span>
  12384. <span class="n">new_digit</span> <span class="o">=</span> <span class="s1">&#39;00000&#39;</span>
  12385. <span class="n">output</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;00000&#39;</span><span class="p">)</span>
  12386. <span class="c1"># This condition matches the third category for any other types.</span>
  12387. <span class="k">elif</span> <span class="n">digit</span> <span class="o">==</span> <span class="s1">&#39;CA&#39;</span> <span class="ow">or</span> <span class="nb">len</span><span class="p">(</span><span class="n">digit</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">5</span><span class="p">:</span>
  12388. <span class="n">new_digit</span> <span class="o">=</span> <span class="s1">&#39;00000&#39;</span>
  12389. <span class="n">output</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_digit</span><span class="p">)</span>
  12390. <span class="k">return</span> <span class="s1">&#39;, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">output</span><span class="p">)</span>
  12391. <span class="k">for</span> <span class="n">postcode</span><span class="p">,</span> <span class="n">nums</span> <span class="ow">in</span> <span class="n">postcodes</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
  12392. <span class="n">better_code</span> <span class="o">=</span> <span class="n">update_postcode</span><span class="p">(</span><span class="n">postcode</span><span class="p">)</span>
  12393. <span class="nb">print</span><span class="p">(</span><span class="n">postcode</span><span class="p">,</span> <span class="s2">&quot;→&quot;</span><span class="p">,</span> <span class="n">better_code</span><span class="p">)</span>
  12394. </pre></div>
  12395. </div>
  12396. </div>
  12397. </div>
  12398. <div class="output_wrapper">
  12399. <div class="output">
  12400. <div class="output_area"><div class="prompt"></div>
  12401. <div class="output_subarea output_stream output_stdout output_text">
  12402. <pre>94541 → 94541
  12403. 94110 → 94110
  12404. 94116 → 94116
  12405. 94587 → 94587
  12406. 94612 → 94612
  12407. 94065 → 94065
  12408. 94704 → 94704
  12409. 94103 → 94103
  12410. 94606 → 94606
  12411. 94061 → 94061
  12412. 94107 → 94107
  12413. 94010 → 94010
  12414. 94115 → 94115
  12415. 94132 → 94132
  12416. 94114 → 94114
  12417. 94702 → 94702
  12418. 94618 → 94618
  12419. 94109 → 94109
  12420. 94122 → 94122
  12421. 94127 → 94127
  12422. 94105 → 94105
  12423. 94117 → 94117
  12424. 94118 → 94118
  12425. 94121 → 94121
  12426. 94108 → 94108
  12427. 94706 → 94706
  12428. 94904 → 94904
  12429. 94015 → 94015
  12430. 94941 → 94941
  12431. 94804 → 94804
  12432. 94560 → 94560
  12433. 94965 → 94965
  12434. 94062 → 94062
  12435. 94104 → 94104
  12436. 94113 → 94113
  12437. 94063 → 94063
  12438. 94133 → 94133
  12439. 94111 → 94111
  12440. 94123 → 94123
  12441. 94131 → 94131
  12442. 95498 → 95498
  12443. 94501 → 94501
  12444. 94602 → 94602
  12445. 94610 → 94610
  12446. 94611 → 94611
  12447. 94598 → 94598
  12448. 94124 → 94124
  12449. 94014 → 94014
  12450. 94102 → 94102
  12451. 94580 → 94580
  12452. 94025 → 94025
  12453. 94401 → 94401
  12454. 94005 → 94005
  12455. 94703 → 94703
  12456. 94605 → 94605
  12457. 94578 → 94578
  12458. 94805 → 94805
  12459. 94530 → 94530
  12460. 94707 → 94707
  12461. 94709 → 94709
  12462. </pre>
  12463. </div>
  12464. </div>
  12465. </div>
  12466. </div>
  12467. </div>
  12468. <div class="cell border-box-sizing text_cell rendered">
  12469. <div class="prompt input_prompt">
  12470. </div>
  12471. <div class="inner_cell">
  12472. <div class="text_cell_render border-box-sizing rendered_html">
  12473. <h2 id="Preparing-the-Data-for-the-Database">Preparing the Data for the Database<a class="anchor-link" href="#Preparing-the-Data-for-the-Database">&#182;</a></h2><p>To load the data to the SQLite database, they need to be converted from the XML file to CSV files. I create multiple CSV files, and later create the corresponding tables in my database based on them.</p>
  12474. <p>The CSV files I want to have are:</p>
  12475. <ul>
  12476. <li><code>node.csv</code></li>
  12477. <li><code>node_tags.csv</code></li>
  12478. <li><code>way.csv</code></li>
  12479. <li><code>way_tags.csv</code></li>
  12480. <li><code>way_nodes.csv</code></li>
  12481. </ul>
  12482. <p>Each of these CSV files contains different columns and stores data based on those columns. The columns used in the CSV files will be the table columns in the database. This is the <strong>schema</strong>:</p>
  12483. <ul>
  12484. <li>NODE_FIELDS = ['id', 'lat', 'lon', 'user', 'uid', 'version', 'changeset', 'timestamp']</li>
  12485. <li>NODE_TAGS_FIELDS = ['id', 'key', 'value', 'type']</li>
  12486. <li>WAY_FIELDS = ['id', 'user', 'uid', 'version', 'changeset', 'timestamp']</li>
  12487. <li>WAY_TAGS_FIELDS = ['id', 'key', 'value', 'type']</li>
  12488. <li>WAY_NODES_FIELDS = ['id', 'node_id', 'position']</li>
  12489. </ul>
  12490. <p>To create these files, I will parse the 'node' and 'way' tags and extract the tags inside them. The <code>shape_element</code> function takes an iterparse element object and returns a dictionary. Depending on whether the element is 'node' or 'way', the dictionary looks different.</p>
  12491. </div>
  12492. </div>
  12493. </div>
  12494. <div class="cell border-box-sizing text_cell rendered">
  12495. <div class="prompt input_prompt">
  12496. </div>
  12497. <div class="inner_cell">
  12498. <div class="text_cell_render border-box-sizing rendered_html">
  12499. <p>Here's an example from the 'node' element in the XML file:</p>
  12500. <pre><code>&lt;node changeset="27772228" id="358830414"
  12501. lat="37.6668652" lon="-122.4895243" timestamp="2014-12-29T09:43:14Z"
  12502. uid="14293" user="KindredCoda" version="2"&gt;
  12503. &lt;tag k="ele" v="118" /&gt;
  12504. &lt;tag k="name" v="Longview Park" /&gt;
  12505. &lt;tag k="leisure" v="park" /&gt;
  12506. &lt;tag k="gnis:created" v="04/06/1998" /&gt;
  12507. &lt;tag k="gnis:state_id" v="06" /&gt;
  12508. &lt;tag k="gnis:county_id" v="081" /&gt;
  12509. &lt;tag k="gnis:feature_id" v="1785701" /&gt;
  12510. &lt;/node&gt;
  12511. </code></pre>
  12512. <h3 id="For-'Node':">For 'Node':<a class="anchor-link" href="#For-'Node':">&#182;</a></h3><p><strong>The dictionary returns the format <code>{"node": .., "node_tags": ...}</code></strong></p>
  12513. <p>The <code>node</code> field holds a dictionary of the following top level node attributes: <code>id, user, uid, version, lat, lon, timestamp, changeset</code>. All the other attributes are ignored.</p>
  12514. <p>The <code>node_tags</code> field holds a list of dictionaries, one per secondary tag (child tags of node, which have the tag name/type: "tag"). Each dictionary has the following fields and properties:</p>
  12515. <ul>
  12516. <li><p><code>id:</code> the top level node_id attribute value. For example, <code>node['id']='358830414'</code> in the above sample. <br><br></p>
  12517. </li>
  12518. <li><p><code>key:</code> the full tag "k" attribute value if no colon is present or the characters after the colon if there is one. For example, <code>k="name"</code>. <br><br></p>
  12519. </li>
  12520. <li><p><code>value:</code> the tag "v" attribute value. For example, <code>v="Longview Park"</code> is the value for the key <code>k="name"</code>. <br><br></p>
  12521. </li>
  12522. <li><p><code>type:</code> either the characters before the colon in the tag "k" value or "regular" if a colon is not present. For <code>k="name"</code>, the type would be 'regular'. <br><br></p>
  12523. </li>
  12524. <li><p>If the tag "k" value contains problematic characters, the tag should be ignored. <br><br></p>
  12525. </li>
  12526. <li><p>If the tag "k" value contains a ":", the characters before the ":" should be set as the tag type and characters after the ":" should be set as the tag key. For example, in <code>&lt;tag k="gnis:county_id"&gt;</code>, the <code>tag['type']='gnis' and tag['key']='county_id'</code>. <br><br></p>
  12527. </li>
  12528. <li><p>If there are additional ":" in the "k" value, they should be ignored and kept as part of the tag key. For example, <code>{'id':12345, 'key':'street:name', 'value':'Lincoln', 'type':'addr'}.</code> <br><br></p>
  12529. </li>
  12530. <li><p>If a node has no secondary tags, then <code>node_tags</code> field should just contain an empty list.</p>
  12531. </li>
  12532. </ul>
  12533. <h3 id="For-'Way':">For 'Way':<a class="anchor-link" href="#For-'Way':">&#182;</a></h3><p><strong>The dictionary has the format <code>{"way": ..., "way_tags": ..., "way_nodes": ...}</code></strong></p>
  12534. <p>The <code>way</code> field should hold a dictionary of the following top level way attributes <code>id, user, uid, version, timestamp, changeset</code>.</p>
  12535. <p>The <code>way_tags</code> field again holds a list of dictionaries, following the exact same rules as for <code>node_tags</code>.</p>
  12536. <p>Additionally, the dictionary has a field <code>way_nodes</code>. <code>way_nodes</code> holds a list of dictionaries. Each dictionary has the fields:</p>
  12537. <ul>
  12538. <li><code>id:</code> the top level element (way) id.</li>
  12539. <li><code>node_id:</code> the ref attribute value of the nd tag.</li>
  12540. <li><code>position:</code> the index starting at 0 of the nd tag i.e. what order the nd tag appears within the way element.</li>
  12541. </ul>
  12542. </div>
  12543. </div>
  12544. </div>
  12545. <div class="cell border-box-sizing text_cell rendered">
  12546. <div class="prompt input_prompt">
  12547. </div>
  12548. <div class="inner_cell">
  12549. <div class="text_cell_render border-box-sizing rendered_html">
  12550. <h3 id="Writing-to-CSV">Writing to CSV<a class="anchor-link" href="#Writing-to-CSV">&#182;</a></h3><p>To write the data into CSV files, <code>shape_element</code> function which makes use of <code>update_name</code> and <code>update_postcode</code> functions to clean the street names and postcodes before they are inserted into the CSV files. Each of the function is called twice, once for nodes and the other for ways.</p>
  12551. </div>
  12552. </div>
  12553. </div>
  12554. <div class="cell border-box-sizing text_cell rendered">
  12555. <div class="prompt input_prompt">
  12556. </div>
  12557. <div class="inner_cell">
  12558. <div class="text_cell_render border-box-sizing rendered_html">
  12559. <h4 id="Issue-Faced:-Incompletely-Filled-Attributes">Issue Faced: Incompletely Filled Attributes<a class="anchor-link" href="#Issue-Faced:-Incompletely-Filled-Attributes">&#182;</a></h4><p>One issue I noticed while I was validating my CSV file against the expected schema, I found out that some <code>uid</code> values are missing from the data. Although according to the best practice of OpenStreetMap, all user's information should be written while submitting data, they are not; thus, causing validation to throw errors. To fix this issue, dummy values have been entered.</p>
  12560. <p>The same problem with some empty fields are relatable to the 'k' attribute as well; meaning users did not add information for all the attributes in node or way. To overcome this problem, a conditional statement to set the <code>['type']</code> and <code>['key']</code> to 'regular' in case the field is empty was implemented. Else, it uses the regular expressions to find corresponding patterns.</p>
  12561. </div>
  12562. </div>
  12563. </div>
  12564. <div class="cell border-box-sizing text_cell rendered">
  12565. <div class="prompt input_prompt">
  12566. </div>
  12567. <div class="inner_cell">
  12568. <div class="text_cell_render border-box-sizing rendered_html">
  12569. <h3 id="Preparing-the-Database">Preparing the Database<a class="anchor-link" href="#Preparing-the-Database">&#182;</a></h3><p>After the CSV files are created (by running the shaping_csv.py file), the next step is to create the database and insert the information from those CSV files to their corresponding tables.</p>
  12570. <p>I created the database called <code>openstreetmap_sf_db,</code> and I created tables with columns based on the columns from the CSV files, and inserted the data from the CSV files to the corresponding tables in the database. The <code>creating_database.py</code> file takes care of creating the tables and inserting data in them.</p>
  12571. <p>After the tables are created, I can now start investigating them and getting queries on them.</p>
  12572. <p>The sample code below shows how I have created the tables in the database; where <code>tables_name</code>, <code>column_name</code> and <code>filename.csv</code> are replaced according to the table that is to be inserted. First, I connect to the SQLite file and make sure to check that the table I want to create is not already created. Using <code>cur.execute</code>, I execute commands to the database in Python. After creating the table, I inserted the data from the CSV file into it. I did this process for every table I wanted to create in the database.</p>
  12573. </div>
  12574. </div>
  12575. </div>
  12576. <div class="cell border-box-sizing code_cell rendered">
  12577. <div class="input">
  12578. <div class="prompt input_prompt">In&nbsp;[68]:</div>
  12579. <div class="inner_cell">
  12580. <div class="input_area">
  12581. <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">sqlite3</span>
  12582. <span class="kn">import</span> <span class="nn">csv</span>
  12583. <span class="kn">from</span> <span class="nn">pprint</span> <span class="k">import</span> <span class="n">pprint</span>
  12584. <span class="c1"># Put the path to your sqlite database. If no database is available, a new one will be created.</span>
  12585. <span class="n">sqlite_file</span> <span class="o">=</span> <span class="s1">&#39;openstreetmap_sf_db.sqlite&#39;</span>
  12586. <span class="c1"># Connecting to the database.</span>
  12587. <span class="n">conn</span> <span class="o">=</span> <span class="n">sqlite3</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="n">sqlite_file</span><span class="p">)</span>
  12588. <span class="n">cur</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">cursor</span><span class="p">()</span>
  12589. </pre></div>
  12590. </div>
  12591. </div>
  12592. </div>
  12593. </div>
  12594. <div class="cell border-box-sizing text_cell rendered">
  12595. <div class="prompt input_prompt">
  12596. </div>
  12597. <div class="inner_cell">
  12598. <div class="text_cell_render border-box-sizing rendered_html">
  12599. <h2 id="Data-Overview">Data Overview<a class="anchor-link" href="#Data-Overview">&#182;</a></h2>
  12600. </div>
  12601. </div>
  12602. </div>
  12603. <div class="cell border-box-sizing text_cell rendered">
  12604. <div class="prompt input_prompt">
  12605. </div>
  12606. <div class="inner_cell">
  12607. <div class="text_cell_render border-box-sizing rendered_html">
  12608. <p>Now that I have audited and cleaned the data and transfered everything into table in my database, I can start running queries on it.</p>
  12609. <p>The queries help find the following.</p>
  12610. <ol>
  12611. <li>Number of nodes, ways.</li>
  12612. <li>Number of unique users.</li>
  12613. <li>Most contributing users.</li>
  12614. <li>No. of users who contributed only once.</li>
  12615. <li>Top 10 amneties in San Francisco.</li>
  12616. <li>Cuisines in San Francisco.</li>
  12617. <li>Shopes in San Francisco.</li>
  12618. <li>Users who added amneties.</li>
  12619. </ol>
  12620. </div>
  12621. </div>
  12622. </div>
  12623. <div class="cell border-box-sizing text_cell rendered">
  12624. <div class="prompt input_prompt">
  12625. </div>
  12626. <div class="inner_cell">
  12627. <div class="text_cell_render border-box-sizing rendered_html">
  12628. <h3 id="Number-of-Nodes-&amp;-Ways">Number of Nodes &amp; Ways<a class="anchor-link" href="#Number-of-Nodes-&amp;-Ways">&#182;</a></h3>
  12629. </div>
  12630. </div>
  12631. </div>
  12632. <div class="cell border-box-sizing code_cell rendered">
  12633. <div class="input">
  12634. <div class="prompt input_prompt">In&nbsp;[69]:</div>
  12635. <div class="inner_cell">
  12636. <div class="input_area">
  12637. <div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">number_of_nodes</span><span class="p">():</span>
  12638. <span class="n">output</span> <span class="o">=</span> <span class="n">cur</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s1">&#39;SELECT COUNT(*) FROM nodes&#39;</span><span class="p">)</span>
  12639. <span class="k">return</span> <span class="n">output</span><span class="o">.</span><span class="n">fetchone</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
  12640. <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Number of nodes: </span><span class="se">\n</span><span class="s1">&#39;</span> <span class="p">,</span> <span class="n">number_of_nodes</span><span class="p">())</span>
  12641. <span class="k">def</span> <span class="nf">number_of_ways</span><span class="p">():</span>
  12642. <span class="n">output</span> <span class="o">=</span> <span class="n">cur</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s1">&#39;SELECT COUNT(*) FROM ways&#39;</span><span class="p">)</span>
  12643. <span class="k">return</span> <span class="n">output</span><span class="o">.</span><span class="n">fetchone</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
  12644. <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Number of ways: </span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">number_of_ways</span><span class="p">())</span>
  12645. </pre></div>
  12646. </div>
  12647. </div>
  12648. </div>
  12649. <div class="output_wrapper">
  12650. <div class="output">
  12651. <div class="output_area"><div class="prompt"></div>
  12652. <div class="output_subarea output_stream output_stdout output_text">
  12653. <pre>Number of nodes:
  12654. 6691432
  12655. Number of ways:
  12656. 833509
  12657. </pre>
  12658. </div>
  12659. </div>
  12660. </div>
  12661. </div>
  12662. </div>
  12663. <div class="cell border-box-sizing text_cell rendered">
  12664. <div class="prompt input_prompt">
  12665. </div>
  12666. <div class="inner_cell">
  12667. <div class="text_cell_render border-box-sizing rendered_html">
  12668. <h3 id="Number-of-Unique-Users">Number of Unique Users<a class="anchor-link" href="#Number-of-Unique-Users">&#182;</a></h3>
  12669. </div>
  12670. </div>
  12671. </div>
  12672. <div class="cell border-box-sizing code_cell rendered">
  12673. <div class="input">
  12674. <div class="prompt input_prompt">In&nbsp;[70]:</div>
  12675. <div class="inner_cell">
  12676. <div class="input_area">
  12677. <div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">number_of_unique_users</span><span class="p">():</span>
  12678. <span class="n">output</span> <span class="o">=</span> <span class="n">cur</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s1">&#39;SELECT COUNT(DISTINCT e.uid) FROM </span><span class="se">\</span>
  12679. <span class="s1"> (SELECT uid FROM nodes UNION ALL SELECT uid FROM ways) e&#39;</span><span class="p">)</span>
  12680. <span class="k">return</span> <span class="n">output</span><span class="o">.</span><span class="n">fetchone</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
  12681. <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Number of unique users: </span><span class="se">\n</span><span class="s1">&#39;</span> <span class="p">,</span> <span class="n">number_of_unique_users</span><span class="p">())</span>
  12682. </pre></div>
  12683. </div>
  12684. </div>
  12685. </div>
  12686. <div class="output_wrapper">
  12687. <div class="output">
  12688. <div class="output_area"><div class="prompt"></div>
  12689. <div class="output_subarea output_stream output_stdout output_text">
  12690. <pre>Number of unique users:
  12691. 2996
  12692. </pre>
  12693. </div>
  12694. </div>
  12695. </div>
  12696. </div>
  12697. </div>
  12698. <div class="cell border-box-sizing text_cell rendered">
  12699. <div class="prompt input_prompt">
  12700. </div>
  12701. <div class="inner_cell">
  12702. <div class="text_cell_render border-box-sizing rendered_html">
  12703. <h3 id="Most-Contributing-Users">Most Contributing Users<a class="anchor-link" href="#Most-Contributing-Users">&#182;</a></h3>
  12704. </div>
  12705. </div>
  12706. </div>
  12707. <div class="cell border-box-sizing code_cell rendered">
  12708. <div class="input">
  12709. <div class="prompt input_prompt">In&nbsp;[78]:</div>
  12710. <div class="inner_cell">
  12711. <div class="input_area">
  12712. <div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">most_contributing_users</span><span class="p">():</span>
  12713. <span class="n">output</span> <span class="o">=</span> <span class="n">cur</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s1">&#39;SELECT e.user, COUNT(*) as num FROM </span><span class="se">\</span>
  12714. <span class="s1"> (SELECT user FROM nodes UNION ALL SELECT user FROM ways) e </span><span class="se">\</span>
  12715. <span class="s1"> GROUP BY e.user </span><span class="se">\</span>
  12716. <span class="s1"> ORDER BY num DESC </span><span class="se">\</span>
  12717. <span class="s1"> LIMIT 10 &#39;</span><span class="p">)</span>
  12718. <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Most contributing users: </span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
  12719. <span class="n">pprint</span><span class="p">(</span><span class="n">output</span><span class="o">.</span><span class="n">fetchall</span><span class="p">())</span>
  12720. <span class="k">return</span> <span class="kc">None</span>
  12721. <span class="n">most_contributing_users</span><span class="p">()</span>
  12722. </pre></div>
  12723. </div>
  12724. </div>
  12725. </div>
  12726. <div class="output_wrapper">
  12727. <div class="output">
  12728. <div class="output_area"><div class="prompt"></div>
  12729. <div class="output_subarea output_stream output_stdout output_text">
  12730. <pre>Most contributing users:
  12731. [(&#34;b&#39;andygol&#39;&#34;, 1495885),
  12732. (&#34;b&#39;ediyes&#39;&#34;, 886372),
  12733. (&#34;b&#39;Luis36995&#39;&#34;, 678994),
  12734. (&#34;b&#39;dannykath&#39;&#34;, 545833),
  12735. (&#34;b&#39;RichRico&#39;&#34;, 414739),
  12736. (&#34;b&#39;Rub21&#39;&#34;, 380990),
  12737. (&#34;b&#39;calfarome&#39;&#34;, 190771),
  12738. (&#34;b&#39;oldtopos&#39;&#34;, 165326),
  12739. (&#34;b&#39;KindredCoda&#39;&#34;, 149721),
  12740. (&#34;b&#39;karitotp&#39;&#34;, 139477)]
  12741. </pre>
  12742. </div>
  12743. </div>
  12744. </div>
  12745. </div>
  12746. </div>
  12747. <div class="cell border-box-sizing text_cell rendered">
  12748. <div class="prompt input_prompt">
  12749. </div>
  12750. <div class="inner_cell">
  12751. <div class="text_cell_render border-box-sizing rendered_html">
  12752. <h3 id="Number-of-Users-Who-Contributed-Once">Number of Users Who Contributed Once<a class="anchor-link" href="#Number-of-Users-Who-Contributed-Once">&#182;</a></h3>
  12753. </div>
  12754. </div>
  12755. </div>
  12756. <div class="cell border-box-sizing code_cell rendered">
  12757. <div class="input">
  12758. <div class="prompt input_prompt">In&nbsp;[79]:</div>
  12759. <div class="inner_cell">
  12760. <div class="input_area">
  12761. <div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">number_of_users_contributed_once</span><span class="p">():</span>
  12762. <span class="n">output</span> <span class="o">=</span> <span class="n">cur</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s1">&#39;SELECT COUNT(*) FROM </span><span class="se">\</span>
  12763. <span class="s1"> (SELECT e.user, COUNT(*) as num FROM </span><span class="se">\</span>
  12764. <span class="s1"> (SELECT user FROM nodes UNION ALL SELECT user FROM ways) e </span><span class="se">\</span>
  12765. <span class="s1"> GROUP BY e.user </span><span class="se">\</span>
  12766. <span class="s1"> HAVING num = 1) u&#39;</span><span class="p">)</span>
  12767. <span class="k">return</span> <span class="n">output</span><span class="o">.</span><span class="n">fetchone</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
  12768. <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Number of users who have contributed once: </span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">number_of_users_contributed_once</span><span class="p">())</span>
  12769. </pre></div>
  12770. </div>
  12771. </div>
  12772. </div>
  12773. <div class="output_wrapper">
  12774. <div class="output">
  12775. <div class="output_area"><div class="prompt"></div>
  12776. <div class="output_subarea output_stream output_stdout output_text">
  12777. <pre>Number of users who have contributed once:
  12778. 747
  12779. </pre>
  12780. </div>
  12781. </div>
  12782. </div>
  12783. </div>
  12784. </div>
  12785. <div class="cell border-box-sizing text_cell rendered">
  12786. <div class="prompt input_prompt">
  12787. </div>
  12788. <div class="inner_cell">
  12789. <div class="text_cell_render border-box-sizing rendered_html">
  12790. <h3 id="Top-10-Amenities-in-San-Francisco">Top 10 Amenities in San Francisco<a class="anchor-link" href="#Top-10-Amenities-in-San-Francisco">&#182;</a></h3>
  12791. </div>
  12792. </div>
  12793. </div>
  12794. <div class="cell border-box-sizing code_cell rendered">
  12795. <div class="input">
  12796. <div class="prompt input_prompt">In&nbsp;[106]:</div>
  12797. <div class="inner_cell">
  12798. <div class="input_area">
  12799. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">query</span> <span class="o">=</span> <span class="s2">&quot;SELECT value, COUNT(*) as num FROM nodes_tags </span><span class="se">\</span>
  12800. <span class="s2"> WHERE key=</span><span class="se">\&quot;</span><span class="s2">b&#39;amenity&#39;</span><span class="se">\&quot;</span><span class="s2"> </span><span class="se">\</span>
  12801. <span class="s2"> GROUP BY value </span><span class="se">\</span>
  12802. <span class="s2"> ORDER BY num DESC </span><span class="se">\</span>
  12803. <span class="s2"> LIMIT 20&quot;</span>
  12804. <span class="k">def</span> <span class="nf">top_ten_amenities_in_sf</span><span class="p">():</span>
  12805. <span class="n">output</span> <span class="o">=</span> <span class="n">cur</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="n">query</span><span class="p">)</span>
  12806. <span class="n">pprint</span><span class="p">(</span><span class="n">output</span><span class="o">.</span><span class="n">fetchall</span><span class="p">())</span>
  12807. <span class="k">return</span> <span class="kc">None</span>
  12808. <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Top 10 Amenities:</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
  12809. <span class="n">top_ten_amenities_in_sf</span><span class="p">()</span>
  12810. </pre></div>
  12811. </div>
  12812. </div>
  12813. </div>
  12814. <div class="output_wrapper">
  12815. <div class="output">
  12816. <div class="output_area"><div class="prompt"></div>
  12817. <div class="output_subarea output_stream output_stdout output_text">
  12818. <pre>Top 10 Amenities:
  12819. [(&#34;b&#39;restaurant&#39;&#34;, 3063),
  12820. (&#34;b&#39;bench&#39;&#34;, 1357),
  12821. (&#34;b&#39;cafe&#39;&#34;, 1039),
  12822. (&#34;b&#39;post_box&#39;&#34;, 698),
  12823. (&#34;b&#39;place_of_worship&#39;&#34;, 689),
  12824. (&#34;b&#39;fast_food&#39;&#34;, 599),
  12825. (&#34;b&#39;bicycle_parking&#39;&#34;, 585),
  12826. (&#34;b&#39;school&#39;&#34;, 572),
  12827. (&#34;b&#39;drinking_water&#39;&#34;, 543),
  12828. (&#34;b&#39;toilets&#39;&#34;, 424),
  12829. (&#34;b&#39;bank&#39;&#34;, 372),
  12830. (&#34;b&#39;bar&#39;&#34;, 343),
  12831. (&#34;b&#39;fuel&#39;&#34;, 275),
  12832. (&#34;b&#39;parking&#39;&#34;, 274),
  12833. (&#34;b&#39;waste_basket&#39;&#34;, 239),
  12834. (&#34;b&#39;car_sharing&#39;&#34;, 223),
  12835. (&#34;b&#39;atm&#39;&#34;, 211),
  12836. (&#34;b&#39;pub&#39;&#34;, 207),
  12837. (&#34;b&#39;post_office&#39;&#34;, 164),
  12838. (&#34;b&#39;pharmacy&#39;&#34;, 151)]
  12839. </pre>
  12840. </div>
  12841. </div>
  12842. </div>
  12843. </div>
  12844. </div>
  12845. <div class="cell border-box-sizing text_cell rendered">
  12846. <div class="prompt input_prompt">
  12847. </div>
  12848. <div class="inner_cell">
  12849. <div class="text_cell_render border-box-sizing rendered_html">
  12850. <h3 id="Top-10-Cuisines-in-San-Francisco">Top 10 Cuisines in San Francisco<a class="anchor-link" href="#Top-10-Cuisines-in-San-Francisco">&#182;</a></h3>
  12851. </div>
  12852. </div>
  12853. </div>
  12854. <div class="cell border-box-sizing code_cell rendered">
  12855. <div class="input">
  12856. <div class="prompt input_prompt">In&nbsp;[107]:</div>
  12857. <div class="inner_cell">
  12858. <div class="input_area">
  12859. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">query</span> <span class="o">=</span> <span class="s2">&quot;SELECT value, COUNT(*) as num FROM ways_tags </span><span class="se">\</span>
  12860. <span class="s2"> WHERE key=</span><span class="se">\&quot;</span><span class="s2">b&#39;cuisine&#39;</span><span class="se">\&quot;</span><span class="s2"> </span><span class="se">\</span>
  12861. <span class="s2"> GROUP BY value </span><span class="se">\</span>
  12862. <span class="s2"> ORDER BY num DESC </span><span class="se">\</span>
  12863. <span class="s2"> LIMIT 10&quot;</span>
  12864. <span class="k">def</span> <span class="nf">cuisines_in_sf</span><span class="p">():</span>
  12865. <span class="n">output</span> <span class="o">=</span> <span class="n">cur</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="n">query</span><span class="p">)</span>
  12866. <span class="n">pprint</span><span class="p">(</span><span class="n">output</span><span class="o">.</span><span class="n">fetchall</span><span class="p">())</span>
  12867. <span class="k">return</span> <span class="kc">None</span>
  12868. <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Top 10 Cuisines in San Francisco:</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
  12869. <span class="n">cuisines_in_sf</span><span class="p">()</span>
  12870. </pre></div>
  12871. </div>
  12872. </div>
  12873. </div>
  12874. <div class="output_wrapper">
  12875. <div class="output">
  12876. <div class="output_area"><div class="prompt"></div>
  12877. <div class="output_subarea output_stream output_stdout output_text">
  12878. <pre>Top 10 Cuisines in San Francisco:
  12879. [(&#34;b&#39;burger&#39;&#34;, 77),
  12880. (&#34;b&#39;mexican&#39;&#34;, 51),
  12881. (&#34;b&#39;chinese&#39;&#34;, 30),
  12882. (&#34;b&#39;pizza&#39;&#34;, 29),
  12883. (&#34;b&#39;american&#39;&#34;, 23),
  12884. (&#34;b&#39;coffee_shop&#39;&#34;, 22),
  12885. (&#34;b&#39;japanese&#39;&#34;, 20),
  12886. (&#34;b&#39;italian&#39;&#34;, 19),
  12887. (&#34;b&#39;seafood&#39;&#34;, 13),
  12888. (&#34;b&#39;indian&#39;&#34;, 11)]
  12889. </pre>
  12890. </div>
  12891. </div>
  12892. </div>
  12893. </div>
  12894. </div>
  12895. <div class="cell border-box-sizing text_cell rendered">
  12896. <div class="prompt input_prompt">
  12897. </div>
  12898. <div class="inner_cell">
  12899. <div class="text_cell_render border-box-sizing rendered_html">
  12900. <p>San Francisco is known for its diverse culture and this reflects in the popularity of international cuisines.</p>
  12901. </div>
  12902. </div>
  12903. </div>
  12904. <div class="cell border-box-sizing text_cell rendered">
  12905. <div class="prompt input_prompt">
  12906. </div>
  12907. <div class="inner_cell">
  12908. <div class="text_cell_render border-box-sizing rendered_html">
  12909. <h3 id="Different-Types-of-Shops">Different Types of Shops<a class="anchor-link" href="#Different-Types-of-Shops">&#182;</a></h3>
  12910. </div>
  12911. </div>
  12912. </div>
  12913. <div class="cell border-box-sizing code_cell rendered">
  12914. <div class="input">
  12915. <div class="prompt input_prompt">In&nbsp;[115]:</div>
  12916. <div class="inner_cell">
  12917. <div class="input_area">
  12918. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">query</span> <span class="o">=</span> <span class="s2">&quot;SELECT value, COUNT(*) as num FROM nodes_tags </span><span class="se">\</span>
  12919. <span class="s2"> WHERE key=</span><span class="se">\&quot;</span><span class="s2">b&#39;shop&#39;</span><span class="se">\&quot;</span><span class="s2"> </span><span class="se">\</span>
  12920. <span class="s2"> GROUP BY value </span><span class="se">\</span>
  12921. <span class="s2"> ORDER BY num DESC </span><span class="se">\</span>
  12922. <span class="s2"> LIMIT 10&quot;</span>
  12923. <span class="k">def</span> <span class="nf">shops_in_sf</span><span class="p">():</span>
  12924. <span class="n">output</span> <span class="o">=</span> <span class="n">cur</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="n">query</span><span class="p">)</span>
  12925. <span class="n">pprint</span><span class="p">(</span><span class="n">output</span><span class="o">.</span><span class="n">fetchall</span><span class="p">())</span>
  12926. <span class="k">return</span> <span class="kc">None</span>
  12927. <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Different types of shops:</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
  12928. <span class="n">shops_in_sf</span><span class="p">()</span>
  12929. </pre></div>
  12930. </div>
  12931. </div>
  12932. </div>
  12933. <div class="output_wrapper">
  12934. <div class="output">
  12935. <div class="output_area"><div class="prompt"></div>
  12936. <div class="output_subarea output_stream output_stdout output_text">
  12937. <pre>Different types of shops:
  12938. [(&#34;b&#39;convenience&#39;&#34;, 393),
  12939. (&#34;b&#39;clothes&#39;&#34;, 378),
  12940. (&#34;b&#39;hairdresser&#39;&#34;, 349),
  12941. (&#34;b&#39;beauty&#39;&#34;, 284),
  12942. (&#34;b&#39;yes&#39;&#34;, 216),
  12943. (&#34;b&#39;supermarket&#39;&#34;, 207),
  12944. (&#34;b&#39;car_repair&#39;&#34;, 175),
  12945. (&#34;b&#39;bakery&#39;&#34;, 172),
  12946. (&#34;b&#39;laundry&#39;&#34;, 171),
  12947. (&#34;b&#39;dry_cleaning&#39;&#34;, 144)]
  12948. </pre>
  12949. </div>
  12950. </div>
  12951. </div>
  12952. </div>
  12953. </div>
  12954. <div class="cell border-box-sizing text_cell rendered">
  12955. <div class="prompt input_prompt">
  12956. </div>
  12957. <div class="inner_cell">
  12958. <div class="text_cell_render border-box-sizing rendered_html">
  12959. <h3 id="Popular-Cafes-in-San-Francisco">Popular Cafes in San Francisco<a class="anchor-link" href="#Popular-Cafes-in-San-Francisco">&#182;</a></h3>
  12960. </div>
  12961. </div>
  12962. </div>
  12963. <div class="cell border-box-sizing code_cell rendered">
  12964. <div class="input">
  12965. <div class="prompt input_prompt">In&nbsp;[118]:</div>
  12966. <div class="inner_cell">
  12967. <div class="input_area">
  12968. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">query</span> <span class="o">=</span> <span class="s2">&quot;SELECT nodes_tags.value, COUNT(*) as num </span><span class="se">\</span>
  12969. <span class="s2"> FROM nodes_tags </span><span class="se">\</span>
  12970. <span class="s2"> JOIN (SELECT DISTINCT(id) FROM nodes_tags WHERE value=</span><span class="se">\&quot;</span><span class="s2">b&#39;coffee_shop&#39;</span><span class="se">\&quot;</span><span class="s2">) AS cafes </span><span class="se">\</span>
  12971. <span class="s2"> ON nodes_tags.id = cafes.id </span><span class="se">\</span>
  12972. <span class="s2"> WHERE nodes_tags.key=</span><span class="se">\&quot;</span><span class="s2">b&#39;name&#39;</span><span class="se">\&quot;\</span>
  12973. <span class="s2"> GROUP BY nodes_tags.value </span><span class="se">\</span>
  12974. <span class="s2"> ORDER BY num DESC </span><span class="se">\</span>
  12975. <span class="s2"> LIMIT 10&quot;</span>
  12976. <span class="k">def</span> <span class="nf">most_popular_cafes</span><span class="p">():</span>
  12977. <span class="n">output</span> <span class="o">=</span> <span class="n">cur</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="n">query</span><span class="p">)</span>
  12978. <span class="n">pprint</span><span class="p">(</span><span class="n">output</span><span class="o">.</span><span class="n">fetchall</span><span class="p">())</span>
  12979. <span class="k">return</span> <span class="kc">None</span>
  12980. <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Most popular cafes in San Francisco: </span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
  12981. <span class="n">most_popular_cafes</span><span class="p">()</span>
  12982. </pre></div>
  12983. </div>
  12984. </div>
  12985. </div>
  12986. <div class="output_wrapper">
  12987. <div class="output">
  12988. <div class="output_area"><div class="prompt"></div>
  12989. <div class="output_subarea output_stream output_stdout output_text">
  12990. <pre>Most popular cafes in San Francisco:
  12991. [(&#34;b&#39;Starbucks&#39;&#34;, 53),
  12992. (&#39;b&#34;Peet\&#39;s Coffee &amp; Tea&#34;&#39;, 16),
  12993. (&#34;b&#39;Starbucks Coffee&#39;&#34;, 15),
  12994. (&#39;b&#34;Peet\&#39;s Coffee and Tea&#34;&#39;, 7),
  12995. (&#39;b&#34;Peet\&#39;s Coffee&#34;&#39;, 5),
  12996. (&#34;b&#39;Blue Bottle Coffee&#39;&#34;, 5),
  12997. (&#34;b&#39;Philz Coffee&#39;&#34;, 5),
  12998. (&#34;b&#39;Beanery&#39;&#34;, 3),
  12999. (&#34;b&#39;Highwire Coffee Roasters&#39;&#34;, 3),
  13000. (&#39;b&#34;Yali\&#39;s Cafe&#34;&#39;, 2)]
  13001. </pre>
  13002. </div>
  13003. </div>
  13004. </div>
  13005. </div>
  13006. </div>
  13007. <div class="cell border-box-sizing text_cell rendered">
  13008. <div class="prompt input_prompt">
  13009. </div>
  13010. <div class="inner_cell">
  13011. <div class="text_cell_render border-box-sizing rendered_html">
  13012. <p>It is not surprising that Starbucks in the most popular brand in the US. There are, however, some mistakes in the names. For example 'Starbuck' and 'Starbucks Coffee' are the same thing with different names. This is another potential data wrangling task (left out in this project).</p>
  13013. </div>
  13014. </div>
  13015. </div>
  13016. <div class="cell border-box-sizing text_cell rendered">
  13017. <div class="prompt input_prompt">
  13018. </div>
  13019. <div class="inner_cell">
  13020. <div class="text_cell_render border-box-sizing rendered_html">
  13021. <h2 id="Discussions-about-the-Data">Discussions about the Data<a class="anchor-link" href="#Discussions-about-the-Data">&#182;</a></h2><p>Data wrangling for this project has been a time-consuming and complicated due to many inconsistencies in the data. I could spot only a few of those problems and clean them up, but I am sure there are many issues that went unnoticed. The primary reason behind these inconsistencies is human error.</p>
  13022. <p>A lot of the issues related to the OpenStreetMap data can be prevented or corrected. For this, the following summary highlighting the issue and a proposed solution with its pros &amp; cons are displayed.</p>
  13023. <h4 id="1.-Empty-User-ID-Fields">1. Empty User ID Fields<a class="anchor-link" href="#1.-Empty-User-ID-Fields">&#182;</a></h4><p>This issue was noticed while creating the CSV files and trying to validate them against the correct schema. I had received an error citing that the <code>uid</code> field is empty. This was surprising as for a data made by multiple users; a <code>uid</code> is a highly important attribute.</p>
  13024. <ul>
  13025. <li><strong>Solution</strong>: It should be made a practice to make <code>uid</code> mandatory for contributors. <ul>
  13026. <li><strong>Benefits:</strong> <code>uid</code> can be then used a primary key.</li>
  13027. <li><strong>Anticipated Issue:</strong> This might decrease the number of contributions.</li>
  13028. </ul>
  13029. </li>
  13030. </ul>
  13031. <h4 id="2.-Invalid-Format-for-Postcodes">2. Invalid Format for Postcodes<a class="anchor-link" href="#2.-Invalid-Format-for-Postcodes">&#182;</a></h4><p>While auditing the postcodes, there were a lot of invalid entries in the dataset. The standard postcode format was in the form of a 5-digit code, with no letters or other characters; however, there were formats with the state abbreviation before the digit (still acceptable). There were a high number of entries in the format where the code was 6-digit long or shorter than 5-digits long or only 'CA.'</p>
  13032. <ul>
  13033. <li><strong>Solution:</strong> There should be some data validation before a user enters the data. <ul>
  13034. <li><strong>Benefits:</strong> Introduces standardization and reduces data auditing/cleaning process.</li>
  13035. <li><strong>Drawback:</strong> Users might take time to accustom to the standards that are being forced on them which can affect the rate of data-entry.<ul>
  13036. <li>The effect of this drawback can be reduced by a small-readable 'Read Me.'</li>
  13037. </ul>
  13038. </li>
  13039. </ul>
  13040. </li>
  13041. </ul>
  13042. <h3 id="Suggestions-for-Improving-Overall-Data-Quality">Suggestions for Improving Overall Data Quality<a class="anchor-link" href="#Suggestions-for-Improving-Overall-Data-Quality">&#182;</a></h3><h4 id="3.-Gamification">3. Gamification<a class="anchor-link" href="#3.-Gamification">&#182;</a></h4><p>Gamification refers to the application of typical elements of game-playing such as competition, scores, etc. The suggestion is to incorporate gamification into the usage of methods such as 'top contributors,' 'reward points' for users contributing to the OpenMapStreet Data.</p>
  13043. <ul>
  13044. <li><strong>Benefits:</strong> Increases the level of motivation for submitting more data. This motivation can also push users to adhere to standardization.</li>
  13045. <li><strong>Drawback:</strong> Non-rewarding points/statuses are weak. Rewards would require funds.</li>
  13046. </ul>
  13047. <p>The inspiration for the idea: <a href="https://www.facebook.com/editor/">https://www.facebook.com/editor/</a> - the competitive scoring system has often motivated me to add more to the data to stand higher rated than other people on my friend-list.</p>
  13048. <h4 id="4.-Pre-Cleaned-Data-on-OSM">4. Pre-Cleaned Data on OSM<a class="anchor-link" href="#4.-Pre-Cleaned-Data-on-OSM">&#182;</a></h4><p>The idea is to have scripts that can pre-clean the most frequent types of errors that are made by the users. e.g., some users might enter the pin code in an address field and not separate as a postal code. This data can be extracted to some extent using these scripts.</p>
  13049. <p>This can also be done using cross-validating/cross-referencing to other databases such as Google API.</p>
  13050. <ul>
  13051. <li><strong>Benefits:</strong> Reduces error in the data and reduces human validation.</li>
  13052. <li><strong>Drawback:</strong> Adds to the <em>computational requirements</em> (for running the scripts). <ul>
  13053. <li>It might also need the additional validation of data which can be done by confirming the change from the user who had initially entered the data. This, however, has to execute the script right after the data is entered as a user might not respond later.</li>
  13054. </ul>
  13055. </li>
  13056. </ul>
  13057. <h4 id="5.-Additional-Validation-of-Existing-Entries">5. Additional Validation of Existing Entries<a class="anchor-link" href="#5.-Additional-Validation-of-Existing-Entries">&#182;</a></h4><p>As noted in the query which finds 'Starbucks' to be the most popular restaurant in San Francisco, there were many spelling errors, and multiple entries were made for the same place. With techniques like matching two strings, users can contribute by answering 'yes/no' queries related to validation.</p>
  13058. <ul>
  13059. <li><strong>Benefits:</strong> Reduces redundancy in data.</li>
  13060. </ul>
  13061. <h4 id="6.-Improve-the-User-Interface">6. Improve the User Interface<a class="anchor-link" href="#6.-Improve-the-User-Interface">&#182;</a></h4><p>The OSM homepage is raw and functional but looks dated in comparison to most sites of the same scale. This might cause a lot of new users not to trust a site that looks unmaintained or hackish. Hence, some changes should be maintained on the website to make it look better (similar to <a href="https://www.facebook.com/editor/">https://www.facebook.com/editor/</a>).</p>
  13062. <ul>
  13063. <li><strong>Benefits:</strong> Improves site's usability.</li>
  13064. <li><strong>Drawback:</strong> Implementation is a tedious task. Also, severe changes might confuse existing contributors.</li>
  13065. </ul>
  13066. </div>
  13067. </div>
  13068. </div>
  13069. </div>
  13070. </div>
  13071. </body>
  13072. </html>