MCP-CMS: Difference between revisions

From Cibernética Americana
Jump to navigationJump to search
No edit summary
No edit summary
 
Line 15: Line 15:
   font-weight: 600;
   font-weight: 600;
   position: relative;
   position: relative;
   top: -50px;
   top: -24px;
}
@font-face {
  font-family: Papyrus;
  src: url('https://meansofproduction.biz/pub/papyrus.ttf');
}
}


Line 21: Line 25:
   background-color: #FFFFFFF;
   background-color: #FFFFFFF;
}
}
.content {
.content {
   padding: 0 18px;
   padding: 0 18px;
Line 33: Line 36:
<div style="text-align: right;">
<div style="text-align: right;">
<h1 style="color: black;">mcpcms &nbsp; </h1>
<h1 style="color: black;">mcpcms &nbsp; </h1>
<h5 style="position: relative;top: 0px;color: black;">master control program &nbsp; <br>CMS MCS shell &nbsp; </h5>
<h5 style="position: relative;top: 0px;color: black;"><span style=background-color:yellow;"> &nbsp; conversational monitoring system &nbsp; </span><br>DCP Shell &nbsp; </h5>
</div>
</div>
<div style="position: relative;top: -75px;">
<div style="position:relative;top:-60px;"> &nbsp; <a  style="position: relative;top: -15px;" title="Home Profile"
&nbsp; <a  style="position: relative;top: -15px;" title="Home Profile"
             href=https://sameboat.network/user><img src=https://meansofproduction.biz/images/corbusierDuHaut.jpg width=100></a>
             href=https://sameboat.live/user><img src=https://meansofproduction.biz/images/corbusierDuHaut.jpg width=100></a>
           <span style="position: relative; top: -40px;"><a style="color: lime;" title="About the MCP reinvention"
           <span style="position: relative; top: -40px;"> &nbsp;<tt style="background-color: black; color: yellow; font-weight: bold;"> conversational monitor system &nbsp; </tt><br><br>
              href=/eg/index.php/MCP> <tt style="background-color: black; color: yellow; font-weight: bold;"> &nbsp; minimalist clustering paradigm &nbsp; </tt></a><br><br>
             <a style="position: relative; left: 130px; top: -10px;" target=_blank href=https://dcms.ai-integration.biz><b>launch</b></a>
             <a title="mcpcms cli or webssh login if not SAR authenticated"
            style="height:50px;background-color:purple;color:white;position: relative; left: 130px; top: -20px;" href=/eg/index.php/MCPCELL><b> &nbsp; launch &nbsp;</b></a>
            <span style="position: relative;left:130px;top: -20px;">&mdash; an MCP cell &sup1;  provisioned by the <b>D</b>omain <b>C</b>ontrol <b>P</b>rogram per your current context. &sup2;</span>
           </span>
           </span>
        <div style="position: relative; top: -50px;">
</div>
        <blockquote  style="width: 60%;font-weight: bold;" >
<div style="z-index:150;position:relative;top:-90px;right:60px;">
            The launch link leads to a  <a title="About the MCP reinvention" href=https://eg.meansofproduction.biz/eg/index.php/MCP>MCP</a>&sup1; shell
<img align=right width=300px src="https://meansofproduction.biz/images/b6700nMCP2.png">
            provisioned from core domain space or the AWS, linode, or LAN/DIY inventory &sup2; configured in the KEE Dashboard Control Block in your home profile. A MCS is a message control system operating under a MCP. ABORTED, ACTIVE, INUSE, COMPLETEDOK, or STOPPED are the possible job completion codes &sup3; for the launch attempt from the
<span style="float:right;position:relative;top:270px;left:310px;font-size:10px;">Dual 6700, c. '72, binding says MK 0.0, so 2.0.0 vs. 21 in 2023.<br>
            DS <a href=https://sameboat.live/stationHistory>station</a> at which you're currently authenticated.
<audio style="float:right;height:14px;" title="'Woody'n You' Ahmad Jamal 1958" controls source src="https://meansofproduction.biz/pub/WoodyNYou.mp3"
 
type="audio/mpeg"> This page has an audio but your browser does not support the audio element.</audio><br>
<blockquote style="width: 80%;font-weight: bold;">
<span style="float:right;font-size:8px;color:purple;">This page has an audio track, mouseover for title/credit.</span>
          Configuring a device control block for it in your profile dashboard enables system port management, or you can manually manage ssh as usual (e.g using ssh-copy-id). <br> <br>
<br>
          Launch states ABORTED, COMPLETED, OR STOPPED, imply receipt of diagnostic info by the currently selected means of notification in your home profile (icon above, left of launch status).
</span>
          ABORTED is the immediate result if you are not authenticated.<br><br>
</div>
          A running <a href=https://eg.meansofproduction.biz/index.php/WFL/DCP_SPO>SPO</a> counts as a against account launch limits.<br>
<div style="position: relative; top: -100px;">
         <hr width="50%" style="float: left;">
<blockquote style="position: relative;top: 0px;"> Semantic Roadmap
        </blockquote><br></blockquote>      
        <tt>
         <blockquote style="position: relative;top: -30px;">
        <ul>
         <span style="position: relative;top: -8px;font-size: 10px;">&sup1;<i>Core space resources are only dynamically allocated for AKPERSONs.</i><br>
        <li>0.9.0 &nbsp;075-12-11&nbsp; Freeze 1.x Era Timeline. 1<sup>st</sup> stable tl;dr.<sup>&dagger;</sup> </li>
         &sup2; AWS, Linode, or your Gb LAN. MCP nodes must have sub-millisecond ping. Set cloud vendor credentials in your commons dashboard or run the MCP leader in your LAN.
        <li>0.9.1 &nbsp;07y-mm-dd&nbsp; BaselineOfBOOTKEE, doorbell migrated to JSX/HSX cells.</li>
        <li>1.0.0 &nbsp;07y-mm-dd&nbsp; DCP provisions FRED, C-六/SB, CLFE, and DCMS cells.</li>
        <li>1.1.0 &nbsp;07y-mm-dd&nbsp; <a href=https://redvant.ai-integration.biz>DSAP appgen baseline</a>.</li>
        <li>1.1.2 &nbsp;07y-mm-dd&nbsp; FRED fully automated.</li>
        <li>1.2.0 &nbsp;07y-mm-dd&nbsp; </html>[[WFL/DCP SPO| BaselineOfDCP]]<html> (DGUI/SPO). </li>
        <li>1.2.1 &nbsp;07y-mm-dd&nbsp; Transparent Ledger (Books IX), DCP agency live at perimeter.</li>
        <li>2.0.0 &nbsp;07y-mm-dd&nbsp; BaselineOfWFL. </li>
        <li>2.1.0 &nbsp;07y-mm-dd&nbsp; &int; x &Dopf; &part; DS, BaselineOfKEE (sans boot) .</li>
        <li>2.2.0 &nbsp;07y-mm-dd&nbsp; 1<sup>st</sup> WFL Workframe. </li>
        <li>3.0.0 &nbsp;07y-mm-dd&nbsp; &int; VM (CMS, MVS) / DCP &part; DS mainframe redux.</li>
        <li>3.1.0 &nbsp;07y-mm-dd&nbsp; Mature DDD/KEE product.</li>
         </ul></tt></blockquote>
<center>
DCP/MCP &mdash; an OS platform with an aesthetic in homage to mainframes.
</center>  
         <blockquote style="position: relative;">
         <span style="z-index: 100;position: relative;font-size: 10px;">&sup1; Resource quotas are entitlement based.</i><br>
         &sup2; Use a supported cloud provider by supplying credentials in control blocks in your profile or system inventory.<br>
         </span>
         </span>
         </blockquote>
         </blockquote>
    <button type="button" class="collapsible"><div id="tldrDet">details</div></button>  
<blockquote style="position:relative;left:-5px;top:-10px;z-index:200;font-size:8px;">&dagger;  For security and flexibility reasons and to the extent feasible, DCP internals aren't divulged, MCP however is source accessible by DevOps users. This page and <a href="https://devops1.sameboat.network/About_DCP">About DCP</a>, which is within the core perimeter, are top level specifying stories.</blockquote>
<div class="content">
<button title="show/hide the story details" type="button" class="collapsible"><div id="tldrDet">tl;dr</div></button>  
  <blockquote>
<div class="content">
<span style="position: relative;top:-15px;">The namestyle is a homage to <a href=https://en.wikipedia.org/wiki/Burroughs_MCP>MCP</a> and <a href=https://en.wikipedia.org/wiki/Conversational_Monitor_System>VM/CMS</a>.</span><br>
<blockquote style="width: 70%;font-weight: bold;" >
        While initially only linux is supported, ultimately heterogeneous and in particular emulated mainframe kernel OS support is intended. A command and edit (CANDE) MCS wraps the ssh protocol.<br>
<center>DCP/MCP presents the MCPCMS shell and the "</html>[[:en:CANDE|CANDE]]<html>" MCS&sup3; to whitelisted <a style="color: lime;"  href=https://commons.sameboat.network/stationHistory>stations</a> upon connect.<br>AKPERSONs (see <a href=/eg/index.php?title=AKPERSON>Entitlements</a>) can connect with the link above or in a running <a style="color: lime;" href=https://eg.meansofproduction.biz/eg/index.php/WFL/DCP_SPO>SPO</a> image.
        Operators use a CANDE MCS for MCP command line ops which can use:
</center></blockquote>
        <ul>
<blockquote  style="width: 80%;>
        <li><p style="width: 60%;">mcpcms, the default, a custom zsh.</p> </li>
In a tx-authenticated user session, should result in a mcpcms <a href=https://devops1.sameboat.network/roles>session role</a> sensitive cell prompt. In the wild, presents a form with  parameters for a manual connect. SPO AX msgs to your MCP ODT or SPO message queue may be configured to go the cell.
        and any of <br><br>
<hr width="50%" style="float: left;">
        <li><b>shcl</b> (common lisp nature)</li>
</blockquote>  
        <li><b>shhs</b> (HsShellScript, haskell nature)</li>
<span style="font-size: 10px;position:relative;left:150px;">&sup3; MCS: a message control subsystem of a MCP.</span>
        <li><b>upsh</b> (prolog nature)</li>
<center class=plainlinks>
        </ul>
  <a style="background-color:aliceblue;" href=https://meansofproduction.biz/pub/MCP15SystemCommands.pdf> MCP 15 System Commands </a><br>
        <blockquote> Only mcpcms need be set in /etc/shells, the others are available as the listed commands in a mcpcms session. The sources for the versions forked for MCP and how they operate there as opposed to their original authors intents are in my github repos. CANDE may be local or MCP or DCP depending on the operators context.<br><br> GHC is the haskell implementation. Lisp and prolog implementations are variable, and multiple can be combined.
  <a style="background-color:aliceblue;" href=https://en.wikipedia.org/wiki/User:Lycurgus/MoCA#Burroughs_CANDE> MCP 3.3 CANDE Reference Card</a><br>
        </blockquote>
  <a style="background-color:aliceblue;" href=https://meansofproduction.biz/pub/CANDE-MCP-14.pdf> MCP 14 CANDE Reference</a>
        The mcpcms level is always present, the others are outer shells adapted for the domain space knowledge engineering context.<br>
</center>
        The KEE uses the three HOLs&sup2; listed but the mcpcms level is appropriate for regular command line ops in MCP.<br>
<img title="B6700 with memory which was wire wrapped creating for me a sense of sail rigging when the skins were off."
        Although diverged for DS, an effort will be made to track changes in still vital original lang specific shells.
src=https://meansofproduction.biz/images/1975-Burroughs-6700-Computer.jpg width=200 align=right style="position:relative;top:-160px;right:75px;">
     </blockquote>
<blockquote>
    <blockquote>
<b>ODT MCS</b>
     Assuming the target is configured and ready, invoke <b>mcpcms</b> with:
  <blockquote>
    <pre><tt> mcpcms  &lt;station-agent&gt;
    MCP-CMS connects via a MCS which is usually the CANDE MCS although more generally any MCS with the ODT property can connect for an Operator Display Terminal session with MCP/DCP.
    Upon <b>mcpcms</b> connect, like the lang specific subshells in the next &sect;, an additional command <b>cande</b> can be used which will process the MCP-CMS system commands
    analogous to those in the MCP 15 document above.  
  <br><br>
  In Burroughs MCP, the CANDE MCS was used ubiquitously. The ODTs had a full screen editor which just fed lines to CANDE. Commands are implemented per need and some such
as the text edit functions likely never will be in <b>mcpcms cande</b>. CANDE is used in current Unisys MCP but neither it nor the MCS have their former prominence
especially when the OS runs as a Windows service.
  </blockquote>
  <b>mcpcms</b>
  <blockquote>
    The CMS<sup>*</sup> in MCP-CMS is inspired by VM/CMS and the MCP system command level of the CANDE MCS and the ODT session corresponds to the VM CMS command level.
    A modified <b>zsh</b> serves as the analog of Burroughs CANDE as one of several shells invocable in an ODT.
    Upon successful connect, the launch link above results in an ODT session with this shell in the browser having supplied a parameter 'cell' to the connect to invoke <b>cande</b>.
    Aside from adaptations for the MCP machine model, it is just zsh however and the following alternates can be specified and are equivalent to <b>cande &lt;subshell&gt;</b> by using the <i>mcpcms command</i> form field lang specific values:
     <ul><li><b>shcl</b> </li><li><b>hsh</b></li><li><b>upsh</b></li></ul>
     for lisp, haskell, and prolog respectively. MCP embeds sbcl, ghc, and swi prolog as libs and code in these shells can interact with those parts of DCP/MCP directly. In the BootKEE epoch, before DCP WFL is generally available, DCP is programmed as jobs via these shells .
  <b>mcpcms</b> can be accessed from various connect points such as the launch link above in an AKPERSONs session.


                where           
<b>mcpcms</b> scope may vary from a single MCP cell or node to a whole DCP/DS context. Cloud compute resources are dynamically provisioned using either system
         
inventory or user supplied provisioning credentials with supported cloud vendors. Later MCP for Mac and Windows will allow cells there and  the last free version of VM/CMS under
                &lt;station-agent&gt;  ::= ipV6Address:port | ipV4Address:port | FQDSAgentName
    Hercules will ultimately run as an autonomous MCP subject, with other possible mainframe emulations, particularly Unisys should their licensing permit.<br>
                FQDSAgentName  ::= &lt;agentId&gt;@&lt;domain&gt;[:&lt;port&gt;]
*<span style="position:relative;font-size:10px;top:5px;"> &nbsp; Not to be confused with DCMS, the domains content management system.</span>
  </blockquote>
<b>DCP WFL</b>
<blockquote>
  is eponymous upon the <a style="background-color:aliceblue;"  href=https://meansofproduction.biz/pub/mcpWFL.pdf>Burroughs WFL</a> with some preserved semantics and aesthetics but
  only superficially similar  &mdash;
<ul>
  <li>The Job is not the top level construct. The Job or App is the closest construct to heritage WFL in my WFL but with ops on my MCP rather than the Burroughs/Unisys one and expansion beyond
  batch ops.<li>
<li>In my WFL, Namespace, Database, and then App/Job is the scope hierarchy. Namespace and Database are elements of a domain space and may span multiple MCP instances but Jobs are limited to
  the nodes and cells of a single MCP. Essentially there is a single whole space level job which the DCP implements.</li>
</ul>
  In Burroughs systems, WFL didn have as high a profile as IBM JCL, the main punch of the overall system, in an industry installation, would be its system of  transactions and these ran from
  a database which the Burroughs architecture delivered seamlessly without WFL to terminals as a special db stack. DCP WFL has these design goals
  <ol>
    <li>provide an clear/auditable text for DCP operations as a complement to</li>
    <li>the MCP which provides the real machine model and</li>
    <li>with code blocks containing text of other supported langs</li>
  </ol>
  DCP WFL is developed in a bottom up manner from this statement of design intent without any spec other than the heritage systems and the DCP/MCP concept. In the initial releases
  there will be no documentation outside of story text, and the top level pamphlets. Code cannot move into WFL blocks from its free form before the 1.2.0 milestone. In standard Algol convention
    &#8470; 3 above is implemented by these block variants with the same delimitation by
  BEGIN and END bounded blocks:
    <center>
      <div style="font-size:10px;position:relative;left:0px;"><b>MCP Block Types</b></div>
    <table border=2 style="color:black;background-color:lemonchiffon;width:600px;">
    <tr style="background-color:black;color:white;font-size:10px;"><td width=125 align=center >WFL Declarator</td><td align=center width=90>Language</td><td align=center
        width=180>Intrinsic&sup1;</td><td align=center width=205>Purpose/Role</td></tr>
   
    <tr style="background-color:white;font-size:10px;"><td colspan=4 align=right>Machine Facing &nbsp; &nbsp; </td></tr>
    <tr><td>None&sup2;</td><td align=center>MINT 3</td><td align=center>Yes</td><td><font size=1>MTRANS WFL Compiler</font></td></tr>
    <tr><td><i>N/A</i></td><td align=center>Smalltalk&sup2;</td><td align=center>No</td><td>GUI and Object Model</td></tr>
    <tr><td>SUBROUTINE</td><td align=center><a href=https://www.gnu.org/software/marst/><b>A60</b></a></td><td align=center>Yes</td><td>JCL Procedures</td></tr>
    <tr><td>UNIT</td><td align=center><a style="background-color:aliceblue;"  href=https://jmvdveer.home.xs4all.nl/en.algol-68-genie.html><b>A68</b></a>
        </td><td align=center>Yes</td><td>MCP Libraries</td></tr>


                and the port is displayed in a DS control block in the user's DCMS account profile or provided dynamically by automation in an authenticated session.                        
<tr style="background-color:white;font-size:10px;"><td colspan=4 align=right>Enterprise Facing &nbsp; &nbsp;</td></tr>
    </tt></pre>  
    <tr><td>CL</td><td align=center>Common Lisp</td><td align=center>Yes (sbcl-librarian)</td><td>Lateral R</td></tr>
    Semantics
    <tr><td>HS</td><td align=center>Haskell </td><td align=center>Yes (ghc-pkg)</td><td><font size=1>Enterprise Applications</font></td></tr>
    <blockquote>
    <tr><td align=left>JOB</td><td align=center>WFL </td><td align=center>Yes</td><td> JCL</td></tr>
      The port cannot be 22. The semantics are different depending on whether addr:port or agentId forms are used.<br><br>
    <tr><td>LP</td><td align=center>LogTalk</td><td align=center>No</td><td>Lateral L</td></tr>
     
    <tr><td>PL</td><td align=center>Prolog</td><td align=center>Yes (MQI/pengine)</td><td>Plain Prolog</td></tr>
      The bare address:port forms presume the user's client OS account name is a valid agentId and DCMS username. In this case the address is a pre allocated MCP element and ssh could be used instead.<br>
    </table><font size=1>&sup1;Intrinsic means directly compiled/interpreted by MCP and doesn't require COMPILE or BIND to produce a RUN eligible object title.<br>&sup2;Mint code is monolithic with security by obscurity for some application, database, and namespace elements.</font> &nbsp;&sup3;<font size=1>headless squeak using my cog build for Sista and multi-threading .</font><br>
 
    </center>
      The agentId form assigns existing or allocates a new MCP element from context implicit in the users account. In this case the CANDE MCS is used.
  Enterprise facing means oriented to programming users of the system, Machine facing means me, for my motivation, satisfaction and design intent of real machine independence of the core super-OS as much as in the nominal sense.  
 
  Users can create their own semantic spaces by using WFL and the standard modern high level lang blocks while the MINT and Algol elements are my private programming of DCP/MCP not meant
      node station.    
  for user consumption but visible to satisfy transparency requirements.
    </blockquote>
  <div style="width:60%;text-align:justify;">
    </blockquote>
  Procedural WFL is translated from source text to A60/C, then compiled and linked to the Barton machine, or directly interpreted by genie or MINT. Non-WFL blocks are compiled and bound
    </div>
and used in the concrete context of the DS which they form as extensions of the WFL/B machine.<br><br>
 
'JCL' means things defined by an M-TRAN phrase grammar which can contain pure MINT blocks but general end use procedures are meant to be in Algol dialects. I dont mean it to be an acronym being both more general than job control and serving as the macro assembler of MCP. MCP thus maintains a distinction between what it and the host machine directly interpret.
        <blockquote style="position: relative;top: -60px;">Roadmap
<br><br>
        <ul>
DCP/MCP are embodied in a central </html>[[:en:Simula|simulacrum]]<html> containing an object model for them. SPO a system supervisor GUI, and LibraryBrowser which maps code trees to MCP object files and maintains MCP file system attributes, run as a Smalltalk vm/image in the regular MCP job mix. LibraryBrowser/SPO are the things an end user
        <li>1.0.0 PoC: working DCP  provisioning of composed MCP images and mcpcms hosts via the DCMS&gt; C-<a href=https://sameboat.live/DCMS>backend</a>.</li>
works with to perform dev/ops with the former constituting a "WFL workframe",  the pair functioning as  the IDE and GUI of DCP/MCP (DGUI). Much of it can run headless, the form which the actual DCP can dynamically change by altering its methods, and the one used by non-KEE users. Separately, an available FOSS visual programming pkg is being adapted for what I am calling DS G based on my experience with LabView/G, and which will be developed before WFL but with intent of later being a fa&ccedil;ade for it in concert with LibraryBrowser.
        <li>1.1.0 First working SPO and WFL development server. </li>
   </div>
        <li>1.2.0 Consolidation and productization release.</li>
</blockquote><br><br>
        <li>2.0.0 Mature DDD/KEE product.</li>
  <span style="position:relative;top:-30px;font-size:12px;">The namestyles are in homage to
        </ul>
    <a href=https://en.wikipedia.org/wiki/Burroughs_MCP>MCP</a> and <a href=https://en.wikipedia.org/wiki/Conversational_Monitor_System>VM/CMS</a> mainframe OSes, both still in use
<hr>
    and Unisys and VM/CMS are trademarks of the IBM and Unisys corporations, respectively. DS MCP as an actually delivered OS is composed of cells (containers) and OS images (nodes)
&sup2; <span style="font-size: 10px;">High Order Language</span>
    running system services and jobs with original code in the KEE langs supported by lower level apps runnable on a nodes kernel OS.
&sup3; <span style="font-size: 10px;">The states COMPLETED, COMPILEDOK and SCHEDULED are invalid for the launch WFL job, but its task steps may have COMPLETED codes, usable in other interfaces.</span>
  </span>
         </blockquote>
<div style="float:right;text-align:center;font-size:12px;position:relative;left:-125px;top:-240px;width:400px;font-family:Papyrus;" >
  <a href=https://en.wikipedia.org/wiki/Abydos_King_List><img align=right width=400px src=https://meansofproduction.biz/images/kings_list.012.jpg></a>
  <br>The Abydos Kings List  &nbsp; c. -400 &nbsp; to &nbsp; 1400 &nbsp; 公元, &nbsp; Menes &mdash; Seti I
</div>
</blockquote>
</div></div></div></div>
<hr style="position:relative;left:20px;" width=80%>
<img width=150 align=right src=https://juan.ai-integration.biz/xasppage/xasppage.pl?XASPPAGE_STYLE=0&P=MCPCMS>
<div style="position:relative;top:-10px;"><div id="10CC" style="position: relative;text-align:center;height:150px;">
<video id="10C" style="position: relative;top:-10px;" title="Pharoah bids Hebrews glean own straw with same count of bricks, presumably for Pi Rameses. The court snickers, Nefertari and Aaron look to Moise who stalks out." poster="http://meansofproduction.biz/images/TIVlarge.png" controls>
        <source src="https://meansofproduction.biz/pub/tldrMCPWFL.webm" type='video/webm'; />
         <p>No content matching HTML5 video setup!</p>
  </video>
</div></div>
</div></div>
<script>
<script>
var coll = document.getElementsByClassName("collapsible");
var coll     = document.getElementsByClassName("collapsible");
var bText = document.getElementById("tldrDet");
var bText     = document.getElementById("tldrDet");
var video    = document.getElementById("10C");
var vd        = document.getElementById("10CC");
var isPlaying = false;
var i;
var i;


Line 126: Line 212:
     if (content.style.display === "block") {
     if (content.style.display === "block") {
       content.style.display = "none";
       content.style.display = "none";
       bText.innerHTML = "details";
       bText.innerHTML = "tl:dr";
     } else {
     } else {
       content.style.display = "block";
       content.style.display = "block";
       bText.innerHTML = "tl;dr";
       bText.innerHTML = "collapse";
      vd.style.display = "none";
     }
     }
   });
   });
};
video.addEventListener("ended", function() {
      vd.style.display = "none";
});
video.addEventListener("play", function() {
      isPlaying    = true;
      vd.height    = 800;
      vd.style.top  = "-400px";
      vd.style.left = "-400px";
});
function kill10C() {
if (isPlaying) return;
vd.style.display = "none";
}
}
<!-- window.timeoutID = setTimeout(kill10C,7000); -->
var s = video.style;
s.opacity = 1;
(function fade(){
if (!isPlaying) {(s.opacity-=.025)<0?s.display="none":setTimeout(fade,150)}})();
</script>
</script>
</div>
</html>
</html>