<!DOCTYPE html>
<html class="client-js"><head>
  <meta charset="UTF-8">
  <title>GT.M</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script>
    function importScript() { return 1 } // this is to avoid the error from site.js
  </script>
  <script>let articleId = 'GT.M'</script>
  <link rel="canonical" href="https://en.wikipedia.org/wiki/GT.M">
  <link href="../-/mw/ext.cite.ux-enhancements.css" rel="stylesheet" type="text/css">
<link href="../-/mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="../-/mw/skins.minerva.base.reset|skins.minerva.content.styles|ext.cite.style|site.styles|mobile.app.pagestyles.android|mediawiki.page.gallery.styles|mediawiki.skinning.content.parsoid.css" rel="stylesheet" type="text/css">
  <link href="../-/style.css" rel="stylesheet" type="text/css"><link href="../-/content.parsoid.css" rel="stylesheet" type="text/css"><link href="../-/inserted_style.css" rel="stylesheet" type="text/css">
  <script src="../-/script.js"></script><script src="../-/masonry.min.js"></script><script src="../-/article_list_home.js"></script><script src="../-/images_loaded.min.js"></script><script src="../-/node_module/details-element-polyfill/dist/details-element-polyfill.js"></script>
</head>

<body class="mediawiki mw-hide-empty-elt ns-0 ns-subject stable skin-minerva action-view animations">
  <div id="mw-mf-viewport" class="feature-header-v2">
    <div id="mw-mf-page-center">
      <div id="content" class="mw-body">
        <a id="top"></a>
        <div id="bodyContent" class="content mw-parser-output">
          
          <div id="mw-content-text" style="direction: ltr;"><h1 class="section-heading" tabindex="0" aria-haspopup="true" data-section-id="0">
  <span class="mw-headline" id="title_0">GT.M</span>
</h1>
<div id="mf-section-0" class="mf-section-0" aria-pressed="true" aria-expanded="true">
  <p><b>GT.M</b> is a high-throughput key-value <a href="Database" title="Database">database</a> engine optimized for <a href="Transaction_processing" title="Transaction processing">transaction processing</a>. (It is a type also referred to as "schema-less", "schema-free," or "<a href="NoSQL_(concept)" title="NoSQL (concept)" class="mw-redirect">NoSQL</a>.") GT.M is also an application development platform and a <a href="Compiler" title="Compiler">compiler</a> for the <a href="International_Organization_for_Standardization" title="International Organization for Standardization">ISO</a> standard <a href="MUMPS" title="MUMPS">M</a> language, also known as <a href="MUMPS" title="MUMPS">MUMPS</a>.</p>


<table class="infobox vevent" style="width:22em"><caption class="summary">GT.M</caption><tbody><tr><th scope="row" style="white-space: nowrap;"><a href="Software_developer" title="Software developer" class="mw-redirect">Developer(s)</a></th><td><a href="FIS_(company)" title="FIS (company)">FIS</a></td></tr><tr><th scope="row" style="white-space: nowrap;">Initial release</th><td>1986<span style="display:none"><span>&nbsp;</span>(<span class="bday dtstart published updated">1986</span>)</span></td></tr><tr style="display: none;"><td colspan="2" style="text-align:center"></td></tr><tr><th scope="row" style="white-space: nowrap;"><a href="Software_release_life_cycle" title="Software release life cycle">Stable release</a></th><td><div style="margin:0px;">6.3-014
   / October<span>&nbsp;</span>19, 2020<span style="display:none"><span>&nbsp;</span>(<span class="bday dtstart published updated">2020-10-19</span>)</span></div></td></tr><tr style="display:none"><td colspan="2">
