code: def decode_params(params):
      """Decode parameters list according to RFC 2231.
  
      params is a sequence of 2-tuples containing (param name, string value).
      """
      # Copy params so we don't mess with the original
      params = params[:]
      new_params = []
      # Map parameter's name to a list of continuations.  The values are a
      # 3-tuple of the continuation number, the string value, and a flag
      # specifying whether a particular segment is %-encoded.
      rfc2231_params = {}
      name, value = params.pop(0)
      new_params.append((name, value))
      while params:
          name, value = params.pop(0)
          if name.endswith("*"):
              encoded = True
          else:
              encoded = False
          value = unquote(value)
          mo = rfc2231_continuation.match(name)
          if mo:
              name, num = mo.group("name", "num")
              if num is not None:
                  num = int(num)
              rfc2231_params.setdefault(name, []).append(
                  (num, value, encoded)
              )
          else:
              new_params.append((name, '"%s"' % quote(value)))
      if rfc2231_params:
          for name, continuations in rfc2231_params.items():
              value = []
              extended = False
              # Sort by number
              continuations.sort()
              # And now append all values in numerical order, converting
              # %-encodings for the encoded segments.  If any of the
              # continuation names ends in a *, then the entire string, after
              # decoding segments and concatenating, must have the charset and
              # language specifiers at the beginning of the string.
              for num, s, encoded in continuations:
                  if encoded:
                      s = urllib.unquote(s)
                      extended = True
                  value.append(s)
              value = quote(EMPTYSTRING.join(value))
              if extended:
                  charset, language, value = decode_rfc2231(value)
                  new_params.append(
                      (name, (charset, language, '"%s"' % value))
                  )
              else:
                  new_params.append((name, '"%s"' % value))
      return new_params
  
imports: import os
  import re
  import time
  import base64
  import random
  import socket
  import urllib
  import warnings
  from email._parseaddr import quote
  from email._parseaddr import AddressList
  from email._parseaddr import mktime_tz
  from email._parseaddr import parsedate
  from email._parseaddr import parsedate_tz
  from quopri import decodestring
  from email.encoders import _bencode, _qencode
label_desc: Use image node_id 14 for calling a global function with example usage: decode_params(params) and returns: new_params