diff --git a/auto/gui.files.go b/auto/gui.files.go index c2f04e448..8ec36dc7d 100644 --- a/auto/gui.files.go +++ b/auto/gui.files.go @@ -18,7 +18,7 @@ func init() { bs, _ = ioutil.ReadAll(gr) Assets["angular.min.js"] = bs - bs, _ = hex.DecodeString("1f8b080000096e8800ffd41c5973db36fa3dbf0251d3924a64cae9ee7476ec389dd649bbde5c9e38c98beb074a8424c614a800606c8dabffbe1f0e92000152b49cb4a966da4838be1bdf81c3e3871f5996128e2634bf62981e204e0b3c42d39cf09414b8fcbdca0a26fe53bfd1c3f1bdf1c379964fe20c3d3840b33863302826f3228ba9fe2d06dd0b0af8c2384da73c38bc77ef734c115b93295fa4648e8eca19d1324f8a0c8741d5178cd0f9c5f0504e2868368901cc110a2866124e352e1284d23ccb300d83b3b2f598d30c20cc0af89de604850fd8345f01850f169caf86e8e61e828f80bda2f8f3b3980be0fb8755eb1cf3372fa049f05ab70ae431e58a72c962dd9767c99b95c0c5a0ef6603248a1e8556d048f0d4ecb53b67e9dc6d5fae4f9e099603ab95e4091640ce2f3c404e88908045b7eec794e6d4338f614c9e8b3e1713a804672e5914af728bc7f1189d817ec99ca1099ee514a3499e670c65797e092d9c636a63e45c0e065a64fb4d9a1ca0e065ca38260008d4061c4ec188a43ad129cd793ecd33a446a05f9204f4c03083817cbd02030d38bee6f04bab4759e86664007f155f9f6192bc98ac9801fe4dc1e7b950e65ba1ff97e932e5287c91fe3a66c31a362996134c3ba1bf0578313921c0e8e7383b3330a81e5476a1f0d690b5e5f881ebcedde19fc634869593bdc59f0a18640a07448640403093245246f590fef001c8f10296386e485e00ff2dcd3052bd4a01fd456f60f85dbaa05f08794ee24986130389ea42d097831bc0355c619e9d64bfcca72d3065cf2e20cf44fbafcac59a162e9a51dd6e82b3e6bf3f25a72e39aa05894effe40bdb0fcd8bf4ccbffcf4aa32c5f7fee42e4beebdcda880f64bc11718a2ca34963ef9bdc5f25680a7316357394dba811aa334e055ddd249edbb97e6e28206f4df77ef4ecf10783404887ae9ba14771577208e9c15d329c6094ec232ec884f3a43e17d1965cc564355294979383cb4bbc2e03b82397073297d7630144e3acec260912638688c766398f86c2c12ea88764b32ea89dd44b485cc9a948d2bb2df62f00daebcda89a5981794b431e917739b2c6f26f1f432a1f90a540df8c0b240d997783dc9639ae8cc66d322ea2e06abf039033e166270959c98b4c9042502806199f53c42c198ad61212e814626ac89b1b09e9cc43c6e32679bdda14fb10a229021e61b240f55aa10faa9d3c04b0599f3eaef6f261f212a452033169a49c33082b5f43c9e2e0ce069e228c62b00998cfc2cc01c05d080c9141adebf3d39ce97ab9c80031090fa8ac71083847b9e26178e249a5c99dffd341a595e6f4d89d491e457805d24a190dd5d85c391358227d0198a317b55b23a4463f4787f7fdf1e9926dafd941f23b785f95e33480944e63af76df4e605afbaad7ee11441e22825a84dc0d2c389ce6811b3375704f2b815a67c2d15e5192f3e65d171e8f46e9c164ed72d500452a1d28ab957315f44cbf83adc1fa1ffa0874a1372c409f975cd317b977308eb7b9e74dd192544cf93a14ba185b9125c3b6a48aefae0b686b522df20887fd3050a719b681da1ecf765c133d0d586654e8f8e1ae85c08b68199135453631dfa8cd32eaa9a6e6cdb62550551ef75da2ca3fce81a659f705790e1f18259ee5e3437639bc82df299ed95c438f04b4750991524c1b39440f2e70f7d90b0904b58e32430a38f85c1050dba81a20156f17d81a215f219cf572bc0ec852ceb79ae7c4c203cb3078decaf6797c3e5bfe7fb1711cfdf03027a0caa8160f34875805e268cd3f0f1f0d0e6434f3f4203511e423230407ffe89ead69324c383262faa1bcc6c80c2414da5d84538c5740af1239e63ad984768f0fd70e0e5568bc460a819dc57f9710609e7d7d7774a66f957507622ea31fac5746d292c484135ad98f53a0cdab2b81a0c537a6f85b4a2e932a66b2f248ff86c15da26f1d5f50851bc8d618f74d5869b8c0712fe7e3fa8960657530e5cc10888465e3311cb4aa118fb0618341c36c52aa3dd2ccb217f04347ea72836b03c4e51341fcfaccc5e502b9c3c8cf304473d217a0dff9e3cbbb06d4e0c6ccaa66c8f44ce98618956081144e10b9aa5a59c10242412342212c26287b37d9a764e28140ba5891602d0f7c326c40e87133c4b99e6bd72c41eb19e4c054bff04a1e697b795a7ae9b6e23b425a492ac5d5aaea3fe66c5e5fac65e32731de15699997ed11599d808fa8b25a6099342d3fb505d7efde70e7d1b22ffdb58683881ce18d5ceca07bc550d82189b526968c6d9420b997ac4674c19c0f6d1f735c593a510783fb4e3dea26788b58940ec48c7665770b01405933c4a314f560042c6b1b9fd21e82dd1925a9448413db44a0dc1a2861b6598ccf902d22df4b885e32a39e86054438334b9d5185ec74b975f8f35e85445f7f6cc4f0683b6f4a4d233a06f996c0ee9e0d1b69832f18782f9277f06c117297bed63bca962a22ca1312d6c28cc904b5fa18485aab6e4a461a788b6c9a78f707a4b0627293736f8fd92b14e2acbf35798be0eadb3c4480f322be930f8ae3cbeebbb5f2a77c787de4c3bfe8cb7123b1e43527989112b28fc2f5f6275703c95e7468921edf07ec50bfe54c4190b6b3e47c8cfd9d05be3378e521b7bbacec0125aa40e4b748cb27ca33bea8cd388adb29487c14848325e191ee7daf038d71187200e268b9a7bce6a5b639533671312d0810afe77f6e675c4e4c16c3a6be8763842370b1c27e0670fd04d709c13a089efbd839510801ae31590a60e54c61f594e828db5115a7deb368c81380f18b4ed8cc8adfc56b55bc706f60146cbe9c36db7ed5bc4a7219bc718db4ed81bacb145c113e11b76e1cd4f5409d2bb5be53bd83026ec269dcdeefc0b1fe40dc18d9054822d2805dbd3331e44f81a4c31096f36a3322eb8a4081420bee7d7b096bc62b4869de16ca6b6d01bd990950cb9fcd68445d50128ac5b745405acaa39fa98a7049632f2d88d18fc1c28c969f400d6c82995445b5148a8ac14db4e7ed5d640eaa64096e0015b9a7c324e0fd922bf0afcb0e2640b309f166f4c7901f9c99ac44ba07fd343930d77eb55a57fcc5f2fe804432a8fb70adbc1e89c94cab312bf48b61f75fae4d02fadf5e624e5fab85f2f107329a8de1e9e428e6cd261ece5ca232491a5a96324eba0d0bff92efbe419410374a3a307b37760b8c9b4ab80ee04e26f89dbcd1805a957a7d996d93378b9114a728247283dbc2da3bd4cbf2a473cb2774655bebb5933800564f1148763340682034057b5ec952d3a91726056cecae7d9774cd42a244276ae68d4f1a93c5b43297a622f55553842c7a347beed2373ec797a6116f7b6503a4ebdcbc935c787ce504db91d59cbcf84e2f8b2c7b6923a0406482d4b5a71bc2ad82274a37d8b6b8b584e7958eee8c414efea81be859598f305a6259d6df9a2b92fd3eace7b7b7391eeb8febba5c6eef41029e4684d8fbe835593868ac0300f1db3273d77b14ce6db0dd4c3719c65dd7a287da26151b5f69a8e451bb5b3f5600c330a7ce6cfa4c561b3a8177b9a863a9c766da36dfb0147efd225464f9dbbc05bad639ae1983e2fcfc23b3343f382b145e7b94db5de2edb438f2f24595b03a69c379694b4e4ae339a422991ad5db5c2a23649ad5391db1bafdc0c35e397df84992c1ce0ff55609a568e7ad4dccd137d436fc55d1d40d396b27a95f73198729c7d3dcbb7492302f85be8bd5d35a767d4d51c834c599c5d495580c3dc749577069032a173ee8d39199d67ae85f4bc742017ee95c89d2b4c21b79e2587a0e80b941c508f39ead8aa078ff877aec4fe7a9645b2dac9b37a9ab1cabf44b26ad1ec24ab1a8b93ac8a59cea82afd38bf70fb6cdb34e2996b9e957752270ea258f242f1258b7e74a45c08470a973f861a4ca86076a316d08126a4b921d98cafe2a32a643fbdae8a541d570e56b2d0bfda523c217926ac3195a26e736cdf54cea784d2bd8c7b99e397d936d03ab274e0f1a6d659de1d95f04fa993c5ed7743473d2e6aeb63d3dbde2bd4d3bc170bb760bce5d5f0ea9a93f7fab731423f3f933778dd92610b515a4bb724aa7a09d74a54db61ca96e3165dce5bdbb4ade5a803eb759da1fbc6fbead1d6ed2bbd3c5ec5abb07d0db5029057609ad7ee7ba9622ceeb5eda68f6a814a5330dbb6d609e6eb114816ca776aa1cdd048de65df8771929d8a3443a4613c4293924ae3d03696c7a7ea4e637d6c8b7ef801e90113ef80e6d1b806f3440f1ffaaaa5bdc74ee9a6a73dd5d3cafcd980aa22b684ebecc934e0aa79356435f5693515a463c84686c516d9c4d1b394429ccde95aa2ae7ef5c75e03786a02706910869c99ef6997c68bd1cc93b85b85d7f29c96615e93a18da5bcfde0229481656962cc8c14abb1a9bc3491652a8b598a8de2a1c174a616b021519b88cc2622c1d37429ce97c190a188292c5a92749e72269e914dcbfc466844bccd74ee6b6af0fb56d9a500940f07d4554af935cbe7ea4b3c91a887e22d40d5f378bfac1705e6c6bb03a011ea6a05d9664d91b9319f53ebdd8380c43022b61f5197d4ebd9c62b1eb22af808c90bc61e166577c4f3dfd26b9c849500ad59b503914ec0256892127197ad3f3dcd452e1ba51a2a47d07683781fb55e4356509e82cbfaf1dfe8a1f98f937fcb91e323cfd0431fd66e29fd381437d303f47b7a1bd2fad07407625ef523a6938a3ba07fe1476f5e46a63928bbb4073127d866674b2cfe58c1376467f2a6b6f14f87349b43ef6267b7a1ac0f497731b35eb474127107ec975fc1c8d80242ce8e366611efbd12d68234ceaee2357b5dbeaafffaf6ed7dda6092bf8de2e9a2209727cfbe30b13e52cd7b8ef295444c6518565296b730c37174f378f4d3663c6f96e072f056b0ba490ed695c85eb573dd6928a760647fbb0cd429e8f8fc8ff11f7f5c8cbd22100fb1147b7a37ffc911fa578b6d18faf7dac7208aa2b178aaa5003228d8716802dffb71a8a438180fdaa498c8c435fd8cc3209705a1dab9ec92a5b9ced49fad3940c17130329ae5febdfebb385533a73161d3ac489c1e59eb1c341fa4a9db7200fb487f35506c0cb07809e8b8f8bb034f941e45617334107f2e6180c87c4f3ecd391ad865efb9861941aa3b78fa642c673ed518dce56688a920e9a742ee4d1942ea92d1a702268b3fd6317f252831b8c852727950c3906218219c2d4728e69c42963ce5346b9a87688b1e80a219a62c2a085ba4335ed50fe1e7145f7d8833ff9ea57c26d66737acfc8cc7e80a23586345969080ab5414a4ed1dac2803c97e10a352be6e484beea41e3a53f52b8d9a36b5c3563172d1411c5fa8bd538405230cc519c571b2de893cb9bdd64edf761a528614c02f2a1da745db58259fc626b3732ca6cdf9ff000000ffff010000ffffb0b69304c84a0000") + bs, _ = hex.DecodeString("1f8b080000096e8800ffd41c6b73db36f27b7e05a2a62595c894d3bbe9dc58713aad93f67c7979e2245f5c7fa04448624c910a08c6d6b8faefb70b80244080146d276daa993616b058ec0bfbc043e3871ff3244e3999b2ec32a7ec807056d0119965298fd38296dfd74991e37ff23b7938be377eb848b26998900707641e26390085e9a24842a6be23d03daf803f72cee219f726f7ee7d0e19c937e98c2fe374410ecb11c12a8b8a84fa5ed5e78dc8d9f9702206142c998680e690788ce6024f051720a12c4b12ca7cefb46c3de22c010cf302bec7594afc07f92c5b03850f969caf87e4fa1e810fe25e33faf959c811f9fea46a5d50fee6053421af752b4e1e322e29172c0225d829b12329291513e60070bd9d343ae7f1c26e5f6d8e9f21679ed19a6611452467e70e24c729326a90a7fa296319738ccb294d9f639f3d13489e2636598caeb3920bd13e1e93535063bac8c994ce3346c934cb929c245976012d9c5366cec8b900065a44fb751c1d10ef659c739a0222d00e7038035b115a23272ce3d92c4b888420bf4411883ba73900f2cd1aecd0e3f48ac337a5056988db9186fc5578754ad3e8c5749d6be8df147c91a1cedea29a5fc6ab9813ff45fceb381fd6b8d36235a5ac13fb5bc017a6c72930fa394c4eb519640f29bb887f63ccca72dcc855e7edf19f842c840592bca59f0a00d2850322232020189946424635487ffc80e468092b9936248fc87f8b134a64af54407fd16b33fc2e3ccd2f69fa3c0da7098db449641781be0c563badf1a2797692fd329bb5e0143db741798aedbf4a4faa5b383693ba5d47678c7f7f929ed8e4c816829deec1e7a61f5a14f1a97bf9a955a58beffdf15d96dc7b9351c4f64bc1971482c72c14aef7bdc1f24e8427619e5f662cea46aa4129c4ebbaa593da772ff5c5050de4bfefde9d9c12f0680426eaa5eb52dc55788170715acc66944634f2cbe8829f784efcfb2298e8ad9aaae234e6fe706276f9de7729e5c0cd85f0d9de109d7498f8de328ea8d780b643157eb6060975e0ba2119f5c06e225c91d124656b8becb7107c832daf766219e5054bdb98748bb94d96d7d3707611b16c0daa86f9c0b240d9177433cd4216a90466db22ea2e06abf039073e96085ce5203a6d220f0900a15f26378f8837ce37b0105740638ed694e77e3d380a79d864ce34bb894bb112239081e33592873255f0ddd429e4a582f471f5df6fa61f212a0520b3dcd7938661006be979385b6ac8e3c8528c53002219f919d11c7ad040d31934bc7f7b7c94add6590a0e0031f5158f260681f72c8ece2d4934b9d2ff76d3a86579bd3585d9639a5dc2ec986b427677e90f4706048fa0d34798bd2a271d923179bcbfbf6f42c691723fe5474b6161bcd30ce21422739de2367ab38257dd463f3a4590388953d22660e1e1b0335886f99bcb14f2b835657c2314e580c74f595b4cacdeadd5c2d9a6050b4e8a2aad987b15f265b00aaffcfd11f90f79283521208ed35f379ce6ef320e617dcf91ae5b50287a1e0d6d0a8d992bc1b54f0dc9559fb90db0d6c9b704e2df6c497cda265a4b28fb7d597000dada30cce9d161633a1b836960fa00d9d458872ee3348baaa61bdbb5586541d47b9d36cb28f774dbc9bd66a904191e2f72c3dd637333b6616e91cd4daf8470e0970ea1322bd288cee314923f77e8838425bd80359e7a7af43166b051836ea06880557c1fa768c57ccab3f51a66766216653b973ec643cfec9846f4d7a34b70f1efd9fe79c0b3f730013b02d540b079243b402fd39c33fff17062f2a1861f92019687900c0cc89f7f92baf5384ae8a0c98bec06331b107f5053899b052794cd207e840baa14f3880cbe1f0e9cdc2a91680c3583fb3a3b4a20e1fcfafa8ed379f615941d613dc6be98ae0d857931a8a67566b50ebdb62cae46934bbdb7625ab37815b28d1393437ca60a4d93f8ea7a8428dec6b043ba725f4dc403817fbf1f564383eb1907ae0002a291d34c7059c929c62e008d864953ac22dacd930cf24798c6ed147103cbe114b1f9686e64f6482d3a79807304473520780dff1e3f3b376d0e019bb229db03cc19132aa6452182285c41b3b494e394a044bc464422143732db8729e7447c5c28cd6921007d3f6c62ec7038deb33857bc578ed821d6e319b2f44f106a76715379aabae926425b412a99b74bcb76d4dfacb86cdfd84b66b623dc2933dd2fda22c38da0bf58628a302134b50fd5e5d77feed0b726f2bf8d858613e88c51edac7ca03bd580c498940a43d3ce165ac854109f29cb01b78bbeaf299e2486c0fba17dee1d7a86581be1c496744c76918315164ce228453f59010c09a7faf607d25b4e9bd6a22412ebc42835904585374868bae04b48b7c8e3168eabe4a08351850dd2e45663781dae6c7e1dd6a05215d5db333f190cdad2934acf307dcb601da48347d362cac41f0ae69fdc19045fc6f96b17e34d15a7d2121ac3fc86c234b9f4158a5fc86a4b0c1a768a68977cfa08a7b7646814736d83df2d99f118f2b40b4a42829b9f98a3c0d84dd56d1c28060ae4cdbaacb3cb73591ce39bb00a482fbd5db870d7be130f00e8387cefbbf2ccb0ef26add8921f3ad3fbf033ed2da1bc60f0bf6c45e5a1f44c1c5645a61f946d80ea7ec512fd548449ee16cea853be432865ad682e3f3bd083cc5a509bd28ce7be2279e8dce030a9edd6538376e70e624d5e2f5c92d87644d5017763a7bd9583401e61a9ccc1885836d4296741be4e62ee7b2334b570adc5812b2d0e5c051c522b7024a4791220379bd6596e6d0dc37460a3ff3b7df33ac8c571793c6f08613822d74b1a4610fd0ec8b57794a54013df7b07fec9033b0fd7409a3ce61a7fccb3d4db1adbd3d55fdd2b6780a73483b6fd2a71c0d2ba2e8cc31cf358a9e54ce8a687292de25398bd36d7e2b8f7d0602d5f163c428f7d1bdedc4495289d7b88aee3266dc0eda4b3bd3dff18199c8951235128d1168c81eda9110f027a05a618f9d7db5119ad6d52700a10dff32b584b4e311a60a73499cb838d468e6aa4a836bf356141752c0deb961c566944d51c7ccce214963271d80d023f074a32163c803572c204d1466e802a2bc576abc0636a20b6135343f0305b1c7dd2ce74f36576e9b97185d10e642e2d5eebf202f2a34d1aae80fe6d0f4d36dcad53956e98bf5ed01185028bee14b635a3757e2d4eb0dc22d97d00ed9243bf62c3992996ebe37ebd40f4a5207b7b780a01d9a4438bb8e2600f131b79b8671cdfba8f44449f38b969a06e74f460f60e0c3799b615d09d40fc2d71bb19a32037ed34dbb2a6012f37225196d21189273765b497e95745a243f61654e5bb9b951c584012cea83f266320d883e9aa96bdb245255216ceca59b93cfb2d13b56a12949d2d1a79a82d4e3c494c9e984b5596f3d0f1e8916b534f873d8bcff52d1753281d7711cac135c7130b54516e46d6f2336534bce8b1d9278fe60153cb92961caf8b7ce9dbd1bec5b50579c6b85feeb3858cded6037d0b2b31e34bca4a3adbf2457db7acd59df7f6e698eed8febb65e7a3d343c490a3353dfa2dac3a6da8080c7362997dda736f5167bedd401d1c8749d2ad87d2276a16556bafe95894515b1b421a98b6ed92bb3369bc0280f5624fd39057066cdb68db14a2c1bb7845c953eb86f64eeb98253464cfcb1b0a9d99a17eeddba0f3cca45a6d62ee91c7e782ac9d01538c1b0b4a5a72d7398ba1944836b65a6151eba4d6a9c8cd8d576ccde8f1cb6dc2b9281ce0ff55609a558e7ad4dc63c5bea1b3e2aeae05b096b27a9df5319812cebc34e7dac5c200fe167a6f56cda91175359743a68c278a4215e030b75de59d86a44ce8acdb7c5646e7186b4c7a563a9073fba2eaad2b4c945bcf920329fa022507d463963a76eac121fe5b57627f3dcb98ac76f22cdfc5acb32f91ac1a345bc9aa9ac54a5671940555a51f67e7769f699b5a3cb3cdb3f24ef21c088b25271657b2e89e2e2d17c2a19ccb1d4335266430bb960be84011d2dc906cc657fcc80ad94dafad2259c795c05216ea5b5b8a8792cfd11a6321ea36c7f64de57c5228ddcbb897397e996d03a52343070e6f6a9cb0de5109ff943a19df24683aea717d5e1d66dff4b6a71ae6bceeb963c61b5ed82f9daafb52be06a11e058a7bd576c9b08328a5a51b1255bd4f6c25aaed3065c7718b2ae78d6ddad672d4c2f5baced05df0ae7ab475fb4a2d8f57e1da6f5f43ad08c4c5a4e663885eaa18e36dc3dbe9a35aa0c214f4b69d7582fea6079285f2f5a06f3234122f0cf6014eb05391a689d40f47645a52a91da587e2505bde34ad0fd3c90f3f1005307502342f2c28344f14f8d0552ded3db64a3735eca91a56e6cf1a5619b1055e6b4fa681578eab31cba14faba1201d4d36222cb6c8260c9ec50ce26cc63662eaea5bffd96b044f7504360d68c889fe9879a5bde34d1c89bb5178adce5819e61519ca58ca3b29f68422b0acf419132dc56a6c2aaff4c91299c5ac70a378a8319dc805ac49d42422318988e82c5ee1b1381832143185414b142f629ee3e3be5999dfa046f0c5ac758b56a1df37ca2e89a07cce212fb88a3f936c21ff08a762ea21bed0a87a1eef97f522cedc780d0234425d2d319bac4932b7fa5b76b57be0a5214084e60bf6927a355a7b5b95ae0b3e22e2dab78345d11df0ecb7f88a467e25406354ed408413b0099ac629de30ec4f4f73918b46a186ca11b4ddebde27ad97c32596a7e0b27efc3779a8ff63e5df02727ce8009db866ed96d28f437c2fe091dfe39b90d687a63b10f3aa1f319d54dc61fa17eee9f52be22c036597f68063bc5d76b6a2f84b11df909d89fbf3da3f1dd26c82dec5ce6e42591f92ee6266bd68e924e20eb35f7c0523cb9710726e696306f1ce8b7a2d9386c965b8c95f97bf75f0f5eddbf9e044277f17c5b365915e1c3ffbc2c4ba48d56f9f8ab72b211361584a59dc8df5c7c1f5e3d14fdbf1a259820be09d685593005695c85eb573dd69282760647fbb0ce429e8f8ec8ff11f7f9c8f9d22c0e771923db59bffe490fcabc53634fd3bed631004c1181fd049843914ecd4d791effd3894521c8c076d528c44e21a7fa6be97898250ee5c76c9525f67f237830e8877e48db466b17faf7e94a86ae62c4cf3595244568fa8750e9acf04e56d39c07da8fed4a6d86a68e90aa6e3f86b104fa41eb1b0391ce08f580c48bad8130fa60e0766d97ba6700690ea0e9e3e198b914fd50cf672d3c454a4f1a742ec4d6942ea92d1a70206e34fa82c5e21251a17499c5e1cd4388418468426ab110939679025cf384b9ae6816dc10350744e591e1469be8ce7bcaa1ffccf31bdfc1026ee3d4bf178afcf6e58f9198fc92525b0c68a244a3d2e535190b61358520692fd805031df34a425765227d650f576a6a64deeb0558c9c7710c79772ef945064242761c268186d6e459ed85e6ba76f370d714e24c22f2a1dab45d958259fc626b3752ca6ccf9ff000000ffff010000ffff50674cb0454c0000") gr, _ = gzip.NewReader(bytes.NewBuffer(bs)) bs, _ = ioutil.ReadAll(gr) Assets["app.js"] = bs @@ -63,7 +63,7 @@ func init() { bs, _ = ioutil.ReadAll(gr) Assets["favicon.png"] = bs - bs, _ = hex.DecodeString("1f8b080000096e8800ffec5de973dc36b2ffeebf02e6eef3514fe4c847f66dc9a3a9722467e3daf8282b7e795ba97cc09098212292a00150f23c59fbb76f37c0fb98e18c478ab29b0fb186381ae84677e3d7608399de3f7d77f2e33fdebf22a18ea3d9bd29fe21114d96c70e4b1c922c5d9aa6c78e5a25be0e79b23445be48b41451c4e4b17356d49c681939c48fa852c70e368a043d779024a3c1ec1e21d398694afc904ac5f4b193e985fb57a7aa08b54e5df629e317c7ceffb91f5fba27224ea9e6f3880159189125d0ebf5ab63162c59ad5f426376ec5c7076990aa96b4d2f79a0c3e3805d709fb9e6e180f0846b4e2357f93462c74fbcc30ea180295ff2547391d468759ad14c8742765a443c392792452031a8d67ea609f7915228d9e2d859d00b7cf45210e4ec1e76d05c476c560a917c215757f04bbd15017b0b233d7a7c7d3d9dd856e50096d85c08adb4a4e9c4576a523e79314f3c2871f279e855c454c898b63334cf44af526042b3cf1a3b9b1a42e62258912bf393909406014cc89d0bad457c44fee730fdfc22af5b00d3ee82c63c5a1d11e77b165d30cd7d4adeb28c3907a42c38202f2548fb80289a285731c91796c4f53df3278bfe3bfca61c31a672c913578bf4883cf1be6171a3ad87937563910895529f95bd1a7379c392481c903722a13efc3d118912a09007c4391199e44cc2142f61862599d61014940db53b608962c14c1bd5d57286aad3ad45790dd72e6041866b4bcac15acabdb525e5a094c25cc880492bbb44242dbe22b1142d311f91c317cd95ae951832ee37d582a74271b48823d429b0c98bf6005c693711ee3c03a7a0cba14cb151381715ce4eadd511188bb23829fb045ca51185b5e409e83a73e791f0cf8b79806a5b4b067d2cf4a3541cc997a106d5a92ae6d43f5f4a9125018e22244c7f397ff4f4d95f0ec8d3e787f8cf93c72f9a129434e0993a22cf6acc17f279927e26cfabf242904fa1f869517cdde60bd42cf1020a8ea3a5e7115bc06c0f2b456fb0f7e4b02a369a4f23be44f923932f36cbaa1070e188bbf2c5b520f7798c5e9326bac712880e9b6676c9ac889f1f1ef6360f3adec332f9147c47cf50e08d26463b609398d85de2ded4a8be718df75d97fc28525845495cd79625f4a2dc62e805d6d83fa8f9c5cf802d6816c14e005b1433edf8921a7f6edddc34e0251174df144427f33a7490b060cd31dcb9a449e0cca63c5e163568520e51d2470febe293fbe4e95f8d632776e3719e3d05b76f24667f4f66a4f4f35315d3282a88853c00db763f83236e8e6f7d5ea6198cfe05840555b3de0dc2909be52d0a4eb2a8c647219dda4fa34b15e3112f9a0752a481b84cca3a534ff37de74f4ebb1d487fb9c46d1af53c7fa853791570fd2099abf4c5745e4a9e4adc92a69339fc471b0355f32e07885992356663e63b2be7646149c4fd73d89a83e0034bc5a3c740bd2ecc65b44a43dc7e49f9cb0d035c572bb6072c8619be0c0282ddc1e109b9c2a94d2730d2e8a1715d460d0dec5f322b82d6f0486270e05234fc8207a8b75b4c8fc13a9c31ad4101d5a839fa62d99a5fd17d4bc1f0f172f9247d68da1e361497e4f5a91db5aee47b918b0a338d6a366a7e62b1e84cce76df522692294da51ea92c0b681eb606fe6029f48d3b9d6451f5dcacadeaa6131097818513f009d6c50e7847db1e7df2775c2a0dcef5f28088245a1140ba9709e10b92309f2945e5ea05c967462ea94c10d6e6fe3b270f32e0208cfb407fc197af13748ba55301c2954f6a4c2672e300bc6ccd0fd4eb412c2c22e65f371fb6e9bfda6d5ddc724cab69f8ac5963f0b6332bb878cb58c002d8a39ecd4a890d93c51dacedabd2d98f212396df4c9add8884549139630011e8050bc81c62854468427dc057145cbe576d1724ce50e4f974b4281bc116cd40ee974dd2de7492369561e3a41153d676c1bc19cc49c34c6db4601fca759aeb84c07fae8acd9f7cd7252940c07c67b9195db7d3684db4ae2711a372c13f3b3d6bd52c683cd61ef29f1d8d67cb2c02c4010adad2e786e616f4b063b591182c4c1e214c414cf4b8a2d0abe57fe93501bb5488685387f000c59ad3e74c8d308bab2bec7082158ff097f7fa14d08359277864545b8a002709fefd01a68c2b36ce88eaad06eca989261a6001f88e68aa0a0c91023ac0a8fa4f0d0e0b0082853933c00270d0a0bccd9e4f722aa75c32dfacd3176222f7f75487d7d743646b4a3eb314ce34d5595daadd6daa0d73d09d6c34d262951bec36855b888e9432dcd23fd59bd86013ec2f85d819e2bcb647b048bfde98b4e2d3fc5969c953c4adadfe16df13d22c95ed222c0c37fb0a4ddb00a56672881780480fe5a001b01b0b69240cfd82ce2427dd59ee3ef1858830dc14294b5a0c7c676a769979a9c4b7c1802f6200e56df88a3b562845c2ffdf6c443b70d1634837cdca3212f336e0fc1b94d1a811096cc54a0c1836fa39e7e2176f69c87dc723a6c0c3d0e892aed4db2c9e33797d4d16587c40063a7dbbd2a6d39c271497f6db9b174828e2b63c7e10fe1ec51121b52da561fafc06c2f02391052ee2fb48d076b4f80e409b5818a0f675124900626e2910ecf21bc803cf985a5278431580c75db5a3dbce4c210f120cbb1f0064bc8358c399fd83a9be00b0d3ed7eabdf5b31d8edc625a64240332e8d3ace12cb03f213d7e19e0456a0b8a480701e86ddaaa7cbd555521c202d7862a3f3c4b406a78b5eb721cc3fc32460e003322cc4af112e947461011422906817b641d2102c0380d91fa8a492c7602bcec0f988393a42d18d095560f7f679d45a563cedea3fa8d83520698624796c816b558b2a0cdb7b0a2b9296d20cc513e5496b5df5a0efc962890af873714ef9e8f12f3b4411a3e288f1918465aa0821f0c9b54600b3cd151f2389ed36c7ba1de5b40c64a16db51d8bf587e6b501f283b8ef30ea1fc2fd034e752cf6ef1c11bc7c433e6a1ead059f6bb664b5826d2cf6e0cfa61db57f87f84a76a83a572d8e4ede7fdc07477e9abd67d2073b68a10b784c006e4b1a1d3db9befeafdb62752da43acd8bc907aad9d61cf3649ee2f2c50c34d1bfbe86a7dbe52a4b7b78fa98eece91c87487a5de7d750d4fc5469eeb03d07f9924224b7cf6eeefe4fe31c9c08a0106f418ee68eef1d56f28643b9a2dc621674c5e0c85b5e3914e6bc337ef554d0795f978f8ecace3d499bd33ef4987c0ca20f180264b264bdaf707882f161ba8df9a27691f8afc2f936a17ff7161fbf507e1033079772c770368cee2da7c63fecd00dd888359334773305bc188215c2574c8a401f63b9dcefe36b86a789dc7bc1c6df4eec55ce3f4c876cdcf98ea80ade79de2ad83b8ff380487c96cddf7dfc084dada53a1acb16f63516f69dfdffd247403433d7afabb0768403e613e8a44fddc34905fbc7f3ff0b68edb7d00bb3b8011902de8bb9396fe0116369cfedcab7edb539f49f3ed3316bd925248d59f62c1b0cebec7f522962c754866e4f02ee65abc159afbecab722cea70091847a854e31f17d464c95d5d41a9f7238f19d81e601976e47c7f14c747103d5c5f1f15b97480321692b3248856166a6127236aa3e1379f5f516934e94fb5a8abaf497ab08a302e89a9bdefbefbfbed66563474bacc332af33cb1f85b93793e2efdb3c83ec91f61922cc853d7492dbbf25e57d13bf99f4359937553b0295dcd2451036672cf8277198e26c0a2f2452615f3cafb135ec2f4c4999d652926c39209f94ec82cee66708d1a42c1184baec36cee010899f8348ac34939d4443258308527b93f80962b4d3ed8821d475bc3900ff49742ae2681f033044379beed69fdf16698e44a65c8e2b7595f52e21e4680c502967d464e7ad232d7a7d299637a8864843cb79e88c422a051a9ce65bc60db18fb2deddf365dd080f5e8ada974034e23b1ecf5e0b6417e3b65c08bdb36e899c1f268c4401fcdbfc57947c3c0c3e7cd6ebd21e326b7c33e43656cb4c1557c99f4c777272568b27b5bc3cf84cf07dc4c1f6fdd90296d0e5565d829067e1053ebe68c20f03d20b05c186833c215a124950240494c2e4151c80a3482bc06d94a583a52813caf41fc03e0ba15d07e10b228e2e98b061fe9686fd9709b36abcca4c299bcc05e7d926583bba04d3c59881bd0a5769a604bf485046e457940432a997be4bd71b3241451b0efb52f728d0756bec864be0beb5e1cc9ee7fe9eb29d8cd1529a483770723a6d9adac7e95c80bc31be7e1ed6bb95f9f0e2c340f3eedb05558626eb49fd5be81956d25ff373a9b17deaf01ca69bee0becda17e100754852fea4782d54be7e6a9e0d7ad7fbdc1259834c17f1090b7ae259a477cd3d612cfd555bc82c5fc42fc304bcef13470702a78cb280fdfb04fb9ca96aabde445a0910b88259e271442507b11e9939c748771265b30dd13a58cca012f231273340c2831e625d15119dfb1b868679c9d4402a16a2728d9d6848cda60783f08bf8ad8ffced91368015eae3876eee314c1d5bcfa0ca16c675b2f4cadba3b54d7f416a95194f010a387d40e4e7321649c5fc4c39f4e7e7d1aadf5955993b687a8d1c40e455a8a09754de9d543f0b7ae81d30ff1166341c84bccb99af7679e5cd08807e4c183beda804bbd6abf8fc04081ce19acb9907672607733eb704e01ef635da7074f52bcb291bf13ecc8b562146db8782d50b367c35e7e95bee5469cda056dc3bb49fd031790497ceb8213cb8f11f196f7a78c4b1680f5981975e6593f0e1a58fc351ecd9c627686ad7b989ea339731a93d30600945aa7b529d5af67b5ec4a7ef9d2b792a9345cc00cf16e4d62170b11bcf193c440771fa803a05fe01d603c0fc2eb328ed1ee19c9ef9481d3b2b62c6cb579bb66c879e40c2500e81f3ae33e833f81a8305f07000ff108421801a27fec0d333660c0b39f42000cf6962c4417788507873c20e78ca538d398c3a03aa49a4c593cc34dcd34984ee0c95e0702bea03f0b9a13571ce4a085f0b64ed5dbb014c6e2bc42dbd6595773416009f05a13cc761ed1e47c605ead13b5fe03df7edfb0d69429266b212e586fc569040b1d9accfb63e77b1117f90ab9e122953eb31d65a7d4e68bf51b67af999cd91b7589d2b02f607e71ee890a0df6a3cc24dc2af37ea87ddb6b5fb2a3f6551c1eaebc2c7e6e21c5600562e3be110b20023cd20ffa3c18393e2616e7a0a8ab4177957739d7332db794fb2be338f07d1e258aa554e235bcbe1bd99573e4e9111ee415e980e5f4f1f4606dc75c3c4547705b299366b7a499167846e21373dc065ab8421dc085cfc98f58f1e90469dd02f42bdfa9d4aed3d20b965ff76d2e7ecd6114bbf42e67d56740bfefb4face41d57246fddb2ffad062633863d1c2d93073732a672f58e21dc2bac8c10a20da1d7dc71a3697ac9d6b786a4874b9d8fe742a159bf136b6fa77c0dbf53b0f7b41dd4304f787bd31b97d2fd8bb22e4e1cf16f6eea91d81bd6d53bc7addb8c6b71681975ce126d2dc83f2f70faae5883acb515cb31c80e71bf69d0ff64a4e85c54996f04f19e6e3a462bb2da8dda87d15a625d1121ff7d455f8f80c6fb4028ff6e8047cc8c29e6d93f276edca236f724c89e50a448ab0d27ea3c4820d93e73584de364cd362472b1463f90621cafa1a9798d6b6faaa81ea2075480dfba670e35075ac29e1ede375c664eb479a13366e1814168c3529d3b96954ff9c9c566655188e6db7a3e99417574744b35f6b3556744376636b2bcbc167c4664d6329222e732511f1224c94498ffcc4c15e407b7cc90c72e40bc2f1409829f3650786eec623a8779a832ccdb7f0a88fc635c563cfd93fa713f3b7085b334ccba3f8f6a9fc9a1c5aae6d5c66f71b5a18869be21d0cc732bdd1746a4ad7319e14e574fb915efd4d7ec8fcf3b9f8dc77c8d0abea3575b71a5a5218d0d2ea3261fdbb0ef6ee634f94dd6f5fe3cf4aec6d503c6f482540731f156a21458c5a0340509118300c6a627560a10ecc5744da0d8a03047b7660e2f2cb5c5315de0929f55be922d0c89dfe4d8596f9053393583324a9beb56d2744afcd86deebe22b40c7b804662093ca57e4f1399d4b60ed6ce4fde8c3999981fde00b4e0297cddc2c25e670a8668cf88a7a8710b13a2a1c3ab36ad0eb1e605553e83bc6c28937501dbe35351e0ef58fd7dc0937cc2d99d1ebb9c9044f72f881ce73658cc2c737aca0bef861c20b668ee80c8280c8d90fc1d5825f8d56656f043296c2bd4189dc76889c7fa4ac894c6b3ef78f101991f95786c4a3bf0477932171f1d1b4a197f679f59d8b87fb8254527d016ecfe1e9f0ae524f53edabefdc6eee6fd602e2c546928b1fbd55b912bdfb45ed454aded043edc403cc87086f1f22a0ecd424e6a6e5c35e92cd5d11105dde99077865a67a361f25468837b89995db192a548bd03a585e35c5e7fcce51b1ff996f8a79ef529bbf5ed1fc65f05cb547150696acbedff64a742e44b45e6afd75f8aebd25b775b259b3fdefc6fee05ebf4636fd30a0b7f026d47e99f1b39bd3fcdeba14a6762964f03bb68bbf7d7cfd9f6a13dbb07e93f670e75e7b6cf575d5df2d6a1b8d7ff0a7fd9cbecd5002b8869f50349fa8ffd5a22d533b6b37fcf553c6e4ca7dea1d7acf36b7aebe84ff6bfb43f86bfbd1346d35005ecd7d240037e6ff87f02f000000ffff010000ffff4f4ad8f020610000") + bs, _ = hex.DecodeString("1f8b080000096e8800ffec5de973dc36b2ffeebf02e6eef3514fe4c847f66dc9a3a9722467e3daf8282b7e795ba97cc09098212292a00150f23c59fbb76f37c0fb98e18c478ab29b0fb186381ae84677e3d7608399de3f7d77f2e33fdebf22a18ea3d9bd29fe21114d96c70e4b1c922c5d9aa6c78e5a25be0e79b23445be48b41451c4e4b17356d49c681939c48fa852c70e368a043d779024a3c1ec1e21d398694afc904ac5f4b193e985fb57a7aa08b54e5df629e317c7ceffb91f5fba27224ea9e6f3880159189125d0ebf5ab63162c59ad5f426376ec5c7076990aa96b4d2f79a0c3e3805d709fb9e6e180f0846b4e2357f93462c74fbcc30ea180295ff2547391d468759ad14c8742765a443c392792452031a8d67ea609f7915228d9e2d859d00b7cf45210e4ec1e76d05c476c560a917c215757f04bbd15017b0b233d7a7c7d3d9dd856e50096d85c08adb4a4e9c4576a523e79314f3c2871f279e855c454c898b63334cf44af526042b3cf1a3b9b1a42e62258912bf393909406014cc89d0bad457c44fee730fdfc22af5b00d3ee82c63c5a1d11e77b165d30cd7d4adeb28c3907a42c38202f2548fb80289a285731c91796c4f53df3278bfe3bfca61c31a672c913578bf4883cf1be6171a3ad87937563910895529f95bd1a7379c392481c903722a13efc3d118912a09007c4391199e44cc2142f61862599d61014940db53b608962c14c1bd5d57286aad3ad45790dd72e6041866b4bcac15acabdb525e5a094c25cc880492bbb44242dbe22b1142d311f91c317cd95ae951832ee37d582a74271b48823d429b0c98bf6005c693711ee3c03a7a0cba14cb151381715ce4eadd511188bb23829fb045ca51185b5e409e83a73e791f0cf8b79806a5b4b067d2cf4a3541cc997a106d5a92ae6d43f5f4a9125018e22244c7f397ff4f4d95f0ec8d3e787f8cf93c72f9a129434e0993a22cf6acc17f279927e26cfabf242904fa1f869517cdde60bd42cf1020a8ea3a5e7115bc06c0f2b456fb0f7e4b02a369a4f23be44f923932f36cbaa1070e188bbf2c5b520f7798c5e9326bac712880e9b6676c9ac889f1f1ef6360f3adec332f9147c47cf50e08d26463b609398d85de2ded4a8be718df75d97fc28525845495cd79625f4a2dc62e805d6d83fa8f9c5cf802d6816c14e005b1433edf8921a7f6edddc34e0251174df144427f33a7490b060cd31dcb9a449e0cca63c5e163568520e51d2470febe293fbe4e95f8d632776e3719e3d05b76f24667f4f66a4f4f35315d3282a88853c00db763f83236e8e6f7d5ea6198cfe05840555b3de0dc2909be52d0a4eb2a8c647219dda4fa34b15e3112f9a0752a481b84cca3a534ff37de74f4ebb1d487fb9c46d1af53c7fa853791570fd2099abf4c5745e4a9e4adc92a69339fc471b0355f32e07885992356663e63b2be7646149c4fd73d89a83e0034bc5a3c740bd2ecc65b44a43dc7e49f9cb0d035c572bb6072c8619be0c0282ddc1e109b9c2a94d2730d2e8a1715d460d0dec5f322b82d6f0486270e05234fc8207a8b75b4c8fc13a9c31ad4101d5a839fa62d99a5fd17d4bc1f0f172f9247d68da1e361497e4f5a91db5aee47b918b0a338d6a366a7e62b1e84cce76df522692294da51ea92c0b681eb606fe6029f48d3b9d6451f5dcacadeaa6131097818513f009d6c50e7847db1e7df2775c2a0dcef5f28088245a1140ba9709e10b92309f2945e5ea05c967462ea94c10d6e6fe3b270f32e0208cfb407fc197af13748ba55301c2954f6a4c2672e300bc6ccd0fd4eb412c2c22e65f371fb6e9bfda6d5ddc724cab69f8ac5963f0b6332bb878cb58c002d8a39ecd4a890d93c51dacedabd2d98f212396df4c9add8884549139630011e8050bc81c62854468427dc057145cbe576d1724ce50e4f974b4281bc116cd40ee974dd2de7492369561e3a41153d676c1bc19cc49c34c6db4601fca759aeb84c07fae8acd9f7cd7252940c07c67b9195db7d3684db4ae2711a372c13f3b3d6bd52c683cd61ef29f1d8d67cb2c02c4010adad2e786e616f4b063b591182c4c1e214c414cf4b8a2d0abe57fe93501bb5488685387f000c59ad3e74c8d308bab2bec7082158ff097f7fa14d08359277864545b8a002709fefd01a68c2b36ce88eaad06eca989261a6001f88e68aa0a0c91023ac0a8fa4f0d0e0b0082853933c00270d0a0bccd9e4f722aa75c32dfacd3176222f7f75487d7d743646b4a3eb314ce34d5595daadd6daa0d73d09d6c34d262951bec36855b888e9432dcd23fd59bd86013ec2f85d819e2bcb647b048bfde98b4e2d3fc5969c953c4adadfe16df13d22c95ed222c0c37fb0a4ddb00a56672881780480fe5a001b01b0b69240cfd82ce2427dd59ee3ef1858830dc14294b5a0c7c676a769979a9c4b7c1802f6200e56df88a3b562845c2ffdf6c443b70d1634837cdca3212f336e0fc1b94d1a811096cc54a0c1836fa39e7e2176f69c87dc723a6c0c3d0e892aed4db2c9e33797d4d16587c40063a7dbbd2a6d39c271497f6db9b174828e2b63c7e10fe1ec51121b52da561fafc06c2f02391052ee2fb48d076b4f80e409b5818a0f675124900626e2910ecf21bc803cf985a5278431580c75db5a3dbce4c210f120cbb1f0064bc8358c399fd83a9be00b0d3ed7eabdf5b31d8edc625a64240332e8d3ace12cb03f213d7e19e0456a0b8a480701e86ddaaa7cbd555521c202d7862a3f3c4b406a78b5eb721cc3fc32460e003322cc4af112e947461011422906817b641d2102c0380d91fa8a492c7602bcec0f988393a42d18d095560f7f679d45a563cedea3fa8d83520698624796c816b558b2a0cdb7b0a2b9296d20cc513e5496b5df5a0efc962890af873714ef9e8f12f3b4411a3e288f1918465aa0821f0c9b54600b3cd151f2389ed36c7ba1de5b40c64a16db51d8bf587e6b501f283b8ef30ea1fc2fd034e752cf6ef1c11bc7c433e6a1ead059f6bb664b5826d2cf6e0cfa61db57f87f84a76a83a572d8e4ede7fdc07477e9abd67d2073b68a10b784c006e4b1a1d3db9befeafdb62752da43acd8bc907aad9d61cf3649ee2f2c50c34d1bfbe86a7dbe52a4b7b78fa98eece91c87487a5de7d750d4fc5469eeb03d07f9924224b7cf6eeefe4fe31c9c08a0106f418ee68eef1d56f28643b9a2dc621674c5e0c85b5e3914e6bc337ef554d0795f978f8ecace3d499bd33ef4987c0ca20f180264b264bdaf707882f161ba8df9a27691f8afc2f936a17ff7161fbf507e1033079772c770368cee2da7c63fecd00dd888359334773305bc188215c2574c8a401f63b9dcefe36b86a789dc7bc1c6df4eec55ce3f4c876cdcf98ea80ade79de2ad83b8ff380487c96cddf7dfc084dada53a1acb16f63516f69dfdffd247403433d7afabb0768403e613e8a44fddc34905fbc7f3ff0b68edb7d00bb3b8011902de8bb9396fe0116369cfedcab7edb539f49f3ed3316bd925248d59f62c1b0cebec7f522962c754866e4f02ee65abc159afbecab722cea70091847a854e31f17d464c95d5d41a9f7238f19d81e601976e47c7f14c747103d5c5f1f15b97480321692b3248856166a6127236aa3e1379f5f516934e94fb5a8abaf497ab08a302e89a9bdefbefbfbed66563474bacc332af33cb1f85b93793e2efdb3c83ec91f61922cc853d7492dbbf25e57d13bf99f4359937553b0295dcd2451036672cf8277198e26c0a2f2452615f3cafb135ec2f4c4999d652926c39209f94ec82cee66708d1a42c1184baec36cee010899f8348ac34939d4443258308527b93f80962b4d3ed8821d475bc3900ff49742ae2681f033044379beed69fdf16698e44a65c8e2b7595f52e21e4680c502967d464e7ad232d7a7d299637a8864843cb79e88c422a051a9ce65bc60db18fb2deddf365dd080f5e8ada974034e23b1ecf5e0b6417e3b65c08bdb36e899c1f268c4401fcdbfc57947c3c0c3e7cd6ebd21e326b7c33e43656cb4c1557c99f4c777272568b27b5bc3cf84cf07dc4c1f6fdd90296d0e5565d829067e1053ebe68c20f03d20b05c186833c215a124950240494c2e4151c80a3482bc06d94a583a52813caf41fc03e0ba15d07e10b228e2e98b061fe9686fd9709b36abcca4c299bcc05e7d926583bba04d3c59881bd0a5769a604bf485046e457940432a997be4bd71b3241451b0efb52f728d0756bec864be0beb5e1cc9ee7fe9eb29d8cd1529a483770723a6d9adac7e95c80bc31be7e1ed6bb95f9f0e2c340f3eedb05558626eb49fd5be81956d25ff373a9b17deaf01ca69bee0becda17e100754852fea4782d54be7e6a9e0d7ad7fbdc1259834c17f1090b7ae259a477cd3d612cfd555bc82c5fc42fc304bcef13470702a78cb280fdfb04fb9ca96aabde445a0910b88259e271442507b11e9939c748771265b30dd13a58cca012f231273340c2831e625d15119dfb1b868679c9d4402a16a2728d9d6848cda60783f08bf8ad8ffced91368015eae3876eee314c1d5bcfa0ca16c675b2f4cadba3b54d7f416a95194f010a387d40e4e7321649c5fc4c39f4e7e7d1aadf5955993b687a8d1c40e455a8a09754de9d543f0b7ae81d30ff1166341c84bccb99af7679e5cd08807e4c183beda804bbd6abf8fc04081ce19acb9907672607733eb704e01ef635da7074f52bcb291bf13ecc8b562146db8782d50b367c35e7e95bee5469cda056dc3bb49fd031790497ceb8213cb8f11f196f7a78c4b1680f5981975e6593f0e1a58fc351ecd9c627686ad7b989ea339731a93d30600945aa7b529d5af67b5ec4a7ef9d2b792a9345cc00cf16e4d62170b11bcf193c440771fa803a05fe01d603c0fc2eb328ed1ee19c9ef9481d3b2b62c6cb579bb66c879e40c2500e81f3ae33e833f81a8305f07000ff108421801a27fec0d333660c0b39f42000cf6962c4417788507873c20e78ca538d398c3a03aa49a4c593cc34dcd34984ee0c95e0702bea03f0b9a13571ce4a085f0b64ed5dbb014c6e2bc42dbd6595773416009f05a13cc761ed1e47c605ead13b5fe03df7edfb0d69429266b212e586fc569040b1d9accfb63e77b1117f90ab9e122953eb31d65a7d4e68bf51b67af999cd91b7589d2b02f607e71ee890a0df6a3cc24dc2af37ea87ddb6b5fb2a3f6551c1eaebc2c7e6e21c5600562e3be110b20023cd20ffa3c18393e2616e7a0a8ab4177957739d7332db794fb2be338f07d1e258aa554e235bcbe1bd99573e4e9111ee415e980e5f4f1f4606dc75c3c4547705b299366b7a499167846e21373dc065ab8421dc085cfc98f58f1e90469dd02f42bdfa9d4aed3d20b965ff76d2e7ecd6114bbf42e67d56740bfefb4face41d57246fddb2ffad062633863d1c2d93073732a672f58e21dc2bac8c10a20da1d7dc71a3697ac9d6b786a4874b9d8fe742a159bf136b6fa77c0dbf53b0f7b41dd4304f787bd31b97d2fd8bb22e4e1cf16f6eea91d81bd6d53bc7addb8c6b71681975ce126d2dc83f2f70faae5883acb515cb31c80e71bf69d0ff64a4e85c54996f04f19e6e3a462bb2da8dda87d15a625d1121ff7d455f8f80c6fb4028ff6e8047cc8c29e6d93f276edca236f724c89e50a448ab0d27ea3c4820d93e73584de364cd362472b1463f90621cafa1a9798d6b6faaa81ea2075480dfba670e35075ac29e1ede375c664eb479a13366e1814168c3529d3b96954ff9c9c566655188e6db7a3e99417574744b35f6b3556744376636b2bcbc167c4664d6329222e732511f1224c94498ffcc4c15e407b7cc90c72e40bc2f1409829f3650786eec623a8779a832ccdb7f0a88fc635c563cfd93fa713f3b7085b334ccba3f8f6a9fc9a1c5aae6d5c66f71b5a18869be21d0cc732bdd1746a4ad7319e14e574fb915efd4d7ec8fcf3b9f8dc77c8d0abea3575b71a5a5218d0d2ea3261fdbb0ef6ee634f94dd6f5fe3cf4aec6d503c6f482540731f156a21458c5a0340509118300c6a627560a10ecc5744da0d8a03047b7660e2f2cb5c5315de0929f55be922d0c89dfe4d8596f9053393583324a9beb56d2744afcd86deebe22b40c7b804662093ca57e4f1399d4b60ed6ce4fde8c3999981fde00b4e0297cddc2c25e670a8668cf88a7a8710b13a2a1c3ab36ad0eb1e605553e83bc6c28937501dbe35351e0ef58fd7dc0937cc2d99d1ebb9c9044f72f881ce73658cc2c737aca0bef861c20b668ee80c8280c8d90fc1d5825f8d56656f043296c2bd4189dc76889c7fa4ac894c6b3ef78f101991f95786c4a3bf0477932171f1d1b4a197f679f59d8b87fb8254527d016ecfe1e9f0ae524f53edabefdc6eee6fd602e2c546928b1fbd55b912bdfb45ed454aded043edc403cc87086f1f22a0ecd424e6a6e5c35e92cd5d11105dde99077865a67a361f25468837b89995db192a548bd03a585e35c5e7fcce51b1ff996f8a79989a060ddea5368dbd22fdcbe0f16a8f460cac5c7ddbed15ec5c8868bdf0faebf0957b4b7ceb44b406057c95140677fe3522ea0705bd85376104cb8c9fdd9c1df4d6a530351070f0fbb792bf7d7cfd1f6e21db48e026ade3cebd12d9eacbabbf5b44371a1be14ffba97d9bbd04500e3faf683e5fffab4562a676d66ef8eba78cc995fbd43bf49e6d6e5d7d25ffd7f647f2d7f6a369da6a00bc9abb4a007cccff2be15f000000ffff010000fffffff571603c610000") gr, _ = gzip.NewReader(bytes.NewBuffer(bs)) bs, _ = ioutil.ReadAll(gr) Assets["index.html"] = bs diff --git a/gui/app.js b/gui/app.js index 0f94f3821..8c73e0b89 100644 --- a/gui/app.js +++ b/gui/app.js @@ -10,7 +10,6 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { var prevDate = 0; var getOK = true; var restarting = false; - var oldOptions = {}; $scope.connections = {}; $scope.config = {}; @@ -255,13 +254,20 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { }; $scope.editSettings = function () { - oldOptions = angular.copy($scope.config.Options); + // Make a working copy + $scope.config.workingOptions = angular.copy($scope.config.Options); + $scope.config.workingGUI = angular.copy($scope.config.GUI); $('#settings').modal({backdrop: 'static', keyboard: true}); } $scope.saveSettings = function () { // Make sure something changed - if(! angular.equals(oldOptions, $scope.config.Options)){ + var changed = ! angular.equals($scope.config.Options, $scope.config.workingOptions) || + ! angular.equals($scope.config.GUI, $scope.config.workingGUI); + if(changed){ + $scope.config.Options = angular.copy($scope.config.workingOptions); + $scope.config.GUI = angular.copy($scope.config.workingGUI); + $scope.configInSync = false; $scope.config.Options.ListenAddress = $scope.config.Options.ListenStr.split(',').map(function (x) { return x.trim(); }); $http.post(urlbase + '/config', JSON.stringify($scope.config), {headers: {'Content-Type': 'application/json'}}); diff --git a/gui/index.html b/gui/index.html index 1dc1ac0e0..11fa62dc9 100644 --- a/gui/index.html +++ b/gui/index.html @@ -515,11 +515,11 @@