1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
|
<!DOCTYPE html>
<html class="client-nojs" lang="en" dir="ltr">
<head>
<meta charset="UTF-8"/>
<title>LIME Is Mediated Emulation - Open-IOV</title>
<script>document.documentElement.className="client-js";RLCONF={"wgBreakFrames":!1,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"9ad8c169f123bd25676c2f07","wgCSPNonce":!1,"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":!1,"wgNamespaceNumber":0,"wgPageName":"LIME_Is_Mediated_Emulation","wgTitle":"LIME Is Mediated Emulation","wgCurRevisionId":786,"wgRevisionId":786,"wgArticleId":89,"wgIsArticle":!0,"wgIsRedirect":!1,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"LIME_Is_Mediated_Emulation","wgRelevantArticleId":89,"wgIsProbablyEditable":!1,"wgRelevantPageIsProbablyEditable":!1,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgVisualEditor":{"pageLanguageCode":"en",
"pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgEditSubmitButtonLabelPublish":!1};RLSTATE={"site.styles":"ready","noscript":"ready","user.styles":"ready","user":"ready","user.options":"loading","skins.vector.styles.legacy":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready"};RLPAGEMODULES=["site","mediawiki.page.ready","mediawiki.toc","skins.vector.legacy.js","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader"];</script>
<script>(RLQ=window.RLQ||[]).push(function(){mw.loader.implement("user.options@1hzgi",function($,jQuery,require,module){/*@nomin*/mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"});
});});</script>
<link rel="stylesheet" href="../load.php%3Flang=en&modules=ext.visualEditor.desktopArticleTarget.noscript|skins.vector.styles.legacy&only=styles&skin=vector.css"/>
<script async="" src="../load.php%3Flang=en&modules=startup&only=scripts&raw=1&skin=vector"></script>
<meta name="generator" content="MediaWiki 1.37.1"/>
<meta name="format-detection" content="telephone=no"/>
<link rel="shortcut icon" href="../favicon.ico.html"/>
<link rel="search" type="application/opensearchdescription+xml" href="../opensearch_desc.php" title="Open-IOV (en)"/>
<link rel="EditURI" type="application/rsd+xml" href="../api.php%3Faction=rsd"/>
<link rel="alternate" type="application/atom+xml" title="Open-IOV Atom feed" href="../index.php%3Ftitle=Special:RecentChanges&feed=atom"/>
</head>
<body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-LIME_Is_Mediated_Emulation rootpage-LIME_Is_Mediated_Emulation skin-vector action-view skin-vector-legacy"><div id="mw-page-base" class="noprint"></div>
<div id="mw-head-base" class="noprint"></div>
<div id="content" class="mw-body" role="main">
<a id="top"></a>
<div id="siteNotice"></div>
<div class="mw-indicators">
</div>
<h1 id="firstHeading" class="firstHeading" >LIME Is Mediated Emulation</h1>
<div id="bodyContent" class="vector-body">
<div id="siteSub" class="noprint">From Open-IOV</div>
<div id="contentSub"></div>
<div id="contentSub2"></div>
<div id="jump-to-nav"></div>
<a class="mw-jump-link" href="LIME_Is_Mediated_Emulation.html#mw-head">Jump to navigation</a>
<a class="mw-jump-link" href="LIME_Is_Mediated_Emulation.html#searchInput">Jump to search</a>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-parser-output"><p>LIME Is Mediated Emulation is an in-development feature in <a rel="nofollow" class="external text" href="https://open-iov.org/index.php/"></a> which enables the execution of full performance <a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows/win32/winprog64/programming-guide-for-64-bit-windows">Win64</a> binaries with full compatibility for all current and future software making use of the Windows ABI. An initial demo of this technology can be viewed <a rel="nofollow" class="external text" href="https://streamable.com/ps3wdg">here</a>.
</p>
<div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2 id="mw-toc-heading">Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="LIME_Is_Mediated_Emulation.html#Design_Goals"><span class="tocnumber">1</span> <span class="toctext">Design Goals</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="LIME_Is_Mediated_Emulation.html#Use-Cases"><span class="tocnumber">2</span> <span class="toctext">Use-Cases</span></a>
<ul>
<li class="toclevel-2 tocsection-3"><a href="LIME_Is_Mediated_Emulation.html#Win64_Subsystem"><span class="tocnumber">2.1</span> <span class="toctext">Win64 Subsystem</span></a></li>
<li class="toclevel-2 tocsection-4"><a href="LIME_Is_Mediated_Emulation.html#Win64_Orchestration"><span class="tocnumber">2.2</span> <span class="toctext">Win64 Orchestration</span></a></li>
<li class="toclevel-2 tocsection-5"><a href="LIME_Is_Mediated_Emulation.html#Compatibility_With_Other_ABIs"><span class="tocnumber">2.3</span> <span class="toctext">Compatibility With Other ABIs</span></a></li>
<li class="toclevel-2 tocsection-6"><a href="LIME_Is_Mediated_Emulation.html#Quality_of_Service_(QoS)"><span class="tocnumber">2.4</span> <span class="toctext">Quality of Service (QoS)</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-7"><a href="LIME_Is_Mediated_Emulation.html#Development_Status"><span class="tocnumber">3</span> <span class="toctext">Development Status</span></a>
<ul>
<li class="toclevel-2 tocsection-8"><a href="LIME_Is_Mediated_Emulation.html#VirtIO-FS"><span class="tocnumber">3.1</span> <span class="toctext">VirtIO-FS</span></a></li>
</ul>
</li>
</ul>
</div>
<h2><span class="mw-headline" id="Design_Goals">Design Goals</span></h2>
<p>LIME aims to provide similar functionality to <a rel="nofollow" class="external text" href="https://winehq.org/">WINE Is Not Emulation</a>, Valve's <a rel="nofollow" class="external text" href="https://github.com/ValveSoftware/Proton/">Proton</a> / <a rel="nofollow" class="external text" href="https://github.com/ValveSoftware/dxvk">DXVK</a> but with the use of graphics virtualization (vGPU/SR-IOV on consumer GPUs), a shared filesystem between host/guest, and <a rel="nofollow" class="external text" href="https://open-iov.org/index.php/Looking_Glass_KVMFR">KVM Frame Relay</a> (high performance graphics buffer sharing via <a rel="nofollow" class="external text" href="https://www.qemu.org/docs/master/system/devices/ivshmem.html">Inter-VM Shared Memory Device / IVSHMEM</a>).
</p><p>Compared to WINE, and Proton the benefits of this approach are that Win64 binaries execute without the incompatibilities introduced in new games taking advantage of the latest version of <a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows/win32/directx">DirectX</a>, or when changes are introduced to the latest version of the Win64 <a rel="nofollow" class="external text" href="https://infogalactic.com/info/Application_binary_interface">ABI</a>.
</p><p>This functionality is enabled via the use of <a rel="nofollow" class="external text" href="">GPU Virtual Machine</a> (for consumer GPU Virtualization), <a rel="nofollow" class="external text" href="https://virtio-fs.gitlab.io/design.html">VirtIO-FS</a> (for host <-> guest filesystem sharing), <a rel="nofollow" class="external text" href="https://looking-glass.io/">Looking Glass</a> (for host <-> guest shared frame buffer), and <a rel="nofollow" class="external text" href="https://github.com///tree/master//"></a> (for orchestration).
</p>
<h2><span class="mw-headline" id="Use-Cases">Use-Cases</span></h2>
<h3><span class="mw-headline" id="Win64_Subsystem">Win64 Subsystem</span></h3>
<p>LIME's most immediate use case is around ABI compatibility with Win64 programs in environments without native support.
</p><p><b>A blog post detailing the problems which lead to this work can be read here</b>. A summary of this post is traditional models for backwards compatibility with Application Binary Interfaces (ABIs) lock-in existing models for kernel/userland development and stagnate architectural innovation. On the other hand consumer oriented systems like those based on <a rel="nofollow" class="external text" href="https://github.com/apple/darwin-xnu">Darwin/XNU</a> break backwards compatibility with user programs version to version of the system in order to introduce architectural improvements in the kernel / userland (for instance micro-service device drivers which may recover from faults at OS runtime).
</p><p>These two approaches might be considered two discretely separable models for software development <i>'enterprise'</i> /<i>'consumer'</i> - LIME might then be considered a third approach which preserves the functions of both prior approaches (continual innovation afforded in the kernel-space and backwards compatibility with existing software libraries).
</p><p>ie: A method by which programs "import" a particular explicitly versioned ABI similar to how <a rel="nofollow" class="external text" href="https://docs.docker.com/engine/api/latest/">Docker</a> provisions <a rel="nofollow" class="external text" href="https://wiki.archlinux.org/title/Chroot">chroot</a> resources like configuration files and support libraries, but extended to drivers, and the kernel.
</p>
<h3><span class="mw-headline" id="Win64_Orchestration">Win64 Orchestration</span></h3>
<p>Because LIME necessarily provisions application data, program files, and <a rel="nofollow" class="external text" href="https://open-iov.org/index.php/Glossary#NUMA_Node">NUMA</a>-aware vCPU/vGPU resources (in the context of multi-GPU, multi-socket CPU systems) through for automatic execution by one or more VM guests LIME might provide an ideal architecture for orchestration of Win64 applications at scale. This could include execution of programs for game streaming in a server environment, or multiple applications in a single user environment for '<a rel="nofollow" class="external text" href="https://github.com/Qubes-Community/Contents/blob/master/docs/os/windows/windows-tools.md#using-windows-appvms-in-seamless-mode">seamless-mode</a>' execution of guest programs similar to that of <a rel="nofollow" class="external text" href="https://www.qubes-os.org/doc/">QubesOS</a> with hardware GPU acceleration added.
</p>
<h3><span class="mw-headline" id="Compatibility_With_Other_ABIs">Compatibility With Other ABIs</span></h3>
<p>To solve the problems of 'ABI lock-in' discussed in the "Why Computers Suck" post it may be possible to port LIME support to multiple different guest operating systems allowing execution of any program with any ABI with near indistinguishable performance compared to native execution.
</p>
<h3><span id="Quality_of_Service_.28QoS.29"></span><span class="mw-headline" id="Quality_of_Service_(QoS)">Quality of Service (QoS)</span></h3>
<p><a rel="nofollow" class="external text" href="https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git/tree/Documentation/driver-api/vfio-mediated-device.rst">VFIO-Mdev</a> functionality like that used in <a rel="nofollow" class="external text" href="">GPU Virtual Machine (GVM)</a> provides granular GPU resource allocation and load balancing functions similar to those seen in <a rel="nofollow" class="external text" href="https://infogalactic.com/info/Cgroups">control groups (cgroups)</a> as they are commonly applied today to RAM and CPU resources. In the context LIME VFIO-Mdev could be applied for load balancing of individual processes running in a virtualized state to ensure individual processes making use of the GPU cannot deny service to others on the system.
</p>
<h2><span class="mw-headline" id="Development_Status">Development Status</span></h2>
<p>Development of this functionality is ongoing. Efforts to improve LIME are primarily focused on stabilization of shared filesystem functions.
</p>
<h3><span class="mw-headline" id="VirtIO-FS">VirtIO-FS</span></h3>
<p>VirtIO-FS provides shared filesystem functionality between host and guest using <a rel="nofollow" class="external text" href="https://github.com/libfuse/libfuse">FUSE</a> which is ideal for LIME, however in the context of Windows guests the C version of virtiofsd appears unstable (seen in <a rel="nofollow" class="external text" href="https://github.com/virtio-win/kvm-guest-drivers-windows">virtio-win</a> issue <a rel="nofollow" class="external text" href="https://github.com/virtio-win/kvm-guest-drivers-windows/issues/550">550 [closed]</a>, <a rel="nofollow" class="external text" href="https://github.com/virtio-win/kvm-guest-drivers-windows/issues/723">723 [closed]</a>, <a rel="nofollow" class="external text" href="https://github.com/virtio-win/kvm-guest-drivers-windows/issues/724">724 [open]</a>). Testing has been performed by members of the Open-IOV community which have shown initial signs of increased filesystem stability under continuous read/write loads using the Rust version of virtiofsd (<a rel="nofollow" class="external text" href="https://gitlab.com/virtio-fs/virtiofsd">virtiofsd-rs</a>).
</p><p>While many programs can be stored in the VirtIO-FS shared directory some programs such as <a rel="nofollow" class="external text" href="https://store.steampowered.com/">Steam</a> don't want to install programs into the VirtIO-FS drive (seen as a secondary drive in Windows - in often as disk D:/ if no additional media is attached). This game installation behaviour (which drive the user may place their programs in) may not be in common with other game stores such as the <a rel="nofollow" class="external text" href="https://store.epicgames.com/en-US/">Epic Games Store</a>, or <a rel="nofollow" class="external text" href="https://www.gog.com/good-old-games">Good Old Games (GOG)</a>.
</p>
<!--
NewPP limit report
Cached time: 20260911202652
Cache expiry: 86400
Reduced expiry: false
Complications: []
CPU time usage: 0.012 seconds
Real time usage: 0.017 seconds
Preprocessor visited node count: 45/1000000
Post‐expand include size: 0/2097152 bytes
Template argument size: 0/2097152 bytes
Highest expansion depth: 2/40
Expensive parser function count: 0/100
Unstrip recursion depth: 0/20
Unstrip post‐expand size: 34/5000000 bytes
-->
<!--
Transclusion expansion time report (%,ms,calls,template)
100.00% 0.000 1 -total
-->
<!-- Saved in parser cache with key my_wiki:pcache:idhash:89-0!canonical and timestamp 20260911202652 and revision id 786. Serialized with JSON.
-->
</div>
<div class="printfooter">Retrieved from "<a dir="ltr" href="../index.php%3Ftitle=LIME_Is_Mediated_Emulation&oldid=786.html">https://open-iov.org/index.php?title=LIME_Is_Mediated_Emulation&oldid=786</a>"</div></div>
<div id="catlinks" class="catlinks catlinks-allhidden" data-mw="interface"></div>
</div>
</div>
<div id="mw-navigation">
<h2>Navigation menu</h2>
<div id="mw-head">
<nav id="p-personal" class="mw-portlet mw-portlet-personal vector-user-menu-legacy vector-menu" aria-labelledby="p-personal-label" role="navigation"
>
<h3 id="p-personal-label" class="vector-menu-heading"> <span>Personal tools</span>
</h3>
<div class="vector-menu-content">
<ul class="vector-menu-content-list"><li id="pt-login" class="mw-list-item"><a href="../index.php%3Ftitle=Special:UserLogin&returnto=LIME+Is+Mediated+Emulation.html" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o">Log in</a></li></ul>
</div>
</nav>
<div id="left-navigation">
<nav id="p-namespaces" class="mw-portlet mw-portlet-namespaces vector-menu vector-menu-tabs" aria-labelledby="p-namespaces-label" role="navigation"
>
<h3 id="p-namespaces-label" class="vector-menu-heading"> <span>Namespaces</span>
</h3>
<div class="vector-menu-content">
<ul class="vector-menu-content-list"><li id="ca-nstab-main" class="selected mw-list-item"><a href="LIME_Is_Mediated_Emulation.html" title="View the content page [c]" accesskey="c">Page</a></li><li id="ca-talk" class="new mw-list-item"><a href="https://open-iov.org/index.php?title=Talk:LIME_Is_Mediated_Emulation&action=edit&redlink=1" rel="discussion" title="Discussion about the content page (page does not exist) [t]" accesskey="t">Discussion</a></li></ul>
</div>
</nav>
<nav id="p-variants" class="mw-portlet mw-portlet-variants emptyPortlet vector-menu-dropdown-noicon vector-menu vector-menu-dropdown" aria-labelledby="p-variants-label" role="navigation"
>
<input type="checkbox"
id="p-variants-checkbox"
role="button"
aria-haspopup="true"
data-event-name="ui.dropdown-p-variants"
class=" vector-menu-checkbox" aria-labelledby="p-variants-label" />
<h3 id="p-variants-label" class="vector-menu-heading"> <span>Variants</span>
<span class="vector-menu-checkbox-expanded">expanded</span>
<span class="vector-menu-checkbox-collapsed">collapsed</span>
</h3>
<div class="vector-menu-content">
<ul class="vector-menu-content-list"></ul>
</div>
</nav>
</div>
<div id="right-navigation">
<nav id="p-views" class="mw-portlet mw-portlet-views vector-menu vector-menu-tabs" aria-labelledby="p-views-label" role="navigation"
>
<h3 id="p-views-label" class="vector-menu-heading"> <span>Views</span>
</h3>
<div class="vector-menu-content">
<ul class="vector-menu-content-list"><li id="ca-view" class="selected mw-list-item"><a href="LIME_Is_Mediated_Emulation.html">Read</a></li><li id="ca-viewsource" class="mw-list-item"><a href="../index.php%3Ftitle=LIME_Is_Mediated_Emulation&action=edit.html" title="This page is protected. You can view its source [e]" accesskey="e">View source</a></li><li id="ca-history" class="mw-list-item"><a href="../index.php%3Ftitle=LIME_Is_Mediated_Emulation&action=history.html" title="Past revisions of this page [h]" accesskey="h">View history</a></li></ul>
</div>
</nav>
<nav id="p-cactions" class="mw-portlet mw-portlet-cactions emptyPortlet vector-menu-dropdown-noicon vector-menu vector-menu-dropdown" aria-labelledby="p-cactions-label" role="navigation" title="More options"
>
<input type="checkbox"
id="p-cactions-checkbox"
role="button"
aria-haspopup="true"
data-event-name="ui.dropdown-p-cactions"
class=" vector-menu-checkbox" aria-labelledby="p-cactions-label" />
<h3 id="p-cactions-label" class="vector-menu-heading"> <span>More</span>
<span class="vector-menu-checkbox-expanded">expanded</span>
<span class="vector-menu-checkbox-collapsed">collapsed</span>
</h3>
<div class="vector-menu-content">
<ul class="vector-menu-content-list"></ul>
</div>
</nav>
<div id="p-search" role="search" class="vector-search-box">
<div>
<h3 >
<label for="searchInput">Search</label>
</h3>
<form action="https://open-iov.org/index.php" id="searchform">
<div id="simpleSearch" data-search-loc="header-navigation">
<input type="search" name="search" placeholder="Search Open-IOV" autocapitalize="sentences" title="Search Open-IOV [f]" accesskey="f" id="searchInput"/>
<input type="hidden" name="title" value="Special:Search"/>
<input type="submit" name="fulltext" value="Search" title="Search the pages for this text" id="mw-searchButton" class="searchButton mw-fallbackSearchButton"/>
<input type="submit" name="go" value="Go" title="Go to a page with this exact name if it exists" id="searchButton" class="searchButton"/>
</div>
</form>
</div>
</div>
</div>
</div>
<div id="mw-panel">
<div id="p-logo" role="banner">
<a class="mw-wiki-logo" href="../images/archive/c/c3/20221214193624!I915_Scheduling_Events_and_Requests.png.html"
title="Visit the main page"></a>
</div>
<nav id="p-navigation" class="mw-portlet mw-portlet-navigation vector-menu vector-menu-portal portal" aria-labelledby="p-navigation-label" role="navigation"
>
<h3 id="p-navigation-label" class="vector-menu-heading"> <span>Navigation</span>
</h3>
<div class="vector-menu-content">
<ul class="vector-menu-content-list"><li id="n-mainpage-description" class="mw-list-item"><a href="../images/archive/c/c3/20221214193624!I915_Scheduling_Events_and_Requests.png.html" title="Visit the main page [z]" accesskey="z">Main page</a></li><li id="n-recentchanges" class="mw-list-item"><a href="https://open-iov.org/index.php/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r">Recent changes</a></li><li id="n-randompage" class="mw-list-item"><a href="./Special:Random.html" title="Load a random page [x]" accesskey="x">Random page</a></li><li id="n-help-mediawiki" class="mw-list-item"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents">Help about MediaWiki</a></li></ul>
</div>
</nav>
<nav id="p-tb" class="mw-portlet mw-portlet-tb vector-menu vector-menu-portal portal" aria-labelledby="p-tb-label" role="navigation"
>
<h3 id="p-tb-label" class="vector-menu-heading"> <span>Tools</span>
</h3>
<div class="vector-menu-content">
<ul class="vector-menu-content-list"><li id="t-whatlinkshere" class="mw-list-item"><a href="https://open-iov.org/index.php/Special:WhatLinksHere/LIME_Is_Mediated_Emulation" title="A list of all wiki pages that link here [j]" accesskey="j">What links here</a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="https://open-iov.org/index.php/Special:RecentChangesLinked/LIME_Is_Mediated_Emulation" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li><li id="t-specialpages" class="mw-list-item"><a href="./Special:SpecialPages.html" title="A list of all special pages [q]" accesskey="q">Special pages</a></li><li id="t-print" class="mw-list-item"><a href="javascript:print();" rel="alternate" title="Printable version of this page [p]" accesskey="p">Printable version</a></li><li id="t-permalink" class="mw-list-item"><a href="../index.php%3Ftitle=LIME_Is_Mediated_Emulation&oldid=786.html" title="Permanent link to this revision of the page">Permanent link</a></li><li id="t-info" class="mw-list-item"><a href="../index.php%3Ftitle=LIME_Is_Mediated_Emulation&action=info.html" title="More information about this page">Page information</a></li></ul>
</div>
</nav>
</div>
</div>
<footer id="footer" class="mw-footer" role="contentinfo" >
<ul id="footer-info" >
<li id="footer-info-lastmod"> This page was last edited on 23 August 2022, at 17:14.</li>
</ul>
<ul id="footer-places" >
<li id="footer-places-privacy"><a href="https://open-iov.org/index.php/Open-IOV:Privacy_policy" title="Open-IOV:Privacy policy">Privacy policy</a></li>
<li id="footer-places-about"><a href="./Open-IOV:About.html" title="Open-IOV:About">About Open-IOV</a></li>
<li id="footer-places-disclaimer"><a href="https://open-iov.org/index.php/Open-IOV:General_disclaimer" title="Open-IOV:General disclaimer">Disclaimers</a></li>
</ul>
<ul id="footer-icons" class="noprint">
<li id="footer-poweredbyico"><a href="https://www.mediawiki.org/"><img src="../resources/assets/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="../resources/assets/poweredby_mediawiki_132x47.png 1.5x, ../resources/assets/poweredby_mediawiki_176x62.png 2x" width="88" height="31" loading="lazy"/></a></li>
</ul>
</footer>
<script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgPageParseReport":{"limitreport":{"cputime":"0.012","walltime":"0.017","ppvisitednodes":{"value":45,"limit":1000000},"postexpandincludesize":{"value":0,"limit":2097152},"templateargumentsize":{"value":0,"limit":2097152},"expansiondepth":{"value":2,"limit":40},"expensivefunctioncount":{"value":0,"limit":100},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":34,"limit":5000000},"timingprofile":["100.00% 0.000 1 -total"]},"cachereport":{"timestamp":"20260911202652","ttl":86400,"transientcontent":false}}});mw.config.set({"wgBackendResponseTime":98});});</script>
<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a39968ef794d39c9',t:'MTc4OTE1ODQxMg=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>
|