├── .gitignore ├── .idea ├── inspectionProfiles │ ├── Project_Default.xml │ └── profiles_settings.xml ├── istex-web-extension.iml ├── modules.xml └── vcs.xml ├── .jshintrc ├── LICENSE ├── Makefile ├── README.md ├── package.json ├── src ├── .jshintrc ├── .web-extension-id ├── background │ ├── postInstall.js │ └── tabBootstrap.js ├── content_scripts │ ├── gs-pref.js │ ├── log.js │ ├── main.css │ ├── main.js │ ├── storage.js │ └── tabBootstrap.js ├── icons │ ├── icon-48.png │ ├── istex-128.png │ ├── istex-128.xcf │ ├── istex-16.png │ └── istex-48.png ├── manifest.json ├── options │ ├── options.css │ ├── options.html │ └── options.js └── vendors │ ├── jquery-3.2.1.js │ └── lz-string.js ├── test └── index.html └── web-ext-artifacts └── istex-1.2.7.zip /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.gitignore.io/api/node,webstorm,vim,netbeans,linux 3 | 4 | ### Node ### 5 | # Logs 6 | logs 7 | *.log 8 | npm-debug.log* 9 | 10 | # Runtime data 11 | pids 12 | *.pid 13 | *.seed 14 | *.pid.lock 15 | 16 | # Directory for instrumented libs generated by jscoverage/JSCover 17 | lib-cov 18 | 19 | # Coverage directory used by tools like istanbul 20 | coverage 21 | 22 | # nyc test coverage 23 | .nyc_output 24 | 25 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 26 | .grunt 27 | 28 | # node-waf configuration 29 | .lock-wscript 30 | 31 | # Compiled binary addons (http://nodejs.org/api/addons.html) 32 | build/Release 33 | 34 | # Dependency directories 35 | node_modules 36 | jspm_packages 37 | 38 | # Optional npm cache directory 39 | .npm 40 | 41 | # Optional eslint cache 42 | .eslintcache 43 | 44 | # Optional REPL history 45 | .node_repl_history 46 | 47 | # Output of 'npm pack' 48 | *.tgz 49 | 50 | 51 | ### WebStorm ### 52 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm 53 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 54 | .idea/ 55 | 56 | # User-specific stuff: 57 | .idea/workspace.xml 58 | .idea/tasks.xml 59 | 60 | # Sensitive or high-churn files: 61 | .idea/dataSources.ids 62 | .idea/dataSources.xml 63 | .idea/dataSources.local.xml 64 | .idea/sqlDataSources.xml 65 | .idea/dynamic.xml 66 | .idea/uiDesigner.xml 67 | 68 | # Gradle: 69 | .idea/gradle.xml 70 | .idea/libraries 71 | 72 | # Mongo Explorer plugin: 73 | .idea/mongoSettings.xml 74 | 75 | ## File-based project format: 76 | *.iws 77 | 78 | ## Plugin-specific files: 79 | 80 | # IntelliJ 81 | /out/ 82 | 83 | # mpeltonen/sbt-idea plugin 84 | .idea_modules/ 85 | 86 | # JIRA plugin 87 | atlassian-ide-plugin.xml 88 | 89 | # Crashlytics plugin (for Android Studio and IntelliJ) 90 | com_crashlytics_export_strings.xml 91 | crashlytics.properties 92 | crashlytics-build.properties 93 | fabric.properties 94 | 95 | ### WebStorm Patch ### 96 | # Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 97 | 98 | # *.iml 99 | # modules.xml 100 | # .idea/misc.xml 101 | # *.ipr 102 | 103 | 104 | ### Vim ### 105 | # swap 106 | [._]*.s[a-w][a-z] 107 | [._]s[a-w][a-z] 108 | # session 109 | Session.vim 110 | # temporary 111 | .netrwhist 112 | *~ 113 | # auto-generated tag files 114 | tags 115 | 116 | 117 | ### NetBeans ### 118 | nbproject/private/ 119 | build/ 120 | nbbuild/ 121 | nbdist/ 122 | .nb-gradle/ 123 | 124 | 125 | ### Linux ### 126 | 127 | # temporary files which can be created if a process still has a handle open of a deleted file 128 | .fuse_hidden* 129 | 130 | # KDE directory preferences 131 | .directory 132 | 133 | # Linux trash folder which might appear on any partition or disk 134 | .Trash-* 135 | 136 | # .nfs files are created when an open file is removed but is still being accessed 137 | .nfs* 138 | 139 | ### web extension release ### 140 | *.pem 141 | dist/ 142 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /.idea/istex-web-extension.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "laxbreak": true, 3 | "eqeqeq": true, 4 | "expr": true, 5 | "quotmark": true, 6 | "indent": 2, 7 | "undef": true, 8 | "unused": true, 9 | "strict": true, 10 | "shadow": "outer", 11 | "esnext": true, 12 | "validthis": true, 13 | "node": true, 14 | "no-cond-assign": false 15 | } 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Développements ISTEX en open source 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # istex-web-extension's Makefile 2 | 3 | SHELL:=/bin/bash 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | **⚠⚠⚠ This extension is deprecated and no more maintained. Please consider replacing it by [Click & Read](https://clickandread.inist.fr/)⚠⚠⚠** 2 | 3 | --- 4 | 5 | # istex-web-extension 6 | 7 | A basic add-on for identifying dynamically ISTEX resources in the browser pages. 8 | 9 | This extension is an adaptation of [istex-browser-addon](https://github.com/istex/istex-browser-addon), using "Web extensions" technology. 10 | 11 | At the present time, 2 versions are available : one for Mozilla Firefox, the other for Google Chrome. 12 | 13 | ## Functionalities 14 | 15 | This add-on performs the following task: 16 | 17 | * Add an ISTEX button next to any DOI, OpenUrl and PMID found in the browser page in case the corresponding document is present in ISTEX, based on the ISTEX OpenURL service. Clicking on the ISTEX button will open a new tab with opening the corresponding PDF, assuming that the access to the ISTEX full-texts is authorized. 18 | 19 | ## Supported identifiers and protocols 20 | 21 | Linking work at item level (e.g. article) and will try to identifying the following identifiers in the web page: 22 | 23 | * OpenURL 1.0, including COInS - link resolver prefixes will be examined in case of SFX and Proquest 360 Link 24 | * DOI 25 | * PubMed ID (PMID) 26 | * Publisher Item Identifier (PII) 27 | 28 | ## Supported browser 29 | 30 | Currently: 31 | 32 | * Firefox 33 | * Chrome 34 | 35 | ## Examples 36 | 37 | * Example of links on a Wikipedia page: https://en.wikipedia.org/wiki/Superfluid_helium-4 38 | 39 | ## How to install 40 | 41 | If you just want to install the extension, please visit https://addons.istex.fr and click on the big "Install" button. 42 | 43 | If you use Google Chrome, you can alose visit the [extension's homepage on the Chrome Web Store](https://chrome.google.com/webstore/detail/istex/fonjnfcanlbgnjgfhiocggldmpnhdhjg?hl=fr) and click on the "Add to Chrome" button. 44 | 45 | ## Developers 46 | 47 | How to build the xpi: 48 | ``` 49 | npm i 50 | npm run build 51 | ``` 52 | 53 | How to run the web extension in developer mode with firefox (you need to install firefox >= 49): 54 | ``` 55 | npm i 56 | npm run run 57 | ``` 58 | It will open firefox on this page https://en.wikipedia.org/wiki/Superfluid_helium-4 with the istex-web-extension loaded. 59 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "istex-web-extension", 3 | "version": "1.3.1", 4 | "description": "An add-on for identifying ISTEX resources in the browser pages", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "build": "web-ext build -s ./src -a ./web-ext-artifacts", 9 | "run": "web-ext run -s ./src -a ./web-ext-artifacts --browser-console --start-url https://en.wikipedia.org/wiki/Superfluid_helium-4 --start-url 'https://scholar.google.fr/scholar?q=elsevier+brain&btnG=&hl=fr&as_sdt=0%2C5&as_ylo=2001&as_yhi=2001'" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/istex/istex-web-extension.git" 14 | }, 15 | "keywords": [ 16 | "Istex", 17 | "web-extension" 18 | ], 19 | "author": "Istex", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/istex/istex-web-extension/issues" 23 | }, 24 | "homepage": "https://github.com/istex/istex-web-extension#readme", 25 | "dependencies": {}, 26 | "devDependencies": { 27 | "web-ext": "^1.10.1" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../.jshintrc", 3 | "browser": true, 4 | "jquery": true, 5 | "strict": true, 6 | "globals": { 7 | "browser": false, 8 | "chrome": false, 9 | "Storage": false, 10 | "DOMException": false, 11 | "config": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/.web-extension-id: -------------------------------------------------------------------------------- 1 | # This file was created by https://github.com/mozilla/web-ext 2 | # Your auto-generated extension ID for addons.mozilla.org is: 3 | istexwebextensionforreal@inist.fr -------------------------------------------------------------------------------- /src/background/postInstall.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | function handleInstalled(details) { 4 | console.log(details.reason); 5 | if (details.reason === 'install') { 6 | chrome.tabs.create({ 7 | url: chrome.runtime.getURL('/options/options.html') 8 | }); 9 | } 10 | } 11 | 12 | chrome.runtime.onInstalled.addListener(handleInstalled); -------------------------------------------------------------------------------- /src/background/tabBootstrap.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var whiteList = [ 3 | 'scholar.google.*', 4 | '*.wikipedia.org', 5 | 'scholar.*.fr', 6 | '*' // Until we get better and/or configurable whitelist 7 | ], 8 | whiteListPatterns = whiteList.map(compileUrlPattern) 9 | ; 10 | 11 | 12 | chrome.runtime.onConnect.addListener(function(port) { 13 | port.onMessage.addListener(function(page) { 14 | if (!isContentTypeAllowed(page.contentType) 15 | || !isWhiteListed(port.sender.url) 16 | ) return; 17 | 18 | chrome.tabs.executeScript(port.sender.tab.id, {file: '/vendors/jquery-3.2.1.js'}); 19 | chrome.tabs.executeScript(port.sender.tab.id, {file: '/vendors/lz-string.js'}); 20 | chrome.tabs.executeScript(port.sender.tab.id, {file: '/content_scripts/log.js'}); 21 | chrome.tabs.executeScript(port.sender.tab.id, {file: '/content_scripts/storage.js'}); 22 | chrome.tabs.executeScript(port.sender.tab.id, {file: '/content_scripts/main.js'}); 23 | }); 24 | }); 25 | 26 | function isContentTypeAllowed (contentType) { 27 | var forbidenContentTypes = [ 28 | /application\/(\w+\+)?xml/, 29 | /text\/xml/, 30 | ]; 31 | 32 | return !forbidenContentTypes.find(function(regex) { 33 | return contentType.match(regex); 34 | }); 35 | 36 | } 37 | 38 | function isWhiteListed (url) { 39 | for (var i = 0; i < whiteListPatterns.length; ++i) { 40 | if (url.match(whiteListPatterns[i])) { 41 | return true; 42 | } 43 | } 44 | return false; 45 | } 46 | 47 | function escapeStringForRegex (str) { 48 | return str.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); 49 | } 50 | 51 | function compileUrlPattern (url) { 52 | return new RegExp( 53 | escapeStringForRegex(url).replace('\\*', '.*'), 54 | 'i' 55 | ); 56 | } 57 | 58 | -------------------------------------------------------------------------------- /src/content_scripts/gs-pref.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | window.onunload = function(e) { 4 | console.log('unload event'); 5 | chrome.runtime.sendMessage({text: 'done'}); 6 | }; 7 | 8 | // we need to send a click to this 9 | // 10 | 11 | $('.gs_btn_act').click(); 12 | -------------------------------------------------------------------------------- /src/content_scripts/log.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | function log (message) { 4 | if (!console || !console.log) return; 5 | if (isObject(message) && console.dir && arguments.length === 1) { 6 | console.dir(message); 7 | return; 8 | } 9 | console.log.apply(null, arguments); 10 | } 11 | 12 | function trace (message) { 13 | log.apply(null, arguments); 14 | 15 | if (console.trace) { 16 | console.trace('\n\n'); 17 | console.log('\n\n'); 18 | } else { 19 | console.log('%c' + (new Error().stack || '').split('\n').slice(1).join('\n') + '\n\n', 'color: #9e9ea6'); 20 | } 21 | } 22 | 23 | function info () { 24 | var args = Array.prototype.slice.call(arguments); 25 | args.unshift('%cistex-web-extension: %c%s', 'color:#337ab7;font-weight:bold;', 'color: #51515d;'); 26 | console.info.apply(null, args); 27 | } 28 | 29 | function warn (message) { 30 | if (!console || !console.warn) return log(message); 31 | console.warn.apply(null, arguments); 32 | } 33 | 34 | function error () { 35 | if (!(config && config.mustDebug)) return; 36 | if (!console || !console.error) return log.apply(null, arguments); 37 | console.error.apply(null, arguments); 38 | } 39 | 40 | function debug (message) { 41 | if (!(config && config.mustDebug)) return; 42 | warn('istex-web-extension: ' + message); 43 | } 44 | 45 | function logXhrError (url, statusText) { 46 | console.error('%cistex-web-extension:%c %s %c %s', 47 | 'color:red;font-weight:bold;', 48 | 'color: #51515d;', 49 | url, 50 | 'color:red;font-weight:bold;', 51 | statusText); 52 | } 53 | function isObject (value) { 54 | return value && 'object' === typeof value || 'function' === typeof value; 55 | } 56 | -------------------------------------------------------------------------------- /src/content_scripts/main.css: -------------------------------------------------------------------------------- 1 | a[name="ISTEXLink"].istex-link { 2 | margin: 2px 5px 2px 5px; 3 | padding: 2px; 4 | width: 60px; 5 | border: 1px solid; 6 | border-top-color: #ccc; 7 | border-left-color: #ccc; 8 | border-bottom-color: #000; 9 | border-right-color: #000; 10 | background: #458ca5 !important; 11 | text-align: center; 12 | text-decoration: none !important; 13 | font: normal 10px Verdana; 14 | color: white !important; 15 | font-weight: bold; 16 | /* border-radius: 5px;*/ 17 | } 18 | 19 | [class^="gs"] > a[name="ISTEXLink"] { 20 | margin-left: 0; 21 | } 22 | 23 | a[name="ISTEXLink"].istex-link:hover { 24 | text-decoration: none !important; 25 | color: white !important; 26 | background: #c4d733 !important; 27 | font-weight: bold; 28 | } 29 | 30 | a[name="ISTEXLink"].istex-link:active { 31 | border-top-color: #000; 32 | border-left-color: #000; 33 | border-bottom-color: #ccc; 34 | border-right-color: #ccc; 35 | background: #666; 36 | text-decoration: none !important; 37 | color: white; 38 | font-weight: bold; 39 | } 40 | -------------------------------------------------------------------------------- /src/content_scripts/main.js: -------------------------------------------------------------------------------- 1 | /* globals LZString, warn, error, debug, logXhrError */ 2 | 'use strict'; 3 | 4 | var config, 5 | ISTEXLinkInserter, 6 | NOT_AVAILABLE = 'NA' 7 | ; 8 | const forbidenElements = ['applet', 9 | 'area', 10 | 'audio', 11 | 'br', 12 | 'canvas', 13 | 'center', 14 | 'embed', 15 | 'frame', 16 | 'frameset', 17 | 'hr', 18 | 'iframe', 19 | 'img', 20 | 'input', 21 | 'keygen', 22 | 'link', 23 | 'map', 24 | 'meta', 25 | 'meter', 26 | 'noframes', 27 | 'noscript', 28 | 'object', 29 | 'optgroup', 30 | 'option', 31 | 'output', 32 | 'param', 33 | 'picture', 34 | 'progress', 35 | 'script', 36 | 'select', 37 | 'source', 38 | 'textarea', 39 | 'time', 40 | 'track', 41 | 'video', 42 | 'wbr', 43 | 'svg', 44 | 'g', 45 | 'path', 46 | 'text', 47 | 'rect', 48 | 'style']; 49 | 50 | config = { 51 | istexBaseURL: 'api.istex.fr/document/openurl', 52 | maxPageLinks: 2500, 53 | mustDebug : false 54 | }; 55 | 56 | ISTEXLinkInserter = { 57 | // OpenURL static info 58 | openUrlVersion: 'Z39.88-2004', 59 | openURLPrefix : 'https://api.istex.fr/document/openurl?', 60 | 61 | // DOI pattern 62 | doiPattern : /\/\/((dx\.)?doi\.org|doi\.acm\.org|dx\.crossref\.org).*\/(10\..*(\/|%2(F|f)).*)/, 63 | // the index of the group where to find the DOI 64 | doiGroup : 3, 65 | regexDoiPatternConservative: new RegExp('(10\\.\\d{4,5}\\/[\\S]+[^;,.\\s])', 'gi'), 66 | 67 | // PMID 68 | pubmedPattern : new RegExp('http.*\\/\\/.*ncbi\\.nlm\\.nih\\.gov.*\\/pubmed.*(\\/|=)([0-9]{4,12})', 'i'), 69 | pubmedGroup : 1, 70 | regexPMIDPattern : new RegExp('(PubMed\\s?(ID\\s?:?|:)|PM\\s?ID)[\\s:\\/]?\\s*([0-9]{4,12})', 'gi'), 71 | regexPrefixPMIDPattern: new RegExp('((PubMed\\s?(ID)?:?)|(PM\\s?ID))[\\s:\\/]*$', 'i'), 72 | regexSuffixPMIDPattern: new RegExp('^\\s*[:\\/]?\\s*([0-9]{4,12})', 'i'), 73 | skipPattern : new RegExp('^[:\\/\\s]+$', 'i'), 74 | 75 | // PII pattern in links 76 | regexPIIPattern: new RegExp('\\pii\\/([A-Z0-9]{16,20})', 'gi'), 77 | 78 | // The last group should be the parameters for openurl resolver - TBD add EBSCO 79 | openUrlPattern: /.*(sfxhosted|sfx?|search|.hosted).(exlibrisgroup|serialssolutions).com.*(\/|%2(F|f))?\?*(.*)/, 80 | flags : { 81 | OPEN_URL_BASE : 1, 82 | DOI_ADDRESS : 2, 83 | PUBMED_ADDRESS : 3, 84 | HAS_OPEN_URL : 4, 85 | HAS_PII : 5, 86 | GOOGLE_SCHOLAR_OPENURL: 6, 87 | SCOPUS_DOI : 7 88 | }, 89 | 90 | scopusExternalLinkPrefix: 'www.scopus.com/redirect/linking.uri?targetURL=', 91 | 92 | onDOMContentLoaded: function() { 93 | var rootElement = document.documentElement; 94 | // check if we have an html page 95 | debug(document.contentType); 96 | if (document.contentType === 'text/html') { 97 | var currentUrl = window.location.href; 98 | if (currentUrl.indexOf('grobid') === -1) { 99 | ISTEXLinkInserter.findAndReplaceLinks(rootElement); 100 | rootElement.addEventListener('DOMNodeInserted', ISTEXLinkInserter.onDOMNodeInserted, false); 101 | } 102 | } 103 | 104 | }, 105 | 106 | onDOMNodeInserted: function(event) { 107 | var node = event.target; 108 | ISTEXLinkInserter.findAndReplaceLinks(node); 109 | }, 110 | 111 | scanForDoiAndPubmedStrings: function(domNode, prefixStatus) { 112 | var prefix = prefixStatus; 113 | // Only process valid dom nodes: 114 | if (domNode === null || !domNode.getElementsByTagName) { 115 | return prefix; 116 | } 117 | 118 | if (forbidenElements.includes(domNode.tagName.toLowerCase())) return false; 119 | 120 | // if the node is already clickable 121 | if (domNode.tagName.toLowerCase() === 'a') { 122 | return false; 123 | } 124 | 125 | var childNodes = domNode.childNodes, 126 | childNode, 127 | spanElm, 128 | i = 0, 129 | text 130 | ; 131 | 132 | while ((childNode = childNodes[i])) { 133 | if (childNode.nodeType === 3) { // text node found, do the replacement 134 | text = childNode.textContent; 135 | if (text) { 136 | var matchDOI = text.match(this.regexDoiPatternConservative); 137 | var matchPMID = text.match(this.regexPMIDPattern); 138 | if (matchDOI || matchPMID) { 139 | spanElm = document.createElement('span'); 140 | spanElm.setAttribute('name', 'ISTEXInserted'); 141 | 142 | if (matchDOI) { 143 | spanElm.innerHTML = text.replace(this.regexDoiPatternConservative, 144 | '$1'); 145 | text = spanElm.innerHTML; 146 | } 147 | if (matchPMID) { 148 | spanElm.innerHTML = 149 | text 150 | .replace(this.regexPMIDPattern, 151 | 'PubMed ID $3' 152 | ); 153 | } 154 | domNode.replaceChild(spanElm, childNode); 155 | childNode = spanElm; 156 | text = spanElm.innerHTML; 157 | prefix = false; 158 | } 159 | else { 160 | if (prefix && (text.match(this.regexSuffixPMIDPattern))) { 161 | debug('regexSuffixPMIDPattern: ' + text); 162 | spanElm = document.createElement('span'); 163 | spanElm.setAttribute('name', 'ISTEXInserted'); 164 | spanElm.innerHTML = text.replace(this.regexSuffixPMIDPattern, 165 | '$1'); 166 | domNode.replaceChild(spanElm, childNode); 167 | childNode = spanElm; 168 | text = spanElm.innerHTML; 169 | prefix = false; 170 | } 171 | else if (text.match(this.regexPrefixPMIDPattern)) { 172 | debug('regexPrefixPMIDPattern: ' + text); 173 | prefix = true; 174 | } 175 | else if (text.length > 0) { 176 | if (!text.match(this.skipPattern)) { 177 | prefix = false; 178 | } 179 | } 180 | } 181 | } 182 | } 183 | else if (childNode.nodeType === 1) { // not a text node but an element node, we look forward 184 | prefix = this.scanForDoiAndPubmedStrings(childNode, prefix); 185 | } 186 | i++; 187 | } 188 | return prefix; 189 | }, 190 | 191 | findAndReplaceLinks: function(domNode) { 192 | // Only process valid domNodes: 193 | if (!domNode || !domNode.getElementsByTagName) return; 194 | 195 | this.scanForDoiAndPubmedStrings(domNode, false); 196 | 197 | // Detect OpenURL, DOI or PII links not already handled in the code above and replace them with our custom links 198 | var links = domNode.getElementsByTagName('a'); 199 | 200 | if (links.length > config.maxPageLinks) { 201 | warn('Too many links for ISTEX analyser:' + links.length); 202 | return; 203 | } 204 | 205 | for (var i = 0; i < links.length; i++) { 206 | var link = links[i]; 207 | var flags = this.analyzeLink(link); 208 | 209 | if (flags === 0) { 210 | continue; 211 | } 212 | 213 | var href = decodeURIComponent(link.getAttribute('href')); 214 | 215 | // We have found an open url link: 216 | if (flags === this.flags.HAS_OPEN_URL) { 217 | // OpenURl 218 | this.createOpenUrlLink(href, link); 219 | } 220 | else if (flags === this.flags.DOI_ADDRESS) { 221 | // doi 222 | this.createDoiLink(href, link); 223 | } 224 | else if (flags === this.flags.GOOGLE_SCHOLAR_OPENURL) { 225 | this.createGoogleScholarLink(href, link); 226 | } 227 | else if (flags === this.flags.PUBMED_ADDRESS) { 228 | // PubMed ID 229 | this.createPubmedLink(href, link); 230 | } 231 | else if (flags === this.flags.HAS_PII) { 232 | // Publisher Item Identifier 233 | this.createPIILink(href, link); 234 | } else if (flags === this.flags.SCOPUS_DOI) { 235 | // scopus external publisher link 236 | this.createScopusLink(href, link); 237 | } 238 | 239 | } 240 | 241 | this.createSpanBasedLinks(domNode); 242 | }, 243 | 244 | analyzeLink: function(link) { 245 | // First check if we have to bother: 246 | var mask = 0; 247 | 248 | if (!link.getAttribute('href')) { 249 | return mask; 250 | } 251 | 252 | var href = link.getAttribute('href'); 253 | var currentUrl = window.location.href; 254 | if (link.getAttribute('name') === 'ISTEXVisited') { 255 | return mask; 256 | } 257 | if (link.getAttribute('classname') === 'istex-link') { 258 | return mask; 259 | } 260 | if (href.indexOf(config.istexBaseURL) !== -1) { 261 | return mask; 262 | } 263 | 264 | // check if we have a Google Scholar pre-OpenURL link (the link that will call the OpenURL) 265 | var contentText = link.textContent; 266 | if (href.indexOf('scholar.google.') !== -1 && (contentText === '[PDF] ISTEX')) { 267 | mask = this.flags.GOOGLE_SCHOLAR_OPENURL; 268 | //return mask; 269 | } else if (href.indexOf(this.scopusExternalLinkPrefix) !== -1) { 270 | // check scopus external publisher links 271 | var simpleHref = href.replace('https://' + this.scopusExternalLinkPrefix, ''); 272 | simpleHref = decodeURIComponent(simpleHref); 273 | var ind = simpleHref.indexOf('&'); 274 | if (ind !== -1) 275 | simpleHref = simpleHref.substring(0, ind); 276 | if (simpleHref.match(this.doiPattern)) { 277 | mask = this.flags.SCOPUS_DOI; 278 | } 279 | } else if ((href.indexOf('doi.org') !== -1 || 280 | href.indexOf('doi.acm.org') !== -1 || 281 | href.indexOf('dx.crossref.org') !== -1) 282 | && href.match(this.doiPattern)) { 283 | // Check if the href contains a DOI link 284 | mask = this.flags.DOI_ADDRESS; 285 | } else if (href.indexOf('ncbi.nlm.nih.gov') !== -1 && this.pubmedPattern.test(href)) { 286 | // Check if the href contains a PMID link 287 | mask = this.flags.PUBMED_ADDRESS; 288 | } else if (this.regexPIIPattern.test(href) && currentUrl.indexOf('scholar.google.') === -1) { 289 | // Check if the href contains a PII link 290 | mask = this.flags.HAS_PII; 291 | } else if (href.indexOf('exlibrisgroup.com') !== -1 && this.openUrlPattern.test(href)) { 292 | // Check if the href contains a supported reference to an open url link 293 | mask = this.flags.OPEN_URL_BASE; 294 | } else if (href.indexOf('serialssolutions.com') !== -1 && this.openUrlPattern.test(href)) { 295 | if (link.getAttribute('class') !== 'documentLink') { 296 | mask = this.flags.OPEN_URL_BASE; 297 | } 298 | } 299 | 300 | if (config.mustDebug && mask > 0) { 301 | debug('URL is ' + href + '\n mask value: ' + mask); 302 | } 303 | 304 | return mask; 305 | }, 306 | 307 | createOpenUrlLink: function(href, link) { 308 | var matchInfo = this.openUrlPattern.exec(href); 309 | if (!matchInfo) return; 310 | // the last group should be the parameters: 311 | var child = this.buildButton(matchInfo[matchInfo.length - 1]); 312 | link.parentNode.replaceChild(child, link); 313 | }, 314 | 315 | createDoiLink: function(href, link) { 316 | var matchInfo = this.doiPattern.exec(href); 317 | if (matchInfo.length < this.doiGroup) { 318 | return; 319 | } 320 | var doiString = matchInfo[this.doiGroup]; 321 | var istexUrl = 'rft_id=info:doi/' + doiString; 322 | var newLink = this.buildButton(istexUrl); 323 | link.parentNode.insertBefore(newLink, link.nextSibling); 324 | link.setAttribute('name', 'ISTEXVisited'); 325 | }, 326 | 327 | createScopusLink: function(href, link) { 328 | var simpleHref = href.replace('https://' + this.scopusExternalLinkPrefix, ''); 329 | simpleHref = decodeURIComponent(simpleHref); 330 | var ind = simpleHref.indexOf('&'); 331 | if (ind !== -1) 332 | simpleHref = simpleHref.substring(0, ind); 333 | 334 | var matchInfo = this.doiPattern.exec(simpleHref); 335 | if (matchInfo.length < this.doiGroup) { 336 | return; 337 | } 338 | var doiString = matchInfo[this.doiGroup]; 339 | var istexUrl = 'rft_id=info:doi/' + doiString; 340 | var newLink = this.buildButton(istexUrl); 341 | newLink.setAttribute('style', 'visibility:visible;'); 342 | link.parentNode.insertBefore(newLink, link.nextSibling); 343 | link.setAttribute('name', 'ISTEXVisited'); 344 | }, 345 | 346 | createPubmedLink: function(href, link) { 347 | var istexUrl = 348 | href.replace( 349 | this.pubmedPattern, 350 | 'rft_id=info:pmid/$2&rft.genre=article,chapter,bookitem&svc.fulltext=yes' 351 | ); 352 | var newLink = this.buildButton(istexUrl); 353 | link.parentNode.insertBefore(newLink, link.nextSibling); 354 | link.setAttribute('name', 'ISTEXVisited'); 355 | }, 356 | 357 | createPIILink: function(href, link) { 358 | var matches = href.match(this.regexPIIPattern); 359 | if (matches && (matches.length > 0)) { 360 | var istexUrl = 'rft_id=info:' + matches[0] + '&rft.genre=article,chapter,bookitem&svc.fulltext=yes'; 361 | var newLink = this.buildButton(istexUrl); 362 | link.parentNode.insertBefore(newLink, link.nextSibling); 363 | link.setAttribute('name', 'ISTEXVisited'); 364 | } 365 | }, 366 | 367 | createGoogleScholarLink: function(href, link) { 368 | // we simply make the ISTEX button with the existing google scholar url (which will call the ISTEX OpenURL service) 369 | link.textContent = 'ISTEX'; 370 | link.name = 'ISTEXLink'; 371 | link.className = 'istex-link'; 372 | link.target = '_blank'; 373 | //link.setAttribute('name', 'ISTEXVisited'); 374 | }, 375 | 376 | // Wikipedia for instance is using COInS spans 377 | createSpanBasedLinks: function(doc) { 378 | // Detect latent OpenURL SPANS and replace them with ISTEX links 379 | var spans = doc.getElementsByTagName('span'); 380 | for (var i = 0, n = spans.length; i < n; i++) { 381 | var span = spans[i]; 382 | var query = span.getAttribute('title'); 383 | 384 | // /Z3988 means OpenURL 385 | var clazzes = span.getAttribute('class') === null ? '' : span.getAttribute('class'); 386 | var name = span.getAttribute('name') === null ? '' : span.getAttribute('name'); 387 | 388 | if ((name !== 'ISTEXVisited') && (clazzes.match(/Z3988/i) !== null)) { 389 | query += '&url_ver=' + ISTEXLinkInserter.openUrlVersion; 390 | var child = this.buildButton(query); 391 | span.appendChild(child); 392 | span.setAttribute('name', 'ISTEXVisited'); 393 | } 394 | 395 | 396 | } 397 | }, 398 | /** 399 | * Make the ISTEX button. 400 | * 401 | * @param {Object} href 402 | */ 403 | buildButton : function(href) { 404 | debug('making link: ' + this.openURLPrefix + href + '&noredirect&sid=istex-browser-addon'); 405 | 406 | var span = document.createElement('span'); 407 | this.makeChild(href, document, span); 408 | return span; 409 | }, 410 | 411 | createLink: function(resourceUrl) { 412 | // set the added link, this will avoid an extra call to the OpenURL API and fix the access url 413 | var a = document.createElement('a'); 414 | a.href = resourceUrl.replace('/original', '/pdf') 415 | a.target = '_blank'; 416 | a.alt = 'ISTEX'; 417 | a.name = 'ISTEXLink'; 418 | a.className = 'istex-link'; 419 | a.textContent = 'ISTEX'; 420 | 421 | return a; 422 | }, 423 | 424 | makeChild: function(href, document, parent) { 425 | var key = LZString.compress(href), 426 | resourceUrl 427 | ; 428 | 429 | // insert the sid in the openurl for usage statistics reason 430 | if (!~href.indexOf('sid=')) { 431 | // sid is alone in the given openurl 432 | href += '&sid=istex-browser-addon'; 433 | } else { 434 | // sid is not alone in the given openurl 435 | // then we have to handle special case if 436 | // the sid value is empty 437 | // (ex: ?foo=bar&sid= or ?sid=&foo=bar) 438 | if (/sid=(&|$)/.test(href)) { 439 | href = href.replace('sid=', 'sid=istex-browser-addon'); 440 | } else { 441 | href = href.replace('sid=', 'sid=istex-browser-addon,'); 442 | } 443 | } 444 | 445 | var sid = this.parseQuery(href).sid; 446 | 447 | if ((resourceUrl = localStorage.getItem(key))) { 448 | if (resourceUrl === NOT_AVAILABLE) { 449 | parent = null; 450 | return; 451 | } 452 | parent 453 | .appendChild( 454 | ISTEXLinkInserter.createLink(resourceUrl) 455 | ); 456 | return; 457 | } 458 | 459 | var requestUrl = ISTEXLinkInserter.openURLPrefix + href + '&noredirect' 460 | ; 461 | 462 | $.ajax( 463 | { 464 | url : requestUrl, 465 | timeout : 16000, 466 | tryCount: 0, 467 | maxRetry: 1, 468 | success : function(data) { 469 | parent 470 | && parent.appendChild( 471 | ISTEXLinkInserter.createLink(data.resourceUrl) 472 | ); 473 | }, 474 | error : function(jqXHR, textStatus, errorThrown) { 475 | logXhrError(requestUrl, errorThrown); 476 | if ( 477 | textStatus === 'timeout' 478 | && this.tryCount < this.maxRetry 479 | ) { 480 | info('Retry: ', this.url); 481 | this.tryCount++; 482 | return $.ajax(this); 483 | } 484 | // Todo fix the async behavior using callback style for element creation 485 | parent && parent.parentNode && parent.parentNode.removeChild(parent); 486 | }, 487 | complete: function(jqXHR) { 488 | if (~[200, 300, 404].indexOf(jqXHR.status)) { 489 | if (!localStorage.getLastRefresh()) { 490 | localStorage.setLastRefresh(); 491 | } 492 | localStorage.setItemOrClear(key, jqXHR.responseJSON.resourceUrl || NOT_AVAILABLE); 493 | } 494 | 495 | 496 | } 497 | } 498 | ); 499 | }, 500 | 501 | /** 502 | * To parse the querystring 503 | * (used for extracting sid value) 504 | */ 505 | parseQuery: function(qstr) { 506 | var query = {}, 507 | paires = qstr.substring(1).split('&'), 508 | paire 509 | ; 510 | for (var i = 0; i < paires.length; i++) { 511 | paire = paires[i].split('='); 512 | try { 513 | query[decodeURIComponent(paire[0])] 514 | = decodeURIComponent(paire[1] || ''); 515 | } catch (err) { 516 | error(err); 517 | } 518 | } 519 | return query; 520 | } 521 | 522 | }; 523 | 524 | // We need to remove trace of the old way refresh Timestamp 525 | if (localStorage.getItem('last-refesh')) { 526 | localStorage.clear(); 527 | } 528 | 529 | if (!localStorage.getLastRefresh()) { 530 | setTimeout(ISTEXLinkInserter.onDOMContentLoaded, 0); 531 | } else { 532 | info('Check data freshness'); 533 | $.ajax( 534 | { 535 | url : 'https://api.istex.fr/properties', 536 | timeout : 5000, 537 | tryCount: 0, 538 | maxRetry: 1, 539 | success : function(data) { 540 | if (data.corpus.lastUpdate > localStorage.getLastRefresh()) { 541 | localStorage.refresh(); 542 | } 543 | ISTEXLinkInserter.onDOMContentLoaded(); 544 | }, 545 | error : function(jqXHR, textStatus, errorThrown) { 546 | error(textStatus, errorThrown); 547 | if (textStatus === 'timeout' && this.tryCount < this.maxRetry) { 548 | info('Retry: ', this.url); 549 | this.tryCount++; 550 | return $.ajax(this); 551 | } 552 | ISTEXLinkInserter.onDOMContentLoaded(); 553 | } 554 | }); 555 | } 556 | 557 | 558 | 559 | -------------------------------------------------------------------------------- /src/content_scripts/storage.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 'use strict'; 3 | var LAST_REFRESH = 'istex-last-refresh' 4 | ; 5 | 6 | /** 7 | * nettoie Storage si la donnée la plus ancienne à plus d'un jour. 8 | * @returns null 9 | */ 10 | if (!Storage.prototype.refreshIfNeeded) { 11 | Storage.prototype.refreshIfNeeded = function() { 12 | var 13 | DAY = 86400000, 14 | lastRefresh = this.getLastRefresh(), 15 | refreshTime = DAY 16 | ; 17 | 18 | if (!lastRefresh || +lastRefresh + refreshTime < Date.now()) { 19 | this.refresh(); 20 | } 21 | }; 22 | } 23 | 24 | if (!Storage.prototype.getLastRefresh) { 25 | Storage.prototype.getLastRefresh = function() { 26 | return this.getItem(LAST_REFRESH); 27 | }; 28 | } 29 | 30 | if (!Storage.prototype.setLastRefresh) { 31 | Storage.prototype.setLastRefresh = function() { 32 | return this.setItemOrClear(LAST_REFRESH, Date.now()); 33 | }; 34 | } 35 | 36 | if (!Storage.prototype.refresh) { 37 | Storage.prototype.refresh = function() { 38 | this.clear(); 39 | this.setLastRefresh(); 40 | }; 41 | } 42 | 43 | 44 | if (!Storage.prototype.setItemOrCLear) { 45 | Storage.prototype.setItemOrClear = function(keyName, keyValue) { 46 | try { 47 | this.setItem(keyName, keyValue); 48 | } catch (e) { 49 | if (e instanceof DOMException && e.name === 'QuotaExceededError') { 50 | this.refresh(); 51 | } else { 52 | throw e; 53 | } 54 | } 55 | }; 56 | } 57 | 58 | /** 59 | * Sature le storage. Permet essentiellement de faire des tests. 60 | */ 61 | if (!Storage.prototype.saturate) { 62 | Storage.prototype.saturate = function() { 63 | var i = 1; 64 | while (i < 7500) { 65 | try { 66 | localStorage.setItem(i, 67 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec mollis neque felis, in efficitur tortor vestibulum id. Sed vitae lectus volutpat, vehicula quam id, condimentum lorem. Maecenas nec mauris eu risus posuere ultricies. Integer in ultrices sem. In tincidunt bibendum maximus. Proin consectetur elit orci, maximus suscipit mi finibus eu. Morbi aliquet urna eu diam mollis elementum. Maecenas tempor ultricies elit ac lacinia. Suspendisse pharetra eros suscipit vehicula pretium. Ut id iaculis nisi. In cursus felis ac dui malesuada malesuada. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce interdum, ante sit amet rhoncus commodo, turpis felis elementum ante, et viverra erat augue at urna. Vestibulum in tincidunt erat, vitae porta odio. Mauris commodo id diam vel vehicula.'); 68 | } 69 | catch (e) { 70 | throw e; 71 | } 72 | ++i; 73 | } 74 | }; 75 | } 76 | 77 | }()); 78 | -------------------------------------------------------------------------------- /src/content_scripts/tabBootstrap.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var port = chrome.runtime.connect(), 3 | page = { 4 | contentType: window.document.contentType 5 | } 6 | ; 7 | 8 | port.postMessage(page); 9 | -------------------------------------------------------------------------------- /src/icons/icon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istex-archives/istex-browser-extension/bee0055317571366997294c4e36aeb5cc05187da/src/icons/icon-48.png -------------------------------------------------------------------------------- /src/icons/istex-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istex-archives/istex-browser-extension/bee0055317571366997294c4e36aeb5cc05187da/src/icons/istex-128.png -------------------------------------------------------------------------------- /src/icons/istex-128.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istex-archives/istex-browser-extension/bee0055317571366997294c4e36aeb5cc05187da/src/icons/istex-128.xcf -------------------------------------------------------------------------------- /src/icons/istex-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istex-archives/istex-browser-extension/bee0055317571366997294c4e36aeb5cc05187da/src/icons/istex-16.png -------------------------------------------------------------------------------- /src/icons/istex-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istex-archives/istex-browser-extension/bee0055317571366997294c4e36aeb5cc05187da/src/icons/istex-48.png -------------------------------------------------------------------------------- /src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "applications": { 3 | "gecko": { 4 | "id": "istexwebextensionforreal@inist.fr", 5 | "strict_min_version": "49.0a2", 6 | "update_url": "https://addons.istex.fr/download/updates.json" 7 | } 8 | }, 9 | "manifest_version": 2, 10 | "name": "ISTEX", 11 | "version": "1.3.1", 12 | "description": "An add-on for identifying ISTEX resources in the browser pages", 13 | "icons": { 14 | "16": "icons/istex-16.png", 15 | "48": "icons/istex-48.png" 16 | }, 17 | "permissions": [ 18 | "", 19 | "tabs", 20 | "webNavigation" 21 | ], 22 | "background": { 23 | "scripts": ["background/postInstall.js", "background/tabBootstrap.js"] 24 | }, 25 | "options_ui": { 26 | "page": "options/options.html" 27 | }, 28 | "content_scripts": [{ 29 | "matches": [ 30 | "" 31 | ], 32 | "js": [ 33 | "content_scripts/tabBootstrap.js" 34 | ], 35 | "css": [ 36 | "content_scripts/main.css" 37 | ] 38 | }, { 39 | "matches": [ 40 | "*://scholar.google.fr/*3094930661629783031*", "*://scholar.google.com/*3094930661629783031*" 41 | ], 42 | "js": [ 43 | "vendors/jquery-3.2.1.js", 44 | "content_scripts/gs-pref.js" 45 | ] 46 | }] 47 | } 48 | -------------------------------------------------------------------------------- /src/options/options.css: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | font-size: 100%; 4 | background-color: #EEE; 5 | } 6 | 7 | #options { 8 | text-align: justify; 9 | border-radius: 5px; 10 | position: relative; 11 | width: 500px; 12 | margin: 0px auto; 13 | background-color: white; 14 | border: 1px solid #D2DBED; 15 | padding-left: 10px; 16 | padding-right: 10px; 17 | height: 240px; 18 | -webkit-box-shadow: #888 2px 2px 2px; 19 | } 20 | 21 | .accept { 22 | background-color: green; 23 | float: right; 24 | margin-bottom: 10px; 25 | margin-right: 5px; 26 | color: black; 27 | } 28 | 29 | .skip { 30 | background-color: red; 31 | float: right; 32 | margin-bottom: 10px; 33 | margin-right: 5px; 34 | color: black; 35 | } -------------------------------------------------------------------------------- /src/options/options.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |

