Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-jupyter-docprovider for 
openSUSE:Factory checked in at 2025-07-03 12:10:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter-docprovider (Old)
 and      /work/SRC/openSUSE:Factory/.python-jupyter-docprovider.new.1903 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-jupyter-docprovider"

Thu Jul  3 12:10:40 2025 rev:4 rq:1290009 version:2.1.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-jupyter-docprovider/python-jupyter-docprovider.changes
    2025-06-23 14:56:56.400995949 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-jupyter-docprovider.new.1903/python-jupyter-docprovider.changes
  2025-07-03 12:13:06.628314366 +0200
@@ -1,0 +2,6 @@
+Wed Jul  2 14:45:03 UTC 2025 - Ben Greiner <c...@bnavigator.de>
+
+- Update to 2.1.0
+  * New subpackage version for jupyter-collaboration 4.1.0
+
+-------------------------------------------------------------------

Old:
----
  jupyter_docprovider-2.0.2.tar.gz

New:
----
  jupyter_docprovider-2.1.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-jupyter-docprovider.spec ++++++
--- /var/tmp/diff_new_pack.GkgvR9/_old  2025-07-03 12:13:07.500350888 +0200
+++ /var/tmp/diff_new_pack.GkgvR9/_new  2025-07-03 12:13:07.504351056 +0200
@@ -16,9 +16,9 @@
 #
 
 
-%define distversion 2.0.2
+%define distversion 2.1
 Name:           python-jupyter-docprovider
-Version:        2.0.2
+Version:        2.1.0
 Release:        0
 Summary:        Jupyter extension integrating collaborative shared models
 License:        BSD-3-Clause

++++++ jupyter_docprovider-2.0.2.tar.gz -> jupyter_docprovider-2.1.0.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter_docprovider-2.0.2/PKG-INFO 
new/jupyter_docprovider-2.1.0/PKG-INFO
--- old/jupyter_docprovider-2.0.2/PKG-INFO      2020-02-02 01:00:00.000000000 
+0100
+++ new/jupyter_docprovider-2.1.0/PKG-INFO      2020-02-02 01:00:00.000000000 
+0100
@@ -1,9 +1,12 @@
 Metadata-Version: 2.4
 Name: jupyter-docprovider
-Version: 2.0.2
+Version: 2.1.0
 Summary: JupyterLab/Jupyter Notebook 7+ extension integrating collaborative 
shared models.
 Project-URL: Documentation, 
https://jupyterlab-realtime-collaboration.readthedocs.io/
 Project-URL: Repository, https://github.com/jupyterlab/jupyter-collaboration
