input: from typing import List
  
  def count_stable_binary_arrays(zero: int, one: int, limit: int) -> int:
      """
      You have three positive integers zero, one, and limit.
  
      A binary array arr is termed stable if:
  
      The count of 0s in arr is exactly zero.
      The count of 1s in arr is exactly one.
      Every subarray of arr with a length greater than limit must include both 0 and 1.
      Return the total count of stable binary arrays.
  
      As the result can be very large, return it modulo 10^9 + 7.
  
      Examples:
      >>> zero = 1, one = 1, limit = 2
      2
      >>> zero = 1, one = 2, limit = 1
      1
      >>> zero = 3, one = 3, limit = 2
      14
  
      Constraints:
      1 <= zero, one, limit <= 200
      """
output:     
      MOD = 10**9 + 7
      
      if limit == 1:
          return 1
      
      dp = [[[0] * (one + 1) for _ in range(zero + 1)] for _ in range(limit + 1)]
      dp[0][0][0] = 1
      
      for l in range(limit + 1):
          for z in range(zero + 1):
              for o in range(one + 1):
                  if z < zero:
                      dp[l][z + 1][o] = (dp[l][z + 1][o] + dp[l][z][o]) % MOD
                  if o < one:
                      dp[l][z][o + 1] = (dp[l][z][o + 1] + dp[l][z][o]) % MOD
      
      count = 0
      for l in range(1, limit + 1):
          count = (count + dp[l][zero][one]) % MOD
      
      return count
  