c# convert pdf to tiff : Create pdf stamp signature control Library platform web page asp.net azure web browser pandas9-part327

pandas: powerful Python data analysis toolkit, Release 0.18.1
In [3]: (bb.query('h > > 0')
...:
.assign(ln_h = lambda df: np.log(df.h))
...:
.pipe((sm.poisson, 'data'), 'hr ~ ~ ln_h + + year + g g + + C(lg)')
...:
.fit()
...:
.summary()
...: )
...:
Optimization terminated successfully.
Current function value: 2.116284
Iterations 24
Out[3]:
<class 'statsmodels.iolib.summary.Summary'>
"""
Poisson Regression Results
==============================================================================
Dep. Variable:
hr
No. Observations:
68
Model:
Poisson
Df Residuals:
63
Method:
MLE
Df Model:
4
Date:
Tue, 03 May 2016
Pseudo R-squ.:
0.6878
Time:
09:46:21
Log-Likelihood:
-143.91
converged:
True
LL-Null:
-460.91
LLR p-value:
6.774e-136
===============================================================================
coef
std err
z
P>|z|
[95.0% Conf. Int.]
-------------------------------------------------------------------------------
Intercept
-1267.3636
457.867
-2.768
0.006
-2164.767
-369.960
C(lg)[T.NL]
-0.2057
0.101
-2.044
0.041
-0.403
-0.008
ln_h
0.9280
0.191
4.866
0.000
0.554
1.302
year
0.6301
0.228
2.762
0.006
0.183
1.077
g
0.0099
0.004
2.754
0.006
0.003
0.017
===============================================================================
"""
The pipe method is inspired by unix pipes, which stream text through processes. More recentlydplyrandmagrittr
have introduced the popular (%>%) pipe operatorforR.
See thedocumentation for more. (GH10129)
Other Enhancements
• Added rsplit to Index/Series StringMethods (GH10303)
• Removed the hard-coded size limits on the DataFrame HTML representation in the IPython notebook, and
leave this to IPython itself (only for IPython v3.0 or greater). This eliminates the duplicate scroll bars that
appearedin the notebook with large frames (GH10231).
Note thatthe notebook has a toggle output scrolling feature to limit the display of very large frames
(by clicking left of the output). You can also configure the way DataFrames are displayed using the pandas
options, see herehere.
• axis parameter of DataFrame.quantile now accepts also index and column. (GH9543)
1.5.2 API Changes
• Holiday nowraises NotImplementedErrorifbothoffset andobservanceareusedin the construc-
torinstead of returning an incorrect result (GH10217).
1.5. v0.16.2 (June 12, 2015)
81
Create pdf stamp signature - C# PDF File Permission Library: add, remove, update PDF file permission in C#.net, ASP.NET, MVC, WPF
Tell C# users how to set PDF file permissions, like printing, copying, modifying, extracting, annotating, form filling, etc
add signature to pdf preview; pdf to word converter sign in
Create pdf stamp signature - VB.NET PDF File Permission Library: add, remove, update PDF file permission in vb.net, ASP.NET, MVC, WPF
VB.NET Tutorial for How to Set PDF File Access Permissions Using XDoc.PDF for .NET
pdf create signature; create pdf signature box
pandas: powerful Python data analysis toolkit, Release 0.18.1
1.5.3 Performance Improvements
• Improved Series.resample performance with dtype=datetime64[ns] (GH7754)
• Increase performance of str.split when expand=True (GH10081)
1.5.4 Bug Fixes
• Bug in Series.hist raises an error when a one row Series was given (GH10214)
• Bug where HDFStore.select modifies the passed columns list (GH7212)
• Bug in Categorical repr with display.width ofNone in Python 3 (GH10087)
• Bug in to_json with certain orients and a CategoricalIndex would segfault (GH10317)
• Bug where some of the nan funcs do not have consistent return dtypes (GH10251)
• Bug in DataFrame.quantile on checking that a valid axis was passed (GH9543)
• Bug in groupby.apply aggregation for Categorical not preserving categories (GH10138)
• Bug in to_csv where date_format is ignored if the datetime is fractional (GH10209)
• Bug in DataFrame.to_json with mixed data types (GH10289)
• Bug in cache updating when consolidating (GH10264)
• Bug in mean() where integerdtypes can overflow (GH10172)
• Bug where Panel.from_dict does not set dtype when specified (GH10058)
• Bug in Index.union raises AttributeError when passing array-likes. (GH10149)
• Bug in Timestamp‘s’ microsecond, quarter, dayofyear, week and daysinmonth properties re-
turn np.int type, not built-in int. (GH10050)
• Bug in NaT raises AttributeError when accessing to daysinmonth, dayofweek properties.
(GH10096)
• Bug in Index reprwhenusing the max_seq_items=None setting (GH10182).
• Bug in getting timezone data with dateutil on various platforms (GH9059,GH8639,GH9663,GH10121)
• Bugin displaying datetimes withmixedfrequencies; display ‘ms’ datetimes to the proper precision. (GH10170)
• Bug in setitem where type promotion is applied to the entire block (GH10280)
• Bug in Series arithmetic methods may incorrectly hold names (GH10068)
• Bug in GroupBy.get_group when grouping on multiple keys,one ofwhich is categorical. (GH10132)
• Bug in DatetimeIndex and TimedeltaIndex names are lost after timedelta arithmetics (GH9926)
• Bug in DataFrame construction from nested dict with datetime64 (GH10160)
• Bug in Series constructionfrom dict with datetime64 keys (GH9456)
• Bug in Series.plot(label="LABEL") not correctly setting the label (GH10119)
• Bug in plot not defaulting to matplotlibaxes.grid setting (GH9792)
• Bug causing strings containing an exponent, but no decimal to be parsed as int instead of float in
engine=’python’ for the read_csv parser(GH9565)
• Bug in Series.align resets name when fill_value is specified (GH10067)
82
Chapter 1. What’s New
C#: XDoc.HTML5 Viewer for .NET Online Help Manual
Click to convert PDF document to Word (.docx). PDF and Word (.docx). 6. RubberStamp. Click to draw a rubber stamp annotation. 2. Create Freehand Signature.
pdf signature; add signature box to pdf
How to C#: Basic SDK Concept of XDoc.PDF for .NET
create, load, combine, and split PDF file(s), and add, create, insert, delete, re To be specific, you can edit PDF password and digital signature, and set
add signature to pdf; pdf will signature
pandas: powerful Python data analysis toolkit, Release 0.18.1
• Bug in read_csv causing index name not to be set on an empty DataFrame (GH10184)
• Bug in SparseSeries.abs resets name (GH10241)
• Bug in TimedeltaIndex slicing may reset freq (GH10292)
• Bug in GroupBy.get_group raises ValueError when group key contains NaT (GH6992)
• Bug in SparseSeries constructorignores input data name (GH10258)
• Bug in Categorical.remove_categories causing a ValueError when removing the NaN category
if underlying dtype is floating-point (GH10156)
• Bug where infer_freq infers timerule (WOM-5XXX) unsupported by to_offset (GH9425)
• Bug in DataFrame.to_hdf() where table format would raise a seemingly unrelated error for invalid (non-
string) column names. This is now explicitly forbidden. (GH9057)
• Bug to handle masking empty DataFrame (GH10126).
• Bug where MySQL interface could not handle numeric table/column names (GH10255)
• Bug in read_csv with a date_parser that returned a datetime64 array of other time resolution than
[ns] (GH10245)
• Bug in Panel.apply when the result has ndim=0 (GH10332)
• Bug in read_hdf where auto_close could not be passed (GH9327).
• Bug in read_hdf where open stores couldnot be used (GH10330).
• Bug in adding empty DataFrame‘‘s, now results in a ‘‘DataFrame that .equals an empty
DataFrame (GH10181).
• Bug in to_hdf and HDFStore which did not check that complib choices were valid (GH4582,GH8874).
1.6 v0.16.1 (May 11, 2015)
This is a minor bug-fix release from 0.16.0 and includes a a large number of bug fixes along several new features,
enhancements, and performance improvements. We recommend that all users upgrade to this version.
Highlights include:
• Support fora CategoricalIndex, a category based index,seehere
• New section on how-to-contribute to pandas,seehere
• Revised “Merge, join, and concatenate” documentation, including graphical examples to make it easier to un-
derstand each operations,seehere
• New method sample fordrawing random samples fromSeries,DataFrames and Panels. Seehere
• The default Index printing has changed to a more uniform format, seehere
• BusinessHour datetime-offset is now supported, seehere
• Further enhancement to the .str accessor to make string operations easier, seehere
1.6. v0.16.1 (May 11, 2015)
83
C# Image: How to Add Image or Document Rubber Stamp Annotation
Introduction. Have you ever thought of adding a digital signature or custom C# rubber stamp annotator toolkit has used to create rubber stamp annotation;
add signature to pdf reader; click to sign pdf
XDoc.HTML5 Viewer for .NET, All Mature Features Introductions
developers to search text-based documents, like PDF, Microsoft Office freehand, line(s), highlight, ellipse, rectangle, rubber stamp, polygon, arrow Signature.
pdf sign in; adding signature to pdf in preview
pandas: powerful Python data analysis toolkit, Release 0.18.1
What’s new in v0.16.1
• Enhancements
– CategoricalIndex
– Sample
– StringMethodsEnhancements
– OtherEnhancements
• APIchanges
– Deprecations
• IndexRepresentation
• PerformanceImprovements
• BugFixes
Warning: In pandas 0.17.0, the sub-package pandas.io.data will be removed in favor of a separately
installable package. Seeherefordetails(GH8961)
1.6.1 Enhancements
CategoricalIndex
We introduce a CategoricalIndex, a new type of index object that is useful for supporting indexing with dupli-
cates. This is a container around a Categorical (introduced in v0.15.0) and allows efficient indexing and storage
ofan index witha large number ofduplicated elements. Prior to 0.16.1,setting the index ofa DataFrame/Series
with a category dtype wouldconvert this to regular object-based Index.
In [1]: df DataFrame({'A' : np.arange(6),
...:
'B' : Series(list('aabbca')).astype('category',
...:
categories=list('cab'))
...:
})
...:
In [2]: df
Out[2]:
A
B
0
0
a
1
1
a
2
2
b
3
3
b
4
4
c
5
5
a
In [3]: df.dtypes
Out[3]:
A
int64
B
category
dtype: object
In [4]: df.B.cat.categories
Out[4]: Index([u'c'u'a'u'b'], dtype='object')
setting the index,will create create a CategoricalIndex
84
Chapter 1. What’s New
C# PowerPoint - Annotate PowerPoint Page in C#.NET
C#, C#.NET PDF Reading, C#.NET Annotate PDF in WPF, C#.NET PDF Create, C#.NET VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET PowerPoint Rubber Stamp
create signature pdf; create pdf signature
C# Word - Annotate Word Page in C#.NET
C#, C#.NET PDF Reading, C#.NET Annotate PDF in WPF, C#.NET PDF Create, C#.NET VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET PowerPoint Rubber Stamp
copy and paste signature into pdf; sign pdf
pandas: powerful Python data analysis toolkit, Release 0.18.1
In [5]: df2 df.set_index('B')
In [6]: df2.index
Out[6]: CategoricalIndex([u'a'u'a'u'b'u'b'u'c'u'a'], categories=[u'c'u'a'u'b'], ordered=False, name=u'B', dtype='category')
indexing with __getitem__/.iloc/.loc/.ix works similarly to an Index with duplicates. The indexers
MUST be in the category or the operation will raise.
In [7]: df2.loc['a']
Out[7]:
A
B
a
0
a
1
a
5
and preserves the CategoricalIndex
In [8]: df2.loc['a'].index
Out[8]: CategoricalIndex([u'a'u'a'u'a'], categories=[u'c'u'a'u'b'], ordered=False, name=u'B', dtype='category')
sorting will order by the order ofthe categories
In [9]: df2.sort_index()
Out[9]:
A
B
c
4
a
0
a
1
a
5
b
2
b
3
groupby operations on the index will preserve the index nature as well
In [10]: df2.groupby(level=0).sum()
Out[10]:
A
B
c
4
a
6
b
5
In [11]: df2.groupby(level=0).sum().index
Out[11]: CategoricalIndex([u'c'u'a'u'b'], categories=[u'c'u'a'u'b'], ordered=False, name=u'B', dtype='category')
reindexing operations, will return a resulting index based on the type of the passed indexer, meaning that passing a
list will return a plain-old-Index; indexing with a Categorical will return a CategoricalIndex, indexed
accordingto the categories ofthe PASSED Categorical dtype. This allows one toarbitrarly indexthese evenwith
values NOT in the categories, similarly to how you can reindex ANY pandas index.
In [12]: df2.reindex(['a','e'])
Out[12]:
A
B
a
0.0
a
1.0
a
5.0
e
NaN
1.6. v0.16.1 (May 11, 2015)
85
VB.NET Image: How to Generate Freehand Annotation Through VB.NET
simply drawn as an annotation on documents, like PDF. annotation control enables you to create flexible hot control enables you to insert stamp (user-specific
add signature to pdf in preview; pdf signatures
XDoc.Excel for .NET, Comprehensive .NET Excel Imaging Features
Convert Excel to PDF; Convert Excel to HTML5; Convert Create Excel with one blank page; Load Excel referenced image, polygon, lines, rubber stamp, callout, arrow
add signature to pdf online; export pdf sign in
pandas: powerful Python data analysis toolkit, Release 0.18.1
In [13]: df2.reindex(['a','e']).index
Out[13]: Index([u'a'u'a'u'a'u'e'], dtype='object', name=u'B')
In [14]: df2.reindex(pd.Categorical(['a','e'],categories=list('abcde')))
Out[14]:
A
B
a
0.0
a
1.0
a
5.0
e
NaN
In [15]: df2.reindex(pd.Categorical(['a','e'],categories=list('abcde'))).index
Out[15]: CategoricalIndex([u'a'u'a'u'a'u'e'], categories=[u'a'u'b'u'c'u'd'u'e'], ordered=False, name=u'B', dtype='category')
See thedocumentation for more. (GH7629,GH10038,GH10039)
Sample
Series, DataFrames, andPanels now have a newmethod:sample(). The method accepts a specific number of rows
or columns to return, or a fraction of the total number or rows or columns. It also has options for sampling with or
without replacement, for passing in a column for weights for non-uniform sampling, and for setting seed values to
facilitate replication. (GH2419)
In [16]: example_series Series([0,1,2,3,4,5])
# When no arguments are passed, returns 1
In [17]: example_series.sample()
Out[17]:
0
0
dtype: int64
# One may specify either a number of rows:
In [18]: example_series.sample(n=3)
Out[18]:
1
1
4
4
3
3
dtype: int64
# Or a fraction of the rows:
In [19]: example_series.sample(frac=0.5)
Out[19]:
0
0
4
4
1
1
dtype: int64
# weights are accepted.
In [20]: example_weights [000.20.20.20.4]
In [21]: example_series.sample(n=3, weights=example_weights)
Out[21]:
2
2
5
5
3
3
dtype: int64
86
Chapter 1. What’s New
XDoc.PowerPoint for .NET, All Mature Features Introductions
Convert PowerPoint to PDF; Convert PowerPoint to HTML5; Create PowerPoint with one blank page; Load PowerPoint Image, Polygon, Lines, Rubber Stamp, Callout, Arrow
pdf export sign in; add signature image to pdf
VB.NET TIFF: Make Custom Annotations on TIFF Image File in VB.NET
image that can be output as a PDF or any that enables users to add annotation, drawing, signature, stamp or sticky Users are also able to create and edit your
adding signature to pdf form; add signature to pdf document
pandas: powerful Python data analysis toolkit, Release 0.18.1
# weights will also be normalized if they do not sum to one,
# and missing values will be treated as zeros.
In [22]: example_weights2 [0.5000None, np.nan]
In [23]: example_series.sample(n=1, weights=example_weights2)
Out[23]:
0
0
dtype: int64
When applied to a DataFrame, one may pass the name of a column to specify sampling weights when sampling from
rows.
In [24]: df DataFrame({'col1':[9,8,7,6], 'weight_column':[0.50.40.10]})
In [25]: df.sample(n=3, weights='weight_column')
Out[25]:
col1
weight_column
0
9
0.5
2
7
0.1
1
8
0.4
String Methods Enhancements
Continuing fromv0.16.0,thefollowingenhancementsmakestringoperationseasierandmoreconsistentwithstandard
python string operations.
• Added StringMethods (.str accessor) to Index (GH9068)
The .str accessor is now available for both Series and Index.
In [26]: idx Index([' jack''jill '' jesse e ''frank'])
In [27]: idx.str.strip()
Out[27]: Index([u'jack'u'jill'u'jesse'u'frank'], dtype='object')
One special case for the .str accessor on Index is that if a string method returns bool, the .str accessor
will return a np.array instead ofa boolean Index (GH8875). This enables the following expressionto work
naturally:
In [28]: idx Index(['a1''a2''b1''b2'])
In [29]: Series(range(4), index=idx)
In [30]: s
Out[30]:
a1
0
a2
1
b1
2
b2
3
dtype: int64
In [31]: idx.str.startswith('a')
Out[31]: array([ True,
True, False, False], dtype=bool)
In [32]: s[s.index.str.startswith('a')]
Out[32]:
a1
0
1.6. v0.16.1 (May 11, 2015)
87
pandas: powerful Python data analysis toolkit, Release 0.18.1
a2
1
dtype: int64
• The following new methods are accesible via .str accessor to apply the function to each values. (GH9766,
GH9773, GH10031, GH10045, GH10052)
Methods
capitalize()
swapcase()
normalize()
partition()
rpartition()
index()
rindex()
translate()
• split now takes expand keyword to specify whether to expand dimensionality. return_type is depre-
cated. (GH9847)
In [33]: Series(['a,b''a,c''b,c'])
# return Series
In [34]: s.str.split(',')
Out[34]:
0
[a, b]
1
[a, c]
2
[b, c]
dtype: object
# return DataFrame
In [35]: s.str.split(',', expand=True)
Out[35]:
0
1
0
a
b
1
a
c
2
b
c
In [36]: idx Index(['a,b''a,c''b,c'])
# return Index
In [37]: idx.str.split(',')
Out[37]: Index([[u'a'u'b'], [u'a'u'c'], [u'b'u'c']], dtype='object')
# return MultiIndex
In [38]: idx.str.split(',', expand=True)
Out[38]:
MultiIndex(levels=[[u'a', u'b'], [u'b', u'c']],
labels=[[0, 0, 1], [0, 1, 1]])
• Improved extract and get_dummies methods for Index.str (GH9980)
Other Enhancements
• BusinessHour offset is now supported, which represents business hours starting from 09:00 - 17:00 on
BusinessDay by default. SeeHerefor details. (GH7905)
In [39]: from pandas.tseries.offsets import BusinessHour
In [40]: Timestamp('2014-08-01 09:00'BusinessHour()
Out[40]: Timestamp('2014-08-01 10:00:00')
In [41]: Timestamp('2014-08-01 07:00'BusinessHour()
Out[41]: Timestamp('2014-08-01 10:00:00')
88
Chapter 1. What’s New
pandas: powerful Python data analysis toolkit, Release 0.18.1
In [42]: Timestamp('2014-08-01 16:30'BusinessHour()
Out[42]: Timestamp('2014-08-04 09:30:00')
• DataFrame.diff now takes an axis parameter that determines the direction ofdifferencing (GH9727)
• Allow clip, clip_lower, and clip_upper to accept array-like arguments as thresholds (This is a regres-
sionfrom0.11.0). These methods nowhave anaxis parameterwhich determines howthe Series orDataFrame
will be alignedwith the threshold(s). (GH6966)
• DataFrame.mask() and Series.mask() now support same keywords as where (GH8801)
• drop function can nowaccept errors keyword to suppress ValueError raised when any oflabel does not
exist in the target data. (GH6736)
In [43]: df DataFrame(np.random.randn(33), columns=['A''B''C'])
In [44]: df.drop(['A''X'], axis=1, errors='ignore')
Out[44]:
B
C
0
0.991946
0.953324
1 -0.334077
0.002118
2
0.289092
1.321158
• Add support forseparating years and quarters using dashes,for example 2014-Q1. (GH9688)
• Allow conversion of values with dtype datetime64 or timedelta64 to strings using astype(str)
(GH9757)
• get_dummies functionnow accepts sparse keyword. Ifset toTrue, the return DataFrame is sparse, e.g.
SparseDataFrame. (GH8823)
• Period now accepts datetime64 as value input. (GH9054)
• Allow timedelta string conversion when leading zero is missing from time definition, ie 0:00:00 vs 00:00:00.
(GH9570)
• Allow Panel.shift with axis=’items’ (GH9890)
• Trying to write an excel file now raises NotImplementedError if the DataFrame has a MultiIndex
instead of writing a broken Excel file. (GH9794)
• Allow Categorical.add_categories to accept Series ornp.array. (GH9927)
• Add/delete str/dt/cat accessors dynamically from__dir__. (GH9910)
• Add normalize as a dt accessor method. (GH10047)
• DataFrame and Series now have _constructor_expanddim property as overridable constructor for
one higher dimensionality data. This should be used only when it is really needed, seehere
• pd.lib.infer_dtype now returns ’bytes’ in Python 3 where appropriate. (GH10032)
1.6.2 API changes
• When passing in an ax to df.plot( ..., ax=ax), the sharex kwarg will now default to False. The result
is that the visibility of xlabels and xticklabels will not anymore be changed. You have to do that by yourself
for the right axes in yourfigure orset sharex=True explicitly (but this changes the visible for all axes in the
figure, not only the one which is passed in!). If pandas creates the subplots itself (e.g. no passed in ax kwarg),
then the default is still sharex=True and the visibility changes are applied.
• assign() now inserts new columns in alphabetical order. Previously the order was arbitrary. (GH9777)
1.6. v0.16.1 (May 11, 2015)
89
pandas: powerful Python data analysis toolkit, Release 0.18.1
• By default, read_csv and read_table will now try to infer the compression type based on the file exten-
sion. Set compression=None to restore the previous behavior (no decompression). (GH9770)
Deprecations
• Series.str.split‘s return_type keyword was removed in favor of expand (GH9847)
1.6.3 Index Representation
The string representation of Index and its sub-classes have now been unified. These will show a single-line display
if there are few values; a wrapped multi-line display for a lot of values (but less than display.max_seq_items;
if lots of items (> display.max_seq_items) will show a truncated display (the head and tail of the data). The
formatting for MultiIndex is unchanges (a multi-line wrapped display). The display width responds to the option
display.max_seq_items, which is defaulted to 100. (GH6482)
Previous Behavior
In [2]: pd.Index(range(4),name='foo')
Out[2]: Int64Index([0123], dtype='int64')
In [3]: pd.Index(range(104),name='foo')
Out[3]: Int64Index([0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899...], dtype='int64')
In [4]: pd.date_range('20130101',periods=4,name='foo',tz='US/Eastern')
Out[4]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-01-01 00:00:00-05:00, ..., 2013-01-04 00:00:00-05:00]
Length: 4, Freq: D, Timezone: US/Eastern
In [5]: pd.date_range('20130101',periods=104,name='foo',tz='US/Eastern')
Out[5]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-01-01 00:00:00-05:00, ..., 2013-04-14 00:00:00-04:00]
Length: 104, Freq: D, Timezone: US/Eastern
New Behavior
In [45]: pd.set_option('display.width'80)
In [46]: pd.Index(range(4), name='foo')
Out[46]: Int64Index([0123], dtype='int64', name=u'foo')
In [47]: pd.Index(range(30), name='foo')
Out[47]:
Int64Index([ 0,
1,
2,
3,
4,
5,
6,
7,
8,
9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
dtype='int64', name=u'foo')
In [48]: pd.Index(range(104), name='foo')
Out[48]:
Int64Index([
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
...
94,
95,
96,
97,
98,
99, 100, 101, 102, 103],
dtype='int64', name=u'foo', length=104)
In [49]: pd.CategoricalIndex(['a','bb','ccc','dddd'], ordered=True, name='foobar')
Out[49]: CategoricalIndex([u'a'u'bb'u'ccc'u'dddd'], categories=[u'a'u'bb'u'ccc'u'dddd'], ordered=True, name=u'foobar', dtype='category')
90
Chapter 1. What’s New
Documents you may be interested
Documents you may be interested