+Project-URL: Changelog, 
https://jupyterlab-realtime-collaboration.readthedocs.io/en/latest/changelog.html
+Project-URL: Source, 
https://github.com/jupyterlab/jupyter-collaboration/tree/main/packages/docprovider-extension
+Project-URL: Issues, 
https://github.com/jupyterlab/jupyter-collaboration/issues/new/choose
 Author-email: Jupyter Development Team <jupy...@googlegroups.com>
 License: # Licensing terms
         
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/_version.py 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/_version.py
--- old/jupyter_docprovider-2.0.2/jupyter_docprovider/_version.py       
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-2.1.0/jupyter_docprovider/_version.py       
2020-02-02 01:00:00.000000000 +0100
@@ -1 +1 @@
-__version__ = "2.0.2"
+__version__ = "2.1.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/package.json 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/package.json
--- old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/package.json 
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/package.json 
2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 {
   "name": "@jupyter/docprovider-extension",
-  "version": "4.0.2",
+  "version": "4.1.0",
   "description": "JupyterLab - Collaborative Shared Models",
   "keywords": [
     "jupyter",
@@ -53,8 +53,8 @@
     "watch:labextension": "jupyter labextension watch ."
   },
   "dependencies": {
-    "@jupyter/collaborative-drive": "^4.0.2",
-    "@jupyter/docprovider": "^4.0.2",
+    "@jupyter/collaborative-drive": "^4.1.0",
+    "@jupyter/docprovider": "^4.1.0",
     "@jupyter/ydoc": "^2.1.3 || ^3.0.0",
     "@jupyterlab/application": "^4.4.0",
     "@jupyterlab/apputils": "^4.4.0",
@@ -128,7 +128,7 @@
       }
     },
     "_build": {
-      "load": "static/remoteEntry.236b886ba495f686c573.js",
+      "load": "static/remoteEntry.cddf83930bc7c4fbf11a.js",
       "extension": "./extension",
       "style": "./style"
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/240.b89bafe21cc031ed1f8d.js
 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/240.b89bafe21cc031ed1f8d.js
--- 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/240.b89bafe21cc031ed1f8d.js
   2020-02-02 01:00:00.000000000 +0100
+++ 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/240.b89bafe21cc031ed1f8d.js
   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-"use 
strict";(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[240],{68:(e,t,n)=>{n.d(t,{A:()=>a});var
 o=n(758),r=n.n(o),s=n(935),i=n.n(s)()(r());i.push([e.id,"/* 
-----------------------------------------------------------------------------\n|
 Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the 
Modified BSD 
License.\n|----------------------------------------------------------------------------
 */\n\n.jp-timelineSliderWrapper .jp-sliderContainer{\n  display: flex;\n  
align-items: center;\n}\n\n.jp-Slider {\n  height: 
4.5px\n}\n\n#jp-slider-status-bar {\n  display: 
flex;\n}\n\n.jp-timestampDisplay {\n  display: flex;\n  flex-direction: row;\n  
align-items: center;\n  gap: 6px;\n}\n\n.jp-restoreBtnContainer {\n  width: 
192px;\n}\n\n.jp-ToolbarButtonComponent.jp-restoreBtn {\n  cursor: pointer;\n  
color: var(--jp-layout-color2);\n  width: 100%;\n  background: 
var(--jp-accept-color-normal)\n}\n",""]);con
 st a=i},935:e=>{e.exports=function(e){var t=[];return 
t.toString=function(){return this.map((function(t){var n="",o=void 
0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media 
".concat(t[2]," {")),o&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," 
{")),n+=e(t),o&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,o,r,s){"string"==typeof
 e&&(e=[[null,e,void 0]]);var i={};if(o)for(var a=0;a<this.length;a++){var 
c=this[a][0];null!=c&&(i[c]=!0)}for(var l=0;l<e.length;l++){var 
d=[].concat(e[l]);o&&i[d[0]]||(void 0!==s&&(void 
0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," 
{").concat(d[1],"}")),d[5]=s),n&&(d[2]?(d[1]="@media ".concat(d[2]," 
{").concat(d[1],"}"),d[2]=n):d[2]=n),r&&(d[4]?(d[1]="@supports 
(".concat(d[4],") 
{").concat(d[1],"}"),d[4]=r):d[4]="".concat(r)),t.push(d))}},t}},758:e=>{e.exports=function(e){return
 e[1]}},591:e=>{var t=[];function n(e){for(var 
n=-1,o=0;o<t.length;o++)if(t[o].identifier===e){n=o;br
 eak}return n}function o(e,o){for(var s={},i=[],a=0;a<e.length;a++){var 
c=e[a],l=o.base?c[0]+o.base:c[0],d=s[l]||0,h="".concat(l," 
").concat(d);s[l]=d+1;var 
u=n(h),p={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==u)t[u].references++,t[u].updater(p);else{var
 
m=r(p,o);o.byIndex=a,t.splice(a,0,{identifier:h,updater:m,references:1})}i.push(h)}return
 i}function r(e,t){var n=t.domAPI(t);return 
n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else
 n.remove()}}e.exports=function(e,r){var s=o(e=e||[],r=r||{});return 
function(e){e=e||[];for(var i=0;i<s.length;i++){var 
a=n(s[i]);t[a].references--}for(var c=o(e,r),l=0;l<s.length;l++){var 
d=n(s[l]);0===t[d].references&&(t[d].updater(),t.splice(d,1))}s=c}}},128:e=>{var
 t={};e.exports=function(e,n){var o=function(e){if(void 0===t[e]){var 
n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof 
window.HTMLI
 FrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return 
t[e]}(e);if(!o)throw new Error("Couldn't find a style target. This probably 
means that the value for the 'insert' parameter is 
invalid.");o.appendChild(n)}},51:e=>{e.exports=function(e){var 
t=document.createElement("style");return 
e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},855:(e,t,n)=>{e.exports=function(e){var
 
t=n.nc;t&&e.setAttribute("nonce",t)}},359:e=>{e.exports=function(e){if("undefined"==typeof
 document)return{update:function(){},remove:function(){}};var 
t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var 
o="";n.supports&&(o+="@supports (".concat(n.supports,") 
{")),n.media&&(o+="@media ".concat(n.media," {"));var r=void 
0!==n.layer;r&&(o+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," 
{")),o+=n.css,r&&(o+="}"),n.media&&(o+="}"),n.supports&&(o+="}");var 
s=n.sourceMap;s&&"undefined"!=typeof btoa&&(o+="\n/*# 
sourceMappingURL=data:application/json;base64,".concat
 (btoa(unescape(encodeURIComponent(JSON.stringify(s))))," 
*/")),t.styleTagTransform(o,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},656:e=>{e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},240:(e,t,n)=>{n.r(t),n.d(t,{ForkManager:()=>K,IForkManagerToken:()=>J,JUPYTER_COLLABORATION_FORK_EVENTS_URI:()=>q,NotebookCellServerExecutor:()=>l,ROOM_FORK_URL:()=>p,RtcContentProvider:()=>k,TimelineWidget:()=>B,WebSocketAwarenessProvider:()=>r,WebSocketProvider:()=>w,requestAPI:()=>m,requestDocSession:()=>f,requestDocumentTimeline:()=>v,requestUndoRedo:()=>g});var
 o=n(560);class r extends 
o.WebsocketProvider{constructor(e){super(e.url,e.roomID,e.awareness.doc,{awareness:e.awareness}),this._isDisposed=!1,this._awareness=e.awareness,this._user=e.user,this._user.ready.then((()=>this._onUserChanged(this._user))).catch
 
((e=>console.error(e))),this._user.userChanged.connect(this._onUserChanged,this)}get
 isDisposed(){return 
this._isDisposed}dispose(){this._isDisposed||(this._user.userChanged.disconnect(this._onUserChanged,this),this._isDisposed=!0,this.destroy())}_onUserChanged(e){this._awareness.setLocalStateField("user",e.identity)}}var
 s=n(569),i=n(808),a=n(695),c=n(579);class l{constructor(e){var 
t;this._serverSettings=null!==(t=e.serverSettings)&&void 
0!==t?t:a.ServerConnection.makeSettings()}async 
runCell({cell:e,notebook:t,notebookConfig:n,onCellExecuted:o,onCellExecutionScheduled:r,sessionContext:l,sessionDialogs:d,translator:h}){var
 u,p,m;const 
f=(h=null!=h?h:c.nullTranslator).load("jupyterlab");switch(e.model.type){case"markdown":e.rendered=!0,e.inputHidden=!1,o({cell:e,success:!0});break;case"code":if(l){if(l.isTerminating){await(0,s.showDialog)({title:f.__("Kernel
 Terminating"),body:f.__("The kernel for %1 appears to be terminating. You can 
not run any cell for now.",null===(u=l.session)
 ||void 0===u?void 
0:u.path),buttons:[s.Dialog.okButton()]});break}if(l.pendingInput)return 
await(0,s.showDialog)({title:f.__("Cell not executed due to pending 
input"),body:f.__("The cell has not been executed to avoid kernel deadlock as 
there is another pending input! Submit your pending input and try 
again."),buttons:[s.Dialog.okButton()]}),!1;if(l.hasNoKernel&&await 
l.startKernel()&&d&&await d.selectKernel(l),l.hasNoKernel)return 
e.model.sharedModel.transact((()=>{e.model.clearExecution()})),!0;const 
n=null===(m=null===(p=null==l?void 0:l.session)||void 0===p?void 
0:p.kernel)||void 0===m?void 
0:m.id,c=i.URLExt.join(this._serverSettings.baseUrl,`api/kernels/${n}/execute`),h=e.model.sharedModel.getId(),v=t.sharedModel.getState("document_id"),g={method:"POST",body:JSON.stringify({cell_id:h,document_id:v})};r({cell:e});let
 y=!1;try{y=(await 
a.ServerConnection.makeRequest(c,g,this._serverSettings)).ok}catch(t){if(o({cell:e,success:!1}),e.isDisposed)return!1;throw
 t}return o({cell:e,suc
 
cess:y}),!0}e.model.sharedModel.transact((()=>{e.model.clearExecution()}),!1)}return
 Promise.resolve(!0)}}const 
d="api/collaboration/session",h="api/collaboration/undo_redo",u="api/collaboration/timeline",p="api/collaboration/fork";async
 function m(e="",t={}){const 
n=a.ServerConnection.makeSettings(),o=i.URLExt.join(n.baseUrl,e);let 
r;try{r=await a.ServerConnection.makeRequest(o,t,n)}catch(e){throw new 
a.ServerConnection.NetworkError(e)}let s=await 
r.text();if(s.length>0)try{s=JSON.parse(s)}catch(e){console.error("Not a JSON 
response body.",r)}if(!r.ok)throw new 
a.ServerConnection.ResponseError(r,s.message||s);return s}async function 
f(e,t,n){const 
o=a.ServerConnection.makeSettings(),r=i.URLExt.join(o.baseUrl,d,encodeURIComponent(n)),s={method:"PUT",body:JSON.stringify({format:e,type:t})};let
 c;try{c=await a.ServerConnection.makeRequest(r,s,o)}catch(e){throw new 
a.ServerConnection.NetworkError(e)}let l=await 
c.text();if(l.length>0)try{l=JSON.parse(l)}catch(e){console.log("Not a JSON
  response body.",c)}if(!c.ok)throw new 
a.ServerConnection.ResponseError(c,l.message||l);return l}async function 
v(e,t,n){const o=a.ServerConnection.makeSettings();let 
r=i.URLExt.join(o.baseUrl,u,n);r=r.concat(`?format=${e}&&type=${t}`);const 
s={method:"GET"};let c;try{c=await 
a.ServerConnection.makeRequest(r,s,o)}catch(e){throw new 
a.ServerConnection.NetworkError(e)}return c}async function g(e,t,n,o){const 
r=a.ServerConnection.makeSettings();let 
s=i.URLExt.join(r.baseUrl,h,encodeURIComponent(e));s=s.concat(`?action=${t}&&steps=${n}&&forkRoom=${o}`);const
 c={method:"PUT"};let l;try{l=await 
a.ServerConnection.makeRequest(s,c,r)}catch(e){throw new 
a.ServerConnection.NetworkError(e)}let d=await 
l.text();if(d.length>0)try{d=JSON.parse(d)}catch(e){console.log("Not a JSON 
response body.",l)}if(!l.ok)throw new 
a.ServerConnection.ResponseError(l,d.message||d);return d}var 
y=n(602),_=n(262);class 
w{constructor(e){this._onConnectionClosed=e=>{1003===e.code&&(console.error("Document
 provider cl
 osed:",e.reason),(0,s.showErrorMessage)(this._trans.__("Document session 
error"),e.reason,[s.Dialog.okButton()]),this._sharedModel.dispose())},this._onSync=e=>{e&&(this._yWebsocketProvider&&(this._yWebsocketProvider.off("sync",this._onSync),this._sharedModel.ydoc.getMap("state").set("document_id",this._yWebsocketProvider.roomname)),this._ready.resolve())},this._ready=new
 
_.PromiseDelegate,this._isDisposed=!1,this._path=e.path,this._contentType=e.contentType,this._format=e.format,this._serverUrl=e.url,this._sharedModel=e.model,this._awareness=e.model.awareness,this._yWebsocketProvider=null,this._trans=e.translator;const
 
t=e.user;t.ready.then((()=>{this._onUserChanged(t)})).catch((e=>console.error(e))),t.userChanged.connect(this._onUserChanged,this),this._connect().catch((e=>console.warn(e)))}get
 isDisposed(){return this._isDisposed}get ready(){return 
this._ready.promise}get contentType(){return this._contentType}get 
format(){return this._format}dispose(){var e,t,n;this.isDisposed||(t
 his._isDisposed=!0,null===(e=this._yWebsocketProvider)||void 
0===e||e.off("connection-close",this._onConnectionClosed),null===(t=this._yWebsocketProvider)||void
 0===t||t.off("sync",this._onSync),null===(n=this._yWebsocketProvider)||void 
0===n||n.destroy(),this._disconnect(),y.Signal.clearData(this))}async 
reconnect(){this._disconnect(),this._connect()}async _connect(){const e=await 
f(this._format,this._contentType,this._path);this._yWebsocketProvider=new 
o.WebsocketProvider(this._serverUrl,`${e.format}:${e.type}:${e.fileId}`,this._sharedModel.ydoc,{disableBc:!0,params:{sessionId:e.sessionId},awareness:this._awareness}),this._yWebsocketProvider.on("sync",this._onSync),this._yWebsocketProvider.on("connection-close",this._onConnectionClosed)}async
 connectToForkDoc(e,t){this._disconnect(),this._yWebsocketProvider=new 
o.WebsocketProvider(this._serverUrl,e,this._sharedModel.ydoc,{disableBc:!0,params:{sessionId:t},awareness:this._awareness})}get
 wsProvider(){return this._yWebsocketProvider
 }_disconnect(){var e,t,n;null===(e=this._yWebsocketProvider)||void 
0===e||e.off("connection-close",this._onConnectionClosed),null===(t=this._yWebsocketProvider)||void
 0===t||t.off("sync",this._onSync),null===(n=this._yWebsocketProvider)||void 
0===n||n.destroy(),this._yWebsocketProvider=null}_onUserChanged(e){this._awareness.setLocalStateField("user",e.identity)}}const
 S="true"===i.PageConfig.getOption("disableRTC");class k extends 
a.RestContentProvider{constructor(e){super(e),this._onCreate=(e,t)=>{var 
n,o;if("string"==typeof e.format)try{const r=new 
w({url:i.URLExt.join(this._serverSettings.wsUrl,"api/collaboration/room"),path:e.path,format:e.format,contentType:e.contentType,model:t,user:this._user,translator:this._trans}),s=((null===(n=this._globalAwareness)||void
 0===n?void 
0:n.getLocalState())||{}).documents||[];s.includes(e.path)||(s.push(e.path),null===(o=this._globalAwareness)||void
 0===o||o.setLocalStateField("documents",s));const 
a=`${e.format}:${e.contentType}:${e.path}`;t
 his._providers.set(a,r),t.changed.connect((async(n,o)=>{var 
r;if(!o.stateChange)return;const 
s=o.stateChange.filter((e=>"hash"===e.name));if(0===s.length)return;s.length>1&&console.error("Unexpected
 multiple changes to hash value in a single transaction");const 
i=s[0],a=null!==(r=t.state.path)&&void 0!==r?r:e.path,c=await 
this.get(a,{content:!1});this._ydriveFileChanged.emit({type:"save",newValue:{...c,hash:i.newValue},oldValue:{hash:i.oldValue}})})),t.disposed.connect((()=>{var
 t,n;const 
o=this._providers.get(a);o&&(o.dispose(),this._providers.delete(a));const 
r=((null===(t=this._globalAwareness)||void 0===t?void 
0:t.getLocalState())||{}).documents||[],s=r.indexOf(e.path);s>-1&&r.splice(s,1),null===(n=this._globalAwareness)||void
 0===n||n.setLocalStateField("documents",r)}))}catch(t){console.error(`Failed 
to open websocket connection for 
${e.path}.\n:${t}`)}},this._ydriveFileChanged=new 
y.Signal(this),this._user=e.user,this._trans=e.trans,this._globalAwareness=e.globalAwareness,thi
 s._serverSettings=e.serverSettings,this.sharedModelFactory=new 
b(this._onCreate),this._providers=new Map}get providers(){return 
this._providers}async get(e,t){if(t&&t.format&&t.type){const 
n=`${t.format}:${t.type}:${e}`,o=this._providers.get(n);if(o){const[n]=await 
Promise.all([super.get(e,{...t,content:!1}),o.ready]);return{...n,format:t.format}}}return
 super.get(e,t)}async save(e,t={}){if(t.format&&t.type){const 
n=`${t.format}:${t.type}:${e}`;if(this._providers.get(n)){const 
n={type:t.type,format:t.format,content:!1};return this.get(e,n)}}return 
super.save(e,t)}get fileChanged(){return this._ydriveFileChanged}}class 
b{constructor(e){this._onCreate=e,this.collaborative=!S,this.documentFactories=new
 Map}registerDocumentFactory(e,t){if(this.documentFactories.has(e))throw new 
Error(`The content type ${e} already 
exists`);this.documentFactories.set(e,t)}createNew(e){if("string"==typeof 
e.format){if(this.collaborative&&e.collaborative&&this.documentFactories.has(e.contentType)){const
 t=
 this.documentFactories.get(e.contentType)(e);return 
this._onCreate(e,t),t}}else console.warn(`Only defined format are supported; 
got ${e.format}.`)}}var 
C=n(345),T=n.n(C),E=n(591),x=n.n(E),R=n(359),U=n.n(R),D=n(128),P=n.n(D),$=n(855),N=n.n($),j=n(51),I=n.n(j),L=n(656),M=n.n(L),F=n(68),A={};A.styleTagTransform=M(),A.setAttributes=N(),A.insert=P().bind(null,"head"),A.domAPI=U(),A.insertStyleElement=I(),x()(F.A,A),F.A&&F.A.locals&&F.A.locals;var
 W=n(989);const 
O=({apiURL:e,provider:t,contentType:n,format:o,documentTimelineUrl:r})=>{const[i,a]=(0,C.useState)({roomId:"",timestamps:[],forkRoom:"",sessionId:""}),[c,l]=(0,C.useState)(i.timestamps.length-1),[d,h]=(0,C.useState)(!1),[u,p]=(0,C.useState)(!1),m=(0,C.useRef)(!0),y=(0,C.useRef)(!0),_=(0,C.useRef)(null);function
 w(e){try{const t=new URL(e).pathname,n=t.lastIndexOf(r);if(-1===n)throw new 
Error(`API segment "${r}" not found in URL.`);return 
t.slice(n+r.length)}catch(e){return console.error("Invalid URL or unable to 
extract filename:
 ",e),""}}return 
T().createElement("div",{className:"jp-sliderContainer"},T().createElement("div",{onClick:()=>{!async
 function(r){try{if(m.current){const i=await v(o,n,r);if(!i.ok)throw 
404===i.status?new Error("Not found"):503===i.status?new Error("WebSocket 
closed"):new Error(`Failed to fetch data: ${i.statusText}`);const c=await 
i.text();let d={roomId:"",timestamps:[],forkRoom:"",sessionId:""};return 
c&&(s.Notification.warning("Document is now in read-only mode. Changes will not 
be 
saved.",{autoClose:2500}),d=JSON.parse(c),a(d),l(d.timestamps.length-1),t.connectToForkDoc(d.forkRoom,d.sessionId),_.current=await
 f(o,n,w(e))),h(!0),m.current=!1,d}}catch(e){console.error("Error fetching 
data:",e)}}(w(e))},className:"jp-mod-highlighted",title:"Document 
Timeline"},T().createElement(W.historyIcon.react,{marginRight:"4px"})),d&&T().createElement("div",{className:"jp-timestampDisplay"},T().createElement("input",{type:"range",min:0,max:i.timestamps.length-1,value:c,onChange:async
 e=>{const
  t=parseInt(e.target.value),n=Math.abs(t-c);try{const e=function(e){return 
e<c?"undo":"redo"}(t);if(l(t),y.current&&(p(!0),y.current=!1),!_.current)return 
void console.error("Session is not initialized");await 
g(`${_.current.format}:${_.current.type}:${_.current.fileId}`,e,n,i.forkRoom)}catch(e){console.error("Error
 fetching or applying 
updates:",e)}},className:"jp-Slider"}),T().createElement("div",null,T().createElement("strong",null,w(e).split("/").pop(),"
 ")," 
"),u&&T().createElement("div",{className:"jp-restoreBtnContainer"},T().createElement("button",{onClick:async()=>{if(!_.current)return
 void console.error("Session is not initialized");const e=await 
g(`${_.current.format}:${_.current.type}:${_.current.fileId}`,"restore",0,i.forkRoom);200===e.code?(s.Notification.success(e.status,{autoClose:4e3}),t.reconnect(),h(!1),m.current=!0):s.Notification.error(e.status,{autoClose:4e3})},className:"jp-ToolbarButtonComponent
 jp-restoreBtn"},"Restore version"," ",(e=>{const t=new Date(1e3*
 
e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}
 
${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`})(i.timestamps[c])))))};class
 B extends 
s.ReactWidget{constructor(e,t,n,o,r){super(),this.apiURL=e,this.provider=t,this.contentType=n,this.format=o,this.documentTimelineUrl=r,this.addClass("jp-timelineSliderWrapper")}render(){return
 
C.createElement(O,{key:this.apiURL,apiURL:this.apiURL,provider:this.provider,contentType:this.contentType,format:this.format,documentTimelineUrl:this.documentTimelineUrl})}updateContent(e,t){this.apiURL=e,this.provider=t,this.contentType=this.provider.contentType,this.format=this.provider.format,this.update()}}const
 J=new 
_.Token("@jupyter/docprovider:IForkManagerToken"),q="https://schema.jupyter.org/jupyter_collaboration/fork/v1";class
 K{constructor(e){this._disposed=!1,this._forkAddedSignal=new 
y.Signal(this),this._forkDe
 letedSignal=new 
y.Signal(this);const{contentProvider:t,eventManager:n}=e;this._contentProvider=t,this._eventManager=n,this._eventManager.stream.connect(this._handleEvent,this)}get
 isDisposed(){return this._disposed}get forkAdded(){return 
this._forkAddedSignal}get forkDeleted(){return 
this._forkDeletedSignal}dispose(){var 
e;this._disposed||(null===(e=this._eventManager)||void 
0===e||e.stream.disconnect(this._handleEvent),this._disposed=!0)}async 
createFork(e){const{rootId:t,title:n,description:o,synchronize:r}=e,s={method:"PUT",body:JSON.stringify({title:n,description:o,synchronize:r})},a=i.URLExt.join(p,t);return
 await m(a,s)}async getAllForks(e){const t=i.URLExt.join(p,e);return await 
m(t,{method:"GET"})}async 
deleteFork(e){const{forkId:t,merge:n}=e,o=i.URLExt.join(p,t),r=i.URLExt.objectToQueryString({merge:n});await
 
m(`${o}${r}`,{method:"DELETE"})}getProvider(e){const{documentPath:t,format:n,type:o}=e,r=this._contentProvider;if(r){const
 e=t;return r.providers.get(`${n}:${o}:${e}`)
 
}}_handleEvent(e,t){if(t.schema_id===q)switch(t.action){case"create":this._forkAddedSignal.emit(t);break;case"delete":this._forkDeletedSignal.emit(t)}}}}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/240.fcd24e6ef73eda1e61ba.js
 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/240.fcd24e6ef73eda1e61ba.js
--- 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/240.fcd24e6ef73eda1e61ba.js
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/240.fcd24e6ef73eda1e61ba.js
   2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1 @@
+"use 
strict";(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[240],{68:(e,t,n)=>{n.d(t,{A:()=>a});var
 o=n(758),r=n.n(o),s=n(935),i=n.n(s)()(r());i.push([e.id,"/* 
-----------------------------------------------------------------------------\n|
 Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the 
Modified BSD 
License.\n|----------------------------------------------------------------------------
 */\n\n.jp-timelineSliderWrapper .jp-sliderContainer{\n  display: flex;\n  
align-items: center;\n}\n\n.jp-Slider {\n  height: 
4.5px\n}\n\n#jp-slider-status-bar {\n  display: 
flex;\n}\n\n.jp-timestampDisplay {\n  display: flex;\n  flex-direction: row;\n  
align-items: center;\n  gap: 6px;\n}\n\n.jp-restoreBtnContainer {\n  width: 
192px;\n}\n\n.jp-ToolbarButtonComponent.jp-restoreBtn {\n  cursor: pointer;\n  
color: var(--jp-layout-color2);\n  width: 100%;\n  background: 
var(--jp-accept-color-normal)\n}\n",""]);con
 st a=i},935:e=>{e.exports=function(e){var t=[];return 
t.toString=function(){return this.map((function(t){var n="",o=void 
0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media 
".concat(t[2]," {")),o&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," 
{")),n+=e(t),o&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,o,r,s){"string"==typeof
 e&&(e=[[null,e,void 0]]);var i={};if(o)for(var a=0;a<this.length;a++){var 
c=this[a][0];null!=c&&(i[c]=!0)}for(var l=0;l<e.length;l++){var 
d=[].concat(e[l]);o&&i[d[0]]||(void 0!==s&&(void 
0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," 
{").concat(d[1],"}")),d[5]=s),n&&(d[2]?(d[1]="@media ".concat(d[2]," 
{").concat(d[1],"}"),d[2]=n):d[2]=n),r&&(d[4]?(d[1]="@supports 
(".concat(d[4],") 
{").concat(d[1],"}"),d[4]=r):d[4]="".concat(r)),t.push(d))}},t}},758:e=>{e.exports=function(e){return
 e[1]}},591:e=>{var t=[];function n(e){for(var 
n=-1,o=0;o<t.length;o++)if(t[o].identifier===e){n=o;br
 eak}return n}function o(e,o){for(var s={},i=[],a=0;a<e.length;a++){var 
c=e[a],l=o.base?c[0]+o.base:c[0],d=s[l]||0,u="".concat(l," 
").concat(d);s[l]=d+1;var 
h=n(u),p={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==h)t[h].references++,t[h].updater(p);else{var
 
m=r(p,o);o.byIndex=a,t.splice(a,0,{identifier:u,updater:m,references:1})}i.push(u)}return
 i}function r(e,t){var n=t.domAPI(t);return 
n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else
 n.remove()}}e.exports=function(e,r){var s=o(e=e||[],r=r||{});return 
function(e){e=e||[];for(var i=0;i<s.length;i++){var 
a=n(s[i]);t[a].references--}for(var c=o(e,r),l=0;l<s.length;l++){var 
d=n(s[l]);0===t[d].references&&(t[d].updater(),t.splice(d,1))}s=c}}},128:e=>{var
 t={};e.exports=function(e,n){var o=function(e){if(void 0===t[e]){var 
n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof 
window.HTMLI
 FrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return 
t[e]}(e);if(!o)throw new Error("Couldn't find a style target. This probably 
means that the value for the 'insert' parameter is 
invalid.");o.appendChild(n)}},51:e=>{e.exports=function(e){var 
t=document.createElement("style");return 
e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},855:(e,t,n)=>{e.exports=function(e){var
 
t=n.nc;t&&e.setAttribute("nonce",t)}},740:e=>{e.exports=function(e){if("undefined"==typeof
 document)return{update:function(){},remove:function(){}};var 
t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var 
o="";n.supports&&(o+="@supports (".concat(n.supports,") 
{")),n.media&&(o+="@media ".concat(n.media," {"));var r=void 
0!==n.layer;r&&(o+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," 
{")),o+=n.css,r&&(o+="}"),n.media&&(o+="}"),n.supports&&(o+="}");var 
s=n.sourceMap;s&&"undefined"!=typeof btoa&&(o+="\n/*# 
sourceMappingURL=data:application/json;base64,".concat
 (btoa(unescape(encodeURIComponent(JSON.stringify(s))))," 
*/")),t.styleTagTransform(o,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},656:e=>{e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},240:(e,t,n)=>{n.r(t),n.d(t,{ForkManager:()=>V,IForkManagerToken:()=>K,JUPYTER_COLLABORATION_FORK_EVENTS_URI:()=>z,NotebookCellServerExecutor:()=>l,ROOM_FORK_URL:()=>p,RtcContentProvider:()=>C,TimelineWidget:()=>q,WebSocketAwarenessProvider:()=>r,WebSocketProvider:()=>w,requestAPI:()=>m,requestDocSession:()=>v,requestDocumentTimeline:()=>f,requestUndoRedo:()=>g});var
 o=n(560);class r extends 
o.WebsocketProvider{constructor(e){super(e.url,e.roomID,e.awareness.doc,{awareness:e.awareness}),this._isDisposed=!1,this._awareness=e.awareness,this._user=e.user,this._user.ready.then((()=>this._onUserChanged(this._user))).catch
 
((e=>console.error(e))),this._user.userChanged.connect(this._onUserChanged,this)}get
 isDisposed(){return 
this._isDisposed}dispose(){this._isDisposed||(this._user.userChanged.disconnect(this._onUserChanged,this),this._isDisposed=!0,this.destroy())}_onUserChanged(e){this._awareness.setLocalStateField("user",e.identity)}}var
 s=n(805),i=n(708),a=n(955),c=n(503);class l{constructor(e){var 
t;this._serverSettings=null!==(t=e.serverSettings)&&void 
0!==t?t:a.ServerConnection.makeSettings()}async 
runCell({cell:e,notebook:t,notebookConfig:n,onCellExecuted:o,onCellExecutionScheduled:r,sessionContext:l,sessionDialogs:d,translator:u}){var
 h,p,m;const 
v=(u=null!=u?u:c.nullTranslator).load("jupyterlab");switch(e.model.type){case"markdown":e.rendered=!0,e.inputHidden=!1,o({cell:e,success:!0});break;case"code":if(l){if(l.isTerminating){await(0,s.showDialog)({title:v.__("Kernel
 Terminating"),body:v.__("The kernel for %1 appears to be terminating. You can 
not run any cell for now.",null===(h=l.session)
 ||void 0===h?void 
0:h.path),buttons:[s.Dialog.okButton()]});break}if(l.pendingInput)return 
await(0,s.showDialog)({title:v.__("Cell not executed due to pending 
input"),body:v.__("The cell has not been executed to avoid kernel deadlock as 
there is another pending input! Submit your pending input and try 
again."),buttons:[s.Dialog.okButton()]}),!1;if(l.hasNoKernel&&await 
l.startKernel()&&d&&await d.selectKernel(l),l.hasNoKernel)return 
e.model.sharedModel.transact((()=>{e.model.clearExecution()})),!0;const 
n=null===(m=null===(p=null==l?void 0:l.session)||void 0===p?void 
0:p.kernel)||void 0===m?void 
0:m.id,c=i.URLExt.join(this._serverSettings.baseUrl,`api/kernels/${n}/execute`),u=e.model.sharedModel.getId(),f=t.sharedModel.getState("document_id"),g={method:"POST",body:JSON.stringify({cell_id:u,document_id:f})};r({cell:e});let
 y=!1;try{y=(await 
a.ServerConnection.makeRequest(c,g,this._serverSettings)).ok}catch(t){if(o({cell:e,success:!1}),e.isDisposed)return!1;throw
 t}return o({cell:e,suc
 
cess:y}),!0}e.model.sharedModel.transact((()=>{e.model.clearExecution()}),!1)}return
 Promise.resolve(!0)}}const 
d="api/collaboration/session",u="api/collaboration/undo_redo",h="api/collaboration/timeline",p="api/collaboration/fork";async
 function m(e="",t={}){const 
n=a.ServerConnection.makeSettings(),o=i.URLExt.join(n.baseUrl,e);let 
r;try{r=await a.ServerConnection.makeRequest(o,t,n)}catch(e){throw new 
a.ServerConnection.NetworkError(e)}let s=await 
r.text();if(s.length>0)try{s=JSON.parse(s)}catch(e){console.error("Not a JSON 
response body.",r)}if(!r.ok)throw new 
a.ServerConnection.ResponseError(r,s.message||s);return s}async function 
v(e,t,n){const 
o=a.ServerConnection.makeSettings(),r=i.URLExt.join(o.baseUrl,d,encodeURIComponent(n)),s={method:"PUT",body:JSON.stringify({format:e,type:t})};let
 c;try{c=await a.ServerConnection.makeRequest(r,s,o)}catch(e){throw new 
a.ServerConnection.NetworkError(e)}let l=await 
c.text();if(l.length>0)try{l=JSON.parse(l)}catch(e){console.log("Not a JSON
  response body.",c)}if(!c.ok)throw new 
a.ServerConnection.ResponseError(c,l.message||l);return l}async function 
f(e,t,n){const o=a.ServerConnection.makeSettings();let 
r=i.URLExt.join(o.baseUrl,h,n);r=r.concat(`?format=${e}&&type=${t}`);const 
s={method:"GET"};let c;try{c=await 
a.ServerConnection.makeRequest(r,s,o)}catch(e){throw new 
a.ServerConnection.NetworkError(e)}return c}async function g(e,t,n,o){const 
r=a.ServerConnection.makeSettings();let 
s=i.URLExt.join(r.baseUrl,u,encodeURIComponent(e));s=s.concat(`?action=${t}&&steps=${n}&&forkRoom=${o}`);const
 c={method:"PUT"};let l;try{l=await 
a.ServerConnection.makeRequest(s,c,r)}catch(e){throw new 
a.ServerConnection.NetworkError(e)}let d=await 
l.text();if(d.length>0)try{d=JSON.parse(d)}catch(e){console.log("Not a JSON 
response body.",l)}if(!l.ok)throw new 
a.ServerConnection.ResponseError(l,d.message||d);return d}var 
y=n(262),_=n(602);class 
w{constructor(e){this._onConnectionClosed=e=>{1003===e.code&&(console.error("Document
 provider cl
 osed:",e.reason),(0,s.showErrorMessage)(this._trans.__("Document session 
error"),e.reason,[s.Dialog.okButton()]),this._sharedModel.dispose())},this._onSync=e=>{e&&(this._yWebsocketProvider&&(this._yWebsocketProvider.off("sync",this._onSync),this._sharedModel.ydoc.getMap("state").set("document_id",this._yWebsocketProvider.roomname)),this._ready.resolve())},this._ready=new
 
y.PromiseDelegate,this._isDisposed=!1,this._path=e.path,this._contentType=e.contentType,this._format=e.format,this._serverUrl=e.url,this._sharedModel=e.model,this._awareness=e.model.awareness,this._yWebsocketProvider=null,this._trans=e.translator;const
 
t=e.user;t.ready.then((()=>{this._onUserChanged(t)})).catch((e=>console.error(e))),t.userChanged.connect(this._onUserChanged,this),this._connect().catch((e=>console.warn(e)))}get
 isDisposed(){return this._isDisposed}get ready(){return 
this._ready.promise}get contentType(){return this._contentType}get 
format(){return this._format}dispose(){var e,t,n;this.isDisposed||(t
 his._isDisposed=!0,null===(e=this._yWebsocketProvider)||void 
0===e||e.off("connection-close",this._onConnectionClosed),null===(t=this._yWebsocketProvider)||void
 0===t||t.off("sync",this._onSync),null===(n=this._yWebsocketProvider)||void 
0===n||n.destroy(),this._disconnect(),_.Signal.clearData(this))}async 
reconnect(){this._disconnect(),this._connect()}async _connect(){const e=await 
v(this._format,this._contentType,this._path);this._yWebsocketProvider=new 
o.WebsocketProvider(this._serverUrl,`${e.format}:${e.type}:${e.fileId}`,this._sharedModel.ydoc,{disableBc:!0,params:{sessionId:e.sessionId},awareness:this._awareness}),this._yWebsocketProvider.on("sync",this._onSync),this._yWebsocketProvider.on("connection-close",this._onConnectionClosed)}async
 connectToForkDoc(e,t){this._disconnect(),this._yWebsocketProvider=new 
o.WebsocketProvider(this._serverUrl,e,this._sharedModel.ydoc,{disableBc:!0,params:{sessionId:t},awareness:this._awareness})}get
 wsProvider(){return this._yWebsocketProvider
 }_disconnect(){var e,t,n;null===(e=this._yWebsocketProvider)||void 
0===e||e.off("connection-close",this._onConnectionClosed),null===(t=this._yWebsocketProvider)||void
 0===t||t.off("sync",this._onSync),null===(n=this._yWebsocketProvider)||void 
0===n||n.destroy(),this._yWebsocketProvider=null}_onUserChanged(e){this._awareness.setLocalStateField("user",e.identity)}}var
 S=n(721),k=n(214);const b="true"===i.PageConfig.getOption("disableRTC");class 
C extends 
a.RestContentProvider{constructor(e){super(e),this._onCreate=(e,t)=>{var 
n,o,r,s,a,c;if("string"!=typeof e.format)return;const 
l=null===(r=null===(o=null===(n=this._docmanagerSettings)||void 0===n?void 
0:n.composite)||void 0===o?void 0:o.autosave)||void 
0===r||r;t.awareness.setLocalStateField("autosave",l),null===(s=this._docmanagerSettings)||void
 0===s||s.changed.connect((()=>{var e,n,o;const 
r=null===(o=null===(n=null===(e=this._docmanagerSettings)||void 0===e?void 
0:e.composite)||void 0===n?void 0:n.autosave)||void 0===o||o;t.aware
 ness.setLocalStateField("autosave",r)}));try{const n=new 
w({url:i.URLExt.join(this._serverSettings.wsUrl,"api/collaboration/room"),path:e.path,format:e.format,contentType:e.contentType,model:t,user:this._user,translator:this._trans}),o=((null===(a=this._globalAwareness)||void
 0===a?void 
0:a.getLocalState())||{}).documents||[];o.includes(e.path)||(o.push(e.path),null===(c=this._globalAwareness)||void
 0===c||c.setLocalStateField("documents",o));const 
r=`${e.format}:${e.contentType}:${e.path}`;this._providers.set(r,n),t.changed.connect((async(n,o)=>{var
 r;if(!o.stateChange)return;const 
s=o.stateChange.filter((e=>"hash"===e.name));if(0===s.length)return;s.length>1&&console.error("Unexpected
 multiple changes to hash value in a single transaction");const 
i=s[0],a=null!==(r=t.state.path)&&void 0!==r?r:e.path,c=await 
this.get(a,{content:!1});this._ydriveFileChanged.emit({type:"save",newValue:{...c,hash:i.newValue},oldValue:{hash:i.oldValue}})})),t.disposed.connect((()=>{var
 t,n;const o=this
 ._providers.get(r);o&&(o.dispose(),this._providers.delete(r));const 
s=((null===(t=this._globalAwareness)||void 0===t?void 
0:t.getLocalState())||{}).documents||[],i=s.indexOf(e.path);i>-1&&s.splice(i,1),null===(n=this._globalAwareness)||void
 0===n||n.setLocalStateField("documents",s)}))}catch(t){console.error(`Failed 
to open websocket connection for 
${e.path}.\n:${t}`)}},this._saveCounter=0,this._ydriveFileChanged=new 
_.Signal(this),this._user=e.user,this._trans=e.trans,this._globalAwareness=e.globalAwareness,this._serverSettings=e.serverSettings,this.sharedModelFactory=new
 T(this._onCreate),this._providers=new 
Map,this._docmanagerSettings=e.docmanagerSettings}get providers(){return 
this._providers}async get(e,t){if(t&&t.format&&t.type){const 
n=`${t.format}:${t.type}:${e}`,o=this._providers.get(n);if(o){const[n]=await 
Promise.all([super.get(e,{...t,content:!1}),o.ready]);return{...n,format:t.format}}}return
 super.get(e,t)}async save(e,t={}){var n;if(t.format&&t.type){const o=`${t.for
 
mat}:${t.type}:${e}`,r=this._providers.get(o),s=++this._saveCounter;if(r){const 
o=null===(n=r.wsProvider)||void 0===n?void 0:n.ws;if(o){const e=new 
y.PromiseDelegate,t=t=>{const n=new 
Uint8Array(t.data),o=S.$C(n);try{if(2!==S.cw(o))return}catch(e){return}const 
r=S.t3(o);let i=null;try{i=JSON.parse(r)}catch(e){console.debug("The raw reply 
received was not a JSON 
reply")}i&&"save"===i.type&&i.responseTo===s&&("success"===i.status?e.resolve():"failed"===i.status?e.reject("Saving
 failed"):"skipped"===i.status?e.reject("Saving already in 
progress"):e.reject("Unrecognised save reply 
status"))};o.addEventListener("message",t);const 
n=k.xv();k.zd(n,2),k.Qj(n,"save"),k.zd(n,s);const r=k.Fo(n);o.send(r),await 
e.promise,o.removeEventListener("message",t)}const 
i={type:t.type,format:t.format,content:!1};return this.get(e,i)}}return 
super.save(e,t)}get fileChanged(){return this._ydriveFileChanged}}class 
T{constructor(e){this._onCreate=e,this.collaborative=!b,this.documentFactories=new
 Map}regist
 erDocumentFactory(e,t){if(this.documentFactories.has(e))throw new Error(`The 
content type ${e} already 
exists`);this.documentFactories.set(e,t)}createNew(e){if("string"==typeof 
e.format){if(this.collaborative&&e.collaborative&&this.documentFactories.has(e.contentType)){const
 t=this.documentFactories.get(e.contentType)(e);return 
this._onCreate(e,t),t}}else console.warn(`Only defined format are supported; 
got ${e.format}.`)}}var 
E=n(345),x=n.n(E),R=n(591),U=n.n(R),D=n(740),P=n.n(D),$=n(128),j=n.n($),N=n(855),L=n.n(N),I=n(51),M=n.n(I),F=n(656),A=n.n(F),W=n(68),O={};O.styleTagTransform=A(),O.setAttributes=L(),O.insert=j().bind(null,"head"),O.domAPI=P(),O.insertStyleElement=M(),U()(W.A,O),W.A&&W.A.locals&&W.A.locals;var
 J=n(249);const 
B=({apiURL:e,provider:t,contentType:n,format:o,documentTimelineUrl:r})=>{const[i,a]=(0,E.useState)({roomId:"",timestamps:[],forkRoom:"",sessionId:""}),[c,l]=(0,E.useState)(i.timestamps.length-1),[d,u]=(0,E.useState)(!1),[h,p]=(0,E.useState)(!1),m=(0,E.useRe
 f)(!0),y=(0,E.useRef)(!0),_=(0,E.useRef)(null);function w(e){try{const t=new 
URL(e).pathname,n=t.lastIndexOf(r);if(-1===n)throw new Error(`API segment 
"${r}" not found in URL.`);return t.slice(n+r.length)}catch(e){return 
console.error("Invalid URL or unable to extract filename:",e),""}}return 
x().createElement("div",{className:"jp-sliderContainer"},x().createElement("div",{onClick:()=>{!async
 function(r){try{if(m.current){const i=await f(o,n,r);if(!i.ok)throw 
404===i.status?new Error("Not found"):503===i.status?new Error("WebSocket 
closed"):new Error(`Failed to fetch data: ${i.statusText}`);const c=await 
i.text();let d={roomId:"",timestamps:[],forkRoom:"",sessionId:""};return 
c&&(s.Notification.warning("Document is now in read-only mode. Changes will not 
be 
saved.",{autoClose:2500}),d=JSON.parse(c),a(d),l(d.timestamps.length-1),t.connectToForkDoc(d.forkRoom,d.sessionId),_.current=await
 v(o,n,w(e))),u(!0),m.current=!1,d}}catch(e){console.error("Error fetching 
data:",e)}}(w(e))},class
 Name:"jp-mod-highlighted",title:"Document 
Timeline"},x().createElement(J.historyIcon.react,{marginRight:"4px"})),d&&x().createElement("div",{className:"jp-timestampDisplay"},x().createElement("input",{type:"range",min:0,max:i.timestamps.length-1,value:c,onChange:async
 e=>{const t=parseInt(e.target.value),n=Math.abs(t-c);try{const 
e=function(e){return 
e<c?"undo":"redo"}(t);if(l(t),y.current&&(p(!0),y.current=!1),!_.current)return 
void console.error("Session is not initialized");await 
g(`${_.current.format}:${_.current.type}:${_.current.fileId}`,e,n,i.forkRoom)}catch(e){console.error("Error
 fetching or applying 
updates:",e)}},className:"jp-Slider"}),x().createElement("div",null,x().createElement("strong",null,w(e).split("/").pop(),"
 ")," 
"),h&&x().createElement("div",{className:"jp-restoreBtnContainer"},x().createElement("button",{onClick:async()=>{if(!_.current)return
 void console.error("Session is not initialized");const e=await 
g(`${_.current.format}:${_.current.type}:${_.current.f
 
ileId}`,"restore",0,i.forkRoom);200===e.code?(s.Notification.success(e.status,{autoClose:4e3}),t.reconnect(),u(!1),m.current=!0):s.Notification.error(e.status,{autoClose:4e3})},className:"jp-ToolbarButtonComponent
 jp-restoreBtn"},"Restore version"," ",(e=>{const t=new 
Date(1e3*e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}
 
${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`})(i.timestamps[c])))))};class
 q extends 
s.ReactWidget{constructor(e,t,n,o,r){super(),this.apiURL=e,this.provider=t,this.contentType=n,this.format=o,this.documentTimelineUrl=r,this.addClass("jp-timelineSliderWrapper")}render(){return
 
E.createElement(B,{key:this.apiURL,apiURL:this.apiURL,provider:this.provider,contentType:this.contentType,format:this.format,documentTimelineUrl:this.documentTimelineUrl})}updateContent(e,t){this.apiURL=e,this.provider=t,this.contentType=this.provider
 .contentType,this.format=this.provider.format,this.update()}}const K=new 
y.Token("@jupyter/docprovider:IForkManagerToken"),z="https://schema.jupyter.org/jupyter_collaboration/fork/v1";class
 V{constructor(e){this._disposed=!1,this._forkAddedSignal=new 
_.Signal(this),this._forkDeletedSignal=new 
_.Signal(this);const{contentProvider:t,eventManager:n}=e;this._contentProvider=t,this._eventManager=n,this._eventManager.stream.connect(this._handleEvent,this)}get
 isDisposed(){return this._disposed}get forkAdded(){return 
this._forkAddedSignal}get forkDeleted(){return 
this._forkDeletedSignal}dispose(){var 
e;this._disposed||(null===(e=this._eventManager)||void 
0===e||e.stream.disconnect(this._handleEvent),this._disposed=!0)}async 
createFork(e){const{rootId:t,title:n,description:o,synchronize:r}=e,s={method:"PUT",body:JSON.stringify({title:n,description:o,synchronize:r})},a=i.URLExt.join(p,t);return
 await m(a,s)}async getAllForks(e){const t=i.URLExt.join(p,e);return await 
m(t,{method:"GET"})}asyn
 c 
deleteFork(e){const{forkId:t,merge:n}=e,o=i.URLExt.join(p,t),r=i.URLExt.objectToQueryString({merge:n});await
 
m(`${o}${r}`,{method:"DELETE"})}getProvider(e){const{documentPath:t,format:n,type:o}=e,r=this._contentProvider;if(r){const
 e=t;return 
r.providers.get(`${n}:${o}:${e}`)}}_handleEvent(e,t){if(t.schema_id===z)switch(t.action){case"create":this._forkAddedSignal.emit(t);break;case"delete":this._forkDeletedSignal.emit(t)}}}}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/422.3ab44960b241aac9f303.js
 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/422.3ab44960b241aac9f303.js
--- 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/422.3ab44960b241aac9f303.js
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/422.3ab44960b241aac9f303.js
   2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1 @@
+"use 
strict";(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[422],{734:(e,t,n)=>{n.d(t,{CW:()=>u,D7:()=>r,P1:()=>s,WD:()=>c,vZ:()=>a,wt:()=>o});const
 
r=64,o=128,s=63,c=127,a=2147483647,u=4294967295},721:(e,t,n)=>{n.d(t,{$C:()=>l,t3:()=>b,cw:()=>p,bo:()=>i});var
 r=n(734);n(801);const 
o=Number.MAX_SAFE_INTEGER;Number.MIN_SAFE_INTEGER,r.vZ,r.CW,Number.isInteger,Number.isNaN,Number.parseInt;var
 s=n(554);const c=e=>new Error(e),a=c("Unexpected end of array"),u=c("Integer 
out of Range");class f{constructor(e){this.arr=e,this.pos=0}}const l=e=>new 
f(e),i=e=>((e,t)=>{const n=new 
Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return 
e.pos+=t,n})(e,p(e)),d=e=>e.arr[e.pos++],p=e=>{let t=0,n=1;const 
s=e.arr.length;for(;e.pos<s;){const 
s=e.arr[e.pos++];if(t+=(s&r.WD)*n,n*=128,s<r.wt)return t;if(t>o)throw u}throw 
a},b=s.tv?e=>s.tv.decode(i(e)):e=>{let t=p(e);if(0===t)return"";{let 
n=String.fromCodePoint(d(e));if(--t<100)for(;t--;)n+=
 String.fromCodePoint(d(e));else for(;t>0;){const 
r=t<1e4?t:1e4,o=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,o),t-=r}return
 
decodeURIComponent(escape(n))}}},214:(e,t,n)=>{n.d(t,{Bw:()=>u,Fo:()=>f,Gu:()=>h,Qj:()=>b,xv:()=>a,zd:()=>i});var
 r=n(801),o=n(734),s=n(554);class c{constructor(){this.cpos=0,this.cbuf=new 
Uint8Array(100),this.bufs=[]}}const a=()=>new c,u=e=>{let t=e.cpos;for(let 
n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t},f=e=>{const t=new 
Uint8Array(u(e));let n=0;for(let r=0;r<e.bufs.length;r++){const 
o=e.bufs[r];t.set(o,n),n+=o.length}return t.set(new 
Uint8Array(e.cbuf.buffer,0,e.cpos),n),t},l=(e,t)=>{const 
n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new 
Uint8Array(2*n),e.cpos=0),e.cbuf[e.cpos++]=t},i=(e,t)=>{for(;t>o.WD;)l(e,o.wt|o.WD&t),t=r.RI(t/128);l(e,o.WD&t)},d=new
 
Uint8Array(3e4),p=d.length/3,b=s.db&&s.db.encodeInto?(e,t)=>{if(t.length<p){const
 n=s.db.encodeInto(t,d).written||0;i(e,n);for(let t=0;t<n;t++)l(e,d[t])}el
 se h(e,s.Af(t))}:(e,t)=>{const 
n=unescape(encodeURIComponent(t)),r=n.length;i(e,r);for(let 
t=0;t<r;t++)l(e,n.codePointAt(t))},h=(e,t)=>{i(e,t.byteLength),((e,t)=>{const 
n=e.cbuf.length,o=e.cpos,s=r.jk(n-o,t.length),c=t.length-s;e.cbuf.set(t.subarray(0,s),o),e.cpos+=s,c>0&&(e.bufs.push(e.cbuf),e.cbuf=new
 Uint8Array(r.T9(2*n,c)),e.cbuf.set(t.subarray(s)),e.cpos=c)})(e,t)};new 
DataView(new 
ArrayBuffer(4))},801:(e,t,n)=>{n.d(t,{RI:()=>r,T9:()=>s,jk:()=>o,n7:()=>c,sj:()=>a});const
 
r=Math.floor,o=(Math.ceil,Math.abs,Math.imul,Math.round,Math.log10,Math.log2,Math.log,Math.sqrt,(e,t)=>e<t?e:t),s=(e,t)=>e>t?e:t,c=(Number.isNaN,Math.pow),a=(Math.sign,e=>0!==e?e<0:1/e<0)},554:(e,t,n)=>{n.d(t,{Af:()=>u,QV:()=>r,db:()=>a,jN:()=>c,tv:()=>f});const
 
r=String.fromCharCode,o=(String.fromCodePoint,r(65535),/^\s*/g),s=/([A-Z])/g,c=(e,t)=>(e=>e.replace(o,""))(e.replace(s,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),a="undefined"!=typeof
 TextEncoder?new TextEncoder:null,u=a?e=>a.encode(e):e=>{const t=unescape
 (encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let 
e=0;e<n;e++)r[e]=t.codePointAt(e);return r};let f="undefined"==typeof 
TextDecoder?null:new 
TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});f&&1===f.decode(new 
Uint8Array).length&&(f=null)}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/576.21a3c1a9ebaebb58d346.js
 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/576.21a3c1a9ebaebb58d346.js
--- 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/576.21a3c1a9ebaebb58d346.js
   2020-02-02 01:00:00.000000000 +0100
+++ 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/576.21a3c1a9ebaebb58d346.js
   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[576],{907:e=>{var
 t,s,n=e.exports={};function r(){throw new Error("setTimeout has not been 
defined")}function o(){throw new Error("clearTimeout has not been 
defined")}function c(e){if(t===setTimeout)return 
setTimeout(e,0);if((t===r||!t)&&setTimeout)return 
t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(s){try{return 
t.call(null,e,0)}catch(s){return 
t.call(this,e,0)}}}!function(){try{t="function"==typeof 
setTimeout?setTimeout:r}catch(e){t=r}try{s="function"==typeof 
clearTimeout?clearTimeout:o}catch(e){s=o}}();var a,i=[],l=!1,h=-1;function 
u(){l&&a&&(l=!1,a.length?i=a.concat(i):h=-1,i.length&&d())}function 
d(){if(!l){var e=c(u);l=!0;for(var 
t=i.length;t;){for(a=i,i=[];++h<t;)a&&a[h].run();h=-1,t=i.length}a=null,l=!1,function(e){if(s===clearTimeout)return
 clearTimeout(e);if((s===o||!s)&&clearTimeout)return 
s=clearTimeout,clearTimeout(e);try{return s(e)}catch(t){try{return s
 .call(null,e)}catch(t){return s.call(this,e)}}}(e)}}function 
f(e,t){this.fun=e,this.array=t}function p(){}n.nextTick=function(e){var t=new 
Array(arguments.length-1);if(arguments.length>1)for(var 
s=1;s<arguments.length;s++)t[s-1]=arguments[s];i.push(new 
f(e,t)),1!==i.length||l||c(d)},f.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=p,n.addListener=p,n.once=p,n.off=p,n.removeListener=p,n.removeAllListeners=p,n.emit=p,n.prependListener=p,n.prependOnceListener=p,n.listeners=function(e){return[]},n.binding=function(e){throw
 new Error("process.binding is not 
supported")},n.cwd=function(){return"/"},n.chdir=function(e){throw new 
Error("process.chdir is not supported")},n.umask=function(){return 
0}},576:(e,t,s)=>{"use 
strict";s.r(t),s.d(t,{WebsocketProvider:()=>Ce,messageAuth:()=>_e,messageAwareness:()=>ve,messageQueryAwareness:()=>ye,messageSync:()=>me});var
 n=s(206);const r=()=>new Map,o=(e,t,s)=>
 {let n=e.get(t);return void 0===n&&e.set(t,n=s()),n},c=()=>new 
Set,a=String.fromCharCode,i=(String.fromCodePoint,a(65535),/^\s*/g),l=/([A-Z])/g,h=(e,t)=>(e=>e.replace(i,""))(e.replace(l,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),u="undefined"!=typeof
 TextEncoder?new TextEncoder:null,d=u?e=>u.encode(e):e=>{const 
t=unescape(encodeURIComponent(e)),s=t.length,n=new Uint8Array(s);for(let 
e=0;e<s;e++)n[e]=t.codePointAt(e);return n};let f="undefined"==typeof 
TextDecoder?null:new 
TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});f&&1===f.decode(new 
Uint8Array).length&&(f=null);let p=new class{constructor(){this.map=new 
Map}setItem(e,t){this.map.set(e,t)}getItem(e){return 
this.map.get(e)}},g=!0;try{"undefined"!=typeof 
localStorage&&localStorage&&(p=localStorage,g=!1)}catch(e){}const 
b=p,w=Array.from,m=(Array.isArray,Object.assign,Object.keys),y=e=>m(e).length,v=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),_=(Object.freeze,(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t
 .constructor)return!1;if(e===t)return!0;switch(e.constructor){case 
ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case 
Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let 
s=0;s<e.length;s++)if(e[s]!==t[s])return!1;break;case 
Set:if(e.size!==t.size)return!1;for(const s of 
e)if(!t.has(s))return!1;break;case Map:if(e.size!==t.size)return!1;for(const s 
of e.keys())if(!t.has(s)||!_(e.get(s),t.get(s)))return!1;break;case 
Object:if(y(e)!==y(t))return!1;for(const s in 
e)if(!v(e,s)||!_(e[s],t[s]))return!1;break;case 
Array:if(e.length!==t.length)return!1;for(let 
s=0;s<e.length;s++)if(!_(e[s],t[s]))return!1;break;default:return!1}return!0});var
 I=s(907);const S=void 
0!==I&&I.release&&/node|io\.js/.test(I.release.name)&&"[object 
process]"===Object.prototype.toString.call(void 
0!==I?I:0),U="undefined"!=typeof window&&"undefined"!=typeof document&&!S;let 
A;"undefined"!=typeof navigator&&/Mac/.test(navigator.platform);const 
k=[],C=e=>(()=>{if(void 0===A)if(S){A=r();const e=I.argv;let t
 =null;for(let s=0;s<e.length;s++){const 
n=e[s];"-"===n[0]?(null!==t&&A.set(t,""),t=n):null!==t?(A.set(t,n),t=null):k.push(n)}null!==t&&A.set(t,"")}else"object"==typeof
 
location?(A=r(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,s]=e.split("=");A.set(`--${h(t,"-")}`,s),A.set(`-${h(t,"-")}`,s)}}))):A=r();return
 A})().has(e),L=e=>{return void 
0===(t=S?I.env[e.toUpperCase().replaceAll("-","_")]:b.getItem(e))?null:t;var 
t},T=e=>C("--"+e)||null!==L(e);var 
M;T("production"),S&&(M=I.env.FORCE_COLOR,["true","1","2"].includes(M))||!C("--no-colors")&&!T("no-color")&&(!S||I.stdout.isTTY)&&(!S||C("--color")||null!==L("COLORTERM")||(L("TERM")||"").includes("color"));const
 E=U?e=>{let t="";for(let s=0;s<e.byteLength;s++)t+=a(e[s]);return 
btoa(t)}:e=>Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"),O=U?e=>{const
 t=atob(e),s=(n=t.length,new Uint8Array(n));var n;for(let 
e=0;e<t.length;e++)s[e]=t.charCodeAt(e);return s}:e=>{const t=Buffer.from(e,"
 base64");return s=t.buffer,n=t.byteOffset,r=t.byteLength,new 
Uint8Array(s,n,r);var s,n,r},R=new Map,x="undefined"==typeof 
BroadcastChannel?class{constructor(e){var 
t;this.room=e,this.onmessage=null,this._onChange=t=>t.key===e&&null!==this.onmessage&&this.onmessage({data:O(t.newValue||"")}),t=this._onChange,g||addEventListener("storage",t)}postMessage(e){b.setItem(this.room,E(new
 Uint8Array(e)))}close(){var 
e;e=this._onChange,g||removeEventListener("storage",e)}}:BroadcastChannel,B=e=>o(R,e,(()=>{const
 t=c(),s=new x(e);return 
s.onmessage=e=>t.forEach((t=>t(e.data,"broadcastchannel"))),{bc:s,subs:t}})),D=(e,t,s=null)=>{const
 
n=B(e);n.bc.postMessage(t),n.subs.forEach((e=>e(t,s)))},N=Date.now,j=Math.floor,P=(Math.ceil,Math.abs,Math.imul,Math.round,Math.log10,Math.log2,Math.log,Math.sqrt,(e,t)=>e<t?e:t),H=(Number.isNaN,Math.pow),$=(Math.sign,128),z=127;class
 W{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const 
F=()=>new W,V=e=>{let t=e.cpos;for(let s=0;s<e.bufs.l
 ength;s++)t+=e.bufs[s].length;return t},G=e=>{const t=new Uint8Array(V(e));let 
s=0;for(let n=0;n<e.bufs.length;n++){const 
r=e.bufs[n];t.set(r,s),s+=r.length}return t.set(new 
Uint8Array(e.cbuf.buffer,0,e.cpos),s),t},J=(e,t)=>{const 
s=e.cbuf.length;e.cpos===s&&(e.bufs.push(e.cbuf),e.cbuf=new 
Uint8Array(2*s),e.cpos=0),e.cbuf[e.cpos++]=t},Y=(e,t)=>{for(;t>z;)J(e,$|z&t),t=j(t/128);J(e,z&t)},q=new
 Uint8Array(3e4),Q=q.length/3,X=u&&u.encodeInto?(e,t)=>{if(t.length<Q){const 
s=u.encodeInto(t,q).written||0;Y(e,s);for(let t=0;t<s;t++)J(e,q[t])}else 
Z(e,d(t))}:(e,t)=>{const 
s=unescape(encodeURIComponent(t)),n=s.length;Y(e,n);for(let 
t=0;t<n;t++)J(e,s.codePointAt(t))},Z=(e,t)=>{Y(e,t.byteLength),((e,t)=>{const 
s=e.cbuf.length,n=e.cpos,r=P(s-n,t.length),o=t.length-r;var 
c,a;e.cbuf.set(t.subarray(0,r),n),e.cpos+=r,o>0&&(e.bufs.push(e.cbuf),e.cbuf=new
 Uint8Array((c=2*s)>(a=o)?c:a),e.cbuf.set(t.subarray(r)),e.cpos=o)})(e,t)};new 
DataView(new ArrayBuffer(4));const K=Number.MAX_SAFE_INTEGER,ee=(Number
 .MIN_SAFE_INTEGER,Number.isInteger,Number.isNaN,Number.parseInt,e=>new 
Error(e)),te=ee("Unexpected end of array"),se=ee("Integer out of Range");class 
ne{constructor(e){this.arr=e,this.pos=0}}const re=e=>new 
ne(e),oe=e=>((e,t)=>{const s=new 
Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return 
e.pos+=t,s})(e,ae(e)),ce=e=>e.arr[e.pos++],ae=e=>{let t=0,s=1;const 
n=e.arr.length;for(;e.pos<n;){const 
n=e.arr[e.pos++];if(t+=(n&z)*s,s*=128,n<$)return t;if(t>K)throw se}throw 
te},ie=f?e=>f.decode(oe(e)):e=>{let t=ae(e);if(0===t)return"";{let 
s=String.fromCodePoint(ce(e));if(--t<100)for(;t--;)s+=String.fromCodePoint(ce(e));else
 for(;t>0;){const 
n=t<1e4?t:1e4,r=e.arr.subarray(e.pos,e.pos+n);e.pos+=n,s+=String.fromCodePoint.apply(null,r),t-=n}return
 decodeURIComponent(escape(s))}},le=(e,t)=>{Y(e,0);const 
s=n.encodeStateVector(t);Z(e,s)},he=(e,t,s)=>{Y(e,1),Z(e,n.encodeStateAsUpdate(t,s))},ue=(e,t,s)=>{try{n.applyUpdate(t,oe(e),s)}catch(e){console.error("Caught
 error while handling a Yjs updat
 e",e)}},de=ue;class 
fe{constructor(){this._observers=r()}on(e,t){o(this._observers,e,c).add(t)}once(e,t){const
 s=(...n)=>{this.off(e,s),t(...n)};this.on(e,s)}off(e,t){const 
s=this._observers.get(e);void 
0!==s&&(s.delete(t),0===s.size&&this._observers.delete(e))}emit(e,t){return 
w((this._observers.get(e)||r()).values()).forEach((e=>e(...t)))}destroy(){this._observers=r()}}class
 pe extends 
fe{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new 
Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const 
e=N();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const
 
t=[];this.meta.forEach(((s,n)=>{n!==this.clientID&&3e4<=e-s.lastUpdated&&this.states.has(n)&&t.push(n)})),t.length>0&&ge(this,t,"timeout")}),j(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLo
 calState(){return this.states.get(this.clientID)||null}setLocalState(e){const 
t=this.clientID,s=this.meta.get(t),n=void 
0===s?0:s.clock+1,r=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:n,lastUpdated:N()});const
 
o=[],c=[],a=[],i=[];null===e?i.push(t):null==r?null!=e&&o.push(t):(c.push(t),_(r,e)||a.push(t)),(o.length>0||a.length>0||i.length>0)&&this.emit("change",[{added:o,updated:a,removed:i},"local"]),this.emit("update",[{added:o,updated:c,removed:i},"local"])}setLocalStateField(e,t){const
 
s=this.getLocalState();null!==s&&this.setLocalState({...s,[e]:t})}getStates(){return
 this.states}}const ge=(e,t,s)=>{const n=[];for(let s=0;s<t.length;s++){const 
r=t[s];if(e.states.has(r)){if(e.states.delete(r),r===e.clientID){const 
t=e.meta.get(r);e.meta.set(r,{clock:t.clock+1,lastUpdated:N()})}n.push(r)}}n.length>0&&(e.emit("change",[{added:[],updated:[],removed:n},s]),e.emit("update",[{added:[],updated:[],removed:n},s]))},be=(e,t,s=e.states)=>{co
 nst n=t.length,r=F();Y(r,n);for(let o=0;o<n;o++){const 
n=t[o],c=s.get(n)||null,a=e.meta.get(n).clock;Y(r,n),Y(r,a),X(r,JSON.stringify(c))}return
 G(r)};var we=s(907);const 
me=0,ye=3,ve=1,_e=2,Ie=[];Ie[me]=(e,t,s,n,r)=>{Y(e,me);const 
o=((e,t,s,n)=>{const r=ae(e);switch(r){case 
0:((e,t,s)=>{he(t,s,oe(e))})(e,t,s);break;case 1:ue(e,s,n);break;case 
2:de(e,s,n);break;default:throw new Error("Unknown message type")}return 
r})(t,e,s.doc,s);n&&1===o&&!s.synced&&(s.synced=!0)},Ie[ye]=(e,t,s,n,r)=>{Y(e,ve),Z(e,be(s.awareness,Array.from(s.awareness.getStates().keys())))},Ie[ve]=(e,t,s,n,r)=>{((e,t,s)=>{const
 n=re(t),r=N(),o=[],c=[],a=[],i=[],l=ae(n);for(let t=0;t<l;t++){const 
t=ae(n);let s=ae(n);const 
l=JSON.parse(ie(n)),h=e.meta.get(t),u=e.states.get(t),d=void 
0===h?0:h.clock;(d<s||d===s&&null===l&&e.states.has(t))&&(null===l?t===e.clientID&&null!=e.getLocalState()?s++:e.states.delete(t):e.states.set(t,l),e.meta.set(t,{clock:s,lastUpdated:r}),void
 0===h&&null!==l?o.push(t):void 0!==h&&null===l
 
?i.push(t):null!==l&&(_(l,u)||a.push(t),c.push(t)))}(o.length>0||a.length>0||i.length>0)&&e.emit("change",[{added:o,updated:a,removed:i},s]),(o.length>0||c.length>0||i.length>0)&&e.emit("update",[{added:o,updated:c,removed:i},s])})(s.awareness,oe(t),s)},Ie[_e]=(e,t,s,n,r)=>{((e,t,s)=>{0===ae(e)&&s(0,ie(e))})(t,s.doc,((e,t)=>Se(s,t)))};const
 Se=(e,t)=>console.warn(`Permission denied to access 
${e.url}.\n${t}`),Ue=(e,t,s)=>{const 
n=re(t),r=F(),o=ae(n),c=e.messageHandlers[o];return 
c?c(r,n,e,s,o):console.error("Unable to compute 
message"),r},Ae=e=>{if(e.shouldConnect&&null===e.ws){const t=new 
e._WS(e.url);t.binaryType="arraybuffer",e.ws=t,e.wsconnecting=!0,e.wsconnected=!1,e.synced=!1,t.onmessage=s=>{e.wsLastMessageReceived=N();const
 n=Ue(e,new 
Uint8Array(s.data),!0);V(n)>1&&t.send(G(n))},t.onerror=t=>{e.emit("connection-error",[t,e])},t.onclose=t=>{e.emit("connection-close",[t,e]),e.ws=null,e.wsconnecting=!1,e.wsconnected?(e.wsconnected=!1,e.synced=!1,ge(e.awareness,Array.from(e.aware
 
ness.getStates().keys()).filter((t=>t!==e.doc.clientID)),e),e.emit("status",[{status:"disconnected"}])):e.wsUnsuccessfulReconnects++,setTimeout(Ae,P(100*H(2,e.wsUnsuccessfulReconnects),e.maxBackoffTime),e)},t.onopen=()=>{e.wsLastMessageReceived=N(),e.wsconnecting=!1,e.wsconnected=!0,e.wsUnsuccessfulReconnects=0,e.emit("status",[{status:"connected"}]);const
 
s=F();if(Y(s,me),le(s,e.doc),t.send(G(s)),null!==e.awareness.getLocalState()){const
 
s=F();Y(s,ve),Z(s,be(e.awareness,[e.doc.clientID])),t.send(G(s))}},e.emit("status",[{status:"connecting"}])}},ke=(e,t)=>{const
 
s=e.ws;e.wsconnected&&s&&s.readyState===s.OPEN&&s.send(t),e.bcconnected&&D(e.bcChannel,t,e)};class
 Ce extends fe{constructor(e,t,s,{connect:n=!0,awareness:r=new 
pe(s),params:o={},WebSocketPolyfill:c=WebSocket,resyncInterval:a=-1,maxBackoffTime:i=2500,disableBc:l=!1}={}){for(super();"/"===e[e.length-1];)e=e.slice(0,e.length-1);const
 h=(e=>((e,t)=>{const s=[];for(const n in e)s.push(t(e[n],n));return 
s})(e,((e,t)=>`${encodeUR
 
IComponent(t)}=${encodeURIComponent(e)}`)).join("&"))(o);this.maxBackoffTime=i,this.bcChannel=e+"/"+t,this.url=e+"/"+t+(0===h.length?"":"?"+h),this.roomname=t,this.doc=s,this._WS=c,this.awareness=r,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=l,this.wsUnsuccessfulReconnects=0,this.messageHandlers=Ie.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=n,this._resyncInterval=0,a>0&&(this._resyncInterval=setInterval((()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const
 
e=F();Y(e,me),le(e,s),this.ws.send(G(e))}}),a)),this._bcSubscriber=(e,t)=>{if(t!==this){const
 t=Ue(this,new 
Uint8Array(e),!1);V(t)>1&&D(this.bcChannel,G(t),this)}},this._updateHandler=(e,t)=>{if(t!==this){const
 
t=F();Y(t,me),((e,t)=>{Y(e,2),Z(e,t)})(t,e),ke(this,G(t))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:e,updated:t,removed:s},n)=>{const
 o=e.concat(t).concat(s),c=F();Y(c,ve),Z(c,be(r,o)),ke(this,G(c))},this.
 _exitHandler=()=>{ge(this.awareness,[s.clientID],"app closed")},S&&void 
0!==we&&we.on("exit",this._exitHandler),r.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval((()=>{this.wsconnected&&3e4<N()-this.wsLastMessageReceived&&this.ws.close()}),3e3),n&&this.connect()}get
 synced(){return this._synced}set 
synced(e){this._synced!==e&&(this._synced=e,this.emit("synced",[e]),this.emit("sync",[e]))}destroy(){0!==this._resyncInterval&&clearInterval(this._resyncInterval),clearInterval(this._checkInterval),this.disconnect(),S&&void
 
0!==we&&we.off("exit",this._exitHandler),this.awareness.off("update",this._awarenessUpdateHandler),this.doc.off("update",this._updateHandler),super.destroy()}connectBc(){if(this.disableBc)return;var
 
e,t;this.bcconnected||(e=this.bcChannel,t=this._bcSubscriber,B(e).subs.add(t),this.bcconnected=!0);const
 s=F();Y(s,me),le(s,this.doc),D(this.bcChannel,G(s),this);const 
n=F();Y(n,me),he(n,this.doc),D(this.bcChannel,G(n),this);const r=F();Y(r,ye),D(t
 his.bcChannel,G(r),this);const 
o=F();Y(o,ve),Z(o,be(this.awareness,[this.doc.clientID])),D(this.bcChannel,G(o),this)}disconnectBc(){const
 e=F();Y(e,ve),Z(e,be(this.awareness,[this.doc.clientID],new 
Map)),ke(this,G(e)),this.bcconnected&&(((e,t)=>{const 
s=B(e);s.subs.delete(t)&&0===s.subs.size&&(s.bc.close(),R.delete(e))})(this.bcChannel,this._bcSubscriber),this.bcconnected=!1)}disconnect(){this.shouldConnect=!1,this.disconnectBc(),null!==this.ws&&this.ws.close()}connect(){this.shouldConnect=!0,this.wsconnected||null!==this.ws||(Ae(this),this.connectBc())}}}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/703.171f03bb5a1f0cd958d7.js
 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/703.171f03bb5a1f0cd958d7.js
--- 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/703.171f03bb5a1f0cd958d7.js
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/703.171f03bb5a1f0cd958d7.js
   2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1 @@
+"use 
strict";(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[703],{703:(e,t,o)=>{o.r(t),o.d(t,{default:()=>k});var
 
r=o(805),n=o(256),i=o(395),a=o(927),s=o(987),l=o(341),d=o(679),c=o(503),u=o(0),v=o(593),p=o(681),g=o(708);const
 h="api/collaboration/timeline",y="The file %1 has been opened with two 
different views. This is not supported. Please close this view; otherwise, some 
of your edits may not be saved 
properly.",b={id:"@jupyter/docprovider-extension:content-provider",description:"The
 RTC content 
provider",provides:v.ICollaborativeContentProvider,requires:[c.ITranslator],optional:[v.IGlobalAwareness,d.ISettingRegistry],activate:async(e,t,o,r)=>{const
 
n=t.load("jupyter_collaboration"),i=e.serviceManager.contents.defaultDrive;if(!i)throw
 Error("Cannot initialize content provider: default drive property not 
accessible on contents manager instance.");const 
a=i.contentProviderRegistry;if(!a)throw Error("Cannot initialize con
 tent provider: no content provider registry.");const s=r?await 
r.load("@jupyterlab/docmanager-extension:plugin"):null,l=new 
p.RtcContentProvider({apiEndpoint:"/api/contents",serverSettings:i.serverSettings,user:e.serviceManager.user,trans:n,globalAwareness:o,docmanagerSettings:s});return
 
a.register("rtc",l),l}},m={id:"@jupyter/docprovider-extension:yfile",description:"Plugin
 to register the shared model factory for the content type 
'file'",autoStart:!0,requires:[v.ICollaborativeContentProvider,a.IEditorWidgetFactory],activate:(e,t,o)=>{t.sharedModelFactory.registerDocumentFactory("file",(()=>new
 
u.YFile)),o.contentProviderId="rtc"}},f={id:"@jupyter/docprovider-extension:ynotebook",description:"Plugin
 to register the shared model factory for the content type 
'notebook'",autoStart:!0,requires:[v.ICollaborativeContentProvider,l.INotebookWidgetFactory],optional:[d.ISettingRegistry],activate:(e,t,o,r)=>{let
 n=!0;r&&r.load("@jupyterlab/notebook-extension:tracker").then((e=>{const 
t=e=>{va
 r t;const o=null==e?void 
0:e.get("experimentalEnableDocumentWideUndoRedo").composite;n=null===(t=!o)||void
 
0===t||t};t(e),e.changed.connect((e=>t(e)))})),t.sharedModelFactory.registerDocumentFactory("notebook",(()=>new
 
u.YNotebook({disableDocumentWideUndoRedo:n}))),o.contentProviderId="rtc"}},w={id:"@jupyter/docprovider-extension:statusBarTimeline",description:"Plugin
 to add a timeline slider to the status 
bar",autoStart:!0,requires:[i.IStatusBar,v.ICollaborativeContentProvider],activate:async(e,t,o)=>{try{let
 r=null,i=null;const 
a=async(t,r)=>{if(!r)return;i&&(i.dispose(),i=null);const[a,s]=r.split(":"),l=o.providers.get(`${a}:${s}:${t}`);if(!l)return;const
 d=l,c=g.URLExt.join(e.serviceManager.serverSettings.baseUrl,h,t);i=new 
p.TimelineWidget(c,d,d.contentType,d.format,h);const 
u=document.getElementById("jp-slider-status-bar");u&&!i.isAttached&&n.Widget.attach(i,u)};e.shell.currentChanged&&e.shell.currentChanged.connect((async(e,t)=>{const
 o=t.newValue;i&&(i.dispose(),i=null),o&&"
 context"in o&&(await o.context.ready,await 
a(o.context.path,o.context.model.sharedModel.getState("document_id")))})),t&&(r||(r=new
 
n.Widget,r.addClass("jp-StatusBar-GroupItem"),r.addClass("jp-mod-highlighted"),r.id="jp-slider-status-bar",t.registerStatusItem("jp-slider-status-bar",{item:r,align:"left",rank:4,isActive:()=>{var
 t,o;const r=e.shell.currentWidget;return(null===(o=null===(t=null==r?void 
0:r.context)||void 0===t?void 0:t.model)||void 0===o?void 
0:o.collaborative)||!1}})))}catch(e){console.error("Failed to activate 
statusBarTimeline 
plugin:",e)}}},k=[b,m,f,{id:"@jupyter/docprovider-extension:logger",description:"A
 logging plugin for debugging 
purposes.",autoStart:!0,optional:[s.ILoggerRegistry,a.IEditorTracker,l.INotebookTracker,c.ITranslator],activate:(e,t,o,n,i)=>{const
 
a=(null!=i?i:c.nullTranslator).load("jupyter_collaboration"),s="https://schema.jupyter.org/jupyter_collaboration/session/v1";if(!t)return
 void e.serviceManager.events.stream.connect(((e,t)=>{var o,n;t.sch
 ema_id===s&&(console.debug(`[${t.room}(${t.path})] ${null!==(o=t.action)&&void 
0!==o?o:""}: ${null!==(n=t.msg)&&void 
0!==n?n:""}`),"WARNING"===t.level&&(0,r.showDialog)({title:a.__("Warning"),body:a.__(y,t.path),buttons:[r.Dialog.okButton()]}))}));const
 l=new Map,d=(e,o)=>{const 
r=t.getLogger(o.context.path);l.set(o.context.localPath,r),o.disposed.connect((e=>{l.delete(e.context.localPath)}))};o&&o.widgetAdded.connect(d),n&&n.widgetAdded.connect(d),(async()=>{var
 t,o;const{events:n}=e.serviceManager;for await(const e of 
n.stream)if(e.schema_id===s){const 
n=l.get(e.path);null==n||n.log({type:"text",level:e.level.toLowerCase(),data:`[${e.room}]
 ${null!==(t=e.action)&&void 0!==t?t:""}: ${null!==(o=e.msg)&&void 
0!==o?o:""}`}),"WARNING"===e.level&&(0,r.showDialog)({title:a.__("Warning"),body:a.__(y,e.path),buttons:[r.Dialog.warnButton({label:a.__("Ok")})]})}})()}},{id:"@jupyter/docprovider-extension:notebook-cell-executor",description:"Add
 notebook cell executor that uses REST API instea
 d of kernel protocol over 
WebSocket.",autoStart:!0,provides:l.INotebookCellExecutor,activate:e=>"true"===g.PageConfig.getOption("serverSideExecution")?new
 
p.NotebookCellServerExecutor({serverSettings:e.serviceManager.serverSettings}):Object.freeze({runCell:l.runCell})},w,{id:"@jupyter/docprovider-extension:forkManager",autoStart:!0,requires:[v.ICollaborativeContentProvider],provides:p.IForkManagerToken,activate:(e,t)=>{const
 o=e.serviceManager.events;return new 
p.ForkManager({contentProvider:t,eventManager:o})}}]}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/703.b02363b93dbf18450ce4.js
 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/703.b02363b93dbf18450ce4.js
--- 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/703.b02363b93dbf18450ce4.js
   2020-02-02 01:00:00.000000000 +0100
+++ 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/703.b02363b93dbf18450ce4.js
   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-"use 
strict";(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[703],{703:(e,t,o)=>{o.r(t),o.d(t,{default:()=>k});var
 
r=o(569),n=o(256),i=o(319),a=o(739),s=o(191),l=o(369),d=o(507),c=o(579),u=o(0),v=o(980),p=o(772),g=o(808);const
 h="api/collaboration/timeline",b="The file %1 has been opened with two 
different views. This is not supported. Please close this view; otherwise, some 
of your edits may not be saved 
properly.",y={id:"@jupyter/docprovider-extension:content-provider",description:"The
 RTC content 
provider",provides:v.ICollaborativeContentProvider,requires:[c.ITranslator],optional:[v.IGlobalAwareness],activate:(e,t,o)=>{const
 
r=t.load("jupyter_collaboration"),n=e.serviceManager.contents.defaultDrive;if(!n)throw
 Error("Cannot initialize content provider: default drive property not 
accessible on contents manager instance.");const 
i=n.contentProviderRegistry;if(!i)throw Error("Cannot initialize content 
provider: no content 
 provider registry.");const a=new 
p.RtcContentProvider({apiEndpoint:"/api/contents",serverSettings:n.serverSettings,user:e.serviceManager.user,trans:r,globalAwareness:o});return
 
i.register("rtc",a),a}},m={id:"@jupyter/docprovider-extension:yfile",description:"Plugin
 to register the shared model factory for the content type 
'file'",autoStart:!0,requires:[v.ICollaborativeContentProvider,a.IEditorWidgetFactory],activate:(e,t,o)=>{t.sharedModelFactory.registerDocumentFactory("file",(()=>new
 
u.YFile)),o.contentProviderId="rtc"}},f={id:"@jupyter/docprovider-extension:ynotebook",description:"Plugin
 to register the shared model factory for the content type 
'notebook'",autoStart:!0,requires:[v.ICollaborativeContentProvider,l.INotebookWidgetFactory],optional:[d.ISettingRegistry],activate:(e,t,o,r)=>{let
 n=!0;r&&r.load("@jupyterlab/notebook-extension:tracker").then((e=>{const 
t=e=>{var t;const o=null==e?void 
0:e.get("experimentalEnableDocumentWideUndoRedo").composite;n=null===(t=!o)||void
 0===t
 
||t};t(e),e.changed.connect((e=>t(e)))})),t.sharedModelFactory.registerDocumentFactory("notebook",(()=>new
 
u.YNotebook({disableDocumentWideUndoRedo:n}))),o.contentProviderId="rtc"}},w={id:"@jupyter/docprovider-extension:statusBarTimeline",description:"Plugin
 to add a timeline slider to the status 
bar",autoStart:!0,requires:[i.IStatusBar,v.ICollaborativeContentProvider],activate:async(e,t,o)=>{try{let
 r=null,i=null;const 
a=async(t,r)=>{if(!r)return;i&&(i.dispose(),i=null);const[a,s]=r.split(":"),l=o.providers.get(`${a}:${s}:${t}`);if(!l)return;const
 d=l,c=g.URLExt.join(e.serviceManager.serverSettings.baseUrl,h,t);i=new 
p.TimelineWidget(c,d,d.contentType,d.format,h);const 
u=document.getElementById("jp-slider-status-bar");u&&!i.isAttached&&n.Widget.attach(i,u)};e.shell.currentChanged&&e.shell.currentChanged.connect((async(e,t)=>{const
 o=t.newValue;i&&(i.dispose(),i=null),o&&"context"in o&&(await 
o.context.ready,await 
a(o.context.path,o.context.model.sharedModel.getState("document_id"))
 )})),t&&(r||(r=new 
n.Widget,r.addClass("jp-StatusBar-GroupItem"),r.addClass("jp-mod-highlighted"),r.id="jp-slider-status-bar",t.registerStatusItem("jp-slider-status-bar",{item:r,align:"left",rank:4,isActive:()=>{var
 t,o;const r=e.shell.currentWidget;return(null===(o=null===(t=null==r?void 
0:r.context)||void 0===t?void 0:t.model)||void 0===o?void 
0:o.collaborative)||!1}})))}catch(e){console.error("Failed to activate 
statusBarTimeline 
plugin:",e)}}},k=[y,m,f,{id:"@jupyter/docprovider-extension:logger",description:"A
 logging plugin for debugging 
purposes.",autoStart:!0,optional:[s.ILoggerRegistry,a.IEditorTracker,l.INotebookTracker,c.ITranslator],activate:(e,t,o,n,i)=>{const
 
a=(null!=i?i:c.nullTranslator).load("jupyter_collaboration"),s="https://schema.jupyter.org/jupyter_collaboration/session/v1";if(!t)return
 void e.serviceManager.events.stream.connect(((e,t)=>{var 
o,n;t.schema_id===s&&(console.debug(`[${t.room}(${t.path})] 
${null!==(o=t.action)&&void 0!==o?o:""}: ${null!==(n=t.msg)&&
 void 
0!==n?n:""}`),"WARNING"===t.level&&(0,r.showDialog)({title:a.__("Warning"),body:a.__(b,t.path),buttons:[r.Dialog.okButton()]}))}));const
 l=new Map,d=(e,o)=>{const 
r=t.getLogger(o.context.path);l.set(o.context.localPath,r),o.disposed.connect((e=>{l.delete(e.context.localPath)}))};o&&o.widgetAdded.connect(d),n&&n.widgetAdded.connect(d),(async()=>{var
 t,o;const{events:n}=e.serviceManager;for await(const e of 
n.stream)if(e.schema_id===s){const 
n=l.get(e.path);null==n||n.log({type:"text",level:e.level.toLowerCase(),data:`[${e.room}]
 ${null!==(t=e.action)&&void 0!==t?t:""}: ${null!==(o=e.msg)&&void 
0!==o?o:""}`}),"WARNING"===e.level&&(0,r.showDialog)({title:a.__("Warning"),body:a.__(b,e.path),buttons:[r.Dialog.warnButton({label:a.__("Ok")})]})}})()}},{id:"@jupyter/docprovider-extension:notebook-cell-executor",description:"Add
 notebook cell executor that uses REST API instead of kernel protocol over 
WebSocket.",autoStart:!0,provides:l.INotebookCellExecutor,activate:e=>"true"===g.PageC
 onfig.getOption("serverSideExecution")?new 
p.NotebookCellServerExecutor({serverSettings:e.serviceManager.serverSettings}):Object.freeze({runCell:l.runCell})},w,{id:"@jupyter/docprovider-extension:forkManager",autoStart:!0,requires:[v.ICollaborativeContentProvider],provides:p.IForkManagerToken,activate:(e,t)=>{const
 o=e.serviceManager.events;return new 
p.ForkManager({contentProvider:t,eventManager:o})}}]}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/944.b26f5029dcd72a4e58bc.js
 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/944.b26f5029dcd72a4e58bc.js
--- 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/944.b26f5029dcd72a4e58bc.js
   2020-02-02 01:00:00.000000000 +0100
+++ 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/944.b26f5029dcd72a4e58bc.js
   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-"use 
strict";(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[944],{78:(n,e,o)=>{o.d(e,{A:()=>u});var
 
r=o(758),t=o.n(r),a=o(935),i=o.n(a),l=o(875),p=o(28),s=o(921),c=i()(t());c.i(l.A),c.i(p.A),c.i(s.A),c.push([n.id,"/*
 
-----------------------------------------------------------------------------\n|
 Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the 
Modified BSD 
License.\n|----------------------------------------------------------------------------
 */\n\n.jp-shared-link-body {\n    user-select: none;\n}\n",""]);const 
u=c},875:(n,e,o)=>{o.d(e,{A:()=>l});var 
r=o(758),t=o.n(r),a=o(935),i=o.n(a)()(t());i.push([n.id,"/* 
-----------------------------------------------------------------------------\n|
 Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the 
Modified BSD 
License.\n|----------------------------------------------------------------------------
 */\n\n.jp-MenuBar-label {\n 
  margin-left: 25px;\n}\n\n.jp-MenuBar-anonymousIcon span {\n  width: 24px;\n  
text-align: center;\n  fill: var(--jp-ui-font-color1);\n  color: 
var(--jp-ui-font-color1);\n}\n\n.jp-MenuBar-anonymousIcon,\n.jp-MenuBar-imageIcon
 {\n  position: absolute;\n  top: 1px;\n  left: 8px;\n  width: 24px;\n  height: 
24px;\n  display: flex;\n  align-items: center;\n  vertical-align: middle;\n  
border-radius: 100%;\n}\n\n.jp-MenuBar-imageIcon img {\n  width: 24px;\n  
border-radius: 100%;\n  fill: var(--jp-ui-font-color1);\n  color: 
var(--jp-ui-font-color1);\n}\n\n.jp-UserMenu-caretDownIcon {\n  height: 22px;\n 
 position: relative;\n  top: 15%;\n}\n",""]);const 
l=i},28:(n,e,o)=>{o.d(e,{A:()=>l});var 
r=o(758),t=o.n(r),a=o(935),i=o.n(a)()(t());i.push([n.id,"/*\n * Copyright (c) 
Jupyter Development Team.\n * Distributed under the terms of the Modified BSD 
License.\n 
*/\n\n/************************************************************\n           
           Main Panel\n***********************************
 **************************/\n\n.jp-RTCPanel {\n  min-width: 
var(--jp-sidebar-min-width) !important;\n  color: var(--jp-ui-font-color1);\n  
background: var(--jp-layout-color1);\n  font-size: 
var(--jp-ui-font-size1);\n}\n\n/************************************************************\n
                      User Info 
Panel\n*************************************************************/\n.jp-UserInfoPanel
 {\n  display: flex;\n  flex-direction: column;\n  max-height: 140px;\n  
padding-top: 3px;\n}\n\n.jp-UserInfo-Container {\n  margin: 20px;\n  display: 
flex;\n  flex-direction: column;\n  align-items: 
center;\n}\n\n.jp-UserInfo-Icon {\n  margin: auto;\n  width: 50px;\n  height: 
50px;\n  border-radius: 50px;\n  display: inline-flex;\n  align-items: 
center;\n}\n\n.jp-UserInfo-Icon span {\n  margin: auto;\n  text-align: 
center;\n  font-size: 25px;\n  fill: var(--jp-ui-font-color1);\n  color: 
var(--jp-ui-font-color1);\n}\n\n.jp-UserInfo-Info {\n  margin: 20px;\n  
display: inline-flex;\n  fle
 x-direction: column;\n}\n\n.jp-UserInfo-Info label {\n  font-weight: bold;\n  
fill: var(--jp-ui-font-color1);\n  color: 
var(--jp-ui-font-color1);\n}\n\n.jp-UserInfo-Info input {\n  text-decoration: 
none;\n  border-top: none;\n  border-left: none;\n  border-right: none;\n  
border-color: var(--jp-ui-font-color1);\n  border-width: 0.5px;\n  
background-color: transparent;\n  fill: var(--jp-ui-font-color1);\n  color: 
var(--jp-ui-font-color1);\n}\n\n/************************************************************\n
                Collaborators Info 
Panel\n*************************************************************/\n\n.jp-CollaboratorsPanel
 {\n  overflow-y: auto;\n}\n\n.jp-CollaboratorsList {\n  flex-direction: 
column;\n  display: flex;\n  z-index: 1000;\n}\n\n.jp-CollaboratorHeader {\n  
padding: 10px;\n  display: flex;\n  align-items: center;\n  font-size: 
var(--jp-ui-font-size0);\n  fill: var(--jp-ui-font-color1);\n  color: 
var(--jp-ui-font-color1);\n}\n\n.jp-CollaboratorHeader > span {\
 n  padding-left: 7px;\n}\n\n.jp-ClickableCollaborator:hover {\n  cursor: 
pointer;\n  background-color: var(--jp-layout-color2);\n  fill: 
var(--jp-ui-font-color0);\n  color: 
var(--jp-ui-font-color0);\n}\n\n.jp-CollaboratorHeaderCollapser {\n  transform: 
rotate(-90deg);\n  margin: auto 0;\n  height: 
16px;\n}\n\n.jp-CollaboratorHeader:not(.jp-ClickableCollaborator) 
.jp-CollaboratorHeaderCollapser {\n  visibility: 
hidden;\n}\n\n.jp-CollaboratorHeaderCollapser.jp-mod-expanded {\n  transform: 
rotate(0deg);\n}\n\n.jp-CollaboratorIcon {\n  border-radius: 100%;\n  padding: 
2px;\n  width: 24px;\n  height: 24px;\n  display: 
flex;\n}\n\n.jp-CollaboratorIcon > span {\n  text-align: center;\n  margin: 
auto;\n  font-size: 12px;\n  fill: var(--jp-ui-font-color1);\n  color: 
var(--jp-ui-font-color1);\n}\n\n.jp-CollaboratorFiles {\n  padding-left: 1em;\n 
 margin-top: 0;\n  box-shadow: 0 2px 2px -2px rgb(0 0 0 / 
24%);\n\n}\n",""]);const l=i},921:(n,e,o)=>{o.d(e,{A:()=>l});var 
r=o(758),t=o.n(r),a=o(935)
 ,i=o.n(a)()(t());i.push([n.id,"/* 
-----------------------------------------------------------------------------\n|
 Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the 
Modified BSD 
License.\n|----------------------------------------------------------------------------
 */\n\n.jp-toolbar-users-item {\n  flex-grow: 1;\n  display: flex;\n  
flex-direction: row;\n}\n\n.jp-toolbar-users-item 
.jp-MenuBar-anonymousIcon,\n.jp-toolbar-users-item .jp-MenuBar-imageIcon {\n  
position: relative;\n  left: 0;\n  height: 22px;\n  width: 22px;\n  box-sizing: 
border-box;\n  cursor: default;\n}\n",""]);const 
l=i},935:n=>{n.exports=function(n){var e=[];return e.toString=function(){return 
this.map((function(e){var o="",r=void 0!==e[5];return e[4]&&(o+="@supports 
(".concat(e[4],") {")),e[2]&&(o+="@media ".concat(e[2]," 
{")),r&&(o+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," 
{")),o+=n(e),r&&(o+="}"),e[2]&&(o+="}"),e[4]&&(o+="}"),o})).join("")},e.i=function(n,o,r,t,a){"string
 "==typeof n&&(n=[[null,n,void 0]]);var i={};if(r)for(var 
l=0;l<this.length;l++){var p=this[l][0];null!=p&&(i[p]=!0)}for(var 
s=0;s<n.length;s++){var c=[].concat(n[s]);r&&i[c[0]]||(void 0!==a&&(void 
0===c[5]||(c[1]="@layer".concat(c[5].length>0?" ".concat(c[5]):""," 
{").concat(c[1],"}")),c[5]=a),o&&(c[2]?(c[1]="@media ".concat(c[2]," 
{").concat(c[1],"}"),c[2]=o):c[2]=o),t&&(c[4]?(c[1]="@supports 
(".concat(c[4],") 
{").concat(c[1],"}"),c[4]=t):c[4]="".concat(t)),e.push(c))}},e}},758:n=>{n.exports=function(n){return
 n[1]}},591:n=>{var e=[];function o(n){for(var 
o=-1,r=0;r<e.length;r++)if(e[r].identifier===n){o=r;break}return o}function 
r(n,r){for(var a={},i=[],l=0;l<n.length;l++){var 
p=n[l],s=r.base?p[0]+r.base:p[0],c=a[s]||0,u="".concat(s," 
").concat(c);a[s]=c+1;var 
d=o(u),f={css:p[1],media:p[2],sourceMap:p[3],supports:p[4],layer:p[5]};if(-1!==d)e[d].references++,e[d].updater(f);else{var
 
m=t(f,r);r.byIndex=l,e.splice(l,0,{identifier:u,updater:m,references:1})}i.push(u)}return
 i}function
  t(n,e){var o=e.domAPI(e);return 
o.update(n),function(e){if(e){if(e.css===n.css&&e.media===n.media&&e.sourceMap===n.sourceMap&&e.supports===n.supports&&e.layer===n.layer)return;o.update(n=e)}else
 o.remove()}}n.exports=function(n,t){var a=r(n=n||[],t=t||{});return 
function(n){n=n||[];for(var i=0;i<a.length;i++){var 
l=o(a[i]);e[l].references--}for(var p=r(n,t),s=0;s<a.length;s++){var 
c=o(a[s]);0===e[c].references&&(e[c].updater(),e.splice(c,1))}a=p}}},128:n=>{var
 e={};n.exports=function(n,o){var r=function(n){if(void 0===e[n]){var 
o=document.querySelector(n);if(window.HTMLIFrameElement&&o instanceof 
window.HTMLIFrameElement)try{o=o.contentDocument.head}catch(n){o=null}e[n]=o}return
 e[n]}(n);if(!r)throw new Error("Couldn't find a style target. This probably 
means that the value for the 'insert' parameter is 
invalid.");r.appendChild(o)}},51:n=>{n.exports=function(n){var 
e=document.createElement("style");return 
n.setAttributes(e,n.attributes),n.insert(e,n.options),e}},855:(n,e,o)=>{n.exp
 orts=function(n){var 
e=o.nc;e&&n.setAttribute("nonce",e)}},359:n=>{n.exports=function(n){if("undefined"==typeof
 document)return{update:function(){},remove:function(){}};var 
e=n.insertStyleElement(n);return{update:function(o){!function(n,e,o){var 
r="";o.supports&&(r+="@supports (".concat(o.supports,") 
{")),o.media&&(r+="@media ".concat(o.media," {"));var t=void 
0!==o.layer;t&&(r+="@layer".concat(o.layer.length>0?" ".concat(o.layer):""," 
{")),r+=o.css,t&&(r+="}"),o.media&&(r+="}"),o.supports&&(r+="}");var 
a=o.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# 
sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a)))),"
 
*/")),e.styleTagTransform(r,n,e.options)}(e,n,o)},remove:function(){!function(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n)}(e)}}}},656:n=>{n.exports=function(n,e){if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}},944:(n
 ,e,o)=>{var 
r=o(591),t=o.n(r),a=o(359),i=o.n(a),l=o(128),p=o.n(l),s=o(855),c=o.n(s),u=o(51),d=o.n(u),f=o(656),m=o.n(f),v=o(78),h={};h.styleTagTransform=m(),h.setAttributes=c(),h.insert=p().bind(null,"head"),h.domAPI=i(),h.insertStyleElement=d(),t()(v.A,h),v.A&&v.A.locals&&v.A.locals}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/944.eaec77f5cee3f07c3b7f.js
 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/944.eaec77f5cee3f07c3b7f.js
--- 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/944.eaec77f5cee3f07c3b7f.js
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/944.eaec77f5cee3f07c3b7f.js
   2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1 @@
+"use 
strict";(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[944],{78:(n,e,o)=>{o.d(e,{A:()=>u});var
 
r=o(758),t=o.n(r),a=o(935),i=o.n(a),l=o(875),p=o(28),s=o(921),d=o(674),c=i()(t());c.i(l.A),c.i(p.A),c.i(s.A),c.i(d.A),c.push([n.id,"/*
 
-----------------------------------------------------------------------------\n|
 Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the 
Modified BSD 
License.\n|----------------------------------------------------------------------------
 */\n\n.jp-shared-link-body {\n    user-select: none;\n}\n",""]);const 
u=c},875:(n,e,o)=>{o.d(e,{A:()=>l});var 
r=o(758),t=o.n(r),a=o(935),i=o.n(a)()(t());i.push([n.id,"/* 
-----------------------------------------------------------------------------\n|
 Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the 
Modified BSD 
License.\n|----------------------------------------------------------------------------
 */\n\n.jp-
 MenuBar-label {\n  margin-left: 25px;\n}\n\n.jp-MenuBar-anonymousIcon span {\n 
 width: 24px;\n  text-align: center;\n  fill: var(--jp-ui-font-color1);\n  
color: 
var(--jp-ui-font-color1);\n}\n\n.jp-MenuBar-anonymousIcon,\n.jp-MenuBar-imageIcon
 {\n  position: absolute;\n  top: 1px;\n  left: 8px;\n  width: 24px;\n  height: 
24px;\n  display: flex;\n  align-items: center;\n  vertical-align: middle;\n  
border-radius: 100%;\n}\n\n.jp-MenuBar-imageIcon img {\n  width: 24px;\n  
border-radius: 100%;\n  fill: var(--jp-ui-font-color1);\n  color: 
var(--jp-ui-font-color1);\n}\n\n.jp-UserMenu-caretDownIcon {\n  height: 22px;\n 
 position: relative;\n  top: 15%;\n}\n",""]);const 
l=i},674:(n,e,o)=>{o.d(e,{A:()=>l});var 
r=o(758),t=o.n(r),a=o(935),i=o.n(a)()(t());i.push([n.id,"/* 
-----------------------------------------------------------------------------\n|
 Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the 
Modified BSD License.\n|-------------------------------------------
 --------------------------------- */\n\n.jp-shared-link-body {\n  user-select: 
none;\n}\n\n.jp-ManageSharesBody-search-container {\n  margin-bottom: 
10px;\n}\n\n.jp-ManageSharesBody-search-input {\n  width: 100%;\n  padding: 
5px;\n  margin-top: 5px;\n}\n\n.jp-ManageSharesBody-search-results {\n  height: 
10em;\n  overflow-y: auto;\n  border: 1px solid var(--jp-border-color0);\n  
padding: 5px;\n  flex-shrink: 0;\n}\n\n.jp-ManageSharesBody-user-item {\n  
padding: 5px;\n  cursor: pointer;\n}\n\n.jp-ManageSharesBody-user-item:hover 
{\n  background-color: 
var(--jp-border-color3);\n}\n\n.jp-ManageSharesBody-selected-users {\n  
margin-top: 10px;\n  height: 10em;\n  overflow-y: auto;\n  border: 1px solid 
var(--jp-border-color0);\n  flex-shrink: 
0;\n}\n\n.jp-ManageSharesBody-url-input {\n  width: 100%;\n  padding: 5px;\n  
margin-top: 10px;\n}\n\n.jp-ManageSharesBody-shares-table {\n  width: 
100%;\n}\n\n.jp-ManageSharesBody-shares-table 
td:nth-child(2),\n.jp-ManageSharesBody-shares-table td:nt
 h-child(3) {\n  text-align: 
center;\n}\n\n.jp-Dialog-content:has(.jp-shared-link-body) {\n    max-height: 
750px;\n}\n",""]);const l=i},28:(n,e,o)=>{o.d(e,{A:()=>l});var 
r=o(758),t=o.n(r),a=o(935),i=o.n(a)()(t());i.push([n.id,"/*\n * Copyright (c) 
Jupyter Development Team.\n * Distributed under the terms of the Modified BSD 
License.\n 
*/\n\n/************************************************************\n           
           Main 
Panel\n*************************************************************/\n\n.jp-RTCPanel
 {\n  min-width: var(--jp-sidebar-min-width) !important;\n  color: 
var(--jp-ui-font-color1);\n  background: var(--jp-layout-color1);\n  font-size: 
var(--jp-ui-font-size1);\n}\n\n/************************************************************\n
                      User Info 
Panel\n*************************************************************/\n.jp-UserInfoPanel
 {\n  display: flex;\n  flex-direction: column;\n  max-height: 140px;\n  
padding-top: 3px;\n}\n\n.jp-UserInfo-Container
  {\n  margin: 20px;\n  display: flex;\n  flex-direction: column;\n  
align-items: center;\n}\n\n.jp-UserInfo-Icon {\n  margin: auto;\n  width: 
50px;\n  height: 50px;\n  border-radius: 50px;\n  display: inline-flex;\n  
align-items: center;\n}\n\n.jp-UserInfo-Icon span {\n  margin: auto;\n  
text-align: center;\n  font-size: 25px;\n  fill: var(--jp-ui-font-color1);\n  
color: var(--jp-ui-font-color1);\n}\n\n.jp-UserInfo-Info {\n  margin: 20px;\n  
display: inline-flex;\n  flex-direction: column;\n}\n\n.jp-UserInfo-Info label 
{\n  font-weight: bold;\n  fill: var(--jp-ui-font-color1);\n  color: 
var(--jp-ui-font-color1);\n}\n\n.jp-UserInfo-Info input {\n  text-decoration: 
none;\n  border-top: none;\n  border-left: none;\n  border-right: none;\n  
border-color: var(--jp-ui-font-color1);\n  border-width: 0.5px;\n  
background-color: transparent;\n  fill: var(--jp-ui-font-color1);\n  color: 
var(--jp-ui-font-color1);\n}\n\n/************************************************************\n
            
     Collaborators Info 
Panel\n*************************************************************/\n\n.jp-CollaboratorsPanel
 {\n  overflow-y: auto;\n}\n\n.jp-CollaboratorsList {\n  flex-direction: 
column;\n  display: flex;\n  z-index: 1000;\n}\n\n.jp-CollaboratorHeader {\n  
padding: 10px;\n  display: flex;\n  align-items: center;\n  font-size: 
var(--jp-ui-font-size0);\n  fill: var(--jp-ui-font-color1);\n  color: 
var(--jp-ui-font-color1);\n}\n\n.jp-CollaboratorHeader > span {\n  
padding-left: 7px;\n}\n\n.jp-ClickableCollaborator:hover {\n  cursor: 
pointer;\n  background-color: var(--jp-layout-color2);\n  fill: 
var(--jp-ui-font-color0);\n  color: 
var(--jp-ui-font-color0);\n}\n\n.jp-CollaboratorHeaderCollapser {\n  transform: 
rotate(-90deg);\n  margin: auto 0;\n  height: 
16px;\n}\n\n.jp-CollaboratorHeader:not(.jp-ClickableCollaborator) 
.jp-CollaboratorHeaderCollapser {\n  visibility: 
hidden;\n}\n\n.jp-CollaboratorHeaderCollapser.jp-mod-expanded {\n  transform: 
rotate(0deg);\n}\n\n.jp-Collabo
 ratorIcon {\n  border-radius: 100%;\n  padding: 2px;\n  width: 24px;\n  
height: 24px;\n  display: flex;\n}\n\n.jp-CollaboratorIcon > span {\n  
text-align: center;\n  margin: auto;\n  font-size: 12px;\n  fill: 
var(--jp-ui-font-color1);\n  color: 
var(--jp-ui-font-color1);\n}\n\n.jp-CollaboratorFiles {\n  padding-left: 1em;\n 
 margin-top: 0;\n  box-shadow: 0 2px 2px -2px rgb(0 0 0 / 
24%);\n\n}\n\n/************************************************************\n   
             User Info 
Details\n*************************************************************/\n.jp-UserInfo-Field
 {\n  display: flex;\n  justify-content: 
space-between;\n}\n\n.jp-UserInfo-Field > label,\n.jp-UserInfo-Field > input 
{\n  padding: 0.5em 1em;\n  margin: 0.25em 0;\n}\n\n.jp-UserInfo-Field > label 
{\n  font-weight: bold;\n}\n\n.jp-UserInfo-Field > input {\n  border: 
none;\n}\n\n.jp-UserInfo-Field > input:not(:disabled) {\n  cursor: pointer;\n  
background-color: var(--jp-input-background);\n}\n\n.jp-UserInfo-Field > i
 nput:focus {\n  border: solid 1px 
var(--jp-cell-editor-active-border-color);\n}\n\n.jp-UserInfo-Field > 
input:focus-visible {\n  outline: none;\n}\n",""]);const 
l=i},921:(n,e,o)=>{o.d(e,{A:()=>l});var 
r=o(758),t=o.n(r),a=o(935),i=o.n(a)()(t());i.push([n.id,"/* 
-----------------------------------------------------------------------------\n|
 Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the 
Modified BSD 
License.\n|----------------------------------------------------------------------------
 */\n\n.jp-toolbar-users-item {\n  flex-grow: 1;\n  display: flex;\n  
flex-direction: row;\n}\n\n.jp-toolbar-users-item 
.jp-MenuBar-anonymousIcon,\n.jp-toolbar-users-item .jp-MenuBar-imageIcon {\n  
position: relative;\n  left: 0;\n  height: 22px;\n  width: 22px;\n  box-sizing: 
border-box;\n  cursor: default;\n}\n",""]);const 
l=i},935:n=>{n.exports=function(n){var e=[];return e.toString=function(){return 
this.map((function(e){var o="",r=void 0!==e[5];return e[4]&&(o+="@supp
 orts (".concat(e[4],") {")),e[2]&&(o+="@media ".concat(e[2]," 
{")),r&&(o+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," 
{")),o+=n(e),r&&(o+="}"),e[2]&&(o+="}"),e[4]&&(o+="}"),o})).join("")},e.i=function(n,o,r,t,a){"string"==typeof
 n&&(n=[[null,n,void 0]]);var i={};if(r)for(var l=0;l<this.length;l++){var 
p=this[l][0];null!=p&&(i[p]=!0)}for(var s=0;s<n.length;s++){var 
d=[].concat(n[s]);r&&i[d[0]]||(void 0!==a&&(void 
0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," 
{").concat(d[1],"}")),d[5]=a),o&&(d[2]?(d[1]="@media ".concat(d[2]," 
{").concat(d[1],"}"),d[2]=o):d[2]=o),t&&(d[4]?(d[1]="@supports 
(".concat(d[4],") 
{").concat(d[1],"}"),d[4]=t):d[4]="".concat(t)),e.push(d))}},e}},758:n=>{n.exports=function(n){return
 n[1]}},591:n=>{var e=[];function o(n){for(var 
o=-1,r=0;r<e.length;r++)if(e[r].identifier===n){o=r;break}return o}function 
r(n,r){for(var a={},i=[],l=0;l<n.length;l++){var 
p=n[l],s=r.base?p[0]+r.base:p[0],d=a[s]||0,c="".concat(s," 
").concat(d);a[s]=d+1;v
 ar 
u=o(c),f={css:p[1],media:p[2],sourceMap:p[3],supports:p[4],layer:p[5]};if(-1!==u)e[u].references++,e[u].updater(f);else{var
 
h=t(f,r);r.byIndex=l,e.splice(l,0,{identifier:c,updater:h,references:1})}i.push(c)}return
 i}function t(n,e){var o=e.domAPI(e);return 
o.update(n),function(e){if(e){if(e.css===n.css&&e.media===n.media&&e.sourceMap===n.sourceMap&&e.supports===n.supports&&e.layer===n.layer)return;o.update(n=e)}else
 o.remove()}}n.exports=function(n,t){var a=r(n=n||[],t=t||{});return 
function(n){n=n||[];for(var i=0;i<a.length;i++){var 
l=o(a[i]);e[l].references--}for(var p=r(n,t),s=0;s<a.length;s++){var 
d=o(a[s]);0===e[d].references&&(e[d].updater(),e.splice(d,1))}a=p}}},128:n=>{var
 e={};n.exports=function(n,o){var r=function(n){if(void 0===e[n]){var 
o=document.querySelector(n);if(window.HTMLIFrameElement&&o instanceof 
window.HTMLIFrameElement)try{o=o.contentDocument.head}catch(n){o=null}e[n]=o}return
 e[n]}(n);if(!r)throw new Error("Couldn't find a style target. This probably 
means
  that the value for the 'insert' parameter is 
invalid.");r.appendChild(o)}},51:n=>{n.exports=function(n){var 
e=document.createElement("style");return 
n.setAttributes(e,n.attributes),n.insert(e,n.options),e}},855:(n,e,o)=>{n.exports=function(n){var
 
e=o.nc;e&&n.setAttribute("nonce",e)}},740:n=>{n.exports=function(n){if("undefined"==typeof
 document)return{update:function(){},remove:function(){}};var 
e=n.insertStyleElement(n);return{update:function(o){!function(n,e,o){var 
r="";o.supports&&(r+="@supports (".concat(o.supports,") 
{")),o.media&&(r+="@media ".concat(o.media," {"));var t=void 
0!==o.layer;t&&(r+="@layer".concat(o.layer.length>0?" ".concat(o.layer):""," 
{")),r+=o.css,t&&(r+="}"),o.media&&(r+="}"),o.supports&&(r+="}");var 
a=o.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# 
sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a)))),"
 
*/")),e.styleTagTransform(r,n,e.options)}(e,n,o)},remove:function(){!function(n){if(null===n.par
 
entNode)return!1;n.parentNode.removeChild(n)}(e)}}}},656:n=>{n.exports=function(n,e){if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}},944:(n,e,o)=>{var
 
r=o(591),t=o.n(r),a=o(740),i=o.n(a),l=o(128),p=o.n(l),s=o(855),d=o.n(s),c=o(51),u=o.n(c),f=o(656),h=o.n(f),m=o(78),v={};v.styleTagTransform=h(),v.setAttributes=d(),v.insert=p().bind(null,"head"),v.domAPI=i(),v.insertStyleElement=u(),t()(m.A,v),m.A&&m.A.locals&&m.A.locals}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/994.bc087314bdabeecb0923.js
 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/994.bc087314bdabeecb0923.js
--- 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/994.bc087314bdabeecb0923.js
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/994.bc087314bdabeecb0923.js
   2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1 @@
+(self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[]).push([[994],{907:e=>{var
 t,s,n=e.exports={};function o(){throw new Error("setTimeout has not been 
defined")}function r(){throw new Error("clearTimeout has not been 
defined")}function c(e){if(t===setTimeout)return 
setTimeout(e,0);if((t===o||!t)&&setTimeout)return 
t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(s){try{return 
t.call(null,e,0)}catch(s){return 
t.call(this,e,0)}}}!function(){try{t="function"==typeof 
setTimeout?setTimeout:o}catch(e){t=o}try{s="function"==typeof 
clearTimeout?clearTimeout:r}catch(e){s=r}}();var a,i=[],l=!1,h=-1;function 
d(){l&&a&&(l=!1,a.length?i=a.concat(i):h=-1,i.length&&u())}function 
u(){if(!l){var e=c(d);l=!0;for(var 
t=i.length;t;){for(a=i,i=[];++h<t;)a&&a[h].run();h=-1,t=i.length}a=null,l=!1,function(e){if(s===clearTimeout)return
 clearTimeout(e);if((s===r||!s)&&clearTimeout)return 
s=clearTimeout,clearTimeout(e);try{return s(e)}catch(t){try{return s
 .call(null,e)}catch(t){return s.call(this,e)}}}(e)}}function 
f(e,t){this.fun=e,this.array=t}function g(){}n.nextTick=function(e){var t=new 
Array(arguments.length-1);if(arguments.length>1)for(var 
s=1;s<arguments.length;s++)t[s-1]=arguments[s];i.push(new 
f(e,t)),1!==i.length||l||c(u)},f.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=g,n.addListener=g,n.once=g,n.off=g,n.removeListener=g,n.removeAllListeners=g,n.emit=g,n.prependListener=g,n.prependOnceListener=g,n.listeners=function(e){return[]},n.binding=function(e){throw
 new Error("process.binding is not 
supported")},n.cwd=function(){return"/"},n.chdir=function(e){throw new 
Error("process.chdir is not supported")},n.umask=function(){return 
0}},994:(e,t,s)=>{"use 
strict";s.r(t),s.d(t,{WebsocketProvider:()=>Z,messageAuth:()=>V,messageAwareness:()=>Q,messageQueryAwareness:()=>W,messageSync:()=>P});var
 n=s(206);const o=()=>new Map,r=(e,t,s)=>{let 
 n=e.get(t);return void 0===n&&e.set(t,n=s()),n},c=()=>new Set;var a=s(554);let 
i=new class{constructor(){this.map=new 
Map}setItem(e,t){this.map.set(e,t)}getItem(e){return 
this.map.get(e)}},l=!0;try{"undefined"!=typeof 
localStorage&&localStorage&&(i=localStorage,l=!1)}catch(e){}const 
h=i,d=Array.from,u=(Array.isArray,Object.assign,Object.keys),f=e=>u(e).length,g=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),p=(Object.freeze,(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t.constructor)return!1;if(e===t)return!0;switch(e.constructor){case
 ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case 
Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let 
s=0;s<e.length;s++)if(e[s]!==t[s])return!1;break;case 
Set:if(e.size!==t.size)return!1;for(const s of 
e)if(!t.has(s))return!1;break;case Map:if(e.size!==t.size)return!1;for(const s 
of e.keys())if(!t.has(s)||!p(e.get(s),t.get(s)))return!1;break;case 
Object:if(f(e)!==f(t))return!1;for(const s in e)if(!g(e,s)||!p
 (e[s],t[s]))return!1;break;case Array:if(e.length!==t.length)return!1;for(let 
s=0;s<e.length;s++)if(!p(e[s],t[s]))return!1;break;default:return!1}return!0});var
 w=s(907);const m=void 
0!==w&&w.release&&/node|io\.js/.test(w.release.name)&&"[object 
process]"===Object.prototype.toString.call(void 
0!==w?w:0),v="undefined"!=typeof window&&"undefined"!=typeof document&&!m;let 
b;"undefined"!=typeof navigator&&/Mac/.test(navigator.platform);const 
y=[],_=e=>(()=>{if(void 0===b)if(m){b=o();const e=w.argv;let t=null;for(let 
s=0;s<e.length;s++){const 
n=e[s];"-"===n[0]?(null!==t&&b.set(t,""),t=n):null!==t?(b.set(t,n),t=null):y.push(n)}null!==t&&b.set(t,"")}else"object"==typeof
 
location?(b=o(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,s]=e.split("=");b.set(`--${a.jN(t,"-")}`,s),b.set(`-${a.jN(t,"-")}`,s)}}))):b=o();return
 b})().has(e),k=e=>{return void 
0===(t=m?w.env[e.toUpperCase().replaceAll("-","_")]:h.getItem(e))?null:t;var 
t},S=e=>_("--"+e)||null!==k(e);
 var 
I;S("production"),m&&(I=w.env.FORCE_COLOR,["true","1","2"].includes(I))||!_("--no-colors")&&!S("no-color")&&(!m||w.stdout.isTTY)&&(!m||_("--color")||null!==k("COLORTERM")||(k("TERM")||"").includes("color"));const
 C=v?e=>{let t="";for(let s=0;s<e.byteLength;s++)t+=a.QV(e[s]);return 
btoa(t)}:e=>Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"),L=v?e=>{const
 t=atob(e),s=(n=t.length,new Uint8Array(n));var n;for(let 
e=0;e<t.length;e++)s[e]=t.charCodeAt(e);return s}:e=>{const 
t=Buffer.from(e,"base64");return s=t.buffer,n=t.byteOffset,o=t.byteLength,new 
Uint8Array(s,n,o);var s,n,o},U=new Map,x="undefined"==typeof 
BroadcastChannel?class{constructor(e){var 
t;this.room=e,this.onmessage=null,this._onChange=t=>t.key===e&&null!==this.onmessage&&this.onmessage({data:L(t.newValue||"")}),t=this._onChange,l||addEventListener("storage",t)}postMessage(e){h.setItem(this.room,C(new
 Uint8Array(e)))}close(){var 
e;e=this._onChange,l||removeEventListener("storage",e)}}:BroadcastChannel,
 T=e=>r(U,e,(()=>{const t=c(),s=new x(e);return 
s.onmessage=e=>t.forEach((t=>t(e.data,"broadcastchannel"))),{bc:s,subs:t}})),z=(e,t,s=null)=>{const
 n=T(e);n.bc.postMessage(t),n.subs.forEach((e=>e(t,s)))},A=Date.now;var 
O=s(214),j=s(721);const B=(e,t)=>{O.zd(e,0);const 
s=n.encodeStateVector(t);O.Gu(e,s)},E=(e,t,s)=>{O.zd(e,1),O.Gu(e,n.encodeStateAsUpdate(t,s))},M=(e,t,s)=>{try{n.applyUpdate(t,j.bo(e),s)}catch(e){console.error("Caught
 error while handling a Yjs update",e)}},R=M;var F=s(801);class 
D{constructor(){this._observers=o()}on(e,t){r(this._observers,e,c).add(t)}once(e,t){const
 s=(...n)=>{this.off(e,s),t(...n)};this.on(e,s)}off(e,t){const 
s=this._observers.get(e);void 
0!==s&&(s.delete(t),0===s.size&&this._observers.delete(e))}emit(e,t){return 
d((this._observers.get(e)||o()).values()).forEach((e=>e(...t)))}destroy(){this._observers=o()}}class
 H extends 
D{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new 
Map,this.meta=new Map,this._checkInterval=setInterva
 l((()=>{const 
e=A();null!==this.getLocalState()&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const
 
t=[];this.meta.forEach(((s,n)=>{n!==this.clientID&&3e4<=e-s.lastUpdated&&this.states.has(n)&&t.push(n)})),t.length>0&&G(this,t,"timeout")}),F.RI(3e3)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return
 this.states.get(this.clientID)||null}setLocalState(e){const 
t=this.clientID,s=this.meta.get(t),n=void 
0===s?0:s.clock+1,o=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:n,lastUpdated:A()});const
 
r=[],c=[],a=[],i=[];null===e?i.push(t):null==o?null!=e&&r.push(t):(c.push(t),p(o,e)||a.push(t)),(r.length>0||a.length>0||i.length>0)&&this.emit("change",[{added:r,updated:a,removed:i},"local"]),this.emit("update",[{added:r,updated:c,removed:i},"local"])}setLo
 calStateField(e,t){const 
s=this.getLocalState();null!==s&&this.setLocalState({...s,[e]:t})}getStates(){return
 this.states}}const G=(e,t,s)=>{const n=[];for(let s=0;s<t.length;s++){const 
o=t[s];if(e.states.has(o)){if(e.states.delete(o),o===e.clientID){const 
t=e.meta.get(o);e.meta.set(o,{clock:t.clock+1,lastUpdated:A()})}n.push(o)}}n.length>0&&(e.emit("change",[{added:[],updated:[],removed:n},s]),e.emit("update",[{added:[],updated:[],removed:n},s]))},$=(e,t,s=e.states)=>{const
 n=t.length,o=O.xv();O.zd(o,n);for(let r=0;r<n;r++){const 
n=t[r],c=s.get(n)||null,a=e.meta.get(n).clock;O.zd(o,n),O.zd(o,a),O.Qj(o,JSON.stringify(c))}return
 O.Fo(o)};var N=s(907);const 
P=0,W=3,Q=1,V=2,J=[];J[P]=(e,t,s,n,o)=>{O.zd(e,P);const r=((e,t,s,n)=>{const 
o=j.cw(e);switch(o){case 0:((e,t,s)=>{E(t,s,j.bo(e))})(e,t,s);break;case 
1:M(e,s,n);break;case 2:R(e,s,n);break;default:throw new Error("Unknown message 
type")}return 
o})(t,e,s.doc,s);n&&1===r&&!s.synced&&(s.synced=!0)},J[W]=(e,t,s,n,o)=>{O.zd(e,Q),O.Gu(e,
 
$(s.awareness,Array.from(s.awareness.getStates().keys())))},J[Q]=(e,t,s,n,o)=>{((e,t,s)=>{const
 n=j.$C(t),o=A(),r=[],c=[],a=[],i=[],l=j.cw(n);for(let t=0;t<l;t++){const 
t=j.cw(n);let s=j.cw(n);const 
l=JSON.parse(j.t3(n)),h=e.meta.get(t),d=e.states.get(t),u=void 
0===h?0:h.clock;(u<s||u===s&&null===l&&e.states.has(t))&&(null===l?t===e.clientID&&null!=e.getLocalState()?s++:e.states.delete(t):e.states.set(t,l),e.meta.set(t,{clock:s,lastUpdated:o}),void
 0===h&&null!==l?r.push(t):void 
0!==h&&null===l?i.push(t):null!==l&&(p(l,d)||a.push(t),c.push(t)))}(r.length>0||a.length>0||i.length>0)&&e.emit("change",[{added:r,updated:a,removed:i},s]),(r.length>0||c.length>0||i.length>0)&&e.emit("update",[{added:r,updated:c,removed:i},s])})(s.awareness,j.bo(t),s)},J[V]=(e,t,s,n,o)=>{((e,t,s)=>{0===j.cw(e)&&s(0,j.t3(e))})(t,s.doc,((e,t)=>Y(s,t)))};const
 Y=(e,t)=>console.warn(`Permission denied to access 
${e.url}.\n${t}`),q=(e,t,s)=>{const 
n=j.$C(t),o=O.xv(),r=j.cw(n),c=e.messageHandlers[r];return c?c(o,
 n,e,s,r):console.error("Unable to compute 
message"),o},K=e=>{if(e.shouldConnect&&null===e.ws){const t=new 
e._WS(e.url);t.binaryType="arraybuffer",e.ws=t,e.wsconnecting=!0,e.wsconnected=!1,e.synced=!1,t.onmessage=s=>{e.wsLastMessageReceived=A();const
 n=q(e,new 
Uint8Array(s.data),!0);O.Bw(n)>1&&t.send(O.Fo(n))},t.onerror=t=>{e.emit("connection-error",[t,e])},t.onclose=t=>{e.emit("connection-close",[t,e]),e.ws=null,e.wsconnecting=!1,e.wsconnected?(e.wsconnected=!1,e.synced=!1,G(e.awareness,Array.from(e.awareness.getStates().keys()).filter((t=>t!==e.doc.clientID)),e),e.emit("status",[{status:"disconnected"}])):e.wsUnsuccessfulReconnects++,setTimeout(K,F.jk(100*F.n7(2,e.wsUnsuccessfulReconnects),e.maxBackoffTime),e)},t.onopen=()=>{e.wsLastMessageReceived=A(),e.wsconnecting=!1,e.wsconnected=!0,e.wsUnsuccessfulReconnects=0,e.emit("status",[{status:"connected"}]);const
 
s=O.xv();if(O.zd(s,P),B(s,e.doc),t.send(O.Fo(s)),null!==e.awareness.getLocalState()){const
 s=O.xv();O.zd(s,Q),O.Gu(s,$(e.aw
 
areness,[e.doc.clientID])),t.send(O.Fo(s))}},e.emit("status",[{status:"connecting"}])}},X=(e,t)=>{const
 
s=e.ws;e.wsconnected&&s&&s.readyState===s.OPEN&&s.send(t),e.bcconnected&&z(e.bcChannel,t,e)};class
 Z extends D{constructor(e,t,s,{connect:n=!0,awareness:o=new 
H(s),params:r={},WebSocketPolyfill:c=WebSocket,resyncInterval:a=-1,maxBackoffTime:i=2500,disableBc:l=!1}={}){for(super();"/"===e[e.length-1];)e=e.slice(0,e.length-1);const
 h=(e=>((e,t)=>{const s=[];for(const n in e)s.push(t(e[n],n));return 
s})(e,((e,t)=>`${encodeURIComponent(t)}=${encodeURIComponent(e)}`)).join("&"))(r);this.maxBackoffTime=i,this.bcChannel=e+"/"+t,this.url=e+"/"+t+(0===h.length?"":"?"+h),this.roomname=t,this.doc=s,this._WS=c,this.awareness=o,this.wsconnected=!1,this.wsconnecting=!1,this.bcconnected=!1,this.disableBc=l,this.wsUnsuccessfulReconnects=0,this.messageHandlers=J.slice(),this._synced=!1,this.ws=null,this.wsLastMessageReceived=0,this.shouldConnect=n,this._resyncInterval=0,a>0&&(this._resyncInterval=s
 etInterval((()=>{if(this.ws&&this.ws.readyState===WebSocket.OPEN){const 
e=O.xv();O.zd(e,P),B(e,s),this.ws.send(O.Fo(e))}}),a)),this._bcSubscriber=(e,t)=>{if(t!==this){const
 t=q(this,new 
Uint8Array(e),!1);O.Bw(t)>1&&z(this.bcChannel,O.Fo(t),this)}},this._updateHandler=(e,t)=>{if(t!==this){const
 
t=O.xv();O.zd(t,P),((e,t)=>{O.zd(e,2),O.Gu(e,t)})(t,e),X(this,O.Fo(t))}},this.doc.on("update",this._updateHandler),this._awarenessUpdateHandler=({added:e,updated:t,removed:s},n)=>{const
 
r=e.concat(t).concat(s),c=O.xv();O.zd(c,Q),O.Gu(c,$(o,r)),X(this,O.Fo(c))},this._exitHandler=()=>{G(this.awareness,[s.clientID],"app
 closed")},m&&void 
0!==N&&N.on("exit",this._exitHandler),o.on("update",this._awarenessUpdateHandler),this._checkInterval=setInterval((()=>{this.wsconnected&&3e4<A()-this.wsLastMessageReceived&&this.ws.close()}),3e3),n&&this.connect()}get
 synced(){return this._synced}set 
synced(e){this._synced!==e&&(this._synced=e,this.emit("synced",[e]),this.emit("sync",[e]))}destroy(){0!==this._re
 
syncInterval&&clearInterval(this._resyncInterval),clearInterval(this._checkInterval),this.disconnect(),m&&void
 
0!==N&&N.off("exit",this._exitHandler),this.awareness.off("update",this._awarenessUpdateHandler),this.doc.off("update",this._updateHandler),super.destroy()}connectBc(){if(this.disableBc)return;var
 
e,t;this.bcconnected||(e=this.bcChannel,t=this._bcSubscriber,T(e).subs.add(t),this.bcconnected=!0);const
 s=O.xv();O.zd(s,P),B(s,this.doc),z(this.bcChannel,O.Fo(s),this);const 
n=O.xv();O.zd(n,P),E(n,this.doc),z(this.bcChannel,O.Fo(n),this);const 
o=O.xv();O.zd(o,W),z(this.bcChannel,O.Fo(o),this);const 
r=O.xv();O.zd(r,Q),O.Gu(r,$(this.awareness,[this.doc.clientID])),z(this.bcChannel,O.Fo(r),this)}disconnectBc(){const
 e=O.xv();O.zd(e,Q),O.Gu(e,$(this.awareness,[this.doc.clientID],new 
Map)),X(this,O.Fo(e)),this.bcconnected&&(((e,t)=>{const 
s=T(e);s.subs.delete(t)&&0===s.subs.size&&(s.bc.close(),U.delete(e))})(this.bcChannel,this._bcSubscriber),this.bcconnected=!1)}disconnect(){this.sho
 
uldConnect=!1,this.disconnectBc(),null!==this.ws&&this.ws.close()}connect(){this.shouldConnect=!0,this.wsconnected||null!==this.ws||(K(this),this.connectBc())}}}}]);
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/remoteEntry.236b886ba495f686c573.js
 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/remoteEntry.236b886ba495f686c573.js
--- 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/remoteEntry.236b886ba495f686c573.js
   2020-02-02 01:00:00.000000000 +0100
+++ 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/remoteEntry.236b886ba495f686c573.js
   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-var _JUPYTERLAB;(()=>{"use strict";var 
e,r,t,o,n,a,i,l,u,s,d,f,c,p,v,h,y,m,b,g,j,w,P,S={496:(e,r,t)=>{var 
o={"./index":()=>Promise.all([t.e(738),t.e(453),t.e(703)]).then((()=>()=>t(703))),"./extension":()=>Promise.all([t.e(738),t.e(453),t.e(703)]).then((()=>()=>t(703))),"./style":()=>t.e(944).then((()=>()=>t(944)))},n=(e,r)=>(t.R=r,r=t.o(o,e)?o[e]():Promise.resolve().then((()=>{throw
 new Error('Module "'+e+'" does not exist in container.')})),t.R=void 
0,r),a=(e,r)=>{if(t.S){var o="default",n=t.S[o];if(n&&n!==e)throw new 
Error("Container initialization failed as it has already been initialized with 
a different share scope");return 
t.S[o]=e,t.I(o,r)}};t.d(r,{get:()=>n,init:()=>a})}},k={};function x(e){var 
r=k[e];if(void 0!==r)return r.exports;var t=k[e]={id:e,exports:{}};return 
S[e](t,t.exports,x),t.exports}x.m=S,x.c=k,x.n=e=>{var 
r=e&&e.__esModule?()=>e.default:()=>e;return 
x.d(r,{a:r}),r},x.d=(e,r)=>{for(var t in 
r)x.o(r,t)&&!x.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[
 
t]})},x.f={},x.e=e=>Promise.all(Object.keys(x.f).reduce(((r,t)=>(x.f[t](e,r),r)),[])),x.u=e=>e+"."+{240:"b89bafe21cc031ed1f8d",444:"13de0fd44849e3f7d780",576:"21a3c1a9ebaebb58d346",703:"b02363b93dbf18450ce4",944:"b26f5029dcd72a4e58bc"}[e]+".js?v="+{240:"b89bafe21cc031ed1f8d",444:"13de0fd44849e3f7d780",576:"21a3c1a9ebaebb58d346",703:"b02363b93dbf18450ce4",944:"b26f5029dcd72a4e58bc"}[e],x.g=function(){if("object"==typeof
 globalThis)return globalThis;try{return this||new Function("return 
this")()}catch(e){if("object"==typeof window)return 
window}}(),x.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="@jupyter/docprovider-extension:",x.l=(t,o,n,a)=>{if(e[t])e[t].push(o);else{var
 i,l;if(void 0!==n)for(var 
u=document.getElementsByTagName("script"),s=0;s<u.length;s++){var 
d=u[s];if(d.getAttribute("src")==t||d.getAttribute("data-webpack")==r+n){i=d;break}}i||(l=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,x.nc&&i.setAttribute("nonce",x.nc),i.setAttribute("d
 ata-webpack",r+n),i.src=t),e[t]=[o];var 
f=(r,o)=>{i.onerror=i.onload=null,clearTimeout(c);var n=e[t];if(delete 
e[t],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach((e=>e(o))),r)return 
r(o)},c=setTimeout(f.bind(null,void 
0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),l&&document.head.appendChild(i)}},x.r=e=>{"undefined"!=typeof
 
Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{x.S={};var
 e={},r={};x.I=(t,o)=>{o||(o=[]);var 
n=r[t];if(n||(n=r[t]={}),!(o.indexOf(n)>=0)){if(o.push(n),e[t])return 
e[t];x.o(x.S,t)||(x.S[t]={});var 
a=x.S[t],i="@jupyter/docprovider-extension",l=(e,r,t,o)=>{var 
n=a[e]=a[e]||{},l=n[r];(!l||!l.loaded&&(!o!=!l.eager?o:i>l.from))&&(n[r]={get:t,from:i,eager:!!o})},u=[];return"default"===t&&(l("@jupyter/collaborative-drive","4.0.2",(()=>Promise.all([x.e(262),x.e(444)]).then((()=>()=>x(444))))),l("@jupyter/docprovid
 
er-extension","4.0.2",(()=>Promise.all([x.e(738),x.e(453),x.e(703)]).then((()=>()=>x(703))))),l("@jupyter/docprovider","4.0.2",(()=>Promise.all([x.e(738),x.e(262),x.e(240)]).then((()=>()=>x(240))))),l("y-websocket","1.5.4",(()=>Promise.all([x.e(576),x.e(206)]).then((()=>()=>x(576)))))),e[t]=u.length?Promise.all(u).then((()=>e[t]=1)):1}}})(),(()=>{var
 e;x.g.importScripts&&(e=x.g.location+"");var 
r=x.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var
 t=r.getElementsByTagName("script");if(t.length)for(var 
o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new 
Error("Automatic publicPath is not supported in this 
browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),x.p=e})(),t=e=>{var
 
r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),o=t[1]?r(t[1]):[];return
 t[2]&&(o.length++,o.push.apply(o,r(t[2]))),t[3]&&(o.push([]),o.push.apply(o,r(
 t[3]))),o},o=(e,r)=>{e=t(e),r=t(r);for(var o=0;;){if(o>=e.length)return 
o<r.length&&"u"!=(typeof r[o])[0];var n=e[o],a=(typeof 
n)[0];if(o>=r.length)return"u"==a;var i=r[o],l=(typeof 
i)[0];if(a!=l)return"o"==a&&"n"==l||"s"==l||"u"==a;if("o"!=a&&"u"!=a&&n!=i)return
 n<i;o++}},n=e=>{var 
r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var
 
o=1,a=1;a<e.length;a++)o--,t+="u"==(typeof(l=e[a]))[0]?"-":(o>0?".":"")+(o=2,l);return
 t}var i=[];for(a=1;a<e.length;a++){var 
l=e[a];i.push(0===l?"not("+u()+")":1===l?"("+u()+" || "+u()+")":2===l?i.pop()+" 
"+i.pop():n(l))}return u();function u(){return 
i.pop().replace(/^\((.+)\)$/,"$1")}},a=(e,r)=>{if(0 in e){r=t(r);var 
o=e[0],n=o<0;n&&(o=-o-1);for(var i=0,l=1,u=!0;;l++,i++){var 
s,d,f=l<e.length?(typeof 
e[l])[0]:"";if(i>=r.length||"o"==(d=(typeof(s=r[i]))[0]))return!u||("u"==f?l>o&&!n:""==f!=n);if("u"==d){if(!u||"u"!=f)return!1}else
 if(u)if(f==d)if(l<=o){if(s!=e[l])return!1}else{if(n?s>e[l]:s<e[l]
 )return!1;s!=e[l]&&(u=!1)}else 
if("s"!=f&&"n"!=f){if(n||l<=o)return!1;u=!1,l--}else{if(l<=o||d<f!=n)return!1;u=!1}else"s"!=f&&"n"!=f&&(u=!1,l--)}}var
 c=[],p=c.pop.bind(c);for(i=1;i<e.length;i++){var 
v=e[i];c.push(1==v?p()|p():2==v?p()&p():v?a(v,r):!p())}return!!p()},i=(e,r)=>e&&x.o(e,r),l=e=>(e.loaded=1,e.get()),u=e=>Object.keys(e).reduce(((r,t)=>(e[t].eager&&(r[t]=e[t]),r)),{}),s=(e,r,t,n)=>{var
 
i=n?u(e[r]):e[r];return(r=Object.keys(i).reduce(((e,r)=>!a(t,r)||e&&!o(e,r)?e:r),0))&&i[r]},d=(e,r,t)=>{var
 n=t?u(e[r]):e[r];return 
Object.keys(n).reduce(((e,r)=>!e||!n[e].loaded&&o(e,r)?r:e),0)},f=(e,r,t,o)=>"Unsatisfied
 version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" 
(required "+n(o)+")",c=(e,r,t,o,a)=>{var i=e[t];return"No satisfying version 
("+n(o)+")"+(a?" for eager consumption":"")+" of shared module "+t+" found in 
shared scope "+r+".\nAvailable versions: "+Object.keys(i).map((e=>e+" from 
"+i[e].from)).join(", ")},p=e=>{throw new Error(e)},v=e=>{"undefined"!=
 typeof 
console&&console.warn&&console.warn(e)},y=(e,r,t)=>t?t():((e,r)=>p("Shared 
module "+r+" doesn't exist in shared scope 
"+e))(e,r),m=(h=e=>function(r,t,o,n,a){var i=x.I(r);return 
i&&i.then&&!o?i.then(e.bind(e,r,x.S[r],t,!1,n,a)):e(r,x.S[r],t,o,n,a)})(((e,r,t,o,n,a)=>{if(!i(r,t))return
 y(e,t,a);var u=s(r,t,n,o);return u?l(u):a?a():void 
p(c(r,e,t,n,o))})),b=h(((e,r,t,o,n,u)=>{if(!i(r,t))return y(e,t,u);var 
s=d(r,t,o);return 
a(n,s)||v(f(r,t,s,n)),l(r[t][s])})),g={},j={569:()=>b("default","@jupyterlab/apputils",!1,[1,4,5,0]),579:()=>b("default","@jupyterlab/translation",!1,[1,4,4,0]),808:()=>b("default","@jupyterlab/coreutils",!1,[1,6,4,0]),0:()=>b("default","@jupyter/ydoc",!1,[1,3,0,0,,"a3"]),191:()=>b("default","@jupyterlab/logconsole",!1,[1,4,4,0]),256:()=>b("default","@lumino/widgets",!1,[1,2,3,1,,"alpha",0]),319:()=>b("default","@jupyterlab/statusbar",!1,[1,4,4,0]),369:()=>b("default","@jupyterlab/notebook",!1,[1,4,4,0]),507:()=>b("default","@jupyterlab/settingregistry",!1,[1,
 
4,4,0]),739:()=>b("default","@jupyterlab/fileeditor",!1,[1,4,4,0]),772:()=>b("default","@jupyter/docprovider",!1,[1,4,0,2],(()=>Promise.all([x.e(262),x.e(240)]).then((()=>()=>x(240))))),980:()=>b("default","@jupyter/collaborative-drive",!1,[1,4,0,2],(()=>Promise.all([x.e(262),x.e(444)]).then((()=>()=>x(444))))),262:()=>b("default","@lumino/coreutils",!1,[1,2,0,0]),345:()=>b("default","react",!1,[1,18,2,0]),560:()=>m("default","y-websocket",!1,[1,1,3,15],(()=>Promise.all([x.e(576),x.e(206)]).then((()=>()=>x(576))))),602:()=>b("default","@lumino/signaling",!1,[1,2,0,0]),695:()=>b("default","@jupyterlab/services",!1,[1,7,4,0]),989:()=>b("default","@jupyterlab/ui-components",!1,[1,4,4,0]),206:()=>b("default","yjs",!1,[1,13,5,40])},w={206:[206],240:[345,560,602,695,989],262:[262],453:[0,191,256,319,369,507,739,772,980],738:[569,579,808]},P={},x.f.consumes=(e,r)=>{x.o(w,e)&&w[e].forEach((e=>{if(x.o(g,e))return
 r.push(g[e]);if(!P[e]){var t=r=>{g[e]=0,x.m[e]=t=>{delete x.c[e],t.exports=r()}
 };P[e]=!0;var o=r=>{delete g[e],x.m[e]=t=>{throw delete x.c[e],r}};try{var 
n=j[e]();n.then?r.push(g[e]=n.then(t).catch(o)):t(n)}catch(e){o(e)}}}))},(()=>{var
 e={552:0};x.f.j=(r,t)=>{var o=x.o(e,r)?e[r]:void 
0;if(0!==o)if(o)t.push(o[2]);else 
if(/^(206|262|453|738)$/.test(r))e[r]=0;else{var n=new 
Promise(((t,n)=>o=e[r]=[t,n]));t.push(o[2]=n);var a=x.p+x.u(r),i=new 
Error;x.l(a,(t=>{if(x.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var 
n=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;i.message="Loading
 chunk "+r+" failed.\n("+n+": 
"+a+")",i.name="ChunkLoadError",i.type=n,i.request=a,o[1](i)}}),"chunk-"+r,r)}};var
 r=(r,t)=>{var o,n,[a,i,l]=t,u=0;if(a.some((r=>0!==e[r]))){for(o in 
i)x.o(i,o)&&(x.m[o]=i[o]);l&&l(x)}for(r&&r(t);u<a.length;u++)n=a[u],x.o(e,n)&&e[n]&&e[n][0](),e[n]=0},t=self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),x.nc=void
 0;var E=x(496);(_JU
 PYTERLAB=void 
0===_JUPYTERLAB?{}:_JUPYTERLAB)["@jupyter/docprovider-extension"]=E})();
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/remoteEntry.cddf83930bc7c4fbf11a.js
 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/remoteEntry.cddf83930bc7c4fbf11a.js
--- 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/remoteEntry.cddf83930bc7c4fbf11a.js
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/remoteEntry.cddf83930bc7c4fbf11a.js
   2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1 @@
+var _JUPYTERLAB;(()=>{"use strict";var 
e,r,t,o,n,a,i,l,u,d,s,f,c,p,v,h,b,y,m,g,j,w,P,S={496:(e,r,t)=>{var 
o={"./index":()=>Promise.all([t.e(998),t.e(303),t.e(703)]).then((()=>()=>t(703))),"./extension":()=>Promise.all([t.e(998),t.e(303),t.e(703)]).then((()=>()=>t(703))),"./style":()=>t.e(944).then((()=>()=>t(944)))},n=(e,r)=>(t.R=r,r=t.o(o,e)?o[e]():Promise.resolve().then((()=>{throw
 new Error('Module "'+e+'" does not exist in container.')})),t.R=void 
0,r),a=(e,r)=>{if(t.S){var o="default",n=t.S[o];if(n&&n!==e)throw new 
Error("Container initialization failed as it has already been initialized with 
a different share scope");return 
t.S[o]=e,t.I(o,r)}};t.d(r,{get:()=>n,init:()=>a})}},k={};function x(e){var 
r=k[e];if(void 0!==r)return r.exports;var t=k[e]={id:e,exports:{}};return 
S[e](t,t.exports,x),t.exports}x.m=S,x.c=k,x.n=e=>{var 
r=e&&e.__esModule?()=>e.default:()=>e;return 
x.d(r,{a:r}),r},x.d=(e,r)=>{for(var t in 
r)x.o(r,t)&&!x.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[
 
t]})},x.f={},x.e=e=>Promise.all(Object.keys(x.f).reduce(((r,t)=>(x.f[t](e,r),r)),[])),x.u=e=>e+"."+{240:"fcd24e6ef73eda1e61ba",422:"3ab44960b241aac9f303",444:"13de0fd44849e3f7d780",703:"171f03bb5a1f0cd958d7",944:"eaec77f5cee3f07c3b7f",994:"bc087314bdabeecb0923"}[e]+".js?v="+{240:"fcd24e6ef73eda1e61ba",422:"3ab44960b241aac9f303",444:"13de0fd44849e3f7d780",703:"171f03bb5a1f0cd958d7",944:"eaec77f5cee3f07c3b7f",994:"bc087314bdabeecb0923"}[e],x.g=function(){if("object"==typeof
 globalThis)return globalThis;try{return this||new Function("return 
this")()}catch(e){if("object"==typeof window)return 
window}}(),x.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="@jupyter/docprovider-extension:",x.l=(t,o,n,a)=>{if(e[t])e[t].push(o);else{var
 i,l;if(void 0!==n)for(var 
u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var 
s=u[d];if(s.getAttribute("src")==t||s.getAttribute("data-webpack")==r+n){i=s;break}}i||(l=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=12
 
0,x.nc&&i.setAttribute("nonce",x.nc),i.setAttribute("data-webpack",r+n),i.src=t),e[t]=[o];var
 f=(r,o)=>{i.onerror=i.onload=null,clearTimeout(c);var n=e[t];if(delete 
e[t],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach((e=>e(o))),r)return 
r(o)},c=setTimeout(f.bind(null,void 
0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),l&&document.head.appendChild(i)}},x.r=e=>{"undefined"!=typeof
 
Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{x.S={};var
 e={},r={};x.I=(t,o)=>{o||(o=[]);var 
n=r[t];if(n||(n=r[t]={}),!(o.indexOf(n)>=0)){if(o.push(n),e[t])return 
e[t];x.o(x.S,t)||(x.S[t]={});var 
a=x.S[t],i="@jupyter/docprovider-extension",l=(e,r,t,o)=>{var 
n=a[e]=a[e]||{},l=n[r];(!l||!l.loaded&&(!o!=!l.eager?o:i>l.from))&&(n[r]={get:t,from:i,eager:!!o})},u=[];return"default"===t&&(l("@jupyter/collaborative-drive","4.1.0",(()=>Promise.all([x.e(262),x.e
 
(444)]).then((()=>()=>x(444))))),l("@jupyter/docprovider-extension","4.1.0",(()=>Promise.all([x.e(998),x.e(303),x.e(703)]).then((()=>()=>x(703))))),l("@jupyter/docprovider","4.1.0",(()=>Promise.all([x.e(422),x.e(998),x.e(262),x.e(240)]).then((()=>()=>x(240))))),l("y-websocket","1.5.4",(()=>Promise.all([x.e(422),x.e(994),x.e(206)]).then((()=>()=>x(994)))))),e[t]=u.length?Promise.all(u).then((()=>e[t]=1)):1}}})(),(()=>{var
 e;x.g.importScripts&&(e=x.g.location+"");var 
r=x.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var
 t=r.getElementsByTagName("script");if(t.length)for(var 
o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new 
Error("Automatic publicPath is not supported in this 
browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),x.p=e})(),t=e=>{var
 
r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),o=t[1]?r(t[1]):[];return
 t[2]&&
 
(o.length++,o.push.apply(o,r(t[2]))),t[3]&&(o.push([]),o.push.apply(o,r(t[3]))),o},o=(e,r)=>{e=t(e),r=t(r);for(var
 o=0;;){if(o>=e.length)return o<r.length&&"u"!=(typeof r[o])[0];var 
n=e[o],a=(typeof n)[0];if(o>=r.length)return"u"==a;var i=r[o],l=(typeof 
i)[0];if(a!=l)return"o"==a&&"n"==l||"s"==l||"u"==a;if("o"!=a&&"u"!=a&&n!=i)return
 n<i;o++}},n=e=>{var 
r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var
 
o=1,a=1;a<e.length;a++)o--,t+="u"==(typeof(l=e[a]))[0]?"-":(o>0?".":"")+(o=2,l);return
 t}var i=[];for(a=1;a<e.length;a++){var 
l=e[a];i.push(0===l?"not("+u()+")":1===l?"("+u()+" || "+u()+")":2===l?i.pop()+" 
"+i.pop():n(l))}return u();function u(){return 
i.pop().replace(/^\((.+)\)$/,"$1")}},a=(e,r)=>{if(0 in e){r=t(r);var 
o=e[0],n=o<0;n&&(o=-o-1);for(var i=0,l=1,u=!0;;l++,i++){var 
d,s,f=l<e.length?(typeof 
e[l])[0]:"";if(i>=r.length||"o"==(s=(typeof(d=r[i]))[0]))return!u||("u"==f?l>o&&!n:""==f!=n);if("u"==s){if(!u||"u"!=f)return!
 1}else 
if(u)if(f==s)if(l<=o){if(d!=e[l])return!1}else{if(n?d>e[l]:d<e[l])return!1;d!=e[l]&&(u=!1)}else
 
if("s"!=f&&"n"!=f){if(n||l<=o)return!1;u=!1,l--}else{if(l<=o||s<f!=n)return!1;u=!1}else"s"!=f&&"n"!=f&&(u=!1,l--)}}var
 c=[],p=c.pop.bind(c);for(i=1;i<e.length;i++){var 
v=e[i];c.push(1==v?p()|p():2==v?p()&p():v?a(v,r):!p())}return!!p()},i=(e,r)=>e&&x.o(e,r),l=e=>(e.loaded=1,e.get()),u=e=>Object.keys(e).reduce(((r,t)=>(e[t].eager&&(r[t]=e[t]),r)),{}),d=(e,r,t,n)=>{var
 
i=n?u(e[r]):e[r];return(r=Object.keys(i).reduce(((e,r)=>!a(t,r)||e&&!o(e,r)?e:r),0))&&i[r]},s=(e,r,t)=>{var
 n=t?u(e[r]):e[r];return 
Object.keys(n).reduce(((e,r)=>!e||!n[e].loaded&&o(e,r)?r:e),0)},f=(e,r,t,o)=>"Unsatisfied
 version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" 
(required "+n(o)+")",c=(e,r,t,o,a)=>{var i=e[t];return"No satisfying version 
("+n(o)+")"+(a?" for eager consumption":"")+" of shared module "+t+" found in 
shared scope "+r+".\nAvailable versions: "+Object.keys(i).map((e=>e+" from
  "+i[e].from)).join(", ")},p=e=>{throw new Error(e)},v=e=>{"undefined"!=typeof 
console&&console.warn&&console.warn(e)},b=(e,r,t)=>t?t():((e,r)=>p("Shared 
module "+r+" doesn't exist in shared scope 
"+e))(e,r),y=(h=e=>function(r,t,o,n,a){var i=x.I(r);return 
i&&i.then&&!o?i.then(e.bind(e,r,x.S[r],t,!1,n,a)):e(r,x.S[r],t,o,n,a)})(((e,r,t,o,n,a)=>{if(!i(r,t))return
 b(e,t,a);var u=d(r,t,n,o);return u?l(u):a?a():void 
p(c(r,e,t,n,o))})),m=h(((e,r,t,o,n,u)=>{if(!i(r,t))return b(e,t,u);var 
d=s(r,t,o);return 
a(n,d)||v(f(r,t,d,n)),l(r[t][d])})),g={},j={503:()=>m("default","@jupyterlab/translation",!1,[1,4,4,4]),708:()=>m("default","@jupyterlab/coreutils",!1,[1,6,4,4]),805:()=>m("default","@jupyterlab/apputils",!1,[1,4,5,4]),0:()=>m("default","@jupyter/ydoc",!1,[1,3,0,0,,"a3"]),256:()=>m("default","@lumino/widgets",!1,[1,2,3,1,,"alpha",0]),341:()=>m("default","@jupyterlab/notebook",!1,[1,4,4,4]),395:()=>m("default","@jupyterlab/statusbar",!1,[1,4,4,4]),593:()=>m("default","@jupyter/collaborative
 
-drive",!1,[1,4,1,0],(()=>Promise.all([x.e(262),x.e(444)]).then((()=>()=>x(444))))),679:()=>m("default","@jupyterlab/settingregistry",!1,[1,4,4,4]),681:()=>m("default","@jupyter/docprovider",!1,[1,4,1,0],(()=>Promise.all([x.e(422),x.e(262),x.e(240)]).then((()=>()=>x(240))))),927:()=>m("default","@jupyterlab/fileeditor",!1,[1,4,4,4]),987:()=>m("default","@jupyterlab/logconsole",!1,[1,4,4,4]),262:()=>m("default","@lumino/coreutils",!1,[1,2,0,0]),249:()=>m("default","@jupyterlab/ui-components",!1,[1,4,4,4]),345:()=>m("default","react",!1,[1,18,2,0]),560:()=>y("default","y-websocket",!1,[1,1,3,15],(()=>Promise.all([x.e(994),x.e(206)]).then((()=>()=>x(994))))),602:()=>m("default","@lumino/signaling",!1,[1,2,0,0]),955:()=>m("default","@jupyterlab/services",!1,[1,7,4,4]),206:()=>m("default","yjs",!1,[1,13,5,40])},w={206:[206],240:[249,345,560,602,955],262:[262],303:[0,256,341,395,593,679,681,927,987],998:[503,708,805]},P={},x.f.consumes=(e,r)=>{x.o(w,e)&&w[e].forEach((e=>{if(x.o(g,e))retur
 n r.push(g[e]);if(!P[e]){var t=r=>{g[e]=0,x.m[e]=t=>{delete 
x.c[e],t.exports=r()}};P[e]=!0;var o=r=>{delete g[e],x.m[e]=t=>{throw delete 
x.c[e],r}};try{var 
n=j[e]();n.then?r.push(g[e]=n.then(t).catch(o)):t(n)}catch(e){o(e)}}}))},(()=>{var
 e={552:0};x.f.j=(r,t)=>{var o=x.o(e,r)?e[r]:void 
0;if(0!==o)if(o)t.push(o[2]);else 
if(/^(206|262|303|998)$/.test(r))e[r]=0;else{var n=new 
Promise(((t,n)=>o=e[r]=[t,n]));t.push(o[2]=n);var a=x.p+x.u(r),i=new 
Error;x.l(a,(t=>{if(x.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var 
n=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;i.message="Loading
 chunk "+r+" failed.\n("+n+": 
"+a+")",i.name="ChunkLoadError",i.type=n,i.request=a,o[1](i)}}),"chunk-"+r,r)}};var
 r=(r,t)=>{var o,n,[a,i,l]=t,u=0;if(a.some((r=>0!==e[r]))){for(o in 
i)x.o(i,o)&&(x.m[o]=i[o]);l&&l(x)}for(r&&r(t);u<a.length;u++)n=a[u],x.o(e,n)&&e[n]&&e[n][0](),e[n]=0},t=self.webpackChunk_jupyter_docprovider_extension=self.webpackChunk_jupyter_docprovider_extension||[];t.forEach(r.b
 ind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),x.nc=void 0;var 
E=x(496);(_JUPYTERLAB=void 
0===_JUPYTERLAB?{}:_JUPYTERLAB)["@jupyter/docprovider-extension"]=E})();
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/third-party-licenses.json
 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/third-party-licenses.json
--- 
old/jupyter_docprovider-2.0.2/jupyter_docprovider/labextension/static/third-party-licenses.json
     2020-02-02 01:00:00.000000000 +0100
+++ 
new/jupyter_docprovider-2.1.0/jupyter_docprovider/labextension/static/third-party-licenses.json
     2020-02-02 01:00:00.000000000 +0100
@@ -2,19 +2,19 @@
   "packages": [
     {
       "name": "@jupyter/collaboration",
-      "versionInfo": "4.0.2",
+      "versionInfo": "4.1.0",
       "licenseId": "BSD-3-Clause",
       "extractedText": ""
     },
     {
       "name": "@jupyter/collaborative-drive",
-      "versionInfo": "4.0.2",
+      "versionInfo": "4.1.0",
       "licenseId": "BSD-3-Clause",
       "extractedText": ""
     },
     {
       "name": "@jupyter/docprovider",
-      "versionInfo": "4.0.2",
+      "versionInfo": "4.1.0",
       "licenseId": "BSD-3-Clause",
       "extractedText": ""
     },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/packages/docprovider/package.json 
new/jupyter_docprovider-2.1.0/packages/docprovider/package.json
--- old/jupyter_docprovider-2.0.2/packages/docprovider/package.json     
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-2.1.0/packages/docprovider/package.json     
2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 {
   "name": "@jupyter/docprovider",
-  "version": "4.0.2",
+  "version": "4.1.0",
   "description": "JupyterLab - Document Provider",
   "homepage": "https://github.com/jupyterlab/jupyter-collaboration";,
   "bugs": {
@@ -41,7 +41,7 @@
     "watch": "tsc -b --watch"
   },
   "dependencies": {
-    "@jupyter/collaborative-drive": "^4.0.2",
+    "@jupyter/collaborative-drive": "^4.1.0",
     "@jupyter/ydoc": "^2.1.3 || ^3.0.0",
     "@jupyterlab/apputils": "^4.4.0",
     "@jupyterlab/cells": "^4.4.0",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/packages/docprovider/src/ydrive.ts 
new/jupyter_docprovider-2.1.0/packages/docprovider/src/ydrive.ts
--- old/jupyter_docprovider-2.0.2/packages/docprovider/src/ydrive.ts    
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-2.1.0/packages/docprovider/src/ydrive.ts    
2020-02-02 01:00:00.000000000 +0100
@@ -11,6 +11,7 @@
   ServerConnection,
   User
 } from '@jupyterlab/services';
+import { PromiseDelegate } from '@lumino/coreutils';
 import { ISignal, Signal } from '@lumino/signaling';
 
 import { DocumentChange, ISharedDocument, YDocument } from '@jupyter/ydoc';
@@ -21,10 +22,15 @@
   ISharedModelFactory
 } from '@jupyter/collaborative-drive';
 import { Awareness } from 'y-protocols/awareness';
+import { ISettingRegistry } from '@jupyterlab/settingregistry';
+import * as decoding from 'lib0/decoding';
+import * as encoding from 'lib0/encoding';
 
 const DISABLE_RTC =
   PageConfig.getOption('disableRTC') === 'true' ? true : false;
 
+const RAW_MESSAGE_TYPE = 2;
+
 /**
  * The url for the default drive service.
  */
@@ -42,6 +48,7 @@
     user: User.IManager;
     trans: TranslationBundle;
     globalAwareness: Awareness | null;
+    docmanagerSettings: ISettingRegistry.ISettings | null;
   }
 }
 
@@ -57,6 +64,7 @@
     this._serverSettings = options.serverSettings;
     this.sharedModelFactory = new SharedModelFactory(this._onCreate);
     this._providers = new Map<string, WebSocketProvider>();
+    this._docmanagerSettings = options.docmanagerSettings;
   }
 
   /**
@@ -121,9 +129,60 @@
     if (options.format && options.type) {
       const key = `${options.format}:${options.type}:${localPath}`;
       const provider = this._providers.get(key);
+      const saveId = ++this._saveCounter;
 
       if (provider) {
-        // Save is done from the backend
+        const ws = provider.wsProvider?.ws;
+        if (ws) {
+          const delegate = new PromiseDelegate<void>();
+          const handler = (event: MessageEvent) => {
+            const data = new Uint8Array(event.data);
+            const decoder = decoding.createDecoder(data);
+            try {
+              const messageType = decoding.readVarUint(decoder);
+              if (messageType !== RAW_MESSAGE_TYPE) {
+                return;
+              }
+            } catch {
+              return;
+            }
+            const rawReply = decoding.readVarString(decoder);
+            let reply: {
+              type: 'save';
+              responseTo: number;
+              status: 'success' | 'skipped' | 'failed';
+            } | null = null;
+            try {
+              reply = JSON.parse(rawReply);
+            } catch (e) {
+              console.debug('The raw reply received was not a JSON reply');
+            }
+            if (
+              reply &&
+              reply['type'] === 'save' &&
+              reply['responseTo'] === saveId
+            ) {
+              if (reply.status === 'success') {
+                delegate.resolve();
+              } else if (reply.status === 'failed') {
+                delegate.reject('Saving failed');
+              } else if (reply.status === 'skipped') {
+                delegate.reject('Saving already in progress');
+              } else {
+                delegate.reject('Unrecognised save reply status');
+              }
+            }
+          };
+          ws.addEventListener('message', handler);
+          const encoder = encoding.createEncoder();
+          encoding.writeVarUint(encoder, RAW_MESSAGE_TYPE);
+          encoding.writeVarString(encoder, 'save');
+          encoding.writeVarUint(encoder, saveId);
+          const saveMessage = encoding.toUint8Array(encoder);
+          ws.send(saveMessage);
+          await delegate.promise;
+          ws.removeEventListener('message', handler);
+        }
         const fetchOptions: Contents.IFetchOptions = {
           type: options.type,
           format: options.format,
@@ -150,6 +209,19 @@
     if (typeof options.format !== 'string') {
       return;
     }
+    // Set initial autosave value, used to determine backend autosave 
(default: true)
+    const autosave =
+      (this._docmanagerSettings?.composite?.['autosave'] as boolean) ?? true;
+
+    sharedModel.awareness.setLocalStateField('autosave', autosave);
+
+    // Watch for changes in settings
+    this._docmanagerSettings?.changed.connect(() => {
+      const newAutosave =
+        (this._docmanagerSettings?.composite?.['autosave'] as boolean) ?? true;
+      sharedModel.awareness.setLocalStateField('autosave', newAutosave);
+    });
+
     try {
       const provider = new WebSocketProvider({
         url: URLExt.join(this._serverSettings.wsUrl, DOCUMENT_PROVIDER_URL),
@@ -230,11 +302,13 @@
   };
 
   private _user: User.IManager;
+  private _saveCounter = 0;
   private _trans: TranslationBundle;
   private _globalAwareness: Awareness | null;
   private _providers: Map<string, WebSocketProvider>;
   private _ydriveFileChanged = new Signal<this, Contents.IChangedArgs>(this);
   private _serverSettings: ServerConnection.ISettings;
+  private _docmanagerSettings: ISettingRegistry.ISettings | null;
 }
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/packages/docprovider-extension/package.json 
new/jupyter_docprovider-2.1.0/packages/docprovider-extension/package.json
--- old/jupyter_docprovider-2.0.2/packages/docprovider-extension/package.json   
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyter_docprovider-2.1.0/packages/docprovider-extension/package.json   
2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
 {
   "name": "@jupyter/docprovider-extension",
-  "version": "4.0.2",
+  "version": "4.1.0",
   "description": "JupyterLab - Collaborative Shared Models",
   "keywords": [
     "jupyter",
@@ -53,8 +53,8 @@
     "watch:labextension": "jupyter labextension watch ."
   },
   "dependencies": {
-    "@jupyter/collaborative-drive": "^4.0.2",
-    "@jupyter/docprovider": "^4.0.2",
+    "@jupyter/collaborative-drive": "^4.1.0",
+    "@jupyter/docprovider": "^4.1.0",
     "@jupyter/ydoc": "^2.1.3 || ^3.0.0",
     "@jupyterlab/application": "^4.4.0",
     "@jupyterlab/apputils": "^4.4.0",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter_docprovider-2.0.2/packages/docprovider-extension/src/filebrowser.ts 
new/jupyter_docprovider-2.1.0/packages/docprovider-extension/src/filebrowser.ts
--- 
old/jupyter_docprovider-2.0.2/packages/docprovider-extension/src/filebrowser.ts 
    2020-02-02 01:00:00.000000000 +0100
+++ 
new/jupyter_docprovider-2.1.0/packages/docprovider-extension/src/filebrowser.ts 
    2020-02-02 01:00:00.000000000 +0100
@@ -55,12 +55,13 @@
     description: 'The RTC content provider',
     provides: ICollaborativeContentProvider,
     requires: [ITranslator],
-    optional: [IGlobalAwareness],
-    activate: (
+    optional: [IGlobalAwareness, ISettingRegistry],
+    activate: async (
       app: JupyterFrontEnd,
       translator: ITranslator,
-      globalAwareness: Awareness | null
-    ): ICollaborativeContentProvider => {
+      globalAwareness: Awareness | null,
+      settingRegistry: ISettingRegistry | null
+    ): Promise<ICollaborativeContentProvider> => {
       const trans = translator.load('jupyter_collaboration');
       const defaultDrive = (app.serviceManager.contents as ContentsManager)
         .defaultDrive;
@@ -75,12 +76,17 @@
           'Cannot initialize content provider: no content provider registry.'
         );
       }
+      const docmanagerSettings = settingRegistry
+        ? await settingRegistry.load('@jupyterlab/docmanager-extension:plugin')
+        : null;
+
       const rtcContentProvider = new RtcContentProvider({
         apiEndpoint: '/api/contents',
         serverSettings: defaultDrive.serverSettings,
         user: app.serviceManager.user,
         trans,
-        globalAwareness
+        globalAwareness,
+        docmanagerSettings
       });
       registry.register('rtc', rtcContentProvider);
       return rtcContentProvider;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter_docprovider-2.0.2/pyproject.toml 
new/jupyter_docprovider-2.1.0/pyproject.toml
--- old/jupyter_docprovider-2.0.2/pyproject.toml        2020-02-02 
01:00:00.000000000 +0100
+++ new/jupyter_docprovider-2.1.0/pyproject.toml        2020-02-02 
01:00:00.000000000 +0100
@@ -36,6 +36,9 @@
 [project.urls]
 Documentation = "https://jupyterlab-realtime-collaboration.readthedocs.io/";
 Repository = "https://github.com/jupyterlab/jupyter-collaboration";
+Changelog = 
"https://jupyterlab-realtime-collaboration.readthedocs.io/en/latest/changelog.html";
+Source = 
"https://github.com/jupyterlab/jupyter-collaboration/tree/main/packages/docprovider-extension";
+Issues = 
"https://github.com/jupyterlab/jupyter-collaboration/issues/new/choose";
 
 [tool.hatch.version]
 path = "jupyter_docprovider/_version.py"

Reply via email to