Fix typos in multiple `.rst` files (#1668)

diff --git a/Doc/library/cmd.rst b/Doc/library/cmd.rst
index f40cfdf..3b4a8ff 100644
--- a/Doc/library/cmd.rst
+++ b/Doc/library/cmd.rst
@@ -266,10 +266,10 @@
             'Draw circle with given radius an options extent and steps:  CIRCLE 50'
             circle(*parse(arg))
         def do_position(self, arg):
-            'Print the current turle position:  POSITION'
+            'Print the current turtle position:  POSITION'
             print('Current position is %d %d\n' % position())
         def do_heading(self, arg):
-            'Print the current turle heading in degrees:  HEADING'
+            'Print the current turtle heading in degrees:  HEADING'
             print('Current heading is %d\n' % (heading(),))
         def do_color(self, arg):
             'Set the color:  COLOR BLUE'
diff --git a/Doc/library/email.compat32-message.rst b/Doc/library/email.compat32-message.rst
index 2394e4d..6f8e489 100644
--- a/Doc/library/email.compat32-message.rst
+++ b/Doc/library/email.compat32-message.rst
@@ -67,7 +67,7 @@
 
       Return the entire message flattened as a string.  When optional *unixfrom*
       is true, the envelope header is included in the returned string.
-      *unixfrom* defaults to ``False``.  For backward compabitility reasons,
+      *unixfrom* defaults to ``False``.  For backward compatibility reasons,
       *maxheaderlen* defaults to ``0``, so if you want a different value you
       must override it explicitly (the value specified for *max_line_length* in
       the policy will be ignored by this method).  The *policy* argument may be
diff --git a/Doc/library/email.contentmanager.rst b/Doc/library/email.contentmanager.rst
index 57743d5..f56836a 100644
--- a/Doc/library/email.contentmanager.rst
+++ b/Doc/library/email.contentmanager.rst
@@ -157,7 +157,7 @@
        MIME charset name, use the standard charset instead.
 
        If *cte* is set, encode the payload using the specified content transfer
-       encoding, and set the :mailheader:`Content-Transfer-Endcoding` header to
+       encoding, and set the :mailheader:`Content-Transfer-Encoding` header to
        that value.  Possible values for *cte* are ``quoted-printable``,
        ``base64``, ``7bit``, ``8bit``, and ``binary``.  If the input cannot be
        encoded in the specified encoding (for example, specifying a *cte* of
@@ -203,5 +203,5 @@
 
 .. rubric:: Footnotes
 
-.. [1] Oringally added in 3.4 as a :term:`provisional module <provisional
+.. [1] Originally added in 3.4 as a :term:`provisional module <provisional
        package>`
diff --git a/Doc/library/email.errors.rst b/Doc/library/email.errors.rst
index 2d0d192..5838767 100644
--- a/Doc/library/email.errors.rst
+++ b/Doc/library/email.errors.rst
@@ -102,9 +102,9 @@
   return false even though its content type claims to be :mimetype:`multipart`.
 
 * :class:`InvalidBase64PaddingDefect` -- When decoding a block of base64
-  enocded bytes, the padding was not correct.  Enough padding is added to
+  encoded bytes, the padding was not correct.  Enough padding is added to
   perform the decode, but the resulting decoded bytes may be invalid.
 
 * :class:`InvalidBase64CharactersDefect` -- When decoding a block of base64
-  enocded bytes, characters outside the base64 alphebet were encountered.
+  encoded bytes, characters outside the base64 alphabet were encountered.
   The characters are ignored, but the resulting decoded bytes may be invalid.
diff --git a/Doc/library/email.generator.rst b/Doc/library/email.generator.rst
index ab0fbc2..1e64e10 100644
--- a/Doc/library/email.generator.rst
+++ b/Doc/library/email.generator.rst
@@ -88,8 +88,8 @@
       If ``cte_type`` is ``7bit``, convert the bytes with the high bit set as
       needed using an ASCII-compatible :mailheader:`Content-Transfer-Encoding`.
       That is, transform parts with non-ASCII
-      :mailheader:`Cotnent-Transfer-Encoding`
-      (:mailheader:`Content-Transfer-Encoding: 8bit`) to an ASCII compatibile
+      :mailheader:`Content-Transfer-Encoding`
+      (:mailheader:`Content-Transfer-Encoding: 8bit`) to an ASCII compatible
       :mailheader:`Content-Transfer-Encoding`, and encode RFC-invalid non-ASCII
       bytes in headers using the MIME ``unknown-8bit`` character set, thus
       rendering them RFC-compliant.
diff --git a/Doc/library/email.headerregistry.rst b/Doc/library/email.headerregistry.rst
index 2c830cf..ce283c6 100644
--- a/Doc/library/email.headerregistry.rst
+++ b/Doc/library/email.headerregistry.rst
@@ -451,5 +451,5 @@
 
 .. rubric:: Footnotes
 
-.. [1] Oringally added in 3.3 as a :term:`provisional module <provisional
+.. [1] Originally added in 3.3 as a :term:`provisional module <provisional
        package>`
diff --git a/Doc/library/email.message.rst b/Doc/library/email.message.rst
index d36e769..261d0d6 100644
--- a/Doc/library/email.message.rst
+++ b/Doc/library/email.message.rst
@@ -52,7 +52,7 @@
 
 .. class:: EmailMessage(policy=default)
 
-   If *policy* is specified use the rules it specifies to udpate and serialize
+   If *policy* is specified use the rules it specifies to update and serialize
    the representation of the message.  If *policy* is not set, use the
    :class:`~email.policy.default` policy, which follows the rules of the email
    RFCs except for line endings (instead of the RFC mandated ``\r\n``, it uses
@@ -63,7 +63,7 @@
 
       Return the entire message flattened as a string.  When optional
       *unixfrom* is true, the envelope header is included in the returned
-      string.  *unixfrom* defaults to ``False``.  For backward compabitility
+      string.  *unixfrom* defaults to ``False``.  For backward compatibility
       with the base :class:`~email.message.Message` class *maxheaderlen* is
       accepted, but defaults to ``None``, which means that by default the line
       length is controlled by the
@@ -213,7 +213,7 @@
          del msg['subject']
          msg['subject'] = 'Python roolz!'
 
-      If the :mod:`policy` defines certain haders to be unique (as the standard
+      If the :mod:`policy` defines certain headers to be unique (as the standard
       policies do), this method may raise a :exc:`ValueError` when an attempt
       is made to assign a value to such a header when one already exists.  This
       behavior is intentional for consistency's sake, but do not depend on it
@@ -558,7 +558,7 @@
       the part a candidate match if the value of the header is ``inline``.
 
       If none of the candidates matches any of the preferences in
-      *preferneclist*, return ``None``.
+      *preferencelist*, return ``None``.
 
       Notes: (1) For most applications the only *preferencelist* combinations
       that really make sense are ``('plain',)``, ``('html', 'plain')``, and the
@@ -746,6 +746,6 @@
 
 .. rubric:: Footnotes
 
-.. [1] Oringally added in 3.4 as a :term:`provisional module <provisional
+.. [1] Originally added in 3.4 as a :term:`provisional module <provisional
        package>`.  Docs for legacy message class moved to
        :ref:`compat32_message`.
diff --git a/Doc/library/email.mime.rst b/Doc/library/email.mime.rst
index d9dae9f..f37f6aa 100644
--- a/Doc/library/email.mime.rst
+++ b/Doc/library/email.mime.rst
@@ -242,7 +242,7 @@
 
    Unless the *_charset* argument is explicitly set to ``None``, the
    MIMEText object created will have both a :mailheader:`Content-Type` header
-   with a ``charset`` parameter, and a :mailheader:`Content-Transfer-Endcoding`
+   with a ``charset`` parameter, and a :mailheader:`Content-Transfer-Encoding`
    header.  This means that a subsequent ``set_payload`` call will not result
    in an encoded payload, even if a charset is passed in the ``set_payload``
    command.  You can "reset" this behavior by deleting the
diff --git a/Doc/library/email.parser.rst b/Doc/library/email.parser.rst
index c323ebc..dea409d 100644
--- a/Doc/library/email.parser.rst
+++ b/Doc/library/email.parser.rst
@@ -139,7 +139,7 @@
 .. class:: BytesParser(_class=None, *, policy=policy.compat32)
 
    Create a :class:`BytesParser` instance.  The *_class* and *policy*
-   arguments have the same meaning and sematnics as the *_factory*
+   arguments have the same meaning and semantics as the *_factory*
    and *policy* arguments of :class:`BytesFeedParser`.
 
    Note: **The policy keyword should always be specified**; The default will
diff --git a/Doc/library/email.policy.rst b/Doc/library/email.policy.rst
index 8a41877..8e70762 100644
--- a/Doc/library/email.policy.rst
+++ b/Doc/library/email.policy.rst
@@ -276,7 +276,7 @@
       Called when a header is added to an :class:`~email.message.EmailMessage`
       or :class:`~email.message.Message` object.  If the returned value is not
       ``0`` or ``None``, and there are already a number of headers with the
-      name *name* greather than or equal to the value returned, a
+      name *name* greater than or equal to the value returned, a
       :exc:`ValueError` is raised.
 
       Because the default behavior of ``Message.__setitem__`` is to append the
@@ -533,7 +533,7 @@
 
    The same as ``SMTP`` except that :attr:`~EmailPolicy.utf8` is ``True``.
    Useful for serializing messages to a message store without using encoded
-   words in the headers.  Should only be used for SMTP trasmission if the
+   words in the headers.  Should only be used for SMTP transmission if the
    sender or recipient addresses have non-ASCII characters (the
    :meth:`smtplib.SMTP.send_message` method handles this automatically).
 
@@ -647,5 +647,5 @@
 
 .. rubric:: Footnotes
 
-.. [1] Oringally added in 3.3 as a :term:`provisional feature <provisional
+.. [1] Originally added in 3.3 as a :term:`provisional feature <provisional
        package>`.
diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst
index a428f51..a6b20a5 100644
--- a/Doc/library/exceptions.rst
+++ b/Doc/library/exceptions.rst
@@ -243,7 +243,7 @@
 
    .. note::
 
-      It should not be used to indicate that an operater or method is not
+      It should not be used to indicate that an operator or method is not
       meant to be supported at all -- in that case either leave the operator /
       method undefined or, if a subclass, set it to :data:`None`.
 
diff --git a/Doc/library/sunau.rst b/Doc/library/sunau.rst
index 1ecc7a7..c8357e4 100644
--- a/Doc/library/sunau.rst
+++ b/Doc/library/sunau.rst
@@ -118,7 +118,7 @@
 
 .. method:: AU_read.getnchannels()
 
-   Returns number of audio channels (1 for mone, 2 for stereo).
+   Returns number of audio channels (1 for mono, 2 for stereo).
 
 
 .. method:: AU_read.getsampwidth()
diff --git a/Doc/library/turtle.rst b/Doc/library/turtle.rst
index 6f2626c..041b651 100644
--- a/Doc/library/turtle.rst
+++ b/Doc/library/turtle.rst
@@ -1796,7 +1796,7 @@
    :param prompt: string
 
    Pop up a dialog window for input of a string. Parameter title is
-   the title of the dialog window, propmt is a text mostly describing
+   the title of the dialog window, prompt is a text mostly describing
    what information to input.
    Return the string input. If the dialog is canceled, return ``None``. ::
 
diff --git a/Doc/library/xml.dom.pulldom.rst b/Doc/library/xml.dom.pulldom.rst
index b502554..5c0f469 100644
--- a/Doc/library/xml.dom.pulldom.rst
+++ b/Doc/library/xml.dom.pulldom.rst
@@ -108,7 +108,7 @@
       :class:`xml.dom.minidom.Element` if event equals :data:`START_ELEMENT` or
       :data:`END_ELEMENT` or :class:`xml.dom.minidom.Text` if event equals
       :data:`CHARACTERS`.
-      The current node does not contain informations about its children, unless
+      The current node does not contain information about its children, unless
       :func:`expandNode` is called.
 
    .. method:: expandNode(node)