Activer la bibliothèque ISTEX pour Google Scholar ? 12 |

13 |

Si vous utilisez Google Scholar, vous pouvez installer de manière automatique la bibliothèque ISTEX. Ceci vous permettra de pouvoir consulter les documents de la base ISTEX directement dans vos résultats de recherche. L'installation ouvrira deux nouvelles fenêtres qui se fermeront automatiquement dès lors que l'installation se termine.

14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/options/options.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // if mode is not 0, we are in installation and mode gives the number of tabs opened with plugin install, 4 | // otherwise mode is 0 and nothing shall be closed automatically to avoid an ISTEX totalitarian behaviour 5 | var mode = 0; 6 | var optionsTabId; 7 | var istexLibraryId = "2733342842941555958"; //2733342842941555958; 8 | 9 | document.addEventListener('click', (e) => { 10 | 11 | if (e.target.classList.contains('accept')) { 12 | console.log('Accepter'); 13 | 14 | mode = 2; 15 | 16 | chrome.tabs.query({ currentWindow: true, active: true }, function(optionTab) { 17 | optionsTabId = optionTab[0].id; 18 | 19 | $.ajax({ 20 | url: "https://scholar.google.fr/scholar_setprefs?instq=istex", 21 | dataType: 'html' 22 | }).done(function(data) { 23 | var parser = new DOMParser(), 24 | doc = parser.parseFromString(data, "text/html"); 25 | istexLibraryId = doc.getElementsByName('inst')[0].value; 26 | console.log(istexLibraryId); 27 | 28 | chrome.tabs.create({ 29 | //url: "https://scholar.google.fr/scholar_setprefs?sciifh=1&inststart=0&num=10&scis=no&scisf=4&instq=istex&inst=3094930661629783031&context=istex&save=#2" 30 | url: "https://scholar.google.fr/scholar_setprefs?instq=istex&inst=" + istexLibraryId + "&ctxt=istex&save=#2" 31 | }); 32 | 33 | chrome.tabs.create({ 34 | //url: "https://scholar.google.fr/scholar_setprefs?sciifh=1&inststart=0&num=10&scis=no&scisf=4&instq=istex&inst=3094930661629783031&context=istex&save=#2" 35 | url: "https://scholar.google.com/scholar_setprefs?instq=istex&inst=" + istexLibraryId + "&ctxt=istex&save=#2" 36 | }); 37 | 38 | 39 | }); 40 | }); 41 | }; 42 | 43 | if (e.target.classList.contains('skip')) { 44 | console.log('Passer'); 45 | chrome.tabs.query({ currentWindow: true, active: true }, function(tab) { 46 | chrome.tabs.remove(tab[0].id); 47 | }); 48 | }; 49 | }); 50 | 51 | var filter = { 52 | url: [{ 53 | hostContains: "scholar.google" 54 | }] 55 | }; 56 | 57 | var scholarTabsIds = []; 58 | 59 | var listener = function(details) { 60 | // First time, we save 61 | if (scholarTabsIds.indexOf(details.tabId) === -1) { 62 | console.log('Complete ' + details.tabId); 63 | chrome.tabs.executeScript(details.tabId, { 64 | code: 'document.getElementsByName("save")[0].click();' 65 | }, function(result) { 66 | console.log('Script OK'); 67 | scholarTabsIds.push(details.tabId); 68 | }); 69 | } else { 70 | // Second time, we close 71 | console.log('AfterSave ' + details.tabId); 72 | chrome.tabs.remove(details.tabId); 73 | mode--; 74 | if (mode === 0) { 75 | chrome.webNavigation.onCompleted.removeListener(listener); 76 | chrome.tabs.remove(optionsTabId); 77 | } 78 | } 79 | }; 80 | 81 | chrome.webNavigation.onCompleted.addListener(listener, filter); -------------------------------------------------------------------------------- /src/vendors/lz-string.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013 Pieroxy 2 | // This work is free. You can redistribute it and/or modify it 3 | // under the terms of the WTFPL, Version 2 4 | // For more information see LICENSE.txt or http://www.wtfpl.net/ 5 | // 6 | // For more information, the home page: 7 | // http://pieroxy.net/blog/pages/lz-string/testing.html 8 | // 9 | // LZ-based compression algorithm, version 1.4.4 10 | var LZString = (function() { 11 | 12 | // private property 13 | var f = String.fromCharCode; 14 | var keyStrBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; 15 | var keyStrUriSafe = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$"; 16 | var baseReverseDic = {}; 17 | 18 | function getBaseValue(alphabet, character) { 19 | if (!baseReverseDic[alphabet]) { 20 | baseReverseDic[alphabet] = {}; 21 | for (var i=0 ; i>> 8; 66 | buf[i*2+1] = current_value % 256; 67 | } 68 | return buf; 69 | }, 70 | 71 | //decompress from uint8array (UCS-2 big endian format) 72 | decompressFromUint8Array:function (compressed) { 73 | if (compressed===null || compressed===undefined){ 74 | return LZString.decompress(compressed); 75 | } else { 76 | var buf=new Array(compressed.length/2); // 2 bytes per character 77 | for (var i=0, TotalLen=buf.length; i> 1; 159 | } 160 | } else { 161 | value = 1; 162 | for (i=0 ; i> 1; 184 | } 185 | } 186 | context_enlargeIn--; 187 | if (context_enlargeIn == 0) { 188 | context_enlargeIn = Math.pow(2, context_numBits); 189 | context_numBits++; 190 | } 191 | delete context_dictionaryToCreate[context_w]; 192 | } else { 193 | value = context_dictionary[context_w]; 194 | for (i=0 ; i> 1; 204 | } 205 | 206 | 207 | } 208 | context_enlargeIn--; 209 | if (context_enlargeIn == 0) { 210 | context_enlargeIn = Math.pow(2, context_numBits); 211 | context_numBits++; 212 | } 213 | // Add wc to the dictionary. 214 | context_dictionary[context_wc] = context_dictSize++; 215 | context_w = String(context_c); 216 | } 217 | } 218 | 219 | // Output the code for w. 220 | if (context_w !== "") { 221 | if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) { 222 | if (context_w.charCodeAt(0)<256) { 223 | for (i=0 ; i> 1; 244 | } 245 | } else { 246 | value = 1; 247 | for (i=0 ; i> 1; 269 | } 270 | } 271 | context_enlargeIn--; 272 | if (context_enlargeIn == 0) { 273 | context_enlargeIn = Math.pow(2, context_numBits); 274 | context_numBits++; 275 | } 276 | delete context_dictionaryToCreate[context_w]; 277 | } else { 278 | value = context_dictionary[context_w]; 279 | for (i=0 ; i> 1; 289 | } 290 | 291 | 292 | } 293 | context_enlargeIn--; 294 | if (context_enlargeIn == 0) { 295 | context_enlargeIn = Math.pow(2, context_numBits); 296 | context_numBits++; 297 | } 298 | } 299 | 300 | // Mark the end of the stream 301 | value = 2; 302 | for (i=0 ; i> 1; 312 | } 313 | 314 | // Flush the last char 315 | while (true) { 316 | context_data_val = (context_data_val << 1); 317 | if (context_data_position == bitsPerChar-1) { 318 | context_data.push(getCharFromInt(context_data_val)); 319 | break; 320 | } 321 | else context_data_position++; 322 | } 323 | return context_data.join(''); 324 | }, 325 | 326 | decompress: function (compressed) { 327 | if (compressed == null) return ""; 328 | if (compressed == "") return null; 329 | return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); }); 330 | }, 331 | 332 | _decompress: function (length, resetValue, getNextValue) { 333 | var dictionary = [], 334 | next, 335 | enlargeIn = 4, 336 | dictSize = 4, 337 | numBits = 3, 338 | entry = "", 339 | result = [], 340 | i, 341 | w, 342 | bits, resb, maxpower, power, 343 | c, 344 | data = {val:getNextValue(0), position:resetValue, index:1}; 345 | 346 | for (i = 0; i < 3; i += 1) { 347 | dictionary[i] = i; 348 | } 349 | 350 | bits = 0; 351 | maxpower = Math.pow(2,2); 352 | power=1; 353 | while (power!=maxpower) { 354 | resb = data.val & data.position; 355 | data.position >>= 1; 356 | if (data.position == 0) { 357 | data.position = resetValue; 358 | data.val = getNextValue(data.index++); 359 | } 360 | bits |= (resb>0 ? 1 : 0) * power; 361 | power <<= 1; 362 | } 363 | 364 | switch (next = bits) { 365 | case 0: 366 | bits = 0; 367 | maxpower = Math.pow(2,8); 368 | power=1; 369 | while (power!=maxpower) { 370 | resb = data.val & data.position; 371 | data.position >>= 1; 372 | if (data.position == 0) { 373 | data.position = resetValue; 374 | data.val = getNextValue(data.index++); 375 | } 376 | bits |= (resb>0 ? 1 : 0) * power; 377 | power <<= 1; 378 | } 379 | c = f(bits); 380 | break; 381 | case 1: 382 | bits = 0; 383 | maxpower = Math.pow(2,16); 384 | power=1; 385 | while (power!=maxpower) { 386 | resb = data.val & data.position; 387 | data.position >>= 1; 388 | if (data.position == 0) { 389 | data.position = resetValue; 390 | data.val = getNextValue(data.index++); 391 | } 392 | bits |= (resb>0 ? 1 : 0) * power; 393 | power <<= 1; 394 | } 395 | c = f(bits); 396 | break; 397 | case 2: 398 | return ""; 399 | } 400 | dictionary[3] = c; 401 | w = c; 402 | result.push(c); 403 | while (true) { 404 | if (data.index > length) { 405 | return ""; 406 | } 407 | 408 | bits = 0; 409 | maxpower = Math.pow(2,numBits); 410 | power=1; 411 | while (power!=maxpower) { 412 | resb = data.val & data.position; 413 | data.position >>= 1; 414 | if (data.position == 0) { 415 | data.position = resetValue; 416 | data.val = getNextValue(data.index++); 417 | } 418 | bits |= (resb>0 ? 1 : 0) * power; 419 | power <<= 1; 420 | } 421 | 422 | switch (c = bits) { 423 | case 0: 424 | bits = 0; 425 | maxpower = Math.pow(2,8); 426 | power=1; 427 | while (power!=maxpower) { 428 | resb = data.val & data.position; 429 | data.position >>= 1; 430 | if (data.position == 0) { 431 | data.position = resetValue; 432 | data.val = getNextValue(data.index++); 433 | } 434 | bits |= (resb>0 ? 1 : 0) * power; 435 | power <<= 1; 436 | } 437 | 438 | dictionary[dictSize++] = f(bits); 439 | c = dictSize-1; 440 | enlargeIn--; 441 | break; 442 | case 1: 443 | bits = 0; 444 | maxpower = Math.pow(2,16); 445 | power=1; 446 | while (power!=maxpower) { 447 | resb = data.val & data.position; 448 | data.position >>= 1; 449 | if (data.position == 0) { 450 | data.position = resetValue; 451 | data.val = getNextValue(data.index++); 452 | } 453 | bits |= (resb>0 ? 1 : 0) * power; 454 | power <<= 1; 455 | } 456 | dictionary[dictSize++] = f(bits); 457 | c = dictSize-1; 458 | enlargeIn--; 459 | break; 460 | case 2: 461 | return result.join(''); 462 | } 463 | 464 | if (enlargeIn == 0) { 465 | enlargeIn = Math.pow(2, numBits); 466 | numBits++; 467 | } 468 | 469 | if (dictionary[c]) { 470 | entry = dictionary[c]; 471 | } else { 472 | if (c === dictSize) { 473 | entry = w + w.charAt(0); 474 | } else { 475 | return null; 476 | } 477 | } 478 | result.push(entry); 479 | 480 | // Add w+entry[0] to the dictionary. 481 | dictionary[dictSize++] = w + entry.charAt(0); 482 | enlargeIn--; 483 | 484 | w = entry; 485 | 486 | if (enlargeIn == 0) { 487 | enlargeIn = Math.pow(2, numBits); 488 | numBits++; 489 | } 490 | 491 | } 492 | } 493 | }; 494 | return LZString; 495 | })(); 496 | 497 | if (typeof define === 'function' && define.amd) { 498 | define(function () { return LZString; }); 499 | } else if( typeof module !== 'undefined' && module != null ) { 500 | module.exports = LZString 501 | } else if( typeof angular !== 'undefined' && angular != null ) { 502 | angular.module('LZString', []) 503 | .factory('LZString', function () { 504 | return LZString; 505 | }); 506 | } 507 | -------------------------------------------------------------------------------- /test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 | Ceci est un Doi 10.1038/141074a0 9 | 10.1007/BFb0110400 10 | 10.1007/BFb0040085 11 | 10.1007/978-3-540-40896-3 12 | 10.1007/BFb0007541 13 | 10.1007/BFb0044259 14 | 10.1007/BFb0044376 15 | 10.1007/BFb0015122 16 | 10.1007/978-1-84800-233-3 17 | 10.1007/BFb0005627 18 | 10.1007/BFb0006880 19 | 10.1007/BFb0044338 20 | 10.1007/3-540-19862-8 21 | 10.1007/BFb0044771 22 | 10.1007/b98632 23 | 10.1007/978-3-540-73347-8 24 | 10.1007/b105110 25 | 10.1007/BFb0110391 26 | 10.1007/978-3-642-22164-4 27 | 10.1007/BFb0004939 28 | 10.1007/BFb0032146 29 | 10.1007/BFb0115017 30 | 10.1007/BFb0038914 31 | 10.1007/BFb0003249 32 | 10.1007/978-3-540-70803-2 33 | 10.1007/978-3-540-71560-3 34 | 10.1007/978-3-540-71119-3 35 | 10.1007/978-3-540-76336-9 36 | 10.1007/978-3-642-17955-6 37 | 10.1007/3-540-09763-5 38 | 10.1007/978-3-642-10646-0 39 | 10.1007/BFb0028154 40 | 10.1007/11572831 41 | 10.1007/978-3-540-77026-8 42 | 10.1007/b100256 43 | 10.1007/3-540-45644-9 44 | 10.1007/3-540-68671-1 45 | 10.1007/3-540-36576-1 46 | 10.1007/b71656 47 | 10.1007/978-3-540-87779-0 48 | 10.1007/978-3-540-85855-3 49 | 10.1007/3-540-61580-6 50 | 10.1007/3-540-46145-0 51 | 10.1007/3-540-11172-7 52 | 10.1007/978-3-540-87353-2 53 | 10.1007/3-540-58095-6 54 | 10.1007/BFb0028542 55 | 10.1007/b101756 56 | 10.1007/3-540-61292-0 57 | 10.1007/11555261 58 | 10.1007/BFb0052172 59 | 10.1007/11780274 60 | 10.1007/3-540-16761-7 61 | 10.1007/3-540-45153-6 62 | 10.1007/3-540-44681-8 63 | 10.1007/3-540-45575-2 64 | 10.1007/3-540-18779-0 65 | 10.1007/3-540-44831-4 66 | 10.1007/11946465 67 | 10.1007/11751632 68 | 10.1007/978-3-642-19858-8 69 | 10.1007/b13983 70 | 10.1007/978-3-642-03764-1 71 | 10.1007/978-3-540-77345-0 72 | 10.1007/978-3-642-20674-0 73 | 10.1007/3-540-45798-4 74 | 10.1007/b105772 75 | 10.1007/3-540-62927-0 76 | 10.1007/3-540-51734-0 77 | 10.1007/3-540-63138-0 78 | 10.1007/978-3-540-73228-0 79 | 10.1007/3-540-10856-4 80 | 10.1007/978-3-642-21455-4 81 | 10.1007/3-540-58520-6 82 | 10.1007/10722028 83 | 10.1007/3-540-45324-5 84 | 10.1007/978-3-540-77086-2 85 | 10.1007/978-3-540-74200-5 86 | 10.1007/3-540-63875-X 87 | 10.1007/11836025 88 | 10.1007/978-3-642-21034-1 89 | 10.1007/978-3-642-27269-1 90 | 10.1007/b94064 91 | 10.1007/b104020 92 | 10.1007/BFb0013976 93 | 10.1007/978-3-642-15877-3 94 | 10.1007/BFb0016229 95 | 10.1007/3-540-59496-5 96 | 10.1007/978-3-540-77566-9 97 | 10.1007/11752578 98 | 10.1007/978-3-642-11389-5 99 | 10.1007/11946441 100 | 10.1007/3-540-48910-X 101 | 10.1007/978-3-540-74240-1 102 | 10.1007/978-3-540-71103-2 103 | 10.1007/978-3-540-73345-4 104 | 10.1007/978-3-642-15892-6 105 | 10.1007/3-540-53669-8 106 | 10.1007/978-3-540-79707-4 107 | 10.1007/978-3-540-74309-5 108 | 10.1007/3-540-45812-3 109 | 10.1007/978-3-540-72731-6 110 | 10.1007/3-540-45412-8 111 | 10.1007/978-3-642-23687-7 112 | 10.1007/978-3-642-01001-9 113 | 10.1007/978-3-642-14400-4 114 | 10.1007/11730637 115 | 10.1007/3-540-07623-9 116 | 10.1007/b95547 117 | 10.1007/BFb0023017 118 | 10.1007/978-3-642-12133-3 119 | 10.1007/978-3-642-13731-0 120 | 10.1007/11788713 121 | 10.1007/11732990 122 | 10.1007/3-540-45876-X 123 | 10.1007/b93926 124 | 10.1007/11766247 125 | 10.1007/b12013 126 | 10.1007/b103383 127 | 10.1007/978-3-540-73729-2 128 | 10.1007/978-3-540-87875-9 129 | 10.1007/978-3-540-31484-4 130 | 10.1007/11535294 131 | 10.1007/11788911 132 | 10.1007/978-3-540-88688-4 133 | 10.1007/978-3-540-93920-7 134 | 10.1007/978-3-642-18006-4 135 | 10.1007/3-540-48447-7 136 | 10.1007/978-3-642-11355-0 137 | 10.1007/11677482 138 | 10.1007/3-540-50667-5 139 | 10.1007/b104576 140 | 10.1007/b136983 141 | 10.1007/11807964 142 | 10.1007/3-540-58235-5 143 | 10.1007/978-3-540-74626-3 144 | 10.1007/978-3-540-89439-1 145 | 10.1007/b11818 146 | 10.1007/BFb0015401 147 | 10.1007/b136248 148 | 10.1007/978-3-642-13190-5 149 | 10.1007/BFb0027773 150 | 10.1007/11891451 151 | 10.1007/3-540-44543-9 152 | 10.1007/b104218 153 | 10.1007/b107072 154 | 10.1007/978-3-540-68679-8 155 | 10.1007/11583592 156 | 10.1007/978-0-85729-959-8 157 | 10.1007/BFb0007360 158 | 10.1007/11751571 159 | 10.1007/BFb0007271 160 | 10.1007/978-3-540-70536-9 161 | 10.1007/BFb0041228 162 | 10.1007/BFb0110609 163 | 10.1007/3-540-16662-9 164 | 10.1007/BFb0111251 165 | 10.1007/b93641 166 | 10.1007/978-3-642-16887-1 167 | 10.1007/BFb0111279 168 | 10.1007/BFb0027733 169 | 10.1007/11375753 170 | 10.1007/BFb0111231 171 | 10.1007/978-3-642-24571-8 172 | 10.1007/BFb0017126 173 | 10.1007/3-540-45739-9 174 | 10.1007/b95942 175 | 10.1007/3-540-44686-9 176 | 10.1007/3-540-46422-0 177 | 10.1007/11821069 178 | 10.1007/11817963 179 | 10.1007/3-540-45825-5 180 | 10.1007/BFb0053026 181 | 10.1007/BFb0027114 182 | 10.1007/BFb0015232 183 | 10.1007/978-3-642-15369-3 184 | 10.1007/978-3-642-04388-8 185 | 10.1007/978-3-642-02303-3 186 | 10.1007/BFb0095085 187 | 10.1007/3-540-46506-5 188 | 10.1007/978-3-540-69158-7 189 | 10.1007/3-540-63139-9 190 | 10.1007/3-540-59449-3 191 | 10.1007/3-540-45034-3 192 | 10.1007/3-540-17189-4 193 | 10.1007/3-540-45460-8 194 | 10.1007/BFb0027303 195 | 10.1007/3-540-11981-7 196 | 10.1007/3-540-60865-6 197 | 10.1007/978-3-642-00582-4 198 | 10.1007/978-3-642-18123-8 199 | 10.1007/978-3-642-20832-4 200 | 10.1007/978-3-540-71505-4 201 | 10.1007/3-540-63135-6 202 | 10.1007/3-540-55546-3 203 | 10.1007/3-540-45352-0 204 | 10.1007/b102261 205 | 10.1007/978-3-642-10442-8 206 | 10.1007/b12334 207 | 10.1007/3-540-57292-9 208 | 10.1007/978-3-642-13654-2 209 | 10.1007/3-540-44583-8 210 | 10.1007/3-540-63791-5 211 | 10.1007/978-3-642-01513-7 212 | 10.1007/978-3-642-16867-3 213 | 10.1007/3-540-55613-3 214 | 10.1007/11546924 215 | 10.1007/978-3-540-76719-0 216 | 10.1007/3-540-63104-6 217 | 10.1007/978-3-642-16949-6 218 | 10.1007/978-3-642-25073-6 219 | 10.1007/978-3-642-18446-8 220 | 10.1007/3-540-45984-7 221 | 10.1007/978-3-642-25821-3 222 | 10.1007/978-3-642-15835-3 223 | 10.1007/b13952 224 | 10.1007/3-540-57332-1 225 | 10.1007/11780823 226 | 10.1007/11767954 227 | 10.1007/3-540-60220-8 228 | 10.1007/978-3-642-02556-3 229 | 10.1007/978-3-540-74628-7 230 | 10.1007/3-540-45435-7 231 | 10.1007/3-540-61044-8 232 | 10.1007/978-3-540-78967-3 233 | 10.1007/11944577 234 | 10.1007/3-540-60627-0 235 | 10.1007/BFb0055753 236 | 10.1007/11561071 237 | 10.1007/978-3-540-69858-6 238 | 10.1007/978-3-540-69338-3 239 | 10.1007/978-3-642-11509-7 240 | 10.1007/11776420 241 | 10.1007/3-540-61630-6 242 | 10.1007/11889700 243 | 10.1007/978-3-642-14355-7 244 | 10.1007/978-3-642-04174-7 245 | 10.1007/978-3-642-02655-3 246 | 10.1007/978-3-642-19211-1 247 | 10.1007/978-3-540-77094-7 248 | 10.1007/BFb0030514 249 | 10.1007/3-540-58266-5 250 | 10.1007/BFb0100559 251 | 10.1007/b98756 252 | 10.1007/3-540-52885-7 253 | 10.1007/11538363 254 | 10.1007/978-3-642-23623-5 255 | 10.1007/3-540-44522-6 256 | 10.1007/BFb0095252 257 | 10.1007/11573067 258 | 10.1007/978-3-540-74061-2 259 | 10.1007/978-3-642-11245-4 260 | 10.1007/978-3-642-03829-7 261 | 10.1007/BFb0016366 262 | 10.1007/3-540-59071-4 263 | 10.1007/978-3-642-28148-8 264 | 10.1007/b98634 265 | 10.1007/b107136 266 | 10.1007/BFb0020864 267 | 10.1007/3-540-48228-8 268 | 10.1007/3-540-58140-5 269 | 10.1007/978-3-540-87696-0 270 | 10.1007/11679219 271 | 10.1007/3-540-45683-X 272 | 10.1007/978-3-642-18184-9 273 | 10.1007/b88579 274 | 10.1007/978-3-642-12837-0 275 | 10.1007/3-540-45323-7 276 | 10.1007/11832072 277 | 10.1007/3-540-45032-7 278 | 10.1007/3-540-36617-2 279 | 10.1007/11550648 280 | 10.1007/3-540-45747-X 281 | 10.1007/b94902 282 | 10.1007/11839088 283 | 10.1007/978-3-540-77444-0 284 | 10.1007/3-540-60925-3 285 | 10.1007/b136076 286 | 10.1007/978-3-540-76928-6 287 | 10.1007/3-540-45923-5 288 | 10.1007/b106130 289 | 10.1007/978-3-540-74984-4 290 | 10.1007/11741060 291 | 10.1007/3-540-45770-4 292 | 10.1007/3-540-44676-1 293 | 10.1007/978-3-540-88415-6 294 | 10.1007/b135780 295 | 10.1007/BFb0045408 296 | 10.1007/BFb0046179 297 | 10.1007/11579328 298 | 10.1007/978-3-642-14995-5 299 | 10.1007/BFb0051611 300 | 10.1007/978-3-642-01872-5 301 | 10.1007/BFb0042076 302 | 10.1007/BFb0032266 303 | 10.1007/BFb0110037 304 | 10.1007/BFb0113266 305 | 10.1007/BFb0043387 306 | 10.1007/978-1-4471-2506-8 307 | 10.1007/BFb0051148 308 | 10.1007/3-540-12478-0 309 | 10.1007/BFb0051468 310 | 10.1007/BFb0040220 311 | 10.1007/BFb0046190 312 | 10.1007/BFb0039443 313 | 10.1007/BFb0043199 314 | 10.1007/11576228 315 | 10.1007/b98149 316 | 10.1007/978-3-540-89639-5 317 | 10.1007/3-540-36231-2 318 | 10.1007/978-3-642-23291-6 319 | 10.1007/b13960 320 | 10.1007/3-540-36978-3 321 | 10.1007/3-540-07016-8 322 | 10.1007/11864349 323 | 10.1007/3-540-48970-3 324 | 10.1007/978-3-642-21822-4 325 | 10.1007/BFb0054977 326 | 10.1007/978-3-540-78155-4 327 | 10.1007/3-540-39466-4 328 | 10.1007/b137498 329 | 10.1007/978-3-642-14527-8 330 | 10.1007/b137785 331 | 10.1007/b94790 332 | 10.1007/978-3-642-25364-5 333 | 10.1007/3-540-44418-1 334 | 10.1007/978-3-540-76969-9 335 | 10.1007/b95631 336 | 10.1007/3-540-58811-6 337 | 10.1007/3-540-48873-1 338 | 10.1007/978-3-642-00659-3 339 | 10.1007/BFb0055296 340 | 10.1007/3-540-48319-5 341 | 10.1007/b135595 342 | 10.1007/978-3-540-73551-9 343 | 10.1007/11612032 344 | 10.1007/11682127 345 | 10.1007/11751595 346 | 10.1007/3-540-46621-5 347 | 10.1007/978-3-540-76993-4 348 | 10.1007/978-3-540-71039-4 349 | 10.1007/b99075 350 | 10.1007/978-3-642-23822-2 351 | 10.1007/978-3-540-87391-4 352 | 10.1007/978-3-642-13754-9 353 | 10.1007/BFb0029350 354 | 10.1007/978-3-642-15485-0 355 | 10.1007/BFb0055330 356 | 10.1007/11678816 357 | 10.1007/978-3-540-74871-7 358 | 10.1007/978-3-642-23441-5 359 | 10.1007/11745693 360 | 10.1007/978-3-540-69336-9 361 | 10.1007/3-540-57271-6 362 | 10.1007/BFb0053010 363 | 10.1007/3-540-57529-4 364 | 10.1007/3-540-45451-9 365 | 10.1007/BFb0097770 366 | 10.1007/978-3-642-12101-2 367 | 10.1007/11733447 368 | 10.1007/978-3-540-70874-2 369 | 10.1007/11559221 370 | 10.1007/BFb0012819 371 | 10.1007/978-3-642-23094-3 372 | 10.1007/11914952 373 | 10.1007/3-540-47979-1 374 | 10.1007/3-540-55510-2 375 | 10.1007/11915072 376 | 10.1007/11670834 377 | 10.1007/978-3-540-88625-9 378 | 10.1007/978-3-642-02767-3 379 | 10.1007/978-3-540-75211-0 380 | 10.1007/978-3-642-02774-1 381 | 10.1007/BFb0019994 382 | 10.1007/3-540-36618-0 383 | 10.1007/978-3-642-15883-4 384 | 10.1007/11965893 385 | 10.1007/3-540-63465-7 386 | 10.1007/978-3-642-18026-2 387 | 10.1007/11691792 388 | 10.1007/b98246 389 | 10.1007/3-540-44593-5 390 | 10.1007/3-540-45841-7 391 | 10.1007/3-540-59175-3 392 | 10.1007/b13474 393 | 10.1007/978-3-642-02734-5 394 | 10.1007/b98053 395 | 10.1007/978-3-642-23232-9 396 | 10.1007/978-3-642-16873-4 397 | 10.1007/b136790 398 | 10.1007/978-3-540-69902-6 399 | 10.1007/3-540-36384-X 400 | 10.1007/b100348 401 | 10.1007/3-540-35767-X 402 | 10.1007/978-3-642-10439-8 403 | 10.1007/978-3-642-22944-2 404 | 10.1007/3-540-58808-6 405 | 10.1007/b12032 406 | 10.1007/978-3-642-15989-3 407 | 10.1007/3-540-54496-8 408 | 10.1007/b97945 409 | 10.1007/978-3-642-04592-9 410 | 10.1007/978-3-642-11805-0 411 | 10.1007/3-540-45861-1 412 | 10.1007/978-3-540-77360-3 413 | 10.1007/978-3-540-70715-8 414 | 10.1007/b100351 415 | 10.1007/978-3-540-74469-6 416 | 10.1007/978-3-540-79043-3 417 | 10.1007/978-3-642-11814-2 418 | 10.1007/978-3-642-00599-2 419 | 10.1007/978-3-642-18378-2 420 | 10.1007/978-3-642-04277-5 421 | 10.1007/b11926 422 | 10.1007/978-3-642-23038-7 423 | 10.1007/3-540-40057-5 424 | 10.1007/3-540-52559-9 425 | 10.1007/978-3-642-19260-9 426 | 10.1007/3-540-44612-5 427 | 10.1007/978-3-540-85053-3 428 | 10.1007/11872436 429 | 10.1007/3-540-44990-6 430 | 10.1007/b75249 431 | 10.1007/978-3-642-04930-9 432 | 10.1007/BFb0030990 433 | 10.1007/BFb0004521 434 | 10.1007/978-3-540-72699-9 435 | 10.1007/BFb0043065 436 | 10.1007/BFb0041009 437 | 10.1007/BFb0036078 438 | 10.1007/BFb0114641 439 | 10.1007/BFb0027699 440 | 10.1007/978-3-642-14837-8 441 | 10.1007/3-540-57729-7 442 | 10.1007/BFb0044736 443 | 10.1007/BFb0044544 444 | 10.1007/978-3-642-20502-6 445 | 10.1007/BFb0119075 446 | 10.1007/b95398 447 | 10.1007/BFb0027725 448 | 10.1007/978-3-540-95980-9 449 | 10.1007/BFb0120023 450 | 10.1007/BFb0047683 451 | 10.1007/BFb0110016 452 | 10.1007/BFb0042858 453 | 10.1007/b105592 454 | 10.1007/978-3-642-11476-2 455 | 10.1007/3-540-48432-9 456 | 10.1007/978-3-642-15420-1 457 | 10.1007/BFb0022546 458 | 10.1007/3-540-54742-8 459 | 10.1007/BFb0054963 460 | 10.1007/978-3-540-72397-4 461 | 10.1007/b100228 462 | 10.1007/978-3-642-23208-4 463 | 10.1007/978-3-540-85758-7 464 | 10.1007/3-540-45104-8 465 | 10.1007/978-3-540-85735-8 466 | 10.1007/3-540-48743-3 467 | 10.1007/978-3-540-87412-6 468 | 10.1007/978-3-642-15579-6 469 | 10.1007/978-3-540-93799-9 470 | 10.1007/b97867 471 | 10.1007/11853107 472 | 10.1007/11542322 473 | 10.1007/3-540-57155-8 474 | 10.1007/3-540-36577-X 475 | 10.1007/978-3-642-12127-2 476 | 10.1007/978-3-642-05301-6 477 | 10.1007/3-540-56992-8 478 | 10.1007/b11928 479 | 10.1007/3-540-48253-9 480 | 10.1007/11546382 481 | 10.1007/978-3-540-75755-9 482 | 10.1007/3-540-11980-9 483 | 10.1007/3-540-17220-3 484 | 10.1007/3-540-49255-0 485 | 10.1007/BFb0025796 486 | 10.1007/11744047 487 | 10.1007/3-540-61042-1 488 | 10.1007/978-3-540-73400-0 489 | 10.1007/978-3-642-03339-1 490 | 10.1007/BFb0055923 491 | 10.1007/3-540-52148-8 492 | 10.1007/BFb0026744 493 | 10.1007/3-540-60218-6 494 | 10.1007/11734673 495 | 10.1007/978-3-642-21691-6 496 | 10.1007/978-3-642-12712-0 497 | 10.1007/978-3-642-16761-4 498 | 10.1007/978-3-642-13977-2 499 | 10.1007/978-3-642-21827-9 500 | 10.1007/b136257 501 | 10.1007/3-540-68339-9 502 | 10.1007/BFb0013875 503 | 10.1007/BFb0019438 504 | 10.1007/3-540-58265-7 505 | 10.1007/b98080 506 | 10.1007/3-540-07186-5 507 | 10.1007/3-540-55253-7 508 | 10.1007/3-540-45150-1 509 | 10.1007/11578079 510 | 10.1007/3-540-57312-7 511 | 10.1007/3-540-63576-9 512 | 10.1007/3-540-49213-5 513 | 10.1007/BFb0018988 514 | 10.1007/11561927 515 | 10.1007/3-540-44802-0 516 | 10.1007/BFb0020124 517 | 10.1007/11538394 518 | 10.1007/3-540-45801-8 519 | 10.1007/11871842 520 | 10.1007/3-540-60117-1 521 | 10.1007/BFb0022134 522 | 10.1007/978-3-642-02457-3 523 | 10.1007/978-3-540-92781-5 524 | 10.1007/BFb0020846 525 | 10.1007/3-540-44554-4 526 | 10.1007/3-540-52055-4 527 | 10.1007/978-3-540-78671-9 528 | 10.1007/978-3-642-15025-8 529 | 10.1007/3-540-46525-1 530 | 10.1007/b99563 531 | 10.1007/3-540-19129-1 532 | 10.1007/3-540-45548-5 533 | 10.1007/978-3-642-21675-6 534 | 10.1007/11864127 535 | 10.1007/978-3-642-16599-3 536 | 10.1007/978-3-540-85565-1 537 | 10.1007/978-3-642-02463-4 538 | 10.1007/b71621 539 | 10.1007/3-540-36413-7 540 | 10.1007/11686699 541 | 10.1007/3-540-36559-1 542 | 10.1007/3-540-58179-0 543 | 10.1007/3-540-58409-9 544 | 10.1007/978-3-540-79003-7 545 | 10.1007/978-3-642-22619-9 546 | 10.1007/11841197 547 | 10.1007/978-3-642-01718-6 548 | 10.1007/978-3-642-23599-3 549 | 10.1007/978-3-642-12980-3 550 | 10.1007/978-3-642-13437-1 551 | 10.1007/b13427 552 | 10.1007/3-540-44978-7 553 | 10.1007/b106767 554 | 10.1007/3-540-60973-3 555 | 10.1007/3-540-59451-5 556 | 10.1007/978-3-642-21286-4 557 | 10.1007/978-3-642-17650-0 558 | 10.1007/3-540-44411-4 559 | 10.1007/11523468 560 | 10.1007/978-3-642-17569-5 561 | 10.1007/11760146 562 | 10.1007/3-540-54945-5 563 | 10.1007/b93938 564 | 10.1007/3-540-46521-9 565 | 10.1007/978-3-540-74621-8 566 | 10.1007/11678823 567 | 10.1007/11790105 568 | 10.1007/3-540-44456-4 569 | 10.1007/3-540-45429-2 570 | 10.1007/978-3-540-74198-5 571 | 10.1007/3-540-45307-5 572 | 10.1007/978-3-540-95995-3 573 | 10.1007/978-3-540-78827-0 574 | 10.1007/978-3-642-22961-9 575 | 10.1007/BFb0035375 576 | 10.1007/978-3-642-24955-6 577 | 10.1007/978-3-642-04216-4 578 | 10.1007/978-3-642-17752-1 579 | 10.1007/11610113 580 | 10.1007/978-3-642-20244-5 581 | 10.1007/978-3-540-92831-7 582 | 10.1007/978-3-540-72559-6 583 | 10.1007/3-540-63173-9 584 | 10.1007/11586180 585 | 10.1007/11571155 586 | 10.1007/3-540-45118-8 587 | 10.1007/978-3-540-85074-8 588 | 10.1007/BFb0007043 589 | 10.1007/BFb0119430 590 | 10.1007/3-540-56252-4 591 | 10.1007/3-540-59469-8 592 | 10.1007/b97716 593 | 10.1007/978-3-642-21949-8 594 | 10.1007/978-3-642-25234-1 595 | 10.1007/3-540-19338-3 596 | 10.1007/BFb0051862 597 | 10.1007/978-3-540-75565-4 598 | 10.1007/BFb0102286 599 | 10.1007/b11909 600 | 10.1007/BFb0109496 601 | 10.1007/978-3-540-45696-4 602 | 10.1007/3-540-09825-9 603 | 10.1007/978-3-540-68820-4 604 | 10.1007/BFb0109562 605 | 10.1007/b98359 606 | 10.1007/b13583 607 | 10.1007/b98600 608 | 10.1007/3-540-46429-8 609 | 10.1007/b68208 610 | 10.1007/978-3-540-77537-9 611 | 10.1007/978-3-540-88425-5 612 | 10.1007/b101232 613 | 10.1007/3-540-48234-2 614 | 10.1007/978-3-642-14165-2 615 | 10.1007/3-540-54103-9 616 | 10.1007/3-540-47884-1 617 | 10.1007/3-540-44751-2 618 | 10.1007/11534310 619 | 10.1007/BFb0020710 620 | 10.1007/11547273 621 | 10.1007/11901181 622 | 10.1007/978-3-540-73060-6 623 | 10.1007/978-3-642-03944-7 624 | 10.1007/11941354 625 | 10.1007/978-3-540-87732-5 626 | 10.1007/978-3-540-77343-6 627 | 10.1007/11751113 628 | 10.1007/BFb0013516 629 | 10.1007/3-540-36077-8 630 | 10.1007/11828563 631 | 10.1007/3-540-44745-8 632 | 10.1007/b97168 633 | 10.1007/978-3-642-00826-9 634 | 10.1007/b105309 635 | 10.1007/978-3-642-03061-1 636 | 10.1007/b98000 637 | 10.1007/978-3-642-02809-0 638 | 10.1007/978-3-642-15057-9 639 | 10.1007/BFb0028784 640 | 10.1007/3-540-56735-6 641 | 10.1007/11599593 642 | 10.1007/3-540-44935-3 643 | 10.1007/11792086 644 | 10.1007/3-540-52342-1 645 | 10.1007/978-3-642-14929-0 646 | 10.1007/978-3-642-16488-0 647 | 10.1007/978-3-642-04222-5 648 | 10.1007/b95352 649 | 10.1007/978-3-642-16170-4 650 | 10.1007/11596981 651 | 10.1007/11677437 652 | 10.1007/11560500 653 | 10.1007/978-3-540-75670-5 654 | 10.1007/BFb0033222 655 | 10.1007/3-540-36569-9 656 | 10.1007/3-540-61479-6 657 | 10.1007/BFb0000458 658 | 10.1007/978-3-642-02441-2 659 | 10.1007/978-3-642-20630-6 660 | 10.1007/3-540-47906-6 661 | 10.1007/b13634 662 | 10.1007/b96922 663 | 10.1007/b97163 664 | 10.1007/978-3-540-68746-7 665 | 10.1007/b100361 666 | 10.1007/978-3-642-24553-4 667 | 10.1007/b99787 668 | 10.1007/978-3-642-22633-5 669 | 10.1007/3-540-61053-7 670 | 10.1007/BFb0013162 671 | 10.1007/3-540-45634-1 672 | 10.1007/978-3-540-71410-1 673 | 10.1007/3-540-18217-9 674 | 10.1007/3-540-48213-X 675 | 10.1007/3-540-64575-6 676 | 10.1007/978-3-642-03816-7 677 | 10.1007/3-540-51683-2 678 | 10.1007/3-540-52837-7 679 | 10.1007/3-540-36612-1 680 | 10.1007/978-3-642-11881-4 681 | 10.1007/978-3-540-75195-3 682 | 10.1007/3-540-36494-3 683 | 10.1007/3-540-55124-7 684 | 10.1007/978-3-642-10436-7 685 | 10.1007/3-540-09237-4 686 | 10.1007/0-387-34805-0 687 | 10.1007/3-540-36468-4 688 | 10.1007/11551898 689 | 10.1007/11535331 690 | 10.1007/3-540-12695-3 691 | 10.1007/978-3-540-78789-1 692 | 10.1007/978-3-642-21741-8 693 | 10.1007/978-3-642-03456-5 694 | 10.1007/11880172 695 | 10.1007/b11831 696 | 10.1007/BFb0019984 697 | 10.1007/3-540-55930-2 698 | 10.1007/BFb0033368 699 | 10.1007/978-3-642-00843-6 700 | 10.1007/978-3-540-77990-2 701 | 10.1007/BFb0017495 702 | 10.1007/b97784 703 | 10.1007/978-3-540-87475-1 704 | 10.1007/3-540-62559-3 705 | 10.1007/10704567 706 | 10.1007/b27882 707 | 10.1007/3-540-36540-0 708 | 10.1007/b97726 709 | 10.1007/3-540-61291-2 710 | 10.1007/3-540-60156-2 711 | 10.1007/3-540-48224-5 712 | 10.1007/978-3-540-92182-0 713 | 10.1007/11553939 714 | 10.1007/11893011 715 | 10.1007/b97988 716 | 10.1007/b97155 717 | 10.1007/b105263 718 | 10.1007/b13478 719 | 10.1007/3-540-69678-4 720 | 10.1007/3-540-45271-0 721 | 10.1007/3-540-44813-6 722 | 10.1007/3-540-62803-7 723 | 10.1007/3-540-62034-6 724 | 10.1007/3-540-45074-2 725 | 10.1007/11564751 726 | 10.1007/3-540-63930-6 727 | 10.1007/3-540-56694-5 728 | 10.1007/978-3-540-72606-7 729 | 10.1007/3-540-45748-8 730 | 10.1007/11567752 731 | 10.1007/3-540-59173-7 732 | 10.1007/978-3-642-16256-5 733 | 10.1007/BFb0032823 734 | 10.1007/978-3-642-17572-5 735 | 10.1007/3-540-45348-2 736 | 10.1007/BFb0053257 737 | 10.1007/3-540-45493-4 738 | 10.1007/BFb0057834 739 | 10.1007/b104579 740 | 10.1007/3-540-19487-8 741 | 10.1007/3-540-45365-2 742 | 10.1007/978-3-642-14156-0 743 | 10.1007/11768029 744 | 10.1007/b101051 745 | 10.1007/978-3-540-74320-0 746 | 10.1007/978-3-540-73105-4 747 | 10.1007/978-3-642-13666-5 748 | 10.1007/3-540-44796-2 749 | 10.1007/978-3-642-16690-7 750 | 10.1007/978-3-540-78163-9 751 | 10.1007/3-540-48747-6 752 | 10.1007/BFb0026561 753 | 10.1007/3-540-63107-0 754 | 10.1007/3-540-48390-X 755 | 10.1007/BFb0024597 756 | 10.1007/BFb0034478 757 | 10.1007/BFb0042083 758 | 10.1007/978-3-642-25529-8 759 | 10.1007/BFb0039513 760 | 10.1007/BFb0119321 761 | 10.1007/BFb0009372 762 | 10.1007/978-3-540-72701-9 763 | 10.1007/BFb0043099 764 | 10.1007/BFb0002488 765 | 10.1007/978-3-642-12362-7 766 | 10.1007/BFb0006340 767 | 10.1007/978-3-540-79719-7 768 | 10.1007/978-3-540-85200-1 769 | 10.1007/11935148 770 | 10.1007/3-540-45810-7 771 | 10.1007/3-540-12273-7 772 | 10.1007/978-3-642-00468-1 773 | 10.1007/3-540-45831-X 774 | 10.1007/978-3-540-69019-1 775 | 10.1007/b100112 776 | 10.1007/978-3-540-85114-1 777 | 10.1007/978-3-642-00685-2 778 | 10.1007/978-3-540-85834-8 779 | 10.1007/978-3-540-85101-1 780 | 10.1007/11875567 781 | 10.1007/3-540-46593-6 782 | 10.1007/11767978 783 | 10.1007/BFb0026588 784 | 10.1007/978-3-642-12929-2 785 | 10.1007/3-540-62840-1 786 | 10.1007/978-3-540-75939-3 787 | 10.1007/978-3-642-02906-6 788 | 10.1007/978-3-642-22941-1 789 | 10.1007/b95598 790 | 10.1007/978-3-540-73451-2 791 | 10.1007/978-3-642-02345-3 792 | 10.1007/978-3-540-70596-3 793 | 10.1007/11562382 794 | 10.1007/BFb0037025 795 | 10.1007/3-540-17942-9 796 | 10.1007/978-3-642-17688-3 797 | 10.1007/978-3-642-24443-8 798 | 10.1007/3-540-45406-3 799 | 10.1007/978-3-642-00727-9 800 | 10.1007/11926078 801 | 10.1007/11829263 802 | 10.1007/11551188 803 | 10.1007/3-540-61697-7 804 | 10.1007/978-3-540-72619-7 805 | 10.1007/b13476 806 | 10.1007/978-3-642-11164-8 807 | 10.1007/11783183 808 | 10.1007/978-3-540-73351-5 809 | 10.1007/3-540-45986-3 810 | 10.1007/978-3-642-13238-4 811 | 10.1007/11892755 812 | 10.1007/978-3-642-23538-2 813 | 10.1007/3-540-48318-7 814 | 10.1007/3-540-56731-3 815 | 10.1007/BFb0054988 816 | 10.1007/978-3-642-12592-8 817 | 10.1007/3-540-45134-X 818 | 10.1007/978-3-642-03700-9 819 | 10.1007/b104585 820 | 10.1007/BFb0034284 821 | 10.1007/978-3-642-04368-0 822 | 10.1007/b94229 823 | 10.1007/978-3-642-21470-7 824 | 10.1007/11558569 825 | 10.1007/b98738 826 | 10.1007/978-3-642-03555-5 827 | 10.1007/978-3-540-70901-5 828 | 10.1007/BFb0052223 829 | 10.1007/978-3-642-21527-8 830 | 10.1007/978-3-642-00393-6 831 | 10.1007/3-540-07805-3 832 | 10.1007/11780656 833 | 10.1007/978-3-540-76900-2 834 | 10.1007/3-540-10290-6 835 | 10.1007/BFb0022653 836 | 10.1007/b13236 837 | 10.1007/978-3-642-14052-5 838 | 10.1007/978-3-540-85569-9 839 | 10.1007/978-3-540-73255-6 840 | 10.1007/BFb0014474 841 | 10.1007/3-540-58476-5 842 | 10.1007/11554714 843 | 10.1007/b97218 844 | 10.1007/978-3-540-74949-3 845 | 10.1007/978-3-642-18050-7 846 | 10.1007/3-540-44862-4 847 | 10.1007/978-3-642-12397-9 848 | 10.1007/3-540-44472-6 849 | 10.1007/BFb0037392 850 | 10.1007/978-3-540-71783-6 851 | 10.1007/3-540-07994-7 852 | 10.1007/978-3-642-25330-0 853 | 10.1007/3-540-55092-5 854 | 10.1007/11526346 855 | 10.1007/978-3-642-00431-5 856 | 10.1007/3-540-45675-9 857 | 10.1007/3-540-57341-0 858 | 10.1007/978-3-642-15155-2 859 | 10.1007/978-3-642-24873-3 860 | 10.1007/978-3-642-13688-7 861 | 10.1007/3-540-45397-0 862 | 10.1007/3-540-50345-5 863 | 10.1007/3-540-52292-1 864 | 10.1007/11940128 865 | 10.1007/b99076 866 | 10.1007/978-3-642-13568-2 867 | 10.1007/10722298 868 | 10.1007/978-3-642-20728-0 869 | 10.1007/978-3-540-68982-9 870 | 10.1007/978-3-642-03655-2 871 | 10.1007/978-3-642-14729-6 872 | 10.1007/3-540-45583-3 873 | 10.1007/978-3-540-49823-0 874 | 10.1007/978-3-540-76725-1 875 | 10.1007/978-3-540-74126-8 876 | 10.1007/BFb0028725 877 | 10.1007/11890591 878 | 10.1007/3-540-45103-X 879 | 10.1007/978-3-642-22021-0 880 | 10.1007/b94919 881 | 10.1007/b95469 882 | 10.1007/978-3-642-14533-9 883 | 10.1007/978-3-642-13869-0 884 | 10.1007/3-540-45007-6 885 | 10.1007/978-3-642-01399-7 886 | 10.1007/BFb0032160 887 | 10.1007/BFb0044936 888 | 10.1007/BFb0040130 889 | 10.1007/BFb0040056 890 | 10.1007/BFb0111244 891 | 10.1007/978-3-540-48673-2_5 892 | 10.1007/978-3-540-48673-2_6 893 | 10.1007/978-3-540-48673-2_8 894 | 10.1007/978-1-84996-101-1 895 | 10.1007/3-540-60110-4 896 | 10.1007/BFb0050852 897 | 10.1007/978-3-540-49267-2 898 | 10.1007/3-540-09468-7 899 | 10.1007/BFb0007210 900 | 10.1007/978-3-540-89692-0 901 | 10.1007/BFb0044036 902 | 10.1007/b13586 903 | 10.1007/11420187 904 | 10.1007/978-3-540-78478-4 905 | 10.1007/11805816 906 | 10.1007/b103936 907 | 10.1007/11859802 908 | 10.1007/b136855 909 | 10.1007/3-540-57208-2 910 | 10.1007/3-540-45546-9 911 | 10.1007/BFb0017424 912 | 10.1007/3-540-06769-8 913 | 10.1007/978-3-540-71545-0 914 | 10.1007/3-540-45111-0 915 | 10.1007/10722620 916 | 10.1007/3-540-45522-1 917 | 10.1007/978-3-642-14215-4 918 | 10.1007/b11711 919 | 10.1007/978-3-540-88188-9 920 | 10.1007/11736790 921 | 10.1007/978-3-642-04843-2 922 | 10.1007/978-3-540-92238-4 923 | 10.1007/3-540-18740-5 924 | 10.1007/978-3-642-17616-6 925 | 10.1007/b106542 926 | 10.1007/b100584 927 | 10.1007/b95744 928 | 10.1007/3-540-46004-7 929 | 10.1007/3-540-44581-1 930 | 10.1007/978-3-642-04274-4 931 | 10.1007/978-3-642-17928-0 932 | 10.1007/b100270 933 | 10.1007/3-540-45498-5 934 | 10.1007/3-540-55639-7 935 | 10.1007/11890881 936 | 10.1007/978-3-642-05006-0 937 | 10.1007/978-3-642-24412-4 938 | 10.1007/978-3-540-85110-3 939 | 10.1007/BFb0014968 940 | 10.1007/978-3-642-23644-0 941 | 10.1007/b103729 942 | 10.1007/b98691 943 | 10.1007/978-3-540-75142-7 944 | 10.1007/11609773 945 | 10.1007/3-540-45296-6 946 | 10.1007/3-540-64216-1 947 | 10.1007/11745853 948 | 10.1007/11847366 949 | 10.1007/b100712 950 | 10.1007/3-540-47959-7 951 | 10.1007/b135673 952 | 10.1007/978-3-540-92148-6 953 | 10.1007/3-540-57785-8 954 | 10.1007/978-3-540-77051-0 955 | 10.1007/978-3-642-16292-3 956 | 10.1007/978-3-642-25953-1 957 | 10.1007/978-3-642-23629-7 958 | 10.1007/978-3-642-05445-7 959 | 10.1007/978-3-642-22571-0 960 | 10.1007/3-540-08921-7 961 | 10.1007/BFb0030129 962 | 10.1007/978-3-642-22616-8 963 | 10.1007/3-540-60385-9 964 | 10.1007/b100195 965 | 10.1007/3-540-44572-2 966 | 10.1007/11682110 967 | 10.1007/978-3-642-17274-8 968 | 10.1007/3-540-56279-6 969 | 10.1007/3-540-48686-0 970 | 10.1007/3-540-46416-6 971 | 10.1007/978-3-540-92892-8 972 | 10.1007/978-3-540-77949-0 973 | 10.1007/978-3-642-10406-0 974 | 10.1007/10722599 975 | 10.1007/978-3-540-74767-3 976 | 10.1007/BFb0024302 977 | 10.1007/3-540-45479-9 978 | 10.1007/3-540-16445-6 979 | 10.1007/978-3-642-02962-2 980 | 10.1007/BFb0101406 981 | 10.1007/11922841 982 | 10.1007/b98377 983 | 10.1007/3-540-61988-7 984 | 10.1007/3-540-10886-6 985 | 10.1007/3-540-39205-X 986 | 10.1007/b83622 987 | 10.1007/978-3-642-16086-8 988 | 10.1007/b14200 989 | 10.1007/978-3-642-21952-8 990 | 10.1007/978-3-540-70942-8 991 | 10.1007/978-3-642-14264-2 992 | 10.1007/3-540-60043-4 993 | 10.1007/b99859 994 | 10.1007/11847083 995 | 10.1007/978-3-642-00616-6 996 | 10.1007/3-540-44942-6 997 | 10.1007/978-3-642-21732-6 998 | 10.1007/978-3-540-87805-6 999 | 10.1007/978-3-642-13338-1 1000 | 10.1007/978-3-540-75563-0 1001 | 10.1007/3-540-45294-X 1002 | 10.1007/3-540-10704-5 1003 | 10.1007/978-3-540-69828-9 1004 | 10.1007/978-3-540-73289-1 1005 | 10.1007/3-540-48826-X 1006 | 10.1007/978-3-642-13923-9 1007 | 10.1007/978-3-540-73279-2 1008 | 10.1007/3-540-48714-X 1009 | 10.1007/11669487 1010 | 10.1007/11780885 1011 | 10.1007/11893028 1012 | 10.1007/b99428 1013 | 10.1007/3-540-51201-2 1014 | 10.1007/978-3-540-88806-2 1015 | 10.1007/BFb0102060 1016 | 10.1007/BFb0046570 1017 | 10.1007/BFb0111557 1018 | 10.1007/BFb0109854 1019 | 10.1007/BFb0006368 1020 | 10.1007/BFb0028891 1021 | 10.1007/BFb0046184 1022 | 10.1007/b105136 1023 | 10.1007/978-3-540-37012-3 1024 | 10.1007/BFb0039262 1025 | 10.1007/BFb0042462 1026 | 10.1007/3-540-10231-0 1027 | 10.1007/978-3-642-03246-2 1028 | 10.1007/b10011 1029 | 10.1007/978-3-642-17401-8 1030 | 10.1007/978-3-642-20401-2 1031 | 10.1007/3-540-57503-0 1032 | 10.1007/11681960 1033 | 10.1007/3-540-58183-9 1034 | 10.1007/b104584 1035 | 10.1007/BFb0022433 1036 | 10.1007/10703260 1037 | 10.1007/978-3-540-74619-5 1038 | 10.1007/978-3-642-19867-0 1039 | 10.1007/b100218 1040 | 10.1007/3-540-44659-1 1041 | 10.1007/BFb0020908 1042 | 10.1007/3-540-61730-2 1043 | 10.1007/b105486 1044 | 10.1007/3-540-49209-7 1045 | 10.1007/978-3-642-14203-1 1046 | 10.1007/3-540-53065-7 1047 | 10.1007/978-3-642-02976-9 1048 | 10.1007/11575863 1049 | 10.1007/978-3-642-02059-9 1050 | 10.1007/11821946 1051 | 10.1007/3-540-55215-4 1052 | 10.1007/b107115 1053 | 10.1007/3-540-36282-7 1054 | 10.1007/BFb0035684 1055 | 10.1007/3-540-47952-X 1056 | 10.1007/b136986 1057 | 10.1007/978-3-642-17773-6 1058 | 10.1007/3-540-58907-4 1059 | 10.1007/978-3-642-15246-7 1060 | 10.1007/b99374 1061 | 10.1007/3-540-39939-9 1062 | 10.1007/978-3-642-15497-3 1063 | 10.1007/3-540-57738-6 1064 | 10.1007/3-540-07142-3 1065 | 10.1007/b103251 1066 | 10.1007/978-3-642-01757-5 1067 | 10.1007/978-3-642-15031-9 1068 | 10.1007/BFb0018521 1069 | 10.1007/b104566 1070 | 10.1007/3-540-54009-1 1071 | 10.1007/11596356 1072 | 10.1007/978-3-642-04856-2 1073 | 10.1007/BFb0020419 1074 | 10.1007/3-540-57207-4 1075 | 10.1007/3-540-44816-0 1076 | 10.1007/978-3-540-79721-0 1077 | 10.1007/11750734 1078 | 10.1007/BFb0054009 1079 | 10.1007/3-540-45518-3 1080 | 10.1007/11593447 1081 | 10.1007/978-3-540-87605-2 1082 | 10.1007/b94774 1083 | 10.1007/978-3-540-95948-9 1084 | 10.1007/978-3-642-01702-5 1085 | 10.1007/3-540-48854-5 1086 | 10.1007/3-540-44587-0 1087 | 10.1007/3-540-58043-3 1088 | 10.1007/978-3-540-69369-7 1089 | 10.1007/11679363 1090 | 10.1007/BFb0028319 1091 | 10.1007/b107189 1092 | 10.1007/978-3-540-89447-6 1093 | 10.1007/978-3-540-74792-5 1094 | 10.1007/978-3-642-21799-9 1095 | 10.1007/978-3-642-18449-9 1096 | 10.1007/3-540-54444-5 1097 | 10.1007/3-540-15983-5 1098 | 10.1007/b105222 1099 | 10.1007/11903697 1100 | 10.1007/b101281 1101 | 10.1007/11751540 1102 | 10.1007/b97859 1103 | 10.1007/3-540-57601-0 1104 | 10.1007/b137285 1105 | 10.1007/BFb0019841 1106 | 10.1007/10722581 1107 | 10.1007/b13850 1108 | 10.1007/11581772 1109 | 10.1007/3-540-48344-6 1110 | 10.1007/3-540-44929-9 1111 | 10.1007/3-540-57264-3 1112 | 10.1007/11947950 1113 | 10.1007/BFb0039172 1114 | 10.1007/978-3-540-75853-2 1115 | 10.1007/b11966 1116 | 10.1007/978-3-642-11376-5 1117 | 10.1007/978-3-642-21916-0 1118 | 10.1007/3-540-49795-1 1119 | 10.1007/3-540-44704-0 1120 | 10.1007/978-3-642-11579-0 1121 | 10.1007/3-540-38076-0 1122 | 10.1007/3-540-47997-X 1123 | 10.1007/BFb0057775 1124 | 10.1007/b136569 1125 | 10.1007/3-540-56734-8 1126 | 10.1007/978-3-540-70720-2 1127 | 10.1007/b11942 1128 | 10.1007/11568285 1129 | 10.1007/978-3-642-05253-8 1130 | 10.1007/11872153 1131 | 10.1007/3-540-50580-6 1132 | 10.1007/BFb0026998 1133 | 10.1007/3-540-36465-X 1134 | 10.1007/978-3-642-16982-3 1135 | 10.1007/BFb0045375 1136 | 10.1007/3-540-56039-4 1137 | 10.1007/3-540-49649-1 1138 | 10.1007/b101594 1139 | 10.1007/978-3-642-02053-7 1140 | 10.1007/978-3-642-02326-2 1141 | 10.1007/3-540-47734-9 1142 | 10.1007/978-3-642-05250-7 1143 | 10.1007/978-3-642-02094-0 1144 | 10.1007/BFb0040434 1145 | 10.1007/3-540-36609-1 1146 | 10.1007/978-3-540-73086-6 1147 | 10.1007/3-540-18579-8 1148 | 10.1007/b13229 1149 | 10.1007/978-3-540-74565-5 1150 | 10.1007/978-3-540-72879-5 1151 | 10.1007/BFb0040171 1152 | 10.1007/978-3-540-71116-2 1153 | 10.1007/BFb0109998 1154 | 10.1007/978-3-540-49554-3 1155 | 10.1007/BFb0051234 1156 | 10.1007/3-540-35165-5 1157 | 10.1007/BFb0102303 1158 | 10.1007/BFb0042758 1159 | 10.1007/BFb0108714 1160 | 10.1007/b98334 1161 | 10.1007/BFb0071300 1162 | 10.1007/BFb0033675 1163 | 10.1007/978-3-540-69121-1 1164 | 10.1007/978-3-642-27398-8 1165 | 10.1007/3-540-11829-2 1166 | 10.1007/BFb0119216 1167 | 10.1007/b100199 1168 | 10.1007/978-3-642-15387-7 1169 | 10.1007/b97883 1170 | 10.1007/978-3-642-22792-9 1171 | 10.1007/978-3-540-68880-8 1172 | 10.1007/978-3-642-23734-8 1173 | 10.1007/978-3-540-92719-8 1174 | 10.1007/11935230 1175 | 10.1007/3-540-57604-5 1176 | 10.1007/b72329 1177 | 10.1007/3-540-48519-8 1178 | 10.1007/10722515 1179 | 10.1007/11552413 1180 | 10.1007/11941378 1181 | 10.1007/b99975 1182 | 10.1007/3-540-13878-1 1183 | 10.1007/3-540-45028-9 1184 | 10.1007/3-540-45441-1 1185 | 10.1007/3-540-45520-5 1186 | 10.1007/b95630 1187 | 10.1007/11775331 1188 | 10.1007/978-3-642-04904-0 1189 | 10.1007/3-540-60437-5 1190 | 10.1007/978-3-540-87989-3 1191 | 10.1007/978-3-540-77296-5 1192 | 10.1007/b135888 1193 | 10.1007/978-3-642-03658-3 1194 | 10.1007/978-3-642-02002-5 1195 | 10.1007/978-3-642-21928-3 1196 | 10.1007/978-3-540-72830-6 1197 | 10.1007/978-3-642-22137-8 1198 | 10.1007/3-540-48957-6 1199 | 10.1007/978-3-642-10562-3 1200 | 10.1007/3-540-46564-2 1201 | 10.1007/978-3-642-00528-2 1202 | 10.1007/BFb0055611 1203 | 10.1007/BFb0023753 1204 | 10.1007/3-540-46674-6 1205 | 10.1007/11790853 1206 | 10.1007/11760023 1207 | 10.1007/3-540-63237-9 1208 | 10.1007/BFb0017213 1209 | 10.1007/3-540-46796-3 1210 | 10.1007/978-3-642-02903-5 1211 | 10.1007/978-3-642-22819-3 1212 | 10.1007/978-3-540-74690-4 1213 | 10.1007/3-540-44914-0 1214 | 10.1007/978-3-540-72986-0 1215 | 10.1007/3-540-58555-9 1216 | 10.1007/b96103 1217 | 10.1007/b13823 1218 | 10.1007/978-3-540-88906-9 1219 | 10.1007/978-3-540-78663-4 1220 | 10.1007/b100511 1221 | 10.1007/11799511 1222 | 10.1007/b11261 1223 | 10.1007/BFb0021078 1224 | 10.1007/b72302 1225 | 10.1007/3-540-46017-9 1226 | 10.1007/b98118 1227 | 10.1007/BFb0054729 1228 | 10.1007/BFb0034333 1229 | 10.1007/b12020 1230 | 10.1007/978-3-642-25379-9 1231 | 10.1007/b137793 1232 | 10.1007/978-3-642-02351-4 1233 | 10.1007/978-3-642-03281-3 1234 | 10.1007/3-540-49519-3 1235 | 10.1007/11851561 1236 | 10.1007/3-540-44596-X 1237 | 10.1007/978-3-540-87734-9 1238 | 10.1007/978-3-540-77966-7 1239 | 10.1007/11557654 1240 | 10.1007/BFb0013776 1241 | 10.1007/978-3-642-04268-3 1242 | 10.1007/11848035 1243 | 10.1007/978-3-540-70928-2 1244 | 10.1007/11549970 1245 | 10.1007/978-3-642-23082-0 1246 | 10.1007/b102264 1247 | 10.1007/11780397 1248 | 10.1007/978-3-540-85209-4 1249 | 10.1007/3-540-16766-8 1250 | 10.1007/978-3-642-24364-6 1251 | 10.1007/11758471 1252 | 10.1007/3-540-12896-4 1253 | 10.1007/978-3-642-25867-1 1254 | 10.1007/11863939 1255 | 10.1007/b72309 1256 | 10.1007/978-3-642-00596-1 1257 | 10.1007/b106725 1258 | 10.1007/978-3-540-68129-8 1259 | 10.1007/978-3-540-77226-2 1260 | 10.1007/3-540-47922-8 1261 | 10.1007/978-3-540-75987-4 1262 | 10.1007/978-3-642-02882-3 1263 | 10.1007/3-540-44561-7 1264 | 10.1007/BFb0039590 1265 | 10.1007/978-3-642-03688-0 1266 | 10.1007/978-3-642-27375-9 1267 | 10.1007/b13239 1268 | 10.1007/978-3-540-85451-7 1269 | 10.1007/978-3-642-27997-3 1270 | 10.1007/BFb0040157 1271 | 10.1007/978-3-642-13241-4 1272 | 10.1007/3-540-44652-4 1273 | 10.1007/11922162 1274 | 10.1007/978-3-540-85902-4 1275 | 10.1007/3-540-58431-5 1276 | 10.1007/978-3-540-77918-6 1277 | 10.1007/11590323 1278 | 10.1007/b100478 1279 | 10.1007/b95855 1280 | 10.1007/b11839 1281 | 10.1007/11565123 1282 | 10.1007/11739685 1283 | 10.1007/11550617 1284 | 10.1007/b95170 1285 | 10.1007/b137217 1286 | 10.1007/978-3-642-13789-1 1287 | 10.1007/b14292 1288 | 10.1007/BFb0051668 1289 | 10.1007/b98140 1290 | 10.1007/3-540-60495-2 1291 | 10.1007/3-540-45935-9 1292 | 10.1007/b13587 1293 | 10.1007/3-540-61091-X 1294 | 10.1007/BFb0045951 1295 | 10.1007/BFb0044919 1296 | 10.1007/978-3-540-47466-1 1297 | 10.1007/BFb0046067 1298 | 10.1007/BFb0051427 1299 | 10.1007/3-540-17871-6 1300 | 10.1007/978-0-387-87495-1 1301 | 10.1007/3-540-58672-5 1302 | 10.1007/978-3-540-33146-9 1303 | 10.1007/BFb0050828 1304 | 10.1007/BFb0041363 1305 | 10.1007/BFb0025265 1306 | 10.1007/978-3-540-37205-9 1307 | 10.1007/3-540-44883-7 1308 | 10.1007/978-3-540-44778-8 1309 | 10.1007/3-540-61474-5 1310 | 10.1007/978-3-540-75514-2 1311 | 10.1007/11534273 1312 | 10.1007/3-540-48119-2 1313 | 10.1007/3-540-45452-7 1314 | 10.1007/3-540-45785-2 1315 | 10.1007/978-3-540-78568-2 1316 | 10.1007/978-3-642-13036-6 1317 | 10.1007/978-3-540-73053-8 1318 | 10.1007/3-540-57132-9 1319 | 10.1007/3-540-45551-5 1320 | 10.1007/3-540-44892-6 1321 | 10.1007/978-3-642-14496-7 1322 | 10.1007/11899402 1323 | 10.1007/3-540-47867-1 1324 | 10.1007/3-540-48749-2 1325 | 10.1007/b98995 1326 | 10.1007/978-3-642-16181-0 1327 | 10.1007/978-3-540-77294-1 1328 | 10.1007/978-3-642-12297-2 1329 | 10.1007/978-3-642-17653-1 1330 | 10.1007/11866565 1331 | 10.1007/BFb0052983 1332 | 10.1007/3-540-07804-5 1333 | 10.1007/3-540-60654-8 1334 | 10.1007/978-3-540-93980-1 1335 | 10.1007/978-3-540-74976-9 1336 | 10.1007/978-3-540-69868-5 1337 | 10.1007/11689522 1338 | 10.1007/3-540-58107-3 1339 | 10.1007/b14230 1340 | 10.1007/b95483 1341 | 10.1007/3-540-48239-3 1342 | 10.1007/978-3-642-16289-3 1343 | 10.1007/3-540-45523-X 1344 | 10.1007/978-3-642-12200-2 1345 | 10.1007/3-540-45346-6 1346 | 10.1007/11555827 1347 | 10.1007/978-3-642-03869-3 1348 | 10.1007/978-3-642-14322-9 1349 | 10.1007/3-540-48219-9 1350 | 10.1007/11602569 1351 | 10.1007/3-540-45997-9 1352 | 10.1007/978-3-642-10739-9 1353 | 10.1007/3-540-68686-X 1354 | 10.1007/978-3-540-75703-0 1355 | 10.1007/978-3-540-78153-0 1356 | 10.1007/978-3-642-21669-5 1357 | 10.1007/3-540-36169-3 1358 | 10.1007/b100989 1359 | 10.1007/3-540-63438-X 1360 | 10.1007/978-3-540-75488-6 1361 | 10.1007/b96986 1362 | 10.1007/978-3-642-23808-6 1363 | 10.1007/978-3-540-75496-1 1364 | 10.1007/3-540-45637-6 1365 | 10.1007/3-540-58450-1 1366 | 10.1007/3-540-51324-8 1367 | 10.1007/978-3-642-15193-4 1368 | 10.1007/978-3-540-73214-3 1369 | 10.1007/978-3-642-23318-0 1370 | 10.1007/3-540-44466-1 1371 | 10.1007/b95207 1372 | 10.1007/BFb0017563 1373 | 10.1007/11668855 1374 | 10.1007/3-540-44888-8 1375 | 10.1007/11531142 1376 | 10.1007/11560586 1377 | 10.1007/978-3-540-69295-9 1378 | 10.1007/978-3-642-13821-8 1379 | 10.1007/978-3-642-03098-7 1380 | 10.1007/BFb0018643 1381 | 10.1007/b136292 1382 | 10.1007/978-3-540-69293-5 1383 | 10.1007/11837862 1384 | 10.1007/3-540-46616-9 1385 | 10.1007/10704127 1386 | 10.1007/978-3-540-85920-8 1387 | 10.1007/978-3-642-12189-0 1388 | 10.1007/978-3-642-15034-0 1389 | 10.1007/b100039 1390 | 10.1007/3-540-57697-5 1391 | 10.1007/978-3-642-15998-5 1392 | 10.1007/b100528 1393 | 10.1007/b14038 1394 | 10.1007/3-540-45711-9 1395 | 10.1007/11569947 1396 | 10.1007/978-3-642-11479-3 1397 | 10.1007/3-540-56454-3 1398 | 10.1007/10704656 1399 | 10.1007/978-3-540-77048-0 1400 | 10.1007/978-3-540-78197-4 1401 | 10.1007/978-3-642-25032-3 1402 | 10.1007/3-540-45945-6 1403 | 10.1007/3-540-63533-5 1404 | 10.1007/3-540-55895-0 1405 | 10.1007/11916291 1406 | 10.1007/3-540-63697-8 1407 | 10.1007/978-3-540-68504-3 1408 | 10.1007/b13246 1409 | 10.1007/978-3-642-23178-0 1410 | 10.1007/978-3-540-88403-3 1411 | 10.1007/3-540-54141-1 1412 | 10.1007/978-3-540-72849-8 1413 | 10.1007/BFb0016936 1414 | 10.1007/0-387-34799-2 1415 | 10.1007/978-3-642-25560-1 1416 | 10.1007/978-3-642-23123-0 1417 | 10.1007/3-540-45262-1 1418 | 10.1007/b92746 1419 | 10.1007/11840930 1420 | 10.1007/3-540-45162-5 1421 | 10.1007/3-540-44886-1 1422 | 10.1007/978-3-642-13284-1 1423 | 10.1007/978-3-540-89897-9 1424 | 10.1007/BFb0056467 1425 | 10.1007/978-3-642-04570-7 1426 | 10.1007/3-540-58844-2 1427 | 10.1007/978-3-642-13232-2 1428 | 10.1007/11596219 1429 | 10.1007/11924661 1430 | 10.1007/978-3-540-45238-6 1431 | 10.1007/BFb0027501 1432 | 10.1007/3-540-16442-1 1433 | 10.1007/3-540-48412-4 1434 | 10.1007/978-3-540-75256-1 1435 | 10.1007/978-3-642-19751-2 1436 | 10.1007/978-3-642-02490-0 1437 | 10.1007/11572961 1438 | 10.1007/3-540-46033-0 1439 | 10.1007/978-1-4471-2265-4 1440 | 10.1007/BFb0042044 1441 | 10.1007/BFb0007737 1442 | 10.1007/BFb0037753 1443 | 10.1007/978-3-642-16135-3 1444 | 10.1007/BFb0006850 1445 | 10.1007/BFb0008861 1446 | 10.1007/978-3-540-79434-9 1447 | 10.1007/BFb0004258 1448 | 10.1007/978-3-642-24064-5 1449 | 10.1007/BFb0005209 1450 | 10.1007/978-3-540-74356-9 1451 | 10.1007/BFb0110202 1452 | 10.1007/978-3-540-73719-3 1453 | 10.1007/b103068 1454 | 10.1007/BFb0048208 1455 | 10.1007/BFb0044495 1456 | 10.1007/3-540-45270-2_9 1457 | 10.1007/3-540-55117-4 1458 | 10.1007/BFb0119251 1459 | 10.1007/3-540-70789-1 1460 | 10.1007/b97444 1461 | 10.1007/BFb0048910 1462 | 10.1007/BFb0092617 1463 | 10.1007/3-540-53904-2 1464 | 10.1007/978-3-540-48673-2_7 1465 | 10.1007/978-3-642-24968-6 1466 | 10.1007/978-3-540-46783-0 1467 | 10.1007/11749219 1468 | 10.1007/3-540-45868-9 1469 | 10.1007/3-540-16307-7 1470 | 10.1007/3-540-12555-8 1471 | 10.1007/BFb0096366 1472 | 10.1007/978-3-540-71791-1 1473 | 10.1007/b97884 1474 | 10.1007/978-3-540-49454-6 1475 | 10.1007/b98358 1476 | 10.1007/978-3-540-46320-7 1477 | 10.1007/978-3-540-75263-9 1478 | 10.1007/3-540-44520-X 1479 | 10.1007/3-540-46846-3 1480 | 10.1007/BFb0030541 1481 | 10.1007/11563952 1482 | 10.1007/3-540-44688-5 1483 | 10.1007/978-3-642-14418-9 1484 | 10.1007/3-540-45800-X 1485 | 10.1007/BFb0019909 1486 | 10.1007/3-540-58601-6 1487 | 10.1007/3-540-45433-0 1488 | 10.1007/978-3-540-74769-7 1489 | 10.1007/3-540-63397-9 1490 | 10.1007/b96393 1491 | 10.1007/978-3-540-69321-5 1492 | 10.1007/3-540-45391-1 1493 | 10.1007/978-3-540-73888-6 1494 | 10.1007/978-3-642-14623-7 1495 | 10.1007/3-540-09723-6 1496 | 10.1007/3-540-64582-9 1497 | 10.1007/978-3-642-19282-1 1498 | 10.1007/b97914 1499 | 10.1007/978-3-642-20757-0 1500 | 10.1007/978-3-642-15745-5 1501 | 10.1007/978-3-540-74615-7 1502 | 10.1007/978-3-540-68111-3 1503 | 10.1007/978-3-540-73035-4 1504 | 10.1007/3-540-57454-9 1505 | 10.1007/b12005 1506 | 10.1007/3-540-57314-3 1507 | 10.1007/978-3-642-25873-2 1508 | 10.1007/3-540-06815-5 1509 | 10.1007/978-3-540-85553-8 1510 | 10.1007/978-3-642-21535-3 1511 | 10.1007/978-3-642-21931-3 1512 | 10.1007/978-3-540-85717-4 1513 | 10.1007/11961536 1514 | 10.1007/11960669 1515 | 10.1007/BFb0027161 1516 | 10.1007/3-540-63531-9 1517 | 10.1007/11663812 1518 | 10.1007/978-3-540-73420-8 1519 | 10.1007/978-3-540-68855-6 1520 | 10.1007/978-3-642-00590-9 1521 | 10.1007/978-3-642-16836-9 1522 | 10.1007/978-3-642-16242-8 1523 | 10.1007/BFb0032729 1524 | 10.1007/3-540-40889-4 1525 | 10.1007/978-3-642-19829-8 1526 | 10.1007/3-540-55426-2 1527 | 10.1007/b97162 1528 | 10.1007/978-3-540-85658-0 1529 | 10.1007/978-3-642-24082-9 1530 | 10.1007/978-3-540-73066-8 1531 | 10.1007/978-3-540-88439-2 1532 | 10.1007/3-540-10845-9 1533 | 10.1007/978-3-540-74563-1 1534 | 10.1007/11944935 1535 | 10.1007/978-3-540-73950-0 1536 | 10.1007/3-540-60381-6 1537 | 10.1007/3-540-46014-4 1538 | 10.1007/BFb0026418 1539 | 10.1007/978-3-642-01818-3 1540 | 10.1007/978-3-642-12002-2 1541 | 10.1007/978-3-642-02959-2 1542 | 10.1007/b97045 1543 | 10.1007/BFb0046097 1544 | 10.1007/3-540-48778-6 1545 | 10.1007/b102069 1546 | 10.1007/978-3-642-14956-6 1547 | 10.1007/3-540-47790-X 1548 | 10.1007/978-3-642-14681-7 1549 | 10.1007/BFb0030404 1550 | 10.1007/978-3-540-75542-5 1551 | 10.1007/978-3-642-03973-7 1552 | 10.1007/978-3-642-22263-4 1553 | 10.1007/BFb0030385 1554 | 10.1007/978-3-642-23801-7 1555 | 10.1007/b103174 1556 | 10.1007/978-3-540-73843-5 1557 | 10.1007/b11934 1558 | 10.1007/978-3-642-10665-1 1559 | 10.1007/3-540-56625-2 1560 | 10.1007/BFb0031733 1561 | 10.1007/11582267 1562 | 10.1007/3-540-48046-3 1563 | 10.1007/3-540-45647-3 1564 | 10.1007/978-3-540-73131-3 1565 | 10.1007/978-3-540-76639-1 1566 | 10.1007/b98754 1567 | 10.1007/b106134 1568 | 10.1007/3-540-45715-1 1569 | 10.1007/978-3-540-72845-0 1570 | 10.1007/11683568 1571 | 10.1007/b96961 1572 | 10.1007/11951148 1573 | 10.1007/978-3-540-74913-4 1574 | 10.1007/978-3-540-77535-5 1575 | 10.1007/11816102 1576 | 10.1007/3-540-10003-2 1577 | 10.1007/BFb0045065 1578 | 10.1007/11779568 1579 | 10.1007/3-540-47853-1 1580 | 10.1007/978-3-540-89550-3 1581 | 10.1007/3-540-55210-3 1582 | 10.1007/978-3-642-27609-5 1583 | 10.1007/978-3-540-88808-6 1584 | 10.1007/3-540-63220-4 1585 | 10.1007/3-540-45816-6 1586 | 10.1007/978-3-540-71617-4 1587 | 10.1007/b137025 1588 | 10.1007/b14070 1589 | 10.1007/b105030 1590 | 10.1007/978-3-642-02716-1 1591 | 10.1007/3-540-46093-4 1592 | 10.1007/978-3-540-70987-9 1593 | 10.1007/11666806 1594 | 10.1007/b136511 1595 | 10.1007/3-540-45706-2 1596 | 10.1007/11575771 1597 | 10.1007/3-540-61815-5 1598 | 10.1007/978-3-642-20847-8 1599 | 10.1007/BFb0109385 1600 | 10.1007/3-540-60640-8 1601 | 10.1007/11586821 1602 | 10.1007/3-540-12397-0 1603 | 10.1007/BFb0109194 1604 | 10.1007/BFb0110693 1605 | 10.1007/978-3-642-21590-2 1606 | 10.1007/978-3-642-01304-1 1607 | 10.1007/978-3-540-46380-1 1608 | 10.1007/978-3-642-27540-1 1609 | 10.1007/3-540-52568-8 1610 | 10.1007/978-3-642-16051-6 1611 | 10.1007/978-3-540-49276-4 1612 | 10.1007/BFb0050592 1613 | 10.1007/BFb0121312 1614 | 10.1007/BFb0109520 1615 | 10.1007/BFb0045270 1616 | 10.1007/978-3-642-15161-3 1617 | 10.1007/b97367 1618 | 10.1007/BFb0024343 1619 | 10.1007/978-3-540-69357-4 1620 | 10.1007/BFb0044591 1621 | 10.1007/b14032 1622 | 10.1007/11863649 1623 | 10.1007/978-3-642-01338-6 1624 | 10.1007/978-3-642-21596-4 1625 | 10.1007/978-3-642-00457-5 1626 | 10.1007/3-540-36280-0 1627 | 10.1007/978-3-642-25141-2 1628 | 10.1007/b11939 1629 | 10.1007/978-3-540-89796-5 1630 | 10.1007/978-3-642-02674-4 1631 | 10.1007/3-540-48109-5 1632 | 10.1007/978-3-642-10248-6 1633 | 10.1007/978-3-642-03603-3 1634 | 10.1007/978-3-642-13094-6 1635 | 10.1007/b99901 1636 | 10.1007/978-3-642-21064-8 1637 | 10.1007/978-3-642-15874-2 1638 | 10.1007/978-3-642-00768-2 1639 | 10.1007/b94513 1640 | 10.1007/b101591 1641 | 10.1007/BFb0095035 1642 | 10.1007/b100936 1643 | 10.1007/978-3-540-79588-9 1644 | 10.1007/3-540-54316-3 1645 | 10.1007/3-540-08240-9 1646 | 10.1007/11767480 1647 | 10.1007/978-3-540-70945-9 1648 | 10.1007/11539506 1649 | 10.1007/3-540-36492-7 1650 | 10.1007/b11686 1651 | 10.1007/978-3-642-21672-5 1652 | 10.1007/BFb0000578 1653 | 10.1007/978-3-540-31881-1 1654 | 10.1007/978-3-642-10832-7 1655 | 10.1007/3-540-62599-2 1656 | 10.1007/11568346 1657 | 10.1007/3-540-48236-9 1658 | 10.1007/978-3-540-72504-6 1659 | 10.1007/11758501 1660 | 10.1007/b136639 1661 | 10.1007/978-3-540-72200-7 1662 | 10.1007/978-3-540-78499-9 1663 | 10.1007/978-3-642-17373-8 1664 | 10.1007/3-540-18508-9 1665 | 10.1007/3-540-49727-7 1666 | 10.1007/978-3-540-87442-3 1667 | 10.1007/978-3-540-73230-3 1668 | 10.1007/978-3-540-78791-4 1669 | 10.1007/b94618 1670 | 10.1007/978-3-642-21878-1 1671 | 10.1007/11816508 1672 | 10.1007/978-3-540-73554-0 1673 | 10.1007/978-3-642-12139-5 1674 | 10.1007/b101291 1675 | 10.1007/3-540-47745-4 1676 | 10.1007/978-3-540-85072-4 1677 | 10.1007/978-3-642-04125-9 1678 | 10.1007/978-3-540-77564-5 1679 | 10.1007/978-3-642-21043-3 1680 | 10.1007/978-3-642-18023-1 1681 | 10.1007/978-3-642-24577-0 1682 | 10.1007/978-3-642-13022-9 1683 | 10.1007/978-3-642-27579-1 1684 | 10.1007/978-3-540-73368-3 1685 | 10.1007/11774716 1686 | 10.1007/3-540-54947-1 1687 | 10.1007/b106616 1688 | 10.1007/978-3-540-89054-6 1689 | 10.1007/978-3-642-23032-5 1690 | 10.1007/978-3-642-15172-9 1691 | 10.1007/3-540-48309-8 1692 | 10.1007/b11721 1693 | 10.1007/11927587 1694 | 10.1007/b104284 1695 | 10.1007/3-540-56891-3 1696 | 10.1007/3-540-70659-3 1697 | 10.1007/3-540-45607-4 1698 | 10.1007/11823230 1699 | 10.1007/978-3-540-72524-4 1700 | 10.1007/978-3-642-21227-7 1701 | 10.1007/978-3-642-12148-7 1702 | 10.1007/3-540-55844-6 1703 | 10.1007/3-540-46581-2 1704 | 10.1007/978-3-642-11620-9 1705 | 10.1007/978-3-642-27705-4 1706 | 10.1007/3-540-48321-7 1707 | 10.1007/b13743 1708 | 10.1007/978-3-540-72608-1 1709 | 10.1007/11538097 1710 | 10.1007/b98090 1711 | 10.1007/3-540-45011-4 1712 | 10.1007/3-540-15641-0 1713 | 10.1007/3-540-46440-9 1714 | 10.1007/3-540-45685-6 1715 | 10.1007/3-540-56188-9 1716 | 10.1007/BFb0023988 1717 | 10.1007/BFb0053051 1718 | 10.1007/978-3-540-70540-6 1719 | 10.1007/11576235 1720 | 10.1007/978-3-540-69814-2 1721 | 10.1007/11832225 1722 | 10.1007/3-540-45399-7 1723 | 10.1007/BFb0027865 1724 | 10.1007/978-3-540-71070-7 1725 | 10.1007/978-3-642-25106-1 1726 | 10.1007/b71652 1727 | 10.1007/11790273 1728 | 10.1007/978-3-642-16955-7 1729 | 10.1007/978-3-642-22386-0 1730 | 10.1007/3-540-15648-8 1731 | 10.1007/BFb0052147 1732 | 10.1007/978-3-642-02279-1 1733 | 10.1007/978-3-540-88513-9 1734 | 10.1007/978-3-540-77115-9 1735 | 10.1007/b94062 1736 | 10.1007/3-540-52062-7 1737 | 10.1007/978-3-642-19754-3 1738 | 10.1007/b78902 1739 | 10.1007/b96398 1740 | 10.1007/978-3-540-85776-1 1741 | 10.1007/11841883 1742 | 10.1007/b13810 1743 | 10.1007/978-3-642-15291-7 1744 | 10.1007/3-540-57936-2 1745 | 10.1007/b104265 1746 | 10.1007/BFb0031414 1747 | 10.1007/3-540-45793-3 1748 | 10.1007/978-3-540-76414-4 1749 | 10.1007/11599463 1750 | 10.1007/3-540-44987-6 1751 | 10.1007/11767589 1752 | 10.1007/3-540-44799-7 1753 | 10.1007/b96926 1754 | 10.1007/b101749 1755 | 10.1007/11802914 1756 | 10.1007/3-540-15199-0 1757 | 10.1007/978-3-642-04468-7 1758 | 10.1007/b95046 1759 | 10.1007/3-540-54345-7 1760 | 10.1007/3-540-45053-X 1761 | 10.1007/b13050 1762 | 10.1007/b100824 1763 | 10.1007/978-3-540-36761-1 1764 | 10.1007/978-3-642-27239-4 1765 | 10.1007/BFb0046045 1766 | 10.1007/BFb0109467 1767 | 10.1007/b84246 1768 | 10.1007/3-540-61131-2 1769 | 10.1007/b97630 1770 | 10.1007/978-3-540-71323-4 1771 | 10.1007/BFb0045861 1772 | 10.1007/3-540-36572-9 1773 | 10.1007/BFb0018062 1774 | 10.1007/978-3-540-47678-8 1775 | 10.1007/b14095 1776 | 10.1007/BFb0051453 1777 | 10.1007/978-3-642-19420-7 1778 | 10.1007/b100702 1779 | 10.1007/BFb0109634 1780 | 10.1007/BFb0117663 1781 | 10.1007/978-0-387-39938-6 1782 | 10.1007/10721064 1783 | 10.1007/BFb0094423 1784 | 10.1007/978-3-642-01811-4 1785 | 10.1007/b100081 1786 | 10.1007/978-3-642-02085-8 1787 | 10.1007/b137875 1788 | 10.1007/978-3-540-74481-8 1789 | 10.1007/11535409 1790 | 10.1007/978-3-540-78839-3 1791 | 10.1007/b106468 1792 | 10.1007/978-3-642-22935-0 1793 | 10.1007/978-3-642-02424-5 1794 | 10.1007/b94439 1795 | 10.1007/978-3-642-10265-3 1796 | 10.1007/978-3-642-22031-9 1797 | 10.1007/3-540-49674-2 1798 | 10.1007/978-3-540-70569-7 1799 | 10.1007/BFb0022481 1800 | 10.1007/3-540-51803-7 1801 | 10.1007/978-3-642-12827-1 1802 | 10.1007/b97873 1803 | 10.1007/BFb0027019 1804 | 10.1007/3-540-61208-4 1805 | 10.1007/978-3-642-01805-3 1806 | 10.1007/978-3-642-14589-6 1807 | 10.1007/978-3-540-71389-0 1808 | 10.1007/978-3-540-70904-6 1809 | 10.1007/11560647 1810 | 10.1007/978-3-642-21518-6 1811 | 10.1007/978-3-642-19125-1 1812 | 10.1007/978-3-540-74122-0 1813 | 10.1007/11573425 1814 | 10.1007/b101694 1815 | 10.1007/978-3-540-72035-5 1816 | 10.1007/3-540-60738-2 1817 | 10.1007/3-540-45418-7 1818 | 10.1007/11963271 1819 | 10.1007/978-3-540-77042-8 1820 | 10.1007/11603023 1821 | 10.1007/3-540-10571-9 1822 | 10.1007/BFb0053349 1823 | 10.1007/3-540-45681-3 1824 | 10.1007/3-540-45497-7 1825 | 10.1007/11552222 1826 | 10.1007/3-540-60286-0 1827 | 10.1007/b98280 1828 | 10.1007/BFb0024333 1829 | 10.1007/11527862 1830 | 10.1007/978-3-642-19437-5 1831 | 10.1007/b13243 1832 | 10.1007/11555964 1833 | 10.1007/978-3-540-78652-8 1834 | 10.1007/11560548 1835 | 10.1007/3-540-61859-7 1836 | 10.1007/3-540-44989-2 1837 | 10.1007/3-540-58843-4 1838 | 10.1007/3-540-51525-9 1839 | 10.1007/978-3-642-25719-3 1840 | 10.1007/3-540-60294-1 1841 | 10.1007/3-540-52215-8 1842 | 10.1007/b11824 1843 | 10.1007/3-540-45669-4 1844 | 10.1007/3-540-48685-2 1845 | 10.1007/978-3-540-69507-3 1846 | 10.1007/3-540-49247-X 1847 | 10.1007/BFb0100465 1848 | 10.1007/3-540-57500-6 1849 | 10.1007/3-540-55511-0 1850 | 10.1007/b137128 1851 | 10.1007/978-3-540-79547-6 1852 | 10.1007/978-3-540-85361-9 1853 | 10.1007/3-540-45925-1 1854 | 10.1007/11805618 1855 | 10.1007/b94613 1856 | 10.1007/978-3-642-22947-3 1857 | 10.1007/3-540-60298-4 1858 | 10.1007/3-540-61273-4 1859 | 10.1007/11814856 1860 | 10.1007/BFb0017469 1861 | 10.1007/b99676 1862 | 10.1007/978-3-642-13033-5 1863 | 10.1007/3-540-48919-3 1864 | 10.1007/11580850 1865 | 10.1007/978-3-642-13778-5 1866 | 10.1007/3-540-36222-3 1867 | 10.1007/978-3-540-76298-0 1868 | 10.1007/11564096 1869 | 10.1007/11955757 1870 | 10.1007/3-540-18088-5 1871 | 10.1007/978-3-642-25813-8 1872 | 10.1007/3-540-45627-9 1873 | 10.1007/978-3-642-19574-7 1874 | 10.1007/3-540-50820-1 1875 | 10.1007/3-540-59200-8 1876 | 10.1007/3-540-49366-2 1877 | 10.1007/3-540-58402-1 1878 | 10.1007/3-540-44988-4 1879 | 10.1007/b102133 1880 | 10.1007/978-3-540-69061-0 1881 | 10.1007/978-3-540-76442-7 1882 | 10.1007/11744023 1883 | 10.1007/b13249 1884 | 10.1007/978-3-642-02927-1 1885 | 10.1007/3-540-53452-0 1886 | 10.1007/b98210 1887 | 10.1007/11547686 1888 | 10.1007/b101218 1889 | 10.1007/11685654 1890 | 10.1007/978-3-540-73859-6 1891 | 10.1007/978-3-540-77096-1 1892 | 10.1007/978-3-642-21869-9 1893 | 10.1007/978-3-642-15763-9 1894 | 10.1007/11853886 1895 | 10.1007/BFb0017288 1896 | 10.1007/3-540-58671-7 1897 | 10.1007/BFb0111258 1898 | 10.1007/BFb0005037 1899 | 10.1007/978-3-540-46378-8 1900 | 10.1007/978-3-642-27284-4 1901 | 10.1007/978-3-540-89199-4 1902 | 10.1007/BFb0043423 1903 | 10.1007/3-540-45270-2 1904 | 10.1007/BFb0048012 1905 | 10.1007/BFb0042749 1906 | 10.1007/BFb0002465 1907 | 10.1007/b98357 1908 | 10.1007/978-3-540-44757-3 1909 | 10.1007/BFb0046055 1910 | 10.1007/BFb0109548 1911 | 10.1007/BFb0050626 1912 | 10.1007/b14096 1913 | 10.1007/978-3-540-69427-4 1914 | 10.1007/BFb0109599 1915 | 10.1007/BFb0024199 1916 | 10.1007/3-540-59498-1 1917 | 10.1007/978-3-540-44471-8_3 1918 | 10.1007/978-3-642-00255-7 1919 | 10.1007/10705424 1920 | 10.1007/978-3-642-13824-9 1921 | 10.1007/978-3-642-12356-6 1922 | 10.1007/11532095 1923 | 10.1007/b98195 1924 | 10.1007/978-3-642-02559-4 1925 | 10.1007/3-540-63246-8 1926 | 10.1007/11553595 1927 | 10.1007/b95740 1928 | 10.1007/978-3-540-69611-7 1929 | 10.1007/3-540-36080-8 1930 | 10.1007/11762256 1931 | 10.1007/978-3-642-14309-0 1932 | 10.1007/978-3-642-20291-9 1933 | 10.1007/3-540-48017-X 1934 | 10.1007/BFb0022459 1935 | 10.1007/b12018 1936 | 10.1007/978-3-642-04235-5 1937 | 10.1007/978-3-642-13529-3 1938 | 10.1007/BFb0040367 1939 | 10.1007/978-3-642-23851-2 1940 | 10.1007/978-3-642-13675-7 1941 | 10.1007/978-3-642-02138-1 1942 | 10.1007/b105582 1943 | 10.1007/3-540-60641-6 1944 | 10.1007/978-3-642-00831-3 1945 | 10.1007/978-3-642-22763-9 1946 | 10.1007/3-540-60618-1 1947 | 10.1007/978-3-642-03223-3 1948 | 10.1007/978-3-540-89533-6 1949 | 10.1007/11752912 1950 | 10.1007/3-540-44555-2 1951 | 10.1007/3-540-45422-5 1952 | 10.1007/978-3-642-00975-4 1953 | 10.1007/3-540-12693-7 1954 | 10.1007/978-3-642-17508-4 1955 | 10.1007/b136434 1956 | 10.1007/978-3-642-23544-3 1957 | 10.1007/3-540-58338-6 1958 | 10.1007/3-540-58131-6 1959 | 10.1007/978-3-642-04265-2 1960 | 10.1007/3-540-46088-8 1961 | 10.1007/3-540-48762-X 1962 | 10.1007/978-3-540-92990-1 1963 | 10.1007/b136266 1964 | 10.1007/3-540-46436-0 1965 | 10.1007/978-3-642-18275-4 1966 | 10.1007/978-3-540-78808-9 1967 | 10.1007/BFb0016999 1968 | 10.1007/978-3-540-74987-5 1969 | 10.1007/b137241 1970 | 10.1007/b99664 1971 | 10.1007/978-3-642-16926-7 1972 | 10.1007/978-3-642-04143-3 1973 | 10.1007/978-3-540-88009-7 1974 | 10.1007/11921998 1975 | 10.1007/BFb0017181 1976 | 10.1007/BFb0057710 1977 | 10.1007/978-3-540-77120-3 1978 | 10.1007/3-540-45046-7 1979 | 10.1007/3-540-36209-6 1980 | 10.1007/BFb0024633 1981 | 10.1007/11678809 1982 | 1983 | 1984 | -------------------------------------------------------------------------------- /web-ext-artifacts/istex-1.2.7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/istex-archives/istex-browser-extension/bee0055317571366997294c4e36aeb5cc05187da/web-ext-artifacts/istex-1.2.7.zip --------------------------------------------------------------------------------