</td></tr><tr><th scope="row" style="white-space: nowrap;"><a href="Repository_(version_control)" title="Repository (version control)">Repository</a></th><td><div class="plainlist "><ul><li><span class="url">[cvs://anonymous:@fis-gtm.cvs.sourceforge.net/cvsroot/fis-gtm fis-gtm<wbr>.cvs<wbr>.sourceforge<wbr>.net<wbr>/cvsroot<wbr>/fis-gtm]</span></li></ul>
</div> <span class="mw-valign-text-top"><img src="../I/OOjs_UI_icon_edit-ltr-progressive.svg.png.webp" data-file-width="20" data-file-height="20" data-file-type="drawing" height="10" width="10" loading="lazy"></span></td></tr><tr><th scope="row" style="white-space: nowrap;">Written in</th><td><a href="C_(programming_language)" title="C (programming language)">C</a>, <a href="Assembly_language" title="Assembly language">assembly</a>, <a href="MUMPS" title="MUMPS">M</a></td></tr><tr><th scope="row" style="white-space: nowrap;"><a href="Operating_system" title="Operating system">Operating system</a></th><td><a href="Linux" title="Linux">Linux</a>, <a href="IBM_AIX" title="IBM AIX">AIX</a></td></tr><tr><th scope="row" style="white-space: nowrap;"><a href="Software_categories#Categorization_approaches" title="Software categories">Type</a></th><td><a href="Database" title="Database">Database</a></td></tr><tr><th scope="row" style="white-space: nowrap;"><a href="Software_license" title="Software license">License</a></th><td><a href="Affero_General_Public_License" title="Affero General Public License">GNU AGPLv3</a>, proprietary</td></tr><tr><th scope="row" style="white-space: nowrap;">Website</th><td><span class="url"><a href="https://sourceforge.net/projects/fis-gtm/" class="external text external">sourceforge<wbr>.net<wbr>/projects<wbr>/fis-gtm<wbr>/</a></span></td></tr></tbody></table>

<p>GT.M, an abbreviation for <i>Greystone Technology M,</i> was developed by the Greystone Technology Corp in the 1980s. It is an implementation of ANSI standard M for <a href="IBM_AIX" title="IBM AIX">AIX</a> and <a href="Linux" title="Linux">Linux</a>. In addition to preserving the traditional features of M, GT.M also offers an <a href="Optimizing_compiler" title="Optimizing compiler">optimizing compiler</a> that produces object code that does not require internal <a href="Interpreter_(computing)" title="Interpreter (computing)">interpreters</a> during execution.</p>

<p>The database engine, made open source in 2000,<span class="mw-ref reference" id="cite_ref-1"><a href="#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></span> is maintained by <a href="FIS_(company)" title="FIS (company)">FIS</a>. GT.M is used as the backend of their <i>FIS Profile</i> banking application,<span class="mw-ref reference" id="cite_ref-2"><a href="#cite_note-2" style="counter-reset: mw-Ref 2;"><span class="mw-reflink-text">[2]</span></a></span> and it powers <a href="ING_DIRECT" title="ING DIRECT" class="mw-redirect">ING DIRECT</a> banks in Spain, France, Italy, Holland, Romania and India; Capital One 360 in the United States; Tangerine (Scotiabank) in Canada; <a href="Atom_Bank" title="Atom Bank">Atom Bank</a>;<span class="mw-ref reference" id="cite_ref-3"><a href="#cite_note-3" style="counter-reset: mw-Ref 3;"><span class="mw-reflink-text">[3]</span></a></span> <a href="Tandem_Bank" title="Tandem Bank" class="mw-redirect">Tandem Bank</a>; <a href="Sainsbury's_Bank" title="Sainsbury's Bank">Sainsbury's Bank</a>;<span class="mw-ref reference" id="cite_ref-4"><a href="#cite_note-4" style="counter-reset: mw-Ref 4;"><span class="mw-reflink-text">[4]</span></a></span> Scottish Widows and Barclays Direct in the UK.<span class="mw-ref reference" id="cite_ref-ing_5-0"><a href="#cite_note-ing-5" style="counter-reset: mw-Ref 5;"><span class="mw-reflink-text">[5]</span></a></span> It is also used as an open source backend for the Electronic Health Record system <a href="WorldVistA" title="WorldVistA">WorldVistA</a> and other open source EHRs such as Medsphere's OpenVista.<span class="mw-ref reference" id="cite_ref-6"><a href="#cite_note-6" style="counter-reset: mw-Ref 6;"><span class="mw-reflink-text">[6]</span></a></span> It is listed as an open source healthcare solution partner of <a href="Red_Hat" title="Red Hat">Red Hat</a>.<span class="mw-ref reference" id="cite_ref-7"><a href="#cite_note-7" style="counter-reset: mw-Ref 7;"><span class="mw-reflink-text">[7]</span></a></span> Today it consists of approximately 2 million lines of code.</p>


</div><details data-level="2" open="">
    <summary class="section-heading"><h2 id="Technical_Overview">Technical Overview</h2></summary>
    

<p>GT.M consists of a language subsystem, a database subsystem, and utility programs. The language subsystem and database subsystem are closely integrated, but each is usable without the other. The language and database subsystems share common data organization and typing.</p>


    <details data-level="3" open="">
    <summary class="section-heading"><h3 id="Data_Organization_and_typing">Data Organization and typing</h3></summary>
    


<p>GT.M has only two data types - canonical numbers and strings.  A string is any arbitrary sequence of bytes (including nulls).  A string such as <code>"42"</code> is a canonical number.  Data typing is dynamic and conversion between the two types is performed on the fly as needed: <code>1+"42"</code> yields the result <code>43</code>, and the first character of <code>43</code> is <code>4</code>.</p>

<p>There is only one data structure - multi-dimensional sparse arrays (key-value nodes, sub-trees, and associative memory are all equally valid descriptions) with up to 32 subscripts.  A scalar can be thought of as an array element with zero subscripts.  Nodes with varying numbers of subscripts (including one node with no subscripts) can freely co-exist in the same array.  For example, if one wanted to represent the <a href="List_of_capitals_in_the_United_States#United_States" title="List of capitals in the United States">national capitals of the United States</a>:</p>
<pre>:Set Capital("United States")="Washington"
:Set Capital("United States",1774,1776)="Philadelphia"
:Set Capital("United States",1776,1777)="Baltimore"
</pre>

<p>Variables are created on demand when first assigned to.  Thus, the first Set command above would create the variable <code>Capital</code>.  Variables have scope in the language, and are called <i>local variables</i>.  A database access looks like an array access, for example:</p>
<pre>:Set ^Capital("United States")="Washington"
</pre>
<p>but the caret (^) means that it is a database access.  Variables used for database access have a single global scope, and of course persist and shared between processes.  They are called <i>global variables</i>.  The first 31 characters of a variable name are significant.</p>

<p>The Kill and ZKill commands are used to delete subtrees of values.</p>

<p>GT.M uses <a href="Unicode" title="Unicode">Unicode</a> (<a href="Universal_Character_Set" title="Universal Character Set" class="mw-redirect">ISO/IEC-10646</a>) for international character set support.</p>


</details>
<details data-level="3" open="">
    <summary class="section-heading"><h3 id="Database_Subsystem">Database Subsystem</h3></summary>
    


<p>The <i>logical database</i> of a GT.M process consists of one or more <i>global variable name spaces</i>, each consisting of unlimited number of global variables.  For each global variable name space, a <i>global directory</i> maps global variables to the database files where they actually reside.  An unlimited number of global variables can fit within one database file; a global variable must fit in one database file.</p>

<p>A database file consists of up to 224M (276,168,704) database blocks.  A database block is a multiple of 512 bytes, with a maximum size of 65,024 bytes.  Commonly used block sizes are 4KB, 8KB and 16KB - so, with an 8KB block size, an individual global variable can grow to 1,792GB.  A global variable node (global variable, subscripts plus value) must fit in one database block and each block has a 16 byte overhead.  So, the largest node that will fit in a database with a 4KB block size is 4,080 bytes.  A key (global variable plus subscripts) can be up to 255 bytes.</p>

<p>The database engine is daemonless and processes accessing the database operate with normal user and group ids - a process has access to a database file if and only if the ownership and permissions of that database file (plus any layered access control such as <a href="Selinux" title="Selinux" class="mw-redirect">SELinux</a>) permits access.  Each process has within its address space all the logic needed to manage the database, and processes cooperate with one another to manage database files.  When a database file is journaled, updates are written to journal files before being written to database files, and in the event of a system crash, database files can be recovered from journal files.</p>

<p>The database engine also supports <a href="Transaction_processing" title="Transaction processing">transaction processing</a>.  So, code such as:</p>
<pre>TStart ()
<span style="padding-left:1em;"><span>&nbsp;</span></span>Set ^Capital("France")="Paris"
<span style="padding-left:1em;"><span>&nbsp;</span></span>Set ^Country("Paris")="France"
TCommit</pre>

<p>implements an <a href="ACID" title="ACID">ACID</a> transaction.  GT.M uses <a href="Optimistic_concurrency_control" title="Optimistic concurrency control">optimistic concurrency control</a> to manage transactions.</p>

<p>A plug-in architecture allows the database to be encrypted in order to protect data at rest.  GT.M is distributed with reference plug-in that uses <a href="GNU_Privacy_Guard" title="GNU Privacy Guard">GnuPG</a>.</p>


</details>
<details data-level="3" open="">
    <summary class="section-heading"><h3 id="Language_Subsystem">Language Subsystem</h3></summary>
    



<p>Unlike the database where global variable nodes must fit within a database block, local variable strings can grow to 1MB.  The GT.M run-time provides dynamic storage allocation with garbage collection.  The number of local variables and the number of nodes in local variables are limited only by storage available to the process.  The default scope of a local variable is the lifetime of a process.  Local variables created within routines using the New command have more limited scope.</p>

<p>GT.M routines are dynamically compiled and linked for execution in the address space of each process.  With the exception of the 32-bit implementation of GT.M for the x86 GNU/Linux platform, object modules can also be placed in shared libraries with the standard <code>ld</code> command, in which case the memory used is shared.  This is important because an application such as <a href="VistA" title="VistA">VistA</a> has over 20,000 routines whose compiled object code exceeds 200MB.  A large hospital running VistA can have thousands of concurrently running user processes.</p>

<p>With a couple of small exceptions, GT.M includes a nearly complete implementation of <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=29268" class="external text external">ISO standard M</a> (affectionately known as <a href="MUMPS" title="MUMPS">MUMPS</a> for historical reasons).</p>

<p>In GT.M, M code can freely call out to C code (or code in other languages with a C compatible interface), and C code can freely call in to M code (so the top level program can be a C <code>main()</code>).  For example, is a <a href="http://cpansearch.perl.org/src/SZECK/Db-GTM-1.27/GTM.pm" class="external text external">GT.M module in CPAN</a>, <a href="http://gradvs1.mgateway.com/download/gtm_4_python.pdf" class="external text external">m_python</a> for access from <a href="Python_(programming_language)" title="Python (programming language)">Python</a> or <a href="https://github.com/ztmr/egtm" class="external text external">EGTM</a> binding for <a href="Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a>.</p>

<p>Web services written in GT.M can be deployed under an <a href="Super-server" title="Super-server">Internet super server</a> such as <a href="Inetd" title="Inetd">inetd</a> or <a href="Xinetd" title="Xinetd">xinetd</a>.  Web enabled applications can use layered software such as <a href="http://www.yuiblog.com/blog/2010/01/05/enterprise-web-developer/" class="external text external">EWD</a> or <a href="http://www.coherent-logic.com/cm/products/cfmumps" class="external text external">CFMumps</a>.</p>


</details>

</details><details data-level="2" open="">
    <summary class="section-heading"><h2 id="Platforms">Platforms</h2></summary>
    
<p>GT.M is fully supported on the following platforms:<span class="mw-ref reference" id="cite_ref-8"><a href="#cite_note-8" style="counter-reset: mw-Ref 8;"><span class="mw-reflink-text">[8]</span></a></span></p>
<ul><li><a href="IBM_AIX" title="IBM AIX">AIX</a> on <a href="IBM_System_p" title="IBM System p">IBM System p</a></li>
<li><a href="Linux" title="Linux">GNU/Linux</a> on <a href="X86-64" title="X86-64">x86_64</a> and <a href="IA-32" title="IA-32">IA-32</a> (<a href="X86" title="X86">x86</a>) architectures. The YottaDB <a href="Fork_(software_development)" title="Fork (software development)">fork</a> of GT.M adds support for <a href="ARM_architecture" title="ARM architecture">ARM</a>.<span class="mw-ref reference" id="cite_ref-9"><a href="#cite_note-9" style="counter-reset: mw-Ref 9;"><span class="mw-reflink-text">[9]</span></a></span></li></ul>

<p>GT.M is no longer supported on these platforms:</p>
<ul><li><a href="HP-UX" title="HP-UX">HP-UX</a> as of October 2015 (V6.2-002A)</li>
<li><a href="OpenVMS" title="OpenVMS">OpenVMS</a> as of December 2014 (V6.2-001)</li>
<li><a href="Solaris_(operating_system)" title="Solaris (operating system)">Solaris</a> as of December 2015 (V6.2-002A)</li></ul>

<p>The code base for GT.M on <a href="Linux" title="Linux">GNU/Linux</a> on <a href="IA-32" title="IA-32">IA-32</a> (<a href="X86" title="X86">x86</a>) includes changes needed to run on <a href="Cygwin" title="Cygwin">Cygwin</a> on <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> but this is not a supported platform.</p>


    
</details><details data-level="2" open="">
    <summary class="section-heading"><h2 id="Licensing">Licensing</h2></summary>
    
<style data-mw-deduplicate="TemplateStyles:r936637989">.mw-parser-output .portal{border:solid #aaa 1px;padding:0}.mw-parser-output .portal.tleft{margin:0.5em 1em 0.5em 0}.mw-parser-output .portal.tright{margin:0.5em 0 0.5em 1em}.mw-parser-output .portal>ul{display:table;box-sizing:border-box;padding:0.1em;max-width:175px;background:#f9f9f9;font-size:85%;line-height:110%;font-style:italic;font-weight:bold}.mw-parser-output .portal>ul>li{display:table-row}.mw-parser-output .portal>ul>li>span:first-child{display:table-cell;padding:0.2em;vertical-align:middle;text-align:center}.mw-parser-output .portal>ul>li>span:last-child{display:table-cell;padding:0.2em 0.2em 0.2em 0.3em;vertical-align:middle}</style>
<p>On <a href="Linux" title="Linux">GNU/Linux</a> on <a href="X86-64" title="X86-64">x86-64</a> &amp; <a href="IA-32" title="IA-32">IA-32</a> (<a href="X86" title="X86">x86</a>), and on <a href="OpenVMS" title="OpenVMS">OpenVMS</a> on <a href="DEC_Alpha" title="DEC Alpha">Alpha/AXP</a>, GT.M is released as <a href="Free_and_Open_Source_Software" title="Free and Open Source Software" class="mw-redirect">Free / Open Source Software (FOSS)</a> under the terms of the <a href="https://www.gnu.org/licenses/agpl-3.0.txt" class="external text external">GNU Affero General Public License, version 3</a>.  On other platforms, it is available under proprietary licenses.</p>


    
</details><details data-level="2" open="">
    <summary class="section-heading"><h2 id="Common_applications">Common applications</h2></summary>
    
<p>GT.M is predominantly used in healthcare and financial services industry. The first production use of GT.M was in 1986 at the Elvis Presley Memorial Trauma Center in <a href="Memphis%2C_Tennessee" title="Memphis, Tennessee">Memphis, Tennessee</a>. Through <i>FIS Profile</i>, it powers <a href="ING_DIRECT" title="ING DIRECT" class="mw-redirect">ING DIRECT</a> banks in the United States, Canada, Spain, France and Italy.<span class="mw-ref reference" id="cite_ref-ing_5-1"><a href="#cite_note-ing-5" style="counter-reset: mw-Ref 5;"><span class="mw-reflink-text">[5]</span></a></span></p>

<p><a href="SQL" title="SQL">SQL</a> and <a href="ODBC" title="ODBC" class="mw-redirect">ODBC</a> access to GT.M databases exists as separate commercial products.</p>


    
</details><details data-level="2" open="">
    <summary class="section-heading"><h2 id="References">References</h2></summary>
    
<div class="reflist " style=" list-style-type: decimal;">
<div class="mw-references-wrap"><ol class="mw-references references"><li id="cite_note-1"> <span id="mw-reference-text-cite_note-1" class="mw-reference-text"><a href="https://web.archive.org/web/20001209123800/http://linuxpr.com/releases/2859.html" class="external free external">https://web.archive.org/web/20001209123800/http://linuxpr.com/releases/2859.html</a></span></li><li id="cite_note-2"> <span id="mw-reference-text-cite_note-2" class="mw-reference-text"><a href="http://www.redhat.com/f/pdf/rhel/Profile_Benchmark_Results_11-17-2007.pdf" class="external free external">http://www.redhat.com/f/pdf/rhel/Profile_Benchmark_Results_11-17-2007.pdf</a></span></li><li id="cite_note-3"> <span id="mw-reference-text-cite_note-3" class="mw-reference-text"><a href="https://www.fintechfutures.com/2018/05/uk-challenger-banks-whos-who-and-whats-their-tech/" class="external free external">https://www.fintechfutures.com/2018/05/uk-challenger-banks-whos-who-and-whats-their-tech/</a></span></li><li id="cite_note-4"> <span id="mw-reference-text-cite_note-4" class="mw-reference-text"><a href="https://ibsintelligence.com/ibs-journal/ibs-news/sainsbury-s-bank-suffers-systems-outage/" class="external free external">https://ibsintelligence.com/ibs-journal/ibs-news/sainsbury-s-bank-suffers-systems-outage/</a></span></li><li id="cite_note-ing-5"> <span id="mw-reference-text-cite_note-ing-5" class="mw-reference-text"><a href="http://www.allbusiness.com/banking-finance/banking-lending-credit-services-cash/6129691-1.html" class="external free external">http://www.allbusiness.com/banking-finance/banking-lending-credit-services-cash/6129691-1.html</a></span></li><li id="cite_note-6"> <span id="mw-reference-text-cite_note-6" class="mw-reference-text"><cite class="citation web cs1"><a href="https://web.archive.org/web/20110608042808/http://www.redhat.com/mirrors/LDP/HOWTO/Medicine-HOWTO/record.html" class="external text external">"Archived copy"</a>. Archived from <a href="http://www.redhat.com/mirrors/LDP/HOWTO/Medicine-HOWTO/record.html" class="external text external">the original</a> on 2011-06-08<span class="reference-accessdate">. Retrieved <span class="nowrap">2010-01-07</span></span>.</cite><span class="cs1-maint citation-comment">CS1 maint: archived copy as title (link)</span></span></li><li id="cite_note-7"> <span id="mw-reference-text-cite_note-7" class="mw-reference-text"><a href="http://www.redhat.com/solutions/healthcare/partners/GTM/" class="external free external">http://www.redhat.com/solutions/healthcare/partners/GTM/</a></span></li><li id="cite_note-8"> <span id="mw-reference-text-cite_note-8" class="mw-reference-text"><a href="http://tinco.pair.com/bhaskar/gtm/doc/articles/GTM_V6.3-009_Release_Notes.html" class="external autonumber external"></a></span></li><li id="cite_note-9"> <span id="mw-reference-text-cite_note-9" class="mw-reference-text"><a href="https://github.com/YottaDB/YottaDB/issues/61" class="external free external">https://github.com/YottaDB/YottaDB/issues/61</a></span></li></ol></div></div>


    
</details><details data-level="2" open="">
    <summary class="section-heading"><h2 id="Further_reading">Further reading</h2></summary>
    
<ul><li>Ignacio Valdes (November 17, 2002), <a href="https://web.archive.org/web/20110728134733/http://linuxmednews.com/1037557638" class="external text external">K.S. Bhaskar Receives 2002 LMN Achievement Award</a>, linuxmednews.com</li></ul>


    
</details><details data-level="2" open="">
    <summary class="section-heading"><h2 id="External_links">External links</h2></summary>
    
<ul><li><a href="http://sourceforge.net/projects/fis-gtm/" class="external text external">Project page at SourceForge</a></li>
<li><a href="http://fis-gtm.com/" class="external text external">GT.M homepage</a></li>
<li><a href="http://tinco.pair.com/bhaskar/gtm/doc/" class="external text external">GT.M documentation</a></li>
<li><a href="https://github.com/YottaDB/YottaDB" class="external text external">YottaDB</a>, a GT.M fork</li>
<li><a href="https://github.com/ztmr/egtm" class="external text external">EGTM: GT.M binding for Erlang</a></li>
<li><a href="https://github.com/dlwicksell/nodem" class="external text external">nodem: GT.M binding for Node.js</a></li></ul>






<style data-mw-deduplicate="TemplateStyles:r999302996">.mw-parser-output cite.citation{font-style:inherit}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration{color:#555}.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration span{border-bottom:1px dotted;cursor:help}.mw-parser-output .cs1-ws-icon a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output code.cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;font-size:100%}.mw-parser-output .cs1-visible-error{font-size:100%}.mw-parser-output .cs1-maint{display:none;color:#33aa33;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}</style>
    
</details><!--htdig_noindex--><div><div style="clear:both; background-image:linear-gradient(180deg, #E8E8E8, white); border-top: dashed 2px #AAAAAA; padding: 0.5em 0.5em 0.5em 0.5em; margin-top: 1em; direction: ltr;">
    This article is issued from <a class="external text" title="Last edited on 2021-01-24" href="https://en.wikipedia.org/wiki/?title=GT.M&amp;oldid=1002473756">Wikipedia</a>. The text is licensed under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons - Attribution - Sharealike</a>. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
        </div>
      </div>
    </div>
  </div>
  <script src="../-/mw/jsConfigVars.js"></script>
  <script src="../-/mw/startup.js"></script>
<script src="../-/mw/jquery.js"></script>
<script src="../-/mw/mediawiki.js"></script>
<script src="../-/mw/site.js"></script>
<script src="../-/mw/ext.cite.ux-enhancements.js"></script>



</body></html>