code: 
  
  from __future__ import annotations
  
  from collections.abc import Iterable
  from dataclasses import dataclass
  from typing import Any
  
  class 			lowerCamelCase  :
  
  
    '''simple docstring'''
  
  
  
  
  
  
  
    SCREAMING_SNAKE_CASE							=     ('_front', '_back', '_len')
  
    @dataclass
    class 			lowerCamelCase  :
  
  
      '''simple docstring'''
  
  
  
  
  
  
  
      SCREAMING_SNAKE_CASE							=     None
      SCREAMING_SNAKE_CASE							=     None
      SCREAMING_SNAKE_CASE							=     None
  
  
  
  
    class 			lowerCamelCase  :
  
  
      '''simple docstring'''
  
  
  
  
  
  
  
      SCREAMING_SNAKE_CASE							=     ('_cur',)
  
  
  
      def __init__(self       ,					_lowerCamelCase  ):
  
  
            """simple docstring"""
  
            UpperCAmelCase__ :       Any						=						cur
  
  
  
      def __iter__(self  ):
  
  
            """simple docstring"""
  
            return self
  
  
  
  
      def    _a			(self  ):
  
  
            """simple docstring"""
  
            if self._cur is None:
                  # finished iterating
                  raise StopIteration
            UpperCAmelCase__ :       Optional[Any]						=						self._cur.val
            UpperCAmelCase__ :       Optional[Any]						=						self._cur.next_node
  
            return val
  
  
  
  
    def __init__(self       ,					_lowerCamelCase = None  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       List[str]						=						None
          UpperCAmelCase__ :       Tuple						=						None
          UpperCAmelCase__ :       List[Any]						=						0
  
          if iterable is not None:
                # append every value to the deque
                for val in iterable:
                      self.append(_lowerCamelCase  )
  
  
  
    def    _a			(self       ,					_lowerCamelCase  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       Union[str, Any]						=						self._Node(_lowerCamelCase       ,					_lowerCamelCase       ,					_lowerCamelCase  )
          if self.is_empty():
                # front = back
                UpperCAmelCase__ :       Tuple						=						node
                UpperCAmelCase__ :       List[str]						=						1
          else:
                # connect nodes
                UpperCAmelCase__ :       Tuple						=						node
                UpperCAmelCase__ :       str						=						self._back
                UpperCAmelCase__ :       Dict						=						node  # assign new back to the new node
  
                self._len += 1
  
                # make sure there were no errors
                assert not self.is_empty(), "Error on appending value."
  
  
  
    def    _a			(self       ,					_lowerCamelCase  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       Tuple						=						self._Node(_lowerCamelCase       ,					_lowerCamelCase       ,					_lowerCamelCase  )
          if self.is_empty():
                # front = back
                UpperCAmelCase__ :       Optional[Any]						=						node
                UpperCAmelCase__ :       Union[str, Any]						=						1
          else:
                # connect nodes
                UpperCAmelCase__ :       Dict						=						self._front
                UpperCAmelCase__ :       str						=						node
                UpperCAmelCase__ :       Dict						=						node  # assign new front to the new node
  
                self._len += 1
  
                # make sure there were no errors
                assert not self.is_empty(), "Error on appending value."
  
  
  
    def    _a			(self       ,					_lowerCamelCase  ):
  
  
          """simple docstring"""
  
          for val in iterable:
                self.append(_lowerCamelCase  )
  
  
  
    def    _a			(self       ,					_lowerCamelCase  ):
  
  
          """simple docstring"""
  
          for val in iterable:
                self.appendleft(_lowerCamelCase  )
  
  
  
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          assert not self.is_empty(), "Deque is empty."
  
          UpperCAmelCase__ :       int						=						self._back
          UpperCAmelCase__ :       int						=						self._back.prev_node  # set new back
          # drop the last node - python will deallocate memory automatically
          UpperCAmelCase__ :       List[str]						=						None
  
          self._len -= 1
  
          return topop.val
  
  
  
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          assert not self.is_empty(), "Deque is empty."
  
          UpperCAmelCase__ :       Optional[Any]						=						self._front
          UpperCAmelCase__ :       int						=						self._front.next_node  # set new front and drop the first node
          UpperCAmelCase__ :       Dict						=						None
  
          self._len -= 1
  
          return topop.val
  
  
  
    def    _a			(self  ):
  
  
          """simple docstring"""
  
          return self._front is None
  
  
  
    def __len__(self  ):
  
  
          """simple docstring"""
  
          return self._len
  
  
  
    def __eq__(self       ,					_lowerCamelCase  ):
  
  
          """simple docstring"""
  
          if not isinstance(_lowerCamelCase       ,					_lowerCamelCase  ):
                return NotImplemented
  
          UpperCAmelCase__ :       Tuple						=						self._front
          UpperCAmelCase__ :       Optional[Any]						=						other._front
  
          # if the length of the dequeues are not the same, they are not equal
          if len(self  ) != len(_lowerCamelCase  ):
                return False
  
          while me is not None and oth is not None:
                # compare every value
                if me.val != oth.val:
                      return False
                UpperCAmelCase__ :       List[Any]						=						me.next_node
                UpperCAmelCase__ :       Any						=						oth.next_node
  
          return True
  
  
  
    def __iter__(self  ):
  
  
          """simple docstring"""
  
          return Deque._Iterator(self._front  )
  
  
  
  
    def __repr__(self  ):
  
  
          """simple docstring"""
  
          UpperCAmelCase__ :       List[str]						=						[]
          UpperCAmelCase__ :       List[str]						=						self._front
          while aux is not None:
                # append the values in a list to display
                values_list.append(aux.val  )
                UpperCAmelCase__ :       Union[str, Any]						=						aux.next_node
  
          return F"""[{', '.join(repr(_lowerCamelCase  ) for val in values_list  )}]"""
  
  
  if __name__ == "__main__":
      import doctest
  
      doctest.testmod()
  
  
style_context: 
  
  """simple docstring"""
  from __future__ import annotations
  
  
  
  
  def 				a__	(	lowerCAmelCase						)  ->   set[int]:
        UpperCAmelCase__ :       List[Any]						=						{1}
        UpperCAmelCase__ :       Optional[int]						=						[1]
        for _ in range(2 ,  depth + 1						):
              UpperCAmelCase__ :       Tuple						=						[*previous_coefficients, 0]
              UpperCAmelCase__ :       List[str]						=						[0, *previous_coefficients]
              UpperCAmelCase__ :       Dict						=						[]
              for x, y in zip(lowerCAmelCase ,  lowerCAmelCase						):
                    coefficients.add(x + y						)
                    previous_coefficients.append(x + y						)
        return coefficients
  
  
  
  
  def 				a__	(	lowerCAmelCase						)  ->   set[int]:
        UpperCAmelCase__ :       List[str]						=						set()
        for number in unique_coefficients:
              UpperCAmelCase__ :       int						=						2
              UpperCAmelCase__ :       List[Any]						=						number
              while divisor**2 <= copy_number:
                    UpperCAmelCase__ :       Tuple						=						0
                    while copy_number % divisor == 0:
                          copy_number //= divisor
                          multiplicity += 1
                    if multiplicity >= 2:
                          non_squarefrees.add(lowerCAmelCase						)
                          break
                    divisor += 1
  
        return unique_coefficients.difference(lowerCAmelCase						)
  
  
  
  
  def 				a__	(	lowerCAmelCase = 51						)  ->   int:
        UpperCAmelCase__ :       Any						=						get_pascal_triangle_unique_coefficients(lowerCAmelCase						)
        UpperCAmelCase__ :       Dict						=						get_squarefrees(lowerCAmelCase						)
        return sum(lowerCAmelCase						)
  
  
  if __name__ == "__main__":
      print(f'''{solution() = }''')
  
  