From d07f71aca3f76c6634b270bf7a78705a0247bf2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=85kre=20Solberg?= <andreas.solberg@uninett.no> Date: Mon, 11 Apr 2011 07:38:44 +0000 Subject: [PATCH] General update to DiscoJuice. Fixing some bugs, improvements to two level discovery protcoll. git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@2804 44740490-163a-0410-bde0-09ae8108e29a --- modules/discojuice/lib/EmbedHelper.php | 32 +++-- .../www/discojuice/discojuice.control.js | 116 +++++++++++------- .../www/discojuice/discojuice.misc.js | 2 +- .../www/discojuice/discojuice.ui.js | 6 +- .../discojuiceDiscoveryResponse.html | 5 +- .../discojuice/www/discojuice/idpdiscovery.js | 2 +- .../discojuice/www/discojuice/logos/ntnu.png | Bin 5150 -> 2308 bytes .../discojuice/www/discojuice/logos/uio.png | Bin 5613 -> 5872 bytes .../www/discojuice/logos/uninett.png | Bin 5933 -> 4720 bytes 9 files changed, 100 insertions(+), 63 deletions(-) diff --git a/modules/discojuice/lib/EmbedHelper.php b/modules/discojuice/lib/EmbedHelper.php index c372e376a..20fd63ab5 100644 --- a/modules/discojuice/lib/EmbedHelper.php +++ b/modules/discojuice/lib/EmbedHelper.php @@ -7,27 +7,34 @@ class sspmod_discojuice_EmbedHelper { public static function head($includeJQuery = TRUE) { - $version = '0.1'; + $version = '0.1-' . rand(1000, 9999); $config = SimpleSAML_Configuration::getInstance(); $djconfig = SimpleSAML_Configuration::getOptionalConfig('discojuiceembed.php'); if ($includeJQuery) { - echo '<!-- JQuery -->'; - echo '<script type="text/javascript" language="javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/jquery-1.4.3.min.js') . '"></script> - <script type="text/javascript" language="javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/jquery-ui-1.8.5.custom.min.js') . '"></script> + echo ' +<!-- JQuery (Required for DiscoJuice) --> + <script type="text/javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/jquery-1.4.3.min.js') . '"></script> + <script type="text/javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/jquery-ui-1.8.5.custom.min.js') . '"></script> - <link rel="stylesheet" type="text/css" href="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/css/custom/jquery-ui-1.8.5.custom.css') . '" />'; + <link rel="stylesheet" type="text/css" href="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/css/custom/jquery-ui-1.8.5.custom.css') . '" /> + +'; + } - echo '<!-- DiscoJuice --> - <script type="text/javascript" language="javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/discojuice.misc.js?v=' . $version) . '"></script> - <script type="text/javascript" language="javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/discojuice.ui.js?v=' . $version) . '"></script> - <script type="text/javascript" language="javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/discojuice.control.js?v=' . $version) . '"></script> + echo ' +<!-- DiscoJuice (version identifier: ' . $version . ' ) --> + <script type="text/javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/discojuice.misc.js?v=' . $version) . '"></script> + <script type="text/javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/discojuice.ui.js?v=' . $version) . '"></script> + <script type="text/javascript" src="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/discojuice.control.js?v=' . $version) . '"></script> - <link rel="stylesheet" type="text/css" href="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/css/discojuice.css?v=' . $version) . '" />'; + <link rel="stylesheet" type="text/css" href="' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/css/discojuice.css?v=' . $version) . '" /> + +'; $options = $djconfig->getValue('discojuice.options'); @@ -39,7 +46,10 @@ class sspmod_discojuice_EmbedHelper { echo 'var target = "' . $target . '";' . "\n\n"; echo 'options.countryAPI = "' . SimpleSAML_Module::getModuleURL('discojuice/country.php'). '"; ' . "\n"; - echo 'options.metadata = "' . SimpleSAML_Module::getModuleURL('discojuice/feed.php'). '"; ' . "\n"; + + if (empty($options['metadata'])) { + echo 'options.metadata = "' . SimpleSAML_Module::getModuleURL('discojuice/feed.php'). '"; ' . "\n"; + } if (!empty($options['disco'])) { echo 'options.disco.url = "' . SimpleSAML_Module::getModuleURL('discojuice/discojuice/discojuiceDiscoveryResponse.html?'). '"; ' . "\n"; diff --git a/modules/discojuice/www/discojuice/discojuice.control.js b/modules/discojuice/www/discojuice/discojuice.control.js index d32b59b5e..113ae267e 100644 --- a/modules/discojuice/www/discojuice/discojuice.control.js +++ b/modules/discojuice/www/discojuice/discojuice.control.js @@ -1,11 +1,13 @@ /* * DiscoJuice - * Work is based upon mock up made by the Kantara ULX group. + * Work is based upon mock up made by the Kantara ULX group. * * Author: Andreas Ă…kre Solberg, UNINETT, andreas.solberg@uninett.no * Licence undecided. Awaiting alignment with the licence of the origin Kantara mockup. */ -if (typeof DiscoJuice == "undefined") var DiscoJuice = {}; +if (typeof DiscoJuice === "undefined") { + var DiscoJuice = {}; +} DiscoJuice.Control = { @@ -13,7 +15,7 @@ DiscoJuice.Control = { "parent" : DiscoJuice, // Reference to the UI object... - "ui": null, + "ui": null, "data": null, // Set filter values to filter the result. @@ -30,11 +32,15 @@ DiscoJuice.Control = { */ "load": function() { var that = this; - if (this.data) return; + if (this.data) { + return; + } var metadataurl = this.parent.Utils.options.get('metadata'); this.parent.Utils.log('metadataurl is ' + metadataurl); - if (!metadataurl) return; + if (!metadataurl) { + return; + } $.getJSON(metadataurl, function(data) { that.data = data; @@ -44,7 +50,9 @@ DiscoJuice.Control = { }, "postLoad": function() { - if (!this.data) return; + if (!this.data) { + return; + } // Iterate through entities, and update title from DisplayNames to support Shibboleth integration. for(i = 0; i < this.data.length; i++) { @@ -83,7 +91,7 @@ DiscoJuice.Control = { */ "setWeight": function(entityID, weight) { for(i = 0; i < this.data.length; i++) { - if (this.data[i].entityID == entityID) { + if (this.data[i].entityID === entityID) { if (isNaN(this.data[i].weight)) this.data[i].weight = 0; this.data[i].weight += weight; this.parent.Utils.log('COOKIE Setting weight to ' + this.data[i].weight); @@ -92,7 +100,7 @@ DiscoJuice.Control = { }, "discoResponse": function(entityID, sender) { - this.parent.Utils.log('DiscoResponse Received from [' + sender + ']'); + this.parent.Utils.log('DiscoResponse Received from [' + sender + ']'); this.setWeight(entityID, -100); this.prepareData(); }, @@ -107,13 +115,13 @@ DiscoJuice.Control = { this.data[i].distanceweight = (2 * Math.log(this.data[i].distance + 1)) - 10; } } -// for(i = 0; i < this.data.length; i++) { -// if (this.data[i].distance) { -// console.log('Distance for [' + this.data[i].title + '] ' + this.data[i].distance); -// } else { -// console.log('Distance for [' + this.data[i].title + '] NA'); -// } -// } +// for(i = 0; i < this.data.length; i++) { +// if (this.data[i].distance) { +// console.log('Distance for [' + this.data[i].title + '] ' + this.data[i].distance); +// } else { +// console.log('Distance for [' + this.data[i].title + '] NA'); +// } +// } this.showdistance = true; this.prepareData(); }, @@ -174,17 +182,19 @@ DiscoJuice.Control = { "prepareData": function(showall) { - var showall = (showall ? true : false); + showall = (showall ? true : false); this.parent.Utils.log('DiscoJuice.Control prepareData()'); var hits, i, current, search; var someleft = false; - var term = this.getTerm(); - var categories = this.getCategories(); + var term = this.getTerm(); + var categories = this.getCategories(); - if (!this.data) return; + if (!this.data) { + return; + } /* * Sort data by weight... @@ -217,35 +227,41 @@ DiscoJuice.Control = { if (term) { search = this.parent.Utils.searchMatch(current,term); - if (search === false && current.weight > -50) continue; + if (search === false && current.weight > -50) { + continue; + } } else { search = null; } if (categories && categories.country) { - if (!current.country) continue; - if (current.country !== '_all_' && categories.country !== current.country && current.weight > -50) continue; + if (!current.country) { + continue; + } + if (current.country !== '_all_' && categories.country !== current.country && current.weight > -50) { + continue; + } } -// if (categories && categories.type) { -// if (!current.ctype && current.weight > -50) { -// // DiscoJuice.log(current); -// continue; -// } -// // DiscoJuice.log(current.title + ' category ' + current.ctype); -// if (categories.type !== current.ctype && current.weight > -50) continue; -// } +// if (categories && categories.type) { +// if (!current.ctype && current.weight > -50) { +// // DiscoJuice.log(current); +// continue; +// } +// // DiscoJuice.log(current.title + ' category ' + current.ctype); +// if (categories.type !== current.ctype && current.weight > -50) continue; +// } - if (++hits > this.maxhits) {Â + if (++hits > this.maxhits) { someleft = true; break; } - // DiscoJuice.log('Accept: ' + current.title); + // DiscoJuice.log('Accept: ' + current.title); var countrydef = null; if (current.country) { var cname = (this.parent.Constants.Countries[current.country] ? this.parent.Constants.Countries[current.country] : current.country); - if (cname !== '_all_') { + if (cname !== '_all_') { var cflag = (this.parent.Constants.Flags[current.country] ? this.parent.Constants.Flags[current.country] : undefined); countrydef = {'country': cname, 'flag': cflag}; } @@ -265,7 +281,7 @@ DiscoJuice.Control = { "selectProvider": function(entityID) { - // console.log('entityid: ' + entityID); + // console.log('entityid: ' + entityID); var callback; var that = this; @@ -278,7 +294,7 @@ DiscoJuice.Control = { var entity = null; for(i = 0; i < this.data.length; i++) { - if (this.data[i].entityID == entityID) { + if (this.data[i].entityID === entityID) { entity = this.data[i]; } } @@ -305,7 +321,9 @@ DiscoJuice.Control = { "discoReadSetup": function() { var settings = this.parent.Utils.options.get('disco'); - if (!settings) return; + if (!settings) { + return; + } var html = ''; var returnurl = settings.url; @@ -314,7 +332,9 @@ DiscoJuice.Control = { var i; var currentStore; - if (!stores) return; + if (!stores) { + return; + } for(i = 0; i < stores.length; i++) { currentStore = stores[i]; @@ -332,8 +352,12 @@ DiscoJuice.Control = { "discoWrite": function(e) { var settings = this.parent.Utils.options.get('disco'); - if (!settings) return false; - if (!settings.writableStore) return false; + if (!settings) { + return false; + } + if (!settings.writableStore) { + return false; + } var html = ''; var returnurl = settings.url; @@ -362,7 +386,9 @@ DiscoJuice.Control = { minLength: 0, source: function( request, response ) { var term = request.term; - if (term.length === 1) return; + if (term.length === 1) { + return; + } // that.resetCategories(); that.prepareData(); } @@ -455,7 +481,7 @@ DiscoJuice.Control = { $.getJSON(countryapi, function(data) { // DiscoJuice.log(data); - if (data.status == 'ok' && data.country) { + if (data.status === 'ok' && data.country) { that.parent.Utils.createCookie(data.country, 'Country2'); that.setCountry(data.country); that.parent.Utils.log('DiscoJuice getCountry() : Country lookup succeeded: ' + data.country); @@ -480,8 +506,7 @@ DiscoJuice.Control = { //this.ui.popup.find("select.discojuice_filterTypeSelect").val() this.ui.popup.find("select.discojuice_filterCountrySelect").val('all'); }, - - + "getCategories": function () { var filters = {}; var type, country; @@ -507,7 +532,8 @@ DiscoJuice.Control = { "resetTerm": function() { //this.ui.popup.find("select.discojuice_filterTypeSelect").val() this.ui.popup.find("input.discojuice_search").val(''); - }, + } + +}; -}; \ No newline at end of file diff --git a/modules/discojuice/www/discojuice/discojuice.misc.js b/modules/discojuice/www/discojuice/discojuice.misc.js index da89a947e..f85eacad3 100644 --- a/modules/discojuice/www/discojuice/discojuice.misc.js +++ b/modules/discojuice/www/discojuice/discojuice.misc.js @@ -66,7 +66,7 @@ DiscoJuice.Constants = { 'CH': 'ch.png', 'TR': 'tr.png', 'GB': 'gb.png', - 'US': 'us.png', + 'US': 'us.png' } }; diff --git a/modules/discojuice/www/discojuice/discojuice.ui.js b/modules/discojuice/www/discojuice/discojuice.ui.js index 4b97b49c6..f092a3c0d 100644 --- a/modules/discojuice/www/discojuice/discojuice.ui.js +++ b/modules/discojuice/www/discojuice/discojuice.ui.js @@ -191,7 +191,7 @@ DiscoJuice.UI = { '</div>' + '</div>' + - '<div id="locatemediv">' + + '<div id="discojuice_locatemediv" style="display: none">' + '<div class="locatemebefore">' + '<p style="margin-top: 10px"><a id="locateme" href="">' + '<img style="float: left; margin-right: 5px; margin-top: -10px" src="' + imgpath + 'target.png" alt="locate me..." />' + @@ -242,7 +242,9 @@ DiscoJuice.UI = { }); - if (this.parent.Utils.options.get('location', false) && navigator.geolocation) { + if (this.parent.Utils.options.get('location', false) && !!navigator.geolocation) { + this.popup.find("div#discojuice_locatemediv").show(); + var that = this; $("#locateme").click(function(event) { var imgpath = that.parent.Utils.options.get('discoPath', '') + 'images/'; diff --git a/modules/discojuice/www/discojuice/discojuiceDiscoveryResponse.html b/modules/discojuice/www/discojuice/discojuiceDiscoveryResponse.html index 655549765..561b9bb7a 100644 --- a/modules/discojuice/www/discojuice/discojuiceDiscoveryResponse.html +++ b/modules/discojuice/www/discojuice/discojuiceDiscoveryResponse.html @@ -29,10 +29,9 @@ function receive() { })(); var sender = parseURL(document.referrer); - if (urlParams.entityID) { - window.parent.DiscoJuice.Utils.log('ResponseLocation: Response from discovery service [' + sender + ']: ' + urlParams.entityID); - window.parent.DiscoJuice.Control.discoResponse(urlParams.entityID, sender); + window.parent.DiscoJuice.Utils.log('ResponseLocation: Response from discovery service [' + sender + ']: ' + urlParams.entityID + ' subID: ' + urlParams.subID); + window.parent.DiscoJuice.Control.discoResponse(sender, urlParams.entityID, urlParams.subID); } else { window.parent.DiscoJuice.Utils.log('ResponseLocation: Response from discovery service [' + sender + ']: No valid response parameters'); } diff --git a/modules/discojuice/www/discojuice/idpdiscovery.js b/modules/discojuice/www/discojuice/idpdiscovery.js index fee97ffa3..b851ece53 100644 --- a/modules/discojuice/www/discojuice/idpdiscovery.js +++ b/modules/discojuice/www/discojuice/idpdiscovery.js @@ -107,7 +107,7 @@ var IdPDiscovery = function() { var entityID = this.getSP(); if(!entityID) { - DiscoJuice.Utils.log('Missing required parameter [entityID]'); + // DiscoJuice.Utils.log('Missing required parameter [entityID]'); return; } diff --git a/modules/discojuice/www/discojuice/logos/ntnu.png b/modules/discojuice/www/discojuice/logos/ntnu.png index 65f732ed88767825a5fbfbbf9347232689e38196..0836fcc5430d799585e4922ea85404d8022c921b 100644 GIT binary patch literal 2308 zcmV+f3H$bmP)<h;3K|Lk000e1NJLTq001Na001Tk1^@s6tjIZ&0008+X+uL$Nkc;* zP;zf(X>4Tx0C)j~RL^S@K@|QrZmG~B2wH0nvUrdpNm;9CMbtL^5n^i$+aI<?kYqDS z)^0ZI?k2URh~(nYD&9ryp$Gqf9(wR(FG_`4MJV2@C}N=(E%D86Otz)!z|Ma2-Z$@k zZ+71R4RX>n^?(HA4aZWV5ov6ELTdbo0FI&wK{O>*+w4vx20?>!`FrQsdJlnHR>OPy zcd~b_n$otK2Za4V;76L-DzNVtaSB-y0*E}{p()372;bw_^6ZZ}PI-92wGS&j#91PI zKs7DSe@(bk%_Y-7gGe}(^>I=@oY#w#*Bu9GZf3^F5WP>3rn}7Ut74&?PWBFvy`A)a zPP5)V!Xd&78LdA?xQ(9mjMYElVd13a#D+Z_7&Y|xU=_C-srWU*6kiZcC!$nw*)9$7 zn6CX+@=AhmkT}X@VSsa5NKe;HZuq)~1$`#h6R+ZTR#D-3j}vF!)ZOnz+5)dI4jl{{ z44Mr{P!L4~VVJN`K!!XTF*LGrKO?IK8<Tr7btG!LbYeuYL3=jbJ-1P$-8}v%B5{;M zwFr{@LH;VQ$xr2Z`O93e*jD$Ht(%&<^58qg<(at}9@o>z<8w`3e3jI8lUGNUta*C8 zn(P`s>{pjD=7Kek#B;Fw@hxAK%$F&Q6vg9J^Xf~4by_hu-=A!MJ3Znq&n~srbFGPs zH&&aMXZ>nO`|hf|ljc?VPhR!${AbO?W8x_>CU%PFA&Hm8F7cAsOREdwU~R_;ot1_u z(ruCYB-LPGn!NQdT|ZlRy+(fw^-+`=%+gee_kY4FWHg<*4sZI8+sFJD<oAl_pC|$^ zY~aY5x@}W&?+~G7rEYVs0vEs0eekw!YomTR`~+A$s}`+NHJ>270UUORdLHO0nA4V) z%{fwsET5CQ>B?eK%uw4yQc~9?*JVo<vzb+5>2}ze(;aRcp*ceL#HUJSllrgm5wQKR zQu+C;QrUh^8rFfA`ftFz{YAidi-`aL010qNS#tmY3ljhU3ljkVnw%H_00q2BL_t(o z3C&ksY!p=#zUSVV-EQg60xj}u;Gr=l_<%m}Q;9Z2L-d6QEk2qkAt0bcjrzj24?>6- zOhlkB#5WBl5)2p<4Umv31Y*<&MG!ScwAhwyw@vqF=HBCXr`_qU`@<m6aNF6rbME>1 z=G=46JwwdgE`%7wbuWx|0-$>VNQgm(vwLLX)Wb2a>tK`4jwiKB#Ov`zSt~fIkjU%N z;d9$F_4uo9S#srpW$elgLb&S%^Kv3?5SY|cbdxm_LKc|h6*B$_=Ip1VU+?^-noI?t z=2ZuuaoqTB7OF!CgMTd;f44tKkW>P{cs2f2i~Kv|{agDmFH>FysQJ;pjgn;_1Y24A zU@T|8eNcf0A{8SRCMW&;mh?AUKP=T70-Cetz(Y*&6L9POY<#%p?hd@PO{f7Py*_<* z^Y=w-L6#BqO5eDz8FFR>j5W?i8@Osd`}`&mh1niVl55(QNY`CWHfCmU7~|QvdaUW; z{SOq)25C=*7c=QawIYUvlv24xnOnXy48tW=-WKUXs#V70E1>izt2h9pl#GG9x<!(d zh>2?jZO&LfhiJmwAU1+nLN%=7!kGNEchEtVX00}I8RSE$fR7Q|QpAMN_V^0MRAKb- zPz#SkaX0tHY%jfYESC)c{nZ@ot>5M)68W5pFK*1c>2dP?MwJ`NUCoK+g=*m#+!|{M z0F297Z%a};&3^$+fe;G7rbgXLJ;_5t7dU^Z|BZ25KrF4hyIXyEt+Ugo__Gufj|}*U z1tviQQqaY@?t{mNPQUWil>XqB>^z*MqSs0ns>~w*vQo&yo*qiU`|~?{=Vis?d$HTy z%ub^qEj*SM=u#t`Rfy6T=Bzz*B$1uyxpwi@p}-~sPDDUqx&?xDetLR(xT~wn$#dHt zriSMYb0c%XXH?M1a&CM!cow3;=h#cxc*8EdM?@IYh9d*ACH~v|hINMG&jnc{*alve zVYIFC9y>3#tbXt5Dhzc=(EyP#%e#7;gaspHBX+I^m?>MtT98VRaW(}MoCkGLlq^OA zgo9^Tw6?+jD_Bfteu<vSDT;xRZpX5&-XwA;q7XzXHC0j=b*9N1n<dG#M?P<X9!1X? z%qG!GO{aCG_Hs%jK&Wpt<|QV4R_MJWi2w}@k@n`c4HPW2a<jFcqG=~7Meh1PP<+8o zqYdzB@8>^G?ioP`p`yt|eO*NIzz_Q-6z5I`tqJy`t^x2P;R{mfj}gxJyVD+mb?b9! zMo%d+$4I)^#Tt8O!AJ*3TmGX_H~m>%;8hl*`d^?h((t)drpZrlRw8=@MNbnssPqyS z1s4fClhkAi`|mSDJNR@eSH)&sQba)0b>z?UZw-$u8rtHB{6>_c<LIF-A%}j0OD<uT zK5;~DV`j;j*RKG4Xc=D#;ru3(NN1UJ6sJ<Du%F?hDP)c~X0MK?dRsDuWTGWDlD+bI z5yXyivp`!;sQnZGVm3JZY~WR9CxRF!7Ckw;v+q5qsVH#7^HG(F2PYZ`Je9$YgOwyd zVOZAyWy#Y)9{?(l^3Xb<t($Dv%J4%`-jf|ds+Y^?QxBz9O6MUjh?C7?)s7L#C_Te! zq{trtBBTCBlX@L~S_*F!*TOq!M(9d<$nbwBfCJUz<W2loR1pMqCO-JP7Wx7*q)4BU zJIVt9`4=+g@^?jp0Rp6_PhR0L`kEnZ&CH-e$wyO=CCA&(7yE3u1S2#)a(>$>qx0_~ z0`0d+NG~$p(K{(yJT+SW-J=W6o-Wm0W_T<<xK9{=8}i}?sW{4i0L=2-nF|W>84WOE zRIs-zljpsB^k`Y;hM&@<C|lQlu#&a235eFA5YI-QRR1I?6}sshS!~Q0&b6~r<_@L% zZ}c-y*S4Z~RY1kX##QexcHP)=B{V=G2XA9&R%v4Y@<{*otM$~>1yoP)Zmrqa2)`Qd emXTY~+x{=u=Wc#{r}WhT0000<MNUMnLSTX$Yg@Pg literal 5150 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 M07*qoM6N<$g8Cr+&j0`b diff --git a/modules/discojuice/www/discojuice/logos/uio.png b/modules/discojuice/www/discojuice/logos/uio.png index 557c0bf53c97f0fd5784982d891d65adb4b28aad..7b96a476a6203c13bdf228b6f62aa3e47c2d387b 100644 GIT binary patch delta 5842 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 delta 5599 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 diff --git a/modules/discojuice/www/discojuice/logos/uninett.png b/modules/discojuice/www/discojuice/logos/uninett.png index 8fa1901569a70026a9bbff75920dc2d0377e25aa..6f69b8a09bb318a22844f0330e1c724c9437855d 100644 GIT binary patch literal 4720 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 literal 5933 zcmV+|7t-j7P)<h;3K|Lk000e1NJLTq002h-001Wl1^@s6T|`wy000UiX+uL$Nkc;* zP;zf(X>4Tx0C)k_mS<EH$ri_NcTWz485jWxL(WKM0LeK?j-oOQIgBs_vm&y%f@?rT z1Wf3Hh=QvUWKj_V1{MJY4CoHBsHo4yfC-h?z}axld;9HudACp1{nf2ox2vn`!ykY_ z;b&x|p;7?p!fa8Hhch=KGKx#S4+KyI7H9#BFUZPp3JCCpf3)|5fXqzZHk_&Tk7@sX zLOL!!O8|fb;M1{jS%P$&&*1DV$Pi`Y{1NBg71<d$qt|ej5#bxed3c5s=Xhd<V`mv7 z%;tmyxd32t02BtFFG>WUYv6Hit{@SwLwCj5SQwWq#2Fuhy&#Dnhw~Yn4bsz>&#)M0 zo!GzCN&Fl0`LTc2<nt5%<hgIbSK=>rP0q?l<FA?>{4cxov>g1rW(~!AM!YaI821Wz z(-Fol^8bUu72LoVe@wv~jKK=R!5sp?6Y!JCj$b+R-Qco3W0fd5F)5qtg#WpC1Fn}) zU}V5GH8wGxnf|}AnL9hT*|&FR?;^sX{1w~x7{G4`ze{$1#mtfcs`vo1%l?XK7UART z0PQ;jIilRTdW0EA1R6+!49J5rsDlm|;%90Jw%~}Lus8Ta2t>kC5I_>7g9ui@TG$AM zPz*a@H&nm@I1ESO1e}5vXorh%6>dT=48Q{r!x+4P33v}v2!fCiCc;MK5fwxe(ML=X z9%7HUA-+fu5{bkhiHH!%LDnLhkYc0+sXz`Pb;wW1S>z&e9qB{vAtT5*@&@^gVkiTZ zL6uM~bOFjkolqY%1YLqAqM7Jwv;f_PmZR0^akLq|h~7j8P%-)fox}j6V;oEsGsJk9 z3+9hSVF{QBTaOiCWmq-VfVE*=*lkRVy~I8dNCY;4OE4tZ5<Cf^1OXwFu%57$P(e6K zXeL}H+$M|=CJ5h%Orj!DpJ+q$B1RAsi7SYO#4=(Hv59zvI6xdDz9*4L9FjK4isVU( zB&CqnkhYTcks3)Iq(0IpX_8DP%airVc4U7tpPWrDB=033Cto1<lgG#(DRhbo#gyVs ziJ}N8`IIusG0J&LKjkT9iYi6bq}ovZsd3a*)a}$G)HdoZ>KJv3CQZ|(+0jC1DYT8W za#{oJ3T>G7mQJUu(XHu$^kjM-y_|lMevLjt|HNQ1^cXITXhsfW8>5!d!MMkG%VaXO zn2yXSW;SyhvyOR*`H1;Zf-PYr;Uy6#u|c9zqFJI};*}&-Qd81Na;fBM$uh~)lD8yZ zN>Qb>q+F!<QtPEErOrwXNli+#rA?&$rPHOiN*|NHF8z!}W@)k9SaGZZ)?wBq)+ife ztFv9$0`?~M5%v}Km<&lqTgFQ!MW$HhgiMdjge*(eTsBO0rEI0_Iax6W<7jcbIBA^i zoKu`Z&gXeb^PJ|z&)YJuVP5~d4|4P69OdHWisTyQ2IM}=bLHLSQ{{Kcx5z(KASmc5 z1S+gh*spL!;pKdp`L^=~^NZ%6ntxvrRn$`qQe2~WSg~7iQb}3KLn%XPuhJ!@m&zPv zN97ddQswi?<0@<wdzECBQk4rT&$+T(CvF<IoO_u&p{l6rshXpDNVP|GN=;iWR4rev zQSG5RO`WHnpkAupsXn2hqT#2pR-<0yz9v<Zr<tU=N3%=wgO;{dxYlN^7OiL6a@t<n ztF`O3hjo}b4mz1S)jD@{NxD4URNZ~Ly?Usgg<g_grQR)lRNqoRS%05?p8?Up+CXSf zZ7^iWFmy7^HLN!rG2$5c8s!_c7`<Acu^?)}&IMfyz8PB>rx_nHeqh2f@ixgfX)}3a zs%I)Ntu(!3#x!#`+hEpe_S#(EJl=f2`CSXPg`dS{i%yHLmR6P`%LdDFD-Ej{t17D@ zo(wO5x0QFznrQ88y}`QO`jd^NO}5P`o8N5>ZBuQJ**;sSy)b^^k%gmnYIc0PLv~_& zu6>OCL3^=-ssrDl+TpRIx?`MUjpI`%U8fYM<4&)fjh#i#P0k-&Y+Tm4bhu)!9<D{M zJ#H+wP`3)VNA7CwiSG686CM^GYdktUiJm^5J3WWIl)MC9bzT$RR^IEpFZ(cjf_*A{ z9{cL~ihSGrP(N?KU4FxhG#3dMwfKX-m;WyRhXL9FnE^isk^%z)D+8YdnFOs3>I!BD zFAF{v{654vWP8YiP@T}6(9ST)u;{S5un*y`;U(eXhy@YrB5p=1L?%bJMv<e!qH3Zh z7rQOqy?89zBDyeoaEbPkl}oNKRaly~^xQJZW&CBQV~8=~F~?%Q@csGK{K;6a*s9nG zfs0^|;6<EcTxr~Ryj^@r{L=)xgp!13iFS#*633GqlFE`^Cc7k8B)?AaOgWJ9A=N*% zHg!5JJgqUEk{*+OR>%^j3NJ5LUcPd9Uxt20VTL%<CUbY@gvdu!lZ9k0$!g7(!Noy$ zj!w>ZIU~9Dxs|yeSA?xNy;6FmaAo%@y;WOQJzed-`o}edHG(yrYgN~7TsyMPY2Bgq z$okmzog36Q6l@sF^T<28k+v~)<1hKf`6c=9Hid6$D^M!PD;WLG<GcDoi9%7~&}Q4s z2finKpZtB#7PBpTw|py#E4oo^TwGTCWvgK8jUP;YDF0!4Tf(-U?Uvj3?;!0E?ik$Z zu=8k%bjj+H(OrJKnoGH*MWyd{FWY^+%)IQt9@?IqJ>qiT^47f?dw1;pQjt_KQ0ZLR zSfyCCrRu}JxPATm9rrgJP&!b2;Pb)cgLe;k9BQuCsxCWBI-Gm>$&s)lT|e@EtgBI| zDX#fiE36eC4LW+c&Z@5NnBuYR^=N%g{rK_d<Gm+bPqa1|HXLf?G!~zPlQ}1!{}l7n z;3=O|ou_%H8_sB+scK?36*VKxtC}ZTl3K*Ak*$4az0Y>G*|s(PZ1i(&yJ~yoIoWgD z&(qEqoS(k1`od&KM#syGi5EvZmvuh46mjX!<-p55SA4EqyXt=RQkPTLg===#+OOMO zKYN3BqvfXM&E{^4?xtTXerf8l>}kGbb*r`4y0@)wVc+?FhyIJVU2k8#<8|lez@mY^ z!O+3GL(xOxyK#4)-AlXo`hM>HsRwz(#NnccQV+`>DL$(HRrl9Mv8DLji0erA<KV{+ zMg^lUe#`pp%UHn^=999gDo^X4nLcYDcOUP4zWDjri;NdjFAM)A{jaK5I<L<B?)ZE6 zM8w3{YtifJH(TGzzpZ^|{;qQ}VDi!X^!HOAiayGJJo<_Esq1t2=ciLEzL39^f7Sik z_RZ(p@O1k0bOv99>jc~|yrBsR0B>pmn2`YNUI1FhoTi-3K<0EX&NF&=Rulgx&*{$D zd`p13Jb(~K0CU_obO31Lo{jqe$Jsb)W(I#Wn6s<|Gt*f@=q<Q3DVv^t8xBC$1^7BN zJw4SjJ^i%?-|T&Wj`wp~b|zcuIKV+IQ?roZOKp$yX4n6%`!_l#zG)E?EI|MO010qN zS#tmY3ljhU3ljkVnw%H_01UB7L_t(&1?^dRaFx{+|Gho$Wg`n&N%BYuTVfIz3=pUV zIv|S*NO7S!I)kXiKk7EsS}ZQi6jTsIP_)X>I^u$$l_*tF1OY)diC{tkArQ#ElH?_M z%hz+x_r5PL5YkQw<BXF--uK;m?z!ijd+u58{V*s5=!0%8VC)v#hZGC+8K(zF=rc~A zaeA;o4?}&P(`TF>EYQP{?m0h4MK3ETz~Q_+w7Xooia&=QnsAXFaI!HFLQ#A^7>uf& zs!Gn_)c)^Kd-^om8ycW^Jlfn|d$SToiv_J0%2D_2zu-vD#`vX6F=YHW82x&j-1i+$ z<ZXk84HuwruPH%{j20_`q9V~hEe(Ulj6p<vys&5e3<d+tfrjB-{Pw|lX!9vB(_rj` z*$7S=&}BkzD918QHk&A5Acip$Cm<v`O8U(I+=&y&yW>WfXfW}%`(d`*;d8t74ZIp1 zw1xA#>0}W~Hm$>PVt6nl1ry(R4MWF`6FqpGHbsR)+qNkylEakMDPhWIFRoCkN=p^5 z*Q*U*lXumbGfK(PqnGjiYW?fV3rV3$!QQ=>jrAtN<8~|O3k#L4ix(>|`PW{!cb_go zj8j%vpsYy=S5}c>cE0)MH8+YbJ)q(7c%<j)=uoyi`K0nP>BAeuaIH6~t)*4TTee(T zNd|gj@)V`6yj<iOy_8e(KgolOTs?KcV;DPcp2R&_6+Xfdl^XN(rsO0z4bNlTR{OpH zx&S<lGjJ&Rd|sg?M#9(U^@0{IZ6k%T(8+_w>7Uo*R&hk5$q9T1$`8Z`wgYtz#7mp_ z@;Yq}J8rmdA!4W8hQ@+@DA>7E<Qi+vokP)@XW=jfBWw07Sc8IOk!DJmoE$kZf%T@h z!C(}ehUYPEt9>IaN23eC(>O1J6TZ=C5?YlP(U?py(U19bcl#xYqNK^MizZ8Z2g=uQ zm%amazI2S`^Ew$qA|jAIe?EAV3g7<#7whU^t~_;$60i?L7cN5l;2}cjYHmR-8I2ba zGtj9Tj7D4+FQWQvDJ{s1*wj>6T=}VD_&i?ei(!e5y@WynZA2fLn26A*C|s<qMQvFb z9O2=JaXQgKRj86GqQxGBxYS>XQX)Lyp;gez5~`dntzaWDC|;k;i-=D^LwPycT3f`( zv<E7%O{u65Q$&&c7OJ|fO--V&z6(sl6X-8;Kq4GrVQ`KZftX2iQ1#V^s5yHU=IWwi zVHls41&h@x?S_g9Y@RlTdE@tcPKW>=U@v=bS}uaf3+_2|3Km-sw*T>AROau-<X7It z^|NNme0PT%-@LR6#arIOO&hi#bMj=A96pSX?wO7B`43{w^5tl%slnD6xp31W=6tdn zPLi*K-;+#cv!M2@e;vi|tRuMwcxW;0Wc-A&GjQ|jmDs&*ElS>7FFH{Y&{=Sc{2sIN z_8@;-9!{)X3LAT|pN73s4PM~ZyuEOwr;CB&sia@nu^BaIN?~j+zd$9^fQW<yow3nu zge`m^>~#KMSJZ&r&_)W{({jkG2v5ed)6Rqt{h{ZUN(p9KVh3w@7=lbjeYbhn*{HU# zaAC*p?if4<X5zPN`SYkJJs9*HCv8E=9F`mX+qrPgTLkB{J27D5Z^VNsTMLoF5CU7= zaM)8uz=UXV3UxL=JB?<G&yaPQtnmTZPRfX+B<VC)SHtXXA(y1Z*c`z+g?Jl<mY4F6 zW@#Dp`>oR6PF+=?r`1LC?eNqV;oH@#F?;1o1O*4fOEf-V<X4Q^+)^kht3V02u@RP_ zL^STr!|wHIxMj%_n8{l>QFj5dw#%y^>#q4opD;lm;$o7sU;#$meK%U_>+$`n)o42U z6|P_QIug={!%N9FYQO-DxOEPOO_?I0ynoGFH0;}kk<YC~@`!A>+uAAg)w3Kk4hjvC zOy_QChPiJ40a!zvFj>`j)+JMeJ%Ii$2OjVP=LN6gLh#UBly83*M<z`|&YU^028TfE zQ~<3uM}Jd-_O)F=Q0ge0-tZC*=j34I^y%Vl{(VqMsY8x~X3ASl)iqSbJTRF}2<zV; z$rKI@oDYxo>nCA1AoDsT4Ii$~r6=b(2A=mr^d_N6%t%LaMuy<|p&f=TbU5Xt>~^)m z*j|<oQ$#pLN#}xP28Dz|iI%E&C-_Ok_5E0OYmRLrF|`>Yab(G}C^>QjW-5<Nu5e=P z77XxFQnthng@r<p#UK3JaugptNFm+NKSQ0%p2T5wgu-v*^@Ffs%n*D*d5g=i7C#+r zE=klp(cRW2^SNAW<(?5-1h{xGxW)S^Zxe4>kAD+Q{=DmPwZdo)bHYcV)x`+3Qw9nt zPwiP!phKAPLm}5@bq!{VlwU5TK4L;O0onK8hxj{gr%PlR4!rsrs=hx23yt$RqdVZu za5tPn#ONH1e&k^|$n)CI{eXR|UPi^9J+PW$RHgls*^?}hk+2UL1FInjR)6ji_hy~^ zIgrV<D#!ZC&(A~fej_kmX#F&_I_dk!yBPR-V~+aG4XF5Jqr|6Rd4Q6qEhQNZ`DY}S z;dIJSV^t+Q<Oz=CBr5N8-|>22q<6bggT!IO5kawA_U@}_`1%_d>D<8bH6=9Ofp4xD z?RE7?qYB}E^bzd1_jhoWo*^S0gC&NJ6{@~cf;&iV)*l|g@QIT|F7xI5q=iEu-~X?z z8jC%OJ;`Es(8V+?lyU~US?6a1duS*^QU{8RV_UaM39l?ELH_&iOFTLf;$fxp3A?R< zDi{NQc5r58BID05P)t|D80-*ymk<<8=Y!SpQV4J^;Bud~@K0hGGhG6~JE-c*7MA=K zLgyt1>B|SUV9GCy_uH?N>3?l?H=`5R(b_6JEe;3F!IaeKdP#?=3LsnM%)*m$b5Zv3 zMqJpu1)J%dzy~j1W0Mdh=Z=%NBt|llnHHhBW6o`JQAs(cX8R^8sg&IOM*((e&MQVb zKn4PTy5On;x_OUZcrR*?<)iVyXK)M|+et=7;4@Cqjvc6@vliXI#B;NzPXlkH3Y7OK zU+}@BCvWAb;Og9khHRtt>*=7%rgB6^z#L8AGB_(#{CFI`8*kJXlRaYwYEC|eqBmcJ zsZ|xv9+v*lGsu`UQ4pMrTZ)R%LWa|F3mZ0f(IR}b{T;M=U9u1+<|N5<uG$)v89imc zXyKY-{bFM=VewzE`KC|NM0Xqx83tE%6&?H(6u-3+Khc}6sIXJP7;-~_ZXCLvqPeh; zWcs?K2w|W-XkJU{S<!<HtO0vB>(EBIxBUBqa_);tPKG%)ZIJ9r>84Gnn0X5l1`ifD z=N*~)#N!w?Z7Qniiop;!bSP3XGj#*nLP9Wh$zRdh*noa<ahfcmxen9c`y91&1dk(r zGMC;{SNt83DJjzDDq$ecBCG22xWRL0ez*hmW#=V)7?(MBE>gz-8dh?34mI{tGbK!W zXc!L*@HuVl(@(=iy6}~Sf!3>nzrmF#=i!IwNN^YWr#SU7F%I?4{rDp)KYbga14km- zN#m3&l#iZzO1_`)cN_{8qE!_BbZ{l0g^{Ds5$_V997O2u@t2S)6{k-tYg5ydjkn*a z(7i{7yXD&rzb?G~SDD@LVO_OPC9dXX<%35b6+3*n?o|<C<jdl9vu43UF@18)GdQsM zL$N5wCc8B!U4H9rc0tY~yc^Wk#)zA^ri4g0cphh3&QlD0h@)~Nl|c~nV4BYDrasYg zUzZV}i;Vf{uOyQ=Fjw_=1%3Ie0Dm^w^N)X`?1MMp2u?!A)G4A8=Px+3vyr)Yg`6A@ zJ@F9egO}W*C5e(D_^r47E-JIBt&M4U<4SlQXIkwtd9k*RD&%?CV`Fq2-`yC>ek!0F z{CT10zAhs`7sdq|lG{3+t|P~l_T%Q|H1%|=|MKNEIKKRGG2`gxmmzjwDvO1IU74A> zDM9Tbqx`V!3E9CQQ$Hl#y#S8rD0K&g{OTU;8EgQb+k*?ccA@g%mzc0>14h$zgQ1+h z5FGvZV-&yg9Aa<23(@Hr@K7SZ?DT$hYRGI}b8|&G&b_@B9psUG`5wFSEnOEbFkSxl zfkUWx|9%vH{srnz{Dcm=nJS#s+4#K$961*Hz(rsFoik@5moAh1Ern$t|9U5O-}eAI zJe6=HW)Ka9Ho1Hk59uvEh>y`qSDv_7^dC6_!zNFWV!-UhFm&P;;|PM36IbO90pCN! z4auUC3sm$~KRLXFA9<0L&Nd9(*TRx7kjMW0Iil!<K4{b^bnrci=JYn`dJtpnBOS{K z)I~Q=Zwvn=@RNl6OIXOYSVNz2da!Drar%tYg9UmR>hqjF<Md#G9)|t{Eh3F-hQbs( P00000NkvXXu0mjffGcnK -- GitLab