diff --git a/Doc/data/python3.14.abi b/Doc/data/python3.14.abi index 486c54565c45ae..f180757e352053 100644 --- a/Doc/data/python3.14.abi +++ b/Doc/data/python3.14.abi @@ -1816,7 +1816,7 @@ - + @@ -1902,13 +1902,22 @@ + + + + + + + + + - + - - - + + + @@ -1958,27 +1967,27 @@ - - - - - - - + + + + + + + - + - + - + @@ -1990,15 +1999,15 @@ - + - - + + - + @@ -2010,14 +2019,14 @@ - - + + - + @@ -2054,9 +2063,9 @@ - - - + + + @@ -2066,51 +2075,51 @@ - + - + - + - + - + - + - - + + - - + + - - - + + + - + @@ -2120,18 +2129,18 @@ - + - + - - - - + + + + @@ -2141,11 +2150,11 @@ - + - + @@ -2188,15 +2197,15 @@ - - - + + + - - + + @@ -2217,38 +2226,38 @@ - - + + - + - + - - - - - + + - + - + + - - - + + + + + - + - + @@ -2256,12 +2265,12 @@ - + - + @@ -2270,8 +2279,8 @@ + - @@ -2280,16 +2289,16 @@ - + - + - - - + + + - + @@ -2306,92 +2315,92 @@ - - - + + + - - + + - - + + - - - + + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - + + - + - + - + - + - + - + - - + + @@ -2399,58 +2408,58 @@ - + - + - - - + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -2458,22 +2467,22 @@ - + - + - + - + - + - + @@ -2485,155 +2494,155 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - + - + - + - - - + + + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - + + + + + + + + - - + + - + @@ -2653,68 +2662,68 @@ - + - + - + - + - + - + - + - + - + - - + + - - + + - - - + + + - - + + - + @@ -2730,85 +2739,85 @@ - + - + - + - + - + - + - + - + - - - + + + - + - - - - - + + + + + - - - - + + + + - - + + - - + + - + - + - + @@ -2820,117 +2829,117 @@ - - + + - + - + - + - + - + - + - + - - - + + + - + - - - + + + - + - + - - + + - - + + - - + + - - + + - + - - + + - + - + - + - + - + - + - + @@ -2947,8 +2956,8 @@ - - + + @@ -2976,24 +2985,24 @@ - + - + - + - - + + @@ -3003,37 +3012,37 @@ - + - + - - + + - - + + - - + + - - + + @@ -3058,19 +3067,19 @@ - - + + - - + + - + @@ -3080,108 +3089,108 @@ - + - + - + - - + + - - + + - + - - + + - + - + - + - + - + - + - - + + - + - + - - + + - + - - - + + + - - - + + + - - - + + + - - - + + + - + - + @@ -3209,7 +3218,7 @@ - + @@ -3227,15 +3236,15 @@ - + - + - + @@ -3252,12 +3261,12 @@ - + - + - - + + @@ -3269,29 +3278,29 @@ - + - + - + - + - + - - + + - + @@ -3304,183 +3313,183 @@ - + - + - + - - + + - - + + - + - + - + - - + + - + - + - - + + - - + + - + - + - + - + - - + + - - + + - - - + + + - + - - + + - + - - + + - + - + - + - + - + - - + + - - + + - + - - - + + + - + - - + + - - + + - - + + - + @@ -3488,7 +3497,7 @@ - + @@ -3496,7 +3505,7 @@ - + @@ -3504,41 +3513,41 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -3557,33 +3566,33 @@ - + - + - + - + - + - + - + - + - - - - + + + + @@ -3591,62 +3600,62 @@ - + - - + + - + - + - + - - + + - + - + - + - - - - - - + + + - + + + + - + - + - + @@ -3670,28 +3679,28 @@ - + - + - - + + - - + + - - - + + + @@ -3702,26 +3711,26 @@ - + - - + + - + - - + + - + @@ -3730,113 +3739,113 @@ - - + + - + - + - + - - - - - + + + + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - + - + - - + + - - + + - + - + - + - + - + @@ -3845,7 +3854,7 @@ - + @@ -3854,16 +3863,16 @@ - - + + - + - - + + @@ -3898,58 +3907,58 @@ - + - + - + - + - + - + - + - + - - + + - + - + @@ -3964,7 +3973,7 @@ - + @@ -3982,19 +3991,19 @@ - + - + - + - + @@ -4010,8 +4019,8 @@ - - + + @@ -4022,8 +4031,8 @@ - - + + @@ -4042,14 +4051,14 @@ - + - + @@ -4059,18 +4068,18 @@ - + - + - + @@ -4089,12 +4098,12 @@ - + - + - + @@ -4185,45 +4194,45 @@ - - + + - + - + - + - + - + - + - + - + - - + + @@ -4231,32 +4240,32 @@ - - - + + + - + - + - + - + - + - + @@ -4267,44 +4276,44 @@ - + - + - - - + + + - - - + + + - + - + - + - - - - - - - + + + + + + + @@ -4312,7 +4321,7 @@ - + @@ -4323,7 +4332,7 @@ - + @@ -4351,7 +4360,7 @@ - + @@ -4364,38 +4373,38 @@ - + - - - + + + - - - + + + - + - + - + - + @@ -4419,29 +4428,29 @@ - + - + - + - + - + @@ -4471,7 +4480,7 @@ - + @@ -4482,7 +4491,7 @@ - + @@ -4526,7 +4535,7 @@ - + @@ -4555,47 +4564,47 @@ - + - + - + - + - - + + - - - + + + - - + + - + @@ -4608,30 +4617,30 @@ - + - + - + - + - - + + - - + + @@ -4946,7 +4955,7 @@ - + @@ -5015,7 +5024,7 @@ - + @@ -5025,18 +5034,18 @@ - - + + - - - + + + - - + + @@ -5066,7 +5075,7 @@ - + @@ -5074,18 +5083,18 @@ - + - - - - - - - + + + + + + + @@ -5132,31 +5141,31 @@ - + - + - + - + - + @@ -5224,8 +5233,8 @@ - - + + @@ -5241,7 +5250,7 @@ - + @@ -5252,7 +5261,7 @@ - + @@ -5263,30 +5272,30 @@ - + - + - - + + - + - + - + @@ -5304,8 +5313,8 @@ - - + + @@ -5332,7 +5341,7 @@ - + @@ -5344,14 +5353,14 @@ - + - - + + - + @@ -5402,16 +5411,16 @@ - - + + - + - + - + @@ -5428,7 +5437,7 @@ - + @@ -5442,65 +5451,65 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - + @@ -5520,13 +5529,13 @@ - + - - - - + + + + @@ -5536,26 +5545,26 @@ - + - + - + - + - - + + - + @@ -5570,28 +5579,28 @@ - + - + - + - + - - + + - - + + @@ -5604,7 +5613,7 @@ - + @@ -5651,55 +5660,55 @@ - + - + - + - + - - + + - + - - + + - + - + - + - - + + - - - + + + - + - + @@ -5707,61 +5716,61 @@ - + - + - + - - + + - + - + - - + + - - + + - + - + - + - + - + - + - + @@ -5771,18 +5780,18 @@ - + - + - + @@ -5801,14 +5810,14 @@ - + - + @@ -5874,7 +5883,7 @@ - + @@ -5893,7 +5902,7 @@ - + @@ -5903,20 +5912,20 @@ - + - + - + - + - + @@ -5927,7 +5936,7 @@ - + @@ -5935,15 +5944,15 @@ - + - + - + @@ -5953,32 +5962,32 @@ - + - + - - + + - + - + - + @@ -6000,8 +6009,8 @@ - - + + @@ -6009,7 +6018,7 @@ - + @@ -6027,7 +6036,7 @@ - + @@ -6056,24 +6065,24 @@ - - + + - - + + - + - + - + - + @@ -6084,42 +6093,42 @@ - + - - + + - + - + - + - + - + - + - + @@ -6139,7 +6148,7 @@ - + @@ -6150,7 +6159,7 @@ - + @@ -6161,12 +6170,12 @@ - + - + @@ -6175,7 +6184,7 @@ - + @@ -6189,119 +6198,119 @@ - - + + - + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - - - - - - - - - + + + + + + + + + + - + - + @@ -6311,33 +6320,33 @@ - + - + - + - + - + - + - - + + @@ -6345,18 +6354,18 @@ - - + + - + - + @@ -6396,12 +6405,12 @@ - - - + + + - + @@ -6409,7 +6418,7 @@ - + @@ -6433,7 +6442,7 @@ - + @@ -6453,144 +6462,144 @@ - + - + - + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - - + + + - - - - - - - - + + + + + + + + - - - + + + - - - - + + + + - - - - - - + + + + + + - - - + + + - - + + - - + + - - + + - - - - + + + + - + - + - + - + - + - + - + - + - - + + - + @@ -6635,7 +6644,7 @@ - + @@ -6659,16 +6668,16 @@ - + - + - + - + @@ -6677,15 +6686,15 @@ - + - + - - - + + + @@ -6693,26 +6702,26 @@ - + - - + + - + - + - + @@ -6724,38 +6733,38 @@ - + - + - + - - - - + + + + - - + + - + - + - + - + @@ -6767,13 +6776,13 @@ - - + + - - + + @@ -6781,148 +6790,148 @@ - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - + - + - + - + - + - - - - - - - - - - + + + + + + + + + + - + - - + + @@ -6931,9 +6940,9 @@ - + - + @@ -6961,7 +6970,7 @@ - + @@ -6979,28 +6988,28 @@ - + - + - + - + - - + + @@ -7018,41 +7027,41 @@ - - - + + + - + - + - + - + - - + + - + - + - + - + @@ -7061,29 +7070,29 @@ - + - + - + - + - + - + - + - - - + + + @@ -7096,16 +7105,16 @@ - - - - - - - - - - + + + + + + + + + + @@ -7113,10 +7122,10 @@ - + - + @@ -7134,207 +7143,207 @@ - + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - - - - + + + + + + - + - - + + - - + + @@ -7362,22 +7371,22 @@ - + - + - + - + - + @@ -7396,7 +7405,7 @@ - + @@ -7411,7 +7420,7 @@ - + @@ -7491,7 +7500,7 @@ - + @@ -7656,10 +7665,10 @@ - + - + @@ -7672,15 +7681,15 @@ - + - + - + @@ -7716,15 +7725,15 @@ - + - + - + - + @@ -7732,7 +7741,7 @@ - + @@ -7771,38 +7780,38 @@ - + - + - + - - + + - + - - - - + + + + - + - + @@ -7811,37 +7820,32 @@ - - - - - - - + + - + - + - + - + - + @@ -7851,7 +7855,7 @@ - + @@ -7870,43 +7874,43 @@ - + - + - - - + + + - + - + - - - + + + - - + + - - - + + + - - + + - + - + @@ -7915,38 +7919,38 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + @@ -7986,11 +7990,15 @@ - + + + + + + + - - @@ -8006,21 +8014,21 @@ - - + + - + - - + + - + @@ -8029,7 +8037,7 @@ - + @@ -8053,93 +8061,93 @@ - + - - - - - - + + + + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - + - + - + - + @@ -8153,8 +8161,8 @@ - - + + @@ -8184,8 +8192,8 @@ - - + + @@ -8216,34 +8224,34 @@ - + - - + + - - + + - - + + - + - + - + @@ -8252,6 +8260,11 @@ + + + + + @@ -8269,16 +8282,16 @@ - + - - - + + + - + @@ -8290,30 +8303,30 @@ - + - + - + - + - + - + - + - + @@ -8325,80 +8338,80 @@ - + - + - + - + - + - + - - - - - - - + + + + + + + - - + + - - - - + + + + - + - + - - + + - + - + - - - + + + - - + + - + - + - + @@ -8409,27 +8422,27 @@ - + - + - - - + + + - - + + - + @@ -8437,17 +8450,17 @@ - + - + - + @@ -8455,24 +8468,24 @@ - + - + - - + + - + @@ -8487,22 +8500,22 @@ - + - + - + - + - + @@ -8511,13 +8524,13 @@ - + - + - + @@ -8526,10 +8539,10 @@ - + - + @@ -8541,12 +8554,12 @@ - + - + @@ -8560,8 +8573,8 @@ - - + + @@ -8577,41 +8590,36 @@ - + - - - + + + - - + + - - - + + + - + - - - - - @@ -8656,21 +8664,21 @@ - - + + - + - + - + - + @@ -8679,13 +8687,13 @@ - + - + @@ -8693,56 +8701,56 @@ - + - + - + - - - + + + - + - + - + - + - + - + - + @@ -8754,7 +8762,7 @@ - + @@ -8792,7 +8800,7 @@ - + @@ -8802,26 +8810,26 @@ - + - + - + - + @@ -8841,76 +8849,76 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + @@ -8918,6 +8926,11 @@ + + + + + @@ -8944,7 +8957,7 @@ - + @@ -8952,7 +8965,7 @@ - + @@ -8990,7 +9003,7 @@ - + @@ -9003,20 +9016,20 @@ - - + + - + - + @@ -9026,20 +9039,20 @@ - + - - + + - + - + @@ -9060,7 +9073,7 @@ - + @@ -9078,7 +9091,7 @@ - + @@ -9095,27 +9108,27 @@ - + - + - + - + - + - + @@ -9128,12 +9141,12 @@ - + - + - + @@ -9144,7 +9157,7 @@ - + @@ -9160,11 +9173,11 @@ - + - - + + @@ -9178,19 +9191,19 @@ - + - - + + - + - + @@ -9222,7 +9235,7 @@ - + @@ -9248,7 +9261,7 @@ - + @@ -9260,7 +9273,7 @@ - + @@ -9272,15 +9285,15 @@ - + - + - + @@ -9289,7 +9302,7 @@ - + @@ -9300,47 +9313,47 @@ - + - + - + - + - + - + - + - + @@ -9372,17 +9385,17 @@ - - + + - + - - + + @@ -9390,18 +9403,18 @@ - + - + - + @@ -9416,7 +9429,7 @@ - + @@ -9429,8 +9442,8 @@ - - + + @@ -9454,19 +9467,19 @@ - + - + - + @@ -9491,10 +9504,10 @@ - + - + @@ -9502,7 +9515,7 @@ - + @@ -9535,7 +9548,7 @@ - + @@ -9550,7 +9563,7 @@ - + @@ -9592,17 +9605,17 @@ - + - + - + @@ -9636,15 +9649,15 @@ - + - + - + @@ -9674,17 +9687,17 @@ - - + + - - + + - + - + @@ -9697,7 +9710,7 @@ - + @@ -9705,58 +9718,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -9799,7 +9812,7 @@ - + @@ -9820,7 +9833,7 @@ - + @@ -9841,16 +9854,16 @@ - + - + - + - + @@ -10008,7 +10021,7 @@ - + @@ -10027,36 +10040,36 @@ - + - + - + - + - + - - - - - + + + + + - + - + @@ -10103,7 +10116,7 @@ - + @@ -10111,7 +10124,7 @@ - + @@ -10119,7 +10132,7 @@ - + @@ -10127,7 +10140,7 @@ - + @@ -10135,7 +10148,7 @@ - + @@ -10143,7 +10156,7 @@ - + @@ -10151,7 +10164,7 @@ - + @@ -10159,7 +10172,7 @@ - + @@ -10167,7 +10180,7 @@ - + @@ -10175,7 +10188,7 @@ - + @@ -10183,7 +10196,7 @@ - + @@ -10191,7 +10204,7 @@ - + @@ -10199,7 +10212,7 @@ - + @@ -10207,13 +10220,13 @@ - + - + @@ -10221,7 +10234,7 @@ - + @@ -10244,52 +10257,52 @@ - - + + - + - - + + - - - + + + - + - + - - - + + + - + - + - + - - + + @@ -10298,26 +10311,26 @@ - + - + - + - + - + @@ -10327,136 +10340,136 @@ - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - + - - - - - + + + + + @@ -10464,11 +10477,11 @@ - + - + @@ -10483,17 +10496,17 @@ - + - - + + - + - - + + @@ -10516,14 +10529,14 @@ - + - + @@ -10533,7 +10546,7 @@ - + @@ -10553,34 +10566,34 @@ - - - + + + - - - + + + - + - + - + @@ -10595,7 +10608,7 @@ - + @@ -10613,45 +10626,45 @@ - + - - - - - - + + + + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + @@ -10676,11 +10689,11 @@ - + - + @@ -10691,17 +10704,17 @@ - + - + - + - + @@ -10746,8 +10759,8 @@ - - + + @@ -10761,12 +10774,12 @@ - + - + - - + + @@ -10785,7 +10798,7 @@ - + @@ -10793,7 +10806,7 @@ - + @@ -10826,10 +10839,10 @@ - + - + @@ -10838,7 +10851,7 @@ - + @@ -10856,7 +10869,7 @@ - + @@ -10864,7 +10877,7 @@ - + @@ -10876,47 +10889,47 @@ - + - + - + - - + + - - + + + - - + + + - - - + - + - + - + - - + + @@ -10948,18 +10961,18 @@ - + - + - - - + + + @@ -10972,178 +10985,178 @@ - + - + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - - - - + + + + + - - - - + + + + - - + + - - + + - - + + - - - - + + + + - - + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - - - - + + + + + - - - + + + @@ -11151,24 +11164,24 @@ - - + + - + - - + + - - + + - - + + @@ -11176,9 +11189,9 @@ - + - + @@ -11192,7 +11205,7 @@ - + @@ -11217,15 +11230,15 @@ - + - + - + @@ -11233,29 +11246,29 @@ - + - + - + - + - + - - + + @@ -11275,18 +11288,18 @@ - - - + + + - - - - + + + + @@ -11309,25 +11322,25 @@ - - + + - - + + - + - - + + - + @@ -11346,74 +11359,74 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - - + + @@ -11430,30 +11443,30 @@ - + - + - - + + - + - + @@ -11469,7 +11482,7 @@ - + @@ -11477,7 +11490,7 @@ - + @@ -11538,12 +11551,12 @@ - + - + @@ -11561,7 +11574,7 @@ - + @@ -11581,14 +11594,14 @@ - + - + @@ -11606,14 +11619,14 @@ - + - + @@ -11690,7 +11703,7 @@ - + @@ -11706,7 +11719,7 @@ - + @@ -11714,7 +11727,7 @@ - + @@ -11750,12 +11763,12 @@ - + - + @@ -11788,92 +11801,92 @@ - - - + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - - + + + - - + + - - - + + + - - + + - - + + - + - - + + - - - + + + - + - + @@ -11889,7 +11902,7 @@ - + @@ -11898,7 +11911,7 @@ - + @@ -11907,14 +11920,14 @@ - + - - - + + + @@ -11930,7 +11943,7 @@ - + @@ -11948,32 +11961,32 @@ - + - + - + - + - + - + - + - - + + - + @@ -11981,7 +11994,7 @@ - + @@ -11993,10 +12006,10 @@ - + - + @@ -12014,7 +12027,7 @@ - + @@ -12026,7 +12039,7 @@ - + @@ -12038,7 +12051,7 @@ - + @@ -12050,7 +12063,7 @@ - + @@ -12062,7 +12075,7 @@ - + @@ -12074,7 +12087,7 @@ - + @@ -12086,7 +12099,7 @@ - + @@ -12098,7 +12111,7 @@ - + @@ -12106,7 +12119,7 @@ - + @@ -12161,7 +12174,7 @@ - + @@ -12482,7 +12495,7 @@ - + @@ -12561,7 +12574,7 @@ - + @@ -12666,7 +12679,7 @@ - + @@ -12691,7 +12704,7 @@ - + @@ -12746,7 +12759,7 @@ - + @@ -12766,27 +12779,27 @@ - + - + - + - + - + - + @@ -13051,7 +13064,7 @@ - + @@ -13084,7 +13097,7 @@ - + @@ -13096,16 +13109,16 @@ - - + + - + - + @@ -13157,75 +13170,75 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -13237,12 +13250,12 @@ - + - + @@ -13320,7 +13333,7 @@ - + @@ -13329,7 +13342,7 @@ - + @@ -13337,7 +13350,7 @@ - + @@ -13358,7 +13371,7 @@ - + @@ -13948,26 +13961,26 @@ - + - + - + - + @@ -14030,7 +14043,7 @@ - + @@ -14048,15 +14061,15 @@ - + - + - + @@ -14071,19 +14084,19 @@ - + - + - + @@ -14263,7 +14276,7 @@ - + @@ -14374,7 +14387,7 @@ - + @@ -14384,7 +14397,7 @@ - + @@ -14423,7 +14436,7 @@ - + @@ -14436,7 +14449,7 @@ - + @@ -14444,15 +14457,15 @@ - + - - - + + + @@ -14460,72 +14473,72 @@ - + - + - - + + - + - + - - + + - + - - + + - + - + - + - - + + - + - + - + - + - + @@ -14543,99 +14556,99 @@ - + - + - + - - - + + + - + - + - + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -14644,10 +14657,10 @@ - + - + @@ -14659,22 +14672,22 @@ - + - + - + - - + + - + @@ -14689,7 +14702,7 @@ - + @@ -14698,9 +14711,9 @@ - + - + @@ -14715,130 +14728,130 @@ - - + + - + - - + + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - - + + - - - - + + + + - + - + - + - + - + @@ -14857,7 +14870,7 @@ - + @@ -14865,13 +14878,13 @@ - + - - + + - + @@ -14916,7 +14929,7 @@ - + @@ -14940,16 +14953,16 @@ - + - + - + - + @@ -14958,36 +14971,36 @@ - + - + - + - - + + - + - + - + - + - + @@ -14995,7 +15008,7 @@ - + @@ -15011,7 +15024,7 @@ - + @@ -15024,7 +15037,7 @@ - + @@ -15072,15 +15085,15 @@ - + - + - + @@ -15088,7 +15101,7 @@ - + @@ -15102,7 +15115,7 @@ - + @@ -15186,19 +15199,19 @@ - + - + - + - + @@ -15255,13 +15268,13 @@ - + - + - + @@ -15285,16 +15298,16 @@ - + - + - + - + @@ -15303,40 +15316,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -15348,17 +15361,17 @@ - + - + - + - + @@ -15367,7 +15380,7 @@ - + @@ -15375,7 +15388,7 @@ - + @@ -15411,7 +15424,7 @@ - + @@ -15443,7 +15456,7 @@ - + @@ -15467,7 +15480,7 @@ - + @@ -15539,13 +15552,13 @@ - + - + @@ -15597,7 +15610,7 @@ - + @@ -15660,10 +15673,10 @@ - + - + @@ -15678,13 +15691,13 @@ - + - + - + @@ -15714,7 +15727,7 @@ - + @@ -15726,7 +15739,7 @@ - + @@ -15735,24 +15748,24 @@ - + - + - + - + - + @@ -15760,7 +15773,7 @@ - + @@ -15772,7 +15785,7 @@ - + @@ -15793,14 +15806,14 @@ - + - + - + @@ -15822,7 +15835,7 @@ - + @@ -15834,7 +15847,7 @@ - + @@ -15846,22 +15859,22 @@ - + - + - + - + - + - + @@ -15891,7 +15904,7 @@ - + @@ -15909,7 +15922,7 @@ - + @@ -15930,7 +15943,7 @@ - + @@ -15945,28 +15958,28 @@ - + - + - + - + - + - + @@ -15977,34 +15990,37 @@ + + + - + - + - + - + - + - + - + - + - + @@ -16013,28 +16029,28 @@ - + - + - + - + - + - + @@ -16042,19 +16058,19 @@ - + - + - + - + - + @@ -16066,7 +16082,7 @@ - + @@ -16086,7 +16102,7 @@ - + @@ -16114,7 +16130,7 @@ - + @@ -16123,20 +16139,20 @@ - + - + - + @@ -16153,7 +16169,7 @@ - + @@ -16169,7 +16185,7 @@ - + @@ -16181,7 +16197,7 @@ - + @@ -16193,7 +16209,7 @@ - + @@ -16205,7 +16221,7 @@ - + @@ -16213,7 +16229,7 @@ - + @@ -17389,7 +17405,7 @@ - + @@ -17398,7 +17414,7 @@ - + @@ -17498,10 +17514,10 @@ - + - + @@ -17563,322 +17579,322 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -17919,7 +17935,7 @@ - + @@ -17933,10 +17949,10 @@ - + - + @@ -17953,7 +17969,7 @@ - + @@ -17973,27 +17989,27 @@ - + - + - + - + - + @@ -18066,7 +18082,7 @@ - + @@ -18095,10 +18111,10 @@ - + - + @@ -20663,7 +20679,7 @@ - + @@ -20671,7 +20687,7 @@ - + @@ -20699,10 +20715,10 @@ - + - + @@ -20763,7 +20779,7 @@ - + @@ -20796,13 +20812,13 @@ - + - + @@ -20810,7 +20826,7 @@ - + @@ -20835,7 +20851,7 @@ - + @@ -20849,10 +20865,10 @@ - + - + @@ -20886,7 +20902,7 @@ - + @@ -20903,7 +20919,7 @@ - + @@ -20918,7 +20934,7 @@ - + @@ -20932,10 +20948,10 @@ - + - + @@ -20952,10 +20968,10 @@ - + - + @@ -20981,7 +20997,7 @@ - + @@ -21084,7 +21100,7 @@ - + @@ -21114,13 +21130,13 @@ - + - + - + @@ -21129,24 +21145,24 @@ - + - + - + - + - + - + @@ -21181,7 +21197,7 @@ - + @@ -21194,7 +21210,7 @@ - + @@ -21202,7 +21218,7 @@ - + @@ -21210,7 +21226,7 @@ - + @@ -21231,7 +21247,7 @@ - + @@ -21271,7 +21287,7 @@ - + @@ -21322,7 +21338,7 @@ - + @@ -21340,7 +21356,7 @@ - + @@ -21367,13 +21383,13 @@ - + - + @@ -21384,7 +21400,7 @@ - + @@ -21412,7 +21428,7 @@ - + @@ -21467,15 +21483,15 @@ - + - + - + @@ -21487,7 +21503,7 @@ - + @@ -21499,22 +21515,22 @@ - + - + - + - + @@ -21529,13 +21545,13 @@ - + - + @@ -21556,7 +21572,7 @@ - + @@ -21610,10 +21626,10 @@ - + - + @@ -21655,13 +21671,13 @@ - + - + - + @@ -21714,16 +21730,16 @@ - + - + - + @@ -21732,12 +21748,12 @@ - + - + @@ -21752,22 +21768,22 @@ - + - + - + - + - + @@ -21783,7 +21799,7 @@ - + @@ -21801,7 +21817,7 @@ - + @@ -21810,7 +21826,7 @@ - + @@ -21826,8 +21842,8 @@ - - + + @@ -21865,7 +21881,7 @@ - + @@ -21997,13 +22013,13 @@ - + - + @@ -22015,10 +22031,10 @@ - + - + @@ -22029,15 +22045,15 @@ - + - + - + @@ -22054,7 +22070,7 @@ - + @@ -22101,7 +22117,7 @@ - + @@ -22145,7 +22161,7 @@ - + @@ -22192,10 +22208,10 @@ - + - + @@ -22215,7 +22231,7 @@ - + @@ -22227,7 +22243,7 @@ - + @@ -22299,7 +22315,7 @@ - + @@ -22320,13 +22336,13 @@ - + - + - + @@ -22334,10 +22350,10 @@ - + - + @@ -22348,12 +22364,12 @@ - + - + @@ -22400,41 +22416,41 @@ - + - + - - + + - + - + - + - + - + - + - + @@ -22449,22 +22465,22 @@ - + - + - + - + - + - + @@ -22477,7 +22493,7 @@ - + @@ -22487,7 +22503,7 @@ - + @@ -22495,10 +22511,10 @@ - + - + @@ -22553,42 +22569,42 @@ - + - - - - + - + - + - + - + + + + - + - + - - - - + + + + @@ -22635,37 +22651,37 @@ - + - + - + - + - + - + - + - + - + @@ -22680,17 +22696,17 @@ - - - + + + - - + + - + @@ -22708,7 +22724,7 @@ - + @@ -22720,30 +22736,30 @@ - + - + - - + + - + - - - - + + + + - + - + @@ -22754,10 +22770,10 @@ - + - + @@ -22770,7 +22786,7 @@ - + @@ -22779,7 +22795,7 @@ - + @@ -22800,13 +22816,13 @@ - + - + @@ -22819,31 +22835,31 @@ - - - - + + + + - + - + - + - + @@ -22872,43 +22888,43 @@ - + - + - - + + - - + + - - - - - - - - + + + + + + + + - + - + - + @@ -22958,10 +22974,10 @@ - + - + @@ -22977,10 +22993,10 @@ - + - + @@ -22988,27 +23004,27 @@ - + - + - + - + - + - + @@ -23024,15 +23040,15 @@ - + - + - + @@ -23040,19 +23056,19 @@ - + - + - + - + @@ -23061,44 +23077,44 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -23116,19 +23132,19 @@ - + - + - + - + @@ -23140,7 +23156,7 @@ - + @@ -23152,18 +23168,18 @@ - - - + + + - + - + @@ -23194,12 +23210,12 @@ - + - + @@ -23214,7 +23230,7 @@ - + @@ -23244,7 +23260,7 @@ - + @@ -23259,22 +23275,22 @@ - + - + - + - + - + @@ -23286,7 +23302,7 @@ - + @@ -23346,7 +23362,7 @@ - + @@ -23370,10 +23386,10 @@ - + - + @@ -23408,7 +23424,7 @@ - + @@ -23473,7 +23489,7 @@ - + @@ -23515,7 +23531,7 @@ - + @@ -23524,7 +23540,7 @@ - + @@ -23568,7 +23584,7 @@ - + @@ -23577,17 +23593,17 @@ - - - - + + + + - + - - + + - + @@ -23603,13 +23619,13 @@ - - + + - - - - + + + + @@ -23618,15 +23634,15 @@ - - + + - - - - - - + + + + + + @@ -23634,7 +23650,7 @@ - + @@ -23643,7 +23659,7 @@ - + @@ -23668,10 +23684,10 @@ - + - + @@ -23694,15 +23710,15 @@ - + - + - + @@ -23710,9 +23726,9 @@ - - - + + + @@ -23720,16 +23736,16 @@ - + - + - - + + @@ -23738,7 +23754,7 @@ - + @@ -23750,16 +23766,16 @@ - + - + - + @@ -23776,7 +23792,7 @@ - + @@ -23802,7 +23818,7 @@ - + @@ -23815,31 +23831,31 @@ - - + + - + - + - + - + - + @@ -23884,27 +23900,27 @@ - + - + - + - + - + - + - + @@ -23937,13 +23953,13 @@ - + - + - + @@ -23954,7 +23970,7 @@ - + @@ -23995,7 +24011,7 @@ - + @@ -24005,8 +24021,8 @@ - - + + @@ -24015,7 +24031,7 @@ - + @@ -24030,7 +24046,7 @@ - + @@ -24042,7 +24058,7 @@ - + @@ -24067,12 +24083,12 @@ - + - + @@ -24082,12 +24098,12 @@ - + - - + + @@ -24108,7 +24124,7 @@ - + @@ -24117,7 +24133,7 @@ - + @@ -24136,25 +24152,25 @@ - + - + - + - + @@ -24166,17 +24182,17 @@ - + - + - + @@ -24199,7 +24215,7 @@ - + @@ -24216,43 +24232,43 @@ - + - - + + - - + + - - + + - + - + - + @@ -24261,51 +24277,51 @@ - - + + - - + + - - + + - - - - + + + + - + - + - + - + - + - + - - + + - + @@ -24326,7 +24342,7 @@ - + @@ -24339,9 +24355,9 @@ - - - + + + @@ -24362,7 +24378,7 @@ - + @@ -24376,7 +24392,7 @@ - + @@ -24394,8 +24410,8 @@ - - + + @@ -24403,8 +24419,8 @@ - - + + @@ -24420,7 +24436,7 @@ - + @@ -24431,7 +24447,7 @@ - + @@ -24453,7 +24469,7 @@ - + @@ -24466,22 +24482,22 @@ - - + + - + - + - + - + @@ -24491,12 +24507,12 @@ - + - + - - + + @@ -24519,41 +24535,41 @@ - + - + - + - + - - + + - + - - + + - + - + - + @@ -24570,7 +24586,7 @@ - + @@ -24578,20 +24594,20 @@ - + - + - + @@ -24637,7 +24653,7 @@ - + @@ -24650,13 +24666,13 @@ - + - + @@ -24706,7 +24722,7 @@ - + @@ -24715,33 +24731,33 @@ - + - + - + - + - + - + - + @@ -24749,8 +24765,8 @@ - - + + @@ -24760,8 +24776,8 @@ - - + + @@ -24879,7 +24895,7 @@ - + @@ -24894,7 +24910,7 @@ - + @@ -24932,11 +24948,11 @@ - + - + @@ -24946,7 +24962,7 @@ - + @@ -24955,7 +24971,7 @@ - + @@ -25000,9 +25016,9 @@ - - - + + + @@ -25013,18 +25029,18 @@ - + - + - + - + @@ -25032,14 +25048,14 @@ - + - + @@ -25070,23 +25086,23 @@ - + - + - + - + - + @@ -25102,10 +25118,10 @@ - + - + @@ -25125,8 +25141,8 @@ - - + + @@ -25146,7 +25162,7 @@ - + @@ -25161,7 +25177,7 @@ - + @@ -25171,49 +25187,49 @@ - + - + - + - - + + - + - + - + - + - + - + - + - + @@ -25228,13 +25244,13 @@ - + - + @@ -25246,8 +25262,8 @@ - - + + @@ -25267,51 +25283,51 @@ - + - - + + - - + + - + - + - + - + - + - + @@ -25321,57 +25337,57 @@ - + - + - + - + - + - + - + - + - + @@ -25379,114 +25395,114 @@ - + - + - + - + - + - + - - + + - + - + - - + + - - - - + + + + - - - + + + - - + + - - - - + + + + - + - - + + - + - - + + - + - - + + - + - + - + - - + + @@ -25495,7 +25511,7 @@ - + @@ -25503,8 +25519,8 @@ - - + + @@ -25514,7 +25530,7 @@ - + @@ -25530,11 +25546,11 @@ - + - + @@ -25548,7 +25564,7 @@ - + @@ -25556,11 +25572,11 @@ - + - + @@ -25568,7 +25584,7 @@ - + @@ -25578,7 +25594,7 @@ - + @@ -25590,27 +25606,27 @@ - + - - + + - + - + - + @@ -25618,50 +25634,50 @@ - + - + - - + + - - + + - - + + - + - - + + - + - - + + - + @@ -25669,17 +25685,17 @@ - - - + + + - + - + @@ -25703,7 +25719,7 @@ - + @@ -25726,56 +25742,56 @@ - - + + - + - + - + - + - + - + - - + + - + @@ -25784,31 +25800,31 @@ - - + + - - - - - + + + + + - - - + + + - - - - + + + + - - - + + + @@ -25824,51 +25840,51 @@ - - - + + + - + - + - + - + - + - + - + - + - + @@ -25907,7 +25923,7 @@ - + @@ -25923,20 +25939,20 @@ - + - + - + - + @@ -25948,25 +25964,25 @@ - + - + - + - + - + @@ -25987,7 +26003,7 @@ - + @@ -26060,7 +26076,7 @@ - + @@ -26084,7 +26100,7 @@ - + @@ -26094,7 +26110,7 @@ - + @@ -26102,8 +26118,8 @@ - - + + @@ -26145,7 +26161,7 @@ - + @@ -26153,7 +26169,7 @@ - + @@ -26182,7 +26198,7 @@ - + @@ -26209,13 +26225,13 @@ - + - + - + @@ -26231,22 +26247,22 @@ - + - + - + - + @@ -26257,7 +26273,7 @@ - + @@ -26305,7 +26321,7 @@ - + @@ -26338,55 +26354,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -26398,12 +26414,12 @@ - + - + @@ -26416,7 +26432,7 @@ - + @@ -26427,7 +26443,7 @@ - + @@ -26444,7 +26460,7 @@ - + @@ -26477,8 +26493,8 @@ - - + + @@ -26532,7 +26548,7 @@ - + @@ -26550,7 +26566,7 @@ - + @@ -26572,7 +26588,7 @@ - + @@ -26586,7 +26602,7 @@ - + @@ -26644,7 +26660,7 @@ - + @@ -26656,13 +26672,13 @@ - - + + - - + + @@ -26694,7 +26710,7 @@ - + @@ -26724,7 +26740,7 @@ - + @@ -26756,7 +26772,7 @@ - + @@ -26780,8 +26796,8 @@ - - + + @@ -26794,7 +26810,7 @@ - + @@ -26826,10 +26842,10 @@ - + - + @@ -26847,7 +26863,7 @@ - + @@ -26860,7 +26876,7 @@ - + @@ -26872,10 +26888,10 @@ - - - - + + + + @@ -26893,7 +26909,7 @@ - + @@ -26963,54 +26979,54 @@ - - - + + + - - - - - + + + + + - - + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - + + @@ -27076,7 +27092,7 @@ - + @@ -27103,45 +27119,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -27149,33 +27165,33 @@ - + - + - + - + - + - + - + @@ -27186,48 +27202,48 @@ - + - + - + - - + + - + - + - + - + - + - + @@ -27244,36 +27260,36 @@ - + - + - + - + - + - + - - + + - - + + @@ -27288,213 +27304,213 @@ - - + + - + - + - + - + - + - - + + - - - - + + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - - - + + + + - - - - + + + + - + - - + + - - - - - + + + + + - - - - + + + + - - - + + + - - - - - + + + + + - - - + + + - - + + - - - - - - + + + + + + - - - - + + + + - + - + - + - + - + - + - + @@ -27512,13 +27528,13 @@ - + - + @@ -27530,7 +27546,7 @@ - + @@ -27540,7 +27556,7 @@ - + @@ -27550,7 +27566,7 @@ - + @@ -27564,7 +27580,7 @@ - + @@ -27575,9 +27591,9 @@ - - - + + + @@ -27614,16 +27630,16 @@ - + - + - + @@ -27633,42 +27649,42 @@ - - + + - - - + + + - - - - - - + + + + + + - - - - + + + + - - - + + + - + - + - - - + + + @@ -27683,7 +27699,7 @@ - + @@ -27693,16 +27709,16 @@ - + - + - + @@ -27712,29 +27728,29 @@ - + - + - + - + - + - - + + - + @@ -27747,35 +27763,35 @@ - - - + + + - + - + - + - + - + - + @@ -27810,90 +27826,90 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -27908,10 +27924,10 @@ - + - + @@ -27931,28 +27947,24 @@ - + - - + + - + - + - + - - - - @@ -27988,34 +28000,34 @@ - + - + - + - + - - + + - - + + - + - + - + @@ -28023,7 +28035,7 @@ - + @@ -28040,31 +28052,31 @@ - + - - - - + + + + - - - + + + - - + + - + - + @@ -28098,7 +28110,7 @@ - + @@ -28112,8 +28124,8 @@ - - + + @@ -28134,7 +28146,7 @@ - + @@ -28143,13 +28155,13 @@ - + - + @@ -28165,7 +28177,7 @@ - + @@ -28173,13 +28185,13 @@ - + - + @@ -28192,31 +28204,31 @@ - + - - - - - - - + + + + + + + - + - - + + @@ -28225,13 +28237,13 @@ - - + + - + @@ -28245,15 +28257,15 @@ - - - + + + - + @@ -28261,7 +28273,7 @@ - + @@ -28319,7 +28331,7 @@ - + @@ -28330,23 +28342,23 @@ - - + + - + - + - + @@ -28374,7 +28386,7 @@ - + @@ -28384,45 +28396,45 @@ - + - + - - + + - + - + - + - + - + - + - - - + + + @@ -28433,110 +28445,110 @@ - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - + - - - + + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - + + - - + + - - + + - - + + - - - + + + - + - + @@ -28544,13 +28556,13 @@ - + - + @@ -28577,7 +28589,7 @@ - + @@ -28586,31 +28598,31 @@ - + - + - + - + - + - - + + - - - + + + @@ -28631,31 +28643,31 @@ - + - - + + - - + + - - - + + + - - - - + + + + @@ -28664,15 +28676,15 @@ - + - + - - + + @@ -28681,23 +28693,23 @@ - + - + - + - - - + + + @@ -28706,7 +28718,7 @@ - + @@ -28716,32 +28728,32 @@ - - + + - - + + - - + + - + - + - + - + @@ -28749,24 +28761,24 @@ - + - - + + - + - + - + - - + + @@ -28785,7 +28797,7 @@ - + @@ -28809,104 +28821,104 @@ - + - + - + - + - - + + - + - + - + - + - + - + - - + + - - + + - + - + - + - - - - + + + + - - + + - + - + - + - + - + - + - - + + - - + + @@ -28920,12 +28932,12 @@ - + - + @@ -28942,19 +28954,19 @@ - + - + - + @@ -28973,7 +28985,7 @@ - + @@ -28992,7 +29004,7 @@ - + @@ -29005,25 +29017,25 @@ - + - + - + - - + + - + @@ -29167,7 +29179,7 @@ - + @@ -29176,13 +29188,13 @@ - + - + @@ -29209,13 +29221,13 @@ - + - + @@ -29233,27 +29245,27 @@ - + - + - + - + - + @@ -29267,19 +29279,19 @@ - + - + - + @@ -29293,25 +29305,25 @@ - + - + - - + + - + @@ -29327,7 +29339,7 @@ - + @@ -29337,31 +29349,31 @@ - + - - + + - - + + - + - + - + - + @@ -29378,13 +29390,13 @@ - - - + + + - - + + @@ -29403,7 +29415,7 @@ - + @@ -29437,11 +29449,11 @@ - + - + @@ -29449,12 +29461,12 @@ - + - - + + @@ -29465,7 +29477,7 @@ - + @@ -29474,19 +29486,19 @@ - + - + - + - + @@ -29498,73 +29510,73 @@ - + - + - + - + - + - - - + + + - + - + - - - - + + + + - - - - + + + + - - + + - - - + + + - - + + - - + + - + - + @@ -29574,12 +29586,12 @@ - + - + @@ -29600,27 +29612,27 @@ - + - + - + - + - + @@ -29636,14 +29648,14 @@ - - + + - + @@ -29656,8 +29668,8 @@ - - + + @@ -29670,78 +29682,78 @@ - - + + - - + + - + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -29751,7 +29763,7 @@ - + @@ -29774,13 +29786,13 @@ - + - - + + @@ -29792,7 +29804,7 @@ - + @@ -29804,8 +29816,8 @@ - - + + @@ -29820,21 +29832,21 @@ - + - + - + - - + + - + @@ -29845,10 +29857,10 @@ - + - + @@ -29871,18 +29883,18 @@ - + - + - + - + @@ -29890,7 +29902,7 @@ - + @@ -29898,7 +29910,7 @@ - + @@ -29910,9 +29922,9 @@ - + - + @@ -29924,34 +29936,34 @@ - + - - - + + + - + - + - + - + @@ -29962,73 +29974,73 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - - + + - + - - + + - - + + - + - + - + - + @@ -30040,121 +30052,121 @@ - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - - - + + + - - + + - + - + - - - + + + - + - + - + - - + + - - + + - + @@ -30170,57 +30182,57 @@ - - + + - + - - + + - - + + - + - - + + - + - + - - - + + + - + - + @@ -30228,20 +30240,20 @@ - - + + - - + + - - + + - - + + @@ -30263,136 +30275,136 @@ - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - - + + - - + + - + - + - + - - + + - + - + - + - + - + - - + + - + - + - - + + - - + + - + @@ -30402,8 +30414,8 @@ - - + + @@ -30418,7 +30430,7 @@ - + @@ -30426,62 +30438,62 @@ - + - - + + - + - + - + - + - + - - + + - - + + - + - + - + - + - + @@ -30495,10 +30507,10 @@ - + - + @@ -30510,7 +30522,7 @@ - + @@ -30523,14 +30535,14 @@ - + - - + + - - + + @@ -30539,41 +30551,41 @@ - + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + @@ -30582,85 +30594,85 @@ - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + @@ -30669,12 +30681,12 @@ - + - + @@ -30699,99 +30711,99 @@ - + - + - + - + - + - - + + - + - + - + - + - + - + - - - + + + - - + + - + - - + + - - - + + + - - - + + + - - + + - - + + - + - + - - + + - - - + + + @@ -30805,20 +30817,20 @@ - + - + - + - + @@ -30826,37 +30838,37 @@ - + - + - - + + - + - - - + + + - + @@ -30867,141 +30879,141 @@ - + - + - + - + - + - + - + - + - + - + - - - - + + + + - - - - - - - - + + + + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + @@ -31017,7 +31029,7 @@ - + @@ -31050,192 +31062,192 @@ - + - - - + + + - - - - + + + + - + - + - - + + - + - + - - + + - - - + + + - - - + + + - + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + - + - + - + - - + + - + - - + + - - + + - - + + - + - + - + - - + + - + - + - - + + - + - + - + @@ -31280,7 +31292,7 @@ - + @@ -31304,16 +31316,16 @@ - + - + - + - + @@ -31322,7 +31334,7 @@ - + @@ -31330,31 +31342,31 @@ - + - - - + + + - + - + - + - + @@ -31367,7 +31379,7 @@ - + @@ -31389,7 +31401,7 @@ - + @@ -31402,7 +31414,7 @@ - + @@ -31413,32 +31425,32 @@ - + - - + + - + - + - - + + - + @@ -31466,7 +31478,7 @@ - + @@ -31475,7 +31487,7 @@ - + @@ -31490,13 +31502,13 @@ - + - + @@ -31512,9 +31524,9 @@ - + - + @@ -31525,14 +31537,14 @@ - + - + @@ -31547,10 +31559,10 @@ - + - + @@ -31565,19 +31577,19 @@ - + - + - - + + @@ -31586,48 +31598,48 @@ - + - + - + - + - + - + - + - - - + + + - + - - + + @@ -31646,20 +31658,20 @@ - - - - + + + + - - - + + + - - - + + + diff --git a/Include/cpython/pystate.h b/Include/cpython/pystate.h index f428396411c5e5..c1b97d428e2e9b 100644 --- a/Include/cpython/pystate.h +++ b/Include/cpython/pystate.h @@ -208,6 +208,8 @@ struct _ts { */ PyObject *threading_local_sentinel; _PyRemoteDebuggerSupport remote_debugger_support; + + _PyStackChunk *datastack_cached_chunk; }; /* other API */ diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-11-00-13-59.gh-issue-142183.2iVhJH.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-03-11-00-13-59.gh-issue-142183.2iVhJH.rst new file mode 100644 index 00000000000000..827224dc71e827 --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-03-11-00-13-59.gh-issue-142183.2iVhJH.rst @@ -0,0 +1 @@ +Avoid a pathological case where repeated calls at a specific stack depth could be significantly slower. diff --git a/Python/pystate.c b/Python/pystate.c index 7188e5bf361fa5..2b67a40fe4f787 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -1575,6 +1575,7 @@ init_threadstate(_PyThreadStateImpl *_tstate, tstate->datastack_chunk = NULL; tstate->datastack_top = NULL; tstate->datastack_limit = NULL; + tstate->datastack_cached_chunk = NULL; tstate->what_event = -1; tstate->current_executor = NULL; tstate->dict_global_version = 0; @@ -1714,6 +1715,11 @@ clear_datastack(PyThreadState *tstate) _PyObject_VirtualFree(chunk, chunk->size); chunk = prev; } + if (tstate->datastack_cached_chunk != NULL) { + _PyObject_VirtualFree(tstate->datastack_cached_chunk, + tstate->datastack_cached_chunk->size); + tstate->datastack_cached_chunk = NULL; + } } void @@ -3029,9 +3035,20 @@ push_chunk(PyThreadState *tstate, int size) while (allocate_size < (int)sizeof(PyObject*)*(size + MINIMUM_OVERHEAD)) { allocate_size *= 2; } - _PyStackChunk *new = allocate_chunk(allocate_size, tstate->datastack_chunk); - if (new == NULL) { - return NULL; + _PyStackChunk *new; + if (tstate->datastack_cached_chunk != NULL + && (size_t)allocate_size <= tstate->datastack_cached_chunk->size) + { + new = tstate->datastack_cached_chunk; + tstate->datastack_cached_chunk = NULL; + new->previous = tstate->datastack_chunk; + new->top = 0; + } + else { + new = allocate_chunk(allocate_size, tstate->datastack_chunk); + if (new == NULL) { + return NULL; + } } if (tstate->datastack_chunk) { tstate->datastack_chunk->top = tstate->datastack_top - @@ -3067,12 +3084,17 @@ _PyThreadState_PopFrame(PyThreadState *tstate, _PyInterpreterFrame * frame) if (base == &tstate->datastack_chunk->data[0]) { _PyStackChunk *chunk = tstate->datastack_chunk; _PyStackChunk *previous = chunk->previous; + _PyStackChunk *cached = tstate->datastack_cached_chunk; // push_chunk ensures that the root chunk is never popped: assert(previous); tstate->datastack_top = &previous->data[previous->top]; tstate->datastack_chunk = previous; - _PyObject_VirtualFree(chunk, chunk->size); tstate->datastack_limit = (PyObject **)(((char *)previous) + previous->size); + chunk->previous = NULL; + if (cached != NULL) { + _PyObject_VirtualFree(cached, cached->size); + } + tstate->datastack_cached_chunk = chunk; } else { assert(tstate->datastack